[WIP] Expose original units

fixes #5607
@agramfort see here: This is how I would imagine it ... for now I only did it for BrainVision ... but this scheme could be repeated for the others as well I think.
Opinions?

One thing we should probably add, too, is ensuring in BaseRaw.init that all units are valid ones from a BIDS perspective.

I agree, however let's do that in another PR. The BIDS-valid units are listed in appendix 5 in the BIDS specification

I agree, however let's do that in another PR.

Okay but let's make sure the original PR and the sanity-checking one are in the same release cycle (so probably 0.18 not 0.17, unless you have time to get both done in the next week)

original PR and the sanity-checking one

I don't follow you there, please help me along:
With this PR, all I want to do is exposing the units as they are in the data files in a private attribute, so that MNE-BIDS can use it for downstream processing.
Apart from that, I agree that in the future, it'd be good if the units handled by MNE-Python would be the same that BIDS allows.
These are two separate issues for me. What do you want to sanity-check?

These are two separate issues for me. What do you want to sanity-check?

The latter ensures that the former is done correctly. So they are separate / separable if you are willing to accept that the units in PR 1 could be wrong, and that we do not verify it.

The latter ensures that the former is done correctly. So they are separate / separable if you are willing to accept that the units in PR 1 could be wrong, and that we do not verify it.

the units in PR 1 cannot be wrong unless they were wrong in the data to begin with. PR 1 takes the units from the data, and makes them available in BaseRaw._orig_units. Before this PR (PR 1), the original units were lost after MNE-Python's IO.
Checking whether the original units are BIDS compatible or not is something that can be done in MNE-BIDS for now, which will do the processing.

the units in PR 1 cannot be wrong unless they were wrong in the data to begin with.

I'm thinking someone could easily write (and we could easily miss during review) that someone has written uV or μv instead of μV, or failed to put in a unit at all (empty string), etc.

Mmh the data that I am primarily targeting is written by e.g., BrainVision recorder ... the professional software sold by Brain Products, who came up with BrainVision.
I think that the issue that you mention applies to data that has been written through custom software or file format conversion software such as https://github.com/palday/philistine/blob/master/philistine/mne/io.py ...
however, again my argument would be that these potential issues should be checked by whoever wants to use _orig_units. I think it's fine for MNE-Python to say "look, we read a data file and tell you exactly what's in there ... no more no less."

... but ultimately you (and other BIDS folks) are probably the ones who will have to deal with the _orig_units stuff, so if you don't agree with the approach I'm advocating I can live without the sanity checks

I think that an _orig_units attribute will be helpful for all file formats that are accepted by BIDS. I.e.,
MEG

