implement WOFF2 encoder/decoder

Hi all,
sorry if this has taken so long to share. I thought it was better to submit at least an incomplete draft, than risking to duplicate efforts with someone else, who may be also working on the same thing.
I decided to make a separate woff2 module instead of trying to fit it inside sfnt module, since it was too difficult to conciliate the many differences between the SFNT/WOFF1 and WOFF2.
The current version can create WOFF2 fonts which are compatible with the OpenType Sanitiser that ships in current browsers. However, as the WOFF2 specs and reference implementation are constantly changing, we may need to modify some aspects once those changes are implemented.
The encoder still doesn't support WOFF2 collections. I decided to wait until @behdad implements his new TTC API.
The woff2 module requires the brotli Python extension from https://github.com/google/brotli.
Please let me know what you think.
Thank you.
Cosimo

For those who wishes to test the woff2 encoder on Windows or OSX and don't have the developer tools required to build the Brotli extension, I've set up a Github repository which uses Travis and Appveyor to build pre-compiled Python wheels compatible with Python 2.7 and 3.4:
https://github.com/anthrotype/brotli-wheels/releases
To install a wheel, just download it and install it with pip.
For example:
pip install Brotli-0.1-cp27-none-macosx_10_9_intel.whl

So far, the supported Python versions and architectures include:

OS X 10.9 Python 2.7, "intel" architecture (system)

OS X 10.9 Python 2.7, "x86_64" architecture (homebrew)

OS X 10.9 Python 3.4, "x86_64" architecture (homebrew)

Windows Python 2.7, "win32" architecture (32 bit)

Windows Python 3.4, "win32" architecture (32 bit)

Windows Python 2.7, "amd64" architecture (64 bit)

Windows Python 3.4, "amd64" architecture (64 bit)

Cheers,
C.

Thanks @anthrotype!  I haven't checked the full patchset yet.  My one feedback so far is, I like to avoid adding more arguments to TTFont constructor and instead switch to a more sophisticated configuration system.  Something like yml, but ideally without requiring PyYML.  Such that, for example, user would control the padding by setting options['glyf']['compile']['padding'] = 2.  WDYT?

Very neat use of Travis and Appveyor BTW!  I wish I was more well-versed with them :D.

hey @behdad, thanks for you comments.
I don't know what exactly you have in mind about this YML-based configuration system. I guess that would allow more versatility in configuration options. I shall wait to see more examples of that, and see how I could adapt it to the woff2 encoder.
As for the glyph data padding, I understand your reluctance to add a new argument to TTFont's signature. The problem I'm faced with is the following -- /cc @khaledhosny @rsheeter.
In the latest Editors draft of the WOFF2 spec they decided to remove the ambiguous concept of "nominal size" which required encoders, among other things, to pad glyph data to multiples of 4 bytes.
However, both the WOFF2 decoder in the OpenType Sanitiser, and the reference implementation, still rely on the glyf table's origLength for allocating memory during the glyf reconstruction process. This means that, if fontTools doesn't add padding to the sfnt glyf table and set the origLength to the actual table length, then when one tries to load a WOFF2 font in Chrome or Firefox, the process will fail since the decoder, on the one hand, will read origLength strictly as the reconstructed table's dst_length, and on the other, will add padding to the reconstructed glyf table, hence exceeding the allocated length.
All this means that, until decoders expect the origLength to represent the "nominal size" of sfnt glyf table, the loca offsets will have to be padded to 4 bytes. So for WOFF2, this is not like a user's option, but rather a de facto requirement which arises from other "user agents" implementations.
The reason I decided to add a public padGlyphData argument and attribute to TTFont, is that by doing so I can generate a "normalised" sfnt font (e.g. with padded glyphs, without DSIG, etc.), and then compare this and the output of the WOFF2 decompression, thus making sure the two are bitwise identical.
Alternatively, I could have written in the glyf table module:
if ttFont.flavor == "woff2":
    # pad glyph data

but then I would not be able to pad glyph data for non WOFF2-fonts, for which flavor is None.
Of course, I'm happy to receive further suggestions from any of you.
Thanks again for taking the time to review the patch.
C.

I made a quick gist to exemplify the roundtrip test I was referring to:
https://gist.github.com/anthrotype/7372e958a459547d7ea5

OK, maybe an explicit "padGlyphData" attribute just to do a roundtrip testing was a bit too much -- and that test of mine was quite tautological...
So I decide to remove the TTFont argument. The glyf table module now simply checks if the font's flavor is "woff2" in order to decide whether to pad glyph data to 4 bytes or not.
If I want to test that the reconstructed glyf and loca tables are identical to the original ('normalised') ones, I can compare them directly, like in this gist:
https://gist.github.com/anthrotype/98dfa654be415a7d0cfc
There's no need to create a temporary sfnt font to do the comparison, because the only thing that actually changes are the tables that are subject to modifying transform; all the rest is guaranteed to be bitwise identical by the Brotli compressor.
C.

