Math Magicians: Fetch Data From API

Math Magicians: Fetch Data From API 😎
The following changes were implemented:

Used the following external API: API Ninjas ✅
Created a new component for displaying a quote ✅
Fetch data inside of a new component ✅
Show a loading state ✅
Show an error state ✅
Imported the new component into the main App component (next to the Calculator) ✅

Hi @mwismann,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
You have submitted a project, that you have live demo section in your README since you don't have deployed link for now but once you have it you can add the section there? so kindly for now just remove it
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear. Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.
Invalid Code Review Request does not count into the code reviews limit.

Hi @Reem-lab!
Thank you kindly for your quick response! Regarding the addition of the live demo placeholder, I had to do it since the reviewer from yesterday's milestone asked me to (and in a not very polite way).
I'll attach screenshots from the review for my previous PR below:

Again, thank you for your feedback! I'll remove the live-demo again 😎


HTTP Upgrade test failed

When execut "B-5.1 HTTP Upgrade test" of dnssd-test.bat, after the certification tool sends OPTIONS request, the test Printer sends 101 Switching Protocols response.
However,  the certification tool closes the current connection(does not start the ssl handshark), and re-send a OPTIONS request on a new connection.
The certification tool repeat above operations, and finally, this test failed.

@Dingyuguan What version of the tools are you running?
There was a bug in the initial 1.1 Windows tools release (caused by a change in Secure Channel on Windows) that prevented the tools from establishing a TLS connection. The subsequent Update 1 on June 17, 2020 that is currently in testing - a link is available on the self-certification portal - includes a workaround that fixes TLS support on Windows.

@wifiprintguy
Thank you for your reply, the certification tools that I using is sw-ippeveselfcert11-20200522-windows.msi

@Dingyuguan Please download the latest tools and re-test.

@wifiprintguy
Thank you very much. This test has passed in the latest tools.

Great!


Add snapshot test for when a workspace member's baseline has a compile error.

When the user runs cargo semver-checks --workspace on a workspace that has a member with a baseline version with a compile error, but other non-error workspace members.
The current behavior is to semver-check the members it can, and then return an error at the end saying it couldn't compile the errored crate.
Potential other tests:

when the current version has a compile error
when no crates in the workspace can be built because their current/baseline versions all have compile errors

Hmm.  We definitely need to redact the  Blocking waiting for file lock on package cache in the snapshots but I need to figure out why CI has a slightly different output when running cargo doc.

Okay, the CI sets the env var CARGO_TERM_VERBOSE=true which gets passed to cargo doc.  We probably want to unset this.  We could explicitly force verbose which could give more detailed snapshots, but we would have to redact more and I don't think it would be worth it.

Rebased on #883.

I think this might be causing the problem: https://github.com/obi1kenobi/cargo-semver-checks/blob/main/.github/workflows/ci.yml#L18

I think so too, although I explicitly unset it (and then, in an experiment, set it to false outright).  I need to do some more digging to figure out where the verbosity is coming from.

I found the issue: the output for cargo 1.77 is different than in the newer version, and failing in 1.77 was cancelling the other checks so I didn't figure this out :expressionless:.  I added in a shim to skip if the cargo version is less than 1.78.  If you think this is too hacky, let me know.


[Feat]: Duration for displaying Pause and play controls on screen should be controlled by developers

Version
apivideo_player: ^1.2.0
Environment that reproduces the issue
All environments
Use case description
When player is initialized the pause, rewind and forward buttons are also displayed on screen, and if the screen is tapped it takes about 2 -4 seconds to dismiss these controls.
Proposed solution
Set a parsable variable for developers to select their choice of button dismissed delay on screen tap.
Alternative solutions
No response

Hi,
Just to be 100% sure, you want to set the duration in which the buttons are displayed?

Set a duration in which the button leaves the screen on tap of the screen.

Hi,
Could you verify that https://github.com/apivideo/api.video-flutter-player/pull/51 fit your expectations?

Yeah that's great 👍🏽

Released in v1.2.1


Document node requirement for linux containers on windows hosts

The docs do say that container jobs require the prerequisites for running node be met, and that the agent will bring its own node executable. However, when running a linux container from a windows host, the agent will not be able to bring its own node (which makes sense). Maybe the windows agent could come with both windows and linux versions of node and supply the correct version when running the container?
But until then it would be nice if the docs here mentioned that the linux container must come with node installed and available as node on the $PATH (unless otherwise specified in the com.azure.dev.pipelines.agent.handler.node.path LABEL)
https://github.com/microsoft/azure-pipelines-agent/blob/af907e5f6f077f98910c68863ae93742b8a28a0f/src/Agent.Worker/ContainerOperationProvider.cs#L353

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3339a2e0-be29-1363-f588-b231d4472c02
Version Independent ID: 72dd11a3-704d-d0fd-6dfa-cf49f3352de3
Content: Container Jobs in Azure Pipelines and TFS - Azure Pipelines
Content Source: docs/pipelines/process/container-phases.md
Product: devops
Technology: devops-cicd-process
GitHub Login: @juliakm
Microsoft Alias: jukullam

@dferretti Thank you for the feedback.
The documentation has been updated and is pending review.
For your suggested changes to the agent, please consider moving the issue to the azure-pipeline-agent repo.

Awesome thank you for the response!
I will take the other idea to the pipeline agent repo 👍


Windows 10 64bit Full Node Error

I have unpacked the wallet. When I click on bitcoinz-wallet.exe I get this message, "Malformed \uxxxx encoding". Do I have to download any other software?

I just deleted everything, downloaded the wallet and ran the exe and it works.


NDRS-1049: Drain reactor queue switch

This prevents fatal errors from being skipped by clearing the Control queue and looking for datal events before successfully exiting.

@marc-casperlabs Are you planning on merging this?

This is temporarily going back into draft mode to address a potential issue with the queue's concurrency safety.

bors r+


Replaced the application icon with the new Visual Studio Code one.

I did this already and didn't see this PR.


updated signUnsignedJWT to sign self issued JWT

@vijayshiyani could you also bump up the version of the SDK package?

@vijayshiyani also please add a test or two for this new logic

done


dynamically update the "amount" for the PayPal

Is there a way to dynamically update the "amount" for the paypal button? You can do this now with the drop-in client with updateConfiguration api call. Does a similar call exist for this library? The issue is on a single page app, wanting to adjust the amount if a cart item changes etc.
SDK version: 3
Environment : Sandbox

The payment function in checkout.js is called whenever the flow is started, so just grab the details for the payment resource at that point.
Here's a very simple example:
function getPaymentOptions() {
  return {
    flow: 'checkout',
    currency: currencyInput.value,
    amount: amountInput.value
  }
}

paypal.Button.render({
  env: 'production', // or 'sandbox'

  payment: function () {
    return paypalCheckoutInstance.createPayment(getPaymentOptions());
  },

  onAuthorize: function (data, actions) {
    // some logic here before tokenization happens below
    return paypalCheckoutInstance.tokenizePayment(data).then(function (payload) {
      // Submit payload.nonce to your server
    });
  }
}, '#paypal-button');

If you need additional help with your integration, I encourage you to reach out to our support team: https://help.braintreepayments.com/


clarifying change to nats-server for JetStream

in response to a question about JetStream support on Slack #general channel

What do you think we should do with this repo? I moved all things out of it - can migrate the few remaining issues.
We can then archive it or delete it or leave it as is?

I'm not sure - Maybe see what @derekcollison or @ColinSullivan1 think.

Let's migrate and archive.


[Jetcaster] Upgrade to snapshot 7123292

I would ask @chrisbanes to review specifically animation changes

I did those changes 😅


[ObjC] unit tests with bazel

https://github.com/grpc/grpc-ios/issues/74
to run locally,
OVERRIDE_BAZEL_VERSION=5.1.1 ./tools/run_tests/run_tests.py -l objc -r ios-test-unittests

@dennycd

script to update with test_env
https://github.com/grpc/grpc/blob/master/tools/internal_ci/macos/grpc_objc_bazel_test.sh

looks like bazel MacTests failed since it contains InteropTests which has not yet migrated to using the host utils.
//src/objective-c/tests:MacTests                                         FAILED in 180.4s
You may want to rebase on master with https://github.com/grpc/grpc/pull/29800 and that should fix the issue. Other than that, lgmt !

all test passes except objc ios test which is fixed via https://github.com/grpc/grpc/pull/29988 separately due to a c++ build break


Create a prototype front end app

Create a simple prototype that uses the new API. Some ideas for a simple app would be:

Allows you to select ingredients and create a recipe
Allows you to select a recipe and create a diary entry

Branch 4 started off with making a recipe maker, however the recipe API is still in progress and I'm not sure when it will be done.
Instead I will keep the current code, and pivot to an Ingredients Manager. This should only require the ingredients API, which is finished as far as I can tell

A PR is in as dylanleigh#8, providing an ingredient manager prototype that doesn't actively cause eye-bleed (I am no designer :stuck_out_tongue: ). In the case Dylan does decide to review and merge/reject, I'll open a new branch based off this one to work on the recipe manager.

This has been accepted into upstream master


Arbitrum Nitro gas estimation fix

What does this pull request do? Explain your changes. (required)

ArbRetryableTx.getSubmissionPrice is now handled by Inbox.calculateRetryableSubmissionFee as the maxSubmissionFee is now handled on L1
Also, the interface for NodeInterface.estimateRetryableTicket was changed from 10 params to 7 and also instead of call, estimateGas opcode is used.
Specific updates (required)

modified helpers and consumers to use updated interfaces and contracts for estimating gas

How did you test each of these updates (required)

sent test tx by running npx hardhat transfer-lpt-to-l2 --to 0xC96f6B72843Af1988C98F78eAB3E47673af63eA1 --amount<PHONE_NUMBER>00000000000 --network nitroDevnet
L1 tx
L2 tx
Note for reviewer:
Please review the commits individually as the diff for the deployments is large and can be viewed independently.
Does this pull request close any open issues?

