Side Panel for Configuration

Is your feature request related to a problem? Please describe
It is common to use an app to configure based on information from the user. Today, this can be done by clicking a button and going to a new page, or by showing a dialog in the center of the page. Going to a new page can remove the end user mentally from the current flow they are working on, and the center dialog mostly blocks out the page the user is on.
Describe the solution you'd like
Having a side panel type dialog which would fade the background but allow it to still be seen.
Additional context

https://xd.adobe.com/view/a1f57a3b-dfdd-4d3c-ab5f-59d404c96593-f4a6/

Does the panel have to float 1" from the top, or can it be flush, like this?

@lo5 It would be great if we can bring this on the top of the screen. sometime we blur the background when this overlay comes. I'm fine with either way. Having an overlay is fine.

@lo5 As for API, I guess we go with (same as dialog is implemented):
{
// ...inside a meta card
/** Display a side panel on the page. */
side_panel?: SidePanel
}

/** Create a side panel. */
interface SidePanel {
  /** The components in this panel. */
  items: Packed<Component[]>
}

@mturoci Sounds good!
@sandruparo @mturoci I'm OK with implementing this only if it's a Fluent Panel. From the screenshot above, I don't see how it's different from the dialog that we already have.


AWS Install

Im jumping in to using TOIL in aws for the first time and hit this error that confuses me. This happens when I run toil launch-cluster on ubuntu16 EC2 instance and specify the keypairname with a known working key. Does it expect the public key to be copied somewhere locally first? FWIW- I have installed toil[aws,cwl] and the awscli and configured it.

Permission denied (publickey,password,keyboard-interactive). toil.provisioners.aws.awsProvisioner: Connection rejected, waiting for public SSH key to be propagated. Trying again in 10s

The coreos instance is created and I can ssh into it outside of AWS/EC2. Seems to be a local ssh config problem.

Can you post exactly the entire launch-cluster command you typed in? We're currently in the process of improving the documentation in this area.

Happy to provide more context if it helps.

User has full AdministrativeAccess policy and has an aws access key(jj_aws)
Launch an Ubunt16.04 image. SSH with (jj_aws) private key.
Install. sudo apt-get update;sudo apt install -y python2.7; sudo apt install -y python-pip
pip install awscli. Configure default user
pip install toil[aws,cwl]
toil launch-cluster jj_test --nodeType=m3.medium --keyPairName=jj_aws

I initially started in a VPC but backed out to the simplest use case here.

Huh. I just tried to launch a cluster locally and was stuck in exactly the same place. This makes me think that the problems could be external. Perhaps boto throwing a fit. To add support to this theory a recent unexplained test failure seems like it may have had the same cause.
There's a chance that mine failed to launch for a different reason and I will look into this to confirm.  Can you use the aws client tools from the box?
The trace you sent says "Trying again in 10s". How long did you wait?

I was able to confirm that the aws tools are working by using aws s3 ls. At this point, I have tried to use a
base ubuntu AMI, with and w/out a VPC and changing group settings.The "Trying again in 10s" continues indefinitely.
However, the weird thing is that in each case a key( AAAAB3NzaC1yc2Enoauthorizedkeyneeded) does get pushed to the spawned image and I can confirm it is present when I log in from my desktop using my aws key.
Certainly others are launching a cluster without problems. What am I missing? Do you have a minimal set of commands and configuration specs you could share?

Did you run ssh-add to add the key?

One more piece of debugging... After you launch the cluster and it is continuously trying to connect:

Copy the public ip of the machine to which you want to connect. Then ssh to it

ssh<EMAIL_ADDRESS>
It seems like you should be able to do this fine.

Once connected, you can see if any docker containers are running by typing

docker ps

Let us know the result there.

Finally, to access the logs from the toil leader process as it starts up run:

journalctl -u toil-leader

Please share those logs!
As a side note, when deleting these half baked instances make sure to use the toil destroy-cluster command. This ensures that all of the security groups and what not are all deleted as well.

@jasper1918 Okay final thing. Assuming that your results for the steps above match what I suspect then we will have found the problem!
Which version of Toil are you using? It looks like you posted this right after the latest release. For some reason when 3.9 was pushed out its appliance image wasn't pushed onto quay.io. This would be reflected in the logs of step 3 above.
If this is the problem, the simplest workaround is just to use a previous version of Toil until this is resolved. If you want the latest features you can build from source and then post the appliance image yourself.
Apologies for the inconvenience!

@jessebrennan Thanks for looking into this.
Just as you suspected the problem was a failed docker pull. I installed 3.8.0 and it worked smoothly.
For those reading it may be important to note that you must:

Ensure VPC has DNS hostnames enabled
Ensure VPC has DNS resolution enabled
Ensure subnet has auto-assign ip enabled

@jasper1918 glad it worked!


Allow for different head url

Why would someone have a different HEAD url ?

I am using signed S3 URLs.  I haven't found a library that allows you to sign a URL for both HEAD and GET, which means you end up with two different URLs.  One solution was http://stackoverflow.com/questions/15717230/pre-signing-amazon-s3-urls-for-both-head-and-get-verbs, however my use case is a little more complicated.  Having an addition HEAD url passed in the params seemed like the cleanest solution.


Add Firefox support

Extensions are standardized between Firefox and Chrome except for a few things such as the way service_workers are defined in the manifest.json. Firefox wants them in a scripts tag as an array and Chrome in the "service_worker" tag. Luckily they each ignore the other tag (only showing a warning). I tested the extension on Firefox with this change and it works great! This change thus adds Firefox support to the extension, without any further work.
You previously stated that "Firefox is small and stupid", but its importance lies not in its market share, but rather in it being open source.  Such a monopoly would be devastating for the entire web. Moreover, Firefox has some features that Chrome doesn't have. This would bring lichessTools to mobile devices, seeing as Firefox, unlike Chrome, does support extensions for mobile. Also as a Firefox user I would be very happy using this great extension :)
I would appreciate it if you could just merge this (one line change!) and upload the extension to the Firefox store. As far as I know, an account doesn't cost anything. If that's too much hassle for you I would also be fine with doing that, but I don't know if you trust a random guy from the internet with this and I wanted to first hear your feedback before forking the whole project over this little change.

But, @Karmox , Firefox support has been added already. What is this about?

I think you forked master, but you are trying to merge to main, which is a few steps behind. So the PR becomes unreadable. Try creating the PR again.
From what I understand, you propose the Manifest v3 format will work for FF now with just that change. I will experiment with this. Thank you!

Funnily enough, everything works except OBS integration because this: https://discourse.mozilla.org/t/how-to-prevent-upgrading-insecure-request-to-use-wss/126797/4
I have to check if I can somehow make OBS use wss.

Ugh!
https://obsproject.com/forum/threads/websocker-obs-connect-wss-not-working-with-chrome-opera.171191/#post-630825

And I could specify the content security policy in the extension, but only in V2 :)
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy
Anyway, thanks!

But, @Karmox , Firefox support has been added already. What is this about?

Ohh I completely missed that, I really don't know how that happened. I am sorry for this unnecessary PR then. Thanks for the swift reply and have a nice weekend!

Nah, thank you!
Join https://lichess.org/team/l1chess-tools-users-team for updates. Mods remove them from Feedback.

But, @Karmox , Firefox support has been added already. What is this about?

Ohh I completely missed that, I really don't know how that happened. I am sorry for this unnecessary PR then. Thanks for the swift reply and have a nice weekend!