The woff2 encoder was always discarding the bounding box information in the original font (recalcBBoxes=True), but this could create problems with fonts which have non-standard bounding boxes (cf. a similar issue in the reference implementation https://github.com/google/woff2/issues/12)
I've patched it to follow the #conform-mustCalculateOmitBBoxValues conformance requirement.
Cheers,
C.

I just added some simple doctest strings to the helper functions (also discovered how tricky it is to make doctest play nicely with both python 2 and 3!).
I'm wondering if a full unittest may be required for the main reader and writer classes...

make check was aborting because the brotli extension is not installed on the Travis virtual machine.
I moved the "import brotli" statements away from the main module namespace, nesting them inside the methods which actually use the extension.
but perhaps the setup.py needs to be modified so that it builds brotli extension from a submodule.
What do you think?

and what about pypy? I haven't tested it yet, but I imagine the current brotli Python bindings will need to be adapted using CFFI or ctypes (or even rewritten in pure Python?).

I think you should just try to import brotli early on when encountering WOFF2 files and use its presence to decide whether WOFF2 can be supported or not. This way FontTools degrades gracefully when brotli is absent.

@khaledhosny I tried to do what you've suggested in 262c8612678d04e005497e34b81f7fcc21ea0a9b.
Also, I tried to build the current brotli extension under PyPy on Win, Mac and Linux, and all seems good: it passes both the compatibility and roundtrip tests (apart from a minor issue with the Windows PyPy, already fixed with https://github.com/google/brotli/pull/71).
The question remains as to how to meet this new installation requirement for fontTools.
Should brotli be imported as a git submodule in fontTools' repository, and the setup.py modified so that it tries to builds the brotli extension upon install?
Or should we leave WOFF2 support as optional for now, and just remind the users about where to download and how to build the extension (in the README.md maybe?)

Should remain optional imo.

@anthrotype i'm using your PR branch (along with brotli installed on osx 10.10) to subset about 25 vendor fonts. i.e. $ pyftsubset font.woff2 --unicodes="U+0370-03FF,U+1F00-1FFF". I get the following error on 50% of them:
fontTools.ttLib.TTLibError: reconstructed 'loca' table has wrong index format: expected 1, found 0

raised here. I don't have much font format expertise, but I'm happy to help however I can.

hey @jzempel
thanks for reporting this. It seems there is a mismatch between the reconstructed loca's indexFormat and the value which is encoded in the glyf table of the WOFF2 font that you are trying to read.
Could you please tell me the name of the font which cannot be decoded? And also whether the WOFF2 font was originally encoded through fontTools or through another WOFF2 encoder?
By the way, in your example you are trying to subset the WOFF2 font directly. I would suggest you to subset the original sfnt font (TTF or OTF) and use the --flavor=woff2 option to compress the result, provided you have a copy of the original uncompressed font.

@anthrotype i'm subsetting a bunch of different faces of proxima nova. The WOFF2 files were encoded by the provider.
Great tip on subsetting TTF => WOFF2. That ends up fixing my issue for all the fonts in question.

@jzempel I tried to fix the issue in 96ee22429e51ec683b7cc27b236d2406f293ac27
could you git pull and see if it works?
thanks,
C.

@anthrotype - thanks. That fixes all WOFF2 => WOFF2.subset fonts that I'm attempting.

@behdad Is this ready to land?

@behdad Is this ready to land?

Yes, mostly.  I need to find a couple of hours to understand and land it.

Yes, it's been working fine for me. Not sure if there are some additional tools to verify the generated files? Other then reading the file signature. Anyway, I had no problems so far, the generated files work as expected in the various browsers etc.

Is there any concern that the WOFF2 spec seems to be changing a bit — is this premature? Last edits to the working draft changed several things. I'm not following that mailing list, but perhaps better to wait until it hits CR to see if any more changes happen?

Regarding @benkiel's legitimate concerns, I'd like to point out that I have not followed strictly the old Working Draft from 2014, but I always tried to keep up with the Editors Drafts, as well as the discussions on the public-webfont-wg list and of course Google's reference woff2 implementation.
Therefore, the new Working Draft published early this month didn't come as a surprise.
The only major thing that is still missing is the support for TrueType Collections, which I deliberately put on hold (I hear @behdad is also working on a new TTC API). Anyway, no browsers currently support these fonts.
Apart from TTC, there still a couple of things in my woff2 encoder which may change once other implementations catch up with the spec:

the padding of glyph data inside glyf table to multiples of 4 bytes is no longer required, after the notion of "nominal size" was dropped from the WOFF2 specification (nor is it forbidden). The problem is other decoders still expect a "normalised" glyf table with 4-byte aligned local offsets (or at least 2-byte aligned in the case of OTS). My fontTools branch can decode glyf tables both with and without padding; the encoder however must produce a 4-byte padded glyf tables to avoid its fonts being rejected by browsers.

the spec says it is the responsibility of WOFF2 decoder to reorder the table directory alphabetically as per OpenType spec. Unlike SFNT or WOFF1, in WOFF2 the table directory must follow the same physical order in which the tables were encoded, as there are no explicit table offsets. The order can be any one an encoder finds most convenient -- except for the requirement that loca follows glyf, since the former can only be reconstructed from the latter. The reference woff2 encoder, for simplicity, just sorts the table alphabetically (ie. "l" follows "g"). There is a problem, however, in the reference decoder, as well as in the OpenType Sanitiser that ships in current browsers (but not the latest HEAD from @khaledhosny), whereby the decoder fails to decompress a WOFF2 font whose table directory/data is not already sorted alphabetically (I tried to address it myself here). So again, to avoid encoded fonts being rejected by browsers, I set the fontTools encoder to do this unnecessary table reordering.

Lastly, the WOFF2 fonts made with fontTools encoder would be 100% bitwise identical with those produced by the reference encoder, if it was not for a minor difference in the way fontTools and the reference implementation handle the compression of repeating flags inside glyph coordinates: when the current flag is the same as the last one, but the number of repetitions is only 1, fontTools prefers to simply append the second flag as is, whereas the reference implementation sets the "flagRepeat" bit in the preceding byte and encodes the number of repetitions (1). From my tests, it looks like repeating the flag value like fontTools does produces slightly better Brotli compression.
all best,
Cosimo

@benkiel changes are few, and always evaluated with careful consideration of impact on existing running code and on fonts in the wild. There is a list at
http://www.w3.org/TR/WOFF2/#changes
Some are clarifications, some are additions made to support Font Collections (previously known as TrueType Collections). And yes, we found a bug in OT Sanitizer (now fixed, but it needs to propogate) which caused valid fonts to be discarded.
The idea time to point out errors and omissions is now, not waiting until CR. The latest draft was published specifically to get final feedback before we go into CR. Chrome, Chrome for Android, Opera, and Firefox nightly are using WOFF2 now.

@Nantonos @anthrotype Understood completely. I didn't define my question well above. I was more wondering if it would be better to leave this branch unmerged into FontTools until CR, so that it was clear to users that WOFF2 was still somewhat in flux, rather then merge it now and have it feel more 'official' than it is.
This concern comes from the point of view of someone making self hosted web fonts for clients. Unlike a service that can rebuild WOFF2 files when the spec changes, convincing folks to update self hosted fonts when/if the spec changes is a greater cost of time/effort. I've learned, often the hard way, that fonts live long lives once sent to clients, so I tend to be conservative with things that have a high chance for changes.
I saw the issue with the OT Sanitizer and WOFF2, but had misread that it was caused by a spec change, not a bug. Admittedly, I've not been tracking the development of WOFF2 as close as WOFF, and had connected the OTS issue with the raft of changes I saw in the latest Editor's Draft of the spec. My apologies for this misconception, and I also think that my concerns with releasing WOFF2 fonts and the need of the Working Group to have tested implementations of WOFF2 are different issues that I didn't frame well in my initial question.

the padding of glyph data inside glyf table to multiples of 4 bytes is no longer required, after the notion of "nominal size" was dropped from the WOFF2 specification (nor is it forbidden). The problem is other decoders still expect a "normalised" glyf table with 4-byte aligned local offsets (or at least 2-byte aligned in the case of OTS). My fontTools branch can decode glyf tables both with and without padding; the encoder however must produce a 4-byte padded glyf tables to avoid its fonts being rejected by browsers.

So is this all about coming up with a "nominal size" that is large enough?  Then can't we just add 3 bytes per glyph to make sure?  Or do we really need to encode with padding?  Not that it really matters.  Just trying to follow the latest status of the issue.

the spec says it is the responsibility of WOFF2 decoder to reorder the table directory alphabetically as per OpenType spec. Unlike SFNT or WOFF1, in WOFF2 the table directory must follow the same physical order in which the tables were encoded, as there are no explicit table offsets. The order can be any one an encoder finds most convenient -- except for the requirement that loca follows glyf, since the former can only be reconstructed from the latter. The reference woff2 encoder, for simplicity, just sorts the table alphabetically (ie. "l" follows "g"). There is a problem, however, in the reference decoder, as well as in the OpenType Sanitiser that ships in current browsers (but not the latest HEAD from @khaledhosny), whereby the decoder fails to decompress a WOFF2 font whose table directory/data is not already sorted alphabetically (I tried to address it myself here). So again, to avoid encoded fonts being rejected by browsers, I set the fontTools encoder to do this unnecessary table reordering.

Thanks.  That's unfortunate.  Guess we can remove this later and try to find an order that works better for Brotli.

Lastly, the WOFF2 fonts made with fontTools encoder would be 100% bitwise identical with those produced by the reference encoder, if it was not for a minor difference in the way fontTools and the reference implementation handle the compression of repeating flags inside glyph coordinates: when the current flag is the same as the last one, but the number of repetitions is only 1, fontTools prefers to simply append the second flag as is, whereas the reference implementation sets the "flagRepeat" bit in the preceding byte and encodes the number of repetitions (1). From my tests, it looks like repeating the flag value like fontTools does produces slightly better Brotli compression.

Right.  While we can change that, I don't think that's a requirement, and slightly better Brotli compression sounds great to me.
I'm a bit confused though.  The glyf table transform throws away the flagRepeat bit and repeats flags individually and let Brotli take care of compression.  No?
I don't think the spec not being final is an issue given that many of use CC'ed on this issue also are involved in the changes going into the spec and the other implementations.

I'm a bit confused though. The glyf table transform throws away the flagRepeat bit and repeats flags individually and let Brotli take care of compression. No?

you're absolutely right. I was misled into thinking that the random size differences between the WOFF2 fonts produced by woff2_compress, on the one hand, and my fontTools woff2 encoder had to do directly with with the compressed flags' packing algorithm.
It turns out, the transformed tables produced by the two encoders are bitwise identical (despite the original sfnt glyf tables pack coordinate flags differently).
Using an hex editor, I verified that the only difference found when comparing the uncompressed "transformBuffers" of the two WOFF2 fonts (i.e. the actual data that goes in and out Brotli compressor) is, well... the head table's checkSumAdjustment -- and that's how it should be.
Anyway, the difference is negligible (around 28 bytes, for example, in the case of Roboto-Regular.ttf).

Why do we expect checkSumAdjustment to be different?

Because the original sfnt glyf tables use different coordinate flags, and their checksum will be different, and the checksum adjustment refers not to the WOFF2 font but to the original uncompressed sfnt font.

Ah, right.  Thanks.

So is this all about coming up with a "nominal size" that is large enough? Then can't we just add 3 bytes per glyph to make sure? Or do we really need to encode with padding?

We could. But.. I don't quite like this approach.
If one simply increments glyf.origLength += 3*numGlyphs without also padding the table with null bytes between glyphs, then technically we are lying about the size of the original table.
Besides, the calculated checkSumAdjustment in the head table would also change because of that (ok, hardly anybody cares about checkSumAdjustment, but still).
Anyway, I tried to make such a WOFF2 test font with "incremented" origLength, but with unpadded glyf table. I then decoded it with fontTools, ot-sanitise and woff2_decompress.
They all successfully decompressed such WOFF2 without any warnings. However:

woff2_decompress will write the wrong, incremented origLength to the glyf directory entry of the decompressed font. This means when one subsequently tries to decompile the resulting sfnt glyf table using fontTools, fontTools will raise a warning (not an exception), saying "too much 'glyf' table data";

both fontTools and ot-sanitise correctly update the sfnt glyf directory entry's length with the reconstructed length.

All in all, I believe it's better to actually pad the glyf table, at least temporarily, before other decoders are updated.
What they basically need to be able to do is writing the sfnt table directory at the end of the whole glyf reconstruction process, rather than at the beginning like they both currently do.

Thanks for the thorough investigation. :)

I noticed a bug in the woff2 encoder whereby private data was not being written to file. This would result in a reported length different from the actual file size. So I fixed that in the last commit https://github.com/anthrotype/fonttools/commit/065470c7c681b74219308d7ada97c883e6482316.
The problem is that git has found merge conflicts in the woff2 branch's ttLib/init.py.
So I'm forced to do a rebase on the tip of the current master, and fix each merge conflicts manually.
Sorry about that.

I haven't checked, but please make sure that the build scripts allow fontTools to build without any Brotli dependencies. Is that so?

@twardoch yes, Adam. I haven't changed the setup.py. Brotli is currently required only if one tries to instantiate the WOFF2 reader/writer classes.

OK, cool.

this branch contains too many merge conflicts. I shall close it now, and reopen as a new PR with one commit per file.


feat(radio-button): introduce radio button

Thanks @cal-smith for reviewing and spotting those typos!


Fix a bug for function valid_chain

please check out https://github.com/dvf/blockchain/pull/68

This has been fixed already


what db you have used in the project? postgres or MySql... I'm confused after seeing the code

We have used PostgreSQL. You can check the database folder for more information about the tables and the values used.


add GFG interview series paypal solutions

Description
Adding Geeksforgeeks Interview Series Paypal solutions with a detailed explanation of the problem, their solution, the idea to solve, test cases, and time complexity required
Fixes #11
Type of change

[x] New feature/solution added
[x] Contest solution added
[x] This change requires a documentation update
[x] Documentation/readme Update

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have updated the readme with tick in question in appropriate language.

Thank you for your contribution!


#654 preventDefault if the form is not valid

always preventDefault if the form is not valid.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Raymans Peng seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

same fix from #682


ytfzf: 2.4.0 -> 2.4.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/ytfzf/versions.
meta.description for ytfzf is: "A posix script to find and watch youtube videos from the terminal"
meta.homepage for ytfzf is: "https://github.com/pystardust/ytfzf"
meta.changelog for ytfzf is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.4.1 with grep in /nix/store/sxj51ijr6lvidph2qvik7rla6591n0gn-ytfzf-2.4.1
found 2.4.1 in filename of file in /nix/store/sxj51ijr6lvidph2qvik7rla6591n0gn-ytfzf-2.4.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
ytfzf

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/sxj51ijr6lvidph2qvik7rla6591n0gn-ytfzf-2.4.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A ytfzf https://github.com/r-ryantm/nixpkgs/archive/4b200c342c93763ff1dff821caa1af444573bcb2.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/sxj51ijr6lvidph2qvik7rla6591n0gn-ytfzf-2.4.1
ls -la /nix/store/sxj51ijr6lvidph2qvik7rla6591n0gn-ytfzf-2.4.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

ytfzf

Maintainer pings
cc @dotlambda for testing.

nixpkgs-review builds fine and program works too. LGTM


Feature Request - Import following.js from Twitter

as many people may have deactivated Twitter accounts before joining bluesky, they may have exported the following.js.
If it were possible to do lookups against the Twitter account IDs in the file and then do something similar to your existing capability, that would be great.
Thanks,
Fred

Thank you for your feature request! I think it's a great idea and I would like to develop it.

Hey! Just checking in to see if you had any time to invest into this. Many people deleted their accounts on X or wiped their follow list. This feature would be a game changer for them! Thank you for your beautiful tool!


ArrayBuffer Exception

Thanks for the library @hongfaqiu. I have an issue that when i try to upload tiff file, it does not show up and then a few seconds later RangeError: Array buffer allocation failed error is thrown. How can i fix this?

@aspandaburkut Is the TIFF file you added a native TIFF file, and what is its size? This error may occur because the resolution of the added TIFF image is too high, exceeding the memory that the browser can allocate.
It is suggested to convert it to COGTIFF and then try adding it again.

@hongfaqiu I'm exporting data from SASPlanet as both GeoTIFF and COGTIFF format. My resolution is 264193x102094 for 15 zoom levels and I use ZIP compression of 6 levels and number of tiles is 1033x400 (413200).

@aspandaburkut Could you provide a sample data? I will fix this issue when I have time next week.

@hongfaqiu Here it is sample data. But it is only there for 1 week. https://we.tl/t-QPjnlFZtHT

@hongfaqiu Here it is sample data. But it is only there for 1 week. "https://we.tl/t-QPjnlFZtHT"

Copy that!

Hi @hongfaqiu, did you have any time for fixing the issue? I've been through a deep searching phase but I couldn't make any progress. Thank you in advance for your return.

Okey, thank you for interest @hongfaqiu . I'm waiting for your response, have a good day.

Okey, thank you for interest @hongfaqiu . I'm waiting for your response, have a good day.

@aspandaburkut I'm sorry for the inconvenience. Today has been very busy for me, and I have to postpone once again. Perhaps next week I will have some time. The data you sent me last time is on my work computer, and I am unable to debug it from home.

Thank you, I've sent sample data again. You can redownload when you are free. The link is "https://we.tl/t-ZTkil9Mq7w"

@aspandaburkut
I opened these two TIFF files in QGIS (which took several minutes), and it turns out they are both raster images.

I suggest publishing the results of image registration like these as TMS (Tile Map Service) tiles to achieve the fastest request speed.
If you need to load these two TIFF files on the web, I recommend converting them to COG (Cloud-Optimized GeoTIFF) format and adjusting the tileSize to be below 1024. The error you encountered is likely due to the current low number of levels and the oversized tileSize.

@hongfaqiu Thank you for helping, have a nice day.


MediaSource callbacks

Describe the Bug
When MediaSource set_onsourceopen is called ready_state() returns __Nonexhaustive instead of Open
Steps to Reproduce

Register callback

let callback = Closure::wrap(Box::new(on_source_open) as Box<dyn Fn(&MediaSource)>);

media_source.set_onsourceopen(Some(callback.into_js_value().unchecked_ref()));

Log ready state in callback

fn on_source_open(media_source: &MediaSource) {
    #[cfg(debug_assertions)]
    ConsoleService::info(&format!("Ready State => {:?}", media_source.ready_state()));
}

Expected Behavior
When onsourceopen callback is called ready_state() should already be Open.
Actual Behavior
When onsourceopen callback is called ready_state() returns  __Nonexhaustive.
Additional Context
Using Brave browser Version 1.17.73 Chromium: 87.0.4280.67 (Official Build) (64-bit)
Also, hooking a button to log ready_state() returns Open. It seams that the timing is borked.

Is this perhaps a bug in our WebIDL? Perhaps browsers have changed and/or updated in the meantime and we need to add some new variants?

Did some research and W3C specify only 3 variants. The source also specify the same. Also looked up rust nonexhaustive and it is used to force lib users to account for future addition to Enums.
Conclusion, I really don't know where that __Nonexhaustive is coming from...

This is injected by the wasm-bindgen attribute to handle unknown variants. If possible you may want to try to add logging there or otherwise recreate this in JS if you can to see what the string is.

Well I was wrong! There is no bug. For posterity, be careful what you drop. Rust automatically drop things when they go out of scope. If you drop mediaSource or sourceBuffer it will obviously throw errors.


Segmenetation fault while training deeplabV3 on cityscapes

Hi
I am following your tutorial for training deeplab, can you help me with this segmentation fault, please.
here is the command I'm using for training:
python3 train.py \
    --logtostderr \
    --training_number_of_steps=5000 \
    --train_split="train_fine" \
    --model_variant="mobilenet_v3_small_seg" \
    --decoder_output_stride=16 \
    --train_crop_size="513,513" \
    --train_batch_size=2 \
    --dataset="cityscapes" \
    --save_interval_secs=300 \
    --save_summaries_secs=300 \
    --save_summaries_images=False \
    --log_steps=100 \
    --train_logdir=/home/rahbinsanat/amir/tensorflow-github/research/deeplab/datasets/cityscapes/exp/train_on_train_set/train \
    --dataset_dir=/home/rahbinsanat/amir/tensorflow-github/research/deeplab/datasets/cityscapes/tfrecord

Here you can see the error while starting queues:
I0905 11:47:48.102874<PHONE_NUMBER>67712 learning.py:768] Starting Queues.
Fatal Python error: Segmentation fault