fif
ctf
4d
kit
kdf
itab
... (see appendix 16 in http://bids.neuroimaging.io/bids_spec.pdf)

EEG

BrainVision
EDF / BDF
CNT
EEGLAB

iEEG

MEF3
NWB

so I think it is reasonable, as you mentioned before, to make _orig_units part of BaseRaw.__init__
Regarding the other point, I think we are misunderstanding each other ... I'll look at your comments again at a later point. Or perhaps somebody else can clarify such as @jasmainak

I would focus on files that are supported by BIDS EEG so edf, eeglab and brainvision.
@sappelhoff see why CIs complain

I would focus on files that are supported by BIDS EEG so edf, eeglab and brainvision.

yes, me too. However, with this PR I'll provide the infrastructure that can then be easily used to expose _orig_units for other file formats as well.

what will raw._orig_units be if the raw object was constructed using RawArray

Currently, I initialize it to None, which is fine because it's a private attribute mainly for our internal use and not for end-users ... right?

@sappelhoff see why CIs complain

Mmmh mne/tests/test_docstring_parameters.py failed ... so is that because I didn't write a documentation for _orig_units? it's a private attribute though, so where would I describe it?

finally, regarding my discussion with @larsoner: I still don't understand the points fully - but my suggestion is that I push this PR forward and then get suggestions for sanity checks

run the test locally to replicate the issue.
parameters should be documented in the right order

the code is done now for BrainVision and EDF ... EEGLAB doesn't seem to provide units (it's a secondary file format already) ... and for NEUROSCAN CNT, I cannot figure out what to do with sensitivity and calib (see my summary in the issue text #5607).
I would be happy with having BrainVision and EDF covered, which are the recommended file formats for both EEG and iEEG in BIDS.

the ch[:15] part is important to account for truncated channel names, so I need the first list comprehension for this operation ... and then it's just one other line with a list comprehension --> is there a significant benefit to using a set intersection here? Or is it a question of style?

I find it more readable. It took me multiple sections to understand what
you were trying to do.
Using set would be more readable I think.

I find it more readable. It took me multiple sections to understand what you were trying to do.

I tried to use the intersection but I found the list comprehension to be easier actually, would you mind reading over the section again? I restructured a bit and it should be more easily understandable now ... if not, I'll give the set-intersection approach another try.

ready for a review @agramfort @larsoner @jasmainak

@sappelhoff good to go from your end?

@sappelhoff good to go from your end?

from my end yes, as soon as CIs are green. There is one comment by @jasmainak that I did not address, see: https://github.com/mne-tools/mne-python/pull/5633#discussion_r227365746
so it depends on how my response is evaluated by you guys, if valid - then let's merge.

This ensures that all raw readers, if they supply _orig_units, give valid ones. Eventually hopefully we could get rid of the conditional if raw._orig_units is not None since ideally all readers would give the units (right?), and ensures MNE is giving something sensible. WDYT?

I fully agree ...

... assuming you can construct the valid_units set in some loop somewhere.

... but I am at a loss how you want me to construct valid_units or where to get them from --> this relates to our previous discussion yesterday.

... but I am at a loss how you want me to construct valid_units or where to get them from --> this relates to our previous discussion yesterday.

We should use / construct the BIDS-valid list

We should use / construct the BIDS-valid list

okay - but the manufacturer (say Brain Products) don't necessarily adhere to the units that are BIDS-valid, and thus they will have units in their raw data, that will fail our test --> how should we deal with that?

okay - but the manufacturer (say Brain Products) don't necessarily adhere to the units that are BIDS-valid, and thus they will have units in their raw data, that will fail our test --> how should we deal with that?
edit: Or are you talking about minor things such as specifying microVolts as "uV" or "µV", which we could have a conversion dictionary for?

Yes we should do the work at the MNE end to make sure entries in raw._orig_units are consistent. I see the job of mne.io to provide convenient abstractions and consistent interfaces. This means each reader is responsible for having raw._orig_units have entries that are BIDS valid. In a worst case this should be Unknown (or whatever it's called in BIDS, there is such a thing right?) if e.g. BrainVision or some other manufacturer starts adding things that are not supported.

Eventually such an effort can be integrated with the FIF units:
https://github.com/mne-tools/mne-python/blob/master/mne/io/constants.py#L706
Maybe the best way forward come to think of it would be to always use info['chs'][ii]['unit'], converted to a str.

... oh never mind that last comment, orig units will be different from info['chs'][ii]['unit'] which can be scaled

Ahhh now I see your point, thanks for bearing with me for so long.

In a worst case this should be Unknown (or whatever it's called in BIDS, there is such a thing right?) if e.g. BrainVision or some other manufacturer starts adding things that are not supported.

in BIDS, that would be n/a.
So I will try to come up with a private function that checks units and tries to convert them to BIDS valid units ... if this does not work, I will assign n/a.

The PR is good to go from my side @agramfort @larsoner @jasmainak
one strange CI error remains: E   AttributeError: module 'matplotlib' has no attribute 'artist'
it seems unrelated ...

@sappelhoff let me know when you want me to a final review.
@massich feel free to propose commits to @sappelhoff so he can integrate them. Otherwise we'll do it in a subsequent PR.

@sappelhoff let me know when you want me to a final review.

ready now :-)

@sappelhoff I've restarted the CIs

I would move the function to test_raw.py and update the _test_raw_reader
function to make sure the orig_units are proper for all readers ie present
and valid or None.

do you really think that this should be in the common test, already? I think we should first add it and then integrate it to the common test if we support it for all readers.

at least check that attribute is always present even if it's None

if that's the case, then it should truly be in the common test. Then I would like to think of how to split the common testing. But this can be done further on.

Agreed it should be in _test_raw_reader, None is okay for now, eventually we will eliminate it

Agreed it should be in _test_raw_reader, None is okay for now, eventually we will eliminate it

I take this back -- to me it looks like what should be in test_raw.py is already there, and all that is now required is the content from mne/io/tests/test_base.py to mne/io/tests/test_raw.py

@larsoner see https://github.com/mne-tools/mne-python/pull/5633/commits/159677f28d7217cc4ebc57958ee21b43903749aa


#1028 - info instead of warning in case of EXIF parsing error

We need better repro conditions to address #1028


Downsample image before feeding into network

Thanks for your great work!
I have a question about the code. I notice that you use the half resolution image(128128128) to feed into the model to predict the affine matrix for original size image(256256256). However in the paper, you said highest resolution of the image pyramid should be the same with input image.
Can you explain this to me? Thanks!

Hi @GrigoriPlatonov,
We use half-resolution input for the network. This will significantly accelerate the training process without sacrificing registration accuracy. Yet, the evaluation is conducted with images with original size (256 x 256 x 256).

However, in the paper, you said the highest resolution of the image pyramid should be the same as the input image.

Yes, here, the input image refers to the half-resolution input.


fix color for standard gasPrice, needs to be white where non standard…

… is yellow
https://app.clubhouse.io/augur/story/17453/gasprice-text-indicator-doesn-t-change-color

Coverage remained the same at 57.113% when pulling 9eee73d036397af75466c2ec0346c05e6cbbfca3 on tomhaile/ch17453/gasprice-text-indicator-doesn-t-change-color into f27c18ca8707a62420e33d04e39f461e9b3c7dcb on master.

Coverage remained the same at 57.113% when pulling 9eee73d036397af75466c2ec0346c05e6cbbfca3 on tomhaile/ch17453/gasprice-text-indicator-doesn-t-change-color into f27c18ca8707a62420e33d04e39f461e9b3c7dcb on master.


Add font styles like \mathrm, \mathcal, etc.

@xymostech can you look into the PR submitted by @kevinb7? Please let us know if you need help.

Implemented in https://github.com/Khan/KaTeX/pull/290, https://github.com/Khan/KaTeX/pull/291, and https://github.com/Khan/KaTeX/pull/292.

Just awesome!


I have next problem: somewhere image appears, but not for a long time. Usually image does not appear at all.

I just want know if it problem related to my project configuration or it related to CMS. And how I can fix it?!
Open admin panel, going to some content item (project as example), open it and where image should be shown we just see empty space.

But sometimes image appears.

Netlify CMS version: 2.9.7
Git provider: GitLab
OS: Linux Mint
Browser version Chrome 72.0.3626.96
Built with Gatsby v. 2.13.54.
Deploy to Netlify.
Also I used gatsby-plugin-netlify-cms v. 4.1.6

Related https://github.com/netlify/netlify-cms/issues/1750


different setings for different page

Simply I want to use the "ago" suffix on some pages only and I know I could edit the js file but that changes it for every page, so how can I change for different pages? I tried the below but it didn't work.
    <script>
jQuery("abbr.timeago").timeago({
 prefixAgo: null,
    prefixFromNow: null,
    suffixAgo: "",
    suffixFromNow: "from now",
    inPast: 'any moment now',
    seconds: "Just now",
    minute: "1 min",
    minutes: "%d mins",
    hour: "about an hr",
    hours: "about %d hrs",
    day: "a day",
    days: "%d days",
    month: "about a month",
    months: "%d months",
    year: "about a year",
    years: "%d years",
    wordSeparator: " ",
});
</script>

This suggestion is 6 years old - apparently this project is no longer maintained.


Whatsapp, Gmail, constantly log out

Application version: [e.g. 2.2.1]
OS: [Windows 10, MacOS 13.4, CentOS 7 ...]

Steps to Reproduce:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Screenshots

Please follow the issue template.
The problem you described is not a common issue. Most probably it's something in the environment.


[Bug]: await puppeteer.launch() doesn't ends (on rpi4 4Go of RAM)

Bug description
Steps to reproduce the problem:

Create npm project
Install chromium-browser package sudo apt install chromium-browser
Install puppeteer with sudo npm install puppeteer --save
create index.js file with this library test code :

const puppeteer = require('puppeteer');
(async () => {
    console.log("Launching puppeteer");
    const browser = await puppeteer.launch({
        headless: true,
        executablePath: '/usr/bin/chromium-browser',
        args: ['--no-sandbox', '--disable-setuid-sandbox'],
    });
    console.log("Creating page")
    const page = await browser.newPage();
    console.log("Goto https://example.com");
    await page.goto('https://example.com');
    console.log("Take a screenshot and save it as example.png");
    await page.screenshot({ path: 'example.png' });

    console.log("Close browser");
    await browser.close();
})();

When you start the code with node index.js Just the "Launching puppeteer" text shows on console, it seems puppeteer.launch() function never end. I'm on a rpi4 in Overlay filesystem
The command which chromium-browser returns : /usr/bin/chromium-browser
Puppeteer version
v16.1.0
Node.js version
v18.7.0 (its even not working with node v16.16)
npm version
v8.17.0
What operating system are you seeing the problem on?
Linux
Relevant log output
Launching puppeteer
  puppeteer:launcher [
  puppeteer:launcher   'Calling /usr/bin/chromium-browser --allow-pre-commit-input --disable-background-networking --enable-features=NetworkServiceInProcess2 --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=Translate,BackForwardCache,AcceptCHFrame,AvoidUnnecessaryBeforeUnloadCheckSync --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --enable-blink-features=IdleDetection --export-tagged-pdf --headless --hide-scrollbars --mute-audio about:blank --no-sandbox --disable-setuid-sandbox --remote-debugging-port=0 --user-data-dir=/tmp/puppeteer_dev_chrome_profile-FKaWe3'
  puppeteer:launcher ] +0ms
  puppeteer:protocol:SEND ► [
  puppeteer:protocol:SEND ►   '{"method":"Target.setDiscoverTargets","params":{"discover":true,"filter":[{"type":"tab","exclude":true},{}]},"id":1}'
  puppeteer:protocol:SEND ► ] +0ms
  puppeteer:protocol:SEND ► [
  puppeteer:protocol:SEND ►   '{"method":"Target.setAutoAttach","params":{"waitForDebuggerOnStart":true,"flatten":true,"autoAttach":true},"id":2}'
  puppeteer:protocol:SEND ► ] +0ms
  puppeteer:protocol:RECV ◀ [
  puppeteer:protocol:RECV ◀   '{"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"2544B30439B20DF418D0FF4A0222B886","type":"page","title":"","url":"about:blank","attached":false,"canAccessOpener":false,"browserContextId":"4D130A5E691FC3E6552C5986407806ED"}}}'
  puppeteer:protocol:RECV ◀ ] +0ms
  puppeteer:protocol:RECV ◀ [
  puppeteer:protocol:RECV ◀   '{"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"754d72e8-f1d1-4626-a324-173ae4043ad5","type":"browser","title":"","url":"","attached":true,"canAccessOpener":false}}}'
  puppeteer:protocol:RECV ◀ ] +0ms
  puppeteer:protocol:RECV ◀ [
  puppeteer:protocol:RECV ◀   '{"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"e3fd4704-d61b-45a5-9697-45c88452ce87","type":"browser","title":"","url":"","attached":false,"canAccessOpener":false}}}'
  puppeteer:protocol:RECV ◀ ] +0ms
  puppeteer:protocol:RECV ◀ [ '{"id":1,"result":{}}' ] +0ms
  puppeteer:protocol:RECV ◀ [ '{"id":2,"result":{}}' ] +0ms
  puppeteer:protocol:RECV ◀ [
  puppeteer:protocol:RECV ◀   '{"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"2544B30439B20DF418D0FF4A0222B886","type":"page","title":"about:blank","url":"about:blank","attached":false,"canAccessOpener":false,"browserContextId":"4D130A5E691FC3E6552C5986407806ED"}}}'
  puppeteer:protocol:RECV ◀ ] +0ms

Could you provide the revision number for /usr/bin/chromium-browser? Puppeteer is only guaranteed to work with the revisions stated on https://pptr.dev/chromium-support. I'm also thinking there could be a problem with resources since you are working on a Raspberry Pi. Could you try this on a different device with more resources?

When i do the command chromium-browser --version i have Chromium 92.0.4515.98 Built on Raspbian , running on Raspbian 10
I checked and my browser is not supported in the chromium-support page of puppeteer dev
I can i install an another supported version of chromium ?

This little test code works very well on my windows pc
and puppeteer worked earlier on my raspberry

https://github.com/puppeteer/puppeteer/issues/8762
Here also. Somehow it worked. But after updating a couple of drivers, it doesn't work again

@Zoliex you need to either install the the older version of Puppeteer compatible with your local browser version or use the Chromium version bundled with Puppeteer.


Feature: Add Gitment Support

增加gitment集成
并实现了按钮延迟加载
如@ehlxr在Issue#1604所述部分功能

感觉这是个deadly need啊……为啥一直不merge呢……比第三方舒服多啦……

@AlynxZhou need to test it totally before merge. And i think need to make some additions to this pull. Need some time or any beta-testers with live-demo examples.

@ivan-nginx seems few people test PRs… and seems NexT now contains so many functions and some are outdated… And maybe split three scheme into three themes will be better to maintain?

@ivan-nginx So...How soon can this PR merged? Or is there anything important to discuss ? I've test it for nearly one month(through I'm not using the latest Hexo and just merge upstream as need).

@dreampiggy i need to finish my #1697 PR for start working on this PR. I'm working and i can't to do fast anything alone. If it's worked fine, it's good and it will be merget, be sure. But need some time for this.
What about discuss? Ok, there is one thing in Gitment system what i saw about month ago. Look at this pull from 30 MAY 2017 and say me: why @imsun don't want to merge this pull?
There are some cool features by @aimingoo comment:

No client_secret
Force redirect protocol to support HTTPS/HTTP Github pages site
protected token
language translator for default/other theme, a simple method

For example, i don't wan't to use any client_secret from my Github just for use comments system, and this pull already add alternative:
# This is used for now
this.state.user.isLoggingIn = true
http.post('https://gh-oauth.imsun.net', {
    code,
    client_id,
    client_secret,
  }, '')
  .then(data => {
    this.accessToken = data.access_token
    this.update()
  })

# This additions in not merget pull:
this.state.user.isLoggingIn = true
var login = !proxy_gateway
  ? http.post('https://gh-oauth.imsun.net', {code, client_id, client_secret}, '')
  : http.post('/login/oauth/access_token', `code=${code}&client_id=${client_id}`, proxy_gateway);
login.then(data => {
  this.accessToken = data.access_token
  this.update()
})

As u can see, for now (without not merget pull) access token do post query on https://gh-oauth.imsun.net site and this is very interesting from point of view by log files.
Another words: i don't want to do any post queries with access tokens from my Github accont with full access to any 3rd party site (https://gh-oauth.imsun.net) via http protocol.
P.S. If u so want this function with this pull, u may ask @imsun - why he's not want to merge this pull from 30 may?

@ivan-nginx OK, This PR(https://github.com/imsun/gitment/pull/25) for Gitment is really great(Especially for that access tokens proxy and HTTPS support). I will try to test that and push @imsum to review.

@dreampiggy yep. And that's why i'm waiting...

It's not cool to press the button to delay loading. Can you make default settings?

这么长时间了！
什么时候才能通过啊？急需啊！
Deadly need! I want it!
@iissnan @ivan-nginx @geekrainy @flashlab @Acris @voiddog @Lanseria @Jefferlau @Jacksgong @guahsu @Asing1001 @shenzekun @tinpont @dolphinlin @uchuhimo

冲突还没有合并？

有什么我能做的么？

@aimingoo u help if u try to adapt gitmint to this theme.

Waiting for success!

@ivan-nginx
这两天趁着过节把这个theme的代码以及这个pull request的changes看了看。我倒觉得这个request的实现没什么问题，我在想是等这个merge之后再基于这个update提一个gitmint的pull呢，还是现在就独立地提一个。有点拿不定主意，但已经在开始改代码了。
另外，我注意到在这个theme中有三处可以集成comments的地方。但我仔细读了一下github issues api的文档，theme中有一处显示count的地方是无法实现的（就是index/list页上的comments count），因为github issues中取这个count值的代价特别高，强行去做的话，这个index/list页的性能会特别差。
综上，gitmint可能会比现在这个commit多出三个特性：

support no client_secret
support language translator
support comments count in single post page

@aimingoo dude, please, write in English. I don't understand Chinese and gTranslate can't to translate long messages cleanly.
@LEAFERx can u please to refactor this and try to adaptat Gitmint instad of Gitment?

@aimingoo im not really farmilar with gitmint and i have another pr to work on. so i think its a good idea that you do this job.
我建议你Fork我的Fork的master分支然后改成gitmint 或者独立提交一个pr也行

@LEAFERx good! I'll try this now!
@ivan-nginx I cant write long english messages because my english is poor... but i'll try the new work base LEAFERx's idea~

@aimingoo my English is poor to, i'm not was in US or EU, но я же не пишу на Русском, ибо кто меня поймёт без переводчика? Just write with simple words what all will understand, it's easy.
Ok, i'll be glad (not only i, of course) if your guys integrate Gitmint into NexT. I just don't want to make possible vulnerability for users with use Gitment (i talked about it above), so, only your Gitmint fork may give almost full the freedom of choice.

@ivan-nginx @LEAFERx
DONE. #1919


Couldn't compute FAST_CWD pointer

Starting with Windows 10 preview build 15002 (https://blogs.windows.com/windowsexperience/2017/01/09/announcing-windows-10-insider-preview-build-15002-pc/), using msy2 results in this error message being printed upon startup and doing various operations (such as git pull):
Cygwin WARNING:   Couldn't compute FAST_CWD pointer.  This typically occurs if you're using   an older Cygwin version on a newer Windows.  Please update to the latest   available Cygwin version from https://cygwin.com/.  If the problem persists,   please see https://cygwin.com/problems.html
Looks like Cygwin fixed this here:
https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=commitdiff;h=e5cadbfdcdd8b06932a9503b3c72511b68f03a60
Would be great to get a new msys2 version at some point to fix this.
Thanks!

Look here https://github.com/Alexpux/MSYS2-packages/pull/786

Fantastic - I'll close this ticket then (sorry that I didn't see that).


[Fix] [Website] Should declare the telegram webhook format in doc

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
In the DS Telegram instance, the code will construct a format to request POST HTTP to the webhook to trigger TG bot API. The construct is:
{
"text": "[{"projectId":1,"projectName":"p1","owner":"admin","processId":35,"processDefinitionCode":4928367293568,"processName":"s11-3-20220324084708668","taskCode":4928359068928,"taskName":"s1","taskType":"SHELL","taskState":"FAILURE","taskStartTime":"2022-03-24 08:47:08","taskEndTime":"2022-03-24 08:47:09","taskHost":"<IP_ADDRESS>:1234","logPath":""}]",
"chat_id": "5115641748"
}
We should declare this in the doc to guide users to create a webhook to receive this kind of JSON body, either it won't work.
What you expected to happen
Declare the body format in the doc.
How to reproduce
Debug TG alert by alert module and check the body construction.
Anything else
Have acquired the author of this part and he agreed to declare this in the doc.
Version
dev
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

https://github.com/apache/dolphinscheduler-website/pull/750
refer to this pr and have merged


Correct upstream for ee tests

Minor change - so that the Jenkins job refers to the correct upstream job.

LGTM


Fix isolateSource to allow nested scoping ( issue #27 )

For nested scoping, scoped response$$ should also have response$$.isolateSource and response$$.isolateSink

Merged. Thanks!


Upgrade all PostgreSQL to 12+

In order to satisfy compliance requirements, we should upgrade all cloud.gov DBs to PG 12 or newer.
From AWS:
·         Starting with PostgreSQL 12, customer can select minimum TLS version in their database parameters.
·         We have already removed medium like RC4 in PostgreSQL 11.3+ and MEDIUM in all versions 12 and later.
·         AmVU will be updated to a later version by Q2 2021 but too early to give a date right now.
·         As for 2048 bit SSL certificate, an update is still outstanding (will press for additional information).
Acceptance Criteria

[ ] We've documented our status sufficiently to close all related POA&Ms

Security considerations
This issue itself does not leak actionable info about weaknesses. The actions outlined improve our posture.

This work has been completed


Values exported to env independent of export_to_envs

When using the latest version of this action, I notice that even when export_to_envs is left at its default value of false, the parsed values are still exported to the GitHub env.
As an example, here is a workflow using this action; note the configuration of this action under the "Parse current axis YAML" step, and the resulting env in all subsequent steps:
https://github.com/dask-contrib/dask-sql/runs/6087646909?check_suite_focus=true

Hi @charlesbluca ,
Thanks for the hint. I have fixed the bug.
The reason was, that the input variables are always strings and not boolean. But i used this strings as boolean. Resulting in always true for the string "false" and "true".
I hope everything is working now. Let me know if you encounter some other errors.


Improve Pathway Explorer performance

Noticed a number of issues when trying to access the pathway explorer for the first time using the test data.

It's slow when retrieving the initial data. From console prints, I see:

Returning the metabolite data took:<PHONE_NUMBER>9999998 S
...
Returning the pals data took:<PHONE_NUMBER>0000004 S

So in total it took nearly 5 minutes until the pathway results is ready, which can be a while.

A number of django socket errors appeared on the console (see pathways.txt) . I guess it's because of (1) it took too long for the results to return.

Even when the results have finished being computed, nothing shows up on the table. I think it's because of (2) since the connection has timed out. We need to click away and return to the page for results to show up (once it's been cached).

One easy solution would be to precompute everything before-hand and store the results somewhere? It seems that django caching is used, but that is triggered only when the page is accessed, so it's a bit too late. I guess we can do this pathway computation as part of the initial data loading since this only needs to be done once.

Once everything is loaded into cache it works well - as the data becomes larger this is not the only page that struggles. Would be good to discuss. I'll figure out what's written and cached before we do that.


netdata: 1.23.0 -> 1.23.1

Motivation for this change
Upstream update
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/223

#93274

superseded by https://github.com/NixOS/nixpkgs/pull/93274


responses dont have a stable order

Problem statement
When generating a client-sdk two times from the same spec responses dont have a stable order.
https://github.com/claasstoertenbecker/go-esi-link/commit/69176ecb74bcbb9f0a248458efa4b4eab9fb996c
Swagger specification
https://esi.tech.ccp.is/latest/swagger.json?datasource=tranquility
Steps to reproduce
1.) generate client sdk from spec
2.) do it again
3.) compare order of reponse files