https://github.com/livepeer/internal-project-tracking/issues/379
Checklist:

[ ] README and other documentation updated
[x] All tests using yarn test pass

PR looks good! Tried it out successfully:
L1
L2
Just to elaborate on the steps required to test the L1-L2 LPT transfer (maybe it can be added on the PR description):

set private key in the .env file under the field PRIVATE_KEY=  for an account with funds on goerli
set the arbitrum nitro rpc in the .env file under the field ARB_NITRO_DEVNET_URL=
set the goerli rpc in the .env under the field NITRO_DEVNET_URL=
run npx hardhat transfer-lpt-to-l2 --to YOUR_ACCOUNT_PUBLIC_KEY --amount<PHONE_NUMBER>00000000000 --network nitroDevnet

Also, one last thing: there are some hard-coded gas values in the tests, should they be changed? [1]
[1] https://github.com/OffchainLabs/nitro/blob/838ba2193e84f54df316a5ea6b0bd3ed4d0fdb37/docs/migration/dapp_migration.md#dapps


Disable table stripes by default

To align with the behavior of Asciidoctor 2, disable table stripes (aka row shading) by default. The stripes can be enabled per table using the stripes block attribute (e.g., stripes=even) or globally using the table-stripes document attribute (e.g., :table-stripes: even). Part of this change entails adding support for the table-stripes document attribute.
NOTE: Although this issue was filed after the 1.5.0.alpha.17 release, it was already fixed in that release.

Fix the documentation, where it states that "even" is the default.
"Applied to even rows by default; controlled using stripes attribute (even, odd, all, none) on table or table-stripes attribute on document (or the stripes attribute on the document if using Asciidoctor < 2)."
https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc

Oops, I had updated the Asciidoctor user manual, but forgot about the theming guide. Thanks for the reminder.
...
and fixed.


Add retention period support to catalog and/or service instance parameters

Default retention of objects within a bucket can be updated on the bucket at service-instance creation/update.  Support for this might look like:
$ cf create-service ecs-bucket 5gb temp-bucket -c "{ retention: {days: 30} }"

This could also be supported in the catalog configuration for a service.  We could add something along the lines of:
catalog:
  services:
    - id: <Service ID UUID>
      name: ecs-bucket
      description: Elastic Cloud S3 Object Storage Bucket
      service-settings:
        service-type: bucket
        retention:
          days: 30

In the case of YAML catalog configuration, I think the expiration should be come locked by the service, meaning that it would override a setting attempted during the service-instance creation.
Need to get some more clarification on this aspect...

I'll be adding this support next. It will match the existing support for retention and other settings as I did for namespace support in #51.


Add join tables test

This PR fixes a few things:

Fixes base project build with more dependency magic so it should run successfully now
Updates the InputFormat and SerDe with fixes for:

We can now handle an Iceberg table created using either HadoopTables or HadoopCatalog by specifying the iceberg.catalog property under TBLPROPERTIES
Can now join 2 Hiveberg tables because we fixed the InputSplit implementation

Let me know when you've given this another round and when there is nothing left that can be removed I'll take another look and merge it.

I've gone through and checked all the module-module dependencies to check they're all needed and the ones left are all needed


Lab 2: 2 recommended corrections