Thread 0x00007fea357fa700 (most recent call first):
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1443 in _call_tf_sessionrun
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1350 in _run_fn
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1365 in _do_call
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1359 in _do_run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1180 in _run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 956 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/training_util.py", line 68 in global_step
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/saver.py", line 1149 in save
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/supervisor.py", line 1119 in run_loop
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/coordinator.py", line 495 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 926 in _bootstrap_inner
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 890 in _bootstrap

Thread 0x00007fea35ffb700 (most recent call first):
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1443 in _call_tf_sessionrun
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1350 in _run_fn
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1365 in _do_call
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1359 in _do_run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1180 in _run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 956 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/training_util.py", line 68 in global_step
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/supervisor.py", line 1081 in run_loop
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/coordinator.py", line 495 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 926 in _bootstrap_inner
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 890 in _bootstrap

Thread 0x00007fea367fc700 (most recent call first):
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1443 in _call_tf_sessionrun
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1350 in _run_fn
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1365 in _do_call
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1359 in _do_run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1180 in _run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 956 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/supervisor.py", line 1045 in run_loop
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/training/coordinator.py", line 495 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 926 in _bootstrap_inner
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 890 in _bootstrap

Thread 0x00007febde7fc700 (most recent call first):
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 296 in wait
  File "/home/rahbinsanat/anaconda3/lib/python3.7/queue.py", line 170 in get
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/summary/writer/event_file_writer.py", line 159 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 926 in _bootstrap_inner
  File "/home/rahbinsanat/anaconda3/lib/python3.7/threading.py", line 890 in _bootstrap

Thread 0x00007fec1bbb4740 (most recent call first):
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1443 in _call_tf_sessionrun
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1350 in _run_fn
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1365 in _do_call
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1359 in _do_run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1180 in _run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 956 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/contrib/slim/python/slim/learning.py", line 490 in train_step
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/contrib/slim/python/slim/learning.py", line 775 in train
  File "train.py", line 456 in main
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/absl/app.py", line 250 in _run_main
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/absl/app.py", line 299 in run
  File "/home/rahbinsanat/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/platform/app.py", line 40 in run
  File "train.py", line 462 in <module>
