legate numpy very slow compared to Python+Numpy

I've been testing a simple Laplace Eq. solver to compare Python+Numpy to legate.numpy and legate is hugely slower than Numpy.
The code is taken from: https://barbagroup.github.io/essential_skills_RRC/laplace/1/ . The code I actually run is the following:
import numpy as np
import time

def L2_error(p, pn):
    return np.sqrt(np.sum((p - pn)**2)/np.sum(pn**2))
# end if

def laplace2d(p, l2_target):
    '''Iteratively solves the Laplace equation using the Jacobi method

    Parameters:
    ----------
    p: 2D array of float
        Initial potential distribution
    l2_target: float
        target for the difference between consecutive solutions

    Returns:
    -------
    p: 2D array of float
        Potential distribution after relaxation
    '''

    l2norm = 1.0
    icount = 0
    tot_time = 0.0
    pn = np.empty_like(p)
    while l2norm > l2_target:

        start = time.perf_counter()

        icount = icount + 1
        pn = p.copy()
        p[1:-1,1:-1] = .25 * (pn[1:-1,2:] + pn[1:-1, :-2] \
                              + pn[2:, 1:-1] + pn[:-2, 1:-1])

        ##Neumann B.C. along x = L
        p[1:-1, -1] = p[1:-1, -2]     # 1st order approx of a derivative
        l2norm = L2_error(p, pn)
        end = time.perf_counter()

        tot_time = tot_time + (end-start)

    # end while

    print("l2norm = ",l2norm)
    print("icount = ",icount)
    print("Total Iteration Time = ",tot_time)
    print("   Time per iteration = ",tot_time/icount)

    return p
# end if

if __name__ == "__main__":

    nx = 401
    ny = 401

    # Initial conditions
    p = np.zeros((ny,nx)) ##create a XxY vector of 0's

    # Dirichlet boundary conditions
    x = np.linspace(0,1,nx)
    p[-1,:] = np.sin(1.5*np.pi*x/x[-1])
    del x

    start = time.time()
    p = laplace2d(p.copy(), 1e-8)
    stop = time.time()

    print("Elapsed time = ",(stop-start)," secs")
    print(" ")

# end if

When I run it on my laptop with Anaconda Python3 and Numpy I get the following:
$ python3 jacobi.py
l2norm =  9.99986062249016e-09
icount =  153539
Total Iteration Time =<PHONE_NUMBER>4990054
   Time per iteration =  0.0008273161512703648
Elapsed time =<PHONE_NUMBER>5551147  secs

When I change the import line to legate.numpy, I usually stop the code after 15 minutes of wall time. I have let it run for up to 60 minutes and it never converges.
As a check, I've run the Numpy code with legate itself and it exactly matches the Numpy results.
I have been experimenting with replacing the l2norm computations with numpy specific functions (np.subtract, np.square, etc.) but I have achieved no increase in performance.
Does anyone have any recommendations?
Thanks!
Jeff
(edit by Manolis: added some formatting for the code sections)

I haven't run this script, but I highly suspect the problem is caused by this line
p[1:-1, -1] = p[1:-1, -2]

This is related to issue #16.

I actually don't think issue #16 is impacting correctness in this case. This is a basic indexing copy on both sides and we get the transforms right in those cases. It's only when you mix in advanced indexing that we run into problems like those in #16.
That said, I've been unable to reproduce this issue as described. I ran the code above with a couple of different configurations and couldn't make it take more than 4 minutes. In all cases we converged in the same number of iterations as the original implementation with the same L2-norm value.
mbauer:/local/home/mbauer/LegateNumPy$ ../LegateCore/install/bin/legate laplace.py --cpus 1
l2norm =  9.99986062249016e-09
icount =  153539
Total Iteration Time =<PHONE_NUMBER>5142486
   Time per iteration =  0.0014564472157004074
Elapsed time =<PHONE_NUMBER>5801697  secs

mbauer:/local/home/mbauer/LegateNumPy$ ../LegateCore/install/bin/legate laplace.py --cpus 4
l2norm =  9.99986062249016e-09
icount =  153539
Total Iteration Time =<PHONE_NUMBER>2695087
   Time per iteration =  0.0014369247124636144
Elapsed time =<PHONE_NUMBER>1272888  secs

mbauer:/local/home/mbauer/LegateNumPy$ ../LegateCore/install/bin/legate laplace.py --gpus 1
l2norm =  9.99986062249016e-09
icount =  153539
Total Iteration Time =<PHONE_NUMBER>6241454
   Time per iteration =  0.001406430521642153
Elapsed time =<PHONE_NUMBER>840973  secs

While this is certainly slower than NumPy, it's not  the >15 minutes originally reported. This kind of slow-down (~2-3X) compared to NumPy is actually expected behavior for Legate on tiny problems like this. The extra levels of indirection needed to allow Legate to scale to thousands of GPUs comes with some overhead, and on small problems like this that overhead dominates performance. Legate really won't become efficient until it's processing 100s of MBs of data, and even then, we'll do much better when we're handling at least a few GBs of data on every node. In fact, I'm pretty sure this problem isn't even big enough to trigger execution with Legion. I think our extra-level of indirection is just looking at the data and then turning around and handling it straight back to NumPy, but the cost of doing that logic on every NumPy operation is about 2-3X more than even running the math for the operation in this case, hence the slowdown.

My test result is similar to @laytonjbgmail's original post. After changing the import numpy as np to from legate import numpy as np, the run becomes very slow. When using vanilla NumPy and nx = ny = 51, the run took 0.23 seconds, while the legate version took 27 seconds with legate --cpus 1 laplace.py. I didn't test with the original mesh size (i.e., nx = ny = 401) because it took too long to finish.
Not only the run is slow, but the solution is also wrong. Adding this assertion assert np.allclose(p[1:-1, -1], p[1:-1, -2]) (either after p = laplace2d(...) or after p[1:-1, -1] = p[1:-1, -2]) raises the error and shows that the copying wasn't successful. In addition, when comparing the result to the analytical solution (not shown in the original post), the relative L2-error is 35%, while that of using vanilla NumPy is just 1.8% (when the meshsize is nx = ny = 51).
@lightsighter If you want to try my version of test, here is the link: https://gist.github.com/piyueh/c426132063f398b0557bb7c0ee01c572
My version just adds a check function to compare the result with the analytical solution. (This specific Laplace equation has an analytical solution.)

I was previously unable to reproduce the issue because my try - catch block wrapping my import statement of Legate NumPy was masking a configuration error.
I was able to observe a slow-down (although not as extreme as what either of you were reporting before). The problem came in the creation of array views.  When I run now, I see the following time needed to do 150K iterations:
mbauer:/local/home/mbauer/LegateNumPy$ ../LegateCore/install/bin/legate laplace.py --cpus 1
WARNING: Found multiple python supports in your Legion installation.
Using the following one: /local/home/mbauer/LegateCore/install/lib/python3.6/site-packages
l2norm =  1.1475736468288804e-07
icount =  150000
Total Iteration Time =<PHONE_NUMBER>638265
   Time per iteration =  0.00494596861442551
Elapsed time =<PHONE_NUMBER>570587  secs

That's about 3.3X slower than vanilla NumPy on the same machine. I looked at some profiling and I think this is as fast as the array-view creation code will go for the moment. There are some features planned for the Legate ecosystem as a whole that will make this considerably faster in the 6 month time frame, but until that time, my original point about the size of workloads still stands. The ability to make "views" that work on big distributed systems doesn't come for free. Those overheads need to be amortized over the size of the data being processed, and right now the lower bar for that is in the 100s of MBs to GBs of data per node at a minimum.

After e24dbddbb6a0aad483a8a96c513b2d05fd70e073, I can see the improvement of the performance. Here's my result of vanilla NumPy and Legate NumPy (run up to 150000 iterations; mesh size nx=ny=401):

Vanilla NumPy:l2norm =  1.1833319405787581e-08
icount =  150000
Total Iteration Time =<PHONE_NUMBER>5768023
   Time per iteration =  0.0008668174737178682
Elapsed time =<PHONE_NUMBER>4298706  secs

Legate NumPy (one cpu core; no openmp):l2norm =  1.1475736468288804e-07
icount =  150000
Total Iteration Time =<PHONE_NUMBER>0681607
   Time per iteration =  0.002130895932712107
Elapsed time =  1243.906419992447  secs

The first thing I noticed is that, in Legate case, the elapsed time is much higher than iteration time. I think it's reasonable from my understanding because Legate's task execution is not synchronized with Python's native time.perf_counter. So when time.perf_counter measures the time during each iteration, the calculations of that iteration are actually not done yet.
However, now I'm not sure my understanding is correct. I don't see the same behavior from @lightsighter's result. This makes me think there's something wrong with my Legate installation or configuration. @lightsighter Any suggestion on what I should check?
Here's my profiling results of only 1000 iterations, not sure if it is helpful: legate_prof.tar.gz

