TFLite Movenet multipose/lightning input error

Hi,
I am trying to load and run the Movenet multipose model, the loading of model works fine but when I try to run it gives this error:
java.lang.IllegalArgumentException: Cannot copy to a TensorFlowLite tensor (serving_default_input:0) with 3 bytes from a Java Buffer with 491520 bytes.
As I can understand (and also I looked the model graph in Netron app) the input of the model is type: uint8[1,1,1,3] , and this is what the error is also telling, that my converted image doesn't fit the input of the model. So my question is: is this intentionally or the model is not correct ?
I downloaded model from Tensorflow Hub -> https://tfhub.dev/google/lite-model/movenet/multipose/lightning/tflite/float16/1
And here (in the link above) also is specified that the model accepts 'A frame of video or an image, represented as an int32 tensor of dynamic shape: 1xHxWx3'. I handled the dynamic shape tensor as suggested in the link.
Thank you!

@ArtanBerisha1
In order to expedite the trouble-shooting process, please provide a code snippet to reproduce the issue reported here. Thanks!

Hi, @sushreebarsa
Here are TF versions:
    implementation 'org.tensorflow:tensorflow-lite:2.6.0'
    implementation 'org.tensorflow:tensorflow-lite-gpu:2.6.0'

I am replacing the model in Object Detection Example app(Android App) provided by tensorflow, here is the code snippet that I use to run the inference on Bitmap:
public List<Classifier.Recognition> recognizeImage(final Bitmap bitmap) {
    bitmap.getPixels(intValues, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());

    imgData.rewind();
    for (int i = 0; i < inputSizeWidth; ++i) {
      for (int j = 0; j < inputSizeHeight; ++j) {
        int pixelValue = intValues[i * inputSizeHeight + j];
        if (isModelQuantized) {
          // Quantized model
          imgData.put((byte) ((pixelValue >> 16) & 0xFF));
          imgData.put((byte) ((pixelValue >> 8) & 0xFF));
          imgData.put((byte) (pixelValue & 0xFF));
        } else { // Float model
          imgData.putFloat(((pixelValue >> 16) & 0xFF));
          imgData.putFloat(((pixelValue >> 8) & 0xFF));
          imgData.putFloat((pixelValue & 0xFF));
        }
      }
    }
    modelOutput = new float[1][6][56];
    xCoordinates = new float[17];
    yCoordinates = new float[17];
    confidences = new float[17];

    Object[] inputArray = {imgData};
    Map<Integer, Object> outputMap = new HashMap<>();
    outputMap.put(0, modelOutput);

    tfLite.runForMultipleInputsOutputs(inputArray, outputMap);  // <- this is where I get the error

    final ArrayList<Recognition> recognitions = new ArrayList<>(NUM_DETECTIONS);
    for (int i = 0; i < 6; ++i) {
      for(int x = 0; x < 17; x++) {
        yCoordinates[x] = modelOutput[0][i][0 + x];
        xCoordinates[x] = modelOutput[0][i][1 + x];
        confidences[x] = modelOutput[0][i][2 + x];
      }
        recognitions.add(new Recognition(xCoordinates, yCoordinates, confidences));
    }
    return recognitions;
  }

Hi @ArtanBerisha1 ! Can you check this thread to change your image width , length and input shape accordingly ? Thanks!

Hello
Im working on a similar project and ran across the same issue
Could you please let me know if you found any solution to this

@Raaed-Ilham Could you please create a new issue after filling all the details so that we can track the same?
Thank you!

@Raaed-Ilham Could you please create a new issue after filling all the details so that we can track the same? Thank you!

Done! Please take a look at it if possible
Thanks a lot
#66564


Visual Studio crash after create class

I thought this issue was in V 16.10.0 and V 16.10.1 solve it
note  (I have installed 16.11 Preview 1)

VS Code Version: 16.10.1
OS Version: 21H1

Please file an issue against Visual Studio (this repo is for VS Code)


types(runtime-core): handling PropType

fix #1891
Honestly don't know why adding | {} works here 🤔

This looks to make slightly more sense than #1898 but honestly both are kinda magic 😅


deleting part of the workflow

Testing whether the reviewers get auto-assigned on PR open (expectation is they are)

Didn't work, maybe as I'm the code owner for the /.github/ path, it flunked?


Azcopy login command does not work. Please help

Which version of the AzCopy was used?
Used azcopy_linux_amd64_10.15.0
Note: The version is visible when running AzCopy without any argument
Which platform are you using? (ex: Windows, Mac, Linux)
Linux (ubuntu VM) via Docker Image
What command did you run?
           echo "export AZCOPY_SPA_CLIENT_SECRET=${clientsecret}" >> $BASH_ENV
           echo "export AZCOPY_AUTO_LOGIN_TYPE=SPN" >> $BASH_ENV
           echo "export AZCOPY_SPA_APPLICATION_ID=$ARM_CLIENT_ID" >> $BASH_ENV
           echo "export AZCOPY_TENANT_ID=$ARM_TENANT_ID" >> $BASH_ENV
           source $BASH_ENV
           printenv #this is printing all values correctly
           echo "Hello" > /tmp/magic.txt
           wget https://aka.ms/downloadazcopy-v10-linux
           tar -xvf downloadazcopy-v10-linux
           sudo mkdir /usr/bin/mydir
           sudo cp ./azcopy_linux_amd64_*/azcopy /usr/bin/mydir
           cd /usr/bin/mydir
           ls -lrt
           sudo chmod 777 azcopy
           sudo apt install keyutils
           keyctl session workaroundSession
           ./azcopy login --service-principal --application-id $AZCOPY_SPA_APPLICATION_ID --tenant-id $AZCOPY_TENANT_ID
           ./azcopy --source /tmp/magic.txt--destination https://xxxxxxxxxxxxxx.blob.core.windows.net/client-a/magic.txt

Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
What problem was encountered?
I have used keyctl session workaround as per different issues on this repo, but
I am getting error at
keyctl_join_session_keyring: Operation not permitted
How can we reproduce the problem in the simplest way?
Issue same commands above
Have you found a mitigation/solution?
somebody suggested to use keyctl, but its not working

Hi, I've had the same issue. I found that removing the seccomp docker file resolves the issue for testing purposes but this is not recommended.
Has anyone had any luck modifying the docker seccomp file enough to allow azcopy login to work?

Update:
I've fixed azcopy login not working on Dockeriszed Linux containers.
The following Linux system commands are blocked by docker through the default seccomp profile; "add_key", "keyctl" and "request_key".
They must be added to the profile using an SCMP_ACT_ALLOW action.

Hi, this is a problem with your environment.  Use auto-login.


Added event handler for MemoryManager operations.

Added event handler for MemoryManager operations.

We could simplify the code by sending the current instance of MemoryManager (i.e., 'this') as the sender when the event is raised. I notice that in most cases, the description of the generated event (MemoryStorageEventEnum.Upsert.GetEnumDescription()) is currently being sent as the sender. While I understand that there may be a specific reason for this, it's worth mentioning to ensure clarity :)

We could simplify the code by sending the current instance of MemoryManager (i.e., 'this') as the sender when the event is raised. I notice that in most cases, the description of the generated event (MemoryStorageEventEnum.Upsert.GetEnumDescription()) is currently being sent as the sender. While I understand that there may be a specific reason for this, it's worth mentioning to ensure clarity :)

Perhaps add comments in the code to explain how this event is expected to work and be consumed. For instance, that the name of the event is sent to allow handlers to filter.

We could simplify the code by sending the current instance of MemoryManager (i.e., 'this') as the sender when the event is raised. I notice that in most cases, the description of the generated event (MemoryStorageEventEnum.Upsert.GetEnumDescription()) is currently being sent as the sender. While I understand that there may be a specific reason for this, it's worth mentioning to ensure clarity :)

There is no reason for this. Your arguments are logical and the event type is sent in the arguments, so it doesn't make sense to send the event type in the sender. I modify it to send the sender correctly.


Cannot modify conda environment in VAI 3.5 vitis-ai-pytorch-cpu container

I'm attempting to upgrade my workflow to VAI3.5 to leverage the new features, particularly the optimizer. I need to install python packages not included in the default conda environment, specifically mlflow. However, the environment requires root permissions to modify. I am running the container via singularity on an HPC system and do not have root privileges. This is the error I receive:
Docker Image Version: ubuntu2004-<IP_ADDRESS>6   (CPU)
Vitis AI Git Hash: 6a9757a
Build Date: 2023-06-26
WorkFlow: pytorch

[1]+  Exit 1                  sudo chown -R vitis-ai-user /opt/vitis_ai/conda
Apptainer> conda activate vitis-ai-pytorch
(vitis-ai-pytorch) Apptainer> conda install -c conda-forge mlflow
Collecting package metadata (current_repodata.json): failed

NotWritableError: The current user does not have write permissions to a required path.
  path: /opt/vitis_ai/conda/pkgs/urls.txt
  uid: 100230
  gid: 5000

If you feel that permissions on this path are set incorrectly, you can manually
change them by executing

  $ sudo chown 100230:5000 /opt/vitis_ai/conda/pkgs/urls.txt

In general, it's not advisable to use 'sudo conda'.

The VAI3.0 container does not have this problem. I was able to successfully build and run with singularity and modify the conda environments as needed. Is this intentional? Is there a workaround?

Hi @danielstumpp ,
there is an error message when you launch the docker.
[1]+  Exit 1                  sudo chown -R vitis-ai-user /opt/vitis_ai/conda
I think that's the reason, could you please launch a new container and try again, I've tried from my side. it works.
or if you want to keep the current running container, you can use '   sudo chown -R vitis-ai-user /opt/vitis_ai/conda' command to change  the permission again

@janifer112x, yes that seems to be the root cause. I was able to work around it in this case by installing additional packages using the --user flag with pip install.
The cause is because I'm running the container via singularity (I can't run docker on the HPC environment I work in). It may be beneficial to support cases like this in some way in the future.


Fix leading zero detection

While using the code from this plugin, I ran into it rejecting '0.3011.0' as invalid semver. I believe to have traced this back to the index not being taken into account in the checks for minor and patch.
This PR adresses this and adds some tests to verify the leading zero detection did not break. For these tests and test dependencies I had to turn the project into a gradle build. While I believe it does not interfere with the functionality of the jenkins library, this is not required. The relevant change could also be applied by cherry-picking the actual fix.
Kind regards and thanks for making this available.

If so inclined, one could also add these tests that I just discovered when looking at the upstream source by @onyxbits: https://raccoon.onyxbits.de/blog/single-class-java-semantic-versioning-parser-implementation/SemanticVersionTest.java

If so inclined, one could also add these tests that I just discovered when looking at the upstream source by @onyxbits: https://raccoon.onyxbits.de/blog/single-class-java-semantic-versioning-parser-implementation/SemanticVersionTest.java