Segmentation fault (core dumped)```

https://github.com/tensorflow/models/issues/8365

tensorflow/models#8365

Thanks for the repository and your help.


Notes out of range cause other notes on the same tick to skip playing.

I am not sure if this should be reported here, or at Magenta. But when you have a song playing that has notes out of range, any other notes on the same tick / vertical slice are also skipped even though they are valid and have valid sound files.
This was reported to me by a user that noticed the issue. We then tested by removing the out of pitch notes and now the other notes on the same tick / vertical slice play correctly.
The Inspector Console does make note that it detects notes out of range:
SoundFont  Pitch 26 is outside the valid range for Lute (28-100)
But when it actually gets to the note it produces this error and causes all notes on the same tick to skip, even the valid ones:
Defaults.ts:122 Uncaught Error: buffer is either not set or not loaded
    at Xn (Defaults.ts:122)
    at Go.start (index.ts:116)
    at N.playNote (jsdelivr-separator.js:1)
    at T.playNote (jsdelivr-separator.js:1)
    at q.playNote (jsdelivr-separator.js:1)
    at ia.callback (jsdelivr-separator.js:1)
    at ia._tick (index.ts:116)
    at sa._tick (index.ts:116)
    at zo.invoke (index.ts:116)
    at index.ts:116

It produces an error print for each note out of range, Which I think is part of the issue on why it is skipping valid notes to instead of only ignoring the out of pitch notes.

I kind of wish we had an attribute that would just let us completely skip reading out of pitch notes so they don't show on the visualizer either. But the real need here is to not skip valid notes if they are on the same tick as an out of range note pitch.

Yes, this is definitely a Magenta.js issue and I think I've already encountered it too. Unfortunately there is not much we can do about it here. Which pitches are valid depends on which SoundFont is used. And if the oscillator-based synth is used (i.e. without sound-font), all pitches should be valid.
It seems like it should be easy to fix that in https://github.com/magenta/magenta-js/blob/master/music/src/core/soundfont.ts
The code is already trying to remove the invalid pitches, but it looks like there might be a bug in that.

And as a general rule, whenever you have a problem with a specific MIDI file, you can try uploading it e.g. to the Magenta visualizer demo. If you get the same error there, it's most likely a Magenta.js issue.

Ah ok,
I will report it there then as well. And yes, this is a Custom Soundfont I am making actually so I know all of the exact pitch ranges of the instruments. I just wasn't sure if it could be 'worked around' here on your end or not. But no worries, I will report it there.

Reported it here:
https://github.com/magenta/magenta-js/issues/581

Should be fixed now after upgrading to<EMAIL_ADDRESS>


Update OpenEye installation to unified build

OpenEye no longer provides ubuntu 12.04 builds. This switches to the new unified linux-x64 builds.

Work in progress. Not merging this until builds are fixed.

Builds are crashing because of the AmberParser bug. #235

The failures in the build are expected. I'm going to merge this.


adds new modalities

resolves #218
also runs the linters

@saskiad can we add these now and handle adding long names in a separate PR.  This will impact our data entry form, I think, so will take some care to do properly.


Add a new favorite.

Description
As a user, I would like the system to allow me to save a learning path as a favorite.
Acceptance criteria

A course must have a section with a button that allows users to add it to their favorites list.

Create or navigate to an existing learning path.
Locate the "Add to Favorites" button in the course section.
Click the "Add to Favorites" button.
Verify that the learning path is added to the user's favorites list.
Refresh the page or navigate away, then return to confirm the learning path remains in the favorites list.

Validation Criterion:
The system correctly adds the learning path to the user's favorites list and retains it across sessions.


Frivolities

@BlueFlo0d Excellent work, this is really impressive!
It will be a great improvement over the existing hook system in Nyxt!
I've addressed a bunch of frivolities in this patch.  Can you have a look and let me know what you think?

Thanks! I've added some frivolities on frivolities. After they're fixed it should be all good.

Sorry, what have you added?

Sorry, what have you added?

Are the "reviews" visible to you? Just 2 minor fixes.

They are not, you should press the "Submit review" button (or something like that).

Updated!


APEXMALHAR-2304 SQL Support Examples

This is example for newly added SQL support in apex-malhar.

@tweise Please review and merge.

I wonder if it is possible to reduce repetitive boilerplate populateDAG code so that it looks more like run(sql)? Otherwise this looks rather complicated to a user.

@tweise The examples mentioned in this are for using the existing APIs of malhar-sql.
Its very much possible to reduce boilerplate code... That's part of APEXMALHAR-2293... This is being worked on now.
Once this is done, one could use only SQL to execute the DAG in following 2 ways:
1.
public void populateDAG(DAG dag, Configuration conf)
{
runSQL(dag, conf, );
}

Input can be a file where only SQL statements can be mentioned to a command line utility and then the cmdline utility will launch the DAG.

@tweise Can you review and merge?


Crash happened at:com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.onDraw(SubsamplingScaleImageView.java:1010)

Canvas: trying to use a recycled bitmap android.graphics.Bitmap@2abda1a1                                                                 java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@2abda1a1                                                                     at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1225)                                                                     at android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:589)                                                                     at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.onDraw(SubsamplingScaleImageView.java:1010)                                                                     at android.view.View.draw(View.java:16209)
I use this lib like below:
Glide.with(this).load(mGalleryItem.getStanderImageUrl()).asBitmap().into(new SimpleTarget<Bitmap>() {             @Override             public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {                 mThumbBmp = resource;                 mIv.setImage(ImageSource.bitmap(resource));             }         });
when I finish this Activity and turn in this Activity again and again whth loading the same picture,crash happened.
This happened on Samsung Note 4,android 5.0.1

Use ImageSource.cachedBitmap instead of ImageSource.bitmap

Happened to me with ImageSource.cachedBitmap

I see it with ImageSource.cachedBitmap as well. @gurnisht Were you able to find a solution to your problem?


Peer-to-Peer Code Review

Suggestion for improvement

Title  of work section where animation should be slower,

Nice job for the project, Project well organized  on the following section

Header  is organized and align well
name section is well aligned
professional footer designed

Nicely done !


[Tour of beam] [Task] Scrolling through learning materials is broken when hint is present

What needs to happen:
Looks like scrolling through learning materials is broken when Hint button is displayed. Need to fix scrolling.
Issue priority:
P3
Components:
tour-of-beam

.take-issue

This was fixed in January in the https://github.com/apache/beam/pull/25298 branch.


Add List Widget

TODO:

[ ] Unify Widget implementations by having a list iteration trait

Will make a list after the weekend.

OK. I have commited the changes to unify List implementations using the trait. I am not sure if this is approach that Raph was suggesting in the comment. So I am open to any feedback :)
The current solution doesn't seem to be that flexible. I couldn't even completely implement the trait for list with shared data...

OK. I have commited the changes to unify List implementations using the trait. I am not sure if this is approach that Raph was suggesting in the comment. So I am open to any feedback :)
The current solution doesn't seem to be that flexible. I couldn't even completely implement the trait for list with shared data...

Thanks! I will merge this tomorrow.
I agree that having at least this version of List widget in druid is important.


Unable to change the colour of the search-buttons

Package version (if known): version-v9.0.0.rc1 (there where also issues in v8)
Describe the bug
Somehow, it looks like I'm not able to change the colour of the search-buttons.
Steps to Reproduce
Based on this line: https://github.com/inveniosoftware/invenio-app-rdm/blob/716b768447611fd7567133fb7349d91966c35d04/invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.variables#L26
I tried various combinations.

Add the following to my-site/assets/less/site/globals/site.variables
Version 1: @searchButtonColor: #97BF0D;
Version 2: @searchButtonColor: #97BF0D !important;
Version 3: @secondaryColor: #97BF0D;
Version 4: @secondaryColor: #97BF0D !important;

Do not see any changes of the search-buttons:
For example:

Expected behavior
The button should have this green

Additional context

in v8 the colour changed but not to the colour that we expected:

in v7 everything did work as expected
other changes like changing the primaryColor, brandColor, navbarBackgroundColor do work

fix provided in v9.0.1

@chriz-uniba So did you manage to change the color in the end? And how? I still can't set @searchButtonColor no matter what I try.

@Herrner, we have a nasty nasty hack which was created on v9.0.0.rc1 or v9.0.0 and is not yet cleaned up:
Current setup:
invenio-app-rdm 9.0.3
site.variables
@unibaGreen0: #97BF0D;
@secondaryColor: @unibaGreen0;
@searchButtonColor: @secondaryColor !important;

site.overrides
.ui.search.button {
  background-color: @secondaryColor !important;
}

If I remember correct this worked even before the fix in v9.0.1 - but I'm not sure about that.
I think the ugly site.overrides part did the trick, but since we knew that it was a bug, we stopped there and where happy that our button was green. --- Or we waited for the changes in v9.0.1 and saw that it worked with the last tested version and didn't clean up so far...

We will need to come back to that in the next round of upgrades (likely v9.1).

Also related: https://discord.com/channels/692989811736182844/839598022760857640/980727321986232411

Your hack is actually less ugly than mine (overwriting the style inline, including !important), so I will probably hack something similar and wait until changing @searchButtonColor actually does what it is probably supposed to do. I think there are too many !important statements in the css foodchain anyways...

@Herrner in v9.1 I'm able to set the search button colour as follows:
in site.variables
@unibaGreen0: #97BF0D;
@searchButtonColor: @unibaGreen0;


Add data about span insights for the Jaeger UI

To display insights in Jaeger UI for each span plugin needs to provide additional payload in message.
API changes:

Message names have been replaced to avoid confusion and be more accurate to the their current behaviour:

GET_SPANS_WITH_RESOLVED_LOCATION -> GET_SPANS_DATA
SET_SPANS_WITH_RESOLVED_LOCATION -> SET_SPANS_DATA

SET_SPANS_DATA message payload should be the following:

{
    [spanId]: {
      hasCodeLocation: boolean,
      insights: { type: string, importance: number }[],
    },
    ...
}

Example:
{
   "2e55147853e81b6e": {
      "hasCodeLocation": true,
      "insights": [
         {
            "type":"SpanDurations",
            "importance":2
         },
         {
            "type":"SlowEndpoint",
            "importance":5
         },
         {
            "type":"SlowestSpans",
            "importance":7
         },
         {
            "type":"Errors",
            "importance":2
         }
      ]
   },
   "3a53147854e11c6a": {
      "hasCodeLocation": false,
      "insights": []
   }
}

Dev noted:
We should show all insights related to the span, currently in the backend we are getting only high-importance insights so this filter should be removed.

@kshmidt-digma @shaykeren @doppleware
See PR:
add data about span insights jaeger
questions:

can there be no insights for a span?
I mean that getInsights returns empty list.
see here:
JaegerUIService

I filtered Unmapped insights from getInsights, is that ok?
see JaegerUIService

can there be more then one insight with same type for a span? if not then we don't need this distinct function:
distinctByType

Sometimes there are two trace buttons that want to show the same span+traceId, for example in method OwnerRepository#findPetTypes


Catchment Characteristics

Working off of Mike W's dataset available for review in ScienceBase: https://www.sciencebase.gov/catalog/item/5669a79ee4b08895842a1d47
Some basic aspects of the data:

The dataset has characteristics (data) for every comid catchment in the NHDPlusV2.
Catchments can have one or more of — local catchment characteristic, total drainage area characteristic, divergence routed drainage area characteristic, or dominant characteristic.
Some characteristics will actually be represented as time series.
Most characteristics will have ‘dimensionality’ flattened out/denormalized into their variable names. This includes seasons, time series of length less than 10, dataset categories such as landcover classes, etc.

General Notes:
As far as the NLDI is concerned, each of the characteristics should be attached to a COMID and exposed as is applicable.
For now, we will set aside the time-series characteristics. They need to be exposed as time-series objects and will need a bit different handling.

Single Local Catchment. Should expose local catchment characteristics.
Navigate/UT query without distance (basin) query. Should expose total drainage area characteristic.
Basin query with ‘divergence routed characteristics’ flag set to true. Should expose divergence routed drainage area characteristic.

Each characteristic can be organized in a dataset and each dataset can be organized in a theme.
Each characteristic has an ID, a description, and units.
Each dataset has a title, a science base item, and a theme.
DRAFT Web API Idea (Edited 10-31-2016)
/{featureSource}/{featureSourceId}/
returns known feature information including the geometry, url for navigate, and basin methods.
/{featureSource}/{featureSourceId}/navigate/UT/basin or... /{featureSource}/{featureSourceId}/basin
returns the polygon for the total upstream basin and the .../chars option.
/{featureSource}/{featureSourceId}/.../chars (chars applies to featureSourceID's catchment or the basin function)
Returns urls for ...chars/all, ...chars/meta, or chars/{filter}?
/{featureSource}/{featureSourceId}/.../chars/meta
returns a list of available characteristics that has a bunch of useful information for a client to build a list and/or point to additional metadata.
The characteristics metadata table would include fields such as:
Characteristic ID, Characteristic Description, Characteristic units, Theme Label, Theme URL, Dataset Label, Dataset URL.
/{featureSource}/{featureSourceId}/.../chars/all
returns all characteristics
/{featureSource}/{featureSourceId}/{watershedType}/chars/{filter}
returns catchment characteristics for the selected catchment.
/{featureSource}/{featureSourceId}/{watershedType}/chars/{filter}?diverted=T/F
divergence routed characteristics available using the diverted flow flag.

Three relevant gists written in R:
Download all the data
https://gist.github.com/dblodgett-usgs/5b2e0f4cc025ea5100ec0979272f31c5
Cleanup Metadata and comb ScienceBase
https://gist.github.com/dblodgett-usgs/045a85a270006d149ccdeb72fa08d990
Parse Apart all the Metadata
https://gist.github.com/dblodgett-usgs/7fe1a8625f94212d364a738f5c9ed121
Also, a note for later, pgfutter command to load this data looks like:
           DB_HOST="localhost",
           DB_PORT="5432",
           DB_USER="dblodgett",
           DB_SCHEMA="cat_atts")
#./pgfutter --user "dblodgett" --db "nldi" --schema "test" csv ECOL3_ACC_CONUS.TXT ```

