2 different keys for reading/writing

Hello,
An idea would be to have two differents keys: one to do GET requests, that can be only used to read data, and another private key that let us to write data on our store.
Thanks !

Hey @Donokami,
While I see the point of what you're suggesting, I only see little benefits coming out of implementing this.
Right now, jsonstore is meant to be used only in the server, so that the token remains secret and no one can read or modify the data attached to it.
Now, say we apply your idea, developers will be able to use either the read or the write key in the client, but honestly, sharing the write key is super dangerous and should not be done, and I can't think of many applications that will only store public data, and even if they do, I wouldn't recommend sharing the read key.
However, I'd be happy if you'd change my mind :)

This kind of role / view implementation would allow to build a secure website which displays data (for example temperature measurement) by accessing your webservice directly (using the read-key).
The sensor in the backend on the other hand would use the write-key.
I think that's a really nice feature

Well, I'm willing to give it a shot, if someone will try to implement it as an advanced option, leaving the current behavior as the default behavior, I'll be happy to merge it.


Test Opportunity

This is a paid opportunity through the BCDevExchange.To apply, visit the opportunity page and submit a proposal before Thursday, May 31, 2018

Hello everyone. I am the product manager for this opportunity. If you have any questions please post them and I'll respond here for all to see. If you need to ask a question but don't want others to see that you're interested in this opportunity, you can email me at<EMAIL_ADDRESS>I will then anonymize your question and post it along with an answer.
Thanks for your interest!


unable to load local .ptl model

Description
Hi,
I want to load a local model located in my project folder at "./models/model.ptl"
i tried using ,
'''
// const filePath = await MobileModel.download(MODEL_URL);
// model = await torch.jit._loadForMobile('./assets/yolo_zdaly.ptl');
model = await Torch.loadModel(modelPath);
console.log(model);
console.log('Model successfully loaded');
'''
react-native-pytorch-core": "^0.2.4"
Images

Website
NA
Credit (optional)
No response
Source Code (optional)
https://github.com/akash-zdaly/objdet

I've managed to make it work using
let path = await MobileModel.download(
  require('./models/model.ptl'),
);
let model = await torch.jit._loadForMobile(path);

Note 1: You need to make sure the ptl file is bundled with your app. To achieve this, make sure you've performed this step.
Note 2: Model::download()is deprecated. It's documentation recommends to "Use third-party file downloader (e.g., expo-file-system or react-native-fs)". But I guess as long as other code in this repo is using the function it is still fine to use :)

@remod fixed thanks


Optimizations

Currently the only optimization is to prefer a simple list walking loop over Range. @sorvell to provide the performance improvement numbers.

This has a pretty significant impact on a test that updates 5000 text bindings:

before: ~250ms
after: 15ms


APIRouter: unexpected keyword argument 'prefix'

First check

[x] I added a very descriptive title to this issue.
[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the FastAPI documentation, with the integrated search.
[x] I already searched in Google "How to X in FastAPI" and didn't find any information.
[x] I already read and followed all the tutorial in the docs and didn't find an answer.
[x] I already checked if it is not related to FastAPI but to Pydantic.
[x] I already checked if it is not related to FastAPI but to Swagger UI.
[x] I already checked if it is not related to FastAPI but to ReDoc.
[x] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

Issue
I was following the official tutorial related to bigger applications and came across a TypeError with all the parameters to APIRouter()
Examples:
TypeError: __init__() got an unexpected keyword argument 'prefix'
TypeError: __init__() got an unexpected keyword argument 'tags'
TypeError: __init__() got an unexpected keyword argument 'responses'

Code used:
router = APIRouter(
    prefix="/items",
    tags=["items"],
    dependencies=[Depends(get_token_header)],
    responses={404: {"description": "Not found"}},
)

However, I noticed that each of the argument works if I use them in main.py as:
app.include_router(
    admin.router,
    prefix="/admin",
    tags=["admin"],
    dependencies=[Depends(get_token_header)],
    responses={418: {"description": "I'm a teapot"}},
)

Is this an issue in documentation or code?
Environment

OS: macOS Catalina 10.15.7
FastAPI Version: 0.61.1
Python version: Python 3.8.5

You are looking at documentation for the current version, 0.63.0. Please update if you wish to use those features

You are looking at documentation for the current version, 0.63.0. Please update if you wish to use those features

Thanks @Mause - It worked.

Thanks @Mause - It worked.

Thanks for the help here @Mause ! 👏  🙇
Thanks for reporting back and closing the issue @jintolonappan  👍

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.


cookie popup accept

i experienced a delay when clicking accept on the cookie banner.

when the site loads on mobile, clicking accept does not immediately register the click and you have to click it like 5 times before it goes away

isn't happening for me


Filter Ev3 Gallery

Added button in gallery to show only ev3 programs.

Thanks! This will be handled more thoroughly in #752.


OSError: Distant resource does not have an ETag, we won't be able to reliably ensure reproducibility while importing  RobertaTokenizer.from_pretrained(model_name)

here is the complete error
2023-03-29 18:07:58.935067: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/lib64-nvidia
2023-03-29 18:07:58.935251: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/lib64-nvidia
2023-03-29 18:07:58.935280: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
Calculating style of predictions
Traceback (most recent call last):
File "/content/fairseq/metric.py", line 161, in
accuracy_by_sent = classify_preds(args, preds)
File "/content/fairseq/metric.py", line 33, in classify_preds
tokenizer = RobertaTokenizer.from_pretrained(model_name)
File "/usr/local/lib/python3.9/dist-packages/transformers/tokenization_utils_base.py", line 1692, in from_pretrained
resolved_vocab_files[file_id] = cached_path(
File "/usr/local/lib/python3.9/dist-packages/transformers/file_utils.py", line 1402, in cached_path
output_path = get_from_cache(
File "/usr/local/lib/python3.9/dist-packages/transformers/file_utils.py", line 1580, in get_from_cache
raise OSError(
OSError: Distant resource does not have an ETag, we won't be able to reliably ensure reproducibility.
got this error in colab, transformers version is transformers==4.11.1

@bhaveshk1502  Actually transformers 4.11 is very outdated (dates back to Sept 2021). Latest version is transformers 4.27. The issue will most likely be gone if you upgrade it:
pip install -U transformers


While dropbox is fetching content, hgrid is non-responsive, but action clicks are stored and then applied inappropriately to the grid once dropbox finishes loading

For example, I go to hgrid and click on a file that is in the OSF tree, but dropbox is fetching content from a big folder.  When it finallly loads, the click on the OSF file actually clicks on a file in the dropbox folder because it took over that location on the hgrid.

It doesn't look like this is an issue anymore. @sloria @jmcarp can comment to this as well. While lazyloading is happening the clicks are still responsive and the page load to what you clicked has started.
Close?

Currently is is deferred, but I am happy to close unless @sloria or @jmcarp say no. Thanks!

This is no longer a problem with the new loading screen.


Move to third party category system

It requires  support  for:

hierachical structure
apphooks config
multilingual

With the current system, I can create loops instead of trees when working with the hierarchy - is this intentional/left like this due to imminent move to another system?

Current category system is very minimal, and does not take into account a lot of cases.
Currently there is no multilingual category system that I like, thus it remained a simplistic approach to categories. Actually there is no planned effort to drastically improve it or switch to other systems, but I'm open to contribution

Need some help with that? aldryn-categories seems a good fit.

It's not suitable as it does not provide support for apphooks config

I upodate title and description to outline the requirements for the blog category system

Currently it's very circuitous to translate a category, isn't it?
e.g.:

Create a new Blog Article in language X
Add a new Category with the "+"-Button (The Category will be created also in language X)
Use Save and continue editing
Switch to language Y via tab
Write the translated blog content

Now you have the Blog Article in Language X and Y, but the Category only exist in Language X.
You have to go to /admin/djangocms_blog/blogcategory/ search for the new created category and translate it...
Have i miss a easy way?!?

The "easy" way is to create the categories first :)
The interaction between parler and the admin popup changeform needs improvement, but I'm not sure djangocms-blog is the right place to do that

#312 is a fix for this issue, at least in short-medium term.


Update domains.json

Hi! What is your PR about?

[x] Add or edit a skin
[x] Add custom domain for your space
[x] Add alias for migrate your space
~Add images for your space~ (deprecated) Add the image URL on the space settings directly
~Edit your space with GitHub?~ (deprecated) Please migrate your space to ENS https://docs.snapshot.page/spaces/migrate
~Create your space with GitHub~ (deprecated) Create your space with ENS instead https://docs.snapshot.page/spaces/create

There is a conflict in your PR since the domains.json file has been updated, can you resolve it?
To prevent conflicts, we recommend adding your subdomain between two existing domains rather than at the end or beginning of the list.

just resolve conflict, please check


fix: Missing Warning wrapper creating an exception

Hi! We're using pycaleva and found that in certain cases, we get an exception coming from the library, that's an easy fix. Thanks!

Thx for the fix! I merged it into main branch.


Fake project

the dyanmic net can not be run at all:
   return F.linear(input, self.weight, self.bias)
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x49 and 36x128)

this porject actually doens't work.!!!!!

Instead of coming out with accusations of fake projects, it would be vastly more useful if you could put in the basic effort required to make a proper bug report.
At a minimum, I expect the following:

Environment details:
Method of installation
Commands run and the full traceback of the error

If you are still facing issues, I would suggest you git clone the repo and setup a local environment to debug. You can use the update_versions branch instead of master

Closing due to inactivity


Add small ch. Add space between CAPs and small letter

FIX bug missing small ch letter.
Add space betweet capital and letter in alphabet (according to UX recommendation).

@JuroUhlar Please review.
Only Small change, adding one space to the page. But not sure if this is a good react style ;)


[FIXED TYPO IN NOTEBOOK]

Refer to this link for build results (access rights to CI server needed):
https://sparktc.ibmcloud.com/jenkins/job/SystemML-PullRequestBuilder/1683/

LGTM. Thank you @opengjenkins

BTW, for future reference, typically I would name the PR something like "[MINOR] Fix typo in ALS notebook" or something similar to that. The "[MINOR]" indicates that this is a small change, typically without an accompanying JIRA, and the "ALS" is nice since it allows someone looking at the git logs to determine what notebook was modified.
Thank you for the contribution!


consistent type system and type hinting

https://monkeytype.readthedocs.io/en/latest/ could be helpful

May need https://github.com/rethinkpriorities/squigglepy/issues/30 first before doing this

could include https://github.com/rethinkpriorities/squigglepy/issues/31


Wrong comment on box-sizing: border-box

In base.css it says:

Prevent margin and border from affecting element width.

This is wrong. It should say:

Prevent padding and border from affecting element width.

Ref: https://developer.mozilla.org/en/docs/Web/CSS/box-sizing
Furthermore I'd prefer a non-minified link to the CSS-Tricks page, but that's just my two cents. ;)