It was me! You seem to be a firefox user as well?(in specific i use librewolf


Air Quality project

The website is not responsive
The 2nd div (where data is posted ) must be corrected with proper css (media queries).

I would like to solve this issue
Please assign me the above
@TusharKesarwani


Don't draw not-yet-loaded image elements in Canvas

See https://github.com/phetsims/function-builder/issues/15
We'll want a better guard here:
    paintCanvas: function( wrapper, node ) {
      if ( node._image ) {
        wrapper.context.drawImage( node._image, 0, 0 );
      }
    },

Added checks, closing.


Fix: Minor changes/fixes to artemis123 support

Just a couple of small bug fixes for artemis123 support.

https://travis-ci.org/mne-tools/mne-python/jobs/608233552#L3144

Thanks @bloyl


[LIVY-544] Allow interpreterExecutor run in ThreadPool

What changes were proposed in this pull request?
make interpreterExecutor run with newFixedThreadPool  rather than newSingleThreadExecutor
https://issues.apache.org/jira/browse/LIVY-544
How was this patch tested?
we run a jmeter test of 20 threads each post statement 1/60s, set "spark.scheduler.mode": "FAIR"
we find setJobGroup is not thread-safe causing some reflect Error, so wrap it by Session.synchronized

this.synchronized{ setJobGroup(tpe, statementId) }

Codecov Report

Merging #135 into master will increase coverage by 0.05%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #135      +/-   ##
============================================
+ Coverage     68.38%   68.44%   +0.05%
  Complexity      891      891
============================================
  Files           100      100
  Lines          5596     5597       +1
  Branches        839      839
============================================
+ Hits           3827     3831       +4
+ Misses         1223     1220       -3
  Partials        546      546

Impacted Files
Coverage Δ
Complexity Δ

.../src/main/scala/org/apache/livy/repl/Session.scala
67.18% <100%> (ø)
37 <0> (ø)
:arrow_down:

rsc/src/main/java/org/apache/livy/rsc/RSCConf.java
85.98% <100%> (+0.13%)
7 <0> (ø)
:arrow_down:

...cala/org/apache/livy/scalaapi/ScalaJobHandle.scala
50% <0%> (-5.89%)
7% <0%> (ø)

...scala/org/apache/livy/repl/PythonInterpreter.scala
48.12% <0%> (+0.62%)
9% <0%> (ø)
:arrow_down:

...ain/scala/org/apache/livy/utils/SparkYarnApp.scala
73.23% <0%> (+0.7%)
33% <0%> (ø)
:arrow_down:

...main/scala/org/apache/livy/server/LivyServer.scala
35.51% <0%> (+1.63%)
9% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #135 into master will increase coverage by 0.05%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #135      +/-   ##
============================================
+ Coverage     68.38%   68.44%   +0.05%
  Complexity      891      891
============================================
  Files           100      100
  Lines          5596     5597       +1
  Branches        839      839
============================================
+ Hits           3827     3831       +4
+ Misses         1223     1220       -3
  Partials        546      546

Impacted Files
Coverage Δ
Complexity Δ

.../src/main/scala/org/apache/livy/repl/Session.scala
67.18% <100%> (ø)
37 <0> (ø)
:arrow_down:

rsc/src/main/java/org/apache/livy/rsc/RSCConf.java
85.98% <100%> (+0.13%)
7 <0> (ø)
:arrow_down:

...cala/org/apache/livy/scalaapi/ScalaJobHandle.scala
50% <0%> (-5.89%)
7% <0%> (ø)

...scala/org/apache/livy/repl/PythonInterpreter.scala
48.12% <0%> (+0.62%)
9% <0%> (ø)
:arrow_down:

...ain/scala/org/apache/livy/utils/SparkYarnApp.scala
73.23% <0%> (+0.7%)
33% <0%> (ø)
:arrow_down:

...main/scala/org/apache/livy/server/LivyServer.scala
35.51% <0%> (+1.63%)
9% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

@WeiWenda thanks for changing to concurrentSQL .
It seems all tests fail with

No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.

Is this a known issue? cc @vanzin

@WeiWenda thanks for changing to concurrentSQL .
It seems all tests fail with

No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.

Is this a known issue? cc @vanzin

I have fixed all errors. Can you merge this pr. Thank you.

@WeiWenda I am not a committer.
Thanks for this great improvement. It would be awesome to have concurrentSQL
option in Livy, like we  have in bare Zeppelin.
cc @mgaido91 @jerryshao @vanzin @ajbozarth @zjffdu - please help to review.
Thank you.

I see no issues with the code, but since I don't have any experience with the SQL side of Livy I will leave final review and merging to a more knowledgable committer

Would somebody else from committers be available to review this?
cc @jerryshao @vanzin @zjffdu
my 2 cents -
It's one of the most exciting Livy improvements among currently open PRs.
Since it's backward compatible and disabled by default, it seems fairly safe to add this in.
Thanks everyone.

Hello,
With this feature, would it mean that we can run several statement at the same time on one Livy session ? Regarding of course, that each statement is independant from the other.
Thanks.

Hello,
With this feature, would it mean that we can run several statement at the same time on one Livy session ? Regarding of course, that each statement is independant from the other.
Thanks.

Yes, you can think so.

Hope to find some time to test. Is this the way you use this feature ?

@WeiWenda When will this be merged as its been almost year and half old ? As I have similar use case and this would solve my problem.

this is not my main area of expertise, @vanzin and @jerryshao might be better reviewers


build(client): Add default type test entrypoint settings

This PR updates the client type test settings to be compatible with the upcoming release of build-tools, which includes the configuration changes in #22131. The typeValidation node in package.json now contains the default entrypoint to use to generate type tests.
For most packages, the default is set to "legacy." However, the default is set to "public" for the following packages:

Those in the @fluid-experimental or @fluid-example scopes.
Those that are private.
Those that previously used the --level flag to set the level to public - driver-definitions and tree

Also packages which do not have a legacy entrypoint, which was determined by setting the entrypoint to legacy and fixing the packages that failed.
The following packages are set to "alpha" because they expose alpha APIs:

@fluidframework/devtools
@fluidframework/devtools-core

In addition, the following packages are set to "internal" because they don't export any public or legacy APIs:

cell
driver-base
file-driver
odsp-urlResolver
replay-driver
routerlicious-urlResolver
tinylicious-driver
fluid-static
undo-redo
tool-utils

Finally, the following packages now have type testing disabled:

@fluid-tools/fetch-tool - No exported API.
@fluid-tools/markdown-magic - No exported API.

The rough logic to determine the new entrypoint default for a package:

If the package is using the --level flag, entrypoint = that value
If the package is in the @fluid-experimental or @fluid-example scopes, entrypoint = public
If the package is private, entrypoint = public
Assume the package has a legacy entrypoint and run typetest generation.

For each failing package, determine its highest "level" entrypoint excluding internal and set entrypoint to that. This is how @fluid-internal/client-utils got set to public, for example. It's also why tinylicious-client is public.
BUT if a package has no public API, then set entrypoint to internal. Ultimately these packages probably should disable type tests, but now the ones testing internal are easy to find if we want to change that.

 Some of the fluid-experimental packages only have @internal exports, so the change would mean we stop generating any type tests for them, right?

I can check again, but I am 99% sure that no tests were disabled as part of this change. If a package didn't type test before, it won't after this change. If you look at the experimental packages, most if not all of them have type tests disabled.
Which on one hand, we don't make stability guarantees on @internal APIs, so maybe it's ok; but on the other, we set some @fluidframework packages to internal entrypoint for type tests, so having the experimental ones do it as well feels correct?

but on the other, we set some @fluidframework packages to internal entrypoint for type tests, so having the experimental ones do it as well feels correct?

No one person on the team can make the decision for every package in the repo about what entrypoint(s) should be type-tested, so if any of these are "wrong" it's trivial to change them.
The alternative to using the internal entrypoint for packages with no public exports was disabling the type tests completely for them. That might be the right thing long-term, but package owners/experts should be involved in that decision.

Is this a sign we should just make all of those @fluid-internal (and then maybe make their exports public)?

Maybe? Not something I can answer for every package. Regardless, separate topic from type testing.

I find it a bit confusing that if a package has both @legacy/@alpha or @public exports and also @internal ones, we won't generate type tests for the internal ones, but if the package doesn't have legacy/alpha/public, then we do type-test-check the internal ones (because we set the package.json entrypoint to internal in that case)? Or am I misunderstanding something?

Type tests enumerate the exports at the provided entrypoint in the previous version of the package and generate the tests for the types exposed at that entrypoint. How we decide what to export at each entrypoint is not really related to what we type test. Type tests just enumerate what's exported. The reason that some packages are set to internal is because today their type tests are testing the entire API, and I don't want to unilaterally decide that those packages should test nothing by disabling the type tests. This is tribial to change later on a per-package basis.

Specifically for packages where type tests are enabled (because in the disabled ones, as noted in the comment below, it seems the chosen option was not necessarily in line with what the package actually exports), was this the logic to determine the new default entrypoint?

If the package has a ./legacy export, entrypoint = legacy.
Else if the package has an ./alpha export, entrypoint = alpha. (seems to be the case with devtools-core, whose entrypoint is alpha but it also has an ./internal export).
Else if the package has a ./beta export, entrypoint = beta.
Else if the package has an ./internal export, entrypoint = internal.
Else if the package has a . export, entrypoint = public.

That's mostly right except the internal bit, but that was not the logic used to apply these changes. I'll describe the actual logic below.

And does that match whatever current logic we use during type test generation to decide which of the exports to use?

No, and this is intentional. We no longer want to type test internal APIs. While we could technically separate out that change it's not really worth the time because it won't make the review any easier - that is, the type tests will change dramatically when updating to 0.45 even if all of the packages are set to use the internal entrypoint. This change removes the extra step, and makes reviewing the 0.45 upgrade easier.
The reason the config options were added is mostly so that there's a default behavior for the package and you don't have to change the command flags every time you need to change the entrypoint. More info in #22131,

Mostly I'm trying to feel confident that after this, packages still type-test the same thing they used to, independently of whether that was correct (which admittedly, some of the questions in my previous comments are more geared towards that).

That wasn't really the goal - it's better stated as "after this, all packages should generate the same type tests excluding @internal APIs"
The rough logic to determine the new entrypoint:

If the package is using the --level flag, entrypoint = that value
If the package is in the @fluid-experimental or @fluid-example scopes, entrypoint = public
If the package is private, entrypoint = public
Assume the package has a legacy entrypoint and run typetest generation.

For each failing package, determine its highest "level" entrypoint excluding internal and set entrypoint to that. This is how @fluid-internal/client-utils got set to public, for example. It's also why tinylicious-client is public.
BUT if a package has no public API, then set entrypoint to internal. Ultimately these packages probably should disable type tests, but now the ones testing internal are easy to find if we want to change that.

For example, tinylicious-client has no legacy export, but has internal and public, so if the logic above is correct I would expect to see entrypoint internal but it has public. Is that one an oversight, or is the reason not clarified yet on the PR description?

public is correct. The only case where the entrypoint should be internal is if the package has no public API at all - everything internal.

If the package has a ./legacy export, entrypoint = legacy.
Else if the package has an ./alpha export, entrypoint = alpha. (seems to be the case with devtools-core, whose entrypoint is alpha but it also has an ./internal export).
Else if the package has a ./beta export, entrypoint = beta.
Else if the package has an ./internal export, entrypoint = internal.
Else if the package has a . export, entrypoint = public.

I just want to note that the above would be incorrect. /legacy is not a superset of /alpha or /beta when those exist. So, if there is only a choice of a single entrypoint (seems like the type test config should be supporting an array of entrypoints), then you'd have to pick internal to get coverage over all.
But I think there was already a single level previously chosen; so, no regression from existing coverage.

@alexvy86 @jason-ha I updated the description with a complete list of the packages and their new levels. Also, #22482 is the build-tools bump, which includes this change.

@alexvy86 @jason-ha I also have some updated documentation for the type tests coming soon. I'll link it once ready.

@alexvy86 @jason-ha I also have some updated documentation for the type tests coming soon. I'll link it once ready.

#22487

As an alternative approach to consider: Maybe would have been easier to do this initial PR setting EVERYTHING to "internal" (as I think that would represent no change from current coverage)? And then follow up with a "promotion" PR that does the tighter scoping to just legacy/public/whatever, could be broken up into multiple PRs if needed, and you'd be unblocked from the 0.45 upgrade (and in fact, maybe you'd only want to do the promotion after the 0.45 integration?).

Yeah, definitely considered that. I thought this would be more efficient overall, but I didn't expect the settings changes to be as confusing as they were. #22495 just sets things to internal, which will work for most packages in 0.45. Those that it won't work for will be updated in that PR.

Holding off on this in favor of merging #22495 and #22482 first.

Marking as draft to help ensure this isn't merged accidentally. It needs to be cleaned up.

I pulled the most important bits of this PR into #22516.

The bulk of this was done in https://github.com/microsoft/FluidFramework/pull/22516; closing


Benchmarks

Current performance of the skeleton in different configurations
No indexes are set up in the base. Tested on an environmentally compatible version v.1.4.0
Tool used: apache benchmark
Test hello word endpoint
Test command:
ab -c 32 -n 10000 http://localhost/