For data management, I'd propose addition of four tables to the NLDI database.

metadata table
local catchment characteristics
aggregate upstream characteristics
divergence routed characteristics

Probably add a new schema called characteristics and put the tables in there.
One question is what the table columns should be. The data is currently in wide format but I would imagine a long format would be better for the database. I think using the same data type for the value will be OK, but I should verify that a float is reasonable for all of them. There's a chance we'll need to handle categorical values, in which case we'll probably have to have seperate tables.
I'm thinking:
comid, attribue, value

Should probably not default to total drainage area. Total drainage area may be appropriate for some questions, but it's really not the answer for other questions. If a question has to do with something that scales with streamflow, you probably want divergence routed. However, we don't know all the divergences or how much water is flowing through them all the time.

Making good progress on variable / metadata reconiliation. The script here: https://gist.github.com/dblodgett-usgs/a0a08a35c1d050ca7601fcdbd92a4a9c
shows all the corrections that needed to be made to get things in order.

Streamstats dev documentation for similar services is here: http://ssdev.cr.usgs.gov/streamstatsservices/#

Closing this ticket for now. Will open a new one summarizing outcome of several threads based on this.


DECIMAL TO BINARY CONVERSION USING STACK IN C

DECIMAL TO BINARY CONVERSION USING STACK IN C
🚀 Feature
Have you read the Contributing Guidelines on Pull Requests?
Yes !
AIM :: DECIMAL TO BINARY CONVERSION USING STACK IN C
Motivation
As i didn't found DECIMAL TO BINARY CONVERSION USING STACK IN C, So i am willing to contribute it...
Pitch
Hi I am GSSoC'21 participant,
"I am looking to work on the DECIMAL TO BINARY CONVERSION USING STACK IN C"
I will write the clean and optimized code , by keeping best case time and space complexity in mind and
I will use C language.

/assign

@ankitaggarwal23 I have done all the changes as directed by you
please review :)


vscode.workspace.getWorkspaceFolder returns undefined for notebook cells

vscode.workspace.getWorkspaceFolder returns undefined when passed a notebook cell URI of a cell in a notebook that is in a workspace folder. getWorkspaceFolder returns the correct folder if the scheme of the cell is replaced with file. E.g., vscode.workspace.getWorkspaceFolder(uri.with({ scheme: 'file' })). Is this expected? Shouldn't the cell document be considered part of the folder?

Yes, the method is meant for files of the workspace only, not cells.

The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our issue reporting guidelines.
Happy Coding!


Add volumes and volume rates to planetary interaction schematics

Like the old site did:

https://github.com/autonomouslogic/eve-ref/pull/543


Add Rubocop and try to make it happy

Rubocop is added to the Gemfile. Just about all the low-hanging fruit
is gone, leaving—by and large—LineLength and AbcSize errors.
Closes #54

I've deployed this to stage and it (shockingly) appears to work fine.


Mock JSONP request

Is there any way to mock JSONP request?
Some time ago I also posted a Stackoverflow question about it.

I just took a look at your StackOverflow question. I'm not very familiar with Redux and how it uses JSONP but nock has no built-in capabilities to serve JSONP (yet). I'm noting this as a feature request. If you would like to try your hand in writing a pull request for this feature, it would be more than welcome.

Thanks for your response. Yes it is a feature request. That is right it is a general feature and not directly related to redux. I will do my best to find time for this.


update library to publish metrics to the spectatord sidecar

Overall, I am pretty happy with the state of this now.
TODO: develop the experience for enabling debug logging


Colored wide_msg

I found that color not works with wide_msg.

I seem to be running into the same issue, why did you close this?


Dose the search-guard is available for ES 2.1.1

My ES version is 2.1.1, when i settled the search-guard plugin  by the "bin/plugin install com.floragunn/search-guard-ssl/<IP_ADDRESS>" , the result tell me can not successfully DONE.
the result information is:
ERROR: Plugin [search-guard-ssl] is incompatible with Elasticsearch [2.1.1]. Was designed for version [2.1.0]
this means there is not right version of search-guard for ES 2.1.1 ???

There is also a version for 2.1.1, pls see https://github.com/floragunncom/search-guard-ssl/tree/2.1.1

sudo bin/plugin install com.floragunn/search-guard-ssl/<IP_ADDRESS>

ok thank you !  i will try this for testing.

@floragunncom Will search-guard-2(currently alpha) plugin be ES 2.1.1 compliant(currently not)?

@floragunncom  is there right version of search-guard for ES 2.1.1 ?  My above question only means search-guard-ssl, but i also want to use the search-guard for my ES 2.1.1.  thank you

Search Guard 2 Alpha-2 is now also available for ES 2.1.1
https://github.com/floragunncom/search-guard/tree/2.1.1

Pls. look also on our new Twitter account for updates or send us a tweet/DM if you have questions: https://twitter.com/searchguard


mktemp: wrong prefix verification

Discovery
I started testing uutils/coreutils using the AUR package from coreutils-hybrid, it merges the uutils packages with the ones missing from the standard GNU . I use dracut to resolve the initframes, however when I updated the kernel and the initframes would be recreated I got the following error:
dracut: mktemp -p '/var/tmp/' -d -t dracut.XXXXXX failed.

I checked and found that the mktemp package came from coreutils and that it was already available in uutils.
Issue
Let me tell you that I don't program in Rust, not so much in C. Checking the code of both versions I realized that maybe the author of the code checked the prefix after the join with the path.
Solution
What I did was change the check to prefix only. Passed the tests and apparently everything is ok.
+ // Check that the prefix is valid.
+ let prefix_of_template = Path::new(prefix_from_template).display().to_string();

+ if options.treat_as_template && prefix_of_template.contains(MAIN_SEPARATOR) {
    return Err(MkTempError::PrefixContainsDirSeparator(options.template));
}

[NOTICE]: I'm from Brazil, it's Carnaval, so maybe I won't respond so quickly 🥳 🍺 🏖

Here is the call that caused the issue with Dracut, after patching my machine everything is ok:
https://github.com/dracutdevs/dracut/blob/master/dracut.sh#L1245

please replace your screenshot by text.
Screenshots are terrible for:

search
accessibility
thanks

I was able to reproduce the issue from the screenshot:
GNU mktemp:
$ mktemp -p . -d -t dracut.XXXXXX
./dracut.LiEl2D

uutils mktemp:
$ ./target/debug/mktemp -p . -d -t dracut.XXXXXX
./target/debug/mktemp: invalid template, 'dracut.XXXXXX', contains directory separator

Good bug find. The mktemp behavior has been tricky to get right.


fix: include Promise 4.0 in source code

The code that re-exports Promise 3.x from Roblox-TS causes compatibility issues because Lapis expects Promise 4.0.
This pull request includes a copy of Promise 4.0 in the source code and reverts some changes that removed TestEZ tests.
✏ Notes

❌ Removed the prepublishOnly compile script because compiling is no longer necessary. References to out have been replaced with src. 8c38d70f71f42ddc8c3c2e6fe214d68ff5751ab6
🧪 All TestEZ tests passed and these changes seem to fix the problem when testing with yarn pack.

I've been working on this myself, so I'll close this PR and push my changes. Thanks again for contributing!


[WIP] Move back sourceCompatibility/targetCompatibility

see #82

No, this doesn't work.

Since I don't have JDK1.7 environment, I want someone to test this fix. Unless the test is ok, I won't remove [WIP] from title.

Just tested! Thanks!


Make CommonJS import preserve chained expressions

Summary
This is a follow-on to #17203 which handled harmony imports.  This PR handles commonjs imports.  This chained expression handling is required for Closure Compiler operation in ADVANCED mode.  Fixes #17723.