Thanks for the fix and the PR!
I'm not really familiar with Gradle so could you please add a "Test" section to the README.md with instructions on how to run your tests?

Thanks for the fix and the PR!
I'm not really familiar with Gradle so could you please add a "Test" section to the README.md with instructions on how to run your tests?

We don't want anyone executing an un-verified binary so please add the Gradle Wrapper Validation GitHub Action.

We don't want anyone executing an un-verified binary so please add the Gradle Wrapper Validation GitHub Action.

We don't want anyone executing an un-verified binary so please add the Gradle Wrapper Validation GitHub Action.

I felt a bit weird committing the jar but it did not work without it. This is my first time working with wrapper in a public repo - the Github action is a useful find - pleasure to work with you :)

We don't want anyone executing an un-verified binary so please add the Gradle Wrapper Validation GitHub Action.

I felt a bit weird committing the jar but it did not work without it. This is my first time working with wrapper in a public repo - the Github action is a useful find - pleasure to work with you :)


My first addlayer to the map ,the location is wrong.

When I add the grid or trips to the map,the location is wrong.But When click the map,the location is right. I don't konw the reason.

@Wwangchen ,  is it wrong on app launch and correct when you interact with the map (resize, rotate, pan etc?).
Can you share some screen shots and more details about how you are adding gird/trip ?

@1chandu Yes,it is wrong on app  launch.When I click the map ,the location is right.

@Wwangchen, its possible you are setting wrong initial value, you should compare your code with our example, are if you can share your code that sets up the layers I can take a look.

@1chandu，Thank you for your reply. Do you know how to modify the tripsLayer width of the trajectory, by modifying the source code. I tried a lot but failed.  I konw the strokeWidth  has been abandoned.


Remove Cancellation Tokens from FlushAsync/WriteAsync calls

To work around https://github.com/dotnet/corefx/issues/28492

That bug was fixed so we could punt this one.

Assuming we can get an updated build soon enough, I'm good with closing this out. But let's leave it open until either we remove the tokens or get the fix.

Agreed, we're going to get the fix in preview 2.

This is just blocked on getting that new corefx build.

@anurse parking under you. I count this one as a potential punt.


Updated the code to use spaces instead of tabs with a space indentation of 4 spaces

Updated the code to use spaces instead of tabs, and added a jshint file to help additional collaboration efforts.
Code was untouched, starts a discussion about the change from tabs to spaces and implementing a jshint file.

Looking at the code guidelines for the angular project their .jshintrc file is a spacing of 2. Its also the default spacing for the angular yeoman generator. I will update this PR with those rules. Any other collaborators are free to comment.

The default spacing is 4 with jshint and jslint:
https://github.com/jshint/jshint/blob/master/examples/.jshintrc#L15
http://www.jslint.com/lint.html#options
Two spaces seem to be more common (unfortunately):
http://atroche.org/post/30994290348/javascript-indentation

@panuhorsmalahti - That's correct the default .jshintrc is set to 4 spaces. That's why the PR above is set to 4. Looking at this: https://github.com/angular/angular.js/blob/master/.jshintrc-base shows that the developers behind the core of which this service is built is using 2. I think that we should be using 2 as it is more common, and it's also what the core developers behind the framework uses.

@aaunel @agrublev @voronianski - Do you three have any say in this? The code will use 2 spaces (not tabs) for indentation and the .jshintrc file reflects the same that is used for the core AngularJS project.

@hppycoder personally I don't like 2 spaces indentation.. but I'm not often commit there so it's up to you.

I like the 2 spaces, it's what AngularJS uses, it's what comes default with most IDEs, and most of the ones who use .jshintrc are using. I think I will merge this, if we hate it we can always change it.


Update scalaz-core, scalaz-effect to 7.3.7

About this PR
📦 Updates

org.scalaz:scalaz-core
org.scalaz:scalaz-effect

from 7.2.35 to 7.3.7
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

💡 Applied Scalafix Migrations

org.scalaz:scalaz-.*:7.3.0 (created no change)

https://raw.githubusercontent.com/scalaz/scalazfix/v0.1.2/rules/src/main/scala/scalaz/ScalazFix.scala

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalaz" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scalaz" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, scalafix-migrations, commit-count:1

Superseded by #421.


Mac OSX Yosemite - All apps to large for window (zoomed in)

I have downloaded quite a few apps and even have built some simple ones. There is one glitch I am having though.
Whenever I use an app made entirely out of node-webkit (with the frameworks and such), the window is too "zoomed in". What I mean is that the content inside the programs window does not fit. (See Images Below.)

I am running Mac OS X Yosemite if this makes a difference.
I hope to hear back from someone.

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

I'm running node-webkit on yosemite both retina and standard resolution and haven't seen this one. Could you provide more details on your screen setup?

I have the same issue since the Yosemite 10.10.2 beta update. A way around it is to check "Open in Low Resolution" in the .app info window.

Sooo...

I've connected an external display with apps opened (with low res checkbox)
Unchecked the low res checkbox
Reopened one of the app (It looked fine on external display and retina)
Disconnected the external display (The app still looked fine on the main retina display)
Closed the app and reopened it to make sure, everything looks fine.

I don't know what caused this in the first place. Even a reboot wouldn’t solve the issue before.


Node 16.3.0 breaks CI tests