Good catch, I'll update that comment. And the short URL keeps the text within 80 characters which is picked up by Stylelint.

Fixed in latest release


Cannot access parameters from data

I cannot understand why it's happening now. I don't now if was happen because I recently upgrade to Rails 5. But suddenly I don't get access to object.parameters of activity
       tracked :owner      =>  proc {|controller, model| User.current.userable},
          :recipient  =>  proc {|controller, model| model.unit},
          :params => {:comment => "test" },
          :on => {
                   :update => proc {|model, controller| !model.comment.blank? }
                 }

>> activity.parameters[:comment]
!! #<TypeError: no implicit conversion of Symbol into Integer>
>> activity.parameters
=> "---\n:comment: test\n"

I had to insert this to go back to work again in model
#activity.rb
serialize :parameters, Hash

@brenoperucchi what version were you using? 1.6.0 fixes your issue I believe.

public_activity (1.6.1)

Same in 1.6.2. I had to create a file and write the following to make it work:
module ::PublicActivity
  class Activity
    serialize :parameters, Hash
  end
end

@mssola thanks for the details, I'll inspect as this definitely shouldn't happen.

I noticed that activities generated in response to seed data being created are stored in the db parameters column with traditional hash syntax, e.g.:
{:new_end_on=>"2019-07-17"}`

parameters for activities created during normal app usage and from console are stored like this:
---
:new_end_on: '2019-07-17'

I didn't even notice this until now because we had upgraded from Postgres 10 to Postgres 11 and it seems Postgres 11 barfs when trying to read/parse the traditional hash syntax (where Postgres 10/Active Record was able to parse both syntaxes w/out problems) with this error :
TypeError: no implicit conversion of Symbol into Integer
Also when deploying a review app on Heroku:
[WARN] table PublicActivity::ORM::ActiveRecord::Activity doesn't exist. Skipping PublicActivity::Activity#parameters's serialization

Following the above suggestions, I added serialize :parameters, Hash my PublicActivity module and the seed generated activity parameters data is now stored in the seemingly correct format:
module PublicActivity
  class Activity < inherit_orm('Activity')
    serialize :parameters, Hash
    ...
  end
end

---
:new_end_on: '2019-07-17'

Any movement on this? I couldn't get the workaround (adding serialize :parameters, Hash) to work in 1.6.3 for some reason. I tried adding it directly to gems/2.4.0/gems/public_activity-1.6.3/lib/public_activity/activity.rb and I created a shim in config/initializers and added

Also, I wanted to point out that it did work as of aff5b50ff474c9434e619c0fb0f8daa6acf47655 but that's right before you switched to inheriting from inherit_orm('Activity')


Misleading statement "the replicated table is cached on the first distribution on each compute node."

Replicated Table Section reads: "For SQL Data Warehouse, the replicated table is cached on the first distribution on each compute node."
How does only the FIRST distribution on each node CACHE data?

Distributions are the way of storing data (across 60 databases). Consequently, a distributed table should be replicated across all 60 distributions and not just the first one.
When it comes to caching this should be done by NVME in Gen2, which I'd assume is one per node (and shared by an instance across all the distribution databases?).

I could not find and detail level architecture but looking at different resources I’d assume that above is the case, can you please confirm?

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

ID: 3c6f95be-15fb-4822-1fa2-4f61ef029093
Version Independent ID: 5b38f604-088b-8e2e-7545-278801d68e51
Content: Azure SQL Data Warehouse - MPP architecture
Content Source: articles/sql-data-warehouse/massively-parallel-processing-mpp-architecture.md
Service: sql-data-warehouse
GitHub Login: @ronortloff
Microsoft Alias: rortloff

@Robert-Kostecki Thank you for the detailed feedback. We are actively investigating and will get back to you soon.

Hi @Robert-Kostecki,
Multiple distribution databases are mounted to compute nodes in most DWU configurations.  For example, DW2000c has 4 compute nodes and 15 distribution databases per node.  Because replicated tables help with reducing data movement between compute nodes, only 1 distribution database needs a full copy of the table per compute node.
You are correct that there is NVME Gen2 cache on each node.  However, it is transient and does not survive pause/resume.  Furthermore, replicated tables are available on Gen1, which does not have the same architecture as Gen2.
The article https://docs.microsoft.com/en-us/azure/sql-data-warehouse/memory-and-concurrency-limits has compute nodes per DWU setting and distribution databases per compute node configurations.

Hi Ron, interesting debate and I still believe that I may be correct.
Firstly, let's observe that the movement pertains rather to Distributions then Nodes. Consequently, even with ONE Node configuration you may see the "internal" movement (between the distributions).
Secondly if in fact the table was only replicated to the first distribution database on the node then each time you scale up, and as result adding a new node, the DMS would have to intelligently replicate the data (and possibly remove it when you scale-down).
Finally, here’s a fragment from Data Warehouse training where Theresa Iserman (SQL Server Premier Field Engineer at Microsoft) states that (in a 4-node configuration) “the replicated table gets fully copied to all 60 distributions” https://youtu.be/T6mBS_qfFFE?t=62

Hi @Robert-Kostecki,
Apologies for the confusion coming from the video you referenced.  In a 4-node configuration, the table is not copied to all 60 distributions.  I will look into getting the video corrected.  Please take a look at the documentation on replicated tables for further details on how they are implemented:  https://docs.microsoft.com/en-us/azure/sql-data-warehouse/design-guidance-for-replicated-tables#performance-considerations-for-modifying-replicated-tables.  This link goes directly to the section that addresses your question, but feel free to look at the entire document for further details on replicated tables.  Hopefully this clears up any questions you may have.

Hi @ronortloff, firstly thank you for the clarification.
The material that I referenced is part of Microsoft  70-776 "Perform Big Data Engineering on Microsoft Cloud Services" Certification" and specifically "Delivering a Data Warehouse in the Cloud" (Microsoft -  DAT220x) https://www.edx.org/course/delivering-a-data-warehouse-in-the-cloud-0. I agree that it would be good to get it corrected.
I have just spent some time playing with the distributions and here are my findings:

The REPLICATED table is initially loaded in ROUND_ROBIN distribution across all (60) Distributions. No fully replicated copy at this stage no matter how long you wait.

First Distribution on each Node only gets FULL data copy after first query is executed against the table. (You may need to wait a moment for DMS to kick off).

Resizing:

When you resize and add another node, firstly all distributions drop FULL copy of the data (and keep only the partial copy – see point 1). Then the FULL copy gets repopulated to the first distribution on each Node.

Hope this helps.
Script to replicate the case below.
-- 1. Create Dummy Records in #TempLoad
CREATE TABLE #TmpLoad (ID INT IDENTITY, C1 uniqueidentifier)
WITH
(
DISTRIBUTION = HASH(C1) -- ROUND_ROBIN is faster but let's do a HASH
as to prove that REPLICATE don’t just copy ROUND_ROBIN distribution
, HEAP
)
INSERT INTO #TmpLoad (C1) VALUES ('12345678-1234-1234-1234-123456789012');
INSERT INTO #TmpLoad (C1) VALUES ('12345678-1234-1234-1234-123456789013');
DECLARE @i int = 24
WHILE @i > 0
BEGIN
INSERT INTO #TmpLoad (C1)
SELECT C1 FROM #TmpLoad;
--SELECT NewID() FROM #TmpLoad;
SET @i-=1;

END
-- Check row count and DW size
SELECT COUNT(1) FROM #TmpLoad; -- 134,217,728 33,554,432
DBCC PDW_SHOWSPACEUSED; -- 60x 3384	1248	1336	800	1	1
-- 2. Create Test Dim table (REPLICATE)
CREATE TABLE TDim
WITH (
DISTRIBUTION = REPLICATE
,HEAP
)
AS
SELECT * FROM #TmpLoad;
-- check DW size
-- NOTE data gets populated in ROUND_ROBIN fashion even though it's stored in HASH distribution in the source temp table
DBCC PDW_SHOWSPACEUSED;
-- NOTE the data doesn't get FULLY copied to the first distribution until you run a query against the table
SELECT COUNT(1) FROM TDim;
DBCC PDW_SHOWSPACEUSED;
-- NOTE Now first distribution on the node(s) have both FULL as well as the Partial data

Hi @Robert-Kostecki,
Your explanation and code look good.  Thanks for sharing.

Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@Robert-Kostecki We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


How can we recognise an Antibiogram

How can we recognise an Antibiogram? In the examples from Macsys a LOINC code is added which has the label antibiogram. Will all the labs do this?
We also learned that labs can use preformatted text for sending an antibiogram. What is the added value of sending an antibiogram in preformatted text vs PDF?

This approach seems reasonable to me. Should be confirmed by the WG.

Not all lab softwares are able to send Antibiograms in a structured way. Because we do not want to block the adoption of the structured format for the other tests, those labs can still send the antibiogram results as formatted text in the FHIR message. The contents of the PDF and the FHIR message must be equivalent, that's why the information must be in both formats.

Is it the responsibility of the labsofts to make sure that the contents of the attached PDF and/or the formatted text in the FHIR message is equivalent in case they send both?
On the receiving side, we are not going to check this.

Indeed, this was the result of the discussions we had about this in the workgroup. @alinderom will confirm this.

I confirm

not all labs can send AB-gram in a structured way, so formatted text will be an alternative
it's always the sender that has to see that the PDF and formatted FHIR text corresponds. The "independend" viewer can help the sender to check if he formetted well his message

This approach seems reasonable to me. Should be confirmed by the WG.

Not all lab softwares are able to send Antibiograms in a structured way. Because we do not want to block the adoption of the structured format for the other tests, those labs can still send the antibiogram results as formatted text in the FHIR message. The contents of the PDF and the FHIR message must be equivalent, that's why the information must be in both formats.

About 1., I suggest looking at the observation interpretation or value. If it's RIS you know it's an antibiogram I think? I see Macsys does it different than us but perhaps we could come to a consensus and add it to the IG?

Question 1) the examples from MACSYS set the right standard for the indication of the Antibiogram.
Question 2) the contents of the PDF and the structured contents in the FHIR document should be identical. This is the responsability of the lab software.

MIPS will check if the solution of an extra level indicating "antibiogram" and adding RIS, AGAR, E-test, MIC as sublevels is possible.

@bdc-ehealth is there any decision on how to indicate that the observations are about a Antibiogram.
We are making the labo report, and for the moment we support two different methods, both by looking at the examples.
For one we the observation code = 29576-76 (loinc) and the other is observation code = ANTIBIOGRAM

COW: Thibault proposes to add a tag in the meta section of the Observation, containing a general code for susceptibility tests/isolation tests (e.g. LOINC - to be clarified) to make clear this is an antibiogram. Alexis and Kristof will ask their client teams if this is a good way of working. The idea is to facilitate the receiver. Tom Tollenaere suggests that this information is already present because we can add the LOINC titles in FHIR cfr. HUB metadata. We need input of clinical biologists.

@bdc-ehealth thank you for the follow up

COW: we ask for some international advice @costateixeira . Another possibility would be to use the category field for this (where we could put the LOINC panel code).

Colleagues in Germany have analysed microbiology in FHIR messaging very detailed.
The work they've done looks very good !
Please check out their work at:
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10517923/
Example messages:
https://simplifier.net/Medizininformatik-Initiative-Modul-Mikrobiologie/~resources?category=Example&sortBy=RankScore_desc
FHIR specs
https://simplifier.net/guide/Copy-of---EN--Medizininformatik-Initiative---Modul-Mikrobiologie/IG-MII-Modul-Microbiology/Technical-Implementation/FHIR-Profile/Culture-diagnostics/Colony-count.page.md?version=current
Nico

@nicovn Thanks, Nico, for the hint, we will certainly take it into account during the next meetings.


functional-tester: always clean up if tester encouters an error

The current tester doesn't not clean up if any of the failure injection/recovery fails. if tester fails to recover a dead node, tester hangs in the next round because the tester will keep waiting until cluster becomes healthy which is impossible since a node is down. To fix this issue, we will always clean up if any error happens during each round so that cluster will be healthy for next round.
FIX #6743

PTAL cc/ @gyuho @heyitsanthony

Can we change printf -> infof in another pr?

@xiang90 i'll create a different pr for Printf -> Infof

All fixed. PTAL @xiang90 @gyuho

lgtm

lgtm

tools/functional-tester/etcd-tester/tester.go:48: syntax error: unexpected err, expecting comma or )
we need to fix error reported by ci

@xiang90 good catch.

All fixed.


Capture rate not working in the rust SDK (Picoscope 2207)

Hi there,
I have noticed using the Rust SDK example code with a Picoscope 2207, that the capture rate is not changing depending on the capture rate chosen in the CLI. It streams at a non-consistent rate, as low as the data points being ~75 ms apart (13Hz), to the fastest I have seen of the data points being ~3 ms apart (300Hz), quite below anything useable for my purposes.
Proberly related, the prompt misses the 1Gz option, and the 100 MS/s errors when chosen with this error:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: PicoError { status: INVALID_SAMPLE_INTERVAL, context: Some("start_streaming") }', src/main.rs:108:42 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace Panic in Arbiter thread.

I haven't tested if this issue is still a problem in the feat/improve branch, let me know if you want me too, or anything else.
Other than the capture rate weirdness, this is an amazing library that is a whole lot better than the official libraries from Picoscope, I really hope I will be able to use this than switching languages to use the official libraries.
Edits: Updated the actual streaming rate info

I haven't had a chance to look into this yet but here are a few things to keep in mind.
When running the example CLI or any Rust examples looking at throughput or performance, ensure you're compiling in --release mode. You might already be doing this but it's often overlooked.
Since this SDK currently only supports continuous gap-less streaming, the capture rate in this mode is device and USB specific. Assuming you have the discontinued 2207 in the blue case, the datasheet says the maximum streaming rate is 1MS/s.
More modern Pico devices are capable of much higher streaming rates. For example the 2206B/2406B devices can stream at 31MS/s and most of the USB 3 devices can stream at over 100MS/s.
Block Mode
Pico devices support much faster capture rates in Block Mode but for this mode to be useful we would need triggering too. I've not implemented either yet.

I will look into doing some testing on the official libraries, and confirm that is not just my outdated oscilloscope being broken.
Suggestions
Definitely not the --release tag, I tested that before when I noticed the performance degradation wasn't caused by the console output.

datasheet says the maximum streaming rate is 1MS/s

I didn't see that, it would be a bottleneck, but not nearly a 13-700Hz bottleneck.

Block Mode and Triggering

This sounds quite interesting and would be a great way to implement the stuff I am currently working on (If it isn't crazy complicated to implement).
I have also taken a deeper look into the data points and found they where running oddly consistently, coming in a consistent ms apart.
Hopefully, we can work this out.

Just tested my Picoscope using the official python library, highest reading was 998kHz in streaming mode, actually close to your stated 1MS/s limit in streaming mode.

Can you supply some example code that demonstrates what you're describing?
In my testing, I get data to the callback every 50-100ms but for every callback I get multiple data points.

Cool, I will adapt the example code to add the relevant measurements.

After a long time of not touching it, then coming back, I realised the library is actually amazing, and the example was tripping me up because I kept this piece of code from the example CLI:

Which threw away everything after the first voltage point. Fixed by swapping it out for scale_samples(), and now my speed measurements match up with the ones your library generates. Thanks anyway, issue resolved.


Graph not avaliable in python

Trying to import the shortestpaths, python 2.7 cannot.
     from ortools.graph import shortestpaths
ImportError: cannot import name shortestpaths

Can delete this issue.  Documentation could include this import, but with better explanation of how to call it:
from ortools.graph import pywrapgraph
pywrapgraph.DijkstraShortestPath()

Thanks for the feedback !


generate-invite endpoint at reva

@michielbdejong Yeah we have a problem with endpoint in reva with generate-invite. We don't have a configurable endpoint for now we can do some hard-code directly from reva. I see docs that our curl command can be something like this
curl -d'{"opaque": "map": {"key": "123", "value": "123"}}' -H 'Content-Type: application/json' -i<EMAIL_ADDRESS>

Implemented it just now in https://github.com/michielbdejong/reva/commit/9427b77432950ff78fe19db1bad32f9bde2f7da8
This is how it works now:
root@e1e804cafb73:/var/www/html# curl -i<EMAIL_ADDRESS>HTTP/2 200
content-type: application/json
vary: Origin
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJyZXZhIiwiZXhwIjoxNjM4MDI1MDExLCJpYXQiOjE2Mzc5Mzg2MTEsImlzcyI6InNvbWUtaWRwIiwidXNlciI6eyJpZCI6eyJpZHAiOiJzb21lLWlkcCIsIm9wYXF1ZV9pZCI6ImVpbnN0ZWluIiwidHlwZSI6MX19LCJzY29wZSI6eyJ1c2VyIjp7InJlc291cmNlIjp7ImRlY29kZXIiOiJqc29uIiwidmFsdWUiOiJleUp5WlhOdmRYSmpaVjlwWkNJNmV5SnpkRzl5WVdkbFgybGtJam9pYzNSdmNtRm5aUzFwWkNJc0ltOXdZWEYxWlY5cFpDSTZJbTl3WVhGMVpTMXBaQ0o5TENKd1lYUm9Jam9pYzI5dFpTOW1hV3hsTDNCaGRHZ3VkSGgwSW4wPSJ9LCJyb2xlIjoxfX19.rAnhEfU7cRiyg5AWZ59KV8h0adk8Z-MCR9doXwRe1fI
content-length: 342
date: Fri, 26 Nov 2021 14:56:52 GMT

{
   "status": {
      "code": 1,
      "trace": "00000000000000000000000000000000"
   },
   "invite_token": {
      "token": "161405dd-05f0-4806-8b42-1482b3185c63",
      "user_id": {
         "idp": "some-idp",
         "opaque_id": "einstein",
         "type": 1
      },
      "expiration": {
         "seconds":<PHONE_NUMBER>
      }
   }
}

So from there you need to take responseBodyObject["invite_token"]["token"], that's to say "161405dd-05f0-4806-8b42-1482b3185c63".

I think if you are take curl -i http://einstein:relativity@<IP_ADDRESS>:17001/invites/generate you are take 404 not found

if you are try curl -i http://einstein:relativity@<IP_ADDRESS>:17001/ocm/invites/generate you are take 401 authorized required.


Add a disk storage quota detector

Detector should return usage vs quota limit and beep when usage approaches 90%

Make sure that the new support center shows the right solution to customers


fix: don't warn if Imputer transforms column without missing values

Summary of Changes

Don't warn in Imputer if some columns of the Table passed to transform don't have missing values. The Imputer is used to guarantee that no missing values exist in a column. We should not need to check beforehand whether a column actually has missing values.

:tada: This PR is included in version 0.15.0 :tada:
The release is available on:

v0.15.0
GitHub release

Your semantic-release bot :package::rocket:


React 18 support?

There are a few changes needed for flagsmith to work with react v18. Is there any timeline for these changes?

Hi Jared,
Are you able to share your findings and we can fix things up? Thanks! cc @kyle-ssg

Type '{ children: Element; options: { environmentID: string; }; flagsmith: IFlagsmith; }' is not assignable to type 'IntrinsicAttributes & FlagsmithContextType'.   Property 'children' does not exist on type 'IntrinsicAttributes & FlagsmithContextType'.ts(2322)
The most notable change is that the children prop now needs to be listed explicitly when defining props.


Added missing word to text of the alert dialog

I hope I followed all the guidelines correctly.

Bugsquad edit, fixes: #79380

Reverting commits is confusing. If I didn't do It correctly close this and i'll redo it

You will need to do git rebase -i master and then write "fixup" in front of the other commits

Like so? (forgive me I'm still learning git)

No replace "pick" with "fixup" except for the first one

Then you need to do git push -f

If you're having problems I can try and do it from my end in a bit

I'm trying my best lol, I'm kinda lost rn; It says everything is up to date when i push

Oh boy, i have definitely messed something up

You wrote "it" instead of "git"

this is painful for you to watch im sure, my apologies.

Don't worry, git has a bit of a learning curve. But it helps to learn the basics.

Not at all, there was a time when I was getting used to it too

(recloning, give me a few)

Okay, it finished downloading. I have a fresh slate. I just need to sync it with what we've done so far right?

Yes you just pull this branch from your repository

now jes gotta change the text...

it is XD

What's GitHub doing right now? Is it checking all os versions?? That's so cool

It's running a lot of automated tests! Compiling it all and stuff, it's really cool

That's amazing, so is there anything else I need to do?

In hindsight, I should have compiled and run a test of it before comitting it... But it's just a sting of text, it should be fine if the dialog was made to scale with the text.

In the future that's a great thing to do, to catch errors and things

Question: Does this change get applied in the next update (e.g. 4.1.1 or 4.2)?

Question: Does this change get applied in the next update (e.g. 4.1.1 or 4.2)?

It will probably be included in both.
FYI, the email that you've used to author your commit is invalid (wisenoodle21@gmail, missing .com). Which means it will not be counted towards your personal contributions on GitHub. You should be able to fix that using git commit --amend --author="Your Name <your_correct_email>". You should also change your local git settings to make sure this doesn't happen in future.
PS. Please use the "Edit" button on GitHub and avoid multiposting. Each message that you send creates a notification for a lot of people. If you need live assistance, consider joining contributors chat at https://chat.godotengine.org!

You deleted the message, please update it to fit the PR title with git commit --amend

Thanks! And congrats on your first merged Godot PR!

Congratulations!

Thank you all so much for all your help, I hope to improve my git skills and continue to contribute in the future!

Cherry-picked for 4.1.1.


Load worldmap data dynamically (with more data)

This change simplifies setup of the worldmap geo data by loading it dynamically. The web source additionally includes more countries that were absent before.

This change is

LGTM @stephen-soltesz

Thanks, @critzo !


Added loading and error catch and displayed loading message and error

JS: added loading message and error catch - both are displayed on page.
Loading message disappears when api call successful
Error message stays on screen if error caught
Closes #15  #34  #35

SORRY I approved this ages ago but forgot to merge


Exception of segment fail when run value_from for tree structuor

PLEASE DON'T FORGET TO "STAR" THIS REPOSITORY :)
When reporting a bug please include the following:
Version of Boost 1.81
You can find the version number in the file <boost/version.hpp>
Steps necessary to reproduce the problem

In source code define structure of Tree for Deep First Search Algorithem;
Sourc code like this:
structure CRouteData;
structure CRouteData {
 int iNoUpdateCount;
 list<CRouteData> listRouteDataSon;
};
Define value_from and value_to for structure CRouteData;
Return segmentation fail when running value_from.
I think the root reason is the iterative call of CRouteData;

A small compiling program is the best. If your code is
public, you can provide a link to the repository.
All relevant compiler information g++ 12.2.0 Debian 12
If you are unable to compile please include the type and
version of compiler you are using as well as all compiler
output including the error message, file, and line numbers
involved.
The more information you provide the sooner your issue
can get resolved!

Given the information you've given me, I can't reproduce it. You should definitely at least provide your implementation of tag_invoke(value_from_tag). Even better if you provide a minimal reproduceable example, that is something I could just copy into an empty file and get your error.

I develop test source code and it's work.  I need to check other source code. Sorry to bother you!
The test source code is like follow. I try to use reflect like macro function to automatically generate the value_from and value_to function for specific class/structor.
`
#include <boost/json/src.hpp>
#include
#include
#include <type_traits>
using namespace std;
using namespace boost;
struct CRouteData;
struct CRouteData {
int iCount;
list listSonRouteData;
friend void tag_invoke( const json::value_from_tag&, json::value &_j, CRouteData const &_t) {
    json::object _obj;
    _obj.emplace("iCount", json::value_from(_t.iCount));
    _obj.emplace("listSonRouteData", json::value_from(_t.listSonRouteData));
    _j.emplace_object() = _obj;
};
friend CRouteData tag_invoke( const json::value_to_tag<CRouteData>&, json::value const &_j ) {
    CRouteData _t;
    _t.iCount = json::value_to<decltype(_t.iCount)>(_j.at("iCount"));
    _t.listSonRouteData = json::value_to<decltype(_t.listSonRouteData)>(_j.at("listSonRouteData"));
    return _t;
};

};
int main(void) {
CRouteData objRouteData{0, {}}, objRouteDataSon1{2, {}}, objRouteDataSon2{3, {}};
list listData{objRouteData}, *ptrList = &listData;
for( auto iDepth = 0; iDepth < 100 && !ptrList->empty(); iDepth++ ) {
if( !ptrList->empty() )
ptrList = &(ptrList->back().listSonRouteData);
for( auto i = 0; i <= iDepth; i++) {
CRouteData objRouteDataNow{i, {}};
ptrList->emplace_back(objRouteDataNow);
}
cout << "iDepth:" << iDepth << " [" << json::value_from(ptrList->back()) << "] Total:" << json::value_from(listData) << endl;
}
return 0;
}
`


Better sending of PSN packets

Hey,
So I rebased, updated the pytest you created to better cover my new code and did extensive testing on Raspberry Pi / macOS to GrandMA3.
Features added since then:

Handling the infamous bit-32 PSN_CHUNK_HEADER / has_subchunks in sent PSN packets.
Unicast mode if no multicast IP provided (improves stability in complex networks).

Everything looks good and stable to me now. I hope I didn't forget any detail in order to merge to your project :)
Let me know, thank you for your time!

Sounds good 👍, thank you! I will check it out.

I tested this with BlenderDMX - using the example sender sending PSN data via multicast from one computer and receiving it on another computer with default BlenderDMX address being <IP_ADDRESS>  and it worked :) So i will merge. I will squash the commits, to keep the history in the PR and have a clean commit in master, hope you are OK with that :)
One point of friction to mention is the multicast_expert. It depends on netifaces but that is requiring specific platform build and as netifaces is deprecated, there are no wheels for new pythons, making installation hard. The way i deal with that in BlenderDMX is by using pure python based libs, like ifaddr. Maybe it would be good to try to open an issue with the multicast_expert maintainer, to try to switch to other library to get the network interfaces without requiring netifaces?

Thanks!
Agreed for multicast expert. I'd like to do without in the future. I'll let you know once I found a workaround :)


JIT creates wrong result when optimized on x86

We found a bug in the JIT optimizer. It seems there are several preconditions needed to hit the bug:

The bug occurs only on x86. (Same c# code on x64 is running fine.)
The bug is caused by optimizer. (When optimization is disabled - in Debug build or with MethodImpl attribute -, the code is running fine.)
The bug occurs only when a generic type is used.

Environment:

Runtime is .NET 4.7.2
Compiler: VS2018 (15.8.0)
Target Platform: We verified the problem with 4.6.1 and 4.7.2

Here is the sample code to reproduce the problem.
namespace OptimizedPropertyException
{
    internal static class Program
    {
        static void Main(string[] args)
        {
            var sut = new NodeReference<BaseNode>();
            var x = new BaseNode();
            sut.Node = x;

            Console.WriteLine($"Disposed = {sut.IsChildDisposed}");
            x.IsDisposed = true;
            Console.WriteLine($"Disposed = {sut.IsChildDisposed}"); // EXCEPTION
        }
    }

    public class NodeReference<T>
        where T : BaseNode
    {
        private T node;

        public bool? IsChildDisposed
        {
            get
            {
                bool? result = null;
                if (this.Node != null)
                {
                    result = this.Node.IsDisposed;
                }

                return result;
            }
        }

        public T Node
        {
            //[MethodImpl(MethodImplOptions.NoOptimization)]
            get
            {
                if (this.node != null && this.node.IsDisposed)
                {
                    this.node = null;
                }
                return this.node;
            }
            set => this.node = value;
        }
    }

    public class BaseNode
    {
        public bool IsDisposed { get; internal set; }
    }
}

When running with optimization, the Main method will fail on the second access to the property IsChildDisposed.
According to our analysis the problem is caused by the optimization of the method get_Node.
The code may be somehow special. But I think the generalized use case is: The method (getter) sets a member conditionally to null before returning the updated member.
We analyzed the IL code. But we did not find any relevant differences.
So, lets have a look on the optimized assembler code of the getter:
02610583  add         byte ptr [eax],al
02610585  add         byte ptr [eax],al
02610587  add         byte ptr [ecx+ebx-24h],dl
0261058B  add         byte ptr [eax],al
0261058D  add         byte ptr [eax],al
0261058F  add         byte ptr [eax+19h],cl
02610592  fadd        qword ptr [eax]
02610594  ror         byte ptr [esi-24h],0
--- ...\NodeReference.cs
                if (this.node != null && this.node.IsDisposed)
02610598  push        ebp
02610599  mov         ebp,esp
0261059B  mov         eax,dword ptr [ecx+4]
0261059E  test        eax,eax
026105A0  je          026105AD
026105A2  cmp         byte ptr [eax+4],0
026105A6  je          026105AD
                {
                    this.node = null;
026105A8  xor         edx,edx
026105AA  mov         dword ptr [ecx+4],edx
026105AD  pop         ebp
026105AE  ret

The member node will be loaded into the register EAX on 0261059B.
In case it is already null, we jump to 026105AD, this means return.
The method calling convention seems to say "The method return value can be found on EAX".
In case the member will be set to null (026105AA), the member will be updated, but EAX still contains the original member value/pointer.
I think something is missing here: setting EAX to zero. Why is EDX used to set member value? If EAX would be used in 026105A8 and 026105AA, the behavior should be as expected.
I hope my analysis is correct. At least it is an explanation for the high level behavior: The getter of IsChildDisposed will access the property Node two times sub-sequentially, for checking null and then to use it. According to the optimizer bug the first access does not return null but the second one does, which is causing the NullReferenceException.

Might want to also file at https://github.com/dotnet/coreclr

This issue was moved to dotnet/coreclr#19547


Use Matrix4.multiplyTransformation in more places in VoxelPrimitive

I searched through the voxel code and noticed a few areas where Matrix4.multiply could be Matrix4.multiplyTransformation.
The one section that needs to stay Matrix4.multiply is here because it involves non-affine transformations (the projection matrix).

Thanks for the pull request @lilleyse!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.


Remove reference to Microsoft Virtual Academy training video

I corrected an error in the original pull request and closed the comments, but it does not look like it has been merged.

Please be patient and keep the Pull Request(s) open until they can be answered or commented on by the Microsoft Docs team members. It may help a bit if you include references to any issue the PR may close or other PRs preceding the current one, in case of rebuilding the PR content from a new branch.

BTW, it can sometimes also be useful to keep some form of code style on the PR title, either by referencing the file directly (like in your closed PR) or name the overall concept of the PR content (something similar to Remove reference to Microsoft Virtual Academy training video).
Please also note that the opening PR comment usually needs some form of explanation of the PR content, like description of and reason for the changes.

@cchapin2020 is there something wrong with the video? Or is there another reason why you want it removed?

@Justinha : in https://github.com/MicrosoftDocs/windows-itpro-docs/pull/3329 there is the following explanation:

The Microsoft Virtual Academy site is being retired, removed references to the training video.

@illfated Oh I see, thanks Trond. Well, I think we actually have this link in other Credential Guard topics too. If anyone can submit a pull request for those also I really appreciate it.

@cchapin2020 Thanks for letting us know!

@Justinha : you may want to review the following Pull Requests
from @cchapin2020 too, containing the same change:

https://github.com/MicrosoftDocs/windows-itpro-docs/pull/3330
https://github.com/MicrosoftDocs/windows-itpro-docs/pull/3331

Got it - thanks folks!


Enforce extra logging in Adobe I/O Runtime's TVM backend actions

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

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

Checklist:

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

@moritzraho what's the status with this PR? Do you need a review?

good question this was only a draft PR, as of now we only get logs for TVM errors, I think we should discuss this further first:

do we want to log all requests to the TVM ?
if yes how can we filter and trace back errors ?
if yes can we enforce I/O Runtime logging on the server side directly, instead of the client side (via the extra logging header)?
-> a user could curl the tvm and not set the header, we would miss the log then.

closing for now as this needs some more research


I had the same problem as issue #82, #90

Hi @Webklex
I had the same problem as issue #82, #90

i use $message->getHtmlBody() and receive all (html + base64 attachment)
i use $message->getAttachments()  and did'nt anything
This is all the content I received:
getHTMLBody.txt

@Webklex  Can you help me like issue #82 ?

@Webklex Can you help me like issue https://github.com/Webklex/php-imap/issues/82 ?

Hello @Webklex.  Thank you for a great library.  I do concur with @matran2210, I am dealing with a similar issue with attachments connecting to Office365 emails.  Several developers have tried, we've updated the config variables 'dispositions' for 'attachment' 'inline', tried various different file types, attached them inline, and tried several different techniques found here within the other issues with no luck.  When outputting the $message->getStructure()->raw, you can see the attachment encoding, but $message->getAttachments never finds anything.  Would love to put this into production before the Microsoft Oct 1, 2022 OAuth 2.0 requirement deadline.  Thanks!

Hi @matran2210 ,
many thanks for your report. To verify and replicate your report I'll need some additional information:

Used config -- Please provide the used config, if you are not using the package default config.
Code to Reproduce -- The troubling code section which produces the reported bug.

Desktop / Server (please complete the following information):

OS: [e.g. Debian 10]
PHP: [e.g. 5.5.9]
Version [e.g. v2.3.1]
Provider [e.g. Gmail, Outlook, Dovecot]

I doubt that this is related to 82 or 90 but please feel free to prove me wrong.
@Trent-A Regarding your deadline, I'm sorry but I can't promise anything - after all this is an open source project. I'm not getting payed for any of this. What ever pays my rent and food comes first :)
Best regards & happy coding,

Thank you for your support @Webklex
Used config:
host: imap.gmail.com
port: 993
encrypt: SSL
But, this is caused by the outgoing email server and not related to the imap configuration.
Error outgoing email server:
host: mail.efy.com.vn
port: 25
And when I use another outgoing mail server, I don't have this issue
I sent a test mail to<EMAIL_ADDRESS>using error mail server mail.efy.com.vn
Can you help me check? @Webklex

Hi @matran2210 ,
this library isn't capable of sending messages. To send messages, you'll need to use a different protocol (SMTP) which isn't supported by this library.
I'm confused what you are trying to archive. Please provide the code you are using and which is producing the error. Also on which operating system are you having this issue? Which version of this library are you using? Which php version are you using? Does it only happen with Google / gmail accounts or does it work with other providers?
Best regards & happy coding,


WiFi Room Giveaway: Fix Alolan Form GIF Display

Changes made to cause proper parsing for Alolan forms, allowing for the
giveaway to render the gif for the target form by using 'Pokemon-Alolan'
as well as 'Pokemon Alolan'
Without the change use of '/lg User, Pokemon-Alolan' and '/lg User, Pokemon Alolan' show:

With the change added, gif properly displays.

??
Don't we have a template.spriteid for this sort of thing? Why are sprite IDs being constructed manually?

@Zarel I just figured this was a simpler way to do it. Maybe I'll refactor the code again another time. For now this change works.


A design issue

The socket docs state:

The native socket address format of the socket module is an opaque data type returned by getaddrinfo function, which must be used to resolve textual address (including numeric addresses).

The example script re-iterates this:

You must use getaddrinfo() even for numeric addresses

This would seem to have a number of consequences.

On some ports async getaddrinfo may need to provide this opaque data. In every case I've seen the synchronous getaddrinfo returns a dotted quad, but the docs are specific on this. A query to @dpgeorge may be needed to resolve this.
Async getaddrinfr needs to handle dotted quads as input. Currently it fails if passed a dotted quad. The network module does this here.
If async getaddrinfo is to follow this rule it must use sync getaddrinfo which is absurd. This may be another reason to use the network's own DNS server.

The reason for point 2 is as follows. An application (such as async MQTT) reads a config file containing a network address. This is either a dotted quad for a local server or a domain name for a server on the internet. Currently it calls getaddrinfo with the passed address and uses the opaque result to connect.

Implementing aiodns.getaddrinfo via a call to socket.getaddrinfo may actually be a good idea.
In this case address will be resolved to IPv4 or IPv6 string, and then passed to getaddrinfo for final result. It requires further investigation.
From the practical standpoint, I've been able to use aiodns without issues on several ports. I'll update the example so it actually demonstrates the socket connection.

I agree: in every case I tested socket.getaddrinfo produced a dotted quad. However the docs are explicit on this point, and Damien is very thorough. I am convinced there is a good reason for the statement. It does need clarification for anyone writing a replacement.
The reason I am so interested in aiodns is that the need for it has been recognised for years and has been acknowledged by Damien. A few years ago I looked into writing an async DNS but the task defeated me. There may be scope for official adoption of aiodns if it can be made fully compliant with the synchronous version.

On some ports async getaddrinfo may need to provide this opaque data. In every case I've seen the synchronous getaddrinfo returns a dotted quad, but the docs are specific on this.

On the unix port, it returns an opaque binary data blob, eg:
MicroPython v1.24.0-preview.361.g43b05afdf on 2024-09-26; linux [GCC 14.1.1] version
Use Ctrl-D to exit, Ctrl-E for paste mode
>>> import socket
>>> socket.getaddrinfo('micropython.org', 80)
[(2, 1, 6, None, bytearray(b'\x02\x00\x00P\xb0:w\x1a\x00\x00\x00\x00\x00\x00\x00\x00')), (2, 2, 17, None, bytearray(b'\x02\x00\x00P\xb0:w\x1a\x00\x00\x00\x00\x00\x00\x00\x00')), (2, 3, 0, None, bytearray(b'\x02\x00\x00P\xb0:w\x1a\x00\x00\x00\x00\x00\x00\x00\x00'))]

It's anyway good practice to (a) always use getaddrinfo() even if you're just passing in an IP (v4 or v6) address; (b) treat the output of getaddrinfo() as opaque.  Although CPython is more flexible here, this approach is compatible with CPython.  That said, MicroPython does on most (all?) bare-metal ports allow you to pass in dotted-IP notation into, eg, socket.connect(), ie you don't need to use getaddrinfo() there if it's already a resolved IP address.
Anyway, @peterhinch 's point (2) above certainly needs to be followed.
Now that I revisit this issue, I remember that lwIP already includes a non-blocking DNS resolver.  That's actually what MicroPython uses, it's just that, to make it CPython-compatible and blocking, it waits for a result before returning from getaddrinfo():
dns_gethostbyname_addrtype(..., lwip_getaddrinfo_cb, ...);
// lwip_getaddrinfo_cb will set a status when it's called

// in the meantime we just wait for that, ie block
            while (state.status == 0) {
                poll_sockets();
            }

I think we should just expose this lwIP functionality in a non-blocking API to the Python code (because, eg, it uses lwIP's internal address cache).  The hard question then is (as usual) how to design the API for this, what it looks like.  There needs to be some C functions that start the query, poll for it to complete (in a way that can hook into asyncio) and then get the result.

That'd be great, however for now aiodns serves the purpose.
We can easily ditch aiodnw if/when:

async api is provided for the builtin DNS resolver
builtin DNS resolver is able to work with multiple DNS servers (on multiple interfaces)

For me, it just means i should probably settle on the minimalistic implementation (as it is), instead of investing too much time into a module that will get deprecated rather soon.

I believe I have implemented the fix for this issue, and tested it with the Unix port.
Feel free to comment and/or continue the discussion.

And yes, this means we're implementing aiodns.getaddrinfo via some calls to socket.getaddrinfo.
But I think it should be fine :)

@peterhinch WDYT? is it a feasible solution?

Using aioprof is much more simple to setup, I'll try it.
I assume that socket.getaddinfo doesn't need to perform any I/O to resolve the numerical addresses.
Technically even 2+2*2 is a blocking operation..

Blocking

Technically even 2+2*2 is a blocking operation..

Quite: "nonblocking" is a convenient shorthand for minimally blocking. All tasks block in the interval between yielding to the scheduler. The acceptable duration of blocking depends on the application. It's blocking I/O which is the killer as blocking can be lengthy (in the limit the duration of a timeout).

I assume that socket.getaddinfo doesn't need to perform any I/O to resolve the numerical addresses.

If this is correct I'm sure blocking will be minimal (< 5ms max).
Default behaviour
My preference would be for the nonblocking getaddrinfo to return exactly the same results as the blocking version. This implies:

Able to cope with numeric address.
By default it uses only the network DNS server. Allow the user to add servers.

I have written a simple script that uses aiorepl to enable a comparison of the two versions:
--> await dns('google.com',80)
[(2, 1, 0, '', ('<IP_ADDRESS>', 80))]
[(2, 1, 0, '', ('<IP_ADDRESS>', 80)), (2, 1, 0, '', ('<IP_ADDRESS>', 80)), (2, 1, 0, '', ('<IP_ADDRESS>', 80))]

--> await dns('hinch.me.uk', 80)
[(2, 1, 0, '', ('<IP_ADDRESS>', 80))]
[(2, 1, 0, '', ('<IP_ADDRESS>', 80))]

--> await dns('<IP_ADDRESS>', 80)
[(2, 1, 0, '', ('<IP_ADDRESS>', 80))]
OSError: Failed to resolve <IP_ADDRESS>
--> await dns('alflgh.com', 80)
Site alflgh.com not found.
OSError: Failed to resolve alflgh.com

On my network, where a host can't be resolved, the synchronous version returns an error immediately, whereas the async version pauses for a while.
Script:
import asyncio
import aiodns
import socket
import aiorepl

async def dns(site="micropython.org", port=443):
    try:
        print(socket.getaddrinfo(site, port))
    except OSError:
        print(f"Site {site} not found.")
    info = await aiodns.getaddrinfo(site, port)
    print(info)
    print()

async def main():
    repl = asyncio.create_task(aiorepl.task(globals()))
    dnstask = asyncio.create_task(dns())
    await asyncio.gather(repl, dnstask)

asyncio.run(main())

General note
On past experience I doubt an official version will emerge for a while. This was first discussed several years ago.

I assume that socket.getaddinfo doesn't need to perform any I/O to resolve the numerical addresses.

I've looked into this and I think I know what's going on, the call to socket.getaddrinfo can be considered "blocking" or "non-blocking" depending on the address type and if the address is already cached:

dotted - numerical address e.g. <IP_ADDRESS> --> non-blocking
www-domain name e.g. www.micropython.org --> blocking first time (DNS query), non-blocking if cached
hostname.local e.g. myserver.local --> blocking first time (mDNS query), non-blocking depending on the port (unix port seems to have mDNS cache, esp32 port does not, so it is blocking every time 😞)

LwIP DNS docs https://www.nongnu.org/lwip/2_0_x/group__dns.html#ga1e040ec38166dc9bfcc3473aab0c799f
Test

import socket
import time

hosts = [
    "<IP_ADDRESS>",
    "myserver.local", # change to a local server
    "www.google.com",
    "www.micropython.org",
    "esp32.local", # change to a local device
]

def tzero():
    return time.ticks_us()

def tdiff(t0):
    return time.ticks_diff(time.ticks_us(), t0)

def timed_gaddrinf(hostname):
    _t0 = tzero()
    _addr = socket.getaddrinfo(hostname, 80, 0, socket.SOCK_STREAM)
    _td = tdiff(_t0)
    return (_td / 1e3, hostname)

def run(hosts=hosts):
    results = []
    for host in hosts:
        results.append(timed_gaddrinf(host))

    results.sort()
    for _td, hostname in results:
        print(f"{hostname:<20} --> {_td:6.3f} ms")

if __name__ == "__main__":
    run()

Results
unix
1st
$ micropython test_getaddrinfo.py
<IP_ADDRESS>          -->  0.626 ms
www.micropython.org  -->  1.052 ms
www.google.com       --> 34.134 ms
esp32.local          --> 196.107 ms
myserver.local       --> 441.455 ms

2nd
$ micropython test_getaddrinfo.py
esp32.local          -->  0.531 ms
www.google.com       -->  0.560 ms
www.micropython.org  -->  0.587 ms
<IP_ADDRESS>          -->  0.866 ms
myserver.local       -->  1.091 ms

esp32
1st
>>> import test_getaddrinfo
>>> test_getaddrinfo.run()
<IP_ADDRESS>          -->  1.724 ms
www.google.com       --> 45.815 ms
myserver.local       --> 86.488 ms
www.micropython.org  --> 368.633 ms
esp32.local          --> 403.109 ms

2nd
>>> test_getaddrinfo.run()
www.micropython.org  -->  0.678 ms
www.google.com       -->  0.840 ms
<IP_ADDRESS>          -->  1.397 ms
myserver.local       --> 174.854 ms
esp32.local          --> 305.592 ms

In this case lwip DNS resolver supports mDNS queries see (https://docs.espressif.com/projects/esp-idf/en/v5.2.3/esp32/api-reference/kconfig.html#config-lwip-dns-support-mdns-queries)
however esp32/modsocket.c has its own mdns_getaddrinfo following  https://github.com/micropython/micropython/pull/13398

Fixes inconsistency where previously querying mDNS local suffix (.local)
hostnames returned results with socket type 0 (invalid), but all other
queries returned results with socket type SOCK_STREAM (regardless of
'type' argument).

which I guess is why there is no .local name cache. 🤔

aiodns now supports mDNS (Multicast DNS) name resolution. This was surprisingly easy as it basically follows the same protocol (so code increase is negligible)


Ensure screen readers automatically focus on the header of the screen

On the Credential Offer screen, the first thing the screen reader reads out is “go back button”. It should read "credential offer".
When the camera opens to scan a QR code, the screen reader reads out “BC Wallet close” (which is the exit button label) as the first and only information. It should read "Scanning".

Need some work to figure out the how screen readers interprets the order of elements

Read WCAG guidance on focus order and meaningful sequence. It seems like its up to us to determine if the back button being read before the screen header would be unexpected or would change the meaning of the content of the screen. I checked other apps and none of the ones I checked read the header before the back button, so this behaviour may be expected from users. I also do not think the location of the back button changes the meaning of the screen. I think we can close this ticket.


Removed all unnecessary colons in stylus files.

ref: https://github.com/vuejs/vuejs.org/commit/75d9525535ac4d6947d7bd2401e0dfd84e0d78f3#commitcomment-23002926

My preference would actually be always colons. 😅 There are some cases in Stylus where the colon is necessary for the value to be parsed correctly, so removing all could actually be dangerous. For me personally, the colons also work better with some of my editor features.
We're also inconsistent in Stylus files between 2 spaces and 4 spaces. I much prefer 2 spaces, if we're already taking a standardization pass
Any thoughts?

@chrisvfritz, I vote for 2 spaces and no colons unless necessary (like javascript semicolons rule) but I moved from stylus to postcss so I guess my opinion is not really worth a lot :smile:

I vote for 2 spaces.
For colons or not, I accept any of them but not both of them together. Go all stylus with colons is OK for me if it is much safer and more friendly to editors.

Then since I'm working with the code the most, let's go on with full colons. 😅
I don't see them as similar to semicolons in JS really, as the contexts in which they're necessary are a bit more complicated and it's not obvious why they're needed, whereas in JS it's much more obvious. Also, auto-completion means I'm never actually typing a colon, while auto-completion in JS will never be able to tell you when you've actually ended a statement. Just my thoughts. 🙂

@chrisvfritz, Totally agree it's not like semicolons, more like rule of "dont't type unless necessary" is similar, but I totally agree that it's your call since you're the main person to work with this codebase, still, it should be enforced and have same code style over entire codebase.

Great. I will create another PR instead of this one to fix colons and spaces in all stylus files.
Thanks.


Add badges

I want to add badges in readme.
please assign under JWOC

@sagnik1511 reason for closing the issue


Camera preview sample: Use CoreDispatcher or DispatcherQueue instead of "Dispatcher"

When trying to implement camera live-preview, I copied the code example to notice that Dispatcher is not actually a class that I could use. Also given that DispatcherQueue is the preferred way, it might be better to use that instead.

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

ID: 6b541f9d-e736-86dd-2f49-6c47711aa162
Version Independent ID: 2f3d7caa-13f1-0130-b141-0f6b857a83d9
Content: Display the camera preview - UWP applications
Content Source: windows-apps-src/audio-video-camera/simple-camera-preview-access.md
Product: uwp
Technology: audio-video-and-camera
GitHub Login: @drewbatgit
Microsoft Alias: drewbat

My bad, forgot about the Dispatcher property on FrameworkElements. Closing this.


[animations] OpenContainer exceptions

I have long list by Items and some of them crash when I close container otherwise most of them work well. I can say 3% of list items throw error exception on closing. I use latest animations: ^1.0.0+5 package. More info below...

Logs

════════ Exception caught by widgets library  ═══════════
The following NoSuchMethodError was thrown building AnimatedBuilder(animation: AnimationController#064eb(◀ 1.000; for _OpenContainerRoute)➩ProxyAnimation, dirty, state: _AnimatedState#75c14):

The getter 'isInTree' was called on null.
Receiver: null
Tried calling: isInTree

When the exception was thrown, this was the stack
#0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:53:5)
#1      _OpenContainerRoute.buildPage.<anonymous closure>
package:animations/src/open_container.dart:738
#2      AnimatedBuilder.build
package:flutter/…/widgets/transitions.dart:1012
#3      _AnimatedState.build
package:flutter/…/widgets/transitions.dart:178
#4      StatefulElement.build
package:flutter/…/widgets/framework.dart:4334
...
═══════════════════════════════════════════════════════════════

════════ Exception caught by animation library  ══════════════
The setter 'placeholderSize=' was called on null.
Receiver: null
Tried calling: placeholderSize=null
═══════════════════════════════════════════════════════════════

Analyzing demo_app_x...
No issues found! (ran in 77.5s)

[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.15.3 19D76, locale sv-SE)
    • Flutter version 1.12.13+hotfix.8 at /Users/arnas/Documents/Development/Tools/flutter
    • Framework revision 0b8abb4724 (2 weeks ago), 2020-02-11 11:44:36 -0800
    • Engine revision e1e6ced81d
    • Dart version 2.7.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/arnas/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.8.4

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.42.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.8.1

[✓] Connected device (1 available)
    • Nexus 5X • 013c535795c613eb • android-arm64 • Android 8.1.0 (API 27)

• No issues found!

Hi @iamarnas
could you provide a code sample to reproduce it?

Hi @iamarnas
could you provide a code sample to reproduce it?

Hi @VladyslavBondarenko
The look of the list looks like this.
//... children: _fixtures                     .map((fixture) {                       // Add fixtures by same id to list                       if (fixture.league.id == leagueId)                         return _buildEventTile(fixture);                       else                         return null;                     })                     .where((widget) => widget != null)                     .toList(), //...
Here is my OpenContainer..
Widget _buildEventTile(Response fixtures) {     // Open Container with animated transition     return OpenContainer(       closedShape: const RoundedRectangleBorder(         borderRadius: BorderRadius.all(           Radius.circular(0),         ),       ),       closedElevation: 0,       openElevation: 0,       closedColor: Theme.of(context).scaffoldBackgroundColor,       openColor: Theme.of(context).scaffoldBackgroundColor,       transitionType: _transitionType,       openBuilder: (BuildContext _, VoidCallback openContainer) {         return FixturesPage(fixture: fixtures);       },       closedBuilder: (BuildContext _, VoidCallback openContainer) {         return Material(           type: MaterialType.transparency,           child: InkWell(             onTap: openContainer,             child: Container(               height: kToolbarHeight,               margin: EdgeInsets.only(left: _padding, right: _padding),               child: Row(                 mainAxisSize: MainAxisSize.max,                 mainAxisAlignment: MainAxisAlignment.start,                 children: <Widget>[                   StatusContainer(                     status: fixtures.fixture.status.short,                     elapsed: fixtures.fixture.status.elapsed,                   ),                   TeamNameContainer(                     crossAxisAlignment: CrossAxisAlignment.end,                     textAlign: TextAlign.end,                     text: fixtures.teams.home.name,                   ),                   TeamLogo(imageUrl: fixtures.teams.home.logo),                   Scores(                     date: fixtures.fixture.date.toLocal(),                     homeScore: fixtures.goals.home,                     awayScore: fixtures.goals.away,                   ),                   TeamLogo(imageUrl: fixtures.teams.away.logo),                   TeamNameContainer(                     crossAxisAlignment: CrossAxisAlignment.start,                     textAlign: TextAlign.start,                     text: fixtures.teams.away.name,                   ),                   Opacity(                     opacity: 0.0,                     child: StatusContainer(                       status: 'hidden',                     ),                   )                 ],               ),             ),           ),         );       },     );   }
and sorry for wrong button :) reopening again.

I am running into this as well. Somehow the hideableKey.currentState is null.
════════ (7) Exception caught by widgets library ═══════════════════════════════════════════════════
The getter 'isInTree' was called on null.
Receiver: null
Tried calling: isInTree
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ (8) Exception caught by animation library ═════════════════════════════════════════════════
The setter 'placeholderSize=' was called on null.
Receiver: null
Tried calling: placeholderSize=null
════════════════════════════════════════════════════════════════════════════════════════════════════

This error happened to me when I delete the widget that called OpenContainer before closing OpenContainer. To be more exact, I observed this when the deleted widget was the last item in ListView.

I kind of figured out the problem for my case but unsure what to do about it.
I have a list that is built with a StreamBuilder from the sqlite database. I use OpenContainer around the ListTile to open a detail view. If I just close the detail view again, everything is fine but if I edit the detail entity and save it to the database, and then go back, this error happens.
The cause is that the StreamBuilder of my list is rebuilding due to the database save and all the OpenContainers in the list get rebuild as well.

I'm having a similar problem. My closed state builder returns a simple FAB while the open builder returns a new page defined elsewhere.
Every time tab the FAB, the transition animates to the next page just fine but when I go back I get the error message below in the terminal, a red error screen in the app (for about 1 second) and then it transitions to the page i was previously at but without the animation.
Code below:
Scaffold buildMainView(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.black,
      floatingActionButton: OpenContainer(
        transitionType: _transitionType,
        openBuilder: (BuildContext context, VoidCallback _) {
          return ActionsView();
        },
        closedElevation: 6.0,
        closedShape: const RoundedRectangleBorder(
          borderRadius: BorderRadius.all(
            Radius.circular(100),
          ),
        ),
        closedBuilder: (BuildContext context, VoidCallback _) {
          return FloatingActionButton(
            child: Icon(Icons.add),
          );
        },
      ),
      body: NestedScrollView(
        controller: _scrollController,
        headerSliverBuilder: (BuildContext _, bool boxIsScrolled) {
          return <Widget>[
            SliverAppBar(
              backgroundColor: Colors.black,
              leading: IconButton(
                icon: Icon(Icons.notifications),
                onPressed: () {},
              ),
              actions: <Widget>[
                IconButton(
                  icon: Icon(Icons.insert_chart),
                  onPressed: () {},
                )
              ],
              pinned: true,
              forceElevated: boxIsScrolled,
              expandedHeight: MediaQuery.of(context).size.width / 1.75,
              flexibleSpace: FlexibleSpaceBar(
                title: Text(
                  "-----",
                  style: GoogleFonts.rubik(),
                ),
                centerTitle: true,
                titlePadding: EdgeInsets.fromLTRB(0, 0, 0, 60),
                collapseMode: CollapseMode.pin,
                background: Padding(
                  padding: EdgeInsets.only(bottom: 30),
                  child: Center(
                    child: Text(
                      '------',
                      style: GoogleFonts.rubik(
                        textStyle: TextStyle(color: Colors.white, fontSize: 20),
                      ),
                    ),
                  ),
                ),
              ),
              bottom: TabBar(
                controller: _tabController,
                labelStyle: GoogleFonts.rubik(),
                indicator: UnderlineTabIndicator(
                  insets: EdgeInsets.fromLTRB(60, 0, 60, 0),
                  borderSide: const BorderSide(width: 3.0, color: Colors.blue),
                ),
                tabs: <Widget>[
                  Tab(
                    text: 'Activity',
                  ),
                  Tab(
                    text: 'Security',
                  ),
                ],
              ),
            )
          ];
        },
        body: ClipRRect(
          borderRadius: BorderRadius.only(
              topLeft: Radius.circular(20), topRight: Radius.circular(20)),
          child: TabBarView(
            controller: _tabController,
            .....
          ),
        ),
      ),
    );

The error I get:
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building AnimatedBuilder(animation: AnimationController#fc37a(◀ 1.000; for _OpenContainerRoute)➩ProxyAnimation, dirty, state: _AnimatedState#d6004):
The getter 'isInTree' was called on null.
Receiver: null
Tried calling: isInTree

The relevant error-causing widget was:
  MaterialApp file:///E:/Flutter%20Projects/paymint/lib/main.dart:49:12
When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      _OpenContainerRoute.buildPage.<anonymous closure> (package:animations/src/open_container.dart:738:63)
#2      AnimatedBuilder.build (package:flutter/src/widgets/transitions.dart:1012:12)
#3      _AnimatedState.build (package:flutter/src/widgets/transitions.dart:178:48)
#4      StatefulElement.build (package:flutter/src/widgets/framework.dart:4334:27)
...
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ (2) Exception caught by widgets library ═══════════════════════════════════════════════════
The getter 'isInTree' was called on null.
Receiver: null
Tried calling: isInTree
The relevant error-causing widget was:
  MaterialApp file:///E:/Flutter%20Projects/paymint/lib/main.dart:49:12
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ (3) Exception caught by animation library ═════════════════════════════════════════════════
The setter 'placeholderSize=' was called on null.
Receiver: null
Tried calling: placeholderSize=null
════════════════════════════════════════════════════════════════════════════════════════════════════

Does anyone know why this is happening? The ActionsView animates in just fine. But when I go back, i get a red error screen for a second (maybe less), the above message in the terminal, but then my app does close the openContainer, but with no animation. Just an abrupt change back to the original.
Help would be much appreciated!!

Ok guys i think I found the fix. The problem was that the widget that had the FAB in it was not originally pushed by the Navigator as a route. Once I added that widget as a named route and pushed to it instead of just returning it, the OpenContainer stopped giving me those errors.
So to conclude, when you have a widget that uses OpenContainer, make sure that the overall widget that uses the OpenContainer is pushed through a Navigator instead of a simple return statement.
Hope that helped!!!

@RohanKapurDEV Thank you for sharing the solution. To confirm my understanding, would you be willing to share the code diff in your example?

I started receiving this exception after I switched out the ListView for the ReorderableListView. Also, it only occurs when running my app on iOS, not Android. Yes, please do share your code, thanks Rohan.

Right, so the key insight for my fix came from this great medium article someone wrote specifically about this package: https://medium.com/flutter-nyc/a-deep-dive-into-the-flutter-animations-package-3e26b10c43c1
So the explanation for the container transform in the article section states the following:
"It is important to note that the OpenContainer widget must be used in a context with a Navigator. When it transitions from the closed widget to the open widget, it pushes a new PageRoute onto its closest ancestor Navigator. It then grows the open widget to fill the entire size of this Navigator. Most Navigators are full-screen, but don’t have to be."
So what was my mistake? Well, I was pushing the widget the contained the code snippet I posted above as a return statement instead of pushing the entire thing using a Navigator. I didn't have to change the snippet I posted above at all.
The snippet I posted was a function that returned a widget. All I had to do was make sure the Stateless widget whose build function used the code above was pushed into the main view of the app using a Navigator like so:
Navigator.of(context).pushNamed(context, '\routeNameOfTheWidgetThatHasAnOpenContainerInsideIt')

I know this is unclear but I'm not posting my code because once again, ALL i had to do was NOT update the portion of my code with the openContainer inside it and INSTEAD, I just pushed the top level Scaffold that contained the snippet I posted via the Navigator. Before this, that widget was pushed onto the main screen via a simple return MyWidget() statement. Now it's pushed via the Navigator.

Thanks @RohanKapurDEV, my problem also proved to be something different. I too was already using the Navigator, however I was using the flutter beta channel on my mac and the dev channel on windows. I no longer receive this exception on my mac since upgrading to v1.15.21 on the dev channel.

I kind of figured out the problem for my case but unsure what to do about it.
I have a list that is built with a StreamBuilder from the sqlite database. I use OpenContainer around the ListTile to open a detail view. If I just close the detail view again, everything is fine but if I edit the detail entity and save it to the database, and then go back, this error happens.
The cause is that the StreamBuilder of my list is rebuilding due to the database save and all the OpenContainers in the list get rebuild as well.
Edit:
Somehow this does not happen with the first list item. I tried to give the list items keys but that didn't help.

Did you find a fix?

I copied most of the code and made it a NamedRoute, just added null check at the offending places and it seems to work so far.

Looks like there are a couple of different issues discussed in this bug. Can you please open separate issues for each bug and post a minimal, but fully runnable code sample with it that reproduces the problem? That would help us in fixing these problems.
I am going to close this issue for now since it is not vary actionable right now for us.


C++20 breaks broken print_log_value<wchar_t const*>::operator() even more

print_log_value<wchar_t const*>::operator():
https://github.com/boostorg/test/blob/119a3a72941065b84fe1de0fb5a29aa29694d48c/include/boost/test/impl/test_tools.ipp#L124-L128
is completely bogus. Narrow streams (std::ostream& ostr) have no special support for pointer-to-wchar_t, so in C++17 and earlier the result is to call the void* stream insertion operator and output the pointer value rather than the characters it points to.
C++20 helpfully renders this function ill-formed by adding a deleted stream insertion operator for std::ostream and wchar_t const*; see http://eel.is/c++draft/diff.cpp17.input.output#3.
I'm not sure why this function exists, but I suspect it is not fit for purpose.

Fixed via #252


[Batch mode] Fix for rdar://48526524 - wrong module file output when given by two -o's

Fixes  rdar://48526524.
When no -c and there are >1 -o's each giving the module output file, the compiler would just use the first output file name for all primaries. This fixes that.

@swift-ci please smoke test os x platform

@swift-ci please smoke test and merge

@swift-ci please smoke test and merge


Feature Request: Limit the scope to a specific time span

Hi @gizmomogwai,
Thanks again for the great work and also the reply to my previous feature request!
I am wondering whether it would be possible to limit the scope of the tasks to a specific time span (e.g. :start  [2024-05-27 Mon] :end  [2024-05-28 Tue]) by checking the schedules of the tasks. Tasks scheduled outside this time span wouldn't be shown in the Kanban board.
Best,
Jae

Hi @dschaehi,
it is possible and after I did some searching already implemented by the normal :match parameter.
See https://orgmode.org/manual/Matching-tags-and-properties.html.
The :match parameter uses org-modes builtin filtering that supports all variants of filtering in aforementioned document (that is also used by org-agenda views).
Only problem is (as very often) escaping of "special" characters.
So an example like
#+BEGIN: kanban :mirrored t :match "SCHEDULED>=\"<2024-05-30>\"" :layout ("..." . 1000) :scope nil

works for me (see the \ in addition to the documentation that i liked.
I hope this is not too big of an hassle to use! If you like I could add a little bit of examples to the configure-blockui, but I am not sure if you are even using that.
Hope that helps!

Hi @gizmomogwai,
Perfect! I didn't know that the :match parameter allows for such a powerful filtering mechanism.
To only include tasks in this week I use the following expression for :match
"+SCHEDULED>=\"<2024-05-27 Mon>\"+SCHEDULED<=\"<2024-05-31 Fri>\""

Many thanks!


Refresh after editing

Unweighted pockets don’t update because you aren't actually editing, you're adding a new value. I'll do it in a new branch.


Mutate ??

Is your feature request related to a problem? Please describe.
StrykerJS mutates || to &&, but it does nothing with ??. This is hugely frustrating for me.
Describe the solution you'd like
StrykerJS could mutate ?? to ||
Describe alternatives you've considered
Changing code manually and running tests. But this is a little slow.
Additional context
Should StrykerJS always mutate ??? It might sometime result in a non-killable mutant. And what about the other way around? The syntax might not always be supported.

?? is just sugarcoated a !== null && a !== undefined...
r = a ?? b;
r = (a !== null && a !== undefined) ? a : b;

so there is no problem with support I guess, since this would be work around.
non-killable mutant... yeaa... it might generate equivalent mutants yea...
i mean... if you were to check 0 or "" i might generate good mutant
since
0 ?? b and 0 || b would generate sth different
tho if you have type
null | object
then you can't possibly test it...
then only option would be
0 ?? b -> 0 && b i believe

Yeah, I think && is the best thing to do. Q: What should we do with the optional chaining operator?
foo?,bar
foo?.[1]
foo?.()

I believe so... We could also think about changing ? to !...
That leaves ! too. We could potentially remove it or do ?

Long since implemented


fix(linting): Fixed linting issues

:tada: This PR is included in version 3.0.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


nslookup doesn't work after checkpoint/restart

Description
Can't resolve domain names after a restart, works fine before
i.e. start the example looper container, exec into it and run and nslookup, checkpoint it, restart it, exec back into it, try to run same nslookup.
What might be a small difference from normal is I'm using my own defined bridge (i.e. docker network create) and manually assigning the IP to the container.
Steps to reproduce the issue:
1.
docker run --net mynet123 --ip <IP_ADDRESS> -d --name looper --security-opt seccomp:unconfined busybox          /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'
above assumes docker network mynet123 has been created

docker exec -it looper nslookup www.amazon.com
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS>

Name:      www.amazon.com
Address 1: <IP_ADDRESS>

docker checkpoint create looper cp1
cp1
docker start --checkpoint cp1 looper

docker exec -it looper nslookup www.amazon.com
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS>

nslookup: can't resolve 'www.amazon.com'

Describe the results you received:
nslookup failed
Describe the results you expected:
nslookup to work, just like it did before checkpoint/restart
Output of docker version:
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:57:21 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:57:21 2017
 OS/Arch:      linux/amd64
 Experimental: true

Output of docker info:
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 50
Server Version: 1.13.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 185
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.8.0-37-generic
Operating System: Ubuntu 16.10
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.41 GiB
Name: x1
ID: 7E3V:YIUY:MIXX:JIMW:XDHE:ENCS:H7LY:EU7E:FMGZ:ZGYC:AFMF:2RPV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: spotter
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):
physical ubuntu 16.10 laptop thinkpad x1 carbon laptop.

I should note, that at least tcp networking still works
i.e. using the IP from amazon nslookup above
docker exec -it looper wget <IP_ADDRESS>
Connecting to <IP_ADDRESS> (<IP_ADDRESS>:80)
wget: server returned error: HTTP/1.1 503 Service Unavailable

though apparently if I ask it to use google's DNS servers, get better results
docker exec -it looper nslookup www.amazon.com <IP_ADDRESS>
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS> google-public-dns-a.google.com

Name:      www.amazon.com
Address 1: <IP_ADDRESS>

though I should note that the above example of using google's DNS servers doesn't seem to work for me on an AWS test box.

wondering if it doesn't work because of the long discussion in https://github.com/docker/docker/issues/19474

With a privileged ubuntu container I used iptables-save to inspect the rules
before checkpoint
*nat
:PREROUTING ACCEPT [30:2821]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [6:376]
:POSTROUTING ACCEPT [8:504]
:DOCKER_OUTPUT - [0:0]
:DOCKER_POSTROUTING - [0:0]
-A OUTPUT -d <IP_ADDRESS>/32 -j DOCKER_OUTPUT
-A POSTROUTING -d <IP_ADDRESS>/32 -j DOCKER_POSTROUTING
-A DOCKER_OUTPUT -d <IP_ADDRESS>/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination <IP_ADDRESS>:41873
-A DOCKER_OUTPUT -d <IP_ADDRESS>/32 -p udp -m udp --dport 53 -j DNAT --to-destination <IP_ADDRESS>:54853
-A DOCKER_POSTROUTING -s <IP_ADDRESS>/32 -p tcp -m tcp --sport 41873 -j SNAT --to-source :53
-A DOCKER_POSTROUTING -s <IP_ADDRESS>/32 -p udp -m udp --sport 54853 -j SNAT --to-source :53
COMMIT
# Completed on Mon Mar  6 06:31:17 2017
# Generated by iptables-save v1.6.0 on Mon Mar  6 06:31:17 2017
*filter
:INPUT ACCEPT [2139:25322754]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1918:111928]
COMMIT

after restart
:PREROUTING ACCEPT [22:2173]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER_OUTPUT - [0:0]
:DOCKER_POSTROUTING - [0:0]
-A OUTPUT -d <IP_ADDRESS>/32 -j DOCKER_OUTPUT
-A POSTROUTING -d <IP_ADDRESS>/32 -j DOCKER_POSTROUTING
-A DOCKER_OUTPUT -d <IP_ADDRESS>/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination <IP_ADDRESS>:41873
-A DOCKER_OUTPUT -d <IP_ADDRESS>/32 -p udp -m udp --dport 53 -j DNAT --to-destination <IP_ADDRESS>:54853
-A DOCKER_POSTROUTING -s <IP_ADDRESS>/32 -p tcp -m tcp --sport 41873 -j SNAT --to-source :53
-A DOCKER_POSTROUTING -s <IP_ADDRESS>/32 -p udp -m udp --sport 54853 -j SNAT --to-source :53
COMMIT
# Completed on Mon Mar  6 06:38:12 2017
# Generated by iptables-save v1.6.0 on Mon Mar  6 06:38:12 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

hte only things that seem different are in the last set of rules after it's all [0:0], but this is where my lack of knowledge of iptables rules lets me down

/cc @sanimej @boucher

I've tested it with using the default docker bridge and it works as expected.  I can hack around it by controlling the ip external to docker (say an iptables rewrite rule), but that's really ugly.

we had a similarly looking issue happening after 1 of our 3 DNS servers crashed. afterwards DNS lookup was broken for all containers using the embedded DNS server. restarting the docker daemon helpen. version 1.12.3 centos 7.2

hmm, that worked.  such a hack, but it worked.

The problem was caused by that, when "criu" creating the checking point, it will store the iptables nat rule (here: rule of routing dns port 53  to dockerd dynamically opened udp DNS port ), so next time when start the checkpoint, the stored iptables nat rule still the point to the previous UDP dns server ports which should be modified according to the new UDP dns ports which is different when the container get started. which in turn leads to the problem.
So this should be considered as a bug.

ping @aboch @xemul ptal

And @boucher

I figure, this function reexecSetupResolver in file ( "vendor/github.com/docker/libnetwork/resolver_unix.go") not get executed successfully when checkpointed container get started, with iptable parameters like below:

-t,nat,-I,DOCKER_OUTPUT,-d,<IP_ADDRESS>,-p,udp,--dport,53,-j,DNAT,--to-destination,<IP_ADDRESS>:38139
-t,nat,-I,DOCKER_POSTROUTING,-s,<IP_ADDRESS>,-p,udp,--sport,38139,-j,SNAT,--to-source,:53
-t,nat,-I,DOCKER_OUTPUT,-d,<IP_ADDRESS>,-p,tcp,--dport,53,-j,DNAT,--to-destination,<IP_ADDRESS>:46776
-t,nat,-I,DOCKER_POSTROUTING,-s,<IP_ADDRESS>,-p,tcp,--sport,46776,-j,SNAT,--to-source,:53
So for checkpointed container, should delete first then insert correct nat rules in the container network name space.
How about having a PR for this.


docs: add guidelines about environment variables

Add a brief note about configuration overrides through environment variables.
Description
In version v0.1.6, a feature created the ability to override configuration files options through environment variables. It's something very useful to know when deploying OpenFGA, and there isn't any reference yet in the documentation about it.
This PR adds a simple note in the configuration section to tell people that it's possible to use environment variables.
References

There is no references.
Review Checklist

[x] I have clicked on "allow edits by maintainers".
[x] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[x] The correct base branch is being used, if not main
[ ] I have added tests to validate that the change in functionality is working as expected

Thanks @AlexandreBrg !


Query Packs resource isn't listed

It would be good to know if Query Packs are deployed as a Zone Redundant service?

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

ID: 1860979b-0bcb-08cd-5674-b5e894a03f72
Version Independent ID: 17ba109c-a2cf-5c56-17bc-56a8aaebf067
Content: Azure services that support availability zones
Content Source: articles/reliability/availability-zones-service-support.md
Service: reliability
Sub-service: availability-zones
GitHub Login: @anaharris
Microsoft Alias: anaharris

@jonlanceley
Thank you for bringing this to our attention.
I've delegated this to content author, who will review it and offer their insightful opinions.


Prepare 37.0.0 Release

Which issue does this PR close?

Part of https://github.com/apache/arrow-datafusion/issues/9682
Rationale for this change

Scheduled release
What changes are included in this PR?

Update version
Update changelog (rendered)

Are these changes tested?

Are there any user-facing changes?

@andygrove please let me know if it would be possible to include https://github.com/apache/arrow-datafusion/pull/9686 to the 37 release?

@andygrove @alamb took updated this branch for release

I think we need to update the CHANGELOG too, but otherwise looks good to me. Thank you @Dandandan

@andygrove  are we ready for the 37.0.0?

Thanks folks, any plan to cut the release?

@andygrove normally does it -- I think we are ready. If @andygrove  doesn't have time I can try and do it later this weekend

Sorry for the delay .. I was away the past few days. I will update this PR now.