🤖 Generated by Copilot at b14922c
This pull request refactors the code generation and dependency handling of webpack for commonjs and harmony imports with chained ids. It introduces a new utility function getTrimmedIdsAndRange in lib/util/chainedImports.js to simplify and unify the logic for trimming ids. It also updates and adds test cases to verify the output quality and coverage.
Details

🤖 Generated by Copilot at b14922c

Refactor the logic for trimming ids from different types of dependencies into a separate module and a common function getTrimmedIdsAndRange (link, link, link)
Add a new parameter idRanges to the CommonJsFullRequireDependency constructor and the related hook handlers, and make it optional for backward compatibility (link, link, link, link, link, link)
Update the serialization and deserialization logic of the CommonJsFullRequireDependency class to include the idRanges property (link, link)
Update the apply method of the CommonJsFullRequireDependency class to use the getTrimmedIdsAndRange function and the idRanges property for computing and replacing the trimmed ids and range (link, link)
Update the chainHandler and callChainHandler functions in the CommonJsImportsParserPlugin class to pass the idRanges parameter to the CommonJsFullRequireDependency constructor (link, link)
Update the apply method of the HarmonyImportSpecifierDependency class to use the getTrimmedIdsAndRange function for computing the trimmed ids and range (link)
Remove the unused _trimIdsToThoseImported method from the HarmonyImportSpecifierDependency class (link)
Update the walkMemberExpression and walkCallExpression methods of the JavascriptParser class to pass the memberRanges parameter to the hook handlers (link, link)
Add some new test cases to the test/configCases/code-generation/re-export-namespace-concat/index.js and test/configCases/code-generation/re-export-namespace/index.js files to check the behavior of webpack when re-exporting namespaces with concatenated ids (link, link)
Update the expected output of the test cases in the test/configCases/code-generation/re-export-namespace-concat/index.js and test/configCases/code-generation/re-export-namespace/index.js files to reflect the changes made by the refactoring and the feature of trimming ids (link, link)

@TheLarkInn can you take a look?  Thanks!

Thank you for this fix <3


feat(headless): add Copy generated answer controller action for GenQA…

SVCC-3229

Add action to copy directly to the clipboard the content of the generated answer when I click on copy button
Dispatch the proper analytic event when clicking on copy to the clipboard button.

The new method has no impact on the state: it only logs an event and attempts to perform an action in the browser. I personally find it awkward to have it on a Headless controller.
I feel like this should be done in a UI component instead. E.g., something similar to quanticResultCopyToClipboard.js

You could have a method to log the analytics action from the controller, but the copy to clipboard part itself should be done in the UI component, not in the Headless controller. Otherwise it won't work with SSR.


Styling layout

hello @kifle23, @danielsafari143.
-Removed the Zone identifier tag files that create pull request errors

@kifle23 thanks for the review.


TC200 false positive for annotations inside if TYPE_CHECKING

Currently the following will cause a TC200 for TypeAlias, even though it shouldn't:
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from typing_extensions import TypeAlias
    Foo: TypeAlias = str | float  # TC200 – Annotation 'TypeAlias' needs to be made a string literal

The same is true if you define a Protocol/TypedDict/NamedTuple inside an if TYPE_CHECKING: block if they contain an annotation for a symbol that was imported inside the block:
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from collections.abc import Sequence
    from typing import NamedTuple, Protocol, TypedDict

    class FooTuple(NamedTuple):
        seq: Sequence[int]  # TC200 – Annotation 'Sequence' needs to be made a string literal

    class FooProtocol(Protocol):
        seq: Sequence[int]  # TC200 – Annotation 'Sequence' needs to be made a string literal

    class FooDict(TypedDict):
        seq: Sequence[int]  # TC200 – Annotation 'Sequence' needs to be made a string literal

from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from typing_extensions import TypeAlias
    Foo: TypeAlias = str | float  # TC200 – Annotation 'TypedDict' needs to be made a string literal

is confusing me a bit. Should it be this?
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from typing_extensions import TypeAlias
    Foo: TypeAlias = str | float  # TC200 – Annotation 'TypeAlias' needs to be made a string literal

Yeah that was a brain fart, since I manually typed out the error.

In general though, how I'm understanding you is that no TC200s should trigger inside a TYPE_CHECKING block. Have I got that right?

Yes, I think that would be the most pragmatic solution, since all the other possible errors (like use before definition) should already covered by other rules.

Yeah I think that makes a lot of sense :+1: Interested in creating a PR with a fix? There's already a function that checks if you're inside a type-checking block, so should be relatively straight forward to implement :+1: Just need to add a test case or two.

Sure, I'm happy to take a stab at it. I've been meaning to dabble in writing my own flake8 plugin anyways.


Update hook names

/home/b.weinstein/miniconda3/envs/DeepTreeAttention/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:228: LightningDeprecationWarning: The `LightningModule.on_epoch_end` hook was deprecated in v1.6 and will be removed in v1.8. Please use `LightningModule.on_<train/validation/test>_epoch_end` instead.

merged.


Add trigger on all files in workflows for docker and nbval

@Debskij and @adrianboguszewski could you please add a description of the changes?


Note SpatiaLite stability issues in docs

Good morning,
we are not able to include our tests suite on the CI process using Docker (Ubuntu 20.04). It seems that there is an issue with SQLite with NetTopologySuite. Locally on Windows 10 with Visual Studio 2019 tests are executed with no issue.
public abstract class TestDbContext : IDisposable
    {
        private const string InMemoryConnectionString = "DataSource=:memory:";
        private readonly SqliteConnection _connection;

        protected readonly MyContext DbContext;

        protected TestDbContext()
        {
            _connection = new SqliteConnection(InMemoryConnectionString);
            _connection.Open();

            var options = new DbContextOptionsBuilder<MyContext>()
                    .UseSqlite(_connection, x => x.UseNetTopologySuite())
                    .Options;
            DbContext = new MyContext(options);
            DbContext.Database.EnsureCreated();

            InitData();
        }

        private void InitData()
        {
            //Add some data in order to make tests
        }

        public void Dispose() => _connection.Close();
    }

public class SpvTests : TestDbContext
    {
        [Fact]
        public async void Test1()
        {
            Assert.False(DbContext.Database.EnsureCreated());
        }
    }

FROM mcr.microsoft.com/dotnet/sdk:5.0-focal
WORKDIR /src
COPY ["MyProject.Tests/MyProject.Tests.csproj", "MyProject.Tests/"]
COPY ["MyProject/MyProject.csproj", "MyProject/"]
COPY ["MyProject.Data/MyProject.Data.csproj", "MyProject.Data/"]

RUN apt update && apt install libsqlite3-dev libsqlite3-mod-spatialite -y

RUN dotnet restore "MyProject.Tests/MyProject.Tests.csproj"

COPY . .
WORKDIR "/src/MyProject.Tests"

ENTRYPOINT ["dotnet", "test"]

Include stack traces
Include the full exception message and stack trace for any exception you encounter.
Use triple-tick fences for stack traces. For example:
Microsoft (R) Test Execution Command Line Tool Version 16.9.4
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.3+1b45f5407b (64-bit .NET 5.0.6)
[xUnit.net 00:00:00.85]   Discovering: MyProject.Tests
[xUnit.net 00:00:00.89]   Discovered:  MyProject.Tests
[xUnit.net 00:00:00.89]   Starting:    MyProject.Tests
The active test run was aborted. Reason: Test host process crashed

Test Run Aborted.
     1>Done Building Project "/src/MyProject.Tests/MyProject.Tests.csproj" (VSTest target(s)) -- FAILED.

Build FAILED.
    0 Warning(s)
    0 Error(s)

Include version information
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>

    <IsPackable>false</IsPackable>

    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.6" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite" Version="5.0.6" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.13" />
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="coverlet.collector" Version="3.0.3">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyProject\MyProject.csproj" />
  </ItemGroup>

</Project>

Hey cool, they've rediscovered the issue for themselves. Maybe we'll see some progress.


Download image file from a Cloudflare protected web. AKA Feature Request

There's this problem when trying to download a image from a cloudflare protected website using urllib
Here's the sample code.
import urllib.request
import random

DEFAULT_USER_AGENTS = [
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554 Safari/9537.53",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"
]

DEFAULT_USER_AGENT = random.choice(DEFAULT_USER_AGENTS)

print(DEFAULT_USER_AGENT)

src = 'https://kissanime.ru/Special/CapImg/a0p3YnJsN251Tjh6NEtsZng0SWUvMFJYWHRZU1l1WktFbDVtVldVRlFkTnBObmcwcFRPVVphZk5PUGNoZWh3Ng==.jpg'
#src = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'
ex = list(src)
ex.reverse()
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', DEFAULT_USER_AGENT)]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(src, 'filename' + str(ex[3]) + str(ex[2]) + str(ex[1]) + str(ex[0]))

Note that I have two src var. kissanime have a cloudflare protected and google have none.

Why urllib ?
Just use cloudscraper (this repo) with (or not) requests lib, nothing difficult here :)

Why urllib ?
Just use cloudscraper (this repo) with (or not) requests lib, nothing difficult here :)

Oh! I totally forgotten that we can also use cloudscraper. (I was thinking that time that only urllib was the only one that works in grabbing images). I'll try this stack discussion. Meanwhile I'm gonna close this issue.

@OfficialSpade000 refer to https://github.com/VeNoMouS/cloudscraper#usage if you need some guidance :)


Conflicted listener status is not surfaced for gateways when MergeGateways enabled

Description:
Applying these config, the listener of GTW merged-eg-3 is conflicted with the listener GTW merged-eg-2. But there is no status surfaced about these conflicted listener.
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: mg
spec:
  controllerName: gateway.envoyproxy.io/gatewayclass-controller
  parametersRef:
    group: gateway.envoyproxy.io
    kind: EnvoyProxy
    name: custom-proxy-config
    namespace: envoy-gateway-system
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  name: custom-proxy-config
  namespace: envoy-gateway-system
spec:
  mergeGateways: true
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: merged-eg-1
  namespace: default
spec:
  gatewayClassName: mg
  listeners:
     - name: http
       port: 8080
       protocol: HTTP
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: merged-eg-2
  namespace: default