Node 16.3.0 was released four days ago and now the CI is failing with this specific Node version.
Running with Node 16.2 again fixed the issue (https://github.com/hyperledger/aries-framework-javascript/runs/2753075392?check_suite_focus=true).
I've also rerun the CI of #304 (https://github.com/hyperledger/aries-framework-javascript/runs/2753068469?check_suite_focus=true) and that also seems to be failing with 16.3
Originally posted by @TimoGlastra in https://github.com/hyperledger/aries-framework-javascript/issues/303#issuecomment-855243034

@TimoGlastra Is this still an issue?

Not sure. I think we could try by testing for 16.x again which should pick 16.13.0 now. We could also add Node 17 to the test matrix

Not sure. I think we could try by testing for 16.x again which should pick 16.13.0 now. We could also add Node 17 to the test matrix

I think that adding 17.x might be nice as it is the latest. But not too sure if we want to replace 12 or 16 or add it.

I'd say let's add it. They run in parallel so doesn't add too much time to the CI process and thin it would be good to know when we break something


train error happens when I train my own data use the custom branch

Traceback (most recent call last):
File "/home/anaconda3/envs/lstr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/anaconda3/envs/lstr/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "train.py", line 54, in prefetch_data
raise e
File "train.py", line 50, in prefetch_data
data, ind = sample_data(db, ind)
File "/home/LSTR/LSTR-custom/sample/custom.py", line 71, in sample_data
return globals()[system_configs.sampling_function](db, k_ind)
File "/home/LSTR/LSTR-custom/sample/custom.py", line 31, in kp_detection
mask  = np.ones((1, img.shape[0], img.shape[1], 1), dtype=np.bool)
AttributeError: 'NoneType' object has no attribute 'shape'

Hi,
It happens when the image is not loaded correctly. Please check out the path you pass to cv2.imread at
https://github.com/liuruijin17/LSTR/blob/7e4e4f1ad5844be492007cf89e81e574c764d307/sample/custom.py#L30

Hi, It happens when the image is not loaded correctly. Please check out the path you pass to cv2.imread at
https://github.com/liuruijin17/LSTR/blob/7e4e4f1ad5844be492007cf89e81e574c764d307/sample/custom.py#L30

hello, I know the problem is in this line, but the print path shows that it seems to be fine

@liuruijin17 Dear author, I solved this problem by converting the image format from .png to .jpg.

Hi
I have the same issue. My files are in jpg only. But I am still getting the error

Hi I have the same issue. My files are in jpg only. But I am still getting the error

You can print the path as what I did.

I see the following piece of code which might be setting the image path in db/custom.py line 129:
image_name = anno_name[:-4] + '.jpg'
Why are we setting it using [:-4]? Is this what might be causing the error? Because I printed the path, my files are named 0045.jpg, but the code is picking only 5.jpg as file name. I am uploading my files from a Windows machine to Ubuntu AWS instance, if it helps.


Hammer.js not working on Windows 8.1

I've got Windows 8.1 on a surface tablet pro 3.
The pinch event does not work.
Please check this http://codepen.io/anon/pen/ZGOyRZ
Those events are not triggered, no matter if I use an SVG or div, same thing.

Can you check with this? http://codepen.io/anon/pen/YXgzZb?editors=101

Using the codepen example ....The swipeleft and swiperight does not work. Tap works fine .I could not get pinch to work either by pinching the svg with 2 fingers. windows 8.1 on the surface pro3.

Here is a work around that does work fine on surface pro.  http://codepen.io/njmcode/pen/kLcad

It works for me on Windows 8.1 / Surface on IE 11 and Chrome. Firefox does not work. What browser are you using?


Adding name constraint extension to cert using app fails

$ cat extension.conf
[ca_nameconstraint]
nameConstraints=critical,permitted;DNS:.ibm.com
nameConstraints=critical,permitted;email:.ibm.com
$ LD_LIBRARY_PATH=. ./apps/openssl x509  -extfile extension.conf  -extensions ca_nameconstraint  -in /tmp/IBMInternalRootCA.crt -out /tmp/IBMInternalRootCA_out.crt -addtrust serverAuth -addreject clientAuth
$ LD_LIBRARY_PATH=. ./apps/openssl x509   -in  /tmp/IBMInternalRootCA_out.crt -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C = US, O = International Business Machines Corporation, CN = IBM Internal Root CA
        Validity
            Not Before: May 31 04:00:00 2011 GMT
            Not After : Jan  2 03:59:59 2035 GMT
        Subject: C = US, O = International Business Machines Corporation, CN = IBM Internal Root CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:d4:28:6b:a4:f5:39:ab:8b:8d:d1:dd:26:ae:4b:
                    b8:18:f6:b4:3d:0d:7b:d1:c2:49:67:6d:6f:b7:4e:
..
                    be:01:3b:c5:eb:75:d6:b6:55:0a:35:88:36:6c:f0:
                    0f:1b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            Netscape Comment:
                .0Generated by the Security Server for z/OS (RACF)
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier:
                F9:DE:18:E5:9E:30:13:69:51:A7:FD:79:85:48:8C:7C:0E:6F:D8:E3
    Signature Algorithm: sha1WithRSAEncryption
         85:7d:3c:a8:6f:cc:06:20:e1:a1:f7:2f:e0:68:87:f6:8b:21:
         d8:29:44:95:04:db:3b:f1:ff:fc:6b:50:50:1d:0e:13:24:10:
..
         15:2e:3c:3f:91:b4:ef:6c:f1:ac:84:c1:5a:a9:df:e1:d8:d0:
         50:6a:86:52
Trusted Uses:
  TLS Web Server Authentication
Rejected Uses:
  TLS Web Client Authentication

I can confirm that this is the current behaviour. It's a little confusing given that the usage should allow for this to work. Currently the certificate is not re-encoded unless it is going to be signed or self-signed. This is understandable in a way because if the extensions change then the certificate signature is no longer valid.
There may be circumstances where this is still desirable, e.g. when creating a template certificate to be signed later, so I've made some changes on a branch to allow this:
https://github.com/jon-oracle/openssl/commit/9acd1df641b6e80482c980ddb0d270b37195629c

The template, that would be a csr, no?

Yes a CSR would be a more standardised way to generate certs. I sometimes find when I'm generating test certs that getting the cert to 'look right' by adding/modifying fields and extensions then signing it after is quicker & easier.

Sorry, I had forgotten the "mini CA" capabilities.  What's lacking in @grooverdan's attempt is a key to sign the resulting certificate with.  Have a look at the option -signkey for this purpose.
Otherwise, "a template certificate to be signed later" is-a CSR.  There's no way around that (unless you roll your own software for it, of course)

i'm happy to accept i'm using it wrong, especially if the workaround is hard.

Well, unless I'm entirely off base, the workaround is -signkey (i.e. you must sign the resulting new certificate), and should therefore be quite easy (provided you have a key to sign with, of course).
A side note: as you must have noticed, the trust settings got added successfully.  The reason is that they are attached to the certificate file, but not part of the certificate itself.  Extensions, on the other hand, must be part of the certificate itself, which is the reason you must also sign the new certificate.

I think this ticket is ready for a close.  If you find new issues with what you're trying to do, please feel free to file a new issue...

thank you @jon-oracle @levitte


feat: adding subscribe newsletter section

Is your feature request related to a problem? Please describe.
adding subscribe newsletter section

Its been  done today , I request to kindly look into another problem statement !


appframework 3.0 beta envent and scroll question

I try to use appframework 3.0 beta in my project .but I find some questions about panel key event and put up scroll to use ajax to request data. is not good to use and I need use lots of time to study . i 'm coder for android app. i want At the top speed to make html nested in my app.Rather than how to study and study.and Can you give some example of key points?

Questions like this should be asked at https://forums.html5dev-software.intel.com/ or on stackoverflow


example(next.js): fix docs label for next_js_binary location

The /apps/alpha package does not contain next_js_binary for this example.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the fix 👍


Patch 1

Fixes the function names in the main.c to to reflect the current naming standard in box2c

Fixed in main


Group submission access

When accessing group submissions, there will no longer be enough to provide any group ID > 0, the current user must also be a group member (or course teacher).

Coverage decreased (-0.05%) to 46.109% when pulling aa09e9b0143c3871ffc860295cec764255b2ada1 on group_submission_access into a0a7a2eed6997951814bc90b31b7bffb0f924c56 on master.


Windows Support / Rewrite hooks to Python

What problem are you facing?

I cannot use pre-commit from Windows cmd.exe or PowerShell as it depends on bash.  Only way is to use "Git Bash"
How could pre-commit-terraform help solve your problem?

I think the bash dependency should go away.  Git is used on Windows outside of Git Bash all the time... either directly by developers using PowerShell or cmd.exe... or indirectly by other tools/IDEs, etc.
pre-commit itself is a Python script, so any environment where pre-commit is running necessarily already has Python available.  I'd like to see those shell scripts converted to Python.  It could use the subprocess module to invoke the Terraform binary.
I'm willing to do this work if you're open to it.

Yep, we're open for contributions. We welcome and encourage them. Especially those of such a brave kind 👍🏻 You may take the https://github.com/antonbabenko/pre-commit-terraform/blob/master/.github/CONTRIBUTING.md as a base point. While it is not quite Windows-aware I guess, it may probably help you with the direction.

I'll recommend building PoC on something simple, like hooks/terraform_fmt.sh, test it execution speed on big repo via pre-commit run -a and compare it with current realization, to understand is it worth it at all.

Sounds good.  Just wanted to make sure you'd be okay with taking on Python as a dependency before attempting a prototype.
To me at least, Python makes more sense of a dependency than Bash does since any environment running pre-commit already has Python but not necessarily Bash.
I'll give it a try.

Just wanted to make sure you'd be okay with taking on Python as a dependency

As you already mentioned, Python is a hard dependency for pre-commit framework that pre-commit-terraform is based on. So we actually can't decline Python =)

Python makes more sense of a dependency than Bash

If you feel you can replace all the shell related bits with Python, as @MaxymVlasov already mentioned above we'll be keen to see whether this can be viable and feasible solution.
It's not about just Bash as there are other CLI utilities in use also. Not talking about the "generic" CLI tools like terraform, infracost, checkov, terraform-docs, tflint, and others, which you'd probably not rewrite in Python, but which you would need to implement logic for if you're targeting to support not just Linux/macOS, but also Windows.

@yermulnik I'm happy to discuss this here as suggested.
I am confused by asking me to look at man 1 bash because while the hook is implemented in bash, these --env-vars are clearly not interpreted via Bash itself.
Use the following args...
  - id: terraform_fmt
    args:
      - --env-vars=DEBUG_START="start
      - --env-vars=DEBUG_END=end"
      - --env-vars=DEBUG_MID=mi"d
      - --env-vars=DEBUG_BOTH="both"
      - --env-vars=DEBUG_BARE=bare
      - --env-vars=DEBUG_MSG1="This is not how "bash" works"
      - --env-vars=DEBUG_MSG2="this is how \"bash\" works"

... and you'll see the behavior differences between what _common.sh supports and what Bash supports.

yaml string
match
how _common.sh exports it
how Bash would handle it

--env-vars=DEBUG_START="start
NO
"start
unexpected EOF while looking for matching `"'; syntax error: unexpected end of file

--env-vars=DEBUG_END=end"
NO
end"
unexpected EOF while looking for matching `"'; syntax error: unexpected end of file

--env-vars=DEBUG_MID=mi"d
NO
mi"d
unexpected EOF while looking for matching `"'; syntax error: unexpected end of file

--env-vars=DEBUG_BOTH="both"
maybe
"both" ( or both if #651 gets merged )
both

--env-vars=DEBUG_BARE=bare
YES
bare
bare

--env-vars=DEBUG_MSG1="This is not how "bash" works"
NO
This is not how "bash" works
this is not how bash works

--env-vars=DEBUG_MSG2="this is how \"bash\" works"
NO
this is how \"bash\" works
this is how "bash" works

My point is, man 1 bash is not the place to look at what these hooks support.
For the purposes of this feature, I just need to know what to support.  I can implement it to work exactly the same.  I'd actually prefer if these hooks didn't fully support Bash interpretation because that would make this feature impossible.  2 lines of simple bash should be about 2 lines in any language.
So... finally, I'll just ask my question: should my Python implementation exactly mimic the behavior in the _common.sh column in the above table?

So... finally, I'll just ask my question: should my Python implementation exactly mimic the behavior in the _common.sh column in the above table?

For that case, better choose how Bash would handle it interpretation. how _common.sh exports it looks more like a bug than a feature.

I am confused by asking me to look at man 1 bash because while the hook is implemented in bash, these --env-vars are clearly not interpreted via Bash itself.

They are: https://github.com/antonbabenko/pre-commit-terraform/blob/master/hooks/_common.sh#L536 (not specifically interpreted, which makes that function do half of the task apparently, though still those vars are handled by Bash to get them exported into env).

My point is, man 1 bash is not the place to look at what these hooks support.

All of the existing hooks rely upon Bash specifically (apart from terraform_docs_replace.py). Bash is the interpreter of those shell scripts.

For the purposes of this feature, I just need to know what to support.

If I got it right, the gist of this feature is to re-implement hooks in Python. For this goal I'd say you wanted to support the result (altogether with existing user-facing options and features) — if you can replicate what benefits these hooks bring to our users, then the goal is accomplished IMHO.

I'd actually prefer if these hooks didn't fully support Bash interpretation because that would make this feature impossible.

I think the idea must be to re-implement rather than to replicate. Hence you're through the greenfield and have all the options to re-implement the way it is better for users.

So... finally, I'll just ask my question: should my Python implementation exactly mimic the behavior in the _common.sh column in the above table?

I'm more than certain — again — you should be targeting to implement the result, rather than behavior.

PS: Export vars the way they should be exported from within any language. As @MaxymVlasov already mentioned, the _common.sh way to do it is more of a hacky rather than a proper. We had to had a balance between full interpretation (which would imply eval which @MaxymVlasov is against of and this makes perfect sense) and the missing feature that our users asked for.


Multiday Events issue

Kyle, is it possible to default the endDate to be the same as the startDate if endDate is null?
That would solve the issue with mixing single and multiple day event.

I've been going back and forth on this one in my mind and I think I am finally coming around to it. Sorry for the very long, very silent stretch there.

My hesitation has been that multiday events are going to have start and end kind of properties, but there is ambiguity around whether or not a single day event would have start or end and not date. However, if you're creating an events system and for some reason putting the date in start but not end signifies a single-day event, this will work for you.

This has been implemented, along with a new multiDayEvents.singleDay configuration that allows you to explicitly mix single- and multi-day events.

Thanks, sorry for the late reply. Really appreciate what you've done here.


fix: Problem in the description field when using the MariaDB or MySQL

This pull request addresses an issue where the 'description' fields, defined as str in the SQLModel model, were being created as varchar(255) columns in MariaDB and MySQL databases. This behavior was inconsistent with the expected text data type for these fields.
Changes:

Modified the data type of the 'description' fields in the SQLModel model to sqlalchemy.Text. This ensures that the corresponding columns in MariaDB and MySQL are created as text columns, allowing for larger text values.
Note: PostgreSQL is not affected by this change as it does not require a specific size for text columns.

Reasoning:

The varchar(255) data type imposes a character limit, which may not be sufficient for storing longer descriptions.
Using the text data type provides more flexibility for storing variable-length text data without size constraints.

Below is the print with the error generated:

I think it is related to this Issuer that was closed: https://github.com/langflow-ai/langflow/issues/1890
log_error_mysql_maria.log

Hey @MarceloNunesAlves
Thanks for this PR. We just need to add the migration script to it.
The steps should be:
cd src/backend/base/langflow && poetry install
then:
poetry run alembic revision --autogenerate -m "Update description columns type"
then, in the newly created file, paste the following code:
"""Update description columns type

Revision ID: 4522eb831f5c
Revises: 0d60fcbd4e8e
Create Date: 2024-08-20 11:15:58.282318

"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op
from langflow.utils import migration
from sqlalchemy.engine.reflection import Inspector

# revision identifiers, used by Alembic.
revision: str = "4522eb831f5c"
down_revision: Union[str, None] = "0d60fcbd4e8e"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None

def upgrade() -> None:
    conn = op.get_bind()
    # ### commands auto generated by Alembic - please adjust! ###
    inspector = Inspector.from_engine(conn)  # type: ignore

    with op.batch_alter_table("flow", schema=None) as batch_op:
        if migration.column_exists(table_name="flow", column_name="description", conn=conn):
            columns = inspector.get_columns("flow")
            description_column = next((column for column in columns if column["name"] == "description"), None)
            if description_column is not None and isinstance(description_column["type"], sa.VARCHAR):
                batch_op.alter_column(
                    "description", existing_type=sa.VARCHAR(), type_=sa.Text(), existing_nullable=True
                )

    with op.batch_alter_table("folder", schema=None) as batch_op:
        if migration.column_exists(table_name="flow", column_name="description", conn=conn):
            columns = inspector.get_columns("folder")
            description_column = next((column for column in columns if column["name"] == "description"), None)
            if description_column is not None and isinstance(description_column["type"], sa.VARCHAR):
                batch_op.alter_column(
                    "description", existing_type=sa.VARCHAR(), type_=sa.Text(), existing_nullable=True
                )

    # ### end Alembic commands ###

def downgrade() -> None:
    conn = op.get_bind()
    # ### commands auto generated by Alembic - please adjust! ###
    inspector = Inspector.from_engine(conn)  # type: ignore
    with op.batch_alter_table("folder", schema=None) as batch_op:
        if migration.column_exists(table_name="folder", column_name="description", conn=conn):
            columns = inspector.get_columns("folder")
            description_column = next((column for column in columns if column["name"] == "description"), None)
            if description_column is not None and isinstance(description_column["type"], sa.VARCHAR):
                batch_op.alter_column(
                    "description", existing_type=sa.VARCHAR(), type_=sa.Text(), existing_nullable=True
                )

    with op.batch_alter_table("flow", schema=None) as batch_op:
        if migration.column_exists(table_name="flow", column_name="description", conn=conn):
            columns = inspector.get_columns("flow")
            description_column = next((column for column in columns if column["name"] == "description"), None)
            if description_column is not None and isinstance(description_column["type"], sa.VARCHAR):
                batch_op.alter_column(
                    "description", existing_type=sa.VARCHAR(), type_=sa.Text(), existing_nullable=True
                )
    # ### end Alembic commands ###

@ogabrielluiz , I think everything is okay now.

@ogabrielluiz , Do you know when this is going to be merged?

@ogabrielluiz ogabrielluiz I meet another problem on mysql, I think the script should also be changed at the beginning script "260dbcc8b680".
`024-09-04 16:27:44,552 - migration.py[line:218] - INFO: Will assume non-transactional DDL. 2024-09-04 16:27:44,564 - migration.py[line:623] - INFO: Running upgrade -> 260dbcc8b680, Adds tables [09/04/24 16:27:44] ERROR 2024-09-04 16:27:44 - ERROR

utils utils.py:127

(pymysql.err.OperationalError)
(1170, "BLOB/TEXT column 'description'
used in key specification without a
key length")
[SQL: CREATE INDEX ix_flow_description
ON flow (description)]
(Background on this error at:
https://sqlalche.me/e/20/e3q8)
ERROR    2024-09-04 16:27:44 - ERROR    -  api_server.py:129
api_server -
(pymysql.err.OperationalError)
(1170, "BLOB/TEXT column
'description' used in key
specification without a key
length")
[SQL: CREATE INDEX
ix_flow_description ON flow
(description)]
(Background on this error at:
https://sqlalche.me/e/20/e3q8)      `

And I fix the code, I think it works.
260dbcc8b680_adds_tables.py line 105
with op.batch_alter_table("flow", schema=None) as batch_op:
    flow_columns = [col["name"] for col in inspector.get_columns("flow")]
    if "user_id" not in flow_columns:
        batch_op.add_column(
            sa.Column(
                "user_id",
                sqlmodel.sql.sqltypes.GUID(),
                nullable=True,  # This should be False, but we need to allow NULL values for now
            )
        )
    if "user.id" not in existing_fks_flow:
        batch_op.create_foreign_key("fk_flow_user_id", "user", ["user_id"], ["id"])
    if "ix_flow_description" not in existing_indices_flow:
        # Corrected way to specify key length for the description column index
        batch_op.create_index(batch_op.f("ix_flow_description"), [sa.text("description(255)")], unique=False)
    if "ix_flow_name" not in existing_indices_flow:
        batch_op.create_index(batch_op.f("ix_flow_name"), ["name"], unique=False)

@ogabrielluiz ogabrielluiz I meet another problem on mysql, I think the script should also be changed at the beginning script "260dbcc8b680".
`024-09-04 16:27:44,552 - migration.py[line:218] - INFO: Will assume non-transactional DDL. 2024-09-04 16:27:44,564 - migration.py[line:623] - INFO: Running upgrade -> 260dbcc8b680, Adds tables [09/04/24 16:27:44] ERROR 2024-09-04 16:27:44 - ERROR

utils utils.py:127

(pymysql.err.OperationalError)
(1170, "BLOB/TEXT column 'description'
used in key specification without a
key length")
[SQL: CREATE INDEX ix_flow_description
ON flow (description)]
(Background on this error at:
https://sqlalche.me/e/20/e3q8)
ERROR    2024-09-04 16:27:44 - ERROR    -  api_server.py:129
api_server -
(pymysql.err.OperationalError)
(1170, "BLOB/TEXT column
'description' used in key
specification without a key
length")
[SQL: CREATE INDEX
ix_flow_description ON flow
(description)]
(Background on this error at:
https://sqlalche.me/e/20/e3q8)      `

And I fix the code, I think it works.
260dbcc8b680_adds_tables.py line 105
with op.batch_alter_table("flow", schema=None) as batch_op:
    flow_columns = [col["name"] for col in inspector.get_columns("flow")]
    if "user_id" not in flow_columns:
        batch_op.add_column(
            sa.Column(
                "user_id",
                sqlmodel.sql.sqltypes.GUID(),
                nullable=True,  # This should be False, but we need to allow NULL values for now
            )
        )
    if "user.id" not in existing_fks_flow:
        batch_op.create_foreign_key("fk_flow_user_id", "user", ["user_id"], ["id"])
    if "ix_flow_description" not in existing_indices_flow:
        # Corrected way to specify key length for the description column index
        batch_op.create_index(batch_op.f("ix_flow_description"), [sa.text("description(255)")], unique=False)
    if "ix_flow_name" not in existing_indices_flow:
        batch_op.create_index(batch_op.f("ix_flow_name"), ["name"], unique=False)

I fix it in #3678

The columns listed below may also need to be changed from VARCHAR(255) to TEXT.

message.text
variable.value
vertex_build.params

Hi @sa411022, how are you? Do you push a PR about this?


Housekeeping updates

Brings things in sync with https://github.com/rackt/react-router/pull/2492.

I dropped the IRC link because, well: https://botbot.me/freenode/rackt/

The coverage is going to be wrong-ish until https://github.com/caitp/karma-coveralls/pull/30 is released - right now it's just uploading a random browser's coverage instead of merging coverage from all browsers.

Trying to figure out why the Coveralls status check isn't showing up.

PEBKAC on my part with the Karma config, obviously. Coveralls check is fixed now. This is good to go.

:+1:


feat: localstorage synchronizer mechanism

Standards checklist:

[x] The PR title is descriptive.
[x] The PR doesn't replicate another PR which is already open.
[x] The PR has self-explained commits history.
[x] The code is mine, or it's from somewhere with an Apache-2.0 compatible license.
[x] The code is efficient, to the best of my ability, and does not waste computer resources.
[x] The code is stable, and I have tested it myself, to the best of my abilities.
[x] If the code introduces new classes, methods, I provide a valid use case for all of them.

Changes:

Introducing tabs/windows synchronization mechanisms
Created an example with switching UI theme on all open tabs/windows

Other comments:
I will provide the API for these mechanisms in the comments

Bastyon SyncStorage API (app.platform.sdk.syncStorage)
This class has several methods to work with. It is instantiated once, at application start, by calling function init().
Syntax
/**
 *  This function creates event listener for provided state
 *  of LocalStorage parameter.
 */
app.platform.sdk.syncStorage.on('change', 'storage_test_param', (e) => console.log('Changed', e));
app.platform.sdk.syncStorage.on('delete', 'storage_test_param', (e) => console.log('Deleted', e));
app.platform.sdk.syncStorage.on('create', 'storage_test_param', (e) => console.log('Created', e));

/**
 *  This function removes event listener for provided state
 *  of LocalStorage parameter.
 */
app.platform.sdk.syncStorage.off('change', 'storage_test_param');
app.platform.sdk.syncStorage.off('delete', 'storage_test_param');
app.platform.sdk.syncStorage.off('create', 'storage_test_param');

Methods
Method on(...)
Gives us the possibility to subscribe on specific parameter changes.

Argument name
Data type
Description

eventType
String
Creates subscription on provided event type

lStorageProp
String
This is LocalStorage parameter name

callback
Function
Callback for registered event. As unique argument, there is passed StorageEvent object that was sent by browser

Method off(...)
Gives us the possibility to unsubscribe on specific parameter changes.
The arguments are the same as for on(...) with only difference - no callback is needed. See previous paragraph for more
Limitations

Developer can add only 1 event listener for parameter-state pair. No more. Ping me, if they are needed.


#1044 Draggable border in script panel is too thick

Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

There seems like something wrong with the borders yet.  There is a gap between the bottom-panel-drag and top border of bottom-panel.

@matthoward366 Can you please check
default case :

Hover case :

The border is still too thick.   If the div is sized to be only one pixel width it makes the "hover over" area quite small which makes it difficult for the user to get the mouse pointer to change to the sizing cursor. So making part of the div width that is colored like the panel seems reasonable - no?

We don't know the color of the bottom panel since consumers can make the content whatever they want.  In some cases it might not be white which would look odd.

I think we are good on the using the same color for the background and leaving the draggable div.  We just need to update it to use the token instead.


Snackdown2018

What does the program do ?
Solution of ques semiprime
In what programming language it is written?
C++

This pull request do not contains files in specific folders. Please fix it and reopen


No search hits for 'millstone' in Community AMIs on AWS

Just made the latest ami ami-4b8d5220 public. Might have to wait a couple hours for Amazon's search cache to update.

Works now.


Explain better what MERGE button does

When merging entities, me and my colleagues all too often merge in the wrong direction and thus destroy the entity that is more important.
--> A clear description (graphic?) what the button does and in WHICH DIRECTION might help.
Also, part of the problem is that it is hard to discern in the displayed entities to merge, which one is which.
I am currently using the workaround to rename the entities temporarily then go back to the merge situation and after merging again rename the entity.
That's time-consuming and annoying.
--> More info in the display of the entities to be merged might help.

added a new issue for the second part


Support importing Swarm files

Implements #356 / #357. Depends on #366.
This requires CORS enabled on swarm-gateways.net, which is in progress (https://github.com/ethereum/go-ethereum/issues/3350).

Need to update swarmgw first to support other than bzzr://<hash> before merging this.

Added a question to geth: https://github.com/ethereum/go-ethereum/issues/3523

There's still no CORS on the endpoint...

Supports all three Swarm URLs and CORS is now enabled on the gateways. Can be merged.


Remove getTransaction which duplicates getTransactionById

Issue being fixed or implemented
methods getTransaction and getTransactionById with the same functionality
What was done
removed getTransaction, getTransactionById remained because:

getTransaction calles getTransactionById
in dapi rpc method is with the same name getTransactionById
getTransaction almost never used in the tests

What has been tested
unit and integration tests passed
What needs to be tested
nothing.

From our side, it would have been very helpful to have that as a breaking change instead of bug fix.
It took me some times to find that the wallet was unable to register schema because of the wallet unable to fetch a transaction because I expected getTransaction to be a method of a transporter.

You right, my bad.


pull request for e2e test at 12/27/2016 13:15:08

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


How to pass query parameters from the client to fastJoin

Steps to reproduce
(First please check that this issue is not already solved as described
here)

[ ] Tell us what broke. The more detailed the better.
[ ] If you can, please create a simple example that reproduces the issue and link to a gist, jsbin, repo, etc.

Expected behavior
I want to pass query parameters from the client to fastJoin to enable and disable joins and control which fields are returned in the joins.
I am passing the parameters throught the url, example:
http://localhost:3030/products?categories=false&image=true
The documentation only states the following:

// Options for hook API
...
fastJoin(postResolvers, context => query) // supports queries from client

But does not specify how to move the parameters from context.params.query.
Here is the code I am using in my hook.
const query = {
  categories: true,
  image: [['path', 'originalName']]
};

const productResolvers = {
  joins: {
    categories: ($select, ...args) => async (product, context) => {
      initIncludeProperties(product);
      const result = await context.app.service('categories')
        .find({
          query: { _id: { $in: [ product.categoryIds ] }, deleted: false, active: true,
            $select: $select || ['name', 'description'] },
          paginate: false,
          _populate: true, // stop referenced documents from including their referenced documents (no deep nesting)
          acceptLanguage: context.params.acceptLanguage
        });
      addInclude(product, 'categories', result);
    },
    image: $select => async (product, context) => resolveImage(product, context, 'image', $select)
  }
};

This is the actual call of the fastJoin in the hook.
after: {
    all: [
      fastJoin(productResolvers, context => query)
    ],
    ...
}

Actual behavior
When I pass the parameters as is no results are returned. When I remove them the results include joins are returned.
Can someone please explain how to get this to work?
System configuration
Tell us about the applicable parts of your setup.
Module versions (especially the part that's not working):
NodeJS version:
Operating System:
Browser Version:
React Native Version:
Module Loader:

If you were using Feathers/client instead of a REST URL, you would use paramsForServer on the client and paramsFromClient on the server. paramsForServer copies the specified props from context.params to context.query.$client. paramsFromClient does the opposite.
(1) I suggest you make your REST URL compatible with the above so your server could handle calls both from Feathers' clients and REST URLs. The URL format would be something like `?$client[foo]=bar.
(2) Alternatively you could write a custom hook which moved props from context.params.query to context.params.
Once that is done, you have your "options" in context.params and your context.params.query is "clean" for the feathers call.
===========
Something like fastJoin(productResolvers, context => query) suggests you want your client to specify what the query should be. You'd be using something like context => context.params.foo and foo would have to be an object.  Since REST URL parameters are always passed as strings, you'd have to first convert the parameter to an object.

Hi, thanks for the respons. I have got it working following your tips. The strange thing is it only works on the first call. The fastJoin includes are there on the first call. On subsequent calls, with the same or different parameters, the includes are missing. When I restart Feathers it works again on the first call.
Here is the code I put together.
const { setByDot } = require('feathers-hooks-common');

const defaultOptions = {
  clearQuery: false,
  createPlaceholder: true
}

module.exports = function (moveTo, moveList, options = {}) {
  return context => {
    const params = context.params;
    options = Object.assign(defaultOptions, options);

    function isBoolean(value) {
      return value === 'true' || value === 'false';
    }

    function convToBoolean(value) {
      if (isBoolean(value)) {
        value = value === 'true' ? true : false;
      }
      return value;
    }

    function isNumber(value) {
      return !isNaN(value);
    }

    function convToNumber(value) {
      if (isNumber(value)) {
        value = Number(value);
      }
      return value;
    }

    function isArray(value) {
      // To force an array enclose the value in straight brackets, example: [value],
      // this ensures that even a single value is converted to an array
      return value.indexOf(',') !== -1 || value.charAt(0) === '[';
    }

    function convToArray(value) {
      if (isArray(value)) {
        // To enforce a multi dimensional (nested) array add double brackets, example
        // [[value]]
        const multiDimensional = value.indexOf('[[') !== -1
        let values = value.replace(/(\[\[|\[|\]\]|\])/g, '').split(',');
        values.forEach(value => {
          value = convValue(value);
        });
        return multiDimensional ? [values] : values;
      }
      return value;
    }

    function convValue(value) {
      if (isBoolean(value)) {
        value = convToBoolean(value);
      } else if (isNumber(value)) {
        value = convToNumber(value);
      } else if (isArray(value)) {
        value = convToArray(value);
      }
      return value;
    }

    // If required, create empty placeholder
    if (options.createPlaceholder) setByDot(context, `params.${moveTo}`, {});

    if (params && params.query) {
      const query = params.query;

      moveList.forEach(key => {
        if (key in query) {
          // Fix the data types
          query[key] = convValue(query[key]);
          setByDot(context, `params.${moveTo}.${key}`, query[key]);
          delete query[key];
        }
      });

      // If required, remove all remaining properties from params.query to ensure the client cannot
      // pass unsupported or dangerous parameters
      if (options.clearQuery) {
        Object.keys(query).forEach(key => {
          // Make sure we do not remove entries that start with a dolar sign ($), like the ones added
          // by CASL
          if (key.charAt(0) !== '$') delete query[key];
        });
      }
    }

    return context;
  };
};

Here is the call in the hooks.
let query = {
  categories: [['name']],
  image: [['path', 'originalName']]
};

  before: {
    all: [
      moveParams('fastJoin.query', ['image', 'categories'], { clearQuery: true })
    ],
    ...
  }
  after: {
    all: [
      fastJoin(productResolvers, context => {
        if (context.params.fastJoin && context.params.fastJoin.query) {
          query = context.params.fastJoin.query
        }
        return query;
      }),
      ...
    ],
    ...
  },

Here is my url call:
http://localhost:3030/products?categories=true&image=[path,originalName,size]

When I debug the fastJoin code it in all cases calls the anonymous function I'm passing in. The difference is on the first call the data is set on context.params.fastJoin.query on the subsequent calls it is an empty object. The strange thing is that I have added a debugging hook (code below), that sends the value of the object to the console and both before and after the fastJoin hook the value is set...
const { getByDot } = require('feathers-hooks-common');
const logger = require('../logger');
const { neatJSON } = require('../libs/neat-json');

module.exports = function (objectName, obj) {
  return context => {
    if (obj) {
      if (typeof obj === 'string') {
        obj = getByDot(context, `params.${obj}`);
      }

      const message = ` ---------- ${context.path}.hooks::${context.type}::${context.method} ---- object: ${objectName} ----------`;

      logger.info(
        message + '\n' + neatJSON(obj, { wrap: 40, short: true, aligned: true, padding: 1, afterComma: 1, aroundColonN: 1 })
      );
    }

    return context;
  };
};

And the hooks.
  after: {
    all: [
      debugObject('query', query),
      debugObject('fastJoin.query', 'fastJoin.query'),
      fastJoin(productResolvers, context => {
        if (context.params.fastJoin && context.params.fastJoin.query) {
          return context.params.fastJoin.query
        }
        return query;
      }),
      debugObject('fastJoin.query', 'fastJoin.query')
    ]
    ...
  }

Any suggestions why the values seem to be unavailable to fastJoin in all but the first call? While they are printed out in the console before and after the call to fastJoin?

I've just debugged the debug-object hook te findout why it is showing the value while fastJoin is not seeing it. The strange thing is that on the first call the second parameter, which is a string, is a string. On the subsequent calls it is an object with the expected values. When I check the context in the hook the values are missing from params.fastJoin.query. How is this possible? Where is the object comming from as the hook has the path (fastJoin.query) defined?

I don't have the time to debug your code. The first thing I would check is if you are converting your string to an object and saving the object in the same place where the string was stored. The second thing I would do is make the second call use a different value than the first, to confirm you are using the current value rather than an old one.

Hi Eddy, No worries. Thx for your help.
BTW: I have got it working with the find, but the get is still doing wiping the value somewhere. Very frustrating. What I am seeing is that the get calls the products service twice, while the find only calls it once. Is this normal?

The only service calls fastJoin makes are the ones defined in its resolver functions. However each one of these calls may cause hooks to run, and any of those hooks could call a service internally.
Furthermore the authenticate hooks makes a get call on the users service for external requests. If your issue shows itself on users, I would look at that first.


Uninstall previous versions of MUX Framework Package and test apps before running

Updates EnsureMachineState.ps1 to uninstall previous versions of MUX Framework Package and test apps that may have been left around from previous test passes on the machine.
We don't want to uninstall all versions of the MUX Framework package, as there may be other apps preinstalled on the system that depend on it. We only uninstall the Framework package that corresponds to the version of MUX that we are testing. We do this by parsing version.props to determine the current version of MUX under development.
This also includes some minor cleanup in the test scripts. We used to deploy all of our ps scripts into a separate 'scripts' directory on the test machine. This was due to the fact that we used to deploy .net core runtime binaries directly into the root test directory which would interfere with running ps scripts in the same dir. Since we don't do that anymore we don't need the scripts directory and we don't need to keep cd'ing in and out of it.
Closes #984

We only uninstall the Framework package that corresponds to the version of MUX that we are testing.

I understand the concern here, but I worry this is too conservative for when we try to go back and do patch updates to older release branches? It might be nice to have a hammer to enumerate all the dependent app packages and uninstall them too. We can cross that bridge when we come to it, i suppose.

I don't want to unilaterally uninstall a bunch of apps like Feedback Hub, Paint, etc. Skype and Photos is probably ok.
If we go back and patch older release branches (i.e. "older in the future" branches that still have this change), then we will still uninstall the correct package, since we will bring along version.props. If we are testing MUX 2.3, we will uninstall MUX 2.3 which is what we want.

In reply to: 509846085 [](ancestors = 509846085)

Except that MUX 2.3 might be in use by Feedback Hub, Paint, etc and then would fail to uninstall and then the test pass for the ReleaseTest-using-Framework-package scenario would fail to install the MUX 2.3 package. I'm mostly just thinking out loud, I'm not sure if there's a great way to solve this at the moment.

In reply to: 509847213 [](ancestors = 509847213,509846085)

Yeah, I see what you mean. The uninstall would fail in that case. But I don't think it is a major problem. The uninstall would fail, but test execution would continue. We would then try to install the new 2.3 package which would succeed since we would have bumped the version number. The reason we were hitting this issue was that we were trying to install a framework package of the same full version number to one that already exists. This usually does not happen since the packages built have unique-ish version numbers. The problem is that they are not unique across Pipelines, so the CI build and the Release build can generate different packages with the same version number. Which should be fixed by this change.
Though, I suppose we would still hit this in the case where we go back in time to service a package that is in use by preinstalled apps, run a CI build, then run a Release build with the same version number....

In reply to: 509847604 [](ancestors = 509847604,509847213,509846085)

For now, I will just leave it as it is, since it resolves the immediate problem.

In reply to: 509855143 [](ancestors = 509855143,509847604,509847213,509846085)


use orm like https://entgo.io/ instead of writing sqls manually

Describe the solution you'd like
currently, memos support sqlite, mysql, postgresql, but writing target sql separately, we could use orm, like https://entgo.io/ to simplify the db logic and get rid of manually written sql.
Type of feature
Other
Additional context
I would rewrite the mysql to do a POC if accepted

Although it's a bit more complicated to write SQL for each driver, but the execution/migration will be open and transparent. IMO, I think writing raw SQL is better then using ORM.
But you can try adding a new storev1 to the current logic to implement a store that uses ORM, so let's see how it works.

@boojack I was working on https://github.com/usememos/memos/pull/2855#issuecomment-1915945653 and and quite stuck on DB part. I would like to say that the current migration strategy and manual updates is quite tricky and probably (if you may) - it's a good time to use rare opportunity and make DB part slightly more polished.
In case you don't like ORM (which I personally sympathize), may I suggest the approach I used in other projects? sqlc + sql-migrate

@reddec Of course, we can use your design or ORM (as long as it solves the problem correctly and works well). But it's best to do this in a new package and not change the existing store.

I recently started a project that borrows from the memos project structure, It's great and saves me tons of time, but in the store part I found a lot of duplicate code, and I often had to copy code between drivers.
Then I noticed that each driver contains a *sql.DB, Go already handles the differences between drivers through it, drivers call APIs like QueryContext, ExecContext and so on.
For different drivers (based on *sql.DB), the only difference is the sql and args to be executed, while the rest of the scheduling logic is the same. So, I thought it might be possible to raise the scheduling logic from drivers to store and it will cut down on a lot of duplicate code.
For example, the current ListActivities is,
// interface
type Driver interface{
        ...
	(ctx context.Context, find *FindActivity) ([]*Activity, error)
}

// store
func (s *Store) ListActivities(ctx context.Context, find *FindActivity) ([]*Activity, error) {
	return s.driver.ListActivities(ctx, find)
}

// db/sqlite
func (d *DB) ListActivities(ctx context.Context, find *store.FindActivity) ([]*store.Activity, error) {
	where, args := []string{"1 = 1"}, []any{}
	if find.ID != nil {
		where, args = append(where, "`id` = ?"), append(args, *find.ID)
	}
	if find.Type != nil {
		where, args = append(where, "`type` = ?"), append(args, find.Type.String())
	}

	query := "SELECT `id`, `creator_id`, `type`, `level`, `payload`, `created_ts` FROM `activity` WHERE " + strings.Join(where, " AND ") + " ORDER BY `created_ts` DESC"
	rows, err := d.db.QueryContext(ctx, query, args...)
	if err != nil {
		return nil, err
	}
	defer rows.Close()

	list := []*store.Activity{}
	for rows.Next() {
		activity := &store.Activity{}
		var payloadBytes []byte
		if err := rows.Scan(
			&activity.ID,
			&activity.CreatorID,
			&activity.Type,
			&activity.Level,
			&payloadBytes,
			&activity.CreatedTs,
		); err != nil {
			return nil, err
		}

		payload := &storepb.ActivityPayload{}
		if err := protojsonUnmarshaler.Unmarshal(payloadBytes, payload); err != nil {
			return nil, err
		}
		activity.Payload = payload
		list = append(list, activity)
	}

	if err := rows.Err(); err != nil {
		return nil, err
	}

	return list, nil
}

after modification, it will be,
// interface
type Driver interface{
        ...
	ListActivitiesSQL(find *FindActivity) (string, []any)
}

// store
func (s *Store) ListActivities(ctx context.Context, find *FindActivity) ([]*Activity, error) {
	query, args := s.driver.ListActivitiesSQL(find)
	rows, err := s.driver.GetDB().QueryContext(ctx, query, args...)
	if err != nil {
		return nil, err
	}
	defer rows.Close()

	list := []*store.Activity{}
	for rows.Next() {
		activity := &store.Activity{}
		var payloadBytes []byte
		if err := rows.Scan(
			&activity.ID,
			&activity.CreatorID,
			&activity.Type,
			&activity.Level,
			&payloadBytes,
			&activity.CreatedTs,
		); err != nil {
			return nil, err
		}

		payload := &storepb.ActivityPayload{}
		if err := protojsonUnmarshaler.Unmarshal(payloadBytes, payload); err != nil {
			return nil, err
		}
		activity.Payload = payload
		list = append(list, activity)
	}

	if err := rows.Err(); err != nil {
		return nil, err
	}

	return list, nil
}

// db/sqlite
func (d *DB) ListActivitiesSQL(find *store.FindActivity) (string, []any) {
	where, args := []string{"1 = 1"}, []any{}
	if find.ID != nil {
		where, args = append(where, "`id` = ?"), append(args, *find.ID)
	}
	if find.Type != nil {
		where, args = append(where, "`type` = ?"), append(args, find.Type.String())
	}

	query := "SELECT `id`, `creator_id`, `type`, `level`, `payload`, `created_ts` FROM `activity` WHERE " + strings.Join(where, " AND ") + " ORDER BY `created_ts` DESC"
	return query, args
}

The problem with this modification is that drivers can only be implemented via *sql.DB and cannot accept non-sql integrations (e.g. mongodb, redis).

I have created a POC PR https://github.com/usememos/memos/pull/2940, we can discuss the ent there.

@boojack can you reopen this issue, I am still working on this.


Change timestamp of migration

Change timestamp of migration so that it is the newest migration from https://github.com/cloudfoundry/cloud_controller_ng/pull/3952

[x] I have reviewed the contributing guide

[x] I have viewed, signed, and submitted the Contributor License Agreement

[x] I have made this pull request to the main branch

[x] I have run all the unit tests using bundle exec rake

[ ] I have run CF Acceptance Tests

After merging the Backwards Compatibility Tests should be green again.


Create a way to track plexus and node intersections based on triangles

When triangles are drawn, they should return their vertices as points so that the circle knows where is can dray plexuses and nodes.

Probably we want to extend the circle class to include a list of possible intersections


Scaling for the page is too small on some machines and a good size on others.

This is the problem submitted by HQ.


accept comma separated -I and -r

OptionParser can handle comma separated options.
http://ruby-doc.org/stdlib-2.2.0/libdoc/optparse/rdoc/OptionParser.html#class-OptionParser-label-Complete+example

Thanks, I didn't realize that OptionParser supports this.  However, I noticed that ruby's -I and -r don't support comma separation:
➜ ruby -I foo,bar -e "puts $:.first(2).inspect"
["/Users/myron/code/rspec-dev/repos/rspec-core/foo,bar", "/Users/myron/.rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0"]
➜ ruby -r foo,bar -e ""
/Users/myron/.rubies/ruby-2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- foo,bar (LoadError)
        from /Users/myron/.rubies/ruby-2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

RSpec's -I and -r options are meant to mirror Ruby's, so I'm not sure it's a good idea for us to support comma separation when Ruby doesn't.  The -I option supports separation via :, though:
➜ ruby -I foo:bar -e "puts $:.first(2).inspect"
["/Users/myron/code/rspec-dev/repos/rspec-core/foo", "/Users/myron/code/rspec-dev/repos/rspec-core/bar"]

Doesn't look like -r supports that, though:
➜ ruby -r foo:bar -e ""
/Users/myron/.rubies/ruby-2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- foo:bar (LoadError)
        from /Users/myron/.rubies/ruby-2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

So maybe we should support : separation for just -I?  Although, I'm not sure of a good way to do that -- split(':') could work but is probably a bit naive (e.g. what about escaping? Is : platform specific?)
Thoughts?

Hmm, I agree that RSpec's options should behave like Ruby's.
I'll revert the changes about -r option.
About -I escape, it seems that ruby doesn't escape anything.
$ ruby -I 'foo\:bar' -e 'puts $:.first(2).inspect'
["/home/mtsmfm/foo\\", "/home/mtsmfm/bar"]

But if we use split(':') I worry about Windows.
Perhaps ruby separate by semicolon ; on Windows because dir may be like C:\foo.
(I'll install ruby on my Windows machine...)
http://en.wikipedia.org/wiki/PATH_(variable)

BTW, ruby doesn't have require's long option --require.
$ ruby -r 'securerandom' -e 'puts SecureRandom.uuid'
01ee23db-3279-42ea-bf78-d9be89ed9a99
$ ruby --require 'securerandom' -e 'puts SecureRandom.uuid'
ruby: invalid option --require  (-h will show valid options) (RuntimeError)

Should we remove the long option --require ?

But if we use split(':'), I worry about Windows.

I worry about that, too, and lack a windows machine to test.
The other thing I worry about is that this is a potentially breaking change if there are any users out there that have files with : in the path.  Before now, rspec -r path/to:some/file worked but if we make it split, it won't.  That may be so unlikely that it's OK to make the change but as maintainer it's something I need to consider.

BTW, ruby doesn't have require's long option --require.
Should we remove the long option --require ?

Removing it would be a breaking change, and could only be done in RSpec 4.0.  I'm not sure of the history of when that was added, but I personally like having --require for when I use the option in .rspec (e.g. --require spec_helper).  I use the shortened -r when typing a command but for .rspec it's nice to be more explicit with --require.  I'm not sure of the history of why it was added, but as it's just an alias and not a semantic difference I'm less concerned than the introduction of comma separation.

I installed ruby on windows and experimented.
On windows, -I separate dirs by semicolon.
C:\Users\mtsmfm>ruby -I 'C:\foo\;C:\bar' -e 'puts $:.first(2).inspect'
["C:/foo", "C:/bar"]

I think that we can implement -I to use split(File::PATH_SEPARATOR) because irb does.
https://github.com/ruby/ruby/blob/76515504d552d3677f81539c29ed5f558f0dc4f0/lib/irb/init.rb#L150-L152

Removing long option is extreme logic and not related to this PR, sorry :bow:
I prefer long option in .rspec too.

this is a potentially breaking change if there are any users out there that have files with : in the path.

I see. So should I change base branch?
I'll close this PR and open another one to accept semicolon separated paths for -I.
https://github.com/mtsmfm/rspec-core/compare/semicolon-separated-loadpath

Looks good.  Honestly, I'd rather you force-pushed that change into your branch with this PR so that the merged PR has the discussion here, which is quite useful for understanding the background to this change.

force pushed :smile:

Thanks, @mtsmfm!


Change class -> className

Motivation
It's called className in React (for now).
A warning was issued in the build logs. This should silence that warning.
Test plan
No new tests.

Would be nice to have a shorthand for this as this is a common thing to type. className is still 4 more characters to type which is pretty annoying.


Logitech Gaming Software detection/versions

Brief description of your issue

Logitech Gaming Software has changed multiple times over time, becoming a different product.
I have installed the latest version supported by the hardware I use, which is 5.10.127. It's old, but the latest supported.
Winget detects there's an update to version 9.02.65. Albeit having the same name, it's an entirely piece of software.
Also I did not install this software via winget, but winget thinks it happened.
Running a winget upgrade -all would break compatibility with the hardware I use.
I have noticed this version is not in the repo, but I don't think it would make a difference.
Steps to reproduce

Manually install Logitech Gaming Software 5.10.127. Can be found https://support.logi.com/hc/en-us/articles/360024703714--Downloads-Wireless-Gamepad-F710.
The app is detected as winget installed and proposes the update to 9.02.65.

Expected behavior

Do not prompt the update,
Actual behavior

Winget picks up the app and wants to update it
Environment
[winget --info]
Windows Package Manager  v1.0.11692
Windows: Windows.Desktop  v10.0.19041.1052
Package: Microsoft.DesktopAppInstaller v1.12.11692.0

Any other software?

As somewho who dislike Logitech i'm not up to date with the LGS software versions, what are the different major versions of LGS?
I see we only have LGS 9 in the repo with the PackageName Logitech Gaming Software which would match against any LGS version...
This is most likely Logitech's fault for updating a software and dropping support for older devices, we can probably work around this by doing Logitech Gaming Software 5 and Logitech Gaming Software 9 however as of now it will break the matching because we don't have wildcard support... (it only works for Logitech Gaming Software 9 * not Logitech Gaming Software 9*)

@auanasgheps I think your issue would be solved with a future planned feature.  Feature pinning.
https://github.com/microsoft/winget-cli/issues/476
Can you take a look and close this and UPVote the feature?  thanks

As somewho who dislike Logitech i'm not up to date with the LGS software versions, what are the different major versions of LGS?

Simply put: the current/latest version 9 does not support some legacy hardware. That's expected, my joypad is 10 years old. This is not a rant against Logitech, but they have built a new software using the same name, which is causing this error.

@auanasgheps I think your issue would be solved with a future planned feature. Feature pinning.
microsoft/winget-cli#476
Can you take a look and close this and UPVote the feature? thanks

Yes, the PR you have linked satisfies my scenario and I upvoted it.
Please let me know if I should keep this case open. Thanks

I'll close this one for you @auanasgheps. Thanks for reporting and upvoting!


getRoutes() no show passing props on the use of addRoute

Version
4.0.13
Reproduction link
https://jsfiddle.net/wpvfk4d1/11/
Steps to reproduce
Define Vue Router and its routes, and addRoute with props.
What is expected?
$router.getRoutes() show props
What is actually happening?
$router.getRoutes() not show props

You have a typo it's component without the final s:
component: HomeView,

Please, next time consider using the forum, the Discord server or StackOverflow for questions first. But feel free to come back and open an issue if it turns out to be a bug 🙂

I see, without s, i can get props.
but the initial code has :
router.addRoute("main", {
path: route[i].path,
name: route[i].name,
props: route[i].props,
component: tempComponent,
});
For add in children to main. and in this case not get props.

Did you search existing issues 👀 ? This seems like this one: https://github.com/vuejs/router/issues/600

i don't think,
in my case, if i dont use componentS, i dont have render of my component.
with componentS i have render, all work, but i dont have prop in getRoutes().
i dont have see documentation  for componentS, but i have compare my getRoutes, and i adapted because it existed in return of static child route.


Slate widget with HTML backend data

I was finding time to work on this since a long: https://github.com/eea/volto-slate/issues/92
Great work!


fix: Fix namespace conflict with new Flutter class Split

Description

Fix namespace conflict with new Flutter class Split.
Newer versions of Flutter seem to have introduced a Split class within animation curves which causes a compilation issue within Flame:

The name 'Split' is defined in the libraries 'package:devtools_app_shared/src/ui/split.dart (via package:devtools_app_shared/ui.dart)' and 'package:flutter/src/animation/curves.dart'.
Try using 'as prefix' for one of the import directives, or hiding the name from all but one of the imports.

Checklist

[x] I have followed the Contributor Guide when preparing my PR.
[x] I have updated/added tests for ALL new/updated/fixed functionality.
[x] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
[x] I have updated/added relevant examples in examples or docs.

Breaking Change?

[ ] Yes, this PR is a breaking change.
[x] No, this PR is not a breaking change.

Sg, closing this then. It breaks with master that is need for 3d stuff.

We could merge this meanwhile if you want, it doesn't hurt


trying to use network.Bluetooth in wireless-stick causes reboot

On a Heltec Wireless Stick using the current source from the heltec branch using network.Bluetooth is not possible.
Pycom MicroPython 1.20.2.r4 [3b24896] on 2021-03-26; Heltec Wireless Stick with ESP32
Type "help()" for more information.
>>> print(os.uname())
(sysname='Heltec-WS', nodename='Heltec-WS', release='1.20.2.r4', version='3b24896 on 2021-03-26', machine='Heltec Wireless Stick with ESP32', lorawan='1.0.2')
>>> from network import Bluetooth
>>> ble = Bluetooth()
/home/peter/docs/pycom-esp-idf/components/freertos/queue.c:706 (xQueueCreateCountingSemaphore)- assert failed!
abort() was called at PC 0x4009637b on core 0

ELF file SHA256:<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000

Backtrace: 0x400919d4:0x3fffd860 0x40091c21:0x3fffd880 0x4009637b:0x3fffd8a0 0x401bf42a:0x3fffd8c0 0x401c5e06:0x3fffd8e0 0x401eb505:0x3fffd900 0x401cacbb:0x3fffd920 0x401ca983:0x3fffd940 0x401ca9c3:0x3fffd960

Rebooting...
Pycom MicroPython 1.20.2.r4 [3b24896] on 2021-03-26; Heltec Wireless Stick with ESP32
Type "help()" for more information.
>>>

Confirmed, both for Wireless-stick and wireless-stick lite. It fails too on a WROOM based generic ESP32, but not on a WROVER based one. So it is related to SPIRAN being present or not. I'll have a look into it. Probably something in main.c.

I should add that a genuine LoPy device fails too. So it looks like a general no-SPIRAM problem.

Looking into that further, the problem is in the bluetooth stack itself. It is configured for dynamic memory allocation, but does not check for fails. If it fails, and it does indeed on non-SPIRAM devices, the returned NULL pointer is used, for instance as target for memset(), causing an immediate crash.
In principle that could be changed, but for that I would need the sdkconfig file used by Pycom. sdkconfig.h mirrors that, but the structure is completely different, and sorting that back is tedious.
A first attempt to build an image with static memory allocation in the bluetooth stack failed. The firmware got too large.
So chances are odd to get that running. Non-SPIRAM devices will not be supported any more by Pycom.

I managed to create a Bluetooth lib with static RAM allocation. But that requires the Python heap to be reduced a lot, reducing the Python heap size from ~55k to ~32k. That's pretty low.

Sorry for being so quiet for so long (I only play with LORA stuff in my spare time and that's sadly rare) ...
I wonder if it wouldn't be possible to have some kind of "reduced Bluetooth" supported instead ... i.e. BLE only...
For the project I'm playing with I'd for example only process BLE advertisement packets but would not have any need to actually establish a full BT connection or any kind of pairing (and i imagine that might cover many use cases for others as well already) ...
There seems to be a µBluettoth implementation in the works here with focus on BLE-only operation:
https://docs.micropython.org/en/latest/library/ubluetooth.html
(not sure if a driver lib could be reduced to BLE functions and if that would gain enough to not hammer the heap that much ... this is just an incompetent thought from a non-HW developer ;) )


End-to-end Auto Mesh Gen

General Plan:
The plan is to create an fully automated mesh generation tool for the land-ocean continuum that takes advantage of SCHISM's flexibility. That encompasses the ability of creating individual meshes for the floodplain, river, and ocean domains, following their specific mesh generation requirements, as well as emerging them accordingly.
Development Team: @felicio93, @SorooshMani-NOAA, @feiye-vims, @saeed-moghimi-noaa, @josephzhang8
Software Development

[ ] River Mesh

[ ] https://github.com/noaa-ocs-modeling/SurgeTeamCoordination/issues/504

[ ] Ocean Mesh

[ ] #149
[ ] #150

[ ] FloodPlain Mesh

[ ] Mesh Merging and Refinement

[x] https://github.com/noaa-ocs-modeling/SurgeTeamCoordination/issues/460
[x] #100
[x] #144
[x] https://github.com/noaa-ocs-modeling/SurgeTeamCoordination/issues/492

[ ] Vertical Grid

[x] #147
[ ] Add the capability of passing multiple theta_b theta_f and  hc

[ ] Mesh Metadata and Storage

[ ] https://github.com/noaa-ocs-modeling/SurgeTeamCoordination/issues/520

Testing

[x] First Iteration:
https://github.com/SorooshMani-NOAA/river-in-mesh/issues/3

Documentation

[ ] Abstracts

[ ] https://github.com/noaa-ocs-modeling/SurgeTeamCoordination/issues/516

[ ] Papers

[ ] https://github.com/noaa-ocs-modeling/SurgeTeamCoordination/issues/521

[ ] Technical Reports

Development Iterations
We organize the development in 2 months iterations for which we define a Minimum Viable Product. Each iterations is a separate ticket. Feel free to add your suggestions/priorities. The Iteration 00 was completed with the successful validation of our first complete 2D mesh: https://github.com/SorooshMani-NOAA/river-in-mesh/issues/3

[ ] Iteration 01: 07/15/2024 - 09/13/2024
#166

[ ] Iteration 02: 09/16/2024 - 11/15/2024
#167

[ ] Iteration 03: 01/16/2024 - 01/17/2025
TBD

Thx @felicio93. I'd highly encourage you to write this up for Ocean Modelling Special Issue. It's highly relevant. Thx

@felicio93 the generic OCSMesh focused tasks I had in mind are:

Parallelization of size function calculation (collector type). The issue is that hfun object is not picklable due to reference to files object
Optimizing operations (e.g. contour calculation that we discussed)
Subsetting an existing mesh with remeshing the boundaries to match the subsetting shape
Parallelizing using Dask; right now the parallelization is limited to a single node.

Hi, I am Hyung Ju, Yoo (post-doc) from Joseph's group.
Thank you for inviting me.

tagging @janahaddad for reference

Chiming in here, I work at CSIRO in Australia and have been testing out OCS mesh these past few weeks, with mostly positive results - thanks for your work on this!

@felicio93 the generic OCSMesh focused tasks I had in mind are:

Parallelization of size function calculation (collector type). The issue is that hfun object is not picklable due to reference to files object
Parallelizing using Dask; right now the parallelization is limited to a single node.

Can I suggest that you take a look at using FSSpec for file handling, it allows for a uniform interface between POSIX and cloud storage, are generally lazy locking, which allows for pickling of python file-like objects that are also supported by rasterio: see https://github.com/rasterio/rasterio/issues/2905 These aspects also help with dask
On the dask front, you could consider using https://corteva.github.io/rioxarray/html/rioxarray.html to interface with rasterio which provides an xarray container overlay on rasterio that can leverage all of xarray+dask computational graph generation. It would likely be some effort to transition away from the current "windows" approach, so you could perhaps maintain that for multi-threaded processing within larger dask-chunks - this kind of approach can actually be beneficial as it reduces the overall size of the dask graph which can become an overhead for very large datasets.


Elyra Conda install on py37 fails because of jupyter_core>=4.11.2

https://github.com/elyra-ai/elyra/blob/080ebbb26bd864531f961e48be26d18f377a53db/pyproject.toml#L23
the only available python 3.7 build on conda-forge for jupyter_core is 4.11.1
https://anaconda.org/conda-forge/jupyter_core/files?version=4.11.2
https://anaconda.org/conda-forge/jupyter_core/files?version=4.11.1
This causes incompatibility when elyra is installed on python 3.7 with other packages - who are managing with jupyter_core>=4.11.0,<5.0

I believe this is an issue with the jupyter_core feedstock.  Both 4.11.2 and 4.12 PRs for conda-forge have been merged, but those packages are not present. I have opened an issue in the feedstock.  Let's see how that turns out before we decrease its floor.

Conda-forge dropped support for Python 3.7 last August: https://conda-forge.org/docs/user/announcements.html#dropping-python-3-7
Although the maintainers could build a jupyter_core manually, I have recommended they do not spend time on this and that we will decrease our floor value from 4.11.2 to 4.11.  Looking at the Git logs between 4.11.0 and 4.11.2, there really aren't significant changes - nearly all are from the pre-commit-ci bot.
Given that most of the Jupyter stack has dropped 3.7 support around the same time, we encourage you to move to a more current Python release.

You may also want to use pip install --upgrade jupyter_core following your conda-based installation to get the latest versions relative to Python 3.7.  That said, I'm going to submit a PR that should satisfy conda installations, albeit two revisions behind the pip version.

@rxm7706 - it just occurred to me that merging any kind of PR for this won't work since the corresponding patch release can't be created for conda and Python 3.7 - where it would be required.
As a result, I believe your only recourse is to issue pip install --upgrade jupyter_core following your conda-specific installation.
Of course, the more sustainable resolution is to upgrade to Python 3.8 or greater.

@kevin-bates thank you for looking into this.
would have loved to mix pip and conda-forge, or upgrade to py 3.8 - that's a bit away for us unfortunately.
I think its possible to build a patch for elyra by including a conda_build_config.yaml in the recipe directory
it would look something like this
# conda_build_config.yam patch to make conda-forge build python 3.7
python:
  - 3.7.* *_cpython   # [not (osx and arm64)]
  - 3.8.* *_cpython
  - 3.9.* *_cpython
  - 3.10.* *_cpython
  - 3.11.* *_cpython
python_impl:
  - cpython           # [not (osx and arm64)]
  - cpython
  - cpython
  - cpython
  - cpython
numpy:
  - 1.20              # [not (osx and arm64)]
  - 1.20
  - 1.20
  - 1.21
  - 1.23

Thanks for the suggestion @rxm7706!  Unfortunately, this is all over my head, and I have no idea what this is trying to do or how it addresses the issue.  I also find the numpy reference odd.  Could you please provide a summary of what this is doing and how it might resolve the conda/python 3.7 issue? (Thank you)
(Sorry, I was going to suggest you go ahead and create a PR in the feedstock repo but see that you had already done that a couple of days ago.  Are the changes in https://github.com/conda-forge/elyra-feedstock/pull/47 part of what you're getting at in your previous comment?  (Also, I am now watching that repo.))
cc: @akchinSTC, @lresende


Test-DBADiskAllocation to a SQL Cluster with two instances bug (edge Case)

Bug Report
Trying to use Test-DBADiskAllocation on a Windows failovercluster that has two SQL cluster on it.
CLSQL01 and CLSQL02
CLSQL01 has only default instance
CLSQL02 has only a named instance CLSQL02\Skype
When I run Test-DBADiskAllocation agains CLSQL01 the skript tries to connect both SQL Instance on CLSQL01 IP.
It should only connect to the default instance.
CLSQL01
General Troubleshooting steps

[X] Verified running latest release of dbatools?
[X] Verified errors are not related to permissions? Can connect with SSMS and powershell
[X] Can duplicate in new/fresh PowerShell.exe session?

Version Information

Operating System (Name|Version): Windows 10 and Windows server 2012 R2
PowerShell Version: 5.1
SQL Server (Edition|Version): SQL 2014 12.0.4439.1

Steps to Reproduce
Set up a failover cluster
Install two sql clusters on the windows failover cluster. CLSQL1 and CLSQL2
Setup the CLSQL2 as a named instans.

[X] Attach any screenshots (if possible/allowed)

[X] Attach output from PowerShell console (if possible/allowed)
Cluster2.txt

It does try to connect to all instances on a host to ensure $isSqlDisk is accurate. This provides the most coverage for most cases. I recommend running with NoSqlCheck


Can't use :FZF --expect=! from neovim on windows

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[ ] Linux
[ ] Mac OS X
[x] Windows
[ ] Etc.

Shell

[ ] bash
[ ] zsh
[ ] fish
[ ] pwsh.exe (PowerShell 7.4.1)

Problem / Steps to reproduce

Install fzf on Windows 11 Home 23H2 using winget install --id junegunn.fzf
Launch PowerShell 7.4.1 (current version available on winget)
Launch neovim 0.9.5 (also on winget) with nvim -u NORC
Run :FZF --expect=!

On Linux, this works as expected (when ! is pressed, :FZF exits and opens the selected entry). On windows, using the above setup, fzf exits with an error:
key names required

This must come from fzf#run, the low-level interface used for the :FZF command.

Seems like an escaping issue. Does fzf --expect=! work on PowerShell?

Yes, it works in PowerShell, but not inside neovim.

Can you check if :call fzf#run({'options': '--expect=!'}) works?

No, that doesn't work. This was my original use case since I have a wrapper around fzf#run in my vimrc. The command fails and briefly displays "key names required" as the error message.

I don't have a Windows PC to test it now. Does https://github.com/junegunn/fzf/pull/3189 help in your case?

Unfortunately that patch does not fix the issue. Same error.
I tried a few variants with different kinds of escaping e.g. --expect=\! and the like but no luck. Apparently ! is a boolean NOT operator in pwsh, but I couldn't find out exactly why it isn't getting escaped properly. To be more specific about the use case, I have this as an expected key so that (in linux) pressing ! selects the current match and appends ! allowing me to conveniently run vim shebang commands like :make!. It's only a minor inconvenience that this doesn't work, but I thought I should report it anyway.

https://github.com/junegunn/fzf/commit/835d2fb98cedbb6384dfbeb41e4ba48c3c0a8081 should fix the problem. Let me know if it doesn't work for you.

Thanks, this is indeed fixed for me on fzf 0.5.1 (PowerShell 7.4.2).


Update Introduction to Identity with ASP.NET Core 2 API's

Fixes #4043
Internal Review Page
@scottaddie

@scottsauber,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla2.dotnetfoundation.org.
It will cover your contributions to all .NET Foundation-managed open source projects.
Thanks,
.NET Foundation Pull Request Bot

@scottsauber, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, .NET Foundation Pull Request Bot

@scottaddie

The v1 snippets do not have the snippet_ prefix. Do you want me to fix those as well in this PR?

In the 2. Configure Identity services and add middleware section:

UseAuthentication adds cookie-based authentication middleware to the request pipeline.

This is no longer correct, its actually AddIdentity that adds cookie-based authentication.  UseAuthentication adds the authentication middleware to the request pipeline.

Side note: we need to update https://review.docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-primary-key-configuration?branch=pr-en-us-4236 for 2.0 as well as a few smallish things have changed in there too

@scottsauber If you have time, please fix those as well.

Let me know if anything else needs updating.

@scottsauber Awesome work! Thank you for your help updating this doc. Your changes will go live within the next 24 hours.

Thanks for your help guiding me @scottaddie and @HaoK!


[KO] Correct the 'basics/Enum' lesson

related to: #201

Could you change the URL on the line 14 with this pull request? There was a slightly changes in links. (they started to point version 1.0 official document.)


How to configure host address (<IP_ADDRESS>) for server in Docker environment?

How to configure host address for server in Docker environment?
Description
I'm trying to run srcbook in a Docker container, but I can't access it from outside the container. The server seems to listen only on localhost by default, even with proper port mapping in Docker.
Current Setup

Running srcbook in a Docker container
Using npx srcbook@latest start
Port mapped correctly in docker-compose
Server starts but only accessible inside container

Question
Is there a way to configure the server to listen on <IP_ADDRESS> instead of localhost? I couldn't find this option in the documentation.
Environment

srcbook version: 0.0.15
Running in Docker container

Reproduced the issue. Working on a fix now.

PR: https://github.com/srcbookdev/srcbook/pull/460