ngnix + php-fpm + cache doctrine + compile
Concurrency Level:      32
Time taken for tests:   10.762 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      1490000 bytes
HTML transferred:       120000 bytes
Requests per second:    929.16 [#/sec] (mean)
Time per request:       34.440 [ms] (mean)
Time per request:       1.076 [ms] (mean, across all concurrent requests)
Transfer rate:          135.20 [Kbytes/sec] received

ngnix + php-fom + no cache doctrine + no compile
Concurrency Level:      32
Time taken for tests:   51.764 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      1490000 bytes
HTML transferred:       120000 bytes
Requests per second:    193.18 [#/sec] (mean)
Time per request:       165.646 [ms] (mean)
Time per request:       5.176 [ms] (mean, across all concurrent requests)
Transfer rate:          28.11 [Kbytes/sec] received

Test simple endpoint /api/v1/users
Test command:
ab -c 32 -n 10000 http://localhost/api/v1/users

ngnix + php-fpm + cache doctrine + compile
Concurrency Level:      32
Time taken for tests:   32.751 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      8010000 bytes
HTML transferred:       6720000 bytes
Requests per second:    305.34 [#/sec] (mean)
Time per request:       104.802 [ms] (mean)
Time per request:       3.275 [ms] (mean, across all concurrent requests)
Transfer rate:          238.84 [Kbytes/sec] received

ngnix + php-fom + no cache doctrine + no compile
Concurrency Level:      32
Time taken for tests:   71.739 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      8010000 bytes
HTML transferred:       6720000 bytes
Requests per second:    139.39 [#/sec] (mean)
Time per request:       229.566 [ms] (mean)
Time per request:       7.174 [ms] (mean, across all concurrent requests)
Transfer rate:          109.04 [Kbytes/sec] received

Performense on the swoole
Tested on branch swoole branch
Tool used: apache benchmark
Test hello word endpoint
Test command:
ab -c 32 -n 10000 http://localhost/

swoole + php-fpm + cache doctrine + compile
Concurrency Level:      32
Time taken for tests:   3.270 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      1780000 bytes
HTML transferred:       220000 bytes
Requests per second:    3057.88 [#/sec] (mean)
Time per request:       10.465 [ms] (mean)
Time per request:       0.327 [ms] (mean, across all concurrent requests)
Transfer rate:          531.54 [Kbytes/sec] received

swoole + php-fom + no cache doctrine + no compile
Concurrency Level:      32
Time taken for tests:   1.801 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      1780000 bytes
HTML transferred:       220000 bytes
Requests per second:    5552.26 [#/sec] (mean)
Time per request:       5.763 [ms] (mean)
Time per request:       0.180 [ms] (mean, across all concurrent requests)
Transfer rate:          965.14 [Kbytes/sec] received

Test simple endpoint /api/v1/users
Test command:
ab -c 32 -n 10000 http://localhost/api/v1/users

swoole + php-fpm + cache doctrine + compile
Concurrency Level:      32
Time taken for tests:   4.565 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      8470000 bytes
HTML transferred:       6840000 bytes
Requests per second:    2190.45 [#/sec] (mean)
Time per request:       14.609 [ms] (mean)
Time per request:       0.457 [ms] (mean, across all concurrent requests)
Transfer rate:          1811.83 [Kbytes/sec] received

swoole + php-fom + no cache doctrine + no compile
Concurrency Level:      32
Time taken for tests:   6.123 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      8470000 bytes
HTML transferred:       6840000 bytes
Requests per second:    1633.30 [#/sec] (mean)
Time per request:       19.592 [ms] (mean)
Time per request:       0.612 [ms] (mean, across all concurrent requests)
Transfer rate:          1350.98 [Kbytes/sec] received

Performense on the laravel
Tested on a clean project in laravel. The endpoint that was tested can be found here example
All tests were performed on the same image as is in this repository.
Tool used: apache benchmark
Test command:
ab -c 32 -n 10000 http://localhost/api/ping
Test simple endpoint
ngnix + php-fpm + optimaze  + no cache of response
Concurrency Level:      32
Time taken for tests:   8.383 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      2420000 bytes
HTML transferred:       90000 bytes
Requests per second:    1192.84 [#/sec] (mean)
Time per request:       26.827 [ms] (mean)
Time per request:       0.838 [ms] (mean, across all concurrent requests)
Transfer rate:          281.90 [Kbytes/sec] received

ngnix + php-fpm + no optimaze  + no cache of response
Concurrency Level:      32
Time taken for tests:   25.420 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      2420000 bytes
HTML transferred:       90000 bytes
Requests per second:    393.39 [#/sec] (mean)
Time per request:       81.343 [ms] (mean)
Time per request:       2.542 [ms] (mean, across all concurrent requests)
Transfer rate:          92.97 [Kbytes/sec] received

Test simple endpoint
Endpoint only included a simple database query to display 10 records.  Example:
 return new Response(Model::query()->take(10)->get()->toArray());
ngnix + php-fpm + optimaze  + no cache of response
Concurrency Level:      32
Time taken for tests:   20.357 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      16240000 bytes
HTML transferred:       13910000 bytes
Requests per second:    491.24 [#/sec] (mean)
Time per request:       65.142 [ms] (mean)
Time per request:       2.036 [ms] (mean, across all concurrent requests)
Transfer rate:          779.07 [Kbytes/sec] received

ngnix + php-fpm + no optimaze + no cache of response
Concurrency Level:      32
Time taken for tests:   29.948 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      16240000 bytes
HTML transferred:       13910000 bytes
Requests per second:    333.91 [#/sec] (mean)
Time per request:       95.835 [ms] (mean)
Time per request:       2.995 [ms] (mean, across all concurrent requests)
Transfer rate:          529.56 [Kbytes/sec] received


Fix ResultSet#getDate for dates before 1582

FYI this got reverted, and i created https://github.com/prestosql/presto/issues/4018 as a follow up.


Cannot use cargo miri with a custom build.target-dir set

I have my build.target-dir set in ~/.cargo/config to a globally shared directory. When using cargo miri run this results in an error somewhere inside xargo
> RUST_BACKTRACE=1 cargo miri run
    [...]
    Checking proc_macro v0.0.0 (/home/nemo157/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro)
    Checking unicode-width v0.1.8
    Checking getopts v0.2.21
    Checking test v0.0.0 (/home/nemo157/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test)
    Finished release [optimized] target(s) in 1.47s
error: intermittent IO error while iterating directory `/tmp/xargo.SGNhMlkEe0su/target/x86_64-unknown-linux-gnu/release/deps`
caused by: IO error for operation on /tmp/xargo.SGNhMlkEe0su/target/x86_64-unknown-linux-gnu/release/deps: No such file or directory (os error 2)
caused by: No such file or directory (os error 2)
   0: error_chain::backtrace::imp::InternalBacktrace::new
   1: xargo::util::cp_r
   2: xargo::sysroot::build
   3: xargo::sysroot::update
   4: xargo::main_inner
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: main
   7: __libc_start_main
   8: _start

Hm, I thought this was fixed with https://github.com/japaric/xargo/pull/310.
What does xargo --version say?

xargo 0.3.22

Ok, so I need to update xargo. It seems like cargo-miri should either be shipped with its own version of xargo, or somehow update/check the version.

Miri lists xargo 0.3.22 as minimum compatible version: https://github.com/rust-lang/miri/blob/2eb3b37c91ed9611d9d61f75dab71bda5648903e/cargo-miri/bin.rs#L15

Maybe Miri's CI should test with the XARGO_MIN_VERSION?


[WIP] [IDE] Toy with reimplementing synthesized extension checking.

[IDE] Toy with reimplementing synthesized extension checking.  …
The isApplicable() operation for extensions re-implements the idea of
checking whether a particular extension is valid for a given
type. Replace its implementation with one based on
swift::isExtensionApplied(), generalizing the latter to support this
use case.

Can one of the admins verify this patch?

Please update the base branch to main by Oct 5th otherwise the pull request will be closed automatically.

How to change the base branch: (Link)
More detail about the branch update: (Link)


add full package path support when installing local add-ons

From @alexpop in chef/opscode-omnibus#748

fixes #746

Previous code review can be found here: https://github.com/chef/opscode-omnibus/pull/748

I refactored the code based on the fix for chef/omnibus-ctl#29
Closing this pull request as I opened #340 to keep things tidy


[FLINK-18352] Make the default ClusterClientServiceLoader and ExecutorServiceLoader thread-safe.

What is the purpose of the change
A good description of the problem is described in the associated JIRA. In essence, the singleton nature of the  org.apache.flink.core.execution.DefaultExecutorServiceLoader class is not enough because the java.util.ServiceLoader class is not thread-safe. The same holds for the DefaultClusterClientServiceLoader.
Brief change log
This PR makes both the DefaultExecutorServiceLoader and the DefaultClusterClientServiceLoader thread-safe by creating a separate ServiceLoader each time we call getXXXXFactory() the available services. We do not expect this to impact performance as this is outside the critical path.
Verifying this change
No new tests were added but it was tested manually with a loop that creates threads and calls getXXXFactory(). This cannot be deterministically tested as the failure would happen during the access of the internal loader iterator which we do not have access to.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Thanks for the review @aljoscha ! I will merge this after rebasing.

Hello, @kl0u
I got a compile error, seems this PR direct go into release-1.11,  the line should update too.
https://github.com/apache/flink/blob/release-1.11/flink-java/src/test/java/org/apache/flink/api/java/utils/CollectionExecutorTest.java#L54
I'd like to open a hotfix if you can help confirm this.

ignore my comment, @wuchong have hot-fixed this one


Fix Italian translation

Hi! I fixed some incorrect translations and adapted some other strings to the GNOME (Italian) translation standards, i.e. using the infinitive instead of 2nd person singular and some fixed expressions.
(Pinging @albanobattistella to see if he's okay with this.)

Hi! I fixed some incorrect translations and adapted some other strings to the GNOME (Italian) translation standards, i.e. using the infinitive instead of 2nd person singular and some fixed expressions.
(Pinging @albanobattistella to see if he's okay with this.)

ok!

hello. why did you close this PR?

Whoops. I'm sorry, I misread the notification and thought that you already merged the pull request, so I deleted my repo since I didn't need it anymore. I'm gonna create another one asap.


add auth in for github api

Auth Github calls give 5000 api calls per hour, but unaunthenticated only 60 per hour

No. Of calls consumed depends upon caller in our case user, so 60 calls per second will be enough.
Moreover, with from user is not required here....


DCD Frontend: Type check and null-handling improvement

Pull Request: https://github.com/equinor/dcd/pull/577


Add support for class loader isolation

This PR allows to isolate parts of Ammonite from user sessions.
It splits the amm module into amm-api (things available to users), amm-tools (extra things available to users, less essential), and amm (Ammonite itself, like the current amm module, with implementations for what's in amm-api).
As is, it can be tested by launching Ammonite via coursier, like
$ sbt published/publishLocal
$ coursier launch \
      -i ammonite \
      -I ammonite:com.lihaoyi:ammonite-tools_2.11.8:0.6.3-SNAPSHOT \
      com.lihaoyi:ammonite_2.11.8:0.6.3-SNAPSHOT

Launched this way, coursier sets up a first base class loader, with the user-facing things (amm-api and amm-tools modules, with their dependencies), then a second one with the former as parent for amm itself. The code in the last commit of this PR is able to find the first class loader, and use it as a base for the Ammonite session class loaders. Thus not exposing amm itself in the session, only amm-api and amm-tools.
Launched in other ways, there's no isolation like before.
There would be ways to have the generated assembly be fine with isolation, that I'll explain if you're fine with the idea. With this launcher, integration tests could be written for isolation.

The first 12 commits mainly split existing things, in things that will stay in amm and things that will move to amm-api and amm-tools (all the moves are done in the Add ammonite-api... and Add ammonite-tools... commits).

In particular, this allows not to have upickle, fastparse / scalaparse, scalaj-http, in the Ammonite session.

Thanks for the PR!
Honestly, I cannot follow what this PR is doing. There are a lot of good things in there: the splitting up of the amm/ module is one I have been thinking of for a while.
But it's mixed in with a bunch of peripheral stuff like renaming ImportHook to ImportHooks, or changing the style of imports from import Thing; Thing.foo(...) to import Thing.foo; foo(...), which most definitely aren't necessary to what it's trying to do.
I also do not know how this works, or doesn't work. I have no idea what the coursier CLI tool does, and any explanation of what this PR does relating to how to do stuff using the coursier executable has no impact on me. It is not clear from reading the code.
I think the idea of classloader isolation is useful and wanted, it needs to be discussed in isolation. If you're interested in pushing this forward, I'd suggest starting with one of the thing that's in this PR:

Moving things around (???)
Breaking up amm/ into sub-components (It's not clear to me that tools and api is the most useful split)

And get them into master one by one, properly reviewed. Then when we get to the classloader isolation bit, it should be easier to discuss without being distracted by irrelevant changes.

About the move things around, as said above, they split things into chunks that later stay in amm, and chunks that are moved to amm-tools or amm-api. E.g. about ImportHook / ImportHooks, ImportHook goes to amm-api whereas the implems in ImportHooks stay in amm.
(I'll have time to discuss that again and the other points later.)

I'll submit the "Move things around" commits as a separate PRs, although they may not really make sense taken in isolation - the last 3 commits here are the main justification for them.
About the way this does class loader isolation, the idea is to replace the current class loader hierarchy:
 .------------------------.
 |        - CL -          |
 | amm                    |
 | + its dependencies     |
 .________________________.
             |
             |
             V
.--------------------------.
|  SpecialClassLoader      |
|                          |
|  user code...            |
|                          |
|                          |
.__________________________.
             |
             |
             V
.--------------------------.
|  SpecialClassLoader      |
|                          |
|  user code...            |
|                          |
|                          |
.__________________________.
             |
             |
             V
            ...

with something like:

.------------------------.
|        - CL 1 -        |
| amm-api                |
| amm-tools              |
| + their dependencies   |
.________________________.
        |          '--------------------------.
        |                                     |
        V                                     V
.--------------------------.     .--------------------------.
|        - CL 2 -          |     |  SpecialClassLoader      |
| amm                      |     |                          |
| + its dependencies       |     |  user code...            |
| (but all that's already  |     |                          |
|  in CL 1)                |     |                          |
.__________________________.     .__________________________.
                                              |
                                              |
                                              V
                                 .--------------------------.
                                 |  SpecialClassLoader      |
                                 |                          |
                                 |  user code...            |
                                 |                          |
                                 |                          |
                                 .__________________________.
                                              |
                                              |
                                              V
                                             ...

Shared things like ReplAPI, ImportHook, Evaluator, ..., are defined in amm-api.
Some of these things are just traits / interfaces (like ImportHook or Evaluator). Implementations of those are in amm loaded by CL 2 (like the Evaluator returned by Evaluator.apply). These instances can be used from the Ammonite session as they are instances of classes from CL 1 too.

Ok interesting.
I'd say it's probably (?) not worth sending a PR for the splitting-up yet, mainly because I'm not convinced that this is the best way to implement isolation of user code from Ammonite dependencies. But that's open for discussion.
Honestly, the integration with coursier and it's getIsolationTargets seems pretty special-cased and fragile. What is the advantage of doing it this way, over e.g. using jarjar to auto-vendor the packages we do not want to expose? That will work in this case and others without needing such a tight coupling with the enclosing runtime environment

About splitting or not (and fragileness), not splitting, and then vendoring a few packages, is the most fragile way to go. You have to be sure that what is vendored is only used internally and does not leak in any way via non vendored classes. Else that would break using these non vendored classes from the repl.
You could split amm (into amm and amm-api say), and then vendor what's in amm (and the dependencies it doesn't share with amm-api). That's fragile too, as before, as if you don't vendor a dependency 1 of amm and do vendor a dependency 2 of the former, dependency 1 would be broken from the repl too.
Only a careful handling of class loaders and dependencies prevents this (like coursier automatically does, above or in my ammonium fork, or like you could do too).
About the use of coursier above, it's only because I've been too lazy to change the assembly generated by Ammonite. It can also generate a standalone launcher that handles the right class loader setup, with its bootstrap command. Something like
coursier bootstrap \
  -i ammonite \
  -I ammonite:com.lihaoyi:ammonite-tools_$SCALA_VERSION:$AMMONITE_VERSION \
  com.lihaoyi:ammonite_$SCALA_VERSION:$AMMONITE_VERSION

should work in the next version of it (for now it requires arguments like -M ammonite.Main -d "\${user.home}/.ammonite/jars" too, which are noise, and needs extra things for a really standalone jar, for reasons that are too long to explain here).

Hey @alexarchambault, sorry for taking long to reply.
Looking at the current state of the project, I don't think it'll be worth merging this change right now. My main considerations are:

I don't think the benefit (fixing #292) sufficiently outweighs the cost of complexity to the codebase (in this diff, and the further classloader-work we'll need to do to make it work in all cases). In particular, I honestly haven't heard any other complaints since @bblfish's one report long ago, which leads me to de-prioritize it as a not-that-important issue

I'm planning on ripping apart the amm package, but along different lines from what this diff does (interactive, compilation, runtime subsystems) and this split into amm/amm-api will get in the way of that

I'm sorry as it's clear you put in a lot of work into this, but that's my decision for now. Happy to continue the conversation if you think there's more discussion worth having, or if there are more compelling use cases that solving #292 would allow that I'm not seeing right now


Volume mounting host paths into docker containers precludes distributed deployment of models

To deploy a model, clipper currently:

On the client running clipper_manager, serializes the prediction function to disk (https://github.com/ucbrise/clipper/blob/develop/clipper_admin/clipper_manager.py#L666) and copies the pickled function to the clipper host (https://github.com/ucbrise/clipper/blob/develop/clipper_admin/clipper_manager.py#L539) at a magical /tmp/{model_repo}/{name}/{version} file path (https://github.com/ucbrise/clipper/blob/develop/clipper_admin/clipper_manager.py#L497)
On the clipper host, spins up a docker container using model_metadata[container_name] and read-only volume mounts the serialized model from the magical file path https://github.com/ucbrise/clipper/blob/develop/clipper_admin/clipper_manager.py#L955

Reading models from the host's filesystem is not durable, as all models are lost when a single machine fails. Furthermore, it prevents distributed deployment since which physical host a container is scheduled to is not readily guaranteed. Under the current design: a model can only be deployed if its host machine has the model in its filesystem.
Kubernetes provides a volumes concept, but these are backed either by the host filesystem or a cloud provider volume (e.g. AWS EBS), both of which k8s restricts to be accessible from a single pod (EBS can only be mounted to one EC2 instance at a time).
There are a few possible solutions to the problem:

When deploying a model, build a docker image on the client and push the image to a docker registry. Have Redis track the pushed docker image instead of the magical /tmp/{model_repo/... file path. This will make build significantly slower, but improves durability (if the docker registry is durable) and scalability (each replica pulls the image and deploys it with no sharing of global state)
Have deployed containers request the model after container startup (e.g. from S3, or from the clipper host). This keeps builds at the same speed as before (time-cost of predict function serialization), but introduces additional setup costs (S3 bucket setup requires configuration and couples design to AWS) or could also lack durability (if models are still only persisted on the clipper host)

After the refactor in #251, Clipper no longer mounts volumes from the local filesystem by default.


Fix issue 527 that was previously fixed

PR o'clock
Provider produced inconsistent final plan described in
Description
This issue previously has been address in: 9882 and 481 but in version 6.X it missed.
Fix was previously created by @barryib in 489 and somehow missed.
Checklist

[x] terraform fmt and terraform validate both work from the root and examples/* directories
[x] CI tests are passing
[ ] I've added my change to CHANGELOG.md and highlighted any breaking changes
[ ] README.md has been updated after any changes to variables and outputs. See https://github.com/terraform-aws-modules/terraform-aws-eks/#doc-generation

This is the wrong fix for #489 see changes for more details https://github.com/terraform-aws-modules/terraform-aws-eks/pull/489/files.

The PR #489 you're refering to is already present in master and 6.x tags.
The change you're adding in your PR come from https://github.com/terraform-aws-modules/terraform-aws-eks/pull/483 which has been closed in favor of #489

#489 doesn't work - it produced error that described in issue. But fix in #483 works.

Closing this PR. https://github.com/terraform-aws-modules/terraform-aws-eks/pull/532 has been merged and solve the pointed issue.


Regenerate XML libraries with latest version of Autorest

Description
Regenerates Storage and Tables libraries using the latest version of Autorest. This fixes a few spots where some models were generating with serialization when it wasn't needed.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure:azure-storage-file-share


Set solid/laminated material type for adaptive regions

Motor-CAD PR https://github.com/ansys-internal/motor-cad/pull/500

DefaultMotor_WithStatorBridge_TestLaminationType.zip
Tested that lamination type follows the default setting if not set, and that the lamination type can be overridden to either laminated or solid, and Je is non-zero if solid, and zero if laminated, all works as expected.


Unable to Switch ViroVideo between Multiple ViroARImageMarker

Hi Team,
Could you please help me switch  between videos using ViroARImageTracker,I tried onAnchorFound and onAnchorRemoved but not able to switch the videos.Please find the sample code that i am using
Say I have 3 Image Markers and I wanted to Play video accordingly and on switching Markers I need to play the other video.
For Ex :
     <ViroARScene>       <ViroAmbientLight color="#ffffff" intensity={200}/>         <ViroARImageMarker target={"1"} onAnchorFound={this._onAnchorFound} onAnchorRemoved={this._onAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>           <ViroNode position={[0, -.1, 0]} scale={[1,1,1]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>             <ViroVideo               source={require('./res/1.mp4')}               loop={true}               position={[0, 3.9, -45]} scale={[44, 22, 1]}               materials={["chromaKeyFilteredVideo"]}               />           </ViroNode>         </ViroARImageMarker>         <ViroARImageMarker target={"2"} onAnchorFound={this._onAnchorFound} onAnchorRemoved={this._onAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>           <ViroNode position={[0, -.1, 0]} scale={[0,0,0]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>             <ViroVideo               source={require('./res/eagle.mp4')}               loop={true}               position={[0.2,0.2,0]}               scale={[1, 1, 0]}               />           </ViroNode>         </ViroARImageMarker>         <ViroARImageMarker target={"3"} onAnchorFound={this._onAnchorFound} onAnchorRemoved={this._onAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>           <ViroNode position={[0, -.1, 0]} scale={[0,0,0]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>             <ViroVideo               source={require('./res/3.mp4')}               loop={true}               position={[0.2,0.2,0]}               scale={[1, 1, 0]}               />           </ViroNode>         </ViroARImageMarker>       </ViroARScene>
Any Sample Code provided would be great.
Thanks & regards,
Hari

Hi @mkharibalaji ,
Thanks for reaching out. For something like your use case, you'll rely on using different functions to be executed on respective onAnchorFound callbacks for each ViroImageMarker. For example,
<ViroARImageMarker target={"1"} onAnchorFound={this._onFirstAnchorFound} onAnchorRemoved={this._onFirstAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>
<ViroNode position={[0, -.1, 0]} scale={[1,1,1]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>
<ViroVideo
source={require('./res/1.mp4')}
loop={true}
position={[0, 3.9, -45]} scale={[44, 22, 1]}
materials={["chromaKeyFilteredVideo"]}
/>

<ViroARImageMarker target={"2"} onAnchorFound={this._onSecondAnchorFound} onAnchorRemoved={this._onSecondAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>
<ViroNode position={[0, -.1, 0]} scale={[0,0,0]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>
<ViroVideo
source={require('./res/eagle.mp4')}
loop={true}
position={[0.2,0.2,0]}
scale={[1, 1, 0]}
/>

Pay attention to _onFirstAnchorFound and _onSecondAnchorFound above. And then depending on where the video is being played. You would need to rely on setting state in these _on(X)AnchorFound methods. Something to the effect of
_onFirstAnchorFound() {
this.setState({
      videoSource : {require('./res/1.mp4')}
    })
}

Which will change your ViroVideo code to
<ViroVideo
source={this.state.videoSource}
loop={true}
position={[0.2,0.2,0]}
scale={[1, 1, 0]}
/>

This way, the ViroVideo component will render the correct switched video when the respective 1st, 2nd, 3rd anchor is found.
Hope this helps.
Best,

Hi @manbod ,
Thanks.When I did I am able to see multiple videos on the same screen getting played.i.e., For each of the targets their respective videos are getting played.How to have one single video source getting switched for multiple markers.As you can see that I am having for each ViroARImageMarker an enclosed ViroVideo that's why each video is getting triggered on for each Marker.
Could you please help me on to play a single video source switched for multiple Markers.

Hi @mkharibalaji ,
Where do you want this single "Video Player" component to be located?  Or somewhere else altogether? You'll need to compose your own scene depending on where you want the video to show. Assuming you want the video to be playing in front of the first marker, then your code will look something like
<ViroARImageMarker target={"1"} onAnchorFound={this._onFirstAnchorFound} onAnchorRemoved={this._onFirstAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>
<ViroNode position={[0, -.1, 0]} scale={[1,1,1]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>
<ViroVideo
source={this.state.videoSource}
loop={true}
position={[0, 3.9, -45]} scale={[44, 22, 1]}
materials={["chromaKeyFilteredVideo"]}
/>

<ViroARImageMarker target={"2"} onAnchorFound={this._onSecondAnchorFound} onAnchorRemoved={this._onSecondAnchorRemoved} pauseUpdates={this.state.pauseUpdates}/>

With setting state in these _on(X)AnchorFound methods as stated earlier.
_onFirstAnchorFound() {
this.setState({
      videoSource : {require('./res/1.mp4')}
    })
}

_onSecondAnchorFound() {
this.setState({
      videoSource : {require('./res/2.mp4')}
    })
}

Now let's assume you want to show each of the video, in front of the corresponding marker, but only one at a time, then you would rely on a react-native construct for doing conditional rendering as explained here. Look at how to implement the renderIf function in react-native. And then adjust your ViroImageMarker code as below
<ViroARImageMarker target={"1"} onAnchorFound={this._onFirstAnchorFound} onAnchorRemoved={this._onFirstAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>
renderIf(this.state.detectedMarker == 1,<ViroNode position={[0, -.1, 0]} scale={[1,1,1]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>
<ViroVideo
source={require('./res/1.mp4')}
loop={true}
position={[0, 3.9, -45]} scale={[44, 22, 1]}
materials={["chromaKeyFilteredVideo"]}
/>)

<ViroARImageMarker target={"2"} onAnchorFound={this._onSecondAnchorFound} onAnchorRemoved={this._onSecondAnchorRemoved} pauseUpdates={this.state.pauseUpdates}>
renderIf(this.state.detectedMarker == 2,<ViroNode position={[0, -.1, 0]} scale={[0,0,0]} rotation={[-90, 0, 0]} dragType="FixedToWorld" onDrag={()=>{}}>
<ViroVideo
source={require('./res/eagle.mp4')}
loop={true}
position={[0.2,0.2,0]}
scale={[1, 1, 0]}
/>)

Notice above, the renderIf usage around ViroNode. And you set the state again in the _on(x)AnchorFound as below
_onFirstAnchorFound() {
this.setState({
      detectedMarker: 1,
      videoSource :  {require('./res/1.mp4')}
    })
}

_onSecondAnchorFound() {
this.setState({
      detectedMarker: 2,
      videoSource : {require('./res/2.mp4')}
    })
}

Hope this helps. It really depends on what your use case (where you want your ViroVideo component) is.
Thanks,

Thanks a lot @manbod.Wonderful Explanation.We can close this issue.


Another synchronized integration exception fix

I wonder whether, instead of loading the chromatogram, we should instead look at the TransitionGroupDocNode.Results[replicateIndex] in order to figure out which ChromFileInfoId's have results.
So, the code to do that would look like:
....
            if (nodeGroup == null)
                throw new IdentityNotFoundException(groupId);
            if (nodeGroup.Results == null)
            {
                yield break;
            }

            foreach (var chromSet in syncTargets)
            {
                var replicateIndex =
                    document.Settings.MeasuredResults.Chromatograms.IndexOf(c => ReferenceEquals(c, chromSet));
                if (replicateIndex < 0 || replicateIndex >= nodeGroup.Results.Count)
                {
                    continue;
                }

                var replicateResults = nodeGroup.Results[replicateIndex];
                foreach (var info in chromSet.MSDataFileInfos)
                {
                    if (ReferenceEquals(thisChromSet, chromSet) && ReferenceEquals(thisFile, info.FileId))
                    {
                        continue;
                    }

                    if (!replicateResults.Any(transitionGroupChromInfo =>
                        ReferenceEquals(transitionGroupChromInfo?.FileId, info.FileId)))
                    {
                        continue;
                    }
                    var start = thisStart;
....

I can't think of a strong reason whether it might be better to figure out which files apply by looking in the .skyd file (like you have it in this pull request) versus looking in the Results<TransitionGroupChromInfo> (like I have it above). Let's talk about it tomorrow.


TypeScript example proposal

Added a very basic example using TypeScript.
Livereload seems to work.
To test it just run
npm install
npm run dev

Using concurrently to run both next and TypeScript compiler with one command.

Hey @giacomorebonato I'm trying a similar experiment see https://github.com/jagreehal/next-typescript . You're going to have the problem of the page refreshing twice until Next v2.1

This wont be able to handle static content either if you want to separate the build and source. I will try to create a simple example using tscomp for the build process, which hopefully will be really neat!

Looking forward to it @OskarKlintrot

A setup like this works pretty well with tests without webpack.
However it is a good topic.

As a Typescript enthusiast I feel freedom in just using the native compiler, without clashing on other JS build processes.

Now I have an example of using tscomp with next here. It's based on @jagreehal example. However, css modules and images are not working, so this is more or less the same example as @jagreehal's but with an overkill build process in place (tscomp is built on top of create-react-app but also work for server apps). I do would love to just use the native compiler @giacomorebonato but as long as it's not working for static assets without building the js to the same dir as the ts then it is a bit limited. To me personally it would be a deal breaker to have the src and build in the same place. I will keep looking into setting up tscomp to work with the static assets as well.

@OskarKlintrot nice I'll take a look. I've also been thinking about adding a babel-loader!ts-loader here  https://github.com/zeit/next.js/blob/master/server/build/webpack.js

In VSCode it's possible to hide the .js files and see only the .ts ones.
I like this solution, because it allows to use next.js simple as it is.

Just did a PR to @giacomorebonato fork :)

hi @OskarKlintrot I have seen you PR.
I don't see .gitignore in the other examples.
I am willing to convert one component to a functional one, but I will keep the other extending React.Component, since this is not a boilerplate but just a small example. ;)

It's bad practice to version control build files, that's the reason behind
gitignore. Ignoring *.js will probably not be a good idea in the other
examples...
Using stateless functions is the preferred way of doing it in react
so why do something different in the example?
Den mån 23 jan. 2017 18:51Giacomo Rebonato<EMAIL_ADDRESS>skrev:

hi @OskarKlintrot https://github.com/OskarKlintrot I have seen you PR.
I don't see .gitignore in the other examples.
I am willing to convert one component to a functional one, but I will keep
the other extending React.Component, since this is not a boilerplate but
just a small example. ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zeit/next.js/pull/845#issuecomment-274563763, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGeDh-vmFTvWe4XfqNPbVyajxXNO2WBnks5rVOiBgaJpZM4LpQ6r
.

ah ignoring .js it is a good idea sorry if I read the PR too fast.
I will accept it and update this.
The reason why I used a stateful component is because it is used also in next.js readme for showing getInitialProps usage, but I can change it too.

@OskarKlintrot I just added another commit. In the gitignore I have considered only the .js files since .next and node_modules are excluded by top level .gitignore.

You really kill all joy and motivation of helping out code wise when you take my changes but ignore my commits (PR), thous taking away all the credits for what I have actually done and leaving me out as a contributor.

Maybe it was a tooling issue! Would love to have you both as contributors to have the best possible TypeScript example 😇

Thank you @rauchg, really appreciating it!
I still see stuff to improve on (this example won't run on Windows, at least not on PS, for example), maybe I can calm myself down a bit and do a new PR later today.
Changing subject, this commit history is really growing out of proportion, 13 commits and counting! The commits are longer than the code! 🙀

@OskarKlintrot sorry... I didn't want to disrespect you.  I was just hoping to have this merged soon and it was a rookie mistake. Sorry.
If you resolve the conflicts in your PR I will merge it now if I am still in time.

I was trying to squash the commits... and I did a mess, trying to repair.

The commit history looks much better! I can make a new PR in a couple of minutes!

merged!

I have noticed problems when using next/head with this configuration.
The head tags are taken, but a warning is thrown up with a message about trying to render an empty component.

What a huge PR has this gotten into 😅, I'll check that error @giacomorebonato

Also, there is no README.md 😥

Hi @timneutkens I just came back from holidays. I will update this PR soon with a README.md too!

Fixes #96

Thanks! I hope to investigate more and to help!

Hi @giacomorebonato - How do you get sourcemaps to work reliably here? Runtime errors point to the transpiled JS code instead of the ts source files. Is there any workaround? I've tried enabling sourceMaps in tsconfig.

@karthikiyengar i'm no expert in next's webpack setup, but typically you need to add source-map-loader to load source maps from externally compiled files. have you tried mucking with next.config.js?

Latest release of TypeScript compiles JSX files to JS. I want to try to edit the boilerplate in a way that we rely only on webpack for compilation and this should help also for the sourcemaps.

I have mad a pull request where tsx compiles directly to: JS https://github.com/zeit/next.js/pull/1600

I wrote a game for a talk on Typed JavaScript and used TypeScript and Next

https://github.com/jagreehal/typescript-react-redux-jest-card-game

Hopefully this helps.
On Sun, Apr 2, 2017 at 9:00 PM, Rune Jeppesen<EMAIL_ADDRESS>wrote:

I have mad a pull request where tsx compiles directly to: JS #1600
https://github.com/zeit/next.js/pull/1600
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zeit/next.js/pull/845#issuecomment-291010798, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADd22k6xwJr5daUTgO3UVEYbMZk8lyJAks5rr_5QgaJpZM4LpQ6r
.


Update composer.json

There should be no problem with guzzlehttp/psr7 version 1.3.

Signed.

This same change will be added in #943


Plugins per-context (meta-issue)

This is a meta-issue to track a number of challenges related to using plugins on a per-context basis.
Plugin registration overridden with multiple contexts (#654)
Per https://github.com/npgsql/Npgsql.EntityFrameworkCore.PostgreSQL/issues/654#issuecomment-425555810:

INpgsqlOptions (e.g. opts in your snippet) is a singleton service, so it's likely that this is caused by the first configuration delegate being replaced (instead of wrapped by) the second configuration delegate.

Can we scope plugin registration by type of DbContext to avoid interfering with context-specific configurations?
Can't mix BCL and NodaTime types (#747)
Per https://github.com/npgsql/Npgsql.EntityFrameworkCore.PostgreSQL/issues/568#issuecomment-412329701:

Long story short, when you set up the ADO NodaTime plugin, it "hijacks" NpgsqlDbType.Timestamp and routes it to the NodaTime type handler, instead of the built-in DateTime type handler. The NodaTime type hander doesn't know how to write DateTime, so you get the above exception. EF Core, at its level, always sets NpgsqlDbType on parameters to unambiguously determine which PostgreSQL type it wants to send.
This unfortunately means that you can't mix both regular DateTime and NodaTime types in the same application.

Can we improve the per-connection plugin handling, such that it might be possible to support BCL and NodaTime types, as long as they are not mixed on the same DbContext?
// Keep BCL types for some entities and contexts
class LegacyEntity
{
    public DateTime SomeTimestamp { get; set; }
}

class LegacyDbContext : DbContext
{
    public DbSet<LegacyEntity> LegacyEntities { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        => base.OnConfiguring(optionsBuilder);
}

// While using NodaTime types for other entities and contexts
class FutureEntity
{
    public Instant SomeTimestamp { get; set; }
}

class FutureDbContext : DbContext
{
    public DbSet<FutureEntity> FutureEntities { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        => optionsBuilder.UseNodaTime();
}

Related
#568
#648
#654
#747

Perhaps I've misunderstood, but in #654 I believe the problem is that configuring a second DbContext without a plugin (after the first context does register a plugin) caused the first context's plugin to be unregistered.
The overriding of the configuration delegate sounded like an EF Core configuration issue, but are you saying that this is also related to the ADO.NET layer?

Sorry, I may have conflated #654 with #747 (and other similar issues). I'm not sure exactly what's going on in #654.
My mental model of EF Core is that each DbContext type has its own service set, and so at the EF Core level nothing is supposed to leak from context to context... Have you been able to reproduce this issue at the pure EF Core level (i.e. not ADO)

@roji It's not quite like that. Typically, an application will have one service provider even for multiple types of context. That is, using a different context type does not in of itself result in a new service provider.
However, each context instance also creates a D.I. scope. This means each context instance (and hence also each context type) has its own set of scoped services. But will use the same singleton services. This is one of the reasons why singleton services are a more efficient.
This is coupled with the model cache, which is, by default, keyed off the context type. So each context type will have a different model. This is exposed via the IModel scoped service.
Now it's possibly that some configuration of a context instance of any type may result in a new service provider being created. For example, using a context with a different database provider configured, or changing sensitive data logging, will trigger a new service provider to be created. This is because these things need to change the behavior of singleton services. Ideally, a typical application won't do this more than a few times at most.

@roji wrote:

Have you been able to reproduce this issue at the pure EF Core level (i.e. not ADO)?

I saw something similar in the wild a few months back, but didn't have time to isolate it. I'll put together an isolated repro in the next few days.
Here's the singleton I had in mind with respect to configuration delegates being overwritten:
https://github.com/npgsql/Npgsql.EntityFrameworkCore.PostgreSQL/blob/73a73445f3a481d23f3fe8d0aba46a267a5df0b6/src/EFCore.PG/Infrastructure/Internal/INpgsqlOptions.cs#L8-L11

@ajcvickers thanks for correcting me on this, seems like my mental model of this want write right... I'll try to investigate and understand more this weekend. @austindrenski any repro here would be great...

@roji The mental model isn't that simple, so no worries. You have a better understanding that most. :-)

#654 is now closed as it automatically fixed in 2.2 by moving to the new EF Core plugin model.
#757 seems like a duplicate of #747 to me - so does it make sense to close both #757 and this issue (#748), and leave only #757 to track per-connection plugin use?


Slow performance when using CloudBucketMount as a dataset for model training

Firstly, thanks for the splendid work the team has done for this project, amazing stuff.
I was trying to figure out a way to train my ML models using modal, my dataset is in s3 (10k+ images, high res) so I thought it would be interesting to try out the CloudBucketMount to read from the dataset. It worked well, but it seemed to be considerably slow compared to using an L4 in another server (using an AWS server finishes the yolov8n model in like 3 minutes, in modal it timed out at 50 mins with less than 50% progress).
I was wondering, would it be faster if the mountpoint caching was utilized to cache object data? in case that wasn't used so far. This should lead to less requests for the files and faster performance.
I'm suspecting it would be better for me to just sync my s3 data with a connected modal volume on startup.

Hey, thanks for the issue report.

using an AWS server finishes the yolov8n model in like 3 minutes, in modal it timed out at 50 mins with less than 50% progress

If the code is simple it'd be great to have it for a reproduction.

I was wondering, would it be faster if the mountpoint caching was utilized to cache object data?

We are using this as of a few days ago 🙂. The cache is not preserved across Function executions though, so I'd expect the caching benefit is only for the 2nd and subsequent N reads on a file, not the first.
I'm guessing you ran this test within the last 24 hours and thus should have had the caching?
Overall modal.Volume benefits from Modal's custom caching behavior and should be much higher read throughput for first read, but I also think modal.CloudBucketMount should have high enough performance if the dataset loader is configured with read-ahead.
Is your dateset loader using readahead? Here's an example of what I mean, where it's called "predownload": https://docs.mosaicml.com/projects/streaming/en/latest/_modules/streaming/base/dataset.html.


NPM deploy uses wrong README?

Hi, I am doing kind of a weird thing, but I think I have discovered a bug in doing it...
My project: https://github.com/JimLynchCodes/jims-rust-to-npm-test
My project's Cargo.toml file: https://github.com/JimLynchCodes/jims-rust-to-npm-test/blob/main/jims-rust-cli-test/Cargo.toml
which has the line: readme = "README-for-registry.md"
The strange thing is that crates.io does seem to be using the readme located at README-for-registry.md, but the npm one seems to be ignoring this field and just uses the content from README.md.
package on crates.io: https://crates.io/crates/jims-rust-cli-test
package on npmjs.com: https://www.npmjs.com/package/jims-rust-cli-test
I can probably pretty easily workaround this by just naming my registry README "README.md", but I just wanted to bring this to your attention since it seems like a bug to me. And in general I like the idea of being able to put all my cargo project files in the root of the repo (visible on github) but have it deploy a different README to the registries. Another somewhat related thing that I'm wondering is if it would make sense to have two different Cargo.toml fields- one pointing to a README to use on crates.io and one to a README to use on npmjs.com...
Thanks!

@JimLynchCodes for npm the README needs to start with any case and only allows extensions. Instead of using “-“ replace it with “.”.

Interesting! was not aware of that. thanks 👍

@JimLynchCodes you are welcome, feel free to post any issues or PRs for changes, questions, etc!

Hi @j-mendez I am reopening this issue because I just tried this again with another project that has the packages point to a readme named README.registry.md.
I'm seeing the name weird behavior though that it works correctly on crates.io but still shows the regular README.md of npm...

https://crates.io/crates/jims-registry-readme

https://crates.io/crates/jims-registry-readme

If you have a root README without extensions it should load prominently first. Is the goal trying to declare a README as root?

“Is the goal trying to declare a README as root?”
yes, personally I like having all the project files including README.md at the root of the repository because I don’t like having the files right there without having to dive into nested directories.
GitHub uses ‘README.me’ as the content displayed when you go to the repo on GitHub. AFAIK there is no way to have github use a readme with a different name for this…
so then when deploying my cli tool I am forced to use the same readme for registry content and GitHub page…
Is it really correct that README without extension should load predominantly first even when I specify a different README for the package’s readme field? 🤔

@JimLynchCodes the only workaround would be to use temp files that could be created with the CLI with modifications to swap README targets for NPM. If a README.md file is found it will be used as root display on their end, nothing we can adjust without a PR to npm etc.


How about deserializeWith?

  let tryDeserializeWith (fromJson : Json<'a>) : Json -> Choice<'a, string> =
    fun json ->
      match fromJson json with
      | JsonResult.Value x, _ -> Choice.create x
      | JsonResult.Error err, _ -> Choice.createSnd err

  let tryDeserializeWithP (_, fromJson : Json<'a>) : Json -> Choice<'a, string> =
    tryDeserializeWith fromJson

  let deserializeWith (fromJson : Json<'a>) : Json -> 'a =
    fun json ->
      match tryDeserializeWith fromJson json with
      | Choice1Of2 x -> x
      | Choice2Of2 err -> failwith err

  let deserializeWithP (_, fromJson : Json<'a>) : Json -> 'a =
    deserializeWith fromJson

This would be really handy since there is already serializeWith.


Sentiment analysis train! help me,please!

How does the Sentiment analysis  function train me to provide a sentence like, "I'm happy today" and I'm going to train him to be positive

Sorry, but I am not aware of any way to train your own model.
As I understand, the shipped model is trained using Sentiment Treebank
https://nlp.stanford.edu/sentiment/treebank.html
So you can your cases there and next model version should be better.
You also may want to search issues on original repo https://github.com/stanfordnlp/CoreNLP or questions on SO https://stackoverflow.com/questions/tagged/stanford-nlp
Seems that there is a way to do this...

https://github.com/stanfordnlp/CoreNLP/issues/32
https://github.com/stanfordnlp/CoreNLP/issues/553

"If you sometimes like to go to the movies  to have fun Wasabi is a good place to start."
How can I convert the above statement to the following format？
(3 (3 (2 If) (3 (2 you) (3 (2 sometimes) (2 (2 like) (3 (2 to) (3 (3 (2 go) (2 (2 to) (2 (2 the) (2 movies)))) (3 (2 to) (3 (2 have) (4 fun))))))))) (2 (2 ,) (2 (2 Wasabi) (3 (3 (2 is) (2 (2 a) (2 (3 good) (2 (2 place) (2 (2 to) (2 start)))))) (2 .)))))

@wzjjia I'm new to this as well but it appears BuildBinarizedDataset is the one to use.
https://github.com/stanfordnlp/CoreNLP/issues/296
https://github.com/stanfordnlp/CoreNLP/issues/32#issuecomment-61037436
https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews/discussion/12304
What is not clear is how do you break down each sentence into its phrases and then assign sentiment scores for them.
For example why for this sentence.
Today is not a good day.
How do we know it has the following phrases.
good
good day
a good day

Here's the problem
How do we know it has the following phrases.
good
good day
a good day

Wow seriously?? no one responded to this. That just shows the amount of support CoreNLP has.

Sorry, this is the wrong repo for such questions
Please ask on StackOverflow or open new issue in official repo https://github.com/stanfordnlp/CoreNLP

Opps sorry didn't look at the repo name


Columns with Star width are set to the minimum available width

When setting a GridLength of GridUnitType.Star in a TemplateColumn, the actual width is not calculated correctly, and the column gets the minimum width possible:

Digging into the code I saw that this method is always receiving 0 as the availableWidth, whereas in the previous version it received the actual available width for the column

I've tried to repro this but been unable to. I know we spoke in chat and you were unable to get a simple repro, but could you maybe describe how your columns are set up? Might give more of a clue.

Yes, the TemplateColumns in the table are created using this method:
        static IColumn<T> BuildTemplateColumn(
            string columnName,
            int columnWidth,
            Func<string, T, PlasticTableCell> cellFunc,
            IComparer<T> comparer)
        {
            return new TemplateColumn<T>(
                columnName,
                new FuncDataTemplate<T>((T node, INameScope ns) =>
                {
                    return BuildCellControl(columnName, cellFunc, node);
                }, true),
                null,
                GetGridLength(columnWidth),
                new TemplateColumnOptions<T>
                {
                    CompareAscending = Sort(comparer, false),
                    CompareDescending = Sort(comparer, true)
                })
            {
                Tag = columnName,
            };

For the first column, the grid length is new GridLength(1, GridUnitType.Star);
And for the other two it's new GridLength(100, GridUnitType.Pixel);
Also, the TreeDataGrid is inside a non-resizable Window; it has a fixed width, and these two options:
            CanResize = false;
            SizeToContent = SizeToContent.Height;

I saw that when executing a LayoutPass on the TreeDataGrid the Bounds.Size is 0,0.

The EffectiveViewport.Size is correct, but the Intersect operation is causing the Viewport to be of size 0,0 as well, and thus using a wrong availableWidth when calculating the star width.

On the previous version, the Bounds.Size was correct, and the Viewport was not empty when exiting this method.
Is this of any help?

Ok, the missing part was that the TreeDataGrid needs to have no items for this to repro. Fix incoming.


Default execution timeout question

Does vso-agent have a 60 minutes timeout by default? If so, how to change that?
We see that agent kills the build just in 58/59 minutes or so. Not sure why that happening, so asking here.

Yep, having the following:
The job running on agent QA-PowerShell has exceeded the maximum execution time of 01:00:00.

How to change that?

Oh, solved.
http://stackoverflow.com/questions/34661207/how-to-increase-build-vnext-build-agent-execution-time


Function to execute whole program

There needs to be a function to execute a state until the control stack is empty and then return the final state of the VM.

This is going in the v1.0.0 milestone, but will probably be needed for #4, so I expect it to be finished much sooner.


Include error code meaning in documentation & exception messages

Currently a number of error codes exist but I am unable to find any 'official' documentation of them other than comments in the code, such as here for error code 5500: https://github.com/NREL/python-geophires-x/blob/b31f3b3906a49cd9d98154e29ecb5ab632815682/src/geophires_x/AGSSurfacePlant.py#L599-L601
Resolution:

Identify whether there is existing documentation of error codes -> error causes beyond comments in the existing codebase - @malcolm-dsider or @kfbeckers. (My assumption is that there is not but I would like to confirm this to avoid accidental duplication of effort/canonical source)
Surface human-readable error messages in addition to codes where applicable (unit test in https://github.com/NREL/python-geophires-x/blame/b31f3b3906a49cd9d98154e29ecb5ab632815682/tests/test_geophires_x.py#L276 is relevant)

https://github.com/NREL/GEOPHIRES-X/blob/10694bf6b1000a730ff9d378301aab60a2bf8a3e/src/geophires_x/AGSEconomics.py#L240-L251

I don’t know what this means. It seems to be a highlighted block of code, but I don’t know why it is highlighted.
From: Jonathan Pezzino @.>
Sent: Wednesday, February 28, 2024 11:08 AM
To: NREL/GEOPHIRES-X @.>
Cc: Malcolm Ross @.>; Mention @.>
Subject: Re: [NREL/GEOPHIRES-X] Include error code meaning in documentation & exception messages (Issue #15)
https://github.com/NREL/GEOPHIRES-X/blob/10694bf6b1000a730ff9d378301aab60a2bf8a3e/src/geophires_x/AGSEconomics.py#L240-L251
—
Reply to this email directly, view it on GitHub https://github.com/NREL/GEOPHIRES-X/issues/15#issuecomment-1969453823 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AWGVYTYMURJNS5T7NNRW2CTYV5QA3AVCNFSM6AAAAAA54UWV4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRZGQ2TGOBSGM .
You are receiving this because you were mentioned.  https://github.com/notifications/beacon/AWGVYT544JGQMFF4QEOXD6DYV5QA3A5CNFSM6AAAAAA54UWV4KWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTVMN5P6.gif Message ID: @.*** @.***> >

@malcolm-dsider that particular block of code is an example of an undocumented error code (6000) being thrown - on line 242: https://github.com/NREL/GEOPHIRES-X/blob/10694bf6b1000a730ff9d378301aab60a2bf8a3e/src/geophires_x/AGSEconomics.py#L242

Yep, OK, I can see that. Throwing error code = 6000…. This means the target generation option is electricity, but the system is producing no electricity.
It looks like 5000 is undocumented also… that is the case where the generation option is heat, but no heat is produced.
How do I document the error codes?
I note that there is a code section labeled “handle errors” immediately following these two errors. I note further that the error handler simply writes a generic message and then calls sys.exit(), which is no longer a favored strategy for handling this situation. Should I go looking for a place where you replaced a sys,exit() and use that as a go-by to fix this code?
And should I do this before we fix my git rebasing issue? Or wait?
-Malcolm
From: Jonathan Pezzino @.>
Sent: Sunday, March 3, 2024 2:40 PM
To: NREL/GEOPHIRES-X @.>
Cc: Malcolm Ross @.>; Mention @.>
Subject: Re: [NREL/GEOPHIRES-X] Include error code meaning in documentation & exception messages (Issue #15)
@malcolm-dsider https://github.com/malcolm-dsider  that particular block of code is an example of an undocumented error code (6000) being thrown - on line 242: https://github.com/NREL/GEOPHIRES-X/blob/10694bf6b1000a730ff9d378301aab60a2bf8a3e/src/geophires_x/AGSEconomics.py#L242
—
Reply to this email directly, view it on GitHub https://github.com/NREL/GEOPHIRES-X/issues/15#issuecomment-1975319318 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AWGVYTYK7TJAKFBAMJUH5ZTYWODAPAVCNFSM6AAAAAA54UWV4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVGMYTSMZRHA .
You are receiving this because you were mentioned.  https://github.com/notifications/beacon/AWGVYT3EX3GAXULR6INUJL3YWODAPA5CNFSM6AAAAAA54UWV4KWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTVXT5RM.gif Message ID: @.*** @.***> >

This can wait - it's low priority and doesn't have a clearly defined
solution. Don't worry about it for now
On Sun, Mar 3, 2024 at 12:47 Malcolm Ross @.***> wrote:

Yep, OK, I can see that. Throwing error code = 6000…. This means the
target generation option is electricity, but the system is producing no
electricity.
It looks like 5000 is undocumented also… that is the case where the
generation option is heat, but no heat is produced.
How do I document the error codes?
I note that there is a code section labeled “handle errors” immediately
following these two errors. I note further that the error handler simply
writes a generic message and then calls sys.exit(), which is no longer a
favored strategy for handling this situation. Should I go looking for a
place where you replaced a sys,exit() and use that as a go-by to fix this
code?
And should I do this before we fix my git rebasing issue? Or wait?
-Malcolm
From: Jonathan Pezzino @.>
Sent: Sunday, March 3, 2024 2:40 PM
To: NREL/GEOPHIRES-X @.>
Cc: Malcolm Ross @.>; Mention @.>
Subject: Re: [NREL/GEOPHIRES-X] Include error code meaning in
documentation & exception messages (Issue #15)
@malcolm-dsider https://github.com/malcolm-dsider that particular block
of code is an example of an undocumented error code (6000) being thrown -
on line 242:
https://github.com/NREL/GEOPHIRES-X/blob/10694bf6b1000a730ff9d378301aab60a2bf8a3e/src/geophires_x/AGSEconomics.py#L242
—
Reply to this email directly, view it on GitHub <
https://github.com/NREL/GEOPHIRES-X/issues/15#issuecomment-1975319318> ,
or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AWGVYTYK7TJAKFBAMJUH5ZTYWODAPAVCNFSM6AAAAAA54UWV4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVGMYTSMZRHA>
.
You are receiving this because you were mentioned. <
https://github.com/notifications/beacon/AWGVYT3EX3GAXULR6INUJL3YWODAPA5CNFSM6AAAAAA54UWV4KWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTVXT5RM.gif>
Message ID: @.*** @.***> >
—
Reply to this email directly, view it on GitHub
https://github.com/NREL/GEOPHIRES-X/issues/15#issuecomment-1975321170,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA66IPB27O6YZDSP7JBIQV3YWOD5PAVCNFSM6AAAAAA54UWV4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVGMZDCMJXGA
.
You are receiving this because you authored the thread.Message ID:
@.***>


can't login with Mac Catalyst. Login Error: sessionMissing.

Bug report
I can't login with Mac Catalyst. iPhone and iPad have no problems.
Sorry for my bad english

Hi @sgremm
Please provide steps to reproduce it and provide more information about the problem you're getting. Which error are you getting back?

func login() async throws {
let _ = try await supabase.auth.signIn(email: email, password: password)
}
error
Login Error: sessionMissing

Got it, let me investigate.

@sgremm I wasn't able to reproduce it, macCatalyst working fine on my tests.
Can you provide a reproducible project?
Thanks.

I'm try to create a testapp but I can't login. what is differ between iOS and Mac Catalyst with supabase-swift

Not a Catalyst app, but for a native Mac app I needed to check these two boxes in the Capabilities tab to get auth to work:


Call update_cups_queues() after the biggest timeout available

Patch for the issue mentioned in #71 . Till, do you think it is okay?

Your patch is wrong. recheck_timer() determines in how many seconds it is the next time when at least one queue needs attention. After this amount of seconds elapsing update_cups_queues() is called. This does not mean that all queues get treated this time. update_cups_queues() by itself checks the queue's timeouts and only treats the queues whose timeouts are already elapsed. So there is no early or additional treatment of any queue.
With your change it finds (from the queues which need attention currently) the queue whose turn is the farthest away, and all other queues have to wait until then. Only exception is if one queue's timeout is already elapsed. Then update_cups_queues() is called immediately.


Memory mapping all segment files causes memory exhaustion

We are storing billions of records using Pogreb. It creates many 4GB segment files (.PSG).
It is my understanding that those files represent the write-ahead log (WAL) which is only used in case of recover?
If that is indeed the case, then only the last WAL file needs to be open (for writing)?
Currently those files are literally exhausting our memory and use about 80 GB of RAM.

Using RamMap we found the culprit - memory mapped PSG files:

Pogreb stores keys and values in the write ahead log (which consists of .psg segment files). The index only contains pointers to the WAL.
Mmap maps the entire segment files into the process memory. It doesn't mean that the virtual memory is backed by physical RAM. Are you sure the numbers you are seeing is the residential memory?
The next Pogreb release will include a config option to not mmap the WAL.

Thanks for the clarification. It is not in residential memory, it's Windows doing all the allocation for the file mappings. The process itself is only reported to use 14 GB of RAM in Task Manager, but then the memory mapped files take up pretty much the rest of the RAM. I will see if it results in any problems when the database grows even further - there's still hundreds of millions records to be inserted.
It might be actually no problem if Windows is smart enough in loading the memory mapped files on demand (and deallocating unused parts when memory becomes sparse) - I will report back.
In any case having an option for disabling memory mapping would be great.
I want to use the chance to say a big thank you for this key-value database. We have tried out Badger, Bold and Bitcask, and yours is not only the fastest, it is also the most stable by far. Good work 👍🏻

Thanks a lot for the feedback! Version 0.10.0 now allows disabling memory-mapped file access by setting Options.FileSystem to fs.OS.


update peer name in alertmanager sts to handle upgrade case(2.3)

https://github.com/stolostron/backlog/issues/22605
Signed-off-by: marcolan018<EMAIL_ADDRESS>

/retest

/retest

/retest-required

/retest


Columns with bit/bytemask null representation should be able to return None for validity buffer when there is no missing values

I am currently working on the implementation of the dataframe interchange protocol for PyArrow. After testing the current PyArrow implementation for producing a __dataframe__ object with Pandas implementation for consuming I have noticed that columns that use bit/bytemask null representation, but do not have missing values, error.
The reason for this is that Apache Arrow does not create a mask buffer when there are no missing values present. Therefore the result of calling .get_buffers()["validity"] on the PyArrow __dataframe__ object without missing values is None which is currently not handled by the protocol specification. See:
https://github.com/pandas-dev/pandas/blob/5c66e65d7b9fef47ccb585ce2fd0b3ea18dc82ea/pandas/core/interchange/from_dataframe.py#L502
For now we are checking for columns without missing values and in that case describe that column as non-nullable. But we think there should be an option for nullable columns with bit/bytemasks null representation to return None instead of a buffer.

For now we are checking for columns without missing values and in that case describe that column as non-nullable. But we think there should be an option for nullable columns with bit/bytemasks null representation to return None instead of a buffer.

If a column ultimately doesn't have a mask when there are no missing values, I'm wondering if that's just fine? Like even it may be incorrect to describe an interchange column as having a bit/byte-mask when it doesn't have a bit/byte-mask.

For onlookers, the relevant docs for what buf, dtype = Column.get_buffers()["validity"] currently should contain
https://github.com/data-apis/dataframe-api/blob/aa6fe7d7bc4fd6fd24b8dd6b4dfb8c58cac2d8b9/protocol/dataframe_protocol.py#L353-L357

For now we are checking for columns without missing values and in that case describe that column as non-nullable. But we think there should be an option for nullable columns with bit/bytemasks null representation to return None instead of a buffer.

If a column ultimately doesn't have a mask when there are no missing values, I'm wondering if that's just fine? Like even it may be incorrect to describe an interchange column as having a bit/byte-mask when it doesn't have a bit/byte-mask.

That's certainly a possible solution, but I personally find that it feels a bit wrong. The column is nullable, in the meaning that it "can" have nulls (that's typically how "nullable" is interpreted, I think). The null count just happens to be 0, in which case arrow can optimize this by not allocating the bitmask.
Also for a datetime64 column, you probably won't change the null type from USE_SENTINEL to NON_NULLABLE if there are no nulls (NaT) present (although of course here it has no impact on the memory layout).
One corner case where this fallback to non-nullable doesn't necessarily work optimally is that a column can have multiple chunks, and in pyarrow, one chunk might have a null bitmap, and a next chunk might not have one.


Add two cybersecurity command line books

Added Red Team Field Manual and Blue Team Field Manual books with links to Amazon and the ISBNs.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

@anthonyecampbell Good add, thank you!


Some docs suggestions

A few suggestions for the docs:

Expand some sections (most importantly the styling section)
Add some missing information (e.g., missing core commands)
Fix a few typos
Try to make some parts less technical

The last one is the most subjective. Reading through the docs as a user, I noticed a few spots that seemed a bit hard to digest. I tried to make a few suggestions on what I think might be more accessible, while trying to retain all the key information. Feel free to ignore any of them or make further changes as needed.

Apart from the linting, LGTM. The GitHub Action is a wrapper of https://github.com/DavidAnson/markdownlint-cli2, so it should be runnable from the command line.


This is the CreateTestUsers - not sure why it fails but I will try it out.

With CREATETESTUSERS No I get a bit further but still get an error
12:08:58 PM The specified authentication email address 'tobias.fenster@abc' is already being used by another user.  But I'll wait and see if maybe you find a fix and try again

Ok, using vmadmin / admin / sqladmin for the different admins still results in
1:24:25 PM Method 'Codeunit50000.CreateTestUsers(number of arguments: 1), with matching argument types.' not found.

I'll send you the connection via email

Even if I am using vmadmin / admin / sqladmin for the different admins but I still also get the following error if I set CREATEAADUSERS Yes
3:06:13 PM The specified authentication email address 'tobias.fenster@abc' is already being used by another user. You must specify a unique email address.

What would be a working configuration? Do I need to set tobias.fenster as admin username?

use http://aka.ms/bcsandboxext2 - then you get a dev branch of navcontainerhelper
I have also added a proposed fix for the testusers in the dev branch - I think it is a timing problem.

bcsandboxext2 does work with CREATEAADUSERS Yes, thanks. However, Excel export says 'The Excel Add-in is currently not available in sandbox environments.' if I run microsoft/bcsandbox:us

This is caused by some changes to the app, which should prevent Edit In Excel from working in Online Sandbox environments. Containers also had the sandbox flag set.
Not sure if this has been changed again, but the check is in codeunit 6710, you can probably easily find a workaround if you need this before it gets fixed in the app.