spec:
  gatewayClassName: mg
  listeners:
     - name: http
       port: 8081
       protocol: HTTP
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: merged-eg-3
  namespace: default
spec:
  gatewayClassName: mg
  listeners:
     - name: http
       port: 8081
       protocol: HTTP

According to the validation method, the conflicted status should be computed, but somehow is not surfaced.
https://github.com/envoyproxy/gateway/blob/4c79ef9aa1e06d3b61b83e95f21d1705fa6568ba/internal/gatewayapi/validate.go#L541
k get gtw -o yaml                                                 ✱

apiVersion: v1
items:
- apiVersion: gateway.networking.k8s.io/v1
  kind: Gateway
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"gateway.networking.k8s.io/v1","kind":"Gateway","metadata":{"annotations":{},"name":"merged-eg-1","namespace":"default"},"spec":{"gatewayClassName":"mg","listeners":[{"name":"http","port":8080,"protocol":"HTTP"}]}}
    creationTimestamp: "2024-02-21T14:43:57Z"
    generation: 1
    name: merged-eg-1
    namespace: default
    resourceVersion: "7869"
    uid: 2285a144-8c92-4ab3-81d4-fd485723f246
  spec:
    gatewayClassName: mg
    listeners:
    - allowedRoutes:
        namespaces:
          from: Same
      name: http
      port: 8080
      protocol: HTTP
  status:
    addresses:
    - type: IPAddress
      value: <IP_ADDRESS>
    conditions:
    - lastTransitionTime: "2024-02-21T14:43:58Z"
      message: The Gateway has been scheduled by Envoy Gateway
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2024-02-21T14:43:58Z"
      message: Address assigned to the Gateway, 1/1 envoy Deployment replicas available
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
- apiVersion: gateway.networking.k8s.io/v1
  kind: Gateway
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"gateway.networking.k8s.io/v1","kind":"Gateway","metadata":{"annotations":{},"name":"merged-eg-2","namespace":"default"},"spec":{"gatewayClassName":"mg","listeners":[{"name":"http","port":8081,"protocol":"HTTP"}]}}
    creationTimestamp: "2024-02-21T14:43:57Z"
    generation: 1
    name: merged-eg-2
    namespace: default
    resourceVersion: "7870"
    uid: 27440145-0932-46dd-aba1-d8dcf53a7f0d
  spec:
    gatewayClassName: mg
    listeners:
    - allowedRoutes:
        namespaces:
          from: Same
      name: http
      port: 8081
      protocol: HTTP
  status:
    addresses:
    - type: IPAddress
      value: <IP_ADDRESS>
    conditions:
    - lastTransitionTime: "2024-02-21T14:43:58Z"
      message: The Gateway has been scheduled by Envoy Gateway
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2024-02-21T14:43:58Z"
      message: Address assigned to the Gateway, 1/1 envoy Deployment replicas available
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
- apiVersion: gateway.networking.k8s.io/v1
  kind: Gateway
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"gateway.networking.k8s.io/v1","kind":"Gateway","metadata":{"annotations":{},"name":"merged-eg-3","namespace":"default"},"spec":{"gatewayClassName":"mg","listeners":[{"name":"http","port":8081,"protocol":"HTTP"}]}}
    creationTimestamp: "2024-02-21T14:43:57Z"
    generation: 1
    name: merged-eg-3
    namespace: default
    resourceVersion: "7871"
    uid: 7bc0dc08-f145-4310-b18d-6dc86a123151
  spec:
    gatewayClassName: mg
    listeners:
    - allowedRoutes:
        namespaces:
          from: Same
      name: http
      port: 8081
      protocol: HTTP
  status:
    addresses:
    - type: IPAddress
      value: <IP_ADDRESS>
    conditions:
    - lastTransitionTime: "2024-02-21T14:43:58Z"
      message: The Gateway has been scheduled by Envoy Gateway
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2024-02-21T14:43:58Z"
      message: Address assigned to the Gateway, 1/1 envoy Deployment replicas available
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
kind: List
metadata:
  resourceVersion: ""

Environment:
lattest

good find, https://github.com/envoyproxy/gateway/blob/4c79ef9aa1e06d3b61b83e95f21d1705fa6568ba/internal/gatewayapi/validate.go#L543 looks fine from a first glance which is being tested here https://github.com/envoyproxy/gateway/blob/main/internal/gatewayapi/testdata/merge-invalid-multiple-gateways.out.yaml

the conflicted listener sure has been found and set to listener's status in this method:
https://github.com/envoyproxy/gateway/blob/4c79ef9aa1e06d3b61b83e95f21d1705fa6568ba/internal/gatewayapi/validate.go#L541
but when mergeGateways enabled, predicates for Service and Deployment
https://github.com/envoyproxy/gateway/blob/4c79ef9aa1e06d3b61b83e95f21d1705fa6568ba/internal/provider/kubernetes/predicates.go#L361
https://github.com/envoyproxy/gateway/blob/4c79ef9aa1e06d3b61b83e95f21d1705fa6568ba/internal/provider/kubernetes/predicates.go#L207
will update GTW status again, during this update, GTWs are loaded from GatewayAPIResources which does not contains any computed status. so will overwrite previous listener's status to empty status, casuing the missing of listener's status.
https://github.com/envoyproxy/gateway/blob/4c79ef9aa1e06d3b61b83e95f21d1705fa6568ba/internal/provider/kubernetes/predicates.go#L231

+1 I think it would solve this issue

good find @shawnh2 ! this probably explains a lot of the flakiness in CI :)


Dublicate Globalkey error