The URL to your swagger.json file doesn't open. Can you please fix it, or upload the json file somewhere it can be seen by the parties interested?

Im sorry, the provider of the swagger.json just updated their k8s.
https://gist.github.com/claasstoertenbecker/88e2d4d0b52e4be8b128bcd199305745
Here you go.

@claasstoertenbecker once #848 has been merged in (and this issue is closed), the order of your generated code should be consistent in sequential generations. The first time you'll generate with the latest swagger (that contains PR #848), you'll once again have a big diff, potentially bigger than ever. But all generations after that one should not suffer from this issue any longer.
Thanks for reporting this bug!


Unable to open Front camera in ANDROID

After setting the cameraDirection to 1 it still opens the back camera.
This issue was open in order to document the fix

Is there any solution to automatically open the front camera?

Any solution about this problem? with plugin @cordova-plugin-camera-preview front camera setting works.

As mentioned in the android quirks, the cameraDirection does not work for Android. https://github.com/apache/cordova-plugin-camera#android-quirks-1
There is no official solution for Android to force a back or front camera with the current Intent setup. ( https://developer.android.com/training/camera/photobasics )
The heavy load of the Camera is delegated to the Camera app and there are some hacks for some devices, but it is not implemented in the Android part. And these hacks do not work reliable in any way.
Off course there are other setups possible when you work directly with the Camera api, but that setup is a lot more challenging.
That's the setup of https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview
PR are off course welcome.


DynamicResources using FloatingResourceObservable don't update when theme variant changes

Describe the bug
{DynamicResource ...} bindings that internally use FloatingResourceObservable are not updated when the theme variant (Light, Dark) changes. (Resource bindings that internally use ResourceObservable work as expected.)
To Reproduce
–
Expected behavior
Properties that bind a resource from a theme dictionary should be updated when the theme variant is changed.
Screenshots
–
Desktop (please complete the following information):

OS: Windows 10
Version <IP_ADDRESS>-preview6

Additional context
After reviewing ResourceNodeExtension.cs it looks like a bug in FloatingResourceObservable.OwnerChanged.
FloatingResourceObservable doesn't correctly attach to ActualThemeVariantChanged. Line 256 and 267 should be swapped.
https://github.com/AvaloniaUI/Avalonia/blob/31e2f3375c8b913f9d02b3f858994540eef6ccc6/src/Avalonia.Base/Controls/ResourceNodeExtensions.cs#LL248C1-L271C14

I don't have a simple, isolated repro case. Please let me know if I need to provide more context.

Can you try with preview8 again please?

Thank you for finding this bug. Can you submit a PR with this fix?


Close burger menu when clicking specific items

Closes #906
The items on which the menu closes are:

realm editing buttons
management nav buttons

The solution presented here is a little hacky since the burger menu as written currently gets passed the navigation lists as nested JSX elements, which makes passing the close handler directly to the specific items quite complicated (if possible at all).
This should be taken into consideration when/if the sidebox/burger navigation get refactored or rewritten eventually.

Oh also: The issue also mentions closing this when a realm without children is reached. What are your thoughts on that?

Oh yes thanks for pointing that out, I didn't have the useMenu hook on my radar. Should have remembered that before claiming that this super complicated/not possible...
Regarding realms without children, I think you made some valid points in #906 (back button, consistency with other realms) that convinced me to keep the burger menu open for these.

Fair!


Updated .ruby-version to 2.2.2. Remove ‘bundler’ from Gemfile. pod update.

Updated ruby to 2.2.2
Removed 'bundler' Gemfile
Podfile.lock update

Can someone tell me the process here for merge reviews? E.g. how many reviewers? And am I responsible for the merge or does someone else push that through? Thanks!

Looks good, merging.


Memory leak when useing embedded documents

Bug Report
| Version     | 2.0.3
Summary
I ran into a memory leak and it occurs when using EmbedMany annotation.
/**
 * @ODM\Document(collection="file_keyfames_hash")
 */
class FileKeyframesHash
{
    /**
     * @var Collection<FileKeyframesHash>
     * @ODM\EmbedMany(name="hashes_4", targetDocument=KeyframesHash::class)
     */
    private $hashes4;
}

/**
 * @ODM\EmbeddedDocument()
 */
class KeyframesHash
{
    /**
     * @var string
     * @ODM\Field(name="hash", type="bin")
     */
    private $hash;

    // ... getters/setters
}

        $cursor = $dm->createQueryBuilder(FileKeyframesHash::class)
            ->getQuery()
            ->execute();

        $count = 0;
        foreach ($cursor as $e) {
            /** @var FileKeyframesHash $e */
            $count++;
            if ($count % 10 === 0) {
                echo "Processed: {$count}", PHP_EOL;
                echo "Managed: {$dm->getUnitOfWork()->size()}", PHP_EOL;
                echo Helper::bytesHumanize(memory_get_usage()), PHP_EOL;
                echo PHP_EOL;
            }
            $dm->detach($e);
            unset($e);
        }

The problem occurs event when used $dm->clear() instead of $dm->detach($e)
UPD: HERE I PROVIDED TEST https://github.com/doctrine/mongodb-odm/issues/2162#issuecomment-584599533
example of my script output:

Processed: 100
Managed: 101
472.7 MB

Processed: 110
Managed: 111
538.9 MB

Processed: 120
Managed: 121
592.3 MB

Processed: 130
Managed: 131
684.9 MB

Processed: 140
Managed: 141
766.0 MB

Processed: 150
Managed: 151
851.1 MB

Processed: 160
Managed: 161
903.2 MB

Processed: 170
Managed: 171
967.1 MB

PHP Fatal error:  Allowed memory size of<PHONE_NUMBER> bytes exhausted (tried to allocate 20480 bytes) in /usr/local/app/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Iterator/HydratingIterator.php on line 106
PHP Stack trace:
PHP   1. {main}() /usr/local/app/yii:0
PHP   2. yii\console\Application->run() /usr/local/app/yii:32
PHP   3. yii\console\Application->handleRequest() /usr/local/app/vendor/yiisoft/yii2/base/Application.php:386
PHP   4. yii\console\Application->runAction() /usr/local/app/vendor/yiisoft/yii2/console/Application.php:147
PHP   5. yii\console\Application->runAction() /usr/local/app/vendor/yiisoft/yii2/console/Application.php:180
PHP   6. app\commands\TestController->runAction() /usr/local/app/vendor/yiisoft/yii2/base/Module.php:528
PHP   7. app\commands\TestController->runAction() /usr/local/app/vendor/yiisoft/yii2/console/Controller.php:164
PHP   8. yii\base\InlineAction->runWithParams() /usr/local/app/vendor/yiisoft/yii2/base/Controller.php:157
PHP   9. call_user_func_array:{/usr/local/app/vendor/yiisoft/yii2/base/InlineAction.php:57}() /usr/local/app/vendor/yiisoft/yii2/base/InlineAction.php:57
PHP  10. app\commands\TestController->actionExportHashes() /usr/local/app/vendor/yiisoft/yii2/base/InlineAction.php:57
PHP  11. Doctrine\ODM\MongoDB\Iterator\CachingIterator->next() /usr/local/app/commands/TestController.php:121
PHP  12. Generator->next() /usr/local/app/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Iterator/CachingIterator.php:89
PHP  13. Doctrine\ODM\MongoDB\Iterator\CachingIterator->wrapTraversable() /usr/local/app/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Iterator/CachingIterator.php:89
PHP  14. Doctrine\ODM\MongoDB\Iterator\HydratingIterator->next() /usr/local/app/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Iterator/CachingIterator.php:156
PHP  15. Generator->next() /usr/local/app/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Iterator/HydratingIterator.php:71
PHP  16. Doctrine\ODM\MongoDB\Iterator\HydratingIterator->wrapTraversable() /usr/local/app/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Iterator/HydratingIterator.php:71

Probably detach is not unsetting embedded documents' own identity map. Theoretically it'll be easy to fix unless we did that specifically because of spl_object_id collisions.

@malarzm Isn't it related to QueryBuilder caching results?

could be, I'm replying from the top of my head :)

@malarzm Isn't it related to QueryBuilder caching results?

QueryBuilder does not cache results, as it doesn't even have any. Results are only stored in UnitOfWork through identity map. However, detach operations cascade for embedded relationships, so that every embedded document is properly detached. I was also able to reproduce this in a test.
@TheHett are there any other relationships (maybe references) that aren't detached? The continuously increasing size of the unit of work suggests that.

QueryBuilder does not cache results, as it doesn't even have any. Results are only stored in UnitOfWork through identity map.

I can see CachingIterator in the provided stacktrace, which has caching in it.

are there any other relationships (maybe references) that aren't detached? The continuously increasing size of the unit of work suggests that.

Yes, but i tried to remove different field, and made sure that this is field $hashes4
In addition, this can be seen in the rapid increase of memory consumption (the field $hashes4 contains very large array of bin data)

@TheHett try applying code changes from this PR #2116

I can see CachingIterator in the provided stacktrace, which has caching in it.

That is due to the Query class itself, not the builder. The builder only assembles the query array and passes it on to the query object when you run getQuery(). Semantic difference, but important nonetheless.

Sorry :crying_cat_face:, I meant Query class.
Anyway, I'm practically sure that the CachingIterator is at fault here. Applying fix from the PR and setting Query as ->rewindable(true) should help.

Yep, CachingIterator may very well be the culprit. 😢
Detaching entities works as expected, but there's an additional reference stored in the iterator instance, so it's never garbage collected. Still, doesn't explain why the UoW size keeps growing 🤔

doesn't explain why the UoW size keeps growing

I was wondering as well. Maybe embedded documents are still kept, even if parent was detached :thinking: ? I was sure there were some tests that covered this though (don't have time to look for it atm).

I was wondering as well. Maybe embedded documents are still kept, even if parent was detached 🤔 ? I was sure there were some tests that covered this though (don't have time to look for it atm).

I explicitly tested that:
public function testDetachCascadesToEmbeddedDocuments()
{
    $user = new User();
    $user->addPhonenumber(new Phonenumber('123'));
    $user->addPhonenumber(new Phonenumber('234'));

    $this->dm->persist($user);
    $this->dm->flush();

    $this->dm->clear();

    $user = $this->dm->find(User::class, $user->getId());
    $this->assertNotNull($user);
    $this->assertCount(2, $user->getPhoneNumbers());

    $this->assertSame(3, $this->dm->getUnitOfWork()->size());

    $this->dm->detach($user);

    $this->assertSame(0, $this->dm->getUnitOfWork()->size());
}

Test passes successfully.

try applying code changes from this PR #2116
@Steveb-p  ok, I can only do it tomorrow at the office

@alcaeus in my case the memory wasnt released even I called $dm->clear()` on each iteration.

        $cursor = $dm->createQueryBuilder(FileKeyframesHash::class)
            ->setRewindable(true)
            ->getQuery()
            ->execute();

@Steveb-p It did not help, same problem.

The next configuration works fine (no leaks):
$cursor = $dm->createQueryBuilder(FileKeyframesHash::class)
            ->setRewindable(false)
            ->hydrate(false)
            ->getQuery()
            ->execute();

The next falls (with memory limit exception):
            ->setRewindable(true)
            ->hydrate(false)

Ok. I'll see how we can fix this in 2.0 as the new API will require a new minor release. Until then we'll document the behaviour a bit better. Weak references in PHP can't come soon enough 😅

The next configuration works fine (no leaks):
$cursor = $dm->createQueryBuilder(FileKeyframesHash::class)
            ->setRewindable(false)
            ->hydrate(false)
            ->getQuery()
            ->execute();

The next - falls (with memory limit exception):
            ->setRewindable(true)
            ->hydrate(false)

Sorry, setting rewindable to false is the setting that disables caching for cursor. Rewindable = true is current behavior.

@Steveb-p yes, i understood that this is a typo (I looked at the code). It really solvers the problem only when hydration is disabled. Maybe there are two problems...

Maybe I didn’t put it right, but the problem persists in any rewindable position, if hydration is turned on. No problems only when rewindable and hydration both disabled.

@TheHett try also setting the read-only option (QueryBuilder::readOnly). This should prevent objects from being put into UnitOfWork.

@Steveb-p
Works
            ->setRewindable(false)
            ->readOnly(true)
            ->hydrate(false)

Falls
            ->setRewindable(false)
            ->readOnly(true)
            ->hydrate(true)

@TheHett you could inspect the unit of work after the first detach call to see what entities are still managed. Rewindable will create an additional reference which prevents freeing memory, but the UoW size should definitely be 0 after you call detach.

@alcaeus Now with readOnly setting UoW is empty, but memory comsumption is growing.
The next screen done after 90 iterations:

It is really to inspect where is all memory using xdebug?

In the screenshot provided we can see that you have 7 FileKeyframesHash objects stored in memory and 4 FilterCollections. Could you see if they cross-reference each other?

@Steveb-p  it is not arrays, $e - is one entity with 7 fields.

I tried to make test that shows leak
<?php

declare(strict_types=1);

namespace Doctrine\ODM\MongoDB;

use Doctrine\ODM\MongoDB\Tests\BaseTest;
use Documents\Bars\Bar;
use Documents\Bars\Location;

class MemoryLeakTest extends BaseTest
{
    /**
     * @throws MongoDBException
     */
    public function setUp(): void
    {
        parent::setUp();
        for ($j = 0; $j < 100; $j++) {
            $bar = new Bar("Ololosh Alc");
            for ($i = 0; $i < 10; $i++) {
                $bar->addLocation(new Location($this->generateRandomString(10000)));
            }
            $this->dm->persist($bar);
        }
        $this->dm->flush();
    }

    public function tearDown(): void
    {
        $this->dm->clear();
        parent::tearDown();
    }

    /**
     * @throws MongoDBException
     */
    public function testEmbeddedDocument(): void
    {
        $query = $this->dm->createQueryBuilder(Bar::class)
            ->setRewindable(false)
            ->readOnly(true)
            ->getQuery();

        $iterator = $query->execute();
        $counter = 0;
        foreach ($iterator as $bar) {
            /** @var $bar Bar */
            $iterator = $bar->getLocations()->getIterator();
            if ($counter % 10 === 0) {
                gc_collect_cycles();
                echo memory_get_usage(), PHP_EOL;
            }
            $counter++;
        }
    }

    function generateRandomString(int $length): string {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[random_int(0, $charactersLength - 1)];
        }
        return $randomString;
    }
}

I have next result:
hett@hett-pc:~/mongodb-odm$ ./vendor/bin/phpunit tests/Doctrine/ODM/MongoDB/Tests/MemoryLeakTest.php
PHPUnit 8.5.2 by Sebastian Bergmann and contributors.

R                                                                   1 / 1 (100%)17494696
18881832
20195240
21508648
22822056
24151848
25465256
26778664
28092072
29405480

Time: 7.5 seconds, Memory: 32.00 MB

It shows that memory consumption strongly grows when we iterate holding existed data and.

If we comment line $iterator = $bar->getLocations()->getIterator(); then no problem.

Then it seems initializing PersistentCollection causes memory leak?

Thanks for providing the test case. I'll take a deeper look at it later.

Maybe is problem in CacheIterator?
I use \Doctrine\ODM\MongoDB\Aggregation\Builder and try iterate over big portion data.
How I see CacheIterator on every step get item from wrapped iterator and store in own variable. If you iterate over, for example 5000 objects, then they all stay in memory and you cant delete this objects until program is done.

I little change test of @TheHett and what I got
Also I change access modifier for \Doctrine\ODM\MongoDB\Iterator\CachingIterator::getIterator from private on public for test him

Test

<?php declare(strict_types=1);

namespace Doctrine\ODM\MongoDB;

use Doctrine\ODM\MongoDB\Iterator\CachingIterator;
use Doctrine\ODM\MongoDB\Tests\BaseTest;
use Documents\Bars\Bar;

class MemoryLeakTest extends BaseTest
{
    /**
     * @throws MongoDBException
     */
    public function setUp(): void
    {
        parent::setUp();
        for ($j = 0; $j < 1000; $j++) {
            $bar = new Bar($this->generateRandomString(10000));
            $this->dm->persist($bar);
        }
        $this->dm->flush();
    }

    public function tearDown(): void
    {
        $this->dm->clear();
        parent::tearDown();
    }

    private function memUsage(): void
    {
        gc_collect_cycles();
        echo memory_get_usage(), PHP_EOL;
    }

    /**
     * @throws MongoDBException
     */
    public function testCacheIteratorWithDetach(): void
    {
        $query = $this->dm->createQueryBuilder(Bar::class)
            ->readOnly(true)
            ->getQuery();

        $iterator = $query->execute();

        $this->assertInstanceOf(CachingIterator::class, $iterator);

        $counter = 0;
        $this->memUsage();
        foreach ($iterator as $bar) {
            if ($counter % 100 === 0) {
                $this->memUsage();
            }
            $counter++;
            $this->dm->detach($bar);
        }
        $this->memUsage();
    }

    /**
     * @throws MongoDBException
     */
    public function testIteratorFromCacheIteratorWithDetach(): void
    {
        $query = $this->dm->createQueryBuilder(Bar::class)
            ->readOnly(true)
            ->getQuery();

        $iterator = $query->execute();

        $this->assertInstanceOf(CachingIterator::class, $iterator);

        $iterator = $iterator->getIterator();

        $counter = 0;
        $this->memUsage();
        foreach ($iterator as $bar) {
            if ($counter % 100 === 0) {
                $this->memUsage();
            }
            $counter++;
            $this->dm->detach($bar);
        }
        $this->memUsage();
    }

    function generateRandomString(int $length): string {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[random_int(0, $charactersLength - 1)];
        }
        return $randomString;
    }
}

Result
Memory Leak (Doctrine\ODM\MongoDB\MemoryLeak)
 ✔ Cache iterator with detach
20976440
20976584
22256584
23532808
24813128
26085256
27357384
28645896
29918024
31190152
32462280
33719216
 ✔ Iterator from cache iterator with detach
21342632
21342728
21355576
21355704
21355832
21355960
21356088
21356216
21356344
21356472
21356600
21341064

I spent a lot of time last week investigating these leaks, and it turns out this has nothing to do with CachingIterator or embedded documents. I was able to observe the leak, but did not observe any difference with respect to using a non-caching iterator, or using clear vs. using detach. I did however observe that we didn't properly clean up references of an object as soon as HydratingIterator was involved. However, I wasn't able to pinpoint where the object sticks around, I only observed that the refCount I could check with xdebug was higher than it should've been, and that removing HydratingIterator fixes the issue.
That said, I'll have to spend some more time on this, which I currently don't have. I'm moving this to the 2.0.7 milestone and hope to be able to take a closer look once I've got more time on my hands. In the meantime, please use clear or detach in combination with the non-caching (non-rewindable) iterator introduced in 2.1.0. The want to release 2.1.0 is one of the reasons why I don't have time to investigate this,  so I hope that this at least works around the problem for the time being, even though it's not a full solution for it. Thanks for understanding.

Looking at #2215, this may not have to do with HydratingIterator directly, but rather with what's going on behind the scenes. In the related issue, memory usage spiked as the UnitOfWork was committed to the database, which does not involve HydratingIterator at all, but does involve some of the behind-the-scenes management shenanigans that UoW needs to do. This may help in debugging this issue.

Hit the same issue just now when clearing PersistentCollection with references / embedded documents. Despite explicit call to clear() on DocumentManager memory remained occupied.

Had the same issue here, we do have a 3 million documents collection and using hydration true just explodes the memory, no matter what kind of clear mechanism we try (clear, detach, unset, gb, gc_collect_cycles...)

What's the current state of this issue? Was it fixed in the later major releases?

@douglasjam have you found any workaround solutions for this issue?

@StalkAlex  I think mongodb-odm team already fixed the issue, at least I do not face this issue anymore.
Our practice here is to always use rewindable(false) readOnly(true) and keep clearing after batches.

Unfortunately this issues is still reproducible in my case with odm v2.2.2.

@StalkAlex is your case the same as described previously?

I also faced this issue when loading documents in chunks (50 documents per query) to edit them: the memory usage increases after each iteration.

This happens when iterating over a collection. I. e. the $items property keeps appended. Did not find a way to avoid this behavior yet.

I guess PersistentCollection should have some way of disabling the result caching?

I found that in later versions of doctrine there is a way to make an UnrewindableIterator, which does not store the traversed items within it. Hence it is enough to flag the query as '$rewindable = false`. That's it.
But, this is not possible in some older projects of which dependencies do not allow to have that newer version of the mongodb-odm. Sadly... It's time to do some upgrading...
    /**
     * Decorate the cursor with caching, hydration, and priming behavior.
     *
     * Note: while this method could strictly take a MongoDB\Driver\Cursor, we
     * accept Traversable for testing purposes since Cursor cannot be mocked.
     * HydratingIterator, CachingIterator, and BaseIterator expect a Traversable
     * so this should not have any adverse effects.
     */
    private function makeIterator(Traversable $cursor): Iterator
    {
        if ($this->hydrate) {
            $cursor = new HydratingIterator($cursor, $this->dm->getUnitOfWork(), $this->class, $this->unitOfWorkHints);
        }

        $cursor = $this->rewindable ? new CachingIterator($cursor) : new UnrewindableIterator($cursor);

        if (! empty($this->primers)) {
            $referencePrimer = new ReferencePrimer($this->dm, $this->dm->getUnitOfWork());
            $cursor          = new PrimingIterator($cursor, $this->class, $referencePrimer, $this->primers, $this->unitOfWorkHints);
        }

        return $cursor;
    }

I still facing into memory leak issue when trying to update documents in chunks. Unrewindable iterator doesn't work, it decrements refCount by one but selected documents still have a big refCount value (in my case it equals 4).
Example of my code:
// Fetch documents
$products = $this->manager->createQueryBuilder(Product::class)
            ->field('productId')->in($ids)
            ->setRewindable(false)
            ->getQuery();

// Update documents
foreach ($products as $product) {
    // refCount is 7 here
    $product->update($data);
}

$this->dm->flush();
$this->dm->clear();

// Every product document have refCount equals to 4

@alexxxxkkk have you tried running gc_collect_cycles() after the clear()? If that's not cycles you may employ https://github.com/BitOne/php-meminfo to see what's being referenced and by what. I can't really tell what's going on by looking at your example

@malarzm No, I haven't. Thanks, will do this and post a result.

@malarzm Thanks, all work as expected.
This was due to an enabled debugger in the dev environment, as CommandLogger stores events in local property.

Great! I'll allow myself to close the issue finally then :tada:


Black screen opening a Godot project on macOS

Operative system:
macOS Sierra 10.12.3
Godot version:
Godot 3.0 (5e3fc7d)
Issue description:
Opening Godot, it shows the project manager, but opening a project it shows a black screen.
Steps to reproduce:
Build the lastest Godot commit on macOS, create a new project and open it.

I noticed that to solve this problem, just press the full screen button on Godot's app and it shows its interface instead of the black screen.

Duplicate of #7663 as far as I can see.

same behaviour on windows, just refreshed repo (master), built it and still there:
black screen after open project, toggle fullscreen fix it.

@CharlesWoodhill Please, comment on the other issue, this one has been marked as a duplicate.


highlight #reviewday posts

Suggested by @giupardeb

Closing for now, as Isamuni became less PAC-specific


KDE Plasma 5.16.5 notification area crash.

Describe the bug
With nixOS 19.09 KDE Plasma desktop installed, the notification area intermittently crashes, perhaps once every few days, and displays a red "X" in the notification area and an error message in that area of: Error loading QML file: file:///nix/store/9jmb4agsxdklncfc1qw6ba89b8ha8a36/plasma-workspace-5.16.5/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml:25:1: module "org.kde.kirigami" is not installed in the area where widgets used to be.  Restarting the display manager or rebooting fixes the issue temporarily.
To Reproduce
This appears to happen randomly.
Screenshots

Additional context
Another user has reported this here.  The qtquickcontrols2 package appears to already be installed at the latest packaged version (example path /nix/store/brbvqfl6d1nvzx3n1aqc3g3i6bfr2gyr-qtquickcontrols2-5.12.3-bin/lib/qt-5.12.3/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.so exists).  However, KDE plasma version appears to be 5.16.5.
Metadata

system: "x86_64-linux"
host os: Linux 5.3.8, NixOS, 19.09.1019.c5aabb0d603 (Loris)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3
channels(root): "nixosunstablesmall-20.03pre205123.2cf477f28da, nixosunstable-20.03pre204199.3140fa89c51, nixos-19.09.1549.45ea6092203"
channels(user): "nixosUser-19.09.1549.45ea6092203

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
  pkgs.plasma-desktop
# a list of nixos modules affected by the problem
module:

I also have this problem ..

I guess that #80550 is the reason for the seemingly-missing QtQuickcontrols. What causes the crashes in the first place is another question though.


Add blog post about overcoming blockers on contributing to open source

Wrote the post here:

https://medium.com/@isabelcmdcosta/overcoming-blockers-about-contributing-to-open-source-3ade8131ce9f
https://dev.to/isabelcmdcosta/overcoming-blockers-about-contributing-to-open-source-2ojf

Completed with d4eade7896b8ccee07476ebd42f7b95afabf8fa2


RandomFact - Random Fact Generator

Issue #141
RandomFact :
This is a Chrome Extension which generates a fact every time when clicked upon in the browser.

Hey @harshita214 kindly review my PR

Sure 👍

@vaslal-324 you were trying to use api but you were facing some problem then did you solve it?
Since in code I can see you used an array of quotes

@vaslal-324 you were trying to use api but you were facing some problem then did you solve it? Since in code I can see you used an array of quotes

Yes, there wasn't proper API for that, hence I had to use an array

Okay @vaslal-324
Merging the PR 🚀
Thanks for Contributing 💛


Address cells directly by row and column.

This is related to issue 193, which I see is marked as closed, but to me it doesn't solve the issue.
To process things in loops there is still the steps needed of first building a string that has both the row and column in it (e.g. constructing 'B6' etc), for things like the set cell functions to then split those back out again into separate row and column values.
If, for example, building up an xls file that contains thousands of rows such as some form of report/data extract, you end up doing things like:
func makeAxis(col, row int) string {
  return fmt.Sprintf("%s%d",excelize.ToAlphaString(col),row)
}

Then calling this inside what could be big loops:
SetCell(... , makeAxis(col,row), ...)

instead of just being able to directly call
SetCellXY(..., col, row, ...)

As it stands for every cell the following actions are taken:
Starting with col and row int values (as part of a loop)
Convert col int to a alpha string (convert 1 to A, 2 to B etc)
Convert row int to a numeric string
Join col string and row string
.. inside SetColl ..
Extract alpha from col/row string.
Convert alpha string back to int (A to 1, B to 2 etc)
Extract digits from col/row string.
Convert digit string back to int
Now have the col and row values we started with...
Being able to pass in row and column as separate params would be a lot more efficient than having to join the values only for the SetCell functions to parse and split them back out again every time.
Basically a set of functions that mirror the existing SetCell functions with a SetCellXY variant (replacing the axis param with separate row and column params)
I know there is the also checks for merged cells done on the axis, It would be up to whoever is calling to ensure the col/row values are the correct one to reference the visible cell in the event of a merged cells (if they are using merged cells, which in this sort of bulk data report scenario would seem unlikely, at least in the area of the sheet covered by the bulk data)

@dolmen, nice! my hack was way uglier 💃

Couldn't you just memoize the results of ToAlphaString if you're worried about that being a bottleneck?
Or keep an array of generated column strings from ToAlphaString and access them by index, only adding new ones as necessary?
The library does now have CoordinatesToCellName which would improve the convenience side of things.
Have you benchmarked to see if this was actually a performance bottleneck though? Bad performance writing many rows and columns might be related to #382 instead.

From a new user perspective, the API of https://github.com/tealeg/xlsx is much more friendly. Maybe excelize has more features I don' t need.


Todo gift & F&F

[x] Modal should appear properly in both cases

[x] Users can feed OTP / number and proceed

[x] After accepting or rejecting proper toast message or notification

Will test once refresh works

https://xd.adobe.com/view/f11ee4be-fef5-4c9b-9e22-4ae72872c584-a44d/screen/f580a96b-4287-4973-b38b-7263ac5e0805/

Completed


[WIP] qutebrowser: make youtube work again

Since upgrading PyQt to 5.5 #12213, visiting a youtube video in qutebrowser made it segfault.  This happened because qutebrowser was still using Qt plugins from version 5.4.  In addition the new Qt version also requires newer gstreamer plugins.
After upgrading the plugins, qutebrowser doesn't segfault anymore on youtube, and can play videos on other sites.  However, youtube itself still doesn't work, it says "secure connection setup failed" and "unacceptable TLS certificate".
How to reproduce:
GST_DEBUG=5 GST_DEBUG_NO_COLOR=1 GNUTLS_DEBUG_LEVEL=5 ./result/bin/qutebrowser --temp-basedir https://www.youtube.com/watch\?v=GOXjtR4N524
Relevant log output:
gnutls[5]: REC[0x7f19e80137e0]: Sent Packet[2] Alert(21) in epoch 1 and length: 31
0:00:00.491417269 23875      0x37fb450 INFO             souphttpsrc gstsouphttpsrc.c:1322:gst_soup_http_src_finished_cb:<source> finished, io status: 1
0:00:00.491455005 23875      0x37fb450 WARN             souphttpsrc gstsouphttpsrc.c:1556:gst_soup_http_src_parse_status:<source> error: Secure connection setup failed.
0:00:00.491459709 23875      0x37fb450 WARN             souphttpsrc gstsouphttpsrc.c:1556:gst_soup_http_src_parse_status:<source> error: Unacceptable TLS certificate (6), URL: https://r8---sn-bvvbax-8pxs.googlevideo.com/videoplayback?fexp=9413142%2C9416126%2C9417740%2C9419451%2C9420096%2C9420452%2C9422541%2C9422596%2C9423662%2C9424114%2C9424777%2C9425078%2C9425382%2C9426480%2C9426874%2C9426906&ratebypass=yes&mm=31&ipbits=0&mn=sn-bvvbax-8pxs&itag=18&dur=2807.756&initcwndbps=1065000&id=o-AKgrurCqeWvsG0GMU9VIz5I4LfGoLwwxK2U8fB2YuEiN&pl=16&source=youtube&mv=m&mime=video%2Fmp4&ms=au&signature=894F669541AA4A8C1815943139D63FC8452409D0.CF6FA534C0E7A58F7FFDD61116706119FB725DD4&lmt=1415400005735118&ip=<IP_ADDRESS>&upn=Q_rV2f3ycPg&mt=1452420191&expire=1452441939&requiressl=yes&sver=3&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&key=yt6&cpn=oEF_qqB7ZGxWTRDl&ptk=All3Media&oid=RdtVKdmbznqbJP7pYackwQ&pltype=contentugc&c=WEB&cver=html5, Redirect to: (NULL)
Videos over https do work on other sites, it's just youtube where it fails with this TLS error.  I can fetch the url from the log file just fine using wget, curl, and gnutls-cli, so it doesn't seem to be a missing certificate.
AFAICT, gstreamer uses libsoup internally to handle https.  Are there any required build inputs, environment variables, etc. that I am missing?
Any ideas?
cc @lethalman @ttuegel @jagajaga

Upgrading qutebrowser to the current version doesn't help either... (Please tell me if I should file a separate PR for the version bump.)

Ok, this happens because of the nss upgrade from 3.20.1 to 3.21 in 86bf3662df02407a940f0a2c1373faf29a424882.  If I switch back to the old /etc/ssl/certs/ca-certificates.crt everything works.

And it isn't limited to qutebrowser either; the same bug also happens with gst-launch-1.0:
gst-launch-1.0 -v playbin uri='https://r8---sn-bvvbax-8pxs.googlevideo.com/videoplayback?mime=video%2Fmp4&expire=1452445526&source=youtube&itag=18&pl=16&dur=2807.756&initcwndbps=2135000&ipbits=0&fexp=9407187%2C9407535%2C9416126%2C9420452%2C9421665%2C9421982%2C9422596%2C9423662%2C9423715%2C9424091%2C9426340%2C9426406%2C9426759&ratebypass=yes&sver=3&signature=6169771E96DCA7C4C39C7F9D6A37EDCD36049DC3.6CA280F37292BBC633DAFBED77ED02F3891F60AC&upn=qpWgN7CetIo&id=o-AH46yQAJdCwDXCfcX6jprDYvN2PNJvCwsj_1E_PA7gxP&mn=sn-bvvbax-8pxs&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&ms=au&mv=m&mt=1452423877&mm=31&ip=<IP_ADDRESS>&key=yt6&requiressl=yes&lmt=1415400005735118&cpn=kEVeeh7MR5Wbrnph&ptk=All3Media&oid=RdtVKdmbznqbJP7pYackwQ&pltype=contentugc&c=WEB&cver=html5'
Plays the video with the old certificates file, but not with the new one.
However, I can't see a difference with gnutls-cli or openssl s_client...

Ok, it works after upgrading glib-networking and libsoup to the current versions!

These updates cause mass-rebuild. Can you create a new PR with them to a staging branch (with qutebrowser also)?

Done, I have opened #12414 against staging.


SCRIPT3: Ability to drag item from DRAFT into SCRIPT

Same functionality as dragging from INBOX to DRAFT.
ITEM to be able to be dragged from DRAFT into SCRIPT section.
user to be able to drag into ANY number section in SCRIPT.
eg. an ITEM in DRAFT 6 could be dragged into SCRIPT ITEM 4.

Hello @chrisns
Can you just help me in how to add data in script using firebase store? Currently we don't save any data in script section.

I would suggest putting it in the date collection, so for example /dev2/2022-07-06/scriptItems
more crucially do you know what the object looks like you want to store, that might give me more information to work with to advice better, so just give provide the json of what you want to persist, e.g. at the minute items are:
[
  {
    "id": "123",
    "slot": 3,
    "text": "foo"
  },
  {
    "id": "124",
    "slot": 2,
    "text": "foobar"
  }
]

Hello @chrisns
I am not able to save the below json in firestore of script section, can you please let me know how can I save this json in firestore in item.ts. Can you help me in this please. how I can save date in it.
`{
label: '',
clipField: {
clip_url: '',
in_time: '',
in_msg: '',
out_time: '',
out_msg: '',
}
}`

Link to the code?

https://github.com/DaftDoris/newsdesk/pull/397/files

this line is commented out, which seems quite critical https://github.com/DaftDoris/newsdesk/pull/397/files#diff-2362e070522b416b39febb80f8606942a067ae0af135eafe6c5303951ed9d181R41
what is the local behaviour with the local firebase instance, have you dug around with the local firebase gui to see the data and potential errors that its throwing?

when I uncomment this line, the app goes crash. That's why I've comment this line

so debug and figure out why thats happening? I'm not sure I recognise the problem; you should have all the tools available locally to debug it?

Chris is not the QA on this project - I hired your company so you could solve your own issues. This is basic firebase stuff.
If your code is failing, you need to fix it or find someone to fix it - that it was I am paying you for.
If you are unable to, then please let me know.

On 15 Jul 2022, at 17:26, Shanti Infosoft @.***> wrote:

when I uncomment this line, the app goes crash. That's why I've comment this line
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.

@ArindamReact
This is not behaving properly still.

there is something wrong with how SCRIPT is rendering items dragged
You cannot delete items from SCRIPT unless you do it in the same session. If you close the browser, you are unable to delete.

https://user-images.githubusercontent.com/104105362/180656707-68396061-bb03-4b44-8769-41fcc2e93e8c.mov

There should be tests for these scenarios


#46: Split local export mysqldump command to multiple commands (one per table)

Built with TDD :-)

Nice work! ❤


Adding KTPs and new KCSP partners

Updating layout for new KTP section
Adding additional KCSP listings

/hold

/hold cancel

/lgtm
/approve


Downloads and Setups in Tutorial appears to be 404 error

Just as the headline, I can not open this page, who can fix this porblem ?

Just came here to report the same.

#7990 seems to fix this issue

Thank you very much ~ Thank you all ~


ReadMe.MD

Could you please provide more information about the project?

As you can see, all the source code is here.


'Stricter' rate limiter

I have a rate limit requirement for a third party API.
At first it sounded very easy with rezilience. But when I tested against the real server, several requests were blocked due to the rate limit. I've tried manually setting burst to 0, but had no luck.
Here's a minimal reproduction:
$ scala-cli https://gist.github.com/guersam/5ecccfb84c0d6c0f39f3182f91bacdc1

Expected Result
Given rate limit of 10 per second, the second 10 timestamps should be at least 1 second from start because the limit of 10 is already reached within the first second
Actual Result
The 11th elements is emitted even before 0.3 seconds
Related issue
https://github.com/zio/zio/issues/7888

Hi @guersam, do you still experience this issue with the latest ZIO version?

@svroonland Yes, because it's intended behavior of throttleShapeZIO.
I ended up with writing my own sliding window pipeline and it just works. If you think sliding window is more suitable than token bucket for rate limiters, I'm willing to contribute my implementation as well.

@guersam I'd be interested in that implementation, definitely. Apologies for the late reply. Looking forward to a PR!


Use localhost for default_hostname in showcase/echo.proto

Sample run of the CI build using a version of showcase protos where localhost:7469 is changed to localhost

Codecov Report

Merging #2346 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2346   +/-   ##
=========================================
  Coverage     86.71%   86.71%
  Complexity     5194     5194
=========================================
  Files           454      454
  Lines         20641    20641
  Branches       2229     2229
=========================================
  Hits          17899    17899
  Misses         1960     1960
  Partials        782      782

Continue to review full report at Codecov.

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


Reward pallet RPC

A few questions I'm blocked on at this point:

Build failure. This looks very similar to what I was getting when failing to implement the RPC in the runtimes, but here I've definitely added it to all four parachain runtimes and the standalone. Could you take a look please?
See comment below regarding possibly cleaning up the cast into Balance
We have two instances of the reward pallet, once using VaultId as the RewardId for vault block rewards, one using AccountId for escrow rewards. Right now I'm just trying to get the VaultId one to work for starters, as it's also going to be the main one useful for simplifying the lib, but I think it would be good to have both available as RPCs - how would I define that? The naive way of just adding a second impl to the runtimes doesn't work, and I'm not familiar enough with the inner workings of substrate to figure out how to approach this.

Missing trait bound on RuntimeApiCollection - see this commit.
Missing cast on pallet to Rewards trait - see this commit.
Split compute_reward on RewardApi into compute_escrow_reward and compute_vault_reward - see this commit.


[FEATURE-REQUEST] Filtering produce and use query parameters

I feel that filter should produce an exchangeable URL, either for bookmark purpose or to send to someone, maybe we could use ex_sieve to achieve it:
https://github.com/valyukov/ex_sieve

This is implemented in master now. Got rid of datatables and had to reimplement almost all functionality from scratch. And this issue was resolved as a result. It's not as advanced as ex_sieve, but it does the job for now.

YESSSS !!! Thanks you


request: redesign remindme

[placeholder]

[x] doesn't use subcommands
[ ] cannot see details of 1 reminder
[x] duplicates of "subcommands"

Edited as #941 fixed most of this. Just pending being able to read the details of 1 reminder.


Vite says there is no module export for a library's library when there is

Describe the bug
I am trying to use @fluentui/react which calls @microsoft/load-themed-styles.
Whenever I yarn dev, I expect the server to start up, but I get this error in console

I have attached a small repro - but this was found while trying to migrate our larger webpack project to vite. I'm not sure if this is an issue with fluentUI or if something is wrong with my vite config. I have also tried removing typescript out of the equation but the issue persists
Reproduction
https://github.com/nottagg/fluent-vite-issue
Steps to reproduce
run "yarn dev"
Open the page
Open dev tools and observe the error in console
System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
    Memory: 24.23 GB / 47.71 GB
  Binaries:
    Node: 14.18.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 6.14.15 - C:\Program Files\nodejs\npm.CMD
  Utilities:
    Git: 2.40.1.
  Virtualization:
    Docker: 23.0.5 - C:\Program Files\Docker\Docker\resources\bin\docker.EXE
  SDKs:
    Windows SDK:
      AllowDevelopmentWithoutDevLicense: Enabled
      AllowAllTrustedApps: Enabled
      Versions: 10.0.22000.0
  IDEs:
    VSCode: 1.78.2 - C:\Users\{redacted}\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD
    Visual Studio: 16.11.33529.622 (Visual Studio Enterprise 2019), 17.5.33530.505 (Visual Studio Enterprise 2022), 17.5.33530.505 (Visual Studio Professional 2022)
  Languages:
    Bash: 5.1.16 - C:\Windows\system32\bash.EXE
    Go: 1.18.6 - C:\Program Files\Go\bin\go.EXE
  Browsers:
    Edge: Spartan (44.22621.1702.0), Chromium (112.0.1722.68)
    Internet Explorer: 11.0.22621.1

Used Package Manager
yarn
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

This is because of you setting resolve.mainFields: []. @fluent-ui/style-utilities expects module field to be used for resolving but module field won't be used because that option is set.


Support new jj config list key escaping

https://github.com/martinvonz/jj/pull/3728

Re-opening as #15 didn't actually fix this.


Natural Language Classifier code does not support standard version of the Bluemix service

The NLC wrapper code currently points to the experimental API endpoint instead of the standard endpoint and does not appropriately format create requests to use CSV training data.

related to #79. Already fixed


Calculation of remaining possibilites is incorrect

If the criteria for "remaining possible words" is that the possible words satisfy the already known information, then the current calculation is wrong.
The calculation has multiple deficiencies. It does not require that yellow letters be included, but it will (correctly) exclude them from being included at positions where they have already been tried. It also does not exclude gray letters where the same letter has been found in the correct place (hence being green). In that case, the player knows that there will be only one occurrence of that particular letter, but the calculation of remaining possibilities does not take that into account.
The net result is that the shown number of remaining possibilities usually is way higher than what is real (given that the player actually uses the known information correctly). Whether it is like this on purpose I don't know, but I'd have liked to see the real number of possibilities instead of the (most often) inflated number that it shows in the current version.
Here's an example game:
https://evancharlton.github.io/ordle/#/nb-no/2963
Let's say the player enters the word RISTE at the first line for this game. The game will now claim that there are 261 possible words left, by excluding the letters R and T everywhere, excluding I at position 2 and excluding E at position 5, and also requiring S at position 3. However, it does not require that I and E be present in the word, which I think it should have. If it had done that, it would have found the real number of possible words, which is just 4. That's a big difference to the 261 that the game claims.
The player now enters the word ISSEN at line number two. The game will now claim that there are still 120 possible correct words, by excluding the letters R, T and N everywhere, excluding I at position 1 and 2, excluding S at position 2, excluding E at position 4 and 5, and requiring S at position 3. The letter S should now be excluded everywhere except in position 3 (but the game only excludes it in position 2), and it should also require I and E to be present. Had it done that, it would have arrived at the correct number of possibilites, which is just 2 (not 120). The two remaining possible words are now DESIM and EKSIL, and if the player enters DESIM, the game will still claim 7 remaining possibilities, but in reality there is just one.

You're exactly right! This has been on my mind to fix for a while, but I haven't gotten around to it (obviously).
I'll rework this logic soon and make the logic better. Thanks for the detailed report with the reproduction steps included - it's very helpful! I've only noticed it while playing but never wrote anything down.

Great, that's much better than me having to manually build the regexes when I really want to know how many possibilites are left in a game.  Looking forward to the improved logic. Shouldn't be too hard to implement, I think.

I just pushed an update that should fix this -- please give it a shot and let me know if you find any bugs! Sorry it took so long; it took me longer than I'd like to admit to figure out a decent strategy for it!

I'll check it out. I also created my own offline application to do this for me (too impatient), and I can check your implementation against that (because I know it is pretty reliable).

It still doesn't work right, I'm afraid. For the game of today:
Ordle #4014
⬛⬛🟨⬛🟨
🟩⬛🟨🟨⬛
🟩🟩🟩⬛🟩
🟩🟩🟩🟩🟩
https://evancharlton.github.io/ordle/#/nb-no/4014
I started with RISTE again, where the S and the E turns yellow, and the game claims there are still 2216 remaining possible words. However, the correct number is just 374.
Then I wrote SLENG, where the S turned green, and the E and the N are yellow. The game claims that there are 175 remaining words, but the correct number is just 32.
I then wrote SENKA, where all letters are green except for the K, and there is just one remaining possibility, which is correct.

Yeah, I think that you got hit by a service worker cache or something. I should make that a better experience.
Thanks for the thorough testing!!

Seems there is a case you have missed:
https://evancharlton.github.io/ordle/#/nb-no/10150
Input RISTE at first line, and there will be 289 remaining possibilites, which is correct.
Then input TREGT, and it claims that there are 29 remaining. However, the correct number is 10.
I'm guessing the problem is that you don't eliminate all words with two T's in them. The correct answer does contain one T, but
in a different position to any of the two in TREGT.

Hei!
Sorry, I was offline for a bit. Thanks for the fresh (& detailed!) report - I'll take a look at fixing this one, too :)


RedditInvalidOptionException: that option is not valid

I'm having issues using authenticated endpoints, specifically Subreddit.Update(). I created my script app, and generated my refresh token using the provided oauth handler.
My code is something like this
var r = new RedditAPI(AppId, RefreshToken, AppSecret);
var subreddit = r.Subreddit("...").About();
subreddit.Sidebar = "Hello, world!";
try
{
  subreddit.Update();
}
catch (RedditInvalidOptionException e)
{

}

I've verified that r.Account.Me.Name returns the correct name, and that user is a moderator on the subreddit that I'm trying to update. Am I missing something?

It's difficult to say for certain from here, but I would start by checking your OAuth scopes to make sure you have the modconfig scope.  If you're lacking that, then the API will reject that endpoint while authentication itself still works.

No response in nearly 6 months so I'm closing this.  Please feel free to re-open if you're still having problems.


Added Android support

This pull request adds Android support to JDNS. A folder from the Firefox source code was taken to make compilation possible: http://dxr.mozilla.org/mozilla-central/source/other-licenses/android

I see Android support was added and it works for me.


Minor highlight hotfix

Solves issue #51 by making module end use names with the same colors

Well in that case there should be a way to change the color. The color is wrong, the naming is not.
Get Outlook for Android
On Tue, Apr 24, 2018 at 5:55 PM +0200, "Pedro Ricardo C Souza"<EMAIL_ADDRESS>wrote:
@pedro-ricardo commented on this pull request.
In syntaxes/fortran_free-form.tmLanguage.json:

@@ -3631,7 +3631,7 @@
"begin": "(?i)\s*\b([a-z]\w*)\b",
"beginCaptures": {
"1": {

  					"name": "entity.name.module.fortran"

It is because inside "use-statement": rule, on line 4427 it is written "name": "entity.name.class.fortran" this means that use will highlight the following name as class. And as issue #51 requested, module should  highlight the following name that same way as use does.
But It could be done the other way around. To just correct the "use-statement": rule to highlight the following name as module instead of class. I chose the previous because entity.name.module.fortran has the same color as non-highlighted text.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Well, the "use-statement": name is wrong, it should be entity.name.module.fortran not class as it is. I'll look how to add a color to this since it does not exist in VSCode themes.

I've been looking at this issue and the problem is that entity.name.module entry does not exist inside default VSCode themes, but entity.name.class does.
Example of Dark+ theme
		{
		"name": "Types declaration and references",
		"scope": [
(...)
	  	"entity.name.type",
		"entity.name.class",
(...)
		],
		"settings": {
		"foreground": "#4EC9B0"
		}

I don't think that customizing the theme is a good option ...

I am not suggesting you change the colour itself to a specific colour. If I understand correctly your objective is to make those keywords to have the same colour (no matter what that colour is specifically) so there should be a mechanism for that. But changing the name that identifies the syntactical meaning of the token to something else does not seems like the right thing to do.

I agree completely ... but although this entry entity.name.namespace is a valid scope naming, it still has no theme selector in VSCode.
Below i list the results of grep -Rin "entity.name" inside VSCode theme-defaults folder.
themes/dark_plus.json:9:                                "entity.name.function",
themes/dark_plus.json:23:                               "entity.name.type",
themes/dark_plus.json:24:                               "entity.name.class",
themes/dark_vs.json:60:                 "scope": "entity.name.tag",
themes/dark_vs.json:66:                 "scope": "entity.name.tag.css",
themes/light_vs.json:58:                        "scope": "entity.name.tag",
themes/light_vs.json:64:                        "scope": "entity.name.selector",
themes/hc_black_defaults.json:81:                       "scope": "entity.name.tag",
themes/hc_black_defaults.json:87:                       "scope": "entity.name.tag.css",
themes/hc_black.json:13:                                "entity.name.function",
themes/hc_black.json:27:                                "entity.name.type",
themes/hc_black.json:28:                                "entity.name.class",
themes/light_plus.json:9:                               "entity.name.function",
themes/light_plus.json:23:                              "entity.name.type",
themes/light_plus.json:24:                              "entity.name.class",

As you can see, there is no entity.name.namespace list there. Therefore inside VSCode it will be the same as entity.name.module or simply no highlight.
On default Dark+ theme, our extension(master branch) uses the following:

entity.name.function is yellowish and used to mark the name followed by  both function and subroutine keywords.
entity.name.type is green and used to mark the name followed by both type and class declarations
entity.name.class is green and used to mark the name followed by keyword use
entity.name.tag is blue and isn't used

To follow your thought (witch i completely agree) that:

We have to rely on the common scopes that for sure will be included in any decent theme.

I'm afraid those 4 above are our available common scopes

Just found another one:

entity.other.attribute-name is light-blue and currently not used

Seems like a generic scope name that makes more sense. Do you agree with this one for use and module names?

@pedro-ricardo I personally don't like that one very much as it is too generic. If you find a better scope name that can be used and does not have another meaning in Fortran then go for it. If you can't find any then I won't complain any longer
Regarding the entity.name.tag that you say is not used. I make me wonder if we are highlighting Fortran tags somehow?

In my opinion we should use the logic that's already implemented in the syntax file. And here is an example:
Function names are: entity.name.function.fortran
Subroutine names are: entity.name.function.subroutine.fortran
In this example we use entity.name.function because it is the scope we have and typify with subroutine.fortran that doesn't contribute to to the highlight but make it less generic.
Thinking that this scopes where not made for Fortran language, and that the C++ or Python Classes are the closest features from a Fortran module, I don't have any problem in using the scope entity.name.class and typify with module.fortran. Or use the previous entity.other.attribute-name and add module.fortran.
In the case you are still worried about the confusion with Fortran classes ...
Fortran classes are just a special derived type, and are highlighted as such, for example:
Derived Types declarations are: storage.type.type.fortran
Class declarations are: storage.type.class.fortran
The names of both types and classes are: entity.name.type.fortran
OK so ...  to END this once and for all, either choose one

entity.name.class.module.fortran
entity.other.attribute-name.module.fortran

or suggest a new one and I'll put it there. Let's move on :+1: :smiley:

Fill free to use the one that makes more sense to you. And go for it.
On Sat, Apr 28, 2018 at 10:45 PM Pedro Ricardo C Souza <
<EMAIL_ADDRESS>wrote:

In my opinion we should use the logic that's already implemented in the
syntax file. And here is an example:
Function names are: entity.name.function.fortran
Subroutine names are: entity.name.function.subroutine.fortran
In this example we use entity.name.function because it is the scope we
have and typify with subroutine.fortran that doesn't contribute to to the
highlight but make it less generic.
Thinking that this scopes where not made for Fortran language, and that
the C++ or Python Classes are the closest features from a Fortran module, I
don't have any problem in using the scope entity.name.class and typify
with module.fortran. Or use the previous entity.other.attribute-name and
add module.fortran.
In the case you are still worried about the confusion with Fortran classes
...
Fortran classes are just a special derived type, and are highlighted as
such, for example:
Derived Types declarations are: storage.type.type.fortran
Class declarations are: storage.type.class.fortran
The names of both types and classes are: entity.name.type.fortran
OK so ... to END this once and for all, either choose one

entity.name.class.module.fortran
entity.other.attribute-name.module.fortran

or suggest a new one and I'll put it there. Let's move on 👍 😃
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/krvajal/vscode-fortran-support/pull/53#issuecomment-385204272,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFoEefXxpIR1XZhlHyDEaRrAoaaXeLzuks5ttNTugaJpZM4TZ3lh
.

This PR fixes #57 as well

please do it in a separate pull request as this is not related to the current issue we are fixing.


fzchriha/network_socket

Description
Integrate Network Socket to LabGraph which will allow new devices to be automatically usable in LabGraph
Fixes #41
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Feature/Issue validation/testing
Please describe the tests [UT/IT] that you ran to verify your changes and relevent result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Unit Test / Integration Test (UT/IT) execution results

Logs

Checklist:

[ ] Have you added tests that prove your fix is effective or that this feature works?
[ ] New and existing unit tests pass locally with these changes?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

@jfResearchEng Hi Jimmy, I had questions about creating the network socket protocol, I'm trying to look at ZMQ for similarities but I would appreciate guidance in terms of what the functionalities needed for pysocket, and what kind of input (data structures) are being transferred