Lab/Demo: 02
Description of issue
Exercise 1, Task 1, Step 4:  Region column says 'the name of the Azure region into which you deployed the virtual machine in the previous task', and since there is no previous task this should be changed to something either neutral like 'Choose a region near you' or could also include the link to the Task 2/Step 2 note, regarding appropriate regions to choose.
Exercise 2, Task 2, Step 12: There is no 'Microsoft Dependency agent (preview)' option to set on.  (I didn't see one that looked similar, either)

Thanks for the feedback. Will look into this and update as appropriate.

Exercise 1, Task 1, Step 4, changed instruction in Azure region column to say "choose a region near you" (lak)
Exercise 2, Task 2, Step 12: to be addressed later when UI can be verified.

MOC Labs review has solved this issue with pull requests #9 and #10.


Error while training

Hi Mayank,
I created a folder "data" and placed the data and images folder from the google sites. I'm getting below error. Please guide me any corrections.
Total training examples: 24443
Total validation examples: 2813
Traceback (most recent call last):
File "train.py", line 104, in
train(config)
File "train.py", line 43, in train
for iteration, (img_orig, img_haze) in enumerate(train_loader):
File "C:\Users\aruna\Anaconda3\envs\test\lib\site-packages\torch\utils\data\dataloader.py", line 336, in next
return self._process_next_batch(batch)
File "C:\Users\aruna\Anaconda3\envs\test\lib\site-packages\torch\utils\data\dataloader.py", line 357, in _process_next_batch
raise batch.exc_type(batch.exc_msg)
FileNotFoundError: Traceback (most recent call last):
File "C:\Users\aruna\Anaconda3\envs\test\lib\site-packages\torch\utils\data\dataloader.py", line 106, in _worker_loop
samples = collate_fn([dataset[i] for i in batch_indices])
File "C:\Users\aruna\Anaconda3\envs\test\lib\site-packages\torch\utils\data\dataloader.py", line 106, in
samples = collate_fn([dataset[i] for i in batch_indices])
File "C:\Users\aruna\PycharmProjects\PyTorch-Image-Dehazing-master\dataloader.py", line 90, in getitem
data_orig = Image.open(data_orig_path)
File "C:\Users\aruna\Anaconda3\envs\test\lib\site-packages\PIL\Image.py", line 2766, in open
fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'data\images\data\data\NYU2_714.jpg'

I have received the same problem

I have received the same problem

I have received the same problem too

I have received the same problem too！！

The cause of this error is the line "image_list_haze = glob.glob(hazy_images_path + "*.jpg")" in "dataloader.py". The path obtained by the "glob.glob" function under windows and linux systems is slightly different. The path of the same file in windows system is "data/images/data\NYU2_714.jpg", and the path in linux system is "data/images/data/NYU2_714.jpg". After the above path is sliced by the code "image = image.split("/")[-1]" on line 27, the "image" variable is "data/NYU2_714.jpg". The code can be changed to "image = image.split("\\")[-1]", after the string is sliced, the "image" variable is "NYU2_714.jpg"

The cause of this error is the line "image_list_haze = glob.glob(hazy_images_path + "*.jpg")" in "dataloader.py". The path obtained by the "glob.glob" function under windows and linux systems is slightly different. The path of the same file in windows system is "data/images/data\NYU2_714.jpg", and the path in linux system is "data/images/data/NYU2_714.jpg". After the above path is sliced by the code "image = image.split("/")[-1]" on line 27, the "image" variable is "data/NYU2_714.jpg". The code can be changed to "image = image.split("\")[-1]", after the string is sliced, the "image" variable is "NYU2_714.jpg"

——————————————————————————————————
Hello，I have received the same problem too, but I run the code on the linux system. And I don't know how to solve this problem. Could you help me?
Traceback (most recent call last):
File "train.py", line 140, in
main(config_args)
File "train.py", line 97, in main
for step, (ori_image, haze_image) in enumerate(train_loader):
File "/root/miniconda3/envs/my-env/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 681, in next
data = self._next_data()
File "/root/miniconda3/envs/my-env/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 721, in _next_data
data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
File "/root/miniconda3/envs/my-env/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/root/miniconda3/envs/my-env/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 49, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/root/autodl-tmp/AOD-Net-PyTorch/data.py", line 27, in getitem
ori_image = self.transforms(Image.open(ori_image_name))
File "/root/miniconda3/envs/my-env/lib/python3.7/site-packages/PIL/Image.py", line 3068, in open
fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: '/root/autodl-tmp/AOD-Net-PyTorch/data/train/haze/33_outdoor.jpg'

The cause of this error is the line "image_list_haze = glob.glob(hazy_images_path + "*.jpg")" in "dataloader.py". The path obtained by the "glob.glob" function under windows and linux systems is slightly different. The path of the same file in windows system is "data/images/data\NYU2_714.jpg", and the path in linux system is "data/images/data/NYU2_714.jpg". After the above path is sliced by the code "image = image.split("/")[-1]" on line 27, the "image" variable is "data/NYU2_714.jpg". The code can be changed to "image = image.split("\")[-1]", after the string is sliced, the "image" variable is "NYU2_714.jpg"

thanks，I need to train other datasets. How should I handle datasets? And modify the dataloader？？


Predicate to NSPredicate conversion should support captured URLs

NSPredicate supports embedded URLs when passing the NSPredicate to CoreData, so we should ensure that when converting a Predicate to an NSPredicate it successfully embeds captured URLs

@swift-ci please test


python310Packages.regenmaschine: 2022.05.1 -> 2022.06.0

Description of changes
https://github.com/bachya/regenmaschine/releases/tag/2022.06.0

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 176362 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.rainmachine
python310Packages.regenmaschine
python39Packages.regenmaschine


AWS Lambda Example

Hello All. Hope everyone is well. Been sometime since my red hat days but excited to be working with this community again.
I'm looking to deploy drools decision tables or drl templates / quarkus to graal native in aws lambda. I looked through the quarkus guide today and all the examples I saw seemed to build a REST API during the quarkus deploy stage using the .bpmn. That makes loads of sense in k8s land and something I would have loved on OpenShift, but not something that works well in aws lambda. Has anyone thought of this use case? If so, is there examples / docs / features that can be linked.
I plan to dig into the kogito quarkus extension tomorrow, and would be willing add a feature here if there is nothing yet. My team worked with Bill Burke on the aws lamba and xray quarkus extensions in the past.
Update: I haven't used https://quarkus.io/guides/amazon-lambda-http before but that maybe a sufficient bridge. Not sure how the extension play together.

I got it working here https://quarkus.io/guides/kotlin.

@DuncanDoyle I hope all is well my old friend.
This may be of interest to you. The quarkus kogito guide could use a little love, and this may be a good addition. I'll try to carve out some time in the next week if some one the red hat team is interested.

Hi @sherl0cks! Many thanks for your contribution and I'm sorry for the long late reply. Were you able to play around with it? How was your experience? Can you share more details?

Hey @ricardozanini. If you search through zulip chat for "Tyler Thrailkill" @snowe2010 , you can see some history there with our experience with quarkus / lambda / kogito. I'm a bit removed from this work, but here is the summary as I know it:

we have had services in production for several months
we currently use the amazon lambda http extension as a bridge, but moving forward, the preferred approach will be to remove that bridge and just use the custom handler (not sure the feature name but it where you can create a custom kogito service layer instead of using the generated one that connects to the generated JAX-RS endpoints). If this approach works, I'm not sure a kogito extension would be needed. Documentation would be sufficient.
Jackson has been a pain for native quarkus, we have had better success outside of kogito using kotlin serialization

@snowe2010 can comment more if desired

There are a few 'reproducers' for bugs, that can give guidance as to how we wrote the lambdas as well. They will be reproducing the bugs they were made for, but otherwise can serve as a guide.

Many thanks for sharing! I understand this is the thread you're referring to?

There are many threads. If you look through this list you should be able to find several reproducers. but I don't know if all of them use AWS lambda. some might just be local reproducers.

Thanks for the references @snowe2010. I'll close this issue since I understand the conversation is ongoing on Zulip. Feel free to reopen if you feel like it.


Add length argument and punctuation to password command

This commit changes the !password command to use a wider range of
characters when creating the output password: lower and upper case ascii
characters, digits, and punctuation characters.
It also allows a parameter to be passed to the command to specify the
length of the password (default 12; see
https://blog.codinghorror.com/your-password-is-too-damn-short/).
If the length provided is greater than or equal to 3, the password is
guaranteed to include at least one of each type of character.

Nice work. Thanks for the tests as well!


It doesnt works for version 21h1 19043.2130

Dont know why but it always gives the message: "wrong password" or says that all conections are being used.

ive searched in site and found another issue report, sorry for the double.

Dont know why but it always gives the message: "wrong password" or says that all conections are being used. (i've reopen cause the another issue report doesnt solved my problem.

termsrv.zip

Duplicate of https://github.com/stascorp/rdpwrap/issues/1992

Thank you @sashaqwert, i've found the asnwer in the #1992


schildichat: 1.11.22-sc.1 -> 1.11.26-sc.1

Description of changes
https://github.com/SchildiChat/schildichat-desktop/releases/tag/v1.11.26-sc.1
Closes #225171

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Closes https://github.com/NixOS/nixpkgs/issues/225171

Not for the stable release.


Run format in main threat

Come cross this repo, and see that we are formatting code in a worker.

We can actually do format in parse,

{
  parse: async () => ({formatted: await format(...)})`,
  print: ({node: {formatted}}) => formatted
}

It's undocumented, but print actually support returns a promise, it will work as long as you don't call print recursively.

Wow looks pretty cool 👍 I'll check it later, thanks for your notice!


Per family sample text?

Since many of the families in typetools have their own bios, it would be good to add a mechanism that falls back to the current default text, but if a custom text is available, it is used.

Not sure of the flow of this, but i’d propose a bio linked to the addition of a font to the resources of the program, along with composition rules for dealing with a bio from 0-400 words,
So, the fonts being harvested for default display in the menu, get a bio tag added to thier repositories?
So as fonts are being added manually, the user is prompted with a text editor to write or paste a  boi, or “skip it”, and the default rolls on?


pull regional score information from IITC and save to disk in JSON file

This would be an awesome feature to have. My bot can watch the file and report local scores to agents! Would suggest that the score is checked and saved to disk in tandem with the screenshot interval.

Isn't this an idea for another utility?
I have this repo which does the same thing, i can extract that function and create a separate tool. Because i don't wanna make Ingress-ICE bloated :grin:

Touche! I wasn't aware of the other utility, yes please close this too.

Oh, that one is intended to be used with Telegram and it creates diagrams and works as a Telegram bot. Here is the file which crawls the scores, hope you will figure out how to use it ;) Ask me if you need help


Issue565 mesh2d tri - basics

Motivations:

For tomography: it can be advantageous to customize the shape of the mesh to maximize spatial resoltuion in regions of interest and simulatneously minimize unknows in other regions, triangular meshes are particularly interesting for that
For synthetic diagnostics, it can be more accurate  / faster to use the mesh provided by the code itself (usually a quadrilateral or triangular mesh, particularly for edge plasma codes). This avoid interpolation on an intermediate mesh and avoids loss of information.

Main changes:

Mesh2DRect renamed Mesh2D and handles both rectangular and triangular meshes
All common methods for mesh manipulation work for both, in particular:

add_mesh() for mesh creation
select_ind() for elements selection of any data
select_mesh_elements() for element selection of mesh parts (knots and cents)
select_bsplines() for bsplines seleection
plot_mesh_element() for mesh plotting
plot_bsplines() for bsplines plotting
plot_profiles2d(): only usbale for small triangular meshes due to slow computing in the current version

Caveats:

Only bsplines of degree 0 and 1 are implemented for triangular meshes
No integral / derivative operators are available for triangular meshes thus far
No geometry matrix computation available thus far for triangular meshes

Issues:

fixes, in devel, issue #565

Examples:
Creation and plotting of mesh
In [2]: knots = np.array([[0,1,2, 0,1,2, 0,1,2], [0,0,0,1,1,1,2,2,2]]).T

In [3]: cents = np.array([[0,1,3], [1,3,4], [1,2,4], [2,4,5], [3,4,6], [4,6,7], [4,5,7], [5,7,8]])

In [4]: mesh = tf.data.Mesh2D()

In [5]: mesh.add_mesh(cents=cents, knots=knots, key='try', deg=1)
/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/data/_mesh_checks.py:198: UserWarning: Some triangles not counter-clockwise
  (necessary for matplotlib.tri.Triangulation)
    => 4/8 triangles reshaped
  warnings.warn(msg)

In [6]: dax = mesh.plot_mesh()

Plotting of individual bsplines:
In [7]: dax = mesh.plot_bsplines(ind=4, res=0.005)

In [8]: dax = mesh.plot_bsplines(ind=1, res=0.005)

ind = 4
ind = 1

Plotting of the total profile (sum = 1 if all coefs are 1)
In [9]: dax = mesh.plot_profile2d(coefs=np.random.random((9,)))

In [10]: dax = mesh.plot_profile2d()

random
unity

Similarly, it is possible to load and visualize the NICE equilibrium mesh from WEST:
In [11]: multi = tf.imas2tofu.MultiIDSLoader(shot=54178, ids='equilibrium')
Getting ids     [occ]  database  user         version  shot   run  refshot  refrun
--------------  -----  --------  -----------  -------  -----  ---  -------  ------
equilibrium     [0]    west      imas_public  3        54178  0    -1       -1
pulse_schedule  [0]    "         "            "        "      "    "        "
wall            [0]    "         "            "        "      "    "        "

In [12]: tri = multi.get_data(dsig={'equilibrium': ['2dmeshFaces', '2dmeshNodes']})['equilibrium']

In [13]: mesh = tf.data.Mesh2D()

In [14]: mesh.add_mesh(cents=tri['2dmeshFaces']['data'], knots=tri['2dmeshNodes']['data'], key='eq', deg=1)
d
In [15]: dax = mesh.plot_mesh()

In [16]: dax = mesh.plot_bsplines(ind=1000, res=0.0001)

In [17]: mesh.add_bsplines(deg=0)

In [18]: dax = mesh.plot_bsplines(ind=1000, res=0.0001, key='eq-bs0')

deg = 1
deg = 0

Hello @Didou09! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file tofu/data/_mesh_bsplines_tri.py:

Line 138:18: E131 continuation line unaligned for hanging indent
Line 255:80: E501 line too long (84 > 79 characters)
Line 441:21: E117 over-indented
Line 475:80: E501 line too long (89 > 79 characters)
Line 542:15: E702 multiple statements on one line (semicolon)

In the file tofu/data/_mesh_checks.py:

Line 202:1: E302 expected 2 blank lines, found 1
Line 496:80: E501 line too long (80 > 79 characters)
Line 783:80: E501 line too long (81 > 79 characters)
Line 784:80: E501 line too long (82 > 79 characters)

In the file tofu/data/_mesh_comp.py:

Line 68:5: E303 too many blank lines (2)
Line 112:80: E501 line too long (82 > 79 characters)
Line 120:80: E501 line too long (83 > 79 characters)
Line 547:13: E131 continuation line unaligned for hanging indent
Line 1014:19: E702 multiple statements on one line (semicolon)

In the file tofu/data/_mesh_plot.py:

Line 555:80: E501 line too long (88 > 79 characters)

In the file tofu/tests/tests06_mesh/test_01_checks.py:

Line 352:24: E228 missing whitespace around modulo operator
Line 374:24: E228 missing whitespace around modulo operator
Line 382:22: E261 at least two spaces before inline comment
Line 405:24: E228 missing whitespace around modulo operator
Line 427:24: E228 missing whitespace around modulo operator
Line 515:13: E116 unexpected indentation (comment)
Line 516:13: E116 unexpected indentation (comment)
Line 517:13: E116 unexpected indentation (comment)
Line 518:13: E116 unexpected indentation (comment)
Line 520:13: E116 unexpected indentation (comment)
Line 521:17: E116 unexpected indentation (comment)
Line 522:17: E116 unexpected indentation (comment)
Line 523:17: E116 unexpected indentation (comment)
Line 524:13: E116 unexpected indentation (comment)
Line 526:13: E116 unexpected indentation (comment)
Line 527:17: E116 unexpected indentation (comment)
Line 528:13: E116 unexpected indentation (comment)


Create macOS installer

macOS installer should be provided as dmg.
And macOS version of bundled Ruby should openssl reference.
So, we should bundle OpenSSL library for macOS.

Creating dmg format installer is done by https://github.com/fluent-plugins-nursery/td-agent-builder/pull/192.

Creating Homebrew td-agent Formula task is also treated in this issue.

Registering td-agent dmg installer into Homebrew Cask repository is also needed to handle in this issue.


Support for Huion-h1161

Hello, I am using a Huion-H1611. It is not in the list and this is the stack-trace I've received. Thanks in advance.
`Finding USB device. . . Done!
grabbed interface %d 0
grabbed interface %d 1
Reading configuration. . . Done!
Setting up driver. . . Done!
Tablet model name         DEBUG TABLET
Buttons                   disabled (0)
Scrollbar                 disabled (0)
Notifications:            ENABLED
for buttons       ENABLED
for scrollbar     disabled
Screen                    disabled
			< DEBUG MODE ENABLED >
Enabled by default. You can disable it by setting debug_mode = false

SYSTEM: Linux 4.15.0-72-generic (x86_64 x86_64)
#81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019
DEVICE: /dev/input/event6 (py-evdev-uinput)
bus: 0003, vendor 0001, product 0001, version 0003
  ENDPOINT 0x81: Interrupt IN ==========================
   bLength          :    0x7 (7 bytes)
   bDescriptorType  :    0x5 Endpoint
   bEndpointAddress :   0x81 IN
   bmAttributes     :    0x3 Interrupt
   wMaxPacketSize   :   0x40 (64 bytes)
   bInterval        :    0x2

TABLET CAPABILITIES:
[('SYN_REPORT', 0), ('SYN_CONFIG', 1), ('SYN_DROPPED', 3), ('?', 21)]
[(['BTN_DIGI', 'BTN_TOOL_PEN'], 320), ('BTN_TOUCH', 330), ('BTN_STYLUS', 331), ('BTN_STYLUS2', 332)]
[(('ABS_X', 0), AbsInfo(value=0, min=0, max=0, fuzz=0, flat=0, resolution=0)), (('ABS_Y', 1), AbsInfo(value=0, min=0, max=0, fuzz=0, flat=0, resolution=0)), (('ABS_PRESSURE', 24), AbsInfo(value=0, min=0, max=0, fuzz=0, flat=0, resolution=0)), (('ABS_TILT_X', 26), AbsInfo(value=0, min=0, max=255, fuzz=0, flat=0, resolution=0)), (('ABS_TILT_Y', 27), AbsInfo(value=0, min=0, max=255, fuzz=0, flat=0, resolution=0))]
VPEN:
name "Tablet Monitor Pen 183507", bus "BUS_USB", vendor "0001", product "0001", version "0003", phys "py-evdev-uinput"
event types: EV_SYN EV_KEY EV_ABS
XINPUT:
ERROR running the following comand:
xinput list --short | grep "Tablet Monitor Pen"
RETURN CODE: 1
`

Hi!  I was hoping for the same.  Any recent work in this direction?  I need a tablet for my teaching work (with the virus going crazy...) and thought this would work well, but I see no list of specific tablets supported.  ??

Please take a look to this thread on the digimend kernel drivers repo regarding support for that tablet.


Update closest_location.py

Adding the queue size logic

This is a very simple logic "no over engineering" where the queue size and the distance are given the same weight. This can be sufficient for the milestistone. Other considerations:

In case a destination X keeps jobs waiting so long in the queue, either because it has a very few compute resources, or the types of jobs that are sent there are normally long running ones, etc. You should down prioritise this destination (if the queue size is large) even if it is next to the object store.
To tackle this: calculate the average/median waiting time of jobs (from submission to executing)  which are sent to this destination.

Just a dumb question most probably - but was not the point to use the logic of the metascheduler algorithms you tested and showed at the Galaxy Days last year @abdulrahmanazab  - and in this case just feed in two parameters instead of the many it uses?

Also, would it be possible to add test data to check input and desired output?

Just a dumb question most probably - but was not the point to use the logic of the metascheduler algorithms you tested and showed at the Galaxy Days last year @abdulrahmanazab - and in this case just feed in two parameters instead of the many it uses?

Well, I'd say that this is an "initial" step on the way. With the data that we have, i.e. the two configuration parameters (location and queue size), this is a very simple algorithm. My algorithms are dependent on historical info of workloads and destinations. I agreed with @pauldg to start with the information that is already stored in Galaxy so that we don't need to establish yet another layer to collect additional information from the destinations. For this, there will be a simple database to "log" the historical data of Galaxy jobs and destinations, which will be used in the new algorithms.
But for this milestone, we go with the simple algorithm, then the other ones can be reported with the deliverable

Also, would it be possible to add test data to check input and desired output?

Yes, I can add some example data to the api docs.
FYI, let's keep further discussion in specific issues, since this PR is now merged


[Plugin] gRPC UI

Summary
This plugin would be similar to the current GraphiQL plugin, but it would be for gRPC instead.  I am currently working on it for my own usage, but I'd love to share it with the rest of the community as well!  (I don't seem to be able to assign myself to this issue, but I would if I could.)
Project website (if applicable)
Here is the documentation for gRPC, which this plugin would be using.  I will add other links soon, potentially to the libraries I will use.
Context
Backstage is a really well-made platform with good infrastructure.  Since the GraphiQL plugin already exists (and looks great), making the gRPC plugin shouldn't be too difficult.

Welcome to the community! Would be great if you could elaborate or share some ideas about this plugin.

How would this work?
I think it would be really cool to have a tool to explore gRPC services, perhaps even integrating things like "bloomrpc" to send test queries.  Perhaps the simplest first step would be something to take proto files and have a nice way to display them.
I'm not aware of code that actually exists, but a quick search shows this example:
https://chromium.googlesource.com/external/github.com/grpc/grpc-go/+/HEAD/Documentation/server-reflection-tutorial.md
I think this would be useful with or without backstage.

Any progress on this one? I found this tool (https://github.com/pseudomuto/protoc-gen-doc) to, among other things, generate static html documentation for protocol buffers. It would be a great first step to be able to generate and structure protocol buffer docs within backstage similar to this.

Hello!  I'm sorry I haven't been keeping up with this project and it'd be great if it could be taken over by someone else!

OK - unassigned for now then, welcome back at another time!

Re-opening since plugin suggestion issues are now exempt from stalebot.

This is something we may be looking at in the nearish future
Right now I'm focusing on getting protobuf/grpc documentation into Backstage, and we actually use protoc-gen-doc internally to create documentation during CI/CD ( https://github.com/backstage/backstage/issues/1686#issuecomment-730286315).
We are also potentially considering a gRPC Playground/explorer plugin as well which fits more in line with this specific plugin idea
However, if anyone has already done any work on this topic it would be great to hear more about it!

This seems like a reasonable target to integrate for gRPC documentation. It leverages protoc-gen-docs to output a json file, then a React component is used to display that. The "workflow" would be similar to the OpenAPI state of things which isn't the case today (most gRPC protocols span multiple files which makes displaying the definition in backstage not very useful, since it's limited to a single file).
They have their own hosting solution, but the "self-hosted" version seems like a reasonable target to integrate in backstage (though perhaps as a specific api type, like grpc-gendocu or similar)

guys! We've opensourced grpc playground and docs for backstage here https://github.com/zalopay-oss/backstage-grpc-playground , please give a try and contribute to improve. Thank!


nbviewer integration

I don't remember the state of including Javascript rendered components on the nbviewer. Is that possible in general now? Is it possible with D3? We're thinking about converting all networkx examples to notebooks and I'm wondering if they could simply be rendered by nbviewer or if they need to be hosted for the graphics to work. Thanks!

Once https://github.com/ipython/ipywidgets/issues/16 is done, this will be possible.


Collision printer class stoping on failure

Hello,
I just bumped my app to Laravel 7 and started using the PHPUnit 9. When I run my tests without the printer class they don't stop at first failure; however, when I try to set the printer class at phpunit.xml they stop at first failure.
Is there any way to configure this?
With printerClass:

printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer">

Without printer class:

On Collision 4 you can't do that.
Try Collision 5 and tell me how it goes.

Thanks, worked well.
Do you think this deserve a note in the docs? I can handle this if you wish

Collision 5 is beta 👍
Let's wait for the stable release.


Taking two inputs instead of one

Takes two inputs at a time from user so after modifying :
It Takes two inputs at different times one is divisor and other is dividend

Hey @Divyanshpatel18
Thanks for contribution to this open source project 😃
This PR will be reviewed and merged shortly

Preview : https://codinasion--pr33-dev-mef9n8f9.web.app/programme/divide-two-numbers/
(expires Wed, 16 Mar 2022 19:27:16 GMT)

LIVE : https://codinasion.web.app/programme/divide-two-numbers/


Booting custom built Rancher kernel

RancherOS Version: (ros os version)
v1.2.0
Where are you running RancherOS? (docker-machine, AWS, GCE, baremetal, etc.)
x86 Bare metal
Hello - I have a x86 NUC board. I have installed Rancher v1.2.0 release by downloading rancher.iso file.
It boots and works. Now that I want a specific kernel (say kernel version 4.9.75) and want to apply few patches to the kernel and built it. Now I want that kernel to be booting on my NUC.  How can I boot my own built kernel? Any pointers?

Hi,
We build the kernel by using this repo. https://github.com/rancher/os-kernel
You can change the kernel here.
https://github.com/rancher/os/blob/master/Dockerfile.dapper#L67
Then run make to build your own RancherOS.


"Unable to set local cert chain file" on Debian libssl-dev in php Docker images

I have error with client certificate on specific build of libssl-dev (FROM debian:stretch-slim)
https://github.com/docker-library/php/blob/f4baf0edbc4e05e241938c68bcc7c9635707583d/7.2/stretch/fpm/Dockerfile#L109
https://packages.debian.org/stretch/libssl-dev
I got error
  [PHPUnit\Framework\Exception (2)]
  file_get_contents(): Unable to set local cert chain file `/var/www/html/api/tests/_data/client01.crt'; Check that your cafile/capath settings include details of your certificate and its issuer

in another build (FROM alpine:3.7) with use libressl-dev
https://github.com/docker-library/php/blob/f4baf0edbc4e05e241938c68bcc7c9635707583d/7.2/alpine3.7/fpm/Dockerfile#L98
same code is work
or if I try to directly run curl command
all is work
https://github.com/docker-library/php/issues/564
I search this
https://github.com/oerdnj/deb.sury.org/issues/661#issuecomment-323683681

https://github.com/docker-library/php/issues/844#issuecomment-521953648


Feature proposal: Set admin password on start with the value of an env variable

This will make unnecessary login on the docker image to update the password manually.

@azimut good request however the password is hard coded into the image as of now setup.sh. It's possible this could be moved to start.sh But would require some other changes. I'm open to a PR if you are interested, otherwise I'll take a look in a few days.


maybe a test package??

// is.go
package is

import (
	"fmt"
	"strings"
	"testing"
)

func Equal[T comparable](t *testing.T, got, want T) {
	// t := &testing.T{} // TODO: is this possible?
	t.Helper()

	if got == want {
		return
	}

	txt1 := fmt.Sprintf("%+#v", got)
	txt2 := fmt.Sprintf("%+#v", want)
	if !strings.HasSuffix(txt1, "\n") {
		txt1 = txt1 + "\n"
	}
	if !strings.HasSuffix(txt2, "\n") {
		txt2 = txt2 + "\n"
	}

	msg := ""
	df := diff(txt1, txt2)
	if len(df) > 0 {
		msg = msg + "got != want\n"
		msg = msg + "diff (-got, +want):"
		msg = msg + fmt.Sprintf("\n  %T(\n%v  )", got, df)
	} else {
		msg = msg + fmt.Sprintf("got: %T(%v). want: %T(%v)", got, got, want, want)
	}

	t.Fatal(msg)
}

from https://github.com/komuw/kama/blob/main/diff.go
package is

import (
	"fmt"
	"strings"
)

// Most of the code here is insipired by(or taken from):
//   (a) https://github.com/rsc/diff whose license(BSD 3-Clause "New" or "Revised" License) can be found here: https://github.com/rsc/diff/blob/master/LICENSE

// diff returns a formatted diff of the two texts,
// showing the entire text and the minimum line-level
// additions and removals to turn text1 into text2.
// (That is, lines only in text1 appear with a leading -,
// and lines only in text2 appear with a leading +.)
func diff(text1, text2 string) string {
	if text1 != "" && !strings.HasSuffix(text1, "\n") {
		text1 += "(missing final newline)"
	}
	lines1 := strings.Split(text1, "\n")
	lines1 = lines1[:len(lines1)-1] // remove empty string after final line
	if text2 != "" && !strings.HasSuffix(text2, "\n") {
		text2 += "(missing final newline)"
	}
	lines2 := strings.Split(text2, "\n")
	lines2 = lines2[:len(lines2)-1] // remove empty string after final line

	// Naive dynamic programming algorithm for edit distance.
	// https://en.wikipedia.org/wiki/Wagner–Fischer_algorithm
	// dist[i][j] = edit distance between lines1[:len(lines1)-i] and lines2[:len(lines2)-j]
	// (The reversed indices make following the minimum cost path
	// visit lines in the same order as in the text.)
	dist := make([][]int, len(lines1)+1)
	for i := range dist {
		dist[i] = make([]int, len(lines2)+1)
		if i == 0 {
			for j := range dist[0] {
				dist[0][j] = j
			}
			continue
		}
		for j := range dist[i] {
			if j == 0 {
				dist[i][0] = i
				continue
			}
			cost := dist[i][j-1] + 1
			if cost > dist[i-1][j]+1 {
				cost = dist[i-1][j] + 1
			}
			if lines1[len(lines1)-i] == lines2[len(lines2)-j] {
				if cost > dist[i-1][j-1] {
					cost = dist[i-1][j-1]
				}
			}
			dist[i][j] = cost
		}
	}

	var buf strings.Builder
	i, j := len(lines1), len(lines2)
	for i > 0 || j > 0 {
		cost := dist[i][j]
		if i > 0 && j > 0 && cost == dist[i-1][j-1] && lines1[len(lines1)-i] == lines2[len(lines2)-j] {
			fmt.Fprintf(&buf, " %s\n", lines1[len(lines1)-i])
			i--
			j--
		} else if i > 0 && cost == dist[i-1][j]+1 {
			fmt.Fprintf(&buf, "-\t%s,\n", lines1[len(lines1)-i])
			i--
		} else {
			fmt.Fprintf(&buf, "+\t%s,\n", lines2[len(lines2)-j])
			j--
		}
	}
	return buf.String()
}

// is_test.go
package is

import (
	"fmt"
	"testing"

	"go.akshayshah.org/attest"
)

func TestEqual(t *testing.T) {
	t.Run("ok", func(t *testing.T) {
		Equal(t, 4, 5)

		fmt.Println()
		fmt.Println()
		attest.Equal(t, 4, 5)
		_ = attest.Cmp()

		// Equal(t, "komu", "kojk")
	})
}


Better articulation of the relationship between Office JS APIs and Office Scripts APIs

Docs Build status updates of commit b08fbe7:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/resources/add-ins-differences.md
:warning:Warning

Details

docs/resources/add-ins-differences.md

Line 28: [Warning-InvalidFileLink] Invalid file link:(~/excel-async-model.md).

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit a6732e1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/resources/add-ins-differences.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit a511541:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/resources/add-ins-differences.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Added the save step for application settings

See https://github.com/MicrosoftDocs/azure-docs/issues/57341

@aelgasser : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@burkeholland - Hi, could you review the proposed update to your article? Thanks.

#sign-off


CMake Error: The source directory does not appear to container CMakeLists.txt

I'm following the instructions to build this tool manually as described in the README.md but the second step isn't working.
This happens just fine

The process done on Linux is roughly:
git clone --single-branch --branch llvmorg-17.0.4 https://github.com/llvm/llvm-project
cd llvm-project
mkdir -p artifacts/bin
cd artifacts/bin
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DLLVM_ENABLE_PROJECTS=clang ../../llvm
make install

This yeilds an error

Afterwards, you can then build libClangSharp where the process followed is roughly:
git clone https://github.com/dotnet/clangsharp
cd clangsharp
mkdir -p artifacts/bin/native
cd artifacts/bin/native
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DPATH_TO_LLVM=../../../../llvm-project/artifacts/install
make install

The error happens at the cmake command.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DPATH_TO_LLVM=../../../../llvm-project/artifacts/install
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.

CMake Error: The source directory "/home/dan/Documents/install/build-clangsharp/clangsharp/artifacts/bin/native" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

I'm sure I copy pasted the commands in from the README correctly. Is there something in the documentation I should have noticed?

It's just missing ../../.. as a final argument to specify the directory that contains CMakeLists.txt, which is to say the relative path from the current directory to the repository root.

Boy that fixed it. I submitted a pull request with your suggestion


To fix bugs for AS_923 and to add support for AS_923_2

Hi all,
I would like to add some effort for AS_923 and AS_923_2 (Vietnam and Indonesia).
I tested the code with Kerlink Wirnet gateway and Dragino LPS8 gateway.
I have able to join and send up link to ChirpStack LoRaWAN server.
Changes:

To add extra notes to define frequency plan in Config.h. New users need to be aware of this important configuration.
To fix code for AS_923. AS_923 may never work before yet. If enabling AS_923, the code is not compilable.
To add extra code for AS_923_2. Pretty sure on the frequencies for AS_923_2.

Please help to review and push to main source code. I hope it will be useful for Asian users.
Thanks a lot.

Thanks a lot. :)

Please assist to verify and approve the changes next week.
Thanks a lot and Happy Labour Day (1st May).


UI integration tests on X64 desktop using x11

I've tried to run integration tests on the default flutter app (counter + increment) in Ubuntu 20.04 X64 with flutter-elinux. The test run well until it tries to call the uninstall command in the end.
It looks like the device elinux-x11 has no uninstall command defined.
Here is the log :
[  +49 ms] executing: uname -m
[  +23 ms] Exit code 0 from: uname -m
[        ] x86_64
[  +11 ms] executing: [/home/dev/sdk/flutter-elinux/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +2 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 097d3313d8e2c7f901932d63e537c1acefb87800
[        ] executing: [/home/dev/sdk/flutter-elinux/flutter/] git tag --points-at 097d3313d8e2c7f901932d63e537c1acefb87800
[  +10 ms] Exit code 0 from: git tag --points-at 097d3313d8e2c7f901932d63e537c1acefb87800
[        ] 2.10.2
[  +34 ms] executing: [/home/dev/sdk/flutter-elinux/flutter/] git rev-parse --abbrev-ref HEAD
[   +3 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] HEAD
[        ] executing: [/home/dev/sdk/flutter-elinux/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +3 ms] Exit code 128 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] fatal: HEAD does not point to a branch
[  +18 ms] Unable to locate an Android SDK.
[ +129 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[  +63 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[  +25 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[  +62 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[   +5 ms] Found 1 files which will be executed as Integration Tests.
[   +5 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +18 ms] Artifact Instance of 'ELinuxEngineArtifacts' is not required, skipping update.
[  +19 ms] executing: ping -w 500 -c 1 <IP_ADDRESS>
[  +29 ms] PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
           64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.046 ms

           --- <IP_ADDRESS> ping statistics ---
           1 packets transmitted, 1 received, 0% packet loss, time 0ms
           rtt min/avg/max/mdev = 0.046/0.046/0.046/0.000 ms
[   +3 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[   +8 ms] Artifact Instance of 'ELinuxEngineArtifacts' is not required, skipping update.
[  +82 ms] Skipping pub get: version match.
[  +26 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[  +71 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[  +20 ms] Generating /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[ +144 ms] running test package with arguments: [-r, compact, --timeout, 30s, --concurrency=1, --chain-stack-traces, --,
/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart]
00:00 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [ +150 ms] test 0: starting test /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart
[  +10 ms] Stopping scan for flutter_test_config.dart; found project root at /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world
[        ] test 0: starting test device
[   +3 ms] test 0: awaiting connection to test device
[  +17 ms] Building app
[  +11 ms] Building an eLinux application with x11 backend in debug mode for x64 target...
[   +7 ms] Initializing file store
[  +37 ms] Skipping target: gen_localizations
[  +22 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/.dart_tool/package_config_subset}
[   +9 ms] elinux_plugins: Starting due to {}
[   +5 ms] elinux_plugins: Complete
[  +31 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[   +7 ms] gen_dart_plugin_registrant: Complete
[  +13 ms] kernel_snapshot: Starting due to {}
[  +20 ms] /home/dev/sdk/flutter-elinux/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/home/dev/sdk/flutter-elinux/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
/home/dev/sdk/flutter-elinux/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter --no-print-incremental-dependencies -DFLUTTER_WEB_AUTO_DETECT=true
-DINTEGRATION_TEST_SHOULD_REPORT_RESULTS_TO_NATIVE=false -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --no-link-platform --packages
/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/.dart_tool/package_config.json --output-dill
/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/.dart_tool/flutter_build/53e7b09f911f19c7ccd36f99ca8b41a5/app.dill --depfile
/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/.dart_tool/flutter_build/53e7b09f911f19c7ccd36f99ca8b41a5/kernel_snapshot.d
file:///tmp/flutter_tools.HJMEOH/flutter_test_listener.AVSZIS/listener.dart
00:08 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [+8008 ms] kernel_snapshot: Complete
[ +602 ms] debug_elinux_application: Starting due to {}
00:09 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [ +593 ms] debug_elinux_application: Complete
[+1067 ms] Persisting file store
[  +13 ms] Done persisting file store
[ +791 ms] Found plugin integration_test at /home/dev/sdk/flutter-elinux/flutter/packages/integration_test/
[  +12 ms] executing: [/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/] cmake -DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_BACKEND_TYPE=x11
/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/elinux
00:12 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [+1115 ms] -- The CXX compiler identification is Clang 11.0.1
                    -- Detecting CXX compiler ABI info
                    -- Detecting CXX compiler ABI info - done
                    -- Check for working CXX compiler: /usr/bin/clang++ - skipped
                    -- Detecting CXX compile features
                    -- Detecting CXX compile features - done
                    -- Configuring done
                    -- Generating done
                    -- Build files have been written to: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug
[        ] executing: [/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/] cmake --build .
00:25 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [+12973 ms] Scanning dependencies of target flutter_assemble
                     [  0%] Built target flutter_assemble
                     Scanning dependencies of target flutter_wrapper_app
                     [  7%] Building CXX object flutter/CMakeFiles/flutter_wrapper_app.dir/ephemeral/cpp_client_wrapper/core_implementations.cc.o
                     [ 15%] Building CXX object flutter/CMakeFiles/flutter_wrapper_app.dir/ephemeral/cpp_client_wrapper/standard_codec.cc.o
                     [ 23%] Building CXX object flutter/CMakeFiles/flutter_wrapper_app.dir/ephemeral/cpp_client_wrapper/flutter_engine.cc.o
                     [ 30%] Building CXX object flutter/CMakeFiles/flutter_wrapper_app.dir/ephemeral/cpp_client_wrapper/flutter_view_controller.cc.o
                     [ 38%] Linking CXX static library libflutter_wrapper_app.a
                     [ 38%] Built target flutter_wrapper_app
                     Scanning dependencies of target flutter_wrapper_plugin
                     [ 46%] Building CXX object flutter/CMakeFiles/flutter_wrapper_plugin.dir/ephemeral/cpp_client_wrapper/core_implementations.cc.o
                     [ 53%] Building CXX object flutter/CMakeFiles/flutter_wrapper_plugin.dir/ephemeral/cpp_client_wrapper/standard_codec.cc.o
                     [ 61%] Building CXX object flutter/CMakeFiles/flutter_wrapper_plugin.dir/ephemeral/cpp_client_wrapper/plugin_registrar.cc.o
                     [ 69%] Linking CXX static library libflutter_wrapper_plugin.a
                     [ 69%] Built target flutter_wrapper_plugin
                     Scanning dependencies of target hello_world
                     [ 76%] Building CXX object runner/CMakeFiles/hello_world.dir/flutter_window.cc.o
                     [ 84%] Building CXX object runner/CMakeFiles/hello_world.dir/main.cc.o
                     [ 92%] Building CXX object runner/CMakeFiles/hello_world.dir/__/flutter/generated_plugin_registrant.cc.o
                     [100%] Linking CXX executable hello_world
                     [100%] Built target hello_world

                     gmake: Warning: File 'Makefile' has modification time 1.2 s in the future
                     gmake[1]: Warning: File 'CMakeFiles/Makefile2' has modification time 1.6 s in the future
                     gmake[2]: Warning: File 'flutter/CMakeFiles/flutter_assemble.dir/progress.make' has modification time 1.6 s in the future
                     gmake[2]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake[2]: Warning: File 'flutter/CMakeFiles/flutter_assemble.dir/progress.make' has modification time 1.5 s in the future
                     gmake[2]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake[2]: Warning: File 'flutter/CMakeFiles/flutter_wrapper_app.dir/flags.make' has modification time 1.3 s in the future
                     gmake[2]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake[2]: Warning: File 'flutter/CMakeFiles/flutter_wrapper_app.dir/flags.make' has modification time 0.88 s in the future
                     gmake[2]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake[2]: Warning: File 'flutter/CMakeFiles/flutter_wrapper_plugin.dir/depend.make' has modification time 1.7 s in the future
                     gmake[2]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake[2]: Warning: File 'runner/CMakeFiles/hello_world.dir/depend.make' has modification time 1.7 s in the future
                     gmake[2]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake[1]: warning:  Clock skew detected.  Your build may be incomplete.
                     gmake: warning:  Clock skew detected.  Your build may be incomplete.
[        ] executing: [/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/] cmake --install .
00:29 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [+4546 ms] -- Install configuration: "Debug"
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/hello_world
                    -- Set runtime path of "/workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/hello_world" to "$ORIGIN/lib"
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/icudtl.dat
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/lib/libflutter_engine.so
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/lib/libflutter_elinux_x11.so
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/AssetManifest.json
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/FontManifest.json
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/fonts
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/isolate_snapshot_data
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/NOTICES.Z
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/packages
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets
                    -- Installing:
                    /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.t
                    tf
                    -- Installing: /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/build/elinux/x64/debug/bundle/data/flutter_assets/vm_snapshot_data
[ +424 ms] Building an eLinux application with x11 backend in debug mode for x64 target... (completed in 30.3s)
00:31 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [ +728 ms] Observatory URL on device: http://<IP_ADDRESS>:40033/Hgka7KDp5l8=/
[   +2 ms] test 0: Connecting to vm service
[  +12 ms] test 0: Observatory uri is available at http://<IP_ADDRESS>:40033/Hgka7KDp5l8=/
[ +127 ms] test 0: Finding the correct isolate with the integration test service extension
00:32 +0: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart                                                                     [ +912 ms] test 0: connected to test device, now awaiting test result
[        ] test 0: Waiting for test harness or tests to finish
00:33 +1: (tearDownAll)                                                                                [+1344 ms] test 0: Test harness is no longer needed by test process
[        ] test 0: finished
[        ] test 0: cleaning up...
[        ] test 0: ensuring test device is terminated.
[   +1 ms] test 0: Test process is no longer needed by test harness
00:33 +1 -1: loading /workspaces/flutter-elinux-imx8mm-devcontainer/hello_world/integration_test/app_test.dart [E]
  NoSuchMethodError: The getter 'uninstallCommand' was called on null.
  Receiver: null
  Tried calling: uninstallCommand
  dart:core-patch/object_patch.dart 38:5                              Object.noSuchMethod
  package:flutter_elinux/elinux_device.dart 415:17                    ELinuxDevice.tryUninstall
  package:flutter_elinux/elinux_device.dart 137:12                    ELinuxDevice.uninstallApp
  package:flutter_tools/src/test/integration_test_device.dart 119:23  IntegrationTestTestDevice.kill
  ===== asynchronous gap ===========================
  package:flutter_tools/src/test/flutter_platform.dart 485:9          FlutterPlatform._startTest.<fn>
  ===== asynchronous gap ===========================
  package:flutter_tools/src/test/flutter_platform.dart 538:11         FlutterPlatform._startTest
  ===== asynchronous gap ===========================
  dart:async/future.dart 473:21                                       Future.wait.<fn>
  ===== asynchronous gap ===========================
  package:flutter_tools/src/test/flutter_platform.dart 648:7          _FlutterPlatformStreamSinkWrapper.close.<fn>

@GuillaumeMorinQc Thank you for reporting the bug. I fixed this bug https://github.com/sony/flutter-elinux/pull/91. Thank you very much.


Decouple dynamic routing logic

Decouple the dynamic routing logic from the framework and put it in its own repository.  The work was started with https://github.com/zurb/front-router to migrate the gulp task.  The base.dynamicRouting and base.dynamicRouting.animations modules should also be moved.
The dynamic routing logic can then be an optional dependency included by applications and does not need to be supported with the core framework.

The logic has been split into the following repositories:

https://github.com/base-apps/angular-front-router
https://github.com/base-apps/angular-dynamic-routing

Angular front router is responsible for taking the front matter and turning it into state configurations.  Angular dynamic routing is responsible for taking those state configurations and creating angular states.
To migrate to the next version with these changes, developers will need to do the following:

Install angular-front-matter and angular-dynamic-routing from npm
Replace foundation.dynamicRounting or base.dynamicRouting with new dynamicRouting angular module
Update path to gulp routing plugin.  Should now be node_modules/angular-front-router
Include dynamic routing source

node_modules/angular-dynamic-routing/dynamicRouting.js
node_modules/angular-dynamic-routing/dynamicRouting.animations.js


Add support for giscus as comments provider

Is your feature request related to a problem? Please describe.
Gitalk and utterances are great, but they (ab)use GitHub Issues. Given enough time, they would flood the repository's issues.
Describe the solution you'd like
Add support for giscus, a comments widget powered by GitHub Discussions.
Describe alternatives you've considered
None.
Additional context
None.
Thanks!

Hi, Thank you for the suggestion, It seems nice! I will add giscus later, but I don't have ETA for now.
and yes, I agree gitalk and utterances are abusing GitHub Issue, and I don't use it personally. I suggest take a look at cusdis, it might be a better option imo.

And oh, you're the dev of giscus, I will definitely take a look~

Ah, yes, I probably should've mentioned that 😅
Thanks!


Reflect: helpers for "diffing" dynamic structs

bevy_reflect should have functionality that allows taking two instances of structs and detecting which fields have differing values, and which fields have equal values.
This could be useful for #5562 .
It can also have other uses, like maybe editor UIs that want to highlight changed values.

I have a very old pr that adds this: #944

I'm going to try to take a stab at this and see if I come up with anything 😬


[ng] Stackview inside modal is rendered as expanded

Select one ...  (check one with "x")
[x] bug
[ ] feature request
[ ] enhancement

Expected behavior

Stackview rendered inside the modal should initially render as not expanded unless clrSbExpanded input is set to true.
Actual behavior

After upgrading to Angular ^4.2.x, the stackview inside a modal is showing up as expanded. I know that the state isn't actually expanded, as the initial click will re-expand it, and the subsequent states after that operate as normal. Note that this only happens when we open the modal after it has been loaded. If the modal's clrModalOpen is already set to true on initial page load, this bug does not occur.
Reproduction of behavior
Click on the edit button on the right-top corner of the stack view under "Stack View With Editing in a Modal":
https://vmware.github.io/clarity/documentation/stack-view
Environment details

Angular version: 2.2.X

Clarity version:  0.9.16

OS and version:

Browser: all

+1

This is pretty stale, and believe is a duplicate. Having the modal defined outside of the stackview would likely address this or to use the Core modal. Closing as stale, unless we have a recent reproduction to address.

This is pretty stale, and believe is a duplicate. Having the modal defined outside of the stackview would likely address this or to use the Core modal. Closing as stale, unless we have a recent reproduction to address.


Where is assembly language?

Where is assembly language?

I have worked on learning NASM and GAS Assemblers, but I haven't yet figured out how to efficiently perform floating-point arithmetic in them.

Ok


Out of memory error

So I'm getting an OOM even with 80GB of RAM on the deepblast step.  I think the reason is because we are loading all of the alignments in memory, rather than pushing it out in a streaming fashion. The GPU can only handle like 15 alignments in memory at any given time.
This is definitely a road block for deployment, so let's figure out how to resolve this for larger files.

I believe that this is resolved in #10 using the fasta index.


Restrict which records / rows an  API user can access based on the user's affiliation to an organisation.

User story
As an MS FHIR Server admin, I want to be able to restrict which records / rows an  API user can access based on the user's affiliation to an organisation.
For example in Patient.managingOrganization (Organization that is the custodian of the patient record), an authenticated API User, with an affiliation to the Patient.managingOrganization that is the custodian of the patient record can only see patient records linked to the Patient.managingOrganization.
Could this be implemented using database policies / row level security in SQL database? A similar concept exists in Oracle virtual private database :- https://docs.oracle.com/cd/B28359_01/network.111/b28531/vpd.htm#DBSEG007
The id of the caller is passed to the database where the database policy adds a dynamic WHERE clause to a SQL statement that is issued against the table, view, or synonym to which the Database security policy was applied.
Acceptance criteria
When an authenticated API User, with an affiliation to the Patient.managingOrganization submits a search request, the database policies / row level security will only return matches which are also  linked to the Patient.managingOrganization.
Search matches which are not also  linked to the Patient.managingOrganization will not be returned.

I would be interested in similar functionality on a more granular level: CareTeam, PractitionerRole. Something like RBAC derived from FHIR resources.
But, AFAIK, there is no specification for AuthZ on FHIR. Maybe some kind of generic solution is possible? Where an admin could upload a policy file defining which roles are allowed to view/edit which resources and within what scopes (compartments).
Four things would be needed:

Mapping Identity (Patient, ReleatedPerson, Practitioner, Device) into a Role
The Role I refer here would be something defined in a policy file
A way to define what actions (read/write) a Role can perform on what types of resources
(scopes from role definition should be intersected with SMART scopes from the token to obtain actual scopes)
A way to define the scope (compartment) for a Role
(for each type of resource in scope define a query relating it to Identity resources)
A way to define what anonymization strategies to apply for each resource
e.g. Redact, Generalize

This all will get complicated very quickly when we start to consider chaining/includes:

Actions/Scopes/Anonymization from the role needs to apply to included resources as well
When search includes chains, it should only chain of resources the user is allowed to see
With anonymization, it should be performed before a chain or include
etc.

@jmandel We have talked about this at FHIR DevDays a bit. Do you have any thoughs? Can this solution be generic and simple enough to be useful? Is there any the reason AuthZ is not part of the FHIR spec (not even an implementation guide)?

I would be interested in similar functionality on a more granular level: CareTeam, PractitionerRole. Something like RBAC derived from FHIR resources.
But, AFAIK, there is no specification for AuthZ on FHIR. Maybe some kind of generic solution is possible? Where an admin could upload a policy file defining which roles are allowed to view/edit which resources and within what scopes (compartments).
Four things would be needed:

Mapping Identity (Patient, ReleatedPerson, Practitioner, Device) into a Role
The Role I refer here would be something defined in a policy file
A way to define what actions (read/write) a Role can perform on what types of resources
(scopes from role definition should be intersected with SMART scopes from the token to obtain actual scopes)
A way to define the scope (compartment) for a Role
(for each type of resource in scope define a query relating it to Identity resources)
A way to define what anonymization strategies to apply for each resource
e.g. Redact, Generalize

This all will get complicated very quickly when we start to consider chaining/includes:

Actions/Scopes/Anonymization from the role needs to apply to included resources as well
When search includes chains, it should only chain of resources the user is allowed to see
With anonymization, it should be performed before a chain or include
etc.

@jmandel We have talked about this at FHIR DevDays a bit. Do you have any thoughs? Can this solution be generic and simple enough to be useful? Is there any the reason AuthZ is not part of the FHIR spec (not even an implementation guide)?

@uxbridgeroad right now we don't have a solution for fine-grain access control within the FHIR Server. We have this in our backlog but no timeline on when we would address it. We have an architect team that works with the FHIR Server and they have created a proxy that will help with some scenarios. You can see details of that here: https://github.com/microsoft/health-architectures/tree/master/FHIR/FHIRProxy

@CaitlinV39 , Thanks for the update. I had look at the FHIRProxy previously but the required granularity was not there at that time. I will will investigate again and see if it can help.
Regarding the backlog and timelines, is there any visibility of this on GitHub? We are using MS-FHIR in a major project and it would really help to be able to align our releases with expected delivery of backlog items.

@uxbridgeroad right now the best way is to just see the activity on the repo. I know that isn't a very satisfying answer but we continue to reprioritize features based on what we hear from customers and our roadmap changes. For big features, we are typically pushing PRs adding features for a bit. Right now you can see that we are adding support to define search parameters and also supporting some sort capabilities in SQL. We will continue to think about how we can better surface this.

@CaitlinV39 , just to confirm that this is one of the issues we were discussing earlier today with Marc and yourself.

Thanks @uxbridgeroad. Right now, our answer is still the same as it was in February that the proxy is probably the best route. Marc's team is the one that owns the proxy so may be able to make some updates there as well. We'll continue to keep this open but I don't have a timeline for when this would be supported in the server natively.


fail to unmarshal event, AddEventRequest.Event.Readings[0].ValueType field validation failed on the edgex-dto-value-type tag

Hi all,
When i received the message by device-mqtt-go.
And the message is {"name":"AX-3D","cmd":"stream","stream":{"X":"0.004","Y":"-0.015","Z":"0.991"}} .
But there is a Error message " fail to unmarshal event, AddEventRequest.Event.Readings[0].ValueType field validation failed on the edgex-dto-value-type tag " in core-data .

device profile
...
deviceResources:
  -
    name: stream
    isHidden: true
    description: "AX-3D streaming"
    properties:
      valueType: "Object"
      readWrite: "R"

are you able to show the whole event payload?

@cloudxxx8
What do you mean about the whole event payload?
Could you give me a Example ?

that's the message send out from the device-mqtt
are you able to upload your config, profile, and device content?

@cloudxxx8 :
device config
# Pre-define Devices
[[DeviceList]]
  Name = "AX-3D"
  ProfileName = "AX-3D-profile-Obj"
  Description = "MQTT device is created for test purpose"
  Labels = [ "MQTT", "test" ]
  [DeviceList.Protocols]
    [DeviceList.Protocols.mqtt]
       CommandTopic = "CommandTopic"

device profile
name: "AX-3D-profile-Obj"
manufacturer: "iot"
model: "MQTT-DEVICE"
description: "Test device profile"
labels:
  - "mqtt"
  - "test"
deviceResources:
  -
    name: randnum
    isHidden: true
    description: "device random number"
    properties:
      valueType: "String"
      readWrite: "R"
  -
    name: ping
    isHidden: true
    description: "device awake"
    properties:
      valueType: "String"
      readWrite: "R"
  -
    name: Start
    isHidden: false
    description: "Start streaming"
    properties:
      valueType: "String"
      readWrite: "R"
  -
    name: Stop
    isHidden: false
    description: "Stop streaming"
    properties:
      valueType: "String"
      readWrite: "R"
  -
    name: message
    isHidden: true
    description: "device message"
    properties:
      valueType: "String"
      readWrite: "RW"
  -
    name: stream
    isHidden: true
    description: "AX-3D streaming"
    properties:
      valueType: "Object"
      readWrite: "R"

deviceCommands:
  -
    name: values
    readWrite: "R"
    isHidden: false
    resourceOperations:
        - { deviceResource: "randnum" }
        - { deviceResource: "ping" }
        - { deviceResource: "message" }

mqtt-ds config
MaxEventSize = 0 # value 0 unlimit the maximum event size that can be sent to message bus or core-data

[Writable]
LogLevel = "INFO"
  # InsecureSecrets are required for when Redis is used for message bus
  [Writable.InsecureSecrets]
    [Writable.InsecureSecrets.DB]
    path = "redisdb"
      [Writable.InsecureSecrets.DB.Secrets]
      username = ""
      password = ""
    [Writable.InsecureSecrets.MQTT]
    path = "credentials"
      [Writable.InsecureSecrets.MQTT.Secrets]
      username = ""
      password = ""
  [Writable.Reading]
  ReadingUnits = true

[Service]
HealthCheckInterval = "10s"
Host = "localhost"
Port = 59982
ServerBindAddr = ""  # blank value defaults to Service.Host value
StartupMsg = "device mqtt started"
# MaxRequestSize limit the request body size in byte of put command
MaxRequestSize = 0 # value 0 unlimit the request size.
RequestTimeout = "5s"

[Registry]
Host = "localhost"
Port = 8500
Type = "consul"

[Clients]
  [Clients.core-data]
  Protocol = "http"
  Host = "localhost"
  Port = 59880

  [Clients.core-metadata]
  Protocol = "http"
  Host = "localhost"
  Port = 59881

[MessageQueue]
Protocol = "redis"
Host = "localhost"
Port = 6379
Type = "redis"
AuthMode = "usernamepassword"  # required for redis messagebus (secure or insecure).
SecretName = "redisdb"
PublishTopicPrefix = "edgex/events/device" # /<device-profile-name>/<device-name>/<source-name> will be added to this Publish Topic prefix
  [MessageQueue.Optional]
  # Default MQTT Specific options that need to be here to enable environment variable overrides of them
  # Client Identifiers
  ClientId = "device-mqtt"
  # Connection information
  Qos = "0" # Quality of Sevice values are 0 (At most once), 1 (At least once) or 2 (Exactly once)
  KeepAlive = "10" # Seconds (must be 2 or greater)
  Retained = "false"
  AutoReconnect = "true"
  ConnectTimeout = "5" # Seconds
  SkipCertVerify = "false" # Only used if Cert/Key file or Cert/Key PEMblock are specified

[SecretStore]
Type = "vault"
Host = "localhost"
Port = 8200
Path = "device-mqtt/"
Protocol = "http"
RootCaCertPath = ""
ServerName = ""
# Uncomment to seed service secrets file
# SecretsFile = "/tmp/edgex/secrets/device-mqtt/secrets.json"
DisableScrubSecretsFile = false
TokenFile = "/tmp/edgex/secrets/device-mqtt/secrets-token.json"
  [SecretStore.Authentication]
  AuthType = "X-Vault-Token"
  [SecretStore.RuntimeTokenProvider]
  Enabled = false
  Protocol = "https"
  Host = "localhost"
  Port = 59841
  TrustDomain = "edgexfoundry.org"
  EndpointSocket = "/tmp/edgex/secrets/spiffe/public/api.sock"
  RequiredSecrets = "redisdb"

[Device]
DataTransform = true
MaxCmdOps = 128
MaxCmdValueLen = 256
ProfilesDir = "./res/profiles"
DevicesDir = "./res/devices"
UpdateLastConnected = false
Labels = []
EnableAsyncReadings = true
AsyncBufferSize = 16
UseMessageBus = true

[MQTTBrokerInfo]
Schema = "tcp"
Host = "<IP_ADDRESS>"
Port = 1883
Qos = 0
KeepAlive = 3600
ClientId = "device-mqtt"

CredentialsRetryTime = 120 # Seconds
CredentialsRetryWait = 1 # Seconds
ConnEstablishingRetry = 10
ConnRetryWaitTime = 5

# AuthMode is the MQTT broker authentication mechanism. Currently, "none" and "usernamepassword" is the only AuthMode supported by this service, and the secret keys are "username" and "password".
AuthMode = "none"
CredentialsPath = "credentials"

# Comment out/remove when using multi-level topics
IncomingTopic = "IncomingTopic"
ResponseTopic = "ResponseTopic"
UseTopicLevels = false

# Uncomment to use multi-level topics
# IncomingTopic = "incoming/data/#"
# ResponseTopic = "command/response/#"
# UseTopicLevels = true

    [MQTTBrokerInfo.Writable]
    # ResponseFetchInterval specifies the retry interval(milliseconds) to fetch the command response from the MQTT broker
    ResponseFetchInterval = 500

What's your edgex version? The edgex supports Object value type from v2.1.

@weichou1229
I tried to upgrade the core-data version 2.0 to 2.1, and it can work now.
Thank you!


Make an android app so I can sync my files

It would be nice to have a desktop and/or android app that I can point to my sandstorm server so I can sync my files and not be limited to dropbox storage limits.

Neat idea! I hadn't thought of this before. I'm don't think I'll be able to get to this in the near-term, but I'd love to see it happen.  Since Filedrop exposes a very simple HTTP API, it shouldn't be too hard of an app to write, either.
In the meantime, the UI should be mobile-friendly, so you can use your browser to upload files.  I also hear good things about Davros for syncing folders, but I haven't tried it myself.


Stop mutating state in initialize reducer

I think calling initialize action with deep form does not pass new fields to my component.
componentWillReceiveProps function in ReduxForm component is trying to check the previous props and current props, but the previous form props and current form props is almost same when I define deeply nested form.(https://github.com/erikras/redux-form/blob/master/src/createHigherOrderComponent.js#L47)
The reason seems that the previous state is mutated in initialize reducer.
Sorry I could not write test cases to reproduce this, since I do not have much time for this right now...

Oh my! How embarrassing! 😳
Thanks, @haradakunihiko! :+1:


"AssertionError: has_mat() at line 461 of c:\buildslave\sdk-windows-i386\build\built1.10\include\transformState.I"

Setup
Headset: HTC Vive
Controllers: Valve Index Knuckles
SteamVR Version: 1.15.16
Issue
Upon running my game, it seems to work fine, until the SteamVR Menu (revealed by pressing the System button [Wands/Knuckles] or the menu/hamburger button [Touch 1 and 2]) is opened, and the game crashes with:
Traceback (most recent call last):
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 312, in left_cb
    cbdata.upcall()
AssertionError: has_mat() at line 461 of c:\buildslave\sdk-windows-i386\build\built1.10\include\transformState.I
Traceback (most recent call last):
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 317, in right_cb
    cbdata.upcall()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 312, in left_cb
    cbdata.upcall()
AssertionError: has_mat() at line 461 of c:\buildslave\sdk-windows-i386\build\built1.10\include\transformState.I
Traceback (most recent call last):
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\direct\showbase\ShowBase.py", line 2020, in __igLoop
    self.graphicsEngine.renderFrame()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 317, in right_cb
    cbdata.upcall()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 312, in left_cb
    cbdata.upcall()
AssertionError: has_mat() at line 461 of c:\buildslave\sdk-windows-i386\build\built1.10\include\transformState.I
Traceback (most recent call last):
  File "C:\Users\zurgE\OneDrive\Documents\3D Python programs\firehawk_vr2.py", line 456, in <module>
    App().run()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\direct\showbase\ShowBase.py", line 3152, in run
    self.taskMgr.run()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\direct\task\Task.py", line 537, in run
    self.step()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\direct\task\Task.py", line 491, in step
    self.mgr.poll()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\direct\showbase\ShowBase.py", line 2020, in __igLoop
    self.graphicsEngine.renderFrame()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 317, in right_cb
    cbdata.upcall()
  File "C:\Users\zurgE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\p3dopenvr\p3dopenvr.py", line 312, in left_cb
    cbdata.upcall()
AssertionError: has_mat() at line 461 of c:\buildslave\sdk-windows-i386\build\built1.10\include\transformState.I

In theory, this could be caught and removed(?) once the latest release with error handling is out (by passing on the error, which would most likely cause a freeze/further crashing sadly). It appears to by caused by the game not pausing when the universal menu is opened.
Interestingly enough, when this happens, the game doesn't actually run again until you reboot SteamVR, which would not be great in a production environment!

Update:
With the following snippet, added to p3dopenvr.py:
    def on_compositor_error(e):
        raise e
    def left_cb(self, cbdata):
        try:
            cbdata.upcall()
            if not self.submit_together:
                self.submit_texture(openvr.Eye_Left, self.left_texture)
        except Exception as e:
            self.on_compositor_error(e)

    def right_cb(self, cbdata):
        try:
            cbdata.upcall()
            if not self.submit_together:
                self.submit_texture(openvr.Eye_Left, self.left_texture)
                self.submit_texture(openvr.Eye_Right, self.right_texture)
        except Exception as e:
            self.on_compositor_error(e)

and this one added to my code in the P3DOpenVR class derivative:
    def on_compositor_error(self,e):
        if type(e) != AssertionError:
            raise e

The game continues to run, however, doesn't not submit any frames to SteamVR.
@el-dee Should this be the default compositor error handling once I get a PR up and running for compositor error handling?

I tested on my setup and opening the System overlay does not cause any problem, the app is actually still running in the background.
The assertion is probably due to an invalid matrix retrieved from one of the pose and used in the scenegraph. I'm a bit reluctant to add such wide exception catch (unless there is no other way).
Instead I would implement detection of the system menu event and add a callback / method in p3dopenvr so the application can freeze while the menu is open.

If an action is not valid, they now return None. Also, p3dopenvr has a property has_focus that can be used to check if the app has the focus on the input devices.