I looked into this a bit. The size of the original example (401x401) is large enough to trigger accelerated execution, but the amount of computation is not enough to cover the overhead of going through Legate. Also, the main loop checks for convergence on every iteration, meaning that the Legion runtime can't run ahead to schedule computation, so we're not getting any pipelining of runtime analysis > kernel execution.
I changed the code to do the convergence check every 100 iterations and increased the size of the array to 5001 x 5001 (see https://gist.github.com/manopapad/f9d0af92dcf008b7d30d316d466c6baa), and now the times look as follows:

NumPy: 100 iterations in 30.818s
Legate on CPUs: 500 iterations in 33.882s (legate --sysmem 50000 --cpus 32 29.py)
Legate with OpenMP: 500 iterations in 33.215s (legate --sysmem 10000 --numamem 10000 --omps 2 --ompthreads 16 29.py)
Legate on GPUs: 10000 iterations in 42.807s (legate --sysmem 10000 --gpus 1 --fbmem 14500 29.py)

Does anyone have more to say on this? If not then we can close this issue.

Apologies - I got distracted from the responses.
I do have a question - based on your tests, it appears that running the GPU
is slower than running on the CPU. Is this your observation too?
Thanks!
Jeff
On Wed, Jul 28, 2021 at 5:31 PM Manolis Papadakis @.***>
wrote:

Does anyone have more to say on this? If not then we can close this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-888489623,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMYXLBKVAYOWUJL2YUBA7E3T2A5FNANCNFSM4463WSEQ
.

After increasing the size of the array (so that there's enough computation per iteration to cover the overhead of going through Legate) and doing the convergence check less frequently (so the main code has some leeway to "run ahead" and schedule work for the GPU) I get 14.76 iterations/sec on a single CPU vs 233.61 iterations/sec on a single GPU with legate, i.e. about 16x faster on a GPU.

What was the final problem size and how often did you do the convergence
check?
Thanks!
Jeff
On Wed, Jul 28, 2021 at 7:19 PM Manolis Papadakis @.***>
wrote:

After increasing the size of the array (so that there's enough computation
per iteration to cover the overhead of going through Legate) and doing the
convergence check less frequently (so the main code has some leeway to "run
ahead" and schedule work for the GPU) I get 14.76 iterations/sec on a
single CPU vs 233.61 iterations/sec on a single GPU with legate, i.e. about
16x faster on a GPU.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-888558105,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMYXLBOVET2KE3TWTHDRINDT2BJ3NANCNFSM4463WSEQ
.

See https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-855297214.

Thanks. I hate to be dense, but I didn't see those numbers in your previous
comment. To me it looked like the previous results give the same total time
for CPU and GPU. Can you explain this last set of results compared to the
previous set?
Thanks!
On Wed, Jul 28, 2021 at 8:48 PM Manolis Papadakis @.***>
wrote:

See #29 (comment)
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-855297214
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-888611239,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMYXLBLBA4ZRBYAHK3TX66DT2BULPANCNFSM4463WSEQ
.

My two comments (https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-855297214 and https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-888558105) refer to the same runs. I ran both the CPU test and the GPU test for a similar amount of time, but they completed a different number of iterations:
single CPU: 500 iterations in 33.882s => 14.76 iterations/sec
single GPU: 10000 iterations in 42.807s => 233.61 iterations/sec

Apologies. I didn't look at the number of iterations (don't worry - I
slapped my forehead a few times). Thanks for the clarification.
Nothing more from me on the subject.
Thanks for all of your help!
On Thu, Jul 29, 2021 at 5:52 PM Manolis Papadakis @.***>
wrote:

My two comments (#29 (comment)
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-855297214
and #29 (comment)
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-888558105)
refer to the same runs. I ran both the CPU test and the GPU test for a
similar amount of time, but they completed a different number of iterations:
single CPU: 500 iterations in 33.882s => 14.76 iterations/sec
single GPU: 10000 iterations in 42.807s => 233.61 iterations/sec
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nv-legate/legate.numpy/issues/29#issuecomment-889342877,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMYXLBP4JQHZFDL62PNBSZDT2GIMPANCNFSM4463WSEQ
.

No worries, thanks for your interest in Legate!


Travis CI

I couldn't find any evidence of previous work or discussions about Travis CI, so thought I'd whip up a quick proof of concept.
My key concern is that I don't know if you're allowed to use Travis CI with Google organisation projects, or whether you have any desire for CI at all.

It builds on OS X (with Xcode 7.3, for the GUI) and Linux (mainly for turnaround time, as there are usually long queues for OS X builders)
It builds on Rust stable and nightly, allowing nightly builds to fail
It doesn't do anything fancy like uploading tagged releases to GitHub; I'll add that (at least for the OS X app) if you think it's worthwhile
I have left the default email notifications settings; that can always be changed
There's a minor change to your Xcode build script to work around a Travis bug, but it won't affect non-Travis builds

Getting much fancier than uploading builds of the OS X app to GitHub might prompt some repo splitting, but we don't have to worry about that for now. 😄

@googlebot I signed it!

I'll look at this now. Yes, CI is a good thing, and as far as I know there are no problems with using Travis.
I do plan to split off the Cocoa front-end fairly soon (see #141), not sure how that's going to impact this work. I don't know much about tagged releases.

Thanks! I've never really done CI outside the Google infrastructure, so happy to have help with it.

Ah, sweet. Happy to help out with the Travis configuration when you do the split.
When you want to start making (pre-)releases, you can create an annotated tag and let Travis run the build, upload the release notes (tag annotation), and upload the resulting binary to GitHub. No clicky-clicky work, just tag and push. The same workflow can be applied to crate releases, too.

btw, now you need to connect Travis and GitHub to each other, which may require the help of the admin of Google's GitHub organisation.
But give it a try anyway: Go to your Travis CI account page and see if the google organisation is listed on the left, and if the xi-editor repo is in it. You may need to hit "Sync account" at the top. Hit the switch!

I hit it! As far as I can tell, everything is working.

Looking good. Anything you'd like to change or add? Is there a test framework I can run for the OS X bits, perhaps?
Probably easiest to add binary uploads of the OS X app after the repo split. Then we can add a debug build for testers, too.


Validate Availability Zone Ordering for vpc_cni_custom_subnets

https://github.com/defenseunicorns/terraform-aws-eks/blob/2b7847ef9e55c347aaaf63376cbe007df62d721a/main.tf#L70
It is possible to supply unordered AZs, that will get zipmaped to subnets in different AZs.

Something like:
azs = [
    for id in data.aws_subnets.vpc_intra_subnets.ids :
    data.aws_subnet.intra_subnet_info[id].availability_zone
  ]

works (thanks @mcamick) for now


Add "active" flag to ItemIssues table

(Issue edited by project maintainer to turn it into a project goal)
As a result of PR #564, Security Monkey exhibits some interesting behavior regarding issues.  When an issue is fixed, Security Monkey no longer deletes the issue.  The idea is to preserve justifications after items are deleted and then re-created.  However, this has caused problems.
The solution should be to add a flag to issues (type: bool, name: active).  Fixed issues would have the active flag set to False while unifxed issues would have their flag set to True.  SM should never delete issues, but will only change the active flag.  As SM won't be deleting issues, the justifications will not get deleted.   The UI would need to be changed to only show active issues.
Original report by @jseiser follows:
I am getting email changes, and the current configurations appear to be updating fine in the webUI as well.  The changes are not clearing out or getting updated under "Issues'
Example in the attached image.  A VPN shows down, but you can see in the config that it is up.

I went through the quickstart today, so this is running the latest code that would get pulled from those commands.

Related tickets:
#802
#795
#739


operator mariadb-operator (0.29.0)

Add operator mariadb-operator (0.29.0) to community operators

/merge possible

/merge possible


Failure when considering Transloco for use in an exisitng project

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[x] Support request
[ ] Other... Please describe:

Current behavior
During tests (Jest, without spectator) strings are not translated and keys are used instead. For example 'MY_KEY' stays as 'MY_KEY' instead of getting the value 'This is a key'. It works when run.
Expected behavior
Proper substitution of kyes with translated strings.
Minimal reproduction of the problem with instructions
It's a project of 20000 lines of code I am migrating to transloco. Well, considering migrating.
What is the motivation/use case for changing the behavior?
I need to test the code during the commit (husky hooks).
Environment

Angular CLI: 10.2.0

Browser:
- [x] None, it's a Jest issue.

For Tooling issues:
 - Node: 12.4.0
 - OS: win32 x64

@marcobuschini sounds like #250, this should be fixed in the next version.

@shaharkazaz thanks, I will check the next version, then. When it should be available?

@marcobuschini in the next couple of days 🙂

@marcobuschini Can you please verify this is resolved in v2.20.0? (make sure you use the preloadLangs if that fits your case)

@shaharkazaz as soon as I start working on it again next week I will check.

@shaharkazaz the problem persists.

@marcobuschini I see, please provide a small reproduction so we can better understand the issue 🙂 .

@shaharkazaz on a small project everything tests as expected.


Mount Up! macro not working

As in the title... nothing seems to happen when I click that macro, whereas the others work with the appropriate chat bubbles

Oh yeah the token.update doesn't work anymore.
It should be await canvas.scene.updateEmbeddedDocuments('Token',[{_id:token.document.data._id, x: newCoords.x, y: newCoords.y}]);.

it can be replaced with token.document.update and token.id

Fixed in next update


Building the current master branch in eu-west-1 results in an unusable AMI

What happened:

The AMI does not use the latest release binaries, 1.14.6/2019-08-22 instead of 1.14.8/2019-12-13 as specified in the latest release notes.

Also the kubelet config references an aws-iam-authenticator "region" flag that is currently not been released yet. This prevents the kubelet from registering the instance with the control plane.

kubelet: Error: unknown flag: --region
kubelet: Usage:
kubelet: aws-iam-authenticator token [flags]

As far as I can see, the region flag is introduced in v0.5.0-alpha.1 of aws-iam-authenticator and v0.4.0 is being used in the AMI.
What you expected to happen:

An AMI that has the latest 1.14.8/2019-12-13 (or newer) binaries
A working version of aws-iam-authenticator or a working kubeconfig so the kubelet starts without errors.

How to reproduce it (as minimally and precisely as possible):

Build a 1.14 AMI in eu-west-1 (so both aws_region and binary_bucket_region are set to eu-west-1)
Start an instance in eu-west-1 based on the newly created AMI

Anything else we need to know?:
We added some extra's to the Makefile and install-worker.sh script, but nothing that touches anything related to the issues described above.
Our previous build, based on https://github.com/awslabs/amazon-eks-ami/commit/81ac166912ebbdb46c56549efe3d88331f524cad, with the same minor additions, did work as expected.
Environment:

AWS Region: eu-west-1
Instance Type(s): n/a
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.6
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.14
AMI Version: n/a
Kernel (e.g. uname -a): 4.14.158-129.185.amzn2.x86_64
Release information (run cat /etc/eks/release on a node):

n/a

We have an issue, in which the node groups in our ap-northeast-1 eks cluster keeps hitting the global sts endpoint instead of the regional one. I assume #398 would fix the problem, correct? If so, any timeline as to when the updated ami will be available?

@davidygs Yes, it's currently in pipeline waiting for sign-off(waiting for new region launch). it's expected to be released in a week or so, let me see whether i can push it to release for other regions first.

@M00nF1sh Should we following this doc and make sure to set AWS_STS_REGIONAL_ENDPOINTS=regional in the new AMI so that we are actually the regional sts? Looks like both the go and python SDKs default to use the global endpoint (here and here).

@davidygs If you build an ami with v0.5.0 authenticator, and pass-in region https://github.com/awslabs/amazon-eks-ami/blob/master/files/kubelet-kubeconfig#L24, you don't need to.
I didn't a change in v0.5.0 authenticator to always use regional sts if --region is passed: https://github.com/kubernetes-sigs/aws-iam-authenticator/pull/283

@M00nF1sh Ok, that makes sense.
In the meantime, we are using eksctl to manage our eks cluster. The eksctl kubeconfig will probably need to be updated to reach parity with #283 in order for eksctl users to take advantage of the new --region flag in the updated authenticator.
I didn't look but maybe a PR has already been start on that end?

@davidygs I'll find someone on our endpoint to work on eksctl :D.
seems they have to use AWS_STS_REGIONAL_ENDPOINTS and AWS_DEFAULT_REGION.

This issue has been resolved. Please open a new ticket if a newly built AMI is broken in any way.


Problem installing azcopy version10

hi,
I am trying to use azcopy to upload data files to Azure storage. I have downloaded the Version 10 executable but somehow cannot install it.
It is a commmand line tool, but at the command prompt, typing "azcopy" does not seem to start the installation process.
Appreciate any advice please.

Hi. There is no installation process ;-)  It's juts a zip file (or a tarball for the Linux version). Inside the zip file are just two things: a text file, and the program itself. You don't need to install it. You just run it.  Typing azcopy --help will show you help text.
Note that in PowerShell you probably have to write that as .\azcopy --help and in Linux use ./azcopy --help.  (I.e. dot slash before the name, which is necessary in those environments unless you add it to your path).
Does that get it going for you?

Should you want to "install" it, I'd recommend placing it inside /usr/bin on Linux, and on Windows, creating a custom bin folder and adding it to your PATH env var. At least that's what I do, personally.

Thanks John and Adreed for your kind advice.
I tried the following command at command prompt:
azcopy cp "C:....my source folder" "https://....the destination blob store with
SAS token" --recursive=true
But encountered long errors saying that - 'azcopy' is not recognized as an internal or external command,
operable program or batch file etc.
Is there anything wrong with the above command line?

You need to either add it to your path, like Adele said, or else type this at the command prompt. (Note the .\ that I have added to your example , at the start. That is the only change.
.\azcopy cp "C:....my source folder" "https://....the destination blob store with
SAS token" --recursive=true

Also, you must run this from the directory that contains AzCopy.exe. E.g. if azcopy.exe is in C:\mystuff\azcopy10.1.2windows then your working directory must be C:\mystuff\azcopy10.1.2windows at the time you run it.
If you add it to the PATH, like Adele mentioned, then you can run it from any directory.
If this doesn't work for you, you can try using Azure Storage Explorer, since it provides a GUI (and contains AzCopy inside itself).

hi John,
I could not get the command line to work despite using "./azcopy".
I have downloaded and installed Azure Storage Explorer now.
But at the connection screen, I am not sure what option I should choose.
I was given a URL which contains the SAS token, for use in accessing a blob container and uploading my local files into this container.
Which connection type should I use?
I tried "Use a SAS URI" and pasted the "https://xxx" string but encountered error "missing required parameter 'sp' in SAS token)"
I tried "Connect with Name and Key" and pasted the URL but encountered error "The key is not a valid base-64 value".
Appreciate if you could advise what else I could do.

hi everyone,
I finally managed to upload my datafile to the Azure blob container (using the URL string given to me, which contains the SAS token).
I simply copied azcopy.exe to the root folder.
Then I launched Gitbash.
At the $ prompt, I typed:
.\azcopy cp "my data file path and filename" "azure blob container URL string with SAS token..."
Thanks everyone for the advice earlier  8-)

Glad to hear its working for you.


No way to clear expired User. Using auth.signOut fails

Bug report
Describe the bug
If you call supabase.auth.signOut() with an expired JWT, GoTrue fails with:
AuthApiError: invalid JWT: unable to parse or verify signature, token
The problem is that the stale user session is still stored in the auth module.
There is no way to remove it with the API.
That means that now edge functions will fail because of the invalid JWT (even if an anonymous JWT would have worked).
This puts the browser client in a broken and unfixable state.
Expected behavior
If GoTrue reports that the JWT is expired, then the user is signed out, and thet session should be cleared from supabase.auth
Alternatively I could catch the error, but would need an API to clear the current session from supabase.auth
System information

Browser Chrome
Version of supabase-js: 2.0.0

Related: https://github.com/supabase/gotrue-js/issues/524


fix(metadata): device PATCH V2 API should check service and profile

Fix #2860
PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-go/blob/master/.github/Contributing.md.
What is the current behavior?
The device PATCH V2 API doesn't check the service and profile whether is exists.
Issue Number: #2860
What is the new behavior?
If the serviceName or profileName doesn't exist in the DB, device PATCH V2 API should return 404 in the baseResponse
Does this PR introduce a breaking change?

[ ] Yes
[x] No

New Imports

[ ] Yes
[x] No

Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
Other information

Codecov Report

Merging #2862 into master will increase coverage by 0.35%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2862      +/-   ##
==========================================
+ Coverage   39.33%   39.68%   +0.35%
==========================================
  Files         166      166
  Lines       13961    13636     -325
==========================================
- Hits         5491     5411      -80
+ Misses       8140     7897     -243
+ Partials      330      328       -2

Impacted Files
Coverage Δ

internal/core/data/v2/controller/http/event.go
76.84% <0.00%> (-3.86%)
:arrow_down:

internal/core/data/init.go
0.00% <0.00%> (ø)

internal/pkg/v2/infrastructure/redis/event.go
0.00% <0.00%> (ø)

internal/pkg/v2/infrastructure/redis/reading.go
0.00% <0.00%> (ø)

internal/core/data/v2/application/event.go
58.94% <0.00%> (+0.95%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0f1fe82...19ff294. Read the comment docs.


Hyperparameter optimization on LTM datasets with Dask linear models

Hello all,
I've been trying to combine dask-ml's tools in the most vanilla way that I can think of and they don't seem to fit together (no pun intended).
Specifically, I want to both train models and optimize hyperparams on larger-than-memory datasets.
Initially I supposed I could just stick a linear model in a cv class. From the documentation, however, it seems that (all classes from dask_ml.model_selection) GridSearchCV and RandomizedSearchCV both require that the CV splits fit in memory, while IncrementalSearchCV, HyperbandSearchCV and SuccessiveHalvingSearchCV require that the estimator implements partial_fit. Since none of the linear models in the dask-ml API support partial_fit, I'm left wondering if there's a way to use pure dask-ml for a ML workflow.
Something like:
import numpy as np
from dask.distributed import Client, LocalCluster
from dask import array as da, dataframe as ddf

from dask_ml.model_selection import RandomizedSearchCV, train_test_split
from dask_ml.linear_model import LogisticRegression
from dask_ml.datasets import make_classification

cluster = LocalCluster( # Ignore specific values, just an example
    n_workers=4,
    threads_per_worker=2,
    memory_limit="1024MB",
    dashboard_address="<IP_ADDRESS>:1234",
)

client = Client(cluster)

X, y = make_classification(
    n_samples=1_000_000,
    n_features=12,
    n_informative=3,
    n_redundant=1,
    n_classes=2,
    chunks=5000,
)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

L = (10 ** np.linspace(-5, 2, num=10)).tolist()

rscv = RandomizedSearchCV(
    LogisticRegression(),
    param_distributions={"C": L},
    n_iter=20,
    scheduler=client,
    cache_cv=False,
)

rscv.fit(X_train, y_train)

rscv.score(X_test, y_test)

(In case anyone's wondering, the script above gives me an out of memory error and starts killing all the workers and I can't find out why)
Thanks for any help!
Cheers

I think your expectation that dask_ml.model_selection.GridSearchCV should work well with a model accepting a dask Array is reasonable. I vaguely recall looking into this a while back but I don't remember the outcome.
If you're interested in investigating, it'd be nice to know which operations are causing the workers to error. Otherwise I'll be able to look into it in a week or two.
I also think that Dask-ML's linear models should implement partial_fit, which would let them work well with e.g. Hyperband.

I also think that Dask-ML's linear models should implement partial_fit

:+1: I'm surprised they don't! I don't see an implementation in dask_glm/estimators.py or linear_model/glm.py.

It seems pretty easy to add, right? (they're being developed in linear_model/glm.py now).

Thanks for the answers! I'm not sure I'll have the time this week, too, but if I do I'll try to get a more useful report about why GridSearchCV is failing.

It seems pretty easy to add, right?

Yeah, I'd imagine because most optimizations are iterative. In practice, I'd imagine this would boil down to an implementation of warm_start or sending an initial estimate (or beta vector) to dask_glm/algorithms.py (e.g., gradient_descent(..., initial_model=previous_beta)).


Fix Logic for Screaming Snake Case during Enum Deserialization

from java-serializer#63:
"There was a problem during Enum deserialization. The identifier type value "Irdi" or "Iri" or "IRI" was always converted to "I_R_I" but the enum value in IdentifierType is IRI or IRDI."

Since IdentifierType does not exist anymore, this can be considered fixed


store comments in Datastore

I can see my comments in the local bin file but I don't see them on the admin page, am I doing sth wrong?

LGTM.
Re >> "I can see my comments in the local bin file but I don't see them on the admin page, am I doing sth wrong?"
Not sure where to respond to your question so I will add something here. I may need more context, can you elaborate your question a bit? Do you mean the comments posted by the user stored in a local bin file. I haven't used datastore myself so I can be wrong, but I assume it's expected that comments are stored in the hard drive.
What do you mean by seeing them in the admin page?

There's a link to the Datastore admin page, but I'm not sure if we're supposed to see the comments there, but I think the tutorial says so. I might have to ask a few people for confirmation.


The Spatial Hashing Feature of the Narrow Phase

We utilize the spatial hashing approach instead of the BVH in the narrow phase. The core changes are shown as follows:

The aabb.py and spatail_hash.py files
Two flags: use_spatial_hashing,  time_stamp in type.py file
New _spatial_hashing_narrow_phase function in collision_detection.py

I am missing unit test of new AABB  and HashGrid functionality.

Excellent KSendt fra min iPhoneDen 16. okt. 2023 kl. 19.43 skrev Dong She @.***>:
Hi Kenny,
I've made the necessary changes based on your previous feedback and pushed a new commit.
Changelogs:
Unit tests for AABB and Spatial Hashing classes.
Deep copy for an aabb instance when adding a boundary to it.
Vectorized operation for checking the overlap between two aabb instances.
ArrayLike instead of all List typing in the whole file.
Delete typos and update more clearly comments.
A new increment_hash_table_size function is divided from the set_hash_table_size function.
Computing hash value by modulus with a big prime number, and elete the casting to and from string operation.
Save the body index in the hash table instead of the body name.
Fix the style issue
BVH and hash grid are set up depending on the flag that can be defined by hand in a simulation application, default to use hashing approach.
Unpacking the value as a part of the loop.
Self-collision within the spatial hashing approach.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>


Update task json files with new sources, urls and categories.

The CI check uses  the old task hierarchies for testing. Should I update the markdown? Or, we can just comment out this testing.

I think updating the markdown should not be easy?

@danyaljj The markdown has been updated.


[Display News, List View] Incorrect size of the news item's Title text with 1 row and Description text with 3 rows

Environment:
Microsoft Windows 10 Home, Version 10.0.19041
Google Chrome Version 86.0.4240.198 (Official Build) (64-bit);
Windows 10 Pro, Mozilla Firefox 82.0.3 (64-біт)
Reproducible: always
Build found: 20.11.2020
Preconditions

https://ita-social-projects.github.io/GreenCityClient/ is opened.
News items are created in the DB and are displayed as first news item in the list view.  Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure d',
857, '<current date and time in format e.g. "2020-05-17 10:00:00.000000">');

INSERT INTO eco_news_tags
(eco_news_id, tags_id)
VALUES (724, 1), (724, 2);
Steps to reproduce

Click on 'Eco news' link in the header.
Set browser window width to 1440px.
Click on the View as a List option on the right side of the page.
Pay attention to created news' Title and Description display.

Actual result
Title is displayed and consist of 1 row and is 26px in heights.

Description is displayed and consist of 3 rows and is 69px in heights.

Expected result
Title is displayed and consist of 1 row and is 32px in heights.
Description is displayed and consist of 3 rows and is 96px in heights.
Postconditions

Created news are deleted from DB using queries:
DELETE FROM eco_news_tags
WHERE eco_news_id = 724;

DELETE FROM eco_news
WHERE id = 724;
User story and test case links
E.g.: "User story #460
Test case

this is not a bug
check the design again
moreover, the height of the containers should not be the purpose of testing because the containers can dynamically change the height and width

but I see a bug in the line heigth of text, so I'll fix it

Fixed in accordance with the new mockup design.


Migrate unit tests to Kotlin

The real change is https://github.com/GradleUp/shadow/compare/a25f017..89bd766


updated enphase api to v4

Pull Request
Description
This links with #36
Building on what markus said here, I have updated by older version of enphase api v2 which is going to be deprecated in 30th april 2024 to the latest v4. I have made corresponding changes in the docs in the code and added an OAuth 2.0 access token as Authorization header using the Bearer scheme with the application api in the header as mentioned in the latest docs
How Has This Been Tested?
This hasn't been tested yet, but I am in the process of creating an account on the latest developer-v4 enphase.
Checklist:

[x] My code follows OCF's coding style guidelines
[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[x] I have checked my code and corrected any misspellings

Hi @peterdudfield , could you please review this?
Thank you

Hi @peterdudfield , could you please review this? Thank you

Hi @peterdudfield , I have updated the PR description, and added a couple of new commits to make it better. Could you please review it and let me know if this looks good?

Note tests should pass after #105

Note tests should pass after #105

Okay will try once that's approved

This looks really great. Well done. Could you move next steps into a new issue, I have an enphase system, so Im sure I can send you those across

Thank you so much @peterdudfield ! I'll move the next steps into a new issue and reference it here

This looks really great. Well done. Could you move next steps into a new issue, I have an enphase system, so Im sure I can send you those across

#107  is the new issue that ive added which shows the next steps

Thanks @aryanbhosale , happy for this to be merged in?

Thanks @aryanbhosale , happy for this to be merged in?

Yes @peterdudfield , will we have to run the actions test again before merge?

Thanks @aryanbhosale , happy for this to be merged in?

Yes @peterdudfield , will we have to run the actions test again before merge?

should be re-triggering them now

Tests pass locally?

Tests pass locally?

Do i have to do anything other than pytest locally?
Also , why are 2 of the 4 tests failing in github actions? Does it mean that there's some problem with my commit

Tests pass locally?

Do i have to do anything other than pytest locally? Also , why are 2 of the 4 tests failing in github actions? Does it mean that there's some problem with my commit

pytest, should run locally and it looks like CI has passed, but always good pratice to run the test locally first

Tests pass locally?

Do i have to do anything other than pytest locally? Also , why are 2 of the 4 tests failing in github actions? Does it mean that there's some problem with my commit

pytest, should run locally and it looks like CI has passed, but always good pratice to run the test locally first

oh okay, thank you
When i try to run pytest it shows this:

Tests pass locally?

Do i have to do anything other than pytest locally? Also , why are 2 of the 4 tests failing in github actions? Does it mean that there's some problem with my commit

pytest, should run locally and it looks like CI has passed, but always good pratice to run the test locally first

oh okay, thank you When i try to run pytest it shows this:

is this expected behaviour @peterdudfield ?

Tests pass locally?

Do i have to do anything other than pytest locally? Also , why are 2 of the 4 tests failing in github actions? Does it mean that there's some problem with my commit

pytest, should run locally and it looks like CI has passed, but always good pratice to run the test locally first

oh okay, thank you When i try to run pytest it shows this:

is this expected behaviour @peterdudfield ? Why is it not recognizing quartz-solar-forecast

It looks like you havent installed it, I tend to use pip install -e . when developing locally

pip install -e .

Gotcha, this works! should i attach the tests too in my next commit? or is this good to go without the pycache? Also this shows a failure in 4 files(similar to the 2 test that were failing previously on actions):

yea, dont worry about adding pycache in your next commit. You might want to make sure they are passing though, to make sure your code changed havent change anything. I dont think they have, but this is a good way to check

Alright, i think we can go ahead with the merge if everything's fine


python-packages Host-Based requirements.txt

Adding this to track enabling Host-Based requirements.txt files for python-packages once https://github.com/devcontainers/spec/issues/220 is completed.

Cancelling this feature.


UnixPB: Include Pre-Req Packages For SSL Test

Fixes #3059
Install packages required for running ssl-tests for 3rd party clients ( gnutls / nss / openssl ), also include appropriate documentation update, and an additional test has been added to the VPC tests.
Checklist

[X] commit message has one of the standard prefixes
[X] other documentation is changed or added (if applicable)
[x] playbook changes run through VPC or QPC (if you have access)

VPC run with SSL tests on Fed35.. https://ci.adoptium.net/job/VagrantPlaybookCheck/OS=Fedora35,label=vagrant/1703/console
VPC Assorted other platforms
https://ci.adoptium.net/job/VagrantPlaybookCheck/1704/

/thaw

Ubuntu 21.04 check failure due to "hirsute" repos being removed.

@sxa I've also run the openj9 crypto tests ( in fact the whole java_security suite ) with a build of openj9 (jdk17), and thats all worked fine in both and Ubuntu/x64 vagrant & VM environments.


Form Form-Item prop 'error' is not passing input's error message

Description
I am trying to use 'error' prop of Form-Item to show custom validation message for one of my form inputs but form.state.error is still empty string.
Solution
Pass error message from 'error' prop to input state.
Additional Information
Information about 'error' prop was found on english page (https://eleme.github.io/element-react/#/en-US/form).

Yes, looks like this and show-message are not implemented (unless I am missing something)

As you can see error is a part of State of Form.Item component, not a property.
This behavior already changed in Vue version and even changed in documentation for React version, but not implemented, yet :)


add support for security.istio.io/v1beta1 api in authz tests for revisions < 1.17

Testing multiple istio versions involves older istio versions which uses the v1beta1 api. This change will start using v1 for 1.17+ and v1beta1 for 1.16-.
Please provide a description of this PR:

Just to clarify - v1 and v1beta1 are identical

can you just use v1beta1 everywhere? Testing v1 doesn't provide any test coverage

I think it would be more clearer to have both here. This way we are actually testing what will be used and also other members might not be confused as to why not update it back to v1 in tests. Although I've used v1beta1 in one case where using both is difficult.

Testing v1 does nothing. Istio cannot even tell the difference, api-server
handles it. For networking tests, for example, we exclusively use v1alpha3
even though we launched v1beta1 years ago.
On Wed, May 3, 2023 at 12:35 AM Akshay J Nambiar @.***>
wrote:

can you just use v1beta1 everywhere? Testing v1 doesn't provide any test
coverage
I think it would be more clearer to have both here. This way we are
actually testing what will be used and also other members might not be
confused as to why not update it back to v1 in tests. Although I've used
v1beta1 in one case where using both is difficult.
—
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/44447#issuecomment-1532578012, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXNJZ3GHYXIOABNHI2TXEIDCJANCNFSM6AAAAAAXFH5ZMA
.
You are receiving this because your review was requested.Message ID:
@.***>

In response to a cherrypick label: #44447 failed to apply on top of branch "release-1.17":
Applying: add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions
Using index info to reconstruct a base tree...
M	tests/integration/pilot/testdata/authz-b.yaml
M	tests/integration/security/pass_through_filter_chain_test.go
A	tests/integration/security/remote_jwks/testdata/requestauthn-no-se.yaml.tmpl
A	tests/integration/security/remote_jwks/testdata/requestauthn-with-se.yaml.tmpl
M	tests/integration/security/testdata/authz/ingress-gateway.yaml.tmpl
M	tests/integration/security/testdata/authz/not-host.yaml.tmpl
M	tests/integration/security/testdata/requestauthn/global-jwt.yaml.tmpl
Falling back to patching base and 3-way merge...
Auto-merging tests/integration/security/testdata/requestauthn/global-jwt.yaml.tmpl
Auto-merging tests/integration/security/testdata/authz/not-host.yaml.tmpl
Auto-merging tests/integration/security/testdata/authz/ingress-gateway.yaml.tmpl
CONFLICT (modify/delete): tests/integration/security/remote_jwks/testdata/requestauthn-with-se.yaml.tmpl deleted in HEAD and modified in add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions. Version add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions of tests/integration/security/remote_jwks/testdata/requestauthn-with-se.yaml.tmpl left in tree.
CONFLICT (modify/delete): tests/integration/security/remote_jwks/testdata/requestauthn-no-se.yaml.tmpl deleted in HEAD and modified in add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions. Version add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions of tests/integration/security/remote_jwks/testdata/requestauthn-no-se.yaml.tmpl left in tree.
Auto-merging tests/integration/security/pass_through_filter_chain_test.go
Auto-merging tests/integration/pilot/testdata/authz-b.yaml
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

In response to a cherrypick label: new issue created for failed cherrypick: #44804

In response to a cherrypick label: #44447 failed to apply on top of branch "release-1.17":
Applying: add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions
Using index info to reconstruct a base tree...
M	tests/integration/pilot/testdata/authz-b.yaml
M	tests/integration/security/pass_through_filter_chain_test.go
A	tests/integration/security/remote_jwks/testdata/requestauthn-no-se.yaml.tmpl
A	tests/integration/security/remote_jwks/testdata/requestauthn-with-se.yaml.tmpl
M	tests/integration/security/testdata/authz/ingress-gateway.yaml.tmpl
M	tests/integration/security/testdata/authz/not-host.yaml.tmpl
M	tests/integration/security/testdata/requestauthn/global-jwt.yaml.tmpl
Falling back to patching base and 3-way merge...
Auto-merging tests/integration/security/testdata/requestauthn/global-jwt.yaml.tmpl
Auto-merging tests/integration/security/testdata/authz/not-host.yaml.tmpl
Auto-merging tests/integration/security/testdata/authz/ingress-gateway.yaml.tmpl
CONFLICT (modify/delete): tests/integration/security/remote_jwks/testdata/requestauthn-with-se.yaml.tmpl deleted in HEAD and modified in add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions. Version add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions of tests/integration/security/remote_jwks/testdata/requestauthn-with-se.yaml.tmpl left in tree.
CONFLICT (modify/delete): tests/integration/security/remote_jwks/testdata/requestauthn-no-se.yaml.tmpl deleted in HEAD and modified in add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions. Version add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions of tests/integration/security/remote_jwks/testdata/requestauthn-no-se.yaml.tmpl left in tree.
Auto-merging tests/integration/security/pass_through_filter_chain_test.go
Auto-merging tests/integration/pilot/testdata/authz-b.yaml
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 add support for security.istio.io/v1beta1 api in authz tests when testing multiple istio versions
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

In response to a cherrypick label: new issue created for failed cherrypick: #44805

In response to a cherrypick label: new pull request created: #44806


Smooth staggered repetition with overlapping elements, or Only delay the first loop?

I'm really enjoying Anime! I'm trying to do something that seems possible, and yet I can't figure it out.
Basically: I want to have a steady loop of 4 elements, where the first starts at 0, and each subsequent element begins 1 second after the one prior. I can do that. But then I want the whole animation to loop on top of itself, so that the first element loops before the last element finishes.
Here's a pen that approaches the goal, but does not reach it: https://codepen.io/splendorr/pen/dRxjOy
You can see that on the first pattern, they begin in sequence. However, each repetition of each element is delayed again by its initial delay value, which immediately throws them out of sequence. I've tried to dynamically change the element's delay after it runs the first time but maybe I'm not doing that right? It seems like the simplest solution would be, "Delay on first run, but don't delay when looping." Is that possible?
I've tried all kinds of things. This example starts with an existing element, clones it, and applies an animation to each element (following the example here: https://codepen.io/juliangarnier/pen/PpoboR). I've tried to distill this from my real-world implementation as simply as I could. No matter what I do, no matter where I've tried to re-assign the delay, I can't get them to smoothly loop without getting further and further out of sync.
I also tried starting each animation within a setTimeout of 1000, but that drifted out of sync also. Maybe I should just do that, but with requestAnimationFrame instead of setTimeout? I just don't know why I can't get this to happen within Anime itself?
Thanks for your help!

I might add a new direction mode, direction: 'staggered' for looping back to the delay value instead of 0, that ways multiples animations can loop smoothly.
What do you think?

Finally found a way to achieve this effect by fixing some begin() callback issues in 2.2.0.
Take a look at this animation https://codepen.io/juliangarnier/full/rGjMyW/ and let me know if it was what you were looking for?

@juliangarnier This looks great! This works differently from anything I'd tried; I haven't played with the begin() callback or calling tl.restart() on complete. But this achieves the effect! And it's really pretty, too. 😄
I made something work for my project by putting each instance into its own function that called the next animation on complete(), with the last calling the first. Nowhere near optimal, but it worked for the project. I appreciate you taking the time, and will see about re-implementing with this technique in 2.2.0!

can not


CloudMediaContext and creating content keys

I am trying to convert the .NET example for creating content keys in the go. Is the CloudMediaContext object available in the go-sdk?
          _context = new CloudMediaContext(_cachedCredentials);
        static public IContentKey CreateCommonTypeContentKey()
        {
            // Create envelope encryption content key
            Guid keyId = Guid.NewGuid();
            byte[] contentKey = GetRandomBuffer(16);

            IContentKey key = _context.ContentKeys.Create(
                                    keyId,
                                    contentKey,
                                    "ContentKey",
                                    ContentKeyType.CommonEncryption);

            return key;
        }

To the best of my knowledge, this is currently unavailable in the Azure SDK for Go.


azure: add provider to documentation

The azure provider was missing in a couple of places in the documentation.
Signed-off-by: Magnus Kulke<EMAIL_ADDRESS>

@mkulke thanks a lot for the PR. Few minor changes required to make the CI happy and merge this PR.

Please add azure: to the commit descriptions. Example "azure: The azure provider was missing in a couple of places in the documentation."
Please create an issue and add it in the commit description. eg "Fixes: #". This ideally shouldn't be required for small PRs and I plan to discuss with @wainersm and @stevenhorsman to make this optional. But till then please create an issue and reference it in the commit description

@bpradipt thx, will do.


⚠ 366.ru has degraded performance

In 9be5959, 366.ru (https://366.ru) experienced degraded performance:

HTTP code: 200
Response time: 5120 ms

Resolved: 366.ru performance has improved in e4add9c.


-fs -fw -fl Not Working

Hi @birbalkr, please show what arguments you used, what you expected, and what the unexpected results were.
Thank you.

I'm try filter Response size = 0 and Line = 1 but show all size 985, Line=55
command is :- ffuf -w /path/to/vhost/wordlist:FUZZ -u https://target -H "Host: FUZZ/academy.htb" -fs 0 -fl 1 -v

-f means ignore
-m means match
-mc = match code (status code)
-fc = filter status code
Happy hacking.


Rework .predict.

Currently, .predict takes in a dataset in yields predictions for each input-timeseries.
However, this interface is a) not intuitive and b) does not reflect efficient invocation of networks in batches.
To predict a single time-series, one has to do something like:
time_series = ...

predictions = predictor.predict([time_series])
prediction = list(predictions)[0]

Ideally, one could just do:
prediction = predictor.predict(time_series)

In addition, we should have predict_batch which takes in a batch if input-time series to predict at one. We might want to check that the batch_size of the model corresponds with the size of the passed batch.
The current behaviour could be provided via .predict_all(dataset) or .predict_dataset(dataset) method.

One problem that I see is that it's very hard to gracefully deprecate the current .predict API.
Instead we could have predict_one, predict_batch, predict_all and then think about how we would want to do the migration.

For batches, I was really thinking about only having the output be a stream of "batch forecasts" (see #2286), but keeping the input a Dataset just like .predict. The reason for this is, it's convenient to avoid "deconstructing" the output of a network into individual Forecast objects, since you can probably evaluate much faster if you don't; on the input side, the two possibilities are really a single data entry or a collection of them, which is a Dataset regardless of its size.


Add Base Commerce Command

Description
This will add the base class for all Commerce commands. The class encapsulates the logic of calling the POST endpoint to initiate the command and then poll the get endpoint while the command is running.
Related Issue
https://github.com/adobe/aio-cli-plugin-cloudmanager/issues/383
Motivation and Context
Commerce CLI commands need to be integrated into the Cloud Manager Plugin as the Cloud Manager API will soon have commands for running CLI commands on Cloud Manager hosted Commerce programs.
How Has This Been Tested?
I have added the simplest command maintenance:status in my development environment that extends this base class. I wrote unit tests that match the unit tests in the app. All of the unit tests pass.
Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@thoughtassassin I understand the idea of adding this base command in a PR separate from the implementation of commands that actually use it, but the downside of this is that it isn't tested. Would it be possible to add a unit test that exercises this class? That test could, I suppose, be temporary and removed later.

@justinedelson The tests cover the commands. This is just the base class. I have unit tests ready for the subsequest command that I will be submitting.

@thoughtassassin I understand the idea of adding this base command in a PR separate from the implementation of commands that actually use it, but the downside of this is that it isn't tested. Would it be possible to add a unit test that exercises this class? That test could, I suppose, be temporary and removed later.

Would it be okay if I just submit the code with the command that implements it? I have the test written for that already. Also, you'll be able to see how the error handling works.

Would it be okay if I just submit the code with the command that implements it?

Yes, this is totally fine.

@thoughtassassin I was doing one last manual test and got (the expected) error about the sdk methods not being there. As such, I think there should be a warning which I've added in https://github.com/adobe/aio-cli-plugin-cloudmanager/pull/384/commits/7141df7e5f8aba78f79725b4567876755838417c
Also made two other tweaks:

Changed the alias per your last set of changes.
Renamed the base class (AFAICT, the intention is for this base class to be specific to Commerce CLI not Commerce in general)

@justinedelson I am good with the changes. Please proceed.


Trained Model

Dear  Amaia,
I read your paper “Faster R-CNN Features for Instance Search” and find it a great work. We are interested in trying out the method and apply it in our research.
I download the codes from the GitHub and can only get the best performance of Table 1 IPA-max, IPA-max 55.9%.  We cannot implement the Fine-tune Faster R-CNN model, would you please share your fine tuned mode or the pre-trained objects of the Microsoft COCO dataset with us then we can fine-tune the model by ourself?
Many thanks,
Lianli Gao

Could you download the pretrained model successfully?

Really hope the author could provide the weight of the fine-tune model.

@lianliGao Have you solved the problem? I use the code downloaded from the Github , but have the same question as you.


Give ECAL_HOME hint to find_program protoc

Facilitates crosscompiling when eCAL is installed on development computer.

I would suggest not to merge this PR as it feels non-generic.
What does your cross-compiling toolchain file look like? I suggest to specify a CMAKE_PROGRAM_PATH either in the toolchain file or when invoking CMake, you can use the env variable to eCAL home there if you like.

ECAL_HOME is passed in as a hint, so I tested it works, if it's empty. eCAL is likely to be installed in the development computer too. Thus, we ensure that the same protoc version is used when crosscompiling. If there are other protoc.exe in the path, CMake may import a wrong protoc.exe instead of the one included in the eCAL local installation.

ECAL_HOME is an environment variable that is set during installation (at least on Windows, not sure if we set / need it on Linux). Making the Cross-compile depend on an installation of the same software seems to like a bad idea.
There has to be a be better way to set the protoc executable from the outside. I don't see a reason why you would always want to cross-compile agains the same protobuf version you have installed on your machine. The reason for cross-compiling usually is to create binaries for a totally different CPU Architecture and OS. Having a match between Local-eCAL-installation-protoc and crosscompile-ecal-libprotobuf looks like pure chance to me.

There is still an option so that the user sets the imported PROTOC target externally. This will only affect those standard use cases, in which the user wants an easy way to cross-compile, and expects an easy solution.
eCAL is already in the system path, so it will be found in most of the cases regardless of the HINT. However, I have heard of an user that was having issues to cross-compile because he had two different protoc.exe in his Windows path. CMake was selecting the wrong one, and the compilation would fail later due to mismatching protoc versions. The easy way to fix this was to remove the other path from the system path, and just leave eCAL/bin there. However, if we had defined eCAL as a HINT that would have been searched before the system path, increasing the probability of using a compatible protoc version for crosscompilation.

Hi @pablorcum,
I know that it is very convenient if this "just work".
However, if making more and more implicit assumptions, from my experience it leads to more problems than it is worth having a little more convenience.
If you're crosscompiling eCAL, it is a requirement to have a protoc version matching the protobuf version that you are cross compiling for, in your host system. To implicitly search for protoc in an existing eCAL installation just feels wrong. You could just as well receive a missmatch there, too.

Alright. It is fine, thanks for the justification. eCAL is added to the path at least of Windows during installation, so CMake will find protoc during cross-compiling anyway. My point was for those cases in which for any reason eCAL was installed but removed from path.


Fix grammar, punctuation, and clarity issues in README

This commit improves the README by addressing several grammatical and stylistic issues.
Key changes include:

Corrected comma usage and sentence structure for better clarity.
Fixed punctuation in complex lists and removed minor redundancies.
Clarified ambiguous phrases for clearer understanding.

These changes enhance the overall professionalism and readability of the documentation.

Thank you so much!
Im not sure this issue is something I will merge, I highly suggest that you may try some documentation issues or code issues. Its also good to create an issue before starting work on the PR


Docker to run tests locally

Q
A

Type
improvement

BC Break
no

Fixed issues

Summary
In order to run test locally without Travis service and using the necessary dependencies with a local configuration.

Thanks for your contribution @josemiguelq! Before you continue this work, I'd like to point out that we've previously declined a docker contribution, since none of us use docker in their development workflow (see https://github.com/doctrine/mongodb-odm/pull/1868#issuecomment-427244389 for a longer explanation).
That said, I'm ok with providing a docker setup, given that some basics are covered:

The setup needs to be tested: since none of the maintainers use docker in their workflow, we most likely wouldn't catch errors in the docker setup. This can lead to a bad experience for users if the "just run this command" setup does not work
By merging the pull request, the maintainers essentially agree that they will be maintaining the code provided by a contributor. Given what I said above, none of us currently feel comfortable to do so, so we're relying on the community to maintain this part. If the setup breaks our CI pipeline, this will most likely lead to the setup being removed to not block any work unless a contributor can fix it in a timely manner.

Unrelated to the above points, you've created you pull request against the 1.3.x branch. This branch is in bug fixing mode only, and is not worth any additional effort, especially given that 2.x uses a different architecture (it uses a different driver and doesn't need the mongo-php-adapter package), which would require the work to be repeated.
I'm closing the PR since it targets the wrong branch and invite you to re-create it against the master branch if you are ok with the points mentioned above.

@alcaeus in case of core Doctrine ODM team that holds true, but in case of small contributors - like myself - setting up a proper testing environment, with integration tests against a real database - proved to be rather difficult and undocumented.
This made it more difficult for me to join and properly test my code without running it on Travis, locally. In my opinion it might be beneficial to either provide what testing environment should look like. Using docker the tasks of setting up PHP and MongoDB are simplified.
While obviously maintaining this is out of score for core, I would say it's worthwile if it's noted that it is a "best effort" approach.
This does not impact actual tests in any way. Lower barrier of entry to project might bring more benefit that introduced cost of maintenance.

@Steveb-p thank you for your insights.
In case the wording was not optimal, I'm not closing this PR because we're not supporting it, but because it was created against the wrong branch. If people need this setup and are willing to maintain it, I'll gladly merge a pull request.
At the same time, I won't be using docker for anything in the near future, as my current setup covers more use-cases (which admittedly is a side effect of working with MongoDB day-in, day-out), and is still painfully slow on MacOS on top of that. However, I don't want to force my way of doing things (TM) on anyone, just like I don't want to be forced someone else's way of doing things on me.
The above is the reason why I'd like this tested (somehow): this helps ensure that new users will find a working solution in docker if they need it, without being forced to use it if they don't want to. This doesn't mean that we should run the test suite on docker in travis-ci, but we should at least try to build the docker image to ensure it succeeds.

@alcaeus @Steveb-p
I'm glad for your review before I finish the PR.
I currently using MacOs and my first contribution was very painful because in my case this will mess my current local setup :/. I try keep the the environments already used in travis CI, but you dont need use for Travis, because my goal is the local setup.
I test the changes using docker to run the test of my last PR.
I agree with your points about none of you currently feel comfortable because you don’t  use docker in development workflow, but the points of @Steveb-p are very interesting too and this is my the motivation, make easily the contribution.
@alcaeus What can we do to make you feel comfortable with a test of this Docker setup?

@alcaeus Can you reopen? I can’t reopen to change the base and I would like to keep the comments of this PR.

Can you reopen? I can’t reopen to change the base and I would like to keep the comments of this PR.

As much as I'd like to, GitHub won't let me:

Please create a new pull request and link it to this one. Sorry for the extra work.

What can we do to make you feel comfortable with a test of this Docker setup?

I think if we have a travis build step that builds the docker image and makes sure it's successful, this would be a good first step to ensure the docker setup is still working. We can then always improve on it or do more with the docker setup.

As much as I'd like to, GitHub won't let me

It should allow it if the josemiguelq:feature/docker-local-test branch is force pushed back to e30bb79. Then it after reopening it can be force pushed again to the current position it is on.
@josemiguelq even if this commit no longer exists in your repository, as long as git garbage collector didn't run, it should be accessible to you by
git checkout e30bb79

Git usually keeps commits for some time before discarding them.


closes #1187

I believe the behavior described before was due to bad occtype ID's being assigned. New code increments the last ID from the group by 1, which i I think was the intent of the original author.

@rnugent3 that change should have fixed the issue. Along with it I removed the tracking of group id from occtypes. Occtypes don't need a group ID because they're children of a group, with an ID already. It was redundant, and leading to situations where they dissagreed.


Adding group-manager deployment.

I did this together with @michaelottofits, not sure where all these helm values should come from... :confused:

Also stale. @droid42 can we close this PR?

Stale, re-open if necessary.


Upload all local images referenced and replace the links

Upload all local images referenced in a markdown file to the cloud and replace the links.
Can this be achieved?
Use backgrounds

There are a lot of pictures in the article, and it is troublesome to upload them one by one.
It is not conducive to publishing to other platforms
Thanks for the reply.🤗

上传一篇markdown文件中引用的本地所有图片至云端并替换链接
请问能实现这一点吗？
使用背景

文章中有很多图片，一 一上传很麻烦。
不利于发布到其他平台
谢谢回复🤗

理论上可以实现，列入计划


ansible-playbook bootstrap.yml -k

TASK [pre-ansible : Get os_version from /etc/os-release] ******************************************************************************************************************
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": true, "failed": true, "rc": 5, "stderr": "Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.\r\nPermission denied, please try again.\r\n", "stdout": "", "stdout_lines": []}

PTAL @LinuxGit

@alexliu5678 Hi, what's your ansible_user in inventory.ini? If it's normal user and sudo privilege escalation need password, you should add the -K(upper case) parameter as well. ansible-playbook bootstrap.yml -k -K, see Ansible Deployment. You can new issues in https://github.com/pingcap/tidb-ansible if you encounter any other deployment problems.


Add ServiceRuntime#beforeCommit [ECR-3584]

Overview

Add ServiceRuntime#beforeCommit.
Temporarily includes #1128, just skip the commit during review

See: https://jira.bf.local/browse/ECR-3584
Definition of Done

[ ] There are no TODOs left in the code
[x] Change is covered by automated tests
[x] The coding guidelines are followed
[x] Public API has Javadoc
[x] Method preconditions are checked and documented in the Javadoc of the method
[x] Changelog is updated if needed (in case of notable or breaking changes)
[ ] The continuous integration build passes

Coverage increased (+0.04%) to 85.421% when pulling b17f6dc21f7f71a7e357b9136c629142f5b6c901 on dmitry-timofeev:add-before-commit-ECR-3584 into 46c5efbc30d320eb453bc348a0b3f773734a18f3 on exonum:dynamic-services.


admin: Document how to make signed release tags

Fixes #4403
Also updated some other language in the RELEASING.md document.

This has been posted for a week. Any comments?


doc: added Astrobee ROS Demo to documentation

Self explanatory - is it useful @bcoltin ?

Yes, glad you could release it! Thanks!

Oh, sorry, can you change the pull request to be to develop?

Done


Security through obscurity

First off, thanks for creating this plugin. I currently use it but wanted to call out misleading statements in the docs. The way you have the decryption key as an anchor on the URL does not mean it cannot be read. While it is true browsers do not directly send this to the server, this can be sent to a server through JavaScript. I'm not suggesting you are or plan on doing that but I think it is very important that users of this plugin understand the risks and that the encryption method you have chosen is not very secure. Even a malicious browser plugin could read the decryption key.
Ideally, it would be great if you open sourced the back-end portion so that two things can happen:

there is transparency around the code
users have an option to fork and self host and use other means of encryption

As it is right now, I don't share anything that I wouldn't want to be public knowledge because the chosen encryption method is not secure.

Agreed completely. The service isn't designed for sharing sensitive information, it's solely a quick way to publicly share an Obsidian note. Any recipient could forward on the link to anyone else they choose.
The purpose of the encryption is mainly so that notes aren't stored plaintext on the server (for users who prefer that).


sbgn logic module

a self contained module that handles all of the sbgn logic

e.g is multimer, has clonemarker, etc.


Display rebuild link in local case only

In Jenkins, users can use Rerun in Grinder link or Rerun failed tests in Grinder link once https://github.com/adoptium/aqa-tests/issues/3219 is completed. To avoid confusion, we should only display rebuild in the local case. Code that needs to be updated:
https://github.com/adoptium/TKG/blob/eb1a3a0c34c5f809c6aefe714b15a83f44b19f39/scripts/resultsSum.pl#L258-L301
Details:

if $ENV{'HUDSON_URL'} is defined, do nothing
if $ENV{'HUDSON_URL'} is not defined, create rebuild link. Move the existing logic under if block

if ((!defined $hudsonUrl) || ($hudsonUrl eq '')) {
...
}

remove all Jenkins specific parameters - jenkinsParam

Hi @llxia, it would be greatly appreciated if you could assign this issue to me!

For anyone needs to install Apache Ant on Mac OS, it could be a more intuitive way:

Download binary file ends with .zip from Apache Ant Binary Distributions.
Unzip the file and rename the folder as 'ant'.
Open the Home finder window and drag the ant folder into the Home directory.
In the terminal, run the command cd ant/bin; pwd, you will get something like /User/(your username)/ant/bin, copy it for later usage.
Run the command cd  ~ which will bring you back to the Home directory.
Run the command open -e .bash_profile, a bash window will pop up.
Insertexport PATH=${PATH}: followed by the link you just copy
In the terminal, type . ~/.bash_profile
You are good to go! ☺

I believe this issue is resolved.


Remove generics from State

We discussed this a while back, and I ended up implementing it for #58. If this still sounds like a good idea it'd be nice to get it into master to avoid having to fix conflicts every time something in core changes.

Yeah, I like this!


Bad error message for type conversion error on insert

See https://github.com/dolthub/go-mysql-server/issues/610 for example. The error message gives no indication which value is faulty. (And it should also just work, string to numeric conversion should not be a problem).
Error 1105: unknown error: cannot convert type LONGTEXT to INT

This error message has been improved, closing this out.


Feat add join hints

Proposed changes
add join hints to branch-2.0
document: doris/docs/en/query-acceleration/hint/joinHint.md

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run p1


Add NotificationContainer and notify

Adds the <NotificationCenter /> which when added to the DOM, will allow users to show <Banner />s as notifications using the notify API.
Major changes:

<Notify /> -> <Banner /> because having a Notify component and a notify API was confusing, also feels more accurate.

<Banner /> now accepts title and message slots instead of props to allow "~r~ i c h" content and components to be used.

[x] Add docs

<Notify /> -> <Banner /> because having a Notify component and a notify API was confusing, also feels more accurate.

Works for me! The component that is now called Banner is already being used in App, so we'll need to update some uses when we upgrade.

<Notify /> -> <Banner /> because having a Notify component and a notify API was confusing, also feels more accurate.

Works for me! The component that is now called Banner is already being used in App, so we'll need to update some uses when we upgrade.

Yeah I considered that but I figured it is better to pull the band-aid on these changes now before we wrap the migration. I considered keeping an marking the Notify as @deprecated but I didn't want it to linger.

Looks awesome! Thanks! Will it be possible to replace all existing uses of notify with this in app, even in the frontend directory?

That's a good question. I don't see why not but we may have to test that out.

pull the band-aid on these changes now

I totally agree, we should definitely make these changes now, just wanted to raise awareness so it's not a surprise when we inevitably upgrade app.


Can't use the script

This is the output I'm getting:
~/Downloads/9gag$ python 9gagDownloader.py example.csv outputDirectory   File "/home/myusername/Downloads/9gag/9gagDownloader.py", line 103     <title>9gag_downloader/9gagDownloader.py at master · B3n3/9gag_downloader</title>            ^ SyntaxError: invalid decimal literal
(The arrow pointing to the 9 in the first '9gag' of line 103)
Please advise.

Never mind, downloaded to wrong file.


Each user session must somehow register message resolvers and/or handlers;
Maybe it is a good idea to have a global initialization configuration, which can be altered per user. For example, a developer would not want to spam to the system's usual message store and would use a RAM-based session-local handler in the DEBUG mode instead.

Possible implementations are:

an ON-LOGON trigger;
initialization block in the LOG$ package.

I think LOG$ must call some procedure dynamically in the initialization block. Errors
can be either swollen at all or written into an internal log table.
Procedure must be called oraspect_init and must be available by this name from within the oraspect owner schema either directly or via a private/public synonym.

log$init is called upon log$ initialization


slow deleting "large" (>100GB) files when sysmon is running

Example: when deleting a 110 GB file it takes 8 minutes with sysmon running. with sysmon not running file deletes in 1 second.
The slow deletes started happening after upgrading sysmon from version <IP_ADDRESS> to 14.13.

I've experienced this issue too. Through trial and error managed to track it down to the FileDeleteDetected Event (ID 26)

This is fixed in v15.11.

Will test v15.11 and report back

v15.12 is approaching, just test with v15.11 and make sure it's good for this case, will shortly publish the next one, as soon as Santa pleases.

This is fixed in v15.11. If file deletion rules are selected and with file hashing enabled, at least the hashing operation will need to complete before the deletion is let through.

Is there a way to disable hash for only FileDeleteDetected Event (ID 26)

Not really, as the hash of the deleted object is the "identity" of the deletion being logged. But that's something definitely to consider!

Or disable hash when file size is over xGBs

We are using line
C:</TargetFilename>
to exclude other drives/files from being monitored by sysmon.
Is there a better way? Exclude by file extension or file size?


Improved WebSocket messaging in await_deposit.rs and await_invoice.rs

This pull request makes the following changes:

Fixes issue #13
I have made changes in handle_socket function  and accordingly in match_method in ws.rs file to improve the websocket messaging logic

@Kodylow  i have made some changes in handle_socket function  and accordingly in match_method in ws.rs file and also tried to explain my approach using comments . Accordingly i have changed handle_ws function in await_deposit.rs file . I am still getting some errors . Can you please check it for me . thanks

@Kodylow i tried to resolve all the changes you suggested but i am getting an error in ws.rs file . Can you please check it for me. Thanks

can you rebase + post the errors

i think i have done the rebasing now.
and the error which i am getting in ws.rs file is

Okay, that error's pretty clear, you're passing ownership of the socket into the method which drops it so you have to either borrow it like &socket, clone it like socket.clone(), or refactor to not drop the socket

hey i think i got what you said , can you now check it . Thanks a lot

Can you reopen this on https://github.com/fedimint/fedimint-clientd , moved the project into the fedimint org

Already done 👍

closing with move to new repo


Vue.js Support?

Would you plan to support vue.js?  @Rovak

vue.js already supports the use of plugins like jQuery. I guess you are looking for a vue.js directive?
In that case you could make a vue.js directive using the following code:
Vue.directive('inline-attachment', function (el, binding) {
  inlineAttachment.editors.input.attachToInput(el);
})

then use it like this:
<textarea inline-attachment></textarea>

Note that i haven't this code myself.

I use it like that

When i paste a image , browser throw the bug :

I found the problem, because i used simplemde
I refer to this link issues

and it works !
Thanks

@loktarjugg I am new to vuejs. Can you please guide me how you put this inline attachment as vue directive. I am facing similar issue to integrate this inline attachment with vue-simplemde v1.0.4
Thanks.


Support regex filter to filter input objects for StaticS3Firehose

It would be nice if the regex filter is supported for StaticS3Firehose like for LocalFirehose.

I'd be down to work on this, but I want to check that you're okay with a potential performance detriment. Unfortunately, there's no native support for passing a regex filter to the s3 api. Any application of a regex filter on the objects would have to be done in the druid code. This should be fine except when there are a ton of objects under the specified prefix. If that sounds okay, I can get started on it.

@gianm @jihoonson I am interested in building this feature. I am almost done doing it on the company's internal fork.


coesa76.py table documentation isn't consistent with code

🐞 Problem
Line 23 of the coesa76.py file. The fourth entry in the "T (K)" column should be 228.65 (not 288.650). This is only a documentation typo fix.
📋  Steps to solve the problem

Comment below about what you've started working on.
Add, commit, push your changes
Submit a pull request and add this in comments - Addresses #<put issue number here>
Ask for a review in comments section of pull request
Celebrate your contribution to this project 🎉

Thanks a lot @reine249 for pointing that out! For reference:
https://github.com/poliastro/poliastro/blob/9a6835478d274ba9dfa9af90747802d4bb968a01/src/poliastro/earth/atmosphere/coesa76.py#L22-L24
Would you like to make the changes yourself? You can do so by going to the file and then clicking the ✏ edit button on the top right.


Pageview with expand effect

I would like to know if it is possible to do something similar to what is done in this video using flutter and pageview (or another widget), when you click on the item the page expands.
https://github.com/flutter/flutter/assets/19750616/e0cdcd4a-e586-4679-8b39-e3a4d141daf9

Hi @egler321
The goal of this Github repo is not to give assistance on personal code/implementation but to improve Flutter framework reporting bugs or feature requests.
Please see flutter's community for resources and ask questions like this. You may also get some help if you post it on Stack Overflow and flutterhelp.
Closing as this isn't Flutter issue itself. If you are proposing a change, please use the appropriate new issue template and fill out the requested details so that we can address this issue properly. Thanks!


How to Upload firmware？

Your project is really cool. I love it. I don't seem to know how to upload the firmware properly. Pico has installed microPython and I have uploaded all the files to Pico's USB drive. The desktop software cannot be opened

Hey @cnn123666 thanks for your interest in the project! Sorry for the very slow reply, unfortunately I haven't had much time to work on this recently, I was in the process of setting up builds as the firmware is now written in TinyGo and not MicroPython.
You can build a .uf2 file as per the markdown file in this folder https://github.com/charlie-haley/flowcontrol/tree/main/src/flowcontrol/cmd/firmware
Hopefully I'll have some more time soon to fill out the documentation a bit more!


getting suppliers for userresolver and idGenerator

Taking supplier for userResolver and versionIdGenerator for runtime injection

This needs a lot more, when we introduce Suppliers, they need to be cascaded, addressed here


Installation error

Hi all,
I tried to update to the current version and got the following error:
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER_ALV failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER_ALV_GRID failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER_RESULT failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER_RESULT_EX failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER_RESULT_WD failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_CONVERTER_SALV_TABLE failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZCL_EXCEL_OLE failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZABAP2EXCEL_NOT_CLOUD failed
Application component 'HLB0009009' is not allowed (see long text)
Import of object ZEXCEL_TEMPLATE_GET_TYPES failed
Does someone have any idea how to get teh missing calsses into the system?
Thank you very much!
Regards,
Veit

I think it's a completely-different issue, not related to abap2xlsx (nor abapGit). The message Application component HLB0009009 is not allowed probably means that the corresponding abap2xlsx package is linked to the BC application component, but as far as I know, abap2xlsx linked its packages to no application component at all. Could you check in your system if you changed the application component of the abap2xlsx packages?

I created a package ZABAP2EXCEL some years ago and now I want to update the ABAP2XLSX component.
The package has application component BC and software component HOME.
I downloaded teh ZIP from abap2xlsx and tried to import it into our SAP T01 system.
When I click on "Pull ZIP", all classes where updated , except the ones mentioned in the above error (e.g.  ZCL_EXCEL_CONVERTER is missing now.)
The long text of teh error is:
Application component 'HLB0009009' is not allowed (see long text)
Message no. PAK010
Diagnosis
Application component 'HLB0009009' is either not allowed for development packages because it cannot be used for assigning in CSS messages or it is not allowed for software component HOME.
So it seems, that some of the Z-classes can be created n my package.

I solved the issue by changing teh application component of teh package from BC to CA.
Now the Converter classes could be created by the installation program.

Good to know that it's solved. I guess it's due to these classes being assigned to a new package some time ago. Application component should be left empty. Anyway, if the issue is solved, could you close it? Thank you.


Equality Predicates

It would be nice to have hash-set= and hash-dict= functions.  I can do (zerop (set-size (set-symmetric-diff a b))) but that seems awkward...

Good idea! I can get to this in a few weeks' time, but if you implement it yourself before then I'd be happy to accept the PR.

I might have time, might not.
If I do, what should happen when comparing things with different :tests?  Should it just be an error, or just return nil to mean that they're not equal?  I'd probably lean toward an error personally...

That sounds like an error to me too. Do you know how to add conditions, restarts, that sort of thing? I haven't used them before but it would be a good excuse for me to learn.

@sjl There's also the question of how you compare equality for the values in the dictionary. I can imagine some use case where one day you want to compare two dictionaries with string values using equal, which is case-sensitive, and the next day you want to use equalp which is not. In that case, it would make sense to pass the value equality predicate as an argument:
(defun hash-dict= (dict1 dict2 &optional (value-eq-p 'equalp))
   ;; magic goes here
  )

Hm, yeah.  Maybe call it value-test to match the vanilla test for the keys?

@sjl I've implemented the equality predicates in this branch, thoughts or suggestions?

Just skimmed over it a bit.  I'm not super familiar with the inner workings of HAMTs but it seems pretty sane.
You might want to consider normalizing the test designator upon construction now that you're comparing them with eq.  Right now I think (set-eq (empty-set :test 'equal) (empty-set :test #'equal)) will fail.  As a bonus, the function lookup once at construction time if the designator is a symbol would save a (symbol-function ...) lookup at every funcall of it.
Then again, resolving the function at construction time means users can't redefine the equality function and expect it to take effect for existing HAMTs... but I feel like it's probably a Bad Idea™ to redefine your HAMTs' equality predicate on the fly anyway.

Wow good catch! I made a fix in 1b521213a3b0b20a4 , is that what you had in mind?

Yeah something like that.   Wanted one of (SYMBOL FUNCTION).

restarts (invokable by number or by possibly-abbreviated name):
  0: [STORE-VALUE] Supply a new value for TEST.
  1: [ABORT      ] Exit debugger, returning to top level.

But I wouldn't blame you if you didn't bother -- that's pretty unlikely in practice (I hope).

Awesome, I used your way. Thanks for the suggestions!


compatibility: extend supported types

Compatibility checks are extended to support Union, Array, Map and Fixed
types both directly and nested. Primitive and Enum schemas can now also
be used directly and not only in a nested record structure. The simple
presentation for types in maps and arrays is also made to look at
compatibility promotions correctly. In addition, the test suite is
extended with more schema checks to increase coverage.

Fixes #58 additionally


Save credentials as an (encrypted) file

In the Twitch login panel, add a button to save the credentials in a file.
The file could be encrypted for example with File.open_encrypted() or using the Crypto class.

Hey, i already finished the implementation of a credentials manager.
The implementation features a custom resource class (CredentialsManager) that handles the storage and encryption
of all locally stored oauth tokens.


add cmake support

This commit provides a way to make the package easy to use and will allow it to be merged into vcpkg in the future.

Thanks for the contribution! I am happy to see the project be used for different purposes.  However, it's confusing for me to have two different build systems, I would like to keep the project as simple as possible. Do you mind just maintaining a project yourself and linking mini-gdbstub as a submodule if there are any requirements?

The use of submodules still requires users to write their own scripts to call the library, as this library does not provide an easy-to-use way. Because I personally wrote scripts during this process, I also submitted these codes. These codes can make it easier for others to use them.
For example, if we use cmake, we can easily integrate the lib with the following code.
find_package(mini-gdbstub CONFIG REQUIRED)
add_executable(test_mini-gdbstub test.c)
target_link_libraries(test_mini-gdbstub mini-gdbstub)

I don't get the point. Making it as a submodule should only have differences in the project layout. There should be no other differences compared to taking this change. Even if this does matter, fork this project and apply the change yourself could be a solution.
In my position, I want to make the project minimalist. Makefile has always been my best choice, and maintaining two build systems will take a lot of effort for me.