Add a linter and CI

We should add a linter to manage code style. Personally, I’m in favor of standard, but another style would be fine. We should:

[ ] add a Travis script that runs tests on all of the *.user.js files
[ ] add a way to install the linter locally and test before commiting

I know it's a good idea to have CI for most projects, but because these userscripts are so small and all have different code styling, is this really worth it?

I'd be in favour of having something to enforce code style. Otherwise, worst-case, we end up with a bunch of userscripts by different people with wildly varying code styles, which makes maintenance harder.

Which style?

😄 For standard
🎉  For JSHint

(add as reaction)
Feel free to suggest more

Bah, definitely not standard if it doesn't enforce semicolons. That's an excellent way to introduce bugs.

@ArtIfCode- Why does it introduce bugs?

@j-f1 On its own, it doesn't, but it's a hazard similar to inline if statements. This is a bug risk:
if (condition)
    doThing();

because it's formatted exactly the same as a regular if. If the next programmer comes along to add something to that and isn't 100% focused, it's too easy to miss the lack of braces and add a statement to what you think is the if block but is actually outside. That's difficult to track down.
In the same sort of way, not having semicolon-terminated lines is a risk for scope bugs: you think you're adding a new call, but in reality the parser reads and executes it as a continuation of the last line. Again, that's difficult to track down.
Languages like Python and Ruby are fine for this because they were designed for it, and have strictly defined characteristics for what terminates a line and what doesn't. JS was designed originally with semicolons, then no-semicolons was shoehorned in because it would be cool. Line termination characteristics without semicolons are loosely defined, so it's much easier to make mistakes.

@ArtOfCode- JavaScript has rules regarding semicolon insertion that all modern browsers follow. Quoted from Standard:

No semicolons – It's fine. Really!
Never start a line with (, [, or `

This is the only gotcha with omitting semicolons – automatically checked for you!
More details

Also, lots of people use it: npm, Electron, and lots more.

Not omitting semicolons is the standard practice and I'd rather see it
kept. It's easier for the brain than having to think about a list of
characters I can't use.
( is often found at the start of a line if you use an immediately invoked
function expression, (function(){...})().
[ can start an array literal - and it's not unusual for me to iterate over
a constant array.
` is probably not to be worried about, I guess...
Also, add + to the list. You can still use ~ and ! as the ways (both
non-standard) to invoke function expressions, though.
On Sat, Feb 18, 2017 at 12:41 PM, J F<EMAIL_ADDRESS>wrote:

@ArtOfCode- https://github.com/ArtOfCode- JavaScript has rules
regarding semicolon insertion that all modern browsers follow. Quoted from
Standard:

No semicolons – It's
http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
fine. http://inimino.org/~inimino/blog/javascript_semicolons
Really! https://www.youtube.com/watch?v=gsfbh17Ax9I
Never start a line with (, [, or `

This is the only gotcha with omitting semicolons – automatically
checked for you!
More details http://standardjs.com/rules.html#semicolons

Also, lots of people use it: npm
https://github.com/npm/npm/blob/892f531130d38dfd40000794dc9087b483bb1ee9/package.json#L218,
Electron
https://github.com/electron/electron/blob/1f75df0253c7cee435f2783029ed26ea20ea7ad0/package.json#L36,
and lots more
https://raw.githubusercontent.com/feross/standard-packages/master/all.json
.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Charcoal-SE/userscripts/issues/37#issuecomment-280840219,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADwF_WOXTNRQ9vJIwFpiRwCMXEJ7e7d6ks5rdtjtgaJpZM4MELKt
.

The izs blog suggests putting semicolons on the offending lines, but that's
pretty ugly in my opinion.
Also, the way it presents rule #4 is mildly incorrect. + and - can be used
as unary operators, and yet when they start a line, ASI prefers not to put
a semicolon before them, unlike what the wording suggests is the case.
Then he "gets opinionated and pisses everyone off" (by the author's own
wording).
On Sat, Feb 18, 2017 at 12:50 PM, Jan Dvořák<EMAIL_ADDRESS>wrote:

Not omitting semicolons is the standard practice and I'd rather see it
kept. It's easier for the brain than having to think about a list of
characters I can't use.
( is often found at the start of a line if you use an immediately invoked
function expression, (function(){...})().
[ can start an array literal - and it's not unusual for me to iterate over
a constant array.
` is probably not to be worried about, I guess...
Also, add + to the list. You can still use ~ and ! as the ways (both
non-standard) to invoke function expressions, though.
On Sat, Feb 18, 2017 at 12:41 PM, J F<EMAIL_ADDRESS>wrote:

@ArtOfCode- https://github.com/ArtOfCode- JavaScript has rules
regarding semicolon insertion that all modern browsers follow. Quoted from
Standard:

No semicolons – It's
http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
fine. http://inimino.org/~inimino/blog/javascript_semicolons
Really! https://www.youtube.com/watch?v=gsfbh17Ax9I
Never start a line with (, [, or `

This is the only gotcha with omitting semicolons – automatically
checked for you!
More details http://standardjs.com/rules.html#semicolons

Also, lots of people use it: npm
https://github.com/npm/npm/blob/892f531130d38dfd40000794dc9087b483bb1ee9/package.json#L218,
Electron
https://github.com/electron/electron/blob/1f75df0253c7cee435f2783029ed26ea20ea7ad0/package.json#L36,
and lots more
https://raw.githubusercontent.com/feross/standard-packages/master/all.json
.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Charcoal-SE/userscripts/issues/37#issuecomment-280840219,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADwF_WOXTNRQ9vJIwFpiRwCMXEJ7e7d6ks5rdtjtgaJpZM4MELKt
.

Please enforce the use of semicolons. I don't care if the browser automatically inserts them or not; my brain doesn't. It's like SMS language; having less rules makes a message harder to parse, not easier.

Since everyone is in favor of JSHint, I’ll be adding that as a test script. Who should manage the Travis CI integration?

I believe anyone who has repo access can set up Travis. @j-f1 probably knows most about what needs setting up?

(side-note: for local testing, Atom has a plugin for JSHint that will automatically test your code as you go)

@ArtOfCode- Travis says:

Sorry, but we can't find any repositories you have admin access to.
You require admin rights to enable these repositories


Add monish-j to CONTRIBUTORS.md

Summary
This pull request adds monish-j to the CONTRIBUTORS.md file as an individual contributor.
Changes

Added monish-j to the CONTRIBUTORS.md file.

Verification

Verified that the CONTRIBUTORS.md file includes the new entry for Monish J.

Additional Notes
Please let me know if there are any additional updates or changes needed.
Thank you!

Hi @ggetz,
I have completed the required steps, including submitting the CLA and updating the CONTRIBUTORS.md file. The changes are ready for review.
Thank you!

Hi @monish-j welcome to the Cesium community!
Please see https://github.com/CesiumGS/cesium/pull/12330.
Also, if you can, please include this commit in a PR with your code changes. Thanks!


Open Source License

I noticed that this code does not have a stated software license.
Would you be willing to release it under an open-source license?

No problem, the project is now under an MIT license. Btw I haven't touched this code in a long time. No idea if it still works.

Thanks. It still works!
i include it in my project  https://github.com/gregod/SnakeClusterBox, which packages Slurm and Snakemake into a ram bootable Iso image. I could now release as open source.


update vale

Pull Request Description

Update submodule and config to use new Vale2 guidelines checking tool.
fix errors raised by this new version including bare url fixes.

Fixed Issue(s)

see PegaSysEng/Misc#29

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


AndroidEnv Emulator Setup doc: Make a distinction between Linux OS and other SDK/AVD default locations

e.g.
We recommend that you set the `Android SDK Location` to be in your home
directory (for example, on Linux the default one is `~/Android/Sdk`, while on
macOS - `~/Library/Android/sdk`). You can always find the SDK location in
Android Studio under **Preferences** > **Appearance & Behavior** >
**System Settings** > **Android SDKs** > _Android SDK Location_.

to help set up Android stuff from scratch, since the SDK/AVD and other paths are important "flags" when running RL agents.

Thanks!


[Feature Request] Head Position

I have a feature request. Sorry if this is not the proper place to make requests.
I would like to get the estimated head position (Pitch, Roll, Yaw) from detected faces. I have seen and tried several samples using dlib landmarks or mediapipe facemesh landmarks. My challenge has been getting correct output in degrees for Pitch, Roll and Yaw. It would be really convenient to get it out of a function in DeepFace.
Thanks,

unfortunately, it is out of scope of this project.


Enable saving memory tracks in capture files

With this change, we enable saving the memory tracks in the capture file.
Bug: http://b/183172079
Test: Take a capture with enabling memory tracing and save the capture file, then open the saved capture file.

Taking a capture with enabling memory tracing

Open the capture file with memory tracks

This is a great follow up for the memory usage feature. I tested it and it works :)
Did you look at unit tests for this? I know we do have CaptureSerializerTest.cpp and CaptureDeserializerTest.cpp, but I am not too familiar on what they test. Maybe adding something there for memory usage is a good idea.

Thanks for the suggestion! Totally agree that it's a good idea to test the saving and loading of memory tracks.
I take a look at the unit tests in CaptureSerializerTest.cpp and CaptureDeserializerTest.cpp. There are well designed tests for methods in CaptureSerializer.h and CaptureDeserializer.h, e.g., methods that generate and load the CaptureInfo. But there is no test for saving and loading tracks. I have created a bug http://b/184641371 for this.


Add license text to the top of peep.py

The readme suggests embedding peep.py directly in other source repos:
https://github.com/erikrose/peep#embedding
In Treeherder's case, we've put it in our bin directory.
However the peep license requires that we distribute a copy of the license with peep, but I'd really quite like to avoid having the LICENSE file cluttering up our bin directory.
Perhaps it's worth just adding a copy of the licence text to the top of peep.py, so embedders only have one file to include? (And can use the file verbatim, rather than needing to append the licence to the top of it themselves manually) :-)

I actually just did this yesterday, in response to willkg noticing the same thing! :-) https://github.com/erikrose/peep/commit/e0af1546312197377d3fa556e22a34969a6a750a

Ah great, thank you :-)


chore(project): setup

Initial project setup with oclif.

I might be missing context but why does this need to be setup from scratch if the current version is already an oclif based CLI? Wouldn't it be a simple as taking one of the basic routes/functionality that will continue to exist?

yea i mean this will be a breaking change but it might be worth keeping continuity of history as some of the routes and work done already is usable. What do you think @JacopoDaeli

@jcrugzz I talked with partners and they're all OK with moving to a brand new architecture and commands.
I want to take this opportunity to rethink the system from the ground. That's why I want a fresh canvas. No need for us to keep old stuff.


Improvement: meta-data handling

Description and Motivation

Added metadata handling system to the cai_causal_graph.interfaces.HasMetadata class. All extending classes should use
this system to parse and set their metadata.
Added cai_causal_graph.graph_components.TimeSeriesEdge class, which is used as an edge class by cai_causal_graph.time_series_causal_graph.TimeSeriesCausalGraph.
Added metadata to cai_causal_graph.time_series_causal_graph.TimeSeriesCausalGraph and cai_causal_graph.causal_graph.CausalGraph.
Ensured consistent metadata handling. Metadata passed at construction to cai_causal_graph.graph_components.TimeSeriesNode,
cai_causal_graph.graph_components.Node, cai_causal_graph.graph_components.TimeSeriesEdge, cai_causal_graph.graph_components.Edge,
cai_causal_graph.time_series_causal_graph.TimeSeriesCausalGraph and cai_causal_graph.causal_graph.CausalGraph is shallow-copied. Any
metadata is deepcopied when constructing cai_causal_graph.time_series_causal_graph.TimeSeriesCausalGraph and cai_causal_graph.causal_graph.CausalGraph
from dictionary.
Ensured that cai_causal_graph.time_series_causal_graph.TimeSeriesCausalGraph.replace_node performs similarly to
cai_causal_graph.causal_graph.CausalGraph.replace_node, meaning that if any additional information (such as metadata)
is specified, it is used to overwrite corresponding information in the constructed node.
Generalized cai_causal_graph.causal_graph.CausalGraph.__eq__ to check for the class of the instance itself, enabling
to reuse this method by extending classes.

Additional Context

This PR is mainly aimed at two things:

Consistency between implementations of methods by TimeSeriesCausalGraph and CausalGraph.

Currently, there are minor inconsistencies between implementations of certain methods. For example, in some cases, metadata is copied, but not in others. TimeSeriesCausalGraph.replace_node does not provide a simple way to overwrite metadata, while CausalGraph.replace_node does. etc.

Consistency and extendability of the handling of metadata.

Metadata handling has become problematic when extending CausalGraph classes. This is because in most cases, extending classes simply require adding some metadata to the class (which can be easily accessed through a property). This should be simple, and should not require overwritting any complex logic.
The metadata system built in this PR is generally a starting point. It provides a skeleton for handling metadata, which can be extended in the future. For example, it would be nice to enable automatically adding properties to the class based on the metadata schema, or providing callable default values. These improvements can be added later.
How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Improvement (non-breaking change which improves functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Refactor (moving code around, general refactoring improvements)
[ ] Documentation (documentation)

PR Checklist:

[ ] I have reviewed my own PR? (review the PR as you are reviewing someone else's PR)
[ ] I have implemented all requirements? (see JIRA, project documentation)
[ ] I am affecting someone else's work? If so: I have added those people as reviewers?
[ ] I have added comments to all the bits that are hard to follow
[ ] At a bare minimum, I tested this manually
[ ] I have added unit test(s)
[ ] Is this a bugfix? If so have I added a regression test?
[ ] Does this PR satisfy the one PR, one concern rule?
[ ] If needed, documentation has been added/updated?
[ ] I have updated the appropriate changelog with a line for my changes
[ ] If this PR breaks reproducibility, have I added a note in the changelog explaining the break in reproducibility
and its extent?

Screenshots (if appropriate):

Hey @patricia-causalens - I have added you as a reviewer. Appreciate that it is a fairly large PR, but the main change is the addition of 'meta' to CausalGraph/TimeSeriesCausalGraph, which changes its serialization. I have also added you to the PR in cai-modeling which extends this change to CausalModelGraph and TimeSeriesCausalModelGraph.


Refactor ProjectInfo.VERSION out, populate from client tools directly.

In Maven, we can get this information from:
  @Component private PluginDescriptor descriptor;
  // ...
  System.out.println("plugin version: " + descriptor.getVersion());


Minor bugfix. Wrong length due to NUL character.

I stumbled across this when I compiled secp256k1 for C++. Easiest fix is to change length to 17.
The alternative is to use { ... } syntax for C data initialization.

IIRC the C standard states that if you assign a 16-character string to a 16-wide char array, it simply won't be NUL-terminated. This is fine.

https://stackoverflow.com/a/13490908

IIRC the C standard states that if you assign a 16-character string to a 16-wide char array, it simply won't be NUL-terminated. This is fine.

Sorry! Hides.

Cool, thanks! I didn't know the difference in C++.
LOL Oleg.


Use container-based builds for travis (fixes #534)

For reference see http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/

Cool!


Block access to howard cloudbank hub

The instructor wants the students to not be able to log in,
while preserving the ability to use the admin panel to access
students' work. By moving the hub to a randomly generated
domain name that is kept secret, the instructor can log in but
students can not.
Longer term, we need better user profile support in JupyterHub
for this. Perhaps the work in JupyterHub 2.0 with groups
will help.
Ref https://2i2c.freshdesk.com/a/tickets/61

I had privately deployed this already to make sure we don't give away this impending removal to any students who might be watching this repo. I'm also going to merge this now, because deploying a different PR will restore the current howard domain unintentionally.


Release 2022.8.31 introduced issues with the install command

Hi! I have a large number of codebases using Pipenv, and some (not all) are failing to install dependencies.
Python version: 3.8
Pipenv version: 2022.8.31, 2022.9.2, 2022.9.4.
Pip version: Latest - 22.2.2
Error snippet:
Installing initially failed dependencies...
[pipenv.exceptions.InstallError]: Collecting attrs==21.4.0

× python [setup.py](http://setup.py/) egg_info did not run successfully.
[pipenv.exceptions.InstallError]:   │ exit code: 1
[pipenv.exceptions.InstallError]:   ╰─> [153 lines of output]
[pipenv.exceptions.InstallError]:
[pipenv.exceptions.InstallError]:           No working compiler found, or bogus compiler options passed to
[pipenv.exceptions.InstallError]:           the compiler from Python's standard "distutils" module.  See
[pipenv.exceptions.InstallError]:           the error messages above.  Likely, the problem is not related
[pipenv.exceptions.InstallError]:           to CFFI but generic to the [setup.py](http://setup.py/) of any Python package that
[pipenv.exceptions.InstallError]:           tries to compile C code.  (Hints: on OS/X 10.8, for errors about
[pipenv.exceptions.InstallError]:           -mno-fused-madd see http://stackoverflow.com/questions/22313407/
[pipenv.exceptions.InstallError]:           Otherwise, see https://wiki.python.org/moin/CompLangPython or
[pipenv.exceptions.InstallError]:           the IRC channel #python on irc.libera.chat.)
[pipenv.exceptions.InstallError]:
[pipenv.exceptions.InstallError]:           Trying to continue anyway.  If you are trying to install CFFI from
[pipenv.exceptions.InstallError]:           a build done in a different context, you can ignore this warning.
[pipenv.exceptions.InstallError]:
[pipenv.exceptions.InstallError]:       warning: build_py: byte-compiling is disabled, skipping.
[pipenv.exceptions.InstallError]:

^ this happens for every dependency, but I do know that Pipenv version 2022.8.31 appears to have introduced the issue, and it is still present in all subsequent releases.
I have ran builds with multiple previous versions of Pipenv, all of which work fine:

2022.1.8 works
2022.4.8 works
2022.7.4 works
2022.8.15 works
2022.8.17 works
2022.8.19 works
2022.8.24 works
2022.8.30 works

I'm not sure why only some projects have this issue, but I do know the only change to make the builds fail is upgrading Pipenv...
😃

@CoburnJoe I have two theories, if they are both wrong I am going to need more information -- one is can you try 2022.9.4 -- the other is that you have a dependency in your install chain that this setup.py depends on, in which case you'll want to run pipenv run pip install <dependency> ahead of the pipenv sync or pipenv install --deploy command--you may have been getting lucky before when dependencies were installed serially that it was available by the time this setup.py was invoked.   The error seems to indicate something is missing causing a setup.py invocation to fail.  We saw a different issue where a user needed to pre-install six this way as a workaround for when setup.py requires one of the other installed dependencies, because batch install will not get lucky anymore, it installs in typically 1, at most 2 pip invocations in order to cut the install times in half:  #5319   Inspect the setup.py of that project/specifier for what it imports or does to install, to get a better idea of what might be going on.

@CoburnJoe I have two theories, if they are both wrong I am going to need more information -- one is can you try 2022.9.4 -- the other is that you have a dependency in your install chain that this setup.py depends on, in which case you'll want to run pipenv run pip install <dependency> ahead of the pipenv sync or pipenv install --deploy command--you may have been getting lucky before when dependencies were installed individually, that it was available by the time this setup.py was invoked. The error seems to indicate something is missing causing a setup.py invocation to fail. We saw a different issue where a user needed to pre-install six this way as a workaround for when setup.py requires one of the other installed dependencies, because batch install will not get lucky anymore, it installs in typically 1, at most 2 pip invocations in order to cut the install times in half: #5319 Inspect the setup.py of that project/specifier for what it imports or does to install, to get a better idea of what might be going on.

Thanks for the reply - I've tried 2022.9.4 (all releases since the "working" release - 2022.8.31, 2022.9.2, 2022.9.4) with no change.
I think your second suggestion is the most likely answer - I'll report back ASAP - but this may take me some time to track down.

@matteius I'm now certain this is as you described, and basically the same as #5319 - i.e. not a problem you need to solve with Pipenv - closing now, thanks so much for your quick reply!


Set metrics prefix for piped and pipecd metrics

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

Nice
/lgtm

Nice.
/approve


dialog.returnValue not set in Safari (including possible patch)

In Safari, document.activeElement is set to the submitted form and ev.explicitOriginalTarget is not supported i.e. undefined. Therefore, the returnValue property is always left at its default (an empty string) and it is not possible to determine which button was clicked. Is this a known issue? I was surprised that there is no open issue and no mention in the "Limitations" section of the readme either. :smiley:
I've found a workaround using a global click handler as suggested on https://stackoverflow.com/q/5721724/444959.
--- a/htdocs/js/dialog-polyfill.js
+++ b/htdocs/js/dialog-polyfill.js
@@ -614,6 +614,11 @@
    * Global form 'dialog' method handler. Closes a dialog correctly on submit
    * and possibly sets its return value.
    */
+  var clickedButton;
+  document.addEventListener('click', function(ev) {
+    clickedButton = ev.target;
+  }, false);
+
   document.addEventListener('submit', function(ev) {
     var target = ev.target;
     if (!target || !target.hasAttribute('method')) { return; }
@@ -623,17 +628,7 @@
     var dialog = findNearestDialog(/** @type {Element} */ (ev.target));
     if (!dialog) { return; }

-    // FIXME: The original event doesn't contain the element used to submit the
-    // form (if any). Look in some possible places.
-    var returnValue;
-    var cands = [document.activeElement, ev.explicitOriginalTarget];
-    var els = ['BUTTON', 'INPUT'];
-    cands.some(function(cand) {
-      if (cand && cand.form == ev.target && els.indexOf(cand.nodeName.toUpperCase()) != -1) {
-        returnValue = cand.value;
-        return true;
-      }
-    });
+    var returnValue = clickedButton.value;
     dialog.close(returnValue);
   }, true);

Maybe this could be optimized by attaching the event handler only to the dialog but a more elegant solution than a click event handler does not seem to exist for Safari.

Hmm, the proposed patch does not support submitting a form by other means than clicking a button. This is not a problem for simple "alert"/"confirm"-like dialogs but more complex forms might contain text fields etc which can be submitted by pressing the enter key.
Pressing the enter key always seems to trigger the first submit button. So maybe we should use the first button's value if no button in the dialog has been clicked within 100 ms before the submit event? Sounds like a hack, I'm open for other solutions.

Wow! I didn't know that Safari changed the activeElement. I've done some research myself on what Chrome does (Firefox also has a dialog coming soon, but I haven't tried that).
It looks like the polyfill does more than the native implementation. Right now, the only way returnValue is set (see the demo and open the modal) is if an input type="submit" is used to close the dialog. Hilariously, if a button is used, the returnValue is not changed—this means that any previous returnValue will remain.
If Enter is pressed, then the first button or input type="submit" will be used to submit the form, as you say. But the same returnValue rules apply, as above.
(I haven't checked the spec—Chrome might be wrong here too). For now though, the fix seems pretty clear—I don't see why you'd wait 100ms though. The form is submitted, and click occurs reliably immediately before submit.

(And thanks for the detailed writeup)

A new patch that should solve the mentioned issue.
--- dialog-polyfill.js	2017-06-23 08:10:55.477085249 +0200
+++ dialog-polyfill.js	2017-06-23 08:11:46.599006490 +0200
@@ -39,14 +39,15 @@
   }

   /**
-   * Finds the nearest <dialog> from the passed element.
+   * Finds the closest ancestor of the passed element with specific tagName.
    *
    * @param {Element} el to search from
+   * @param {String} tagName to search for
    * @return {HTMLDialogElement} dialog found
    */
-  function findNearestDialog(el) {
+  function closest(el, tagName) {
     while (el) {
-      if (el.localName === 'dialog') {
+      if (el.localName === tagName) {
         return /** @type {HTMLDialogElement} */ (el);
       }
       el = el.parentElement;
@@ -504,7 +505,7 @@
    * @return {boolean} whether candidate is contained in top dialog
    */
   dialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function(candidate) {
-    while (candidate = findNearestDialog(candidate)) {
+    while (candidate = closest(candidate, 'dialog')) {
       for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {
         if (dpi.dialog === candidate) {
           return i === 0;  // only valid if top-most
@@ -614,26 +615,30 @@
    * Global form 'dialog' method handler. Closes a dialog correctly on submit
    * and possibly sets its return value.
    */
+  document.addEventListener('click', function(ev) {
+    var target = ev.target;
+    if (!target || !(/^(BUTTON|INPUT)$/.test(target.tagName) && target.type === 'submit')) return;
+
+    var form = closest(/** @type {Element} */ (target), 'form');
+    if (!form || form.getAttribute('method') !== 'dialog') return;
+
+    var dialog = closest(/** @type {Element} */ (form), 'dialog');
+    if (!dialog) return;
+
+    dialog._clickedButton = target;
+  }, false);
+
   document.addEventListener('submit', function(ev) {
     var target = ev.target;
     if (!target || !target.hasAttribute('method')) { return; }
     if (target.getAttribute('method').toLowerCase() !== 'dialog') { return; }
     ev.preventDefault();

-    var dialog = findNearestDialog(/** @type {Element} */ (ev.target));
+    var dialog = closest(/** @type {Element} */ (ev.target), 'dialog');
     if (!dialog) { return; }

-    // FIXME: The original event doesn't contain the element used to submit the
-    // form (if any). Look in some possible places.
-    var returnValue;
-    var cands = [document.activeElement, ev.explicitOriginalTarget];
-    var els = ['BUTTON', 'INPUT'];
-    cands.some(function(cand) {
-      if (cand && cand.form == ev.target && els.indexOf(cand.nodeName.toUpperCase()) != -1) {
-        returnValue = cand.value;
-        return true;
-      }
-    });
+    var clickedButton = dialog._clickedButton || dialog.querySelector('input[type="submit"], button[type="submit"]');
+    var returnValue = clickedButton ? clickedButton.value : '';
     dialog.close(returnValue);
   }, true);

Thanks for the patch, but I took a slightly different approach in #143! (Especially as the form is available on input.form or button.form).

Thank you!
Using the form property is clever because then even buttons which are not descendants of a form element but use a form attribute should be handled correctly.
The merged patch does not contain code (dialog.querySelector('input[type="submit"], button[type="submit"]')) to use the first button as a fallback when the form is submitted by other means than clicking a button (i.e. by pressing the Enter key in a text field). It instead sets the returnValue  to undefined in this case. This differs from the native behaviour in Chrome 59. Is this intentional?
Furthermore: Assume that there are multiple dialogs (which maybe but not necessarily are shown at the same time). The first dialog contains a single submit button with value "A". The second dialog contains a text-field and a submit button (whose value doesn't matter). First, I click the button in the first dialog. It closes with returnValue set to A (which is correct). Then I submit the second form by pressing the Enter key in its text field. It, too, closes with returnValue set to A (which is wrong). This happens because the global variable dialogPolyfill.formSubmitter still points to the first dialog's button.
This could be solved by using a per-dialog formSubmitter variable or by modifying the submit handler to check whether dialogPolyfill.formSubmitter belongs to a form contained in the dialog which is being closed. But this would not solve a similar issue where a dialog containing a button and a text field is first closed by clicking the button, is then re-opened and closed again by pressing Enter in the text field. What should work in both cases is to reset dialogPolyfill.formSubmitter after a dialog has been closed.

When you hit Enter in a text field, your browser actually pretends to click on the first input type="submit" or button (see spec).

Calling dialog.close(undefined) does not change the returnValue—if it's undefined, we leave it alone. This is as per Chrome. (And it makes sense—maybe you've set returnValue some special way in your code)

So because of that, some of your furthermore doesn't follow. Some of it might still be an issue—e.g., if I was to click to close one dialog, and then have another close programmatically, you're right: the formSubmitter would still be set. But the programmatic close happens now in the replaced submit() method. (I believe forms can only be submitted by a click or via submit()).
I've added a patch just in case :-)
Can you run the polyfill from HEAD and see if it solves your issue? I can do a release if it does.

First of all, please excuse the late reply. I've been on vacation.
I've taken another look at the (non-)issue and have concluced that both of my misunderstandings were a result of not knowing that browsers actually click the first non-disabled submit button when the user presses Enter. I've tested the current version of the polyfill and everything is working fine. Thank you very much! :smiley:

Thank you!—I learnt a bunch from solving this bug and we now have a better polyfill. I'll release a new version soon.


feat: Add support for load image by HTMLImageElement

This PR (delete as applicable)

Adds a new feature

Describe the changes below:
Add support for load image by HTMLImageElement.
We use phaser in our project, it is great!  And we find that load image by HTMLImageElement (without a blob process) is a lightweight way, which improve the performance. So I think we can support this feature within the phaser, and add a new config to use it.

Sure, this makes a lot of sense. Happy to merge this. I'll need to complete all the JSDocs that were missed, but that's fine, will do it now.

Amazing, thanks a lot.👍


Check module node.js 4.* to raise in express.js

Please update the AppVeyor configuration as well.

Crap, I forgot this pull request was outstanding when I committed the new version update in November, I'm sorry! So far this was the first time I forgot to use your pull request to support Node.js 4.x.


logging, termination for Windows users on run_app.py

logging, terminating code changes for Windows users with if sys.platform, else statement.

after these changes are you able to use the app and train models on windows?

@abhishekkrthakur Yes, I haven't tested all kinds of trainings, but tested with ImageClassification/google-vit-base-patch16-224, it works.

via WSL?

No, just on local machine with Windows11

could you fix code quality?
run: make style && make quality

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Start moving repositories master branch to main

There are a number of repositories that we can migrate to use main right away:

cocoon
recipes

Migrating those two repos will give us enough information about what will be required to migrate repositories with more traffic like engine. Flutter/flutter has its own challenges and will require its own design doc.

GoB configurations to keep master and main in sync have already landed.
https://flutter-review.googlesource.com/c/infra/+/18342 to move recipes to use main.

CL to use main branch in engine builders: https://flutter-review.googlesource.com/c/infra/+/18344

Start using main branch from cocoon repository: https://flutter-review.googlesource.com/c/recipes/+/18361

@godofredoc If you want to set up master->main mirroring for flutter/plugins and flutter/packages, I can start updating scripts and CI jobs as I have time; I would expect that they will be fairly straightforward repos to migrate.

Thanks @stuartmorgan, I'll send the changes for review during the day.

I think plugins and packages are likely ready to flip the mirroring and lock master, but I'm not actually sure how to test all the Cirrus jobs on main. Is there a playbook for that?

There is no playbook for cirrus that I'm aware of but it seems like we only need to change this line: https://github.com/flutter/plugins/blob/master/.cirrus.yml#L12

Please let us know when you would like to finalize the migration to block some time on the engprod calendars to help with anything that may arise.

Please let us know when you would like to finalize the migration to block some time on the engprod calendars to help with anything that may arise.

If there's enough time next week we could do packages at the beginning of the week (so there's time to roll it back if necessary) as a small-scale test of the CI and tooling--most of which is very similar to that of plugins. Then if everything goes smoothly we can do plugins when everyone is back in January.
If not, let's plan on packages early in January, followed by plugins shortly after.

Seems like packages went smoothly; can we schedule plugins for the first week of January?

Closing because the bug has not been updated for more than one year.
Feel free to reopen any bugs that you believe are important but please provide updates on how to resource the fix of the bug and what can be done to prevent the issue from not getting updates for another year.


Version 1.6.0

For Python 3.9.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

noarch: python recipes are recommended to have a lower bound on minimum python bound. This recommendation will become requirement in a future version.

@conda-forge-admin, please rerender

Delete this because there is now an automatically generated PR https://github.com/conda-forge/ecmwf-api-client-feedstock/pull/9

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Closing. V1.6.1 is already in now.

Closing. V1.6.1 is already in now.


Update docker.md

I missed a second occurrence of the typo I found ( in patch_1 ), can use this request and reject my first one. ( Sorry).

Hi @rkazak! Thanks for the submission. Similar to your previous PR, we are fixing this issue here: https://github.com/Kong/docs.konghq.com/pull/3395
Closing as a duplicate fix.


look for existing consul config on all hosts

Fix for #41
Task to read consul config file should be executed on all hosts, otherwise run_once may select to run the task on host that is not a server. This may happen because apparently Ansible evaluates run_once first and then it checks the when clause.

Thanks!


[POOL-393] Improve BaseGenericObjectPool's JMX Register performance

The algorithm for generating the JMX name for newly created pools can be very slow if the number of pools is large. This PR makes a 10x improvement without changing the naming sequence.
I tried a couple of approaches - first retrieving all the registered pool names using  the MBeanServer's  queryNames(ObjectName, QueryExp) method and and then using MBeanServer's isRegistered(ObjectName) method. The later involved many more JMX calls but was slightly faster and simpler code - so this PR uses that approach.
This PR seems to provide the performance improvement without changing behavior - which Phil didn't like in https://github.com/apache/commons-pool/pull/115

Codecov Report

Merging #199 (3026c61) into master (eb2cf8e) will increase coverage by 0.10%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #199      +/-   ##
============================================
+ Coverage     81.83%   81.94%   +0.10%
- Complexity      760      763       +3
============================================
  Files            42       42
  Lines          3066     3068       +2
  Branches        308      309       +1
============================================
+ Hits           2509     2514       +5
+ Misses          450      449       -1
+ Partials        107      105       -2

Impacted Files
Coverage Δ

...ache/commons/pool2/impl/BaseGenericObjectPool.java
88.36% <100.00%> (-0.43%)
:arrow_down:

...g/apache/commons/pool2/impl/GenericObjectPool.java
85.41% <0.00%> (+1.30%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Sorry Gary, not sure what you mean about retries. When it retries it changes the name by incrementing the count - since the count is appended to the name of the MBean being registered. So I'm not sure how this gets into an infinite loop?

What if another thread, somewhere, is also using Pool, also wanting JMX...

The class docs state it's intended to be thread-safe, and that i variable's scope is limited to the method. It should be fine regarding other threads trying to instantiate it I think.
I think @garydgregory is right asking if it there is a scenario where it just keeps going in a loop trying to register jmxbean, jmxbean1, jmxbean2, ..., jmxbean9999. But I think if that's a possible scenario, that deserves a separate issue as I think that affects master too (or at least deserves a comment in the javadocs or in the code body telling others why that wouldn't happen).

Firstly I would say that this PR doesn't change the logic of the method - it just  checks first whether theres already a MBean with the same name rather than trying to register an MBean and having it throw an InstanceAlreadyExistsException and this appears to improve the performance x10 despite all the additional calls to the isRegisterd() method.
On the issue of multiple threads registering multiple pools at the same time, then they will iterate until a free name is found and the only possibility I see for an infinite loop would be if all possible names had already been registered. Its hard to conceive of that being the case and I suspect that other issues would occur in that case (out of memory issues).
So locally I created a test case with two Callable instances which both create 3 thread pools in separate threads and then printed out the JMX Name of each pool and it produced the following results:
First Task:

org.apache.commons.pool2:type=GenericObjectPool,name=pool2
org.apache.commons.pool2:type=GenericObjectPool,name=pool4
org.apache.commons.pool2:type=GenericObjectPool,name=pool6

Second Task:

org.apache.commons.pool2:type=GenericObjectPool,name=pool3
org.apache.commons.pool2:type=GenericObjectPool,name=pool5
org.apache.commons.pool2:type=GenericObjectPool,name=pool7

If you want I can add this test case to the PR?
(Note: the reason there isn't an MBean with name=pool is because TestBaseGenericObjectPool sets up a GenericObjectPool in the setup() method of the test which is already registered)

Hi all,
I don't think we need address tests since this PR just tweaks the existing allocation. Unless we go with random numbers, we just have to accept that one app can allocate names 1 through 100, and that all other apps have to test 1 through 100 before settling on 101, or 102, and so on. I think there can still be a race condition, but we can fix that separately.
Curious to see what @psteitz thinks.

@psteitz ?

Sorry to be late responding here and great to see you working on pool, Niall!  Looks good to me.  And I like it better than my previous attempt because it keeps the sequence of identifiers contiguous.  We do need to worry about concurrent access, but the only contention issue that I can see is the if name check succeeds for one thread and another grabs it, but the code catches the exception that would happen in that case and increments.  So should be fine.  One small nit is pls get rid of the system out in the unit test.  There is already too much spewage from [pool] unit tests (some of it my fault I am sure).  Sorry again to be slow to respond.


[🐞] repl returns 404

Which component is affected?
Qwik Playground
Describe the bug
All tutorials and example previews return a 404
eg. https://qwik.builder.io/tutorial/welcome/overview/
Reproduction
https://qwik.builder.io/tutorial/welcome/overview/
Steps to reproduce
No response
System Info
general

Additional Information
No response

Any update on this?
🙂

hi @bsljth
i didn't have time so far to look into this and guess thats the case for the core-team as well. will try to have a lookt at it later unless smb else is "qwiker" 😃

Oh, okay.

imo there is an issue on the docs build itself. i am getting this error:
error during build:
TypeError [PLUGIN_ERROR]: Unknown file extension ".ts" for <path>/qwik/packages/qwik/src/build/index.ts

when running pnpm build.server.
tried to upgrade to latest version of cloudflare-pages adapter, which didn't change the result but added manifest to then createQwikCity fn.
@adamdbradley @manucorporat any hints/ideas?

For your information, it seems to be working again

playground + tutorial is broken for me: Linux Mint Firefox & Chrome

Still not working?
It's not working for me

Not working for me in India!

Not working for me either. Getting this error on the sandbox and tutorial pages:


Revert "Add pv.start_xvfb() in first cell in not vtk-egl environment"

Reverts pyvista/pyvista-tutorial#308

@pyvista-bot LGTM


Overhaul the map drawing UI

Try out this PR: https://acteng.github.io/atip/draw_v3/scheme.html?authority=West of England Combined Authority#9.86/51.476/-2.513
Old/current version: https://acteng.github.io/atip/scheme.html?authority=West of England Combined Authority#9.86/51.476/-2.513

Towards #58.  It's easiest to just run locally and try it out, but here's a video:
https://user-images.githubusercontent.com/1664407/229365933-8c70f1f6-19d3-4ce3-a914-278506fad8b2.mp4

Distinguish "select" and "edit" mode. The first is about editing the form/properties of an object, and the second is about editing geometry. These need better names! The motivation is that the form will likely soon move from the sidebar to a modal.
Replace the on-screen toolbox with our own custom thing. This gives us room to put in contextual instructions.
Get the new route editing functionality working. You can now edit the waypoints of an existing route.

This needs much more work before merging, but I'm at the point where I'd love feedback. Does this feel like the right way forward? What should change? And a specific question: what should we allow doing on the sidebar while in anything other than "Select" mode? While we're editing geometry or drawing a new area, it feels confusing to me to click something on the sidebar. Ideally that would "cancel" any of the geometry editing state and jump back to "select" mode. Or maybe it's more clear to disable and grey out all the controls over there?

Having a quick play locally and run across a situation causing a crash:
If you select New Point, but then immediately click New Polygon and immediately click back to New Point (without drawing) it crashes with the following error:
Uncaught (in promise) Error: Source "mapbox-gl-draw-cold" already exists.

https://user-images.githubusercontent.com/20887250/229373432-37d5f81e-0078-4eda-a842-9dcaccc9bfa6.mov
Actually, just clicking from New Polygon and immediately clicking back to New Point causes this crash.

I like the changes here a lot, I spent time mostly just making routes, adding points and making polygons but will try and have a play with select and edit more too.
My only initial feedback would be is it possible wrap the text when a button in the toolbox is active to avoid hiding more of the map.
Before New Polygon active:

After New Polygon active:

Actually, just clicking from New Polygon and immediately clicking back to New Point causes this crash.

Thanks for finding the bug! There are two PointOrPolygonMode components, both managing a mapbox-gl-draw instance. When we change mode, I'm guessing we set up the new one before tearing down the old one. I'll think about how to fix that, either by forcing something with the ordering... or maybe just having one copy of mapbox-gl-draw somewhere, instead of constantly creating and destroying. Having similar implementation debates for implementing "edit point/polygon."

I'll think about how to fix that, either by forcing something with the ordering... or maybe just having one copy of mapbox-gl-draw somewhere

I went with the latter, because reasoning about ordering is hard in general, and also https://stackoverflow.com/questions/64514581/what-is-the-order-that-reactive-statements-are-executed-in. The bug you found is fixed now, but still lots more fixes to go before this is ready. I'll ping when a review would be helpful.
Though one question in the meantime: if you're in the middle of drawing a route or editing a polygon's geometry, the interactions with the left sidebar are confusing. What should they do? Should they be disabled while editing geometry, or should clicking them just silently cancel the geometry edit and switch back to selection?

OK, I feel like I've dug out of the hole now and addressed some of the big problems:

changing between modes is now much more clear in the code, and there are only some smallish bugs
if we're willing to have feature IDs jump around on save/load, no longer any bugs there

The last big hurdle before I'd call this ready for real review is figuring out what to do about sidebar interactions

As discussed, for now, if you click something in the sidebar, we jump to editing the form of that thing. The only major clunkiness is that the hover state (both in the map and sidebar) gets kind of stuck based on what's hovered in the sidebar, depending on the mode you're in:
https://user-images.githubusercontent.com/1664407/230404152-cc2214d9-7ed3-4729-a1b6-5c0238974392.mp4
I'm not sure how to improve on this right now, so vote for leaving it as-is. I'll file issues and follow-up with more tightly scoped next steps. In particular:

Stop using Carbon's accordion. The entire reason we need properties.editing and lots of confusion is due to how the library communicate state changes with bound vaariables. And we can't do things like change the style to show hovering on a map object.
Write our own point and polygon drawing tools. Neither is hard with straight Svelte, and getting rid of mapbox-gl-draw is high on my agenda.
Take over the controls/button for the route tool, to unify the style
Figure out how to write tests, so we could automate the quadratic explosion of transitions between modes

But for now, please comment with any show-stopper changes you'd like to see before merging this PR

I can't see the GitHub action adjustments you made to deploy just this branch? I'm sure I'd definitely seen them previously but am now doubting myself slightly (although you definitely did it somewhere because we've still got a version of draw_v3 deployed)

https://github.com/acteng/atip/commit/a121258ba360dda9af3e30d43cecbdac86dace0a I made the commit to main outside of a PR so it took immediate effect, sorry to be confusing!

a121258 I made the commit to main outside of a PR so it took immediate effect, sorry to be confusing!

Ahh gotcha! I think that action hasn't been running for more recent changes of this branch? In the actions log the only time I can see it running was when you pushed to main? I think this is because that updated action yml isn't present in this branch and I /think/ that for an action to run on a particular branch it requires that said branch contains the workflow.

I think this is because that updated action yml isn't present in this branch and I /think/ that for an action to run on a particular branch it requires that said branch contains the workflow.

Ahh that makes sense! And actually it means it would've worked to make the workflow change here. I wasn't sure how things worked. I just rebased this PR and force-pushed, so it should deploy properly now..

Thanks for the review! I'll merge this and work on followup improvements, or file issues.

I think drawing a bit of a component tree might be worthwhile at this stage, just to help keep track of how this is stacking up. I may if I have time over the long weekend draft something up in Miro and link back here.

Yes! I was looking at https://github.com/oslabs-beta/svelte-sight/ and similar for automating this. Understanding how props flow up and down the tree could be nice. Mostly we're using the stores as global singletons and not plumbing everything everywhere, though

I had quick peek at svelte-sight but didn't really have a play. I started drawing something up on miro although got side tracked and not sure of the best way to illustrate all the flows (i'm just trying to illustrate components and props here)


Remove TOCTOU hazards by moving all checks into execute and renaming the Component methods

Describe the bug
Zellic observed many TOCTOU bugs in our ActionHandler impls. These all have a common cause: the aggressive use of check_stateful, which does parallel checks against a snapshot of chain state prior to any execution. The problem is that this separates an action's checks from its execution.
We can eliminate this bug class by simply not doing this.
Expected behavior

[ ] All code currently in check_stateful impls shall be moved into the execute methods, unless there is a simple AND LOCAL explanation for why it is safe to perform the check against historical state.
[ ] All intra-action consistency checks shall be removed. For instance, we will not be checking that a transaction has duplicate nullifiers, because we will handle each action in isolation.
[ ] The current execute method shall be renamed check_and_execute.
[ ] The current check_stateful method shall be renamed check_historical, and the docs shall be updated to note that it is run in parallel with a snapshot of the chain state some time prior to execution of the action, that it presents a TOCTOU hazard, and that it should be avoided in favor of check_and_execute unless it is known to be safe.

this was fixed in #3962! i believe this can be closed as completed now?


Update Node to v14

should be updated to v14
but we need to see if old shopware versions still work before doing this

Hello,
love your work, big fan of the project.
Just my two cents regarding to this feature.
This would be a great feature, especially if the node-version would be configurable (changes to shopware/platform suggest shopware 6.5.x might have node 16 as strict requrement).
Shopware uses nvm, which could be used in this project as well.
Link to usage of nvm in shopware/platform
Another usage of nvm in shopware/platform

Hi there
thanks for your kind words
that sounds great
ill check it out, thx

oh its so good
just playing around with it and indeed the solution for what i am trying to add

Hi,
this is wonderful news!
I am happy that I could contribute something, thank you for the update!

:) great to hear
also, had a hard time using nvm, because it seemed to have different bash scopes in dockerfile, entrypoint and when you actually connect into the container...so its not yet done, but in a different feature branch...
i think i was just too dumb last week :D ill give it a retry, just if its not rolled out soon and you might be wondering what is going on

Hi,
thank you for the update!
I was testing nvm in a dockware image before initially commenting but could not get it to work properly (testing if the solution is feasible, it wasn't pretty).
Thank you for keeping me in the loop and mentioning the feature branch!

alright, hope to have it working sooner or later :)

released with nvm switching :)


Feature request.. to add Limit option

as discussed with @StrongMonkey  that rio is currently supporting only request option while assigning cpu request and memory request .
It would be helpful if rio also support limit options to

I'd prefer that a lot too!


Any chance to continue this work on other Cloud platforms ?

Hi, good question. 1) Which platform, MS Azure, Amazon? 2) What do you mean by continue, please write in details which functionality, interface, which code to add?

Hi @AndrzejRPiotrowski ,
I only provided the scripts to run it automatically on GCP, but the code (training, eval, model) is platform-agnostic. It should work on any platform, it's only up to you to make it run on the platform you want.
This repo has been on hold for a little bit (you can see there hasn't been any commit in a while), I'm also not sure all of the API of tensorflow-models is still up to date. The dataset for this repo is private, so you don't have a good way to train the model by yourself. While I generally encourage contributions, I'm not sure the changes you mentioned would be relevant for this repository.

Hi, good question. 1) Which platform, MS Azure, Amazon? 2) What do you mean by continue, please write in details which functionality, interface, which code to add?

Amazon. I was thinking of having this as "self" diagnostic API :) For people who want to help build the model. So i was hoping that some patients can send x-ray as "free-of-charge" and help build this model.
To be specific, simple CRUD app with x-ray add to model trainning.

Hi @AndrzejRPiotrowski ,
I only provided the scripts to run it automatically on GCP, but the code (training, eval, model) is platform-agnostic. It should work on any platform, it's only up to you to make it run on the platform you want.
This repo has been on hold for a little bit (you can see there hasn't been any commit in a while), I'm also not sure all of the API of tensorflow-models is still up to date. The dataset for this repo is private, so you don't have a good way to train the model by yourself. While I generally encourage contributions, I'm not sure the changes you mentioned would be relevant for this repository.

Thank You for the reply.
Most interesting topic is mode set :

how many x-ray images ?
how long it was working :) to get a good detection rate ?
what was the best detection rate ?

size of images?
labeled with rect angle or polygon?

Hi all,
You can find some answers to your questions here https://clemkoa.github.io/dental/2018/06/10/deep-learning-dental-x-ray.html
I welcome any contribution if you want to make this model work on other cloud platforms, and if you want to build a webapp for image upload. You can create yourself a dummy dataset by scrapping a few panoramic x-ray pictures from google image.

@clemkoa Great. Thank You with this.

@clemkoa
Still waiting for my x-rays due to i want to have at least 100. Will be in contact beause i am sure lot of people here will want to help.
Great project again.
My idea is to have easy access to people x-ray using web app - they have some sort of info about x-ray - i have more x-rays to play with - not in comercial way.

I am closing this issue because it's been inactive for a while. Hope you manage to build your dataset - good luck!


User identity

This is kind of solved, since each node has an unique ID based on its public key, we can store the private key somewhere and use it as identity (similar to crypto currencies wallets)

This is kind of solved, since each node has an unique ID based on its public key, we can store the private key somewhere and use it as identity (similar to crypto currencies wallets)


cmd/checkpoint: use kubelet's client certs for the kubelet API

Use the client certs in the kubelet's kubeconfig to talk to the
kubelet API. This has no effect currently, but will once the
kubelet enables API auth. We assume the kubelet's client certs
originate from the same CA that cert auth trusts.
These are checkpointer changes split out from #345 so we can
do a release then import it later once we turn on kubelet auth.
cc @pbx0

rktkbot run checkpointer tests

rktbot run checkpointer tests

@pbx0 all green!


How to make it work?

If you're having trouble with NCM2, Please provide the following information
along with your detailed issue description:
OS
Windows 10
(If you're using Linux, sharing a reproducible, vimrc minimized docker image,
can definitely help solving the issue)
neovim :version output
:version                                                                                NVIM v0.3.8                                                                                Build type: RelWithDebInfo                                                                                LuaJIT 2.0.5                                                                                Compilation: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe /DWIN32 /D_WINDOWS /W3 /MD /Zi /O2 /Ob1 /DNDEBUG -DMIN_LOG_LEVEL=3 /W3 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -D_WIN32_WINNT=0x0600 -DINCLUDE_GENERATED_DECLARATIONS -DNV
IM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -IC:/projects/neovim/build/config -IC:/projects/neovim/src -IC:/projects/neovim/.deps/usr/include -IC:/projec
ts/neovim/build/src/nvim/auto -IC:/projects/neovim/build/include                                                                                Compiled by appveyor@APPVYR-WIN                                                                                Features: -acl +iconv -jemalloc +tui                                                                                See ":help feature-compile"                                                                                system vimrc file: "$VIM\sysinit.vim"                                                                                fall-back for $VIM: "C:/Program Files/nvim/share/nvim"                                                                                Run :checkhealth for more info
Minimal vimrc for reproducing the issue
    " assuming you're using vim-plug: https://github.com/junegunn/vim-plug
call plug#begin(stdpath('data') . '/plugged')
    Plug 'ncm2/ncm2'
    Plug 'roxma/nvim-yarp'

    " enable ncm2 for all buffers
    autocmd BufEnter * call ncm2#enable_for_buffer()

    " IMPORTANT: :help Ncm2PopupOpen for more information
    set completeopt=noinsert,menuone,noselect

    " NOTE: you need to install completion sources to get completions. Check
    " our wiki page for a list of sources: https://github.com/ncm2/ncm2/wiki
    Plug 'ncm2/ncm2-bufword'
    Plug 'ncm2/ncm2-path'
   Plug 'ncm2/ncm2-racer'
call plug#end()

neovim :messages output when the error occurs
Log files if you think the issue is a bug
2019-12-06 10:52:14,845 [ERROR @ base_events.py:default_exception_handler:1285] 1092 - Exception in callback _ProactorBaseWritePipeTransport._loop_writing(<_OverlappedF...ed result=133>)
handle: <Handle _ProactorBaseWritePipeTransport._loop_writing(<_OverlappedF...ed result=133>)>
Traceback (most recent call last):
  File "C:\Applications\Python\lib-python\3\asyncio\events.py", line 145, in _run
    self._callback(*self._args)
  File "C:\Applications\Python\lib-python\3\asyncio\proactor_events.py", line 291, in _loop_writing
    self._write_fut = self._loop._proactor.send(self._sock, data)
  File "C:\Applications\Python\lib-python\3\asyncio\windows_events.py", line 457, in send
    ov.WriteFile(conn.fileno(), buf)
  File "C:\Applications\Python\lib_pypy\_overlapped.py", line 352, in WriteFile
    ret = _kernel32.WriteFile(self.handle, self.write_buffer, len(self.write_buffer), written, self.overlapped)
TypeError: initializer for ctype 'void *' must be a cdata pointer, not bytearray

Just installed ncm2 and can't make it work. Should it? Or do I have to do something else to make it?

same here. Just installed, and there's no popup opens.


Some textfields aren't big enough on default display settings

How do people live like this?

In addition to making some fields a bit wider, also reduce the inner padding for some fields.


additional user parameters for view classes

The view loader must forward all received input parameters, beside the view class name to the init method of the view class. User must define this method on his or her own. If the method is not defined, then no additional parameters are passed to the view class.
Part of slaxweb/framework#83

Resolved.


[Technical] Add tests for header and footer

This commit adds tests for header and footer in DynamicTableViewController.
There are still some tests to write for this class.

Checklist

[x] Test your changes as thoroughly as possible before you commit them. Preferably, automate your test by unit/integration tests.
[x] If this PR comes from a fork, please Allow edits from maintainers
[x] Set a speaking title. Format: {task_name} (closes #{issue_number}). For example: Use logger (closes # 41)
[x] Link your Pull Request to an issue (if applicable)
[x] Create Work In Progress [WIP] pull requests only if you need clarification or an explicit review before you can continue your work item.
[x] Make sure that your PR is not introducing unnecessary reformatting (e.g., introduced by on-save hooks in your IDE)

Description

Improve test coverage in DynamicTableViewController.

Hm... archiving fails. I don't really understand why. Will look into it tomorrow night.

It didn't take longer. I just managed a few minutes ago to make SwiftLint happy.


New icons not adjusting size correctly

Icon sizes for manually placed weather icons are not adjusting appropriately on map zoom-level changes

Closed by 239518a


Sending status code and message with response.send in AdonisJS version 4.1 shows always 200

I am writing RESTful APIs with AdonisJS version 4.1, and I am trying to send from the server error messages, whatever they are.
First, I have created an Operation class which has common operations for storing errors and validating the rules.
"use strict";

const Validator = use('Validator');
const HTTP = use("App/HTTPResponse");

/**
 * Class model for basic operations
 *
 * @author gabriel
 * @class
 */
class Operation {
  constructor() {
    this.errors = [];
    this.validator = Validator
  }

  /**
   * Common rules
   *
   * @returns {{}}
   */
  get rules() {
    return {}
  }

  async validate() {
    this.errors = [];

    const validation = await this.validator.validate(this, this.rules);

    if (validation.fails()) {
      validation.messages().map((err) => {
        this.addError(HTTP.STATUS_INTERNAL_SERVER_ERROR, err.message);
      });

      return false
    }

    return true;
  }

  /**
   * Function for adding an error message to the array of errors
   *
   * @param code
   * @param message
   * @returns {Promise<void>}
   */
  async addError(code, message) {
    await this.errors.push({ code, message })
  }

  /**
   * Gets the first error on the errors list
   *
   * @returns {Promise<*>}
   */
  getFirstError() {
    return this.errors[0]
  }
}

module.exports = Operation;

Then, my InvoiceInfoOperation, which extends Operation class, will attempt to validate these fields before proceeding with the operation:
class InvoiceInfoOperation extends Operation {
...
async store() {
  if (!this.validate()) {
    return false;
  }
  ...
...

Then, the InvoiceInfoController:
async store({ request, response }) {
  const op = new InvoiceInfoOperation();
  op.invoiceId = request.input("invoiceId");
  op.invoiceAmount = request.input("invoiceAmount");
  op.paymentTarget = request.input("paymentTarget");

  const store = await op.store();

  if (!store) {
    const error = op.getFirstError();
    return await response.send(error.code);
    // return await response.send(error.code, error.message);
    // return response.status(error.status).send(error.message);
  }

  return response.send(200);
}

The commented codes are my previous attempts. Also tried without await. The thing is that using Insomnia software, I can see the status code is always shown 200. Take an example where I forgot to specify a mandatory field, which will then execute the addError method from Operation, since the validation fails:

The number "500" that is shown here what is passed to send() to the controller. Obviously, since there is a 200 at the top of the window of Insomnia, it means it is not sending anything.

It has to be
response.status(statusCode).send(body)

Going to close


Ignore Historical Info if validator set is nil

As discussed this is disabling historic information which is required for IBC


Compile module_mono_enabled=yes with use_asan=yes in dev_build=yes fails

Godot version
4.0 dev (72b845b)
System information
Windows 10
Issue description
Compile godot with following options fails:
scons platform=windows target=editor arch=x86_64 dev_build=yes dev_mode=yes optimize=none use_asan=yes vsproj=yes module_mono_enabled=yes
And it produces following errors:
modules\mono\csharp_script.cpp(342): error C2220: the following warning is treated as an error
modules\mono\csharp_script.cpp(342): warning C4458: declaration of 'script' hides class member
P:\GodotProjects\godot\core/object/object.h(598): note: see declaration of 'Object::script'
modules\mono\csharp_script.cpp(771): warning C4458: declaration of 'script' hides class member
P:\GodotProjects\godot\core/object/object.h(598): note: see declaration of 'Object::script'
modules\mono\csharp_script.cpp(801): warning C4458: declaration of 'script_instance' hides class member
P:\GodotProjects\godot\core/object/object.h(597): note: see declaration of 'Object::script_instance'
modules\mono\csharp_script.cpp(840): warning C4458: declaration of 'script' hides class member
P:\GodotProjects\godot\core/object/object.h(598): note: see declaration of 'Object::script'
modules\mono\csharp_script.cpp(892): warning C4458: declaration of 'script' hides class member
P:\GodotProjects\godot\core/object/object.h(598): note: see declaration of 'Object::script'
modules\mono\csharp_script.cpp(958): warning C4458: declaration of 'script_instance' hides class member
P:\GodotProjects\godot\core/object/object.h(597): note: see declaration of 'Object::script_instance'
modules\mono\csharp_script.cpp(976): warning C4458: declaration of 'script_instance' hides class member
P:\GodotProjects\godot\core/object/object.h(597): note: see declaration of 'Object::script_instance'
modules\mono\csharp_script.cpp(996): warning C4458: declaration of 'script' hides class member
P:\GodotProjects\godot\core/object/object.h(598): note: see declaration of 'Object::script'
modules\mono\csharp_script.cpp(2134): warning C4458: declaration of 'script_instance' hides class member
P:\GodotProjects\godot\core/object/object.h(597): note: see declaration of 'Object::script_instance'
modules\mono\csharp_script.cpp(2697): warning C4458: declaration of 'script' hides class member
P:\GodotProjects\godot\core/object/object.h(598): note: see declaration of 'Object::script'
scons: *** [modules\mono\csharp_script.windows.editor.dev.x86_64.san.obj] Error 2
scons: building terminated because of errors.

Steps to reproduce
scons platform=windows target=editor arch=x86_64 dev_build=yes dev_mode=yes optimize=none use_asan=yes vsproj=yes module_mono_enabled=yes
Minimal reproduction project
No response

Ran into this myself recently and opened a PR for it


fixed startup for PySide6 and PyQt5 and PyQt6

It seems that a renaming from QApplication to QtGuiApplication is needed to get it running with PySide6, PyQt5, PyQt6

I haven't tested, but it looks straightforward enough. Thanks for your contribution!

that was really fast. :D


Godot can't find plugin.cfg files in addons sub-sub-folders

Godot version:

3.2.3
OS/device including version:

Windows
Issue description:

I need to have my plugins in sub-sub-folders of addons/ folder.
Say addons/me2beats/a/a.gd, addons/me2beats/b/b.gd etc
One of the reasons for this may be that I would not want a conflict of plugin names with plugins from other developers.
Another reason is that there can be a lot of plugins (say, several hundred small plugins) which I'd like to logically divide into subfolders.
The issue is Godot in this case can see plugin.cfg files only in addons and addons/me2beats,
and it doesn't go deeper for some reason (maybe so Godot doesn't run recursively through all  addons/ subfolders)

this limitation is not specified anywhere in the documentation.

it is possible to create plugins in addons/ sub-sub-folder with Create a plugin dialog (see below).
The plugin file and cfg file are generated correctly, but the plugin cannot be found.

Steps to reproduce:

Create a plugin with Create a Plugin (Project - Project settings - Plugins - Create a Plugin),
in Subfolder field specify sub-sub-folder using / for example a/b or sub/subsub.
As you will see, sub and sub-sub folders created, plugin.cfg and plugin.gd created too but godot doesn't see this plugin

Minimal reproduction project:

It's likely that it's not a feature currently, but as you said, it lacks documentation, so I'd assign documentation label, and/or transfer this issue to the GIP repository, or create a new proposal.
I've just written a similar proposal for the custom_modules build option (much like addons but in C++): godotengine/godot-proposals#1619, so this could be similarly applied for the addons to add a recursive plugin search option is the editor settings, for instance.

This was implemented by https://github.com/godotengine/godot/pull/43734, closing.


supporting remoteproc?

I am not very experienced, but I think a major feature of the mp1 series is the MCU which can communicate fast with host. It seems this is not supported by these images? Would you mind to hint to me how should I solve this problem / add this support?

Answering my own question after some search. https://community.st.com/t5/stm32-mpus-products/missing-dev-ttyrpmsg0/td-p/106946
It seems that ST changed their handling of RPmsg and the old prebuilt ubuntu here probably no longer works with latest stm32cube library for the M4. I reverted to 1.4 of the stm32cubemp1 and it worked.
Also, this image does not allow ssh root login in default, but stm32cube requires that.
I am wondering what should I update on the A7 end? Is it linux or gcnano-binaries ?


RatInABox2.0 - Opening the discussion

I've begun to think about 2.0. The reason is that there are are certainly a couple of choices I made early on in development which weren't optimal. Now could be a good time to fix these as the community is growing but still small enough it won't be super disruptive. Also fixing them will make it easier to maintain RiaB in the long run.
I'm opening this issue to get community thoughts on this. @SynapticSage @colleenjg @jquinnlee @mehulrastogi you're some of the most active users I know fairly well so I'm tagging you to get your input (if you have any), but anyone can chip in here.
Here's my thoughts:

Args not Dicts: It's increasingly annoying me that parameters are always handed in as dicts. This is unconventional and has warranted very-well-made but hacky work-arounds e.g. #38 #39
Plotting: To me at least the visualisation ability of RiaB is really important but animations are slow and I like animating things so this annoying. Could improve by being smarter about how we render stuff in matplotlib, and not re-rendering the Environment or trajectories each frame. Stuff like that. See #54
Type hinting: This is a new thing in python which I've been told to consider. Any thoughts?
Refactoring: As discussed in #58 #55. E.g. it's not nice having all Neurons classes in one .py file.

Documentation: Would be great to have a sustainable ReadTheDocs page. #36

Unit testing: I have been pretty sloppy about this but will add loads more.
Global Environment update(): Given, now, Environments know about their Agents and Agents know about their Neurons we could have just one update function in Env which cascades through else thing else. Cleaner?
Jax compatibility: Very on the fence about this one. Probably leaning towards not doing it. Would be great to have speed ups, autograd and gpu capacity but it could be just a bit too much / unnecessary / off-putting for non-python geeks (tbh, like me). But if jax is the future I want to consider it. Options include:

Don't do to
Partial jax to hit a few heavy-lifting utils functions. Q: Does this even work, would converting to/from jax arrays not be inconveniently slow here?
Full jax no numpy. np--> jnp everywhere.
Both jax and numpy. Users choose which backend. This should hard but I've played around and probably could be done. Has complications though.

...?

I'm not a massive software guy so @SynapticSage @mehulrastogi feel free to give high level comments about best way to go forward.

args, not dicts ✅
a helpful case study in support of args  ...
Most of you (I'm sure) have seen Grant Sanderson's beautiful 3blue1brown YouTube channel. Grant impressively homebrewed a piece of software manim (math animation engine) that he uses to make his stunning videos.
manim actually started out using a CONFIG dict --- reminiscent of this situation 🤔
On a positive note, the CONFIG dict cut down on lines in object init; encouraged people to spell out settings in one place.
But on the dark side, dicts required nearly re-coding a lot of Python features handled by kwargs and setting attributes. Ultimately the community fork decided to kill CONFIG dicts in favour of args -- decision convo here:
https://docs.manim.community/en/stable/changelog/0.2.0-changelog.html
And, it looks like Grant Sanderson's fork is also trying to remove them: https://github.com/3b1b/manim/pull/1932
plotting 👍
💯 replotting = slow.
... if ratinabox caches plot objects, super recommend scheme we chatted about:
https://github.com/TomGeorge1234/RatInABox/issues/30#issuecomment-1486449726
The TaskEnvironment has a weak version of this feature -- doesn't replot everything and thus renders quickly. But it's pretty hacky in my view that the environment caches things about its agents and goals. In the long-run, it will be more maintainable to have each class in charge of caching its own plot objects rather than having to change master supervisor class's plot every time the children classes change.
type hinting 👍
Especially easy-to-type variables.
Tools like jedi and language-server-protocol offer better code completion for type-hinted variables.
unit testing  👍
global environment 👍
Possible suggestion: each RIB class could have a list of children (environment.childen = [agent, ...]; agent.children=[neuron,...]) may help cascade .update() and .plot()/.render() calls down a hierarchy. and would unify the lingo for distributing update/plot. as opposed to each object having a different attribute name for its "kids".
Jax 🤷♂
No strong opinions. I usually break into optimization mode when an analysis takes more than a day to finish or if it takes an hour, but I run it 100+ times.
Maybe partial is the right choice? Ease into slowly.

Sounds like a great idea overall for the longevity of the package! I definitely agree for the args instead of dicts, type hinting and unit testing. For global environment, if the cascading update is implemented, I would suggest having a kwarg like cascade=True, to allow users to opt out, when needed. No strong views on the other sections.
I would suggest an additional section:
modularity: Many of the classes have very long methods that chain a lot of complex, separate computations together. When I've created new classes for my own use, e.g., new Agent classes, I've had to copy long sections of certain methods that I needed to overwrite, but only partially (for example, for computing an agent's velocity). This can create a lot of code duplication (I think there may already be some for the plotting methods). So, I strongly recommend adding the goal of modularization to the list, i.e., extracting meaningful subparts of class methods and turning them into their own functions, perhaps aggregated into agent_util.py, env_util.py and neuron_util.py, or something like that.

Great comments, thanks guys. @SynapticSage 3B1B advice heeded! @colleenjg you're right this could be more modular, for example Agent.update() is pretty enormous. Breaking these down would make sense so I'll look to do that. Don't expect this anytime soon btw so any new ideas, keep posting them here.

Thanks for the feedback, closing for now.

One thing that just occurred to me, which could be considered:
Only passing ax to the plotting functions, not fig.
In typical use cases, to my knowledge, passing both should be redundant, as you can access the figure with ax.figure (or ax.ravel()[0].figure in cases where ax is an array).

Agreed and added to the list. It's essentially redundant and only add bloat

@musicinmybrain thanks for your feedback -  that's ok, I doubt we'd go full jax. In fact leaning towards no jax at all actually. After some preliminary testing seems like getting significant speed ups would be difficult as most of the heavy computations are already vectorised


Remove unnecessary steps from lint job.

Because pre-commit–based mypy doesn’t depend upon the packages in the installed directory, the only thing we need to install is pre-commit.

Codecov Report
Base: 78.69% // Head: 78.49% // Decreases project coverage by -0.20% :warning:

Coverage data is based on head (f2ef83e) compared to base (190f216).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #767      +/-   ##
==========================================
- Coverage   78.69%   78.49%   -0.20%
==========================================
  Files          30       30
  Lines        2009     2009
==========================================
- Hits         1581     1577       -4
- Misses        428      432       +4

Flag
Coverage Δ

python
78.49% <ø> (-0.20%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

apis/python/src/tiledbsoma/collection.py
84.32% <0.00%> (-1.63%)
:arrow_down:

apis/python/src/tiledbsoma/sparse_nd_array.py
94.06% <0.00%> (-0.85%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Missing column error

As of yesterday I get cdl_runner::db_client: Error(Db(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState("42703"), message: "column \"external_tool_id\" of relation \"assignment_dim\" does not exist", detail: None, hint: None, position: Some(Normal(182)), where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("parse_target.c"), line: Some(954), routine: Some("checkInsertTargets") })) when running the loader.

Hey @stuartf ,
This is actually a purposeful footmine that we should probably get rid of, since more people adopted the tool than expected as an interim solution. It was originally built to not update the schema automatically (so users would be aware of schema changes, and give them a motivation for changing to a fully managed tool).
Essentially what's happening here is the tool doesn't drop the old version of the "non-volatile" tables when a new schema is published (but reads the files with the new schema). Thus leading it to insert a column that doesn't actually exist in the schema. (The "quick fix" here is to drop all the tables that added/dropped rows mentioned in the release notes: https://community.canvaslms.com/docs/DOC-14270-canvas-data-release-notes-2018-02-27 ).
I'll talk internally to our product manager over data, and see if she would like for us to fix the footgun, or just note it in the readme (for reasons mentioned above). Because users should at least be aware of this limitation if we decide to not merge a fix in upstream.

I'd support the change to update the schema automatically.

After some internal discussion we've decided that upgrading the db in place is fine, and we don't think it'll get people too attached.
I'll be pushing something up for this soon.

This has been fixed in the latest commit.


How to set song duration for all tracks?

#25 # Question Checklist

[ X ] I updated Amplitude.js to the latest version
[ X ] I read the docs
[ X ] I searched for existing GitHub issues

Question Description

I have initialized Player by Amplitude.init({"songs": []});
i have created an html like

        Song name 1
        Artist name

    3:30

it was not shown in docs but nonetheless...
How can i set song duration for all tracks while initializing?
In docs i only finded infomartion about current playing song duration...

Not possible right now, it is in roadmap though - https://github.com/521dimensions/amplitudejs/projects/11#card-23987504

I did it manually, maybe it will be useful to someone
// array containing my songs
const songs_options = [{
  name: "song 1",
  url: "/audio/song1.mp3"
},
{
  name: "song 2",
  url: "/audio/song2.mp3"
}];

// Amplitude initialization
Amplitude.init({songs: songs_options});

// create audio elements - to read songs duration
let audio_arr = [];
songs_options.forEach((song, index) => {
  const audio = document.createElement('audio');
  audio.src = song.url;
  audio_arr.push(audio)
});

// get each song duration and put it in html element with '.song-duration' class name
audio_arr.forEach((audio, index) => {
    audio.addEventListener('loadeddata', () => {
      const minutes = Math.floor(audio.duration / 60);
      const seconds = Math.floor(audio.duration % 60);
      document.querySelectorAll('.song-duration')[index].innerHTML = `${minutes}:${seconds > 10 ? seconds : '0'+seconds}`;
    });
});

Not a most elegant solution, but it's working well for me.

@jejopl 's solution works for sure. The only thing I think could come up would be that loading all of the songs could be slow on mobile. If the audio only loads the meta data, then this could be a viable solution (which we could implement into the core).
The other option is to do custom metadata if you already know the duration of the songs: https://521dimensions.com/open-source/amplitudejs/docs/elements/metadata-elements.html#text-metadata


Results of rzi_objectsFromArray should be ordered

The resulting list from invoking rzi_objectsFromArray should maintain the order of the passed in list.

The PR at https://github.com/Raizlabs/RZVinyl/pull/84 fixes this issue.


Remove placement window

This PR:

removes placement window
updates the change flow so that if a user changes a subject, they have to select a mentor before returning to the check your answers page
updates the edit placement flow to match the check your answers change flow

Hi @JamieCleare2525, I'm keen to merge this but not sure if you've checked it yet, could you have a glance please? :)

 Remove placement window question


Modifying note on dvc plots diff --targets with revisions usage

Changes as described in https://github.com/iterative/dvc.org/pull/1549#discussion_r453220288 and https://github.com/iterative/dvc.org/pull/1549#discussion_r453220364

@jorgeorpinel this one can be merged.
I'll open a new PR for metrics diff after #1568 is finished.


Go to definition does not work with Jinja Template files

VSCode Version :1.33.1
OS Version: Ubuntu 16.04 LTS
I am working on a Python Flask project which has number of Jinja Template files. The native Go to Definition/Declaration functionality does not work with Jinja files. I am not sure if it is a problem with Python extension not supporting Jinja files or VsCode not supporting Jinja files yet.
Steps to Reproduce:
I have the following snippet from my Jinja template file.
{% extends "base.html" %}
{% from "_posts_jinja.html" import delete_post %}
{% block body %}

Now If I try to jump to let's say base.html or _posts_jinja.html file or to delete_post macro which has been defined inside the _posts_jinja.html, VsCode shows a popup balloon saying "no definition can be found" for this symbol.
Infact these symbols in Jinja/html files are not even recognized or indexed because if I hit ctrl-t and try to look up for delete_post macro, it does not show up. However the other symbols in the python files show up just fine.
I am not sure if this is the issue with Jinja extension or Python extension, but since Goto definitions work just fine with regular python files, I suspect this to be related to Jinja files.

This plugin doesn't provide any language construction logic (like ability to understand code between different files in a project), it's only a syntax highlighter. I would say it's possibly an issue with the Python plugin since it should be providing that functionality.
However, VSCode has been known to have issues with two plugins that identify with a particular file type. I've stopped development on this plugin because of issues relating to it.


Could example to generate and download excel file from exsiting template in Meteor JS?

I base on Meteor.
I used to https://github.com/SheetJS/js-xlsx + FileSaver` to write and download.
// Meteor method (server)
Meteor.methods({
    downloadExcel (){
        if (!this.isSimulation) {
            /* this is the data we ultimately want to save */
            const data = [
                ["a", "b", "c"],
                [1, 2, 3]
            ];
            /* follow the README to see how to generate a workbook from the data */
            const ws = XLSX.utils.aoa_to_sheet(data);
            const wb = {SheetNames: ["Sheet1"], Sheets: {Sheet1: ws}};
            /* send workbook to client */
            return wb;
})
---------
// Client
            handleWrite() {
                let self = this;

                Meteor.call('downloadExcel', function (err, wb) {
                    if (err) {
                        console.error(err);
                    } else {
                        /* "Browser download file" from SheetJS README */
                        var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
                        var wbout = XLSX.write(wb, wopts);
                        saveAs(new Blob([self.s2ab(wbout)], {type: "application/octet-stream"}), "meteor.xlsx");
                    }
                });
            },

-------
funciton s2ab(s) {
                var buf = new ArrayBuffer(s.length);
                var view = new Uint8Array(buf);
                for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
                return buf;
            }

Could you example for this package with Meteor?

I haven't used Meteor, but I'm sure there isn't anything special. On the server side outputAsync yields a Buffer. You should be able to serve that to the client with the proper headers. Should be similar to the express example. On the client outputAsync yields a Blob by default. You can trigger a download using the examples or FileSaver.

thank for your reply.
I tried like this in Meteor Structure
// Server
Meteor.methods({
       downloadExcel(){
            XlsxPopulate.fromBlankAsync()
                .then(workbook => {
                     // Modify the workbook.
                     workbook.sheet("Sheet1").cell("A1").value("This is neat!");
                     return workbook. outputAsync();
    });
      }
});
--------------
// Client to call meteor method
handleDownload(){
    Meteor.call('downloadExcel', function (err, result) {
            result.then(function (blob) {
             if (window.navigator && window.navigator.msSaveOrOpenBlob) {
                       // If IE, you must uses a different method.
                        window.navigator.msSaveOrOpenBlob(blob, "out.xlsx");
             } else {
                    var url = window.URL.createObjectURL(blob);
                    var a = document.createElement("a");
                     document.body.appendChild(a);
                     a.href = url;
                     a.download = "out.xlsx";
                     a.click();
                     window.URL.revokeObjectURL(url);
                    document.body.removeChild(a);
                }
           });
    }
},

but don't work

Now it work fine with base64
// Server
Meteor.methods({
       async downloadExcel(){
            let wb = await XlsxPopulate.fromBlankAsync();
            wb.sheet("Sheet1").cell("A1").value("This is neat!");
            return wb.outputAsync("base64");
      }
});
--------------
// Client to call meteor method
handleDownload(){
    Meteor.call('downloadExcel', function (err, result) {
        location.href = "data:" + XlsxPopulate.MIME_TYPE + ";base64," + result;
    }
},

Thanks again for your package 👍


Turns Modals into Fullscreen Modals for Mobile; Bug Fixes

Description
DocumentContainer.js, Folders.js, MessageBoard.js

Fixes sort form so that error messages no longer appear in the console

DocumentDetails.js, FolderDetails.js, MessageDetail.js, TeamDetails.js

Added a Media Query so that the modals no longer have a fixed width and height at window widths under 576px

Modal.styles.js

Added a 'Media Query' that allows modals to go full screen

TeamList.styles.js

Added a Media Query on width in order to remove horizontal scrollbar

Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Change status

[x] Complete, but not tested (may need new tests)

Checklist:

[x] There are no merge conflicts

I like full screens


start issue

after input the following command : ./bin/syz-manager -config=my.cfg
the vm start failed ,  below is the log;
2021/10/31 03:31:00 wait for the connection from test machine...
2021/10/31 03:31:05 failed to create instance: failed to read from qemu: EOF
qemu-system-x86_64: error: failed to set MSR 0x48d to 0x5600000016
qemu-system-x86_64: /build/qemu-A1914X/qemu-4.2/target/i386/kvm.c:2691: kvm_buf_set_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed.

my enviroment:
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.2 LTS
Release:	20.04
Codename:	focal
I config as the following page:
https://github.com/google/syzkaller/blob/master/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md

Hi @zgxgoo .
Can you SSH to the QEMU instance as described here?
Do you use physical or virtual machine?

ssh is ok, i use the virtual machine Vmware Fusion

It looks like you have broken qemu. Try to install/build  a newer one.
But if you say if works outside of syzkaller, then run syz-manager with -debug flag, it will print qemu command line args, figure out what flag causes the qemu bug, and adjust flags via qemu_args config parameter.
Please use the mailing list for future questions.


cleanup test projects

As a part of #2251, I'm reviewing all test projects and trying to get them on the same target frameworks.
This PR is pulling some of my changes out of #2361.
I'm cleaning up test projects by removing unused properties:

<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" /> was a bug fix for VS2017 and no longer necessary. (link)

Some of the extra properties in the AspNetCore projects were preventing VS and some CLI from running those tests (FIXED!!)

Preparing to move the <TargetFrameworks> to the Test.props file. We few exceptions, we should have uniform TargetFrameworks across all our projects.
I'll convert individual test projects to use the centralized TargetFrameworks in follow up PRs because this is requiring some other changes in those individual projects (preprocessors and conditional PackageReferences)

#2379


Adjust auth proxy SAR to be more specific

Depends-On: https://github.com/infrawatch/service-telemetry-operator/pull/553/

recheck

recheck


Code snippet will insert duplicated word when the choice contains space

Does this issue occur when all extensions are disabled?: Yes/No

Version: 1.67.1 (user setup)
Commit: da15b6fd3ef856477bf6f4fb29ba1b7af717770d
Date: 2022-05-06T12:37:03.389Z
Electron: 17.4.1
Chromium: 98.0.4758.141
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22000
Steps to Reproduce:

Create a code snippet contains choices, and each choice contains spaces, for example:

"test": {
	"prefix": "test",
	"body": [
		"${1|one one,two two,three three|}"
	]
}

Insert the snippet and select one of the choice, duplicated word is inserted.

/duplicate of https://github.com/microsoft/vscode/issues/148976

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


What's the main difference to SwiftRex?

I find the idea of Redux on iOS very, very, VERY cool - and try to find the right framework for me to start with this architecture.
ReSwift seems to have more coverage on medium, youtube etc. - but I like SwiftRex very well documented and pretty interesting as well... what are the main differences here?

Hey! I didn’t know about SwiftRex! Thanks for sharing. Checking its docs, I think that being able to use one of the three main reactive libraries is quite cool and powerful. It seems that the cores of both libraries cover the same set of features, and I’d say ReSwift can be simpler somehow.

Looks like they both cover the same functionality. I'd be interested in seeing benchmarks to compare performance across the two.
ReSwift is also easily connectable to reactive libraries. There are numerous examples strewn about the web for various reactive libraries. (ReRxSwift, ReactiveReSwift, the mjarvis/swiftui branch for combine)
In https://github.com/SwiftRex/SwiftRex/issues/44 they also mention the ability to use generics to hide implementation details of the state / store from controllers and subscribers. While not as obvious, this is also possible using ReSwift (And is something I've done in every project), by declaring protocols for substate, and then making your controllers generic such as S: StoreType where S.State: HasUsers. This is also possible for middleware too, meaning objects do not need to know about your entire state.
In general, I'm very happy to see another alternative crop up. Competition in this area just helps come up with new ideas & push the capabilities & performance.


Iterating only first N items in an array

The README mentions iterating through the array using ForEach. I'm wondering if there's a way to iterate only through the first N items in the array. Or would that include a counter and an if statement in the ForEach loop? E.g. how would it look like to iterate through the first 5 items in a json document of the form {data: [[2.3, 3.2], [1,2], ... ]]}?

This looks very similar to #302. Does one of the proposed solutions there works for you?

Thanks for the quick feedback! I somehow missed that issue. Closing this one.