after Sign In and log off at me page. If you again try to click sign In button you get error
Launching lib\main.dart on Chrome in debug mode...
Debug service listening on ws://<IP_ADDRESS>:62522/bnQE7F-YJxU=/ws
Running with sound null safety
Connecting to VM Service at ws://<IP_ADDRESS>:62522/bnQE7F-YJxU=/ws
[GETX] Instance "SharedPreferences" has been created
[GETX] Instance "ApiProvider" has been created
[GETX] Instance "ApiProvider" has been initialized
[GETX] Instance "ApiRepository" has been created
[GETX] Instance "GetMaterialController" has been created
[GETX] Instance "GetMaterialController" has been initialized
[GETX] GOING TO ROUTE /
[GETX] Instance "SplashController" has been created
[GETX] Instance "SplashController" has been initialized
[GETX] GOING TO ROUTE /auth
[GETX] Instance "AuthController" has been created
[GETX] Instance "AuthController" has been initialized
[GETX] GOING TO ROUTE /auth/login
[GETX] GOING TO ROUTE /home
[GETX] Instance "HomeController" has been created
[GETX] Instance "HomeController" has been initialized
[GETX] GOING TO ROUTE /auth
[GETX] GOING TO ROUTE /auth/login
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building Form-[LabeledGlobalKey#2aaf7](state: FormState#ba874):
Assertion failed:
_route == ModalRoute.of(context)
is not true
The relevant error-causing widget was
Form-[LabeledGlobalKey#2aaf7]
When the exception was thrown, this was the stack
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
packages/flutter/src/widgets/will_pop_scope.dart 135:36                                                                    didUpdateWidget
packages/flutter/src/widgets/framework.dart 4754:57                                                                        update
packages/flutter/src/widgets/framework.dart 3345:14                                                                        updateChild
...
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by widgets library ═══════════════════════════════════
Duplicate GlobalKey detected in widget tree.
════════════════════════════════════════════════════════════════════════════════

void login(BuildContext context) async {
...
if (res!.token.isNotEmpty) {
prefs.setString(StorageConstants.token, res.token);
//Get.toNamed(Routes.HOME);
Get.offNamed(Routes.HOME);
}
void signout() {
var prefs = Get.find();
prefs.clear();
Get.back();
//Get.toNamed(Routes.AUTH);

}
with these changes problem is solved.


Support for PS2's R5900 VU micromode

Add support for PS2's R5900 VU micromode
References:

VU_Users_Manual.pdf (pages 66 to 198)

Moved to https://github.com/orgs/decompals/discussions/15


curvilinear.nc seems uncorrect

I have made a small check on the curvilinear file proposed in the data directory and discovered with ferret that the curvilinear.nc file may have uncorrect longitude and latitude positions. See plot bellow.

$ ferret
yes? use curvilinear.nc
yes? shade/modulo BATHYMETRY, NAV_LON, NAV_LAT
yes? go land red

@PBrockmann I'm not a whiz on Paleo geographies here but the go land red is todays geography right? the curvilinear file is a paleo geography (can't remember the age of the top of my head) so this could be the reason why they aren't aligning?

Indeed. Might be the reason. Could you check with the provider of the file ?

Ok so the file is an ORCA file based on the paleo geography 38Ma ago which should explain the mismatch


Develop a Dynamic Theme Changer

Pull Request Details:

Title: Develop a Dynamic Theme Changer
PR Link: #20
Issue: #19

Next Steps:
I'm ready for feedback and any necessary revisions. Please review at your earliest convenience, and feel free to provide comments or suggest improvements.
Thank you for your time and consideration!

Hi User,
Thank you for your pull request. I appreciate your contribution to our project.
I have reviewed your changes and everything looks good. Please be patient, and I'll get back to you as soon as possible.
If you have any questions or need further assistance, don't hesitate to ask.
Best regards,
Jayesh


Question: # of forward passes in multiple choice tasks

Question
Looking at task.py:972 it looks like an instance is created for each choice in multiple choice tasks and the ctx are identical for all choices.
Later in evaluate.py:318 I see that the model is runs for each instance.
Does this mean if we have 4 choices, the model is run 4 times on exactly the same context? If yes, what is the rationale?

That's correct, in the multi-token continuation case, to compute loglikelihood of a multi-token continuation we can't simply select the logit from the vocab, we need to feed in the (continuation+context) and get the logit at each continuation position, to compute the loglikelihood of continuation token N+1 conditional on the context and first N continuation tokens.
It would be possible to reuse the KV cache across same-context requests, or detect when all choices are single-token, but it's not currently an optimization we're doing.


Fix a bunch of UBs

Creating a reference then using it to read more bytes than its type is UB in Stacked Borrows
Converting a shared reference to a reference to UnsafeCell is UB in Stacked Borrows, writing to it is UB in Tree Borrows too
Writing normally (*p = ..., not std::ptr::write(p, ...) to an uninitialized pointer is maybe UB because it drops the old data

Fix all of those. I didn't do a full audit and didn't check the orderings, but the tests pass Miri now.

Thank you! Would you mind merging from main (which I've renamed from master) to get CI working again (ref https://github.com/jonhoo/arccstr/pull/8)?

Done.

Releasing in https://github.com/jonhoo/arccstr/pull/9


Can wireguard autoconnect like the desktop app?

I'm connecting to PIA via wireguard successfully on my Raspberry Pi and Ubuntu system but I have to connect manually. I would like to connect to PIA automatically upon reboot.
Can this be done?
Thanks!

Yes, you can start the scripts on boot. The way to proceed depends on the init system you are using. Raspberry Pi has a documentation on systemd here: https://www.raspberrypi.org/documentation/linux/usage/systemd.md
Systemd works the same on Ubuntu and on all other distributions that implement it. This is a very good documentation on systemd: https://wiki.archlinux.org/index.php/Systemd
As distributions pick different systems for init, it becomes out of the scope of this repository to make these scripts run on boot. Though systemd is very popular, there are lots of distributions that choose something else.
Closing this ticket as a duplicate of https://github.com/pia-foss/manual-connections/issues/48


Paper cuts & questions

Testing #222240
Was giving this a try and saw a few small things but I am not sure if these items are important to the experience of screenreader users. Feel free to ignore any comment which you think is not a priority for users or if I am mistaken on how to do something that does have an answer.

On mac the screen-reader selects the text even though some is not visible, makes the view weird

From the first to the second image I just used the down arrow key. What is weird is the box it is highlighting in the second is no longer horizontal with the text but vertical. The correct text is still read.

It would be useful at least in my opinion to have a back arrow as you go through this menu flow
I think I might just be confused here but I found a command that was unassigned and I want to be able to assign it, but when I click on the button to configure unassigned keybindings I don't see it.

When getting the menu for a notebook cell it contained two key icons but only one was listed as an action in the text.

This one also shows how to escape the dialog, other help dialogs I saw did not contain this.

Can you be more specific here?

I think I might just be confused here but I found a command that was unassigned and I want to be able to assign it, but when I click on the button to configure unassigned keybindings I don't see it.

Re the back arrow, while I understand where you're coming from, I think users are used to using the Escape key to go back to their previously focused element.
Re your comments about the visual aspects, this is a dialog is for screen reader users, so that is the priority. The double key icons for example are not something I plan to fix.

This one also shows how to escape the dialog, other help dialogs I saw did not contain this.

This depends on if you have verbosity enabled for each of the features.

Thanks for your response to my items here! I realize now I was mistaken with the item you asked for clarity on when I tried it again. Thanks!


Backup & Restore Topic configuration

Currently we rely on a Zookeeper restore or manual creation of topics to be restored. Instead, it would be nice to be able to restore not only the topic data and offsets but also the original topic configuration.
We should also check whether the existing topics are compatible with the data to be restored (especially the number of partitions is crucial)

when I tried to do
backup-standalone.sh --bootstrap-server localhost:9092 --target-dir //home/ubuntu/kafka_2.12-2.5.0/backup --topics 'test'
there is an error of :
backup-standalone.sh: command not found
how can we solve this?


Some commands not working with a user in the microk8s group

Running on a fresh Ubuntu LTS image through multipass, host OS is Windows 10 Pro, using Hyper-V. microk8s.status, microk8s.kubectl just hang when run as ubuntu, even though it's a member of microk8s. However, microk8s.inspect, microk8s.stop, microk8s.start at the least work as ubuntu. Attached the inspection report, ran as ubuntu, from before figuring out that stop and start worked too - but obviously after figuring out that inspect worked:
inspection-report-20200311_105526.tar.gz
ubuntu@microk8s-vm:~$ microk8s.status
^C
ubuntu@microk8s-vm:~$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(lxd),114(netdev),999(microk8s)

Can you clean you ~/.kube and then try again?

Can you clean you ~/.kube and then try again?

Ahh, thank you! It was owned by root, for whatever reason, and after removing, everything seems to be working fine.

This has cause problems to a lot of our users. I think we should improve our messaging and ask users to set the right permissions to the .kube files when adding the user to the microk8s group.


avoid counting reset streams' unsent data towards flow control limit

Currently the send-side flow control allowance is enforced and reduced
whenever stream data is buffered in the corresponding stream's send
buffer (i.e. when the application calls stream_send()). This is to
limit the amount of buffered data to what the connection can actually
take and avoid over-buffering.
However whenever a stream is reset (e.g. STOP_SENDING is received, or
stream_shutdown() is called), the stream's final size will include all
data that was previously buffered, even if not all of it was actually
sent on the wire yet.
To aovid that, we can make the final size be the offset of the first
unsent byte, and then "claw back" the remaining data from the flow
control allowance when a stream is reset.

@LPardue I added tests for both STOP_SENDING and stream_shutdown() cases that try to send data up to flow control limit, then reset with unsent data, and then verify that more data can be written (rather than checking tx_cap directly, but the idea is the same). I also checked that they fail with current master.


[sdk-deploy-rpm] Adapt to PackageKit-Qt 0.9.x. Contributes to JB#15078

Transaction creation now goes through Daemon interface.
Furthermore Changed signal is removed from PackageKit in favor of
individual property changes. message signal deprecated.
Depends on https://git.merproject.org/mer-core/PackageKit-Qt/merge_requests/4
and https://github.com/hughsie/PackageKit-Qt/pull/16

LGTM

LGTM


select.vue change event return both value and label

Please make sure these boxes are checked before submitting your PR, thank you!

[x] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
[x] Make sure you are merging your commits to dev branch.
[ ] Add some descriptions and refer relative issues for you PR.

Sorry, we have no plan to support this.


Added Route to SDK Scheme

Fixes #136 by registering the Route scheme with the SDK Scheme Manager.
Signed-off-by: Juraci Paixão Kröhling<EMAIL_ADDRESS>

This change is

The e2e tests for this PR are passing:
$ make test
Running unit tests...
?   	github.com/jaegertracing/jaeger-operator/cmd	[no test files]
?   	github.com/jaegertracing/jaeger-operator/cmd/manager	[no test files]
ok  	github.com/jaegertracing/jaeger-operator/pkg/account	1.099s	coverage: 100.0% of statements
?   	github.com/jaegertracing/jaeger-operator/pkg/apis	[no test files]
ok  	github.com/jaegertracing/jaeger-operator/pkg/apis/io/v1alpha1	1.100s	coverage: 16.7% of statements
?   	github.com/jaegertracing/jaeger-operator/pkg/cmd/start	[no test files]
?   	github.com/jaegertracing/jaeger-operator/pkg/cmd/version	[no test files]
ok  	github.com/jaegertracing/jaeger-operator/pkg/config/sampling	1.099s	coverage: 94.1% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/config/ui	1.100s	coverage: 94.1% of statements
?   	github.com/jaegertracing/jaeger-operator/pkg/controller	[no test files]
?   	github.com/jaegertracing/jaeger-operator/pkg/controller/deployment	[no test files]
ok  	github.com/jaegertracing/jaeger-operator/pkg/controller/jaeger	3.033s	coverage: 64.3% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/cronjob	1.068s	coverage: 93.5% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/deployment	1.100s	coverage: 100.0% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/ingress	0.007s	coverage: 100.0% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/inject	0.012s	coverage: 100.0% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/route	0.026s	coverage: 100.0% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/service	0.027s	coverage: 100.0% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/storage	0.010s	coverage: 100.0% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/strategy	0.012s	coverage: 99.4% of statements
ok  	github.com/jaegertracing/jaeger-operator/pkg/util	0.042s	coverage: 100.0% of statements
?   	github.com/jaegertracing/jaeger-operator/pkg/version	[no test files]
service/cassandra created
statefulset.apps/cassandra created
statefulset.apps/elasticsearch created
service/elasticsearch created
customresourcedefinition.apiextensions.k8s.io/jaegers.io.jaegertracing created
Formatting code...
Building...
Sending build context to Docker daemon  121.7MB
Step 1/4 : FROM alpine:3.8
 ---> 196d12cf6ab1
Step 2/4 : USER nobody
 ---> Using cache
 ---> 18305c5b670d
Step 3/4 : ADD build/_output/bin/jaeger-operator /usr/local/bin/jaeger-operator
 ---> cc2b448fedb4
Step 4/4 : ENTRYPOINT ["/usr/local/bin/jaeger-operator"]
 ---> Running in ff9a1a4be888
Removing intermediate container ff9a1a4be888
 ---> ab4d9696e6c0
Successfully built ab4d9696e6c0
Successfully tagged jpkroehling/jaeger-operator:latest
Pushing image jpkroehling/jaeger-operator:latest...
Running end-to-end tests...
ok  	github.com/jaegertracing/jaeger-operator/test/e2e	369.321s

Did you run the e2e on OCP. IIRC they were passing on k8s even without this fix

Unfortunately, the E2E tests won't work on OpenShift because some of them depend on the Ingress object. All other tests are passing, though.

then they are not almost not relevant  here ;)


Workaround for "Invalid Calling Object" error in IE when using Webpack Hot Loader

Calling requestAnimationFrame alias function in IE with Webpack Hot Loader causes "Invalid Calling Object" error.

Is there any quick fix I can do outside of fixed-data-table to get around this error?  Otherwise it would be nice if this was merged in.

Any update from the fixed-data-table team? We too would appreciate if this could get merged.

Thanks for your pull request. I apologize for leaving this project in limbo and not addressing your concerns. I have archived this project after doing a final release to make it compatible with React v16.