Cannot start agent due to "Failed to perform recovery: Incompatible agent info detected."

Sometimes mesos slaves do not want to start :
Failed to perform recovery: Incompatible agent info detected.

<lots of JSON>

To remedy this do as follows:
Step 1: rm -f /var/mesos/meta/slaves/latest
        This ensures agent doesn't recover old live executors.
Step 2: Restart the agent.

(from journalctl)
After removing the latest directory as suggested, the agent starts again.
I believe it is due to http://www.flexthinker.com/2015/09/reconfiguring-mesos-agents-slaves-with-new-resources/
It is possible to detect changes in the resources (one of the templates?) and automatically remove the latest directory?
Additionally, an variable can be introduced to enable/disable this behavior

Strange haven't encountered this behavior yet I am using mesos_version: '1.0.1'.  Provided link ~ year old maybe this was fixed in later versions. What version you are using ?

I am also using version 1.0.1.
When I change the configuration of an existing slave, the issue arises.
Last change I did (which triggered the issue), was changing the resources (ports):
mesos_slave_additional_configs:
- name: RESOURCES
  value: '"ports:[{{ mesos_slave_resource_port_range }}]"'

But it also happen when I change the ATTRIBUTES using the mesos_slave_additional_configs variable.

We have the same 'issue'
that happens in a reproducable way, for ex. when updating the MESOS_RESOURCES variable in:
TASK [teralytics.mesos : Mesos Slave config file] ******************************
...
--- before: /etc/default/mesos-slave
+++ after: dynamically generated
@@ -8,5 +8,5 @@
 # Additional configs
 export MESOS_HADOOP_HOME=/usr/local/tl/hadoop
-export MESOS_RESOURCES="cpus(*):0; mem(*):0; disk(*):0; ports(*):[20001-31000]; cpus(marathon_role):30; mem(marathon_role):100000; disk(marathon_role):20000; ports(marathon_role):[23-20000];"
+export MESOS_RESOURCES="cpus(*):30; mem(*):100000; disk(*):20000;ports:[23-20000];"
 export MESOS_ISOLATION=cgroups/cpu,cgroups/mem

As an easy fix, I'ld propose to add an (optional) feature (by enabling a variable like mesos_agent_meta_cleanup)
that removes this /var/mesos/meta/slaves/latest (before the restart handler takes action).
I could submit a PR

As an easy fix, I'ld propose to add an (optional) feature (by enabling a variable like mesos_agent_meta_cleanup)

sounds like a good option

PR ready for review -^
... and already used on 1 ubuntu(14.04) node with mesos v0.28.2 successfully (ps: also tested with feature disabled)

@ernestas-poskus @veger  can we close (PR was merged) ?

We do, reopen if not.

thanks for the fix, I'll try the new release soon!


⚠ SceneTime has degraded performance

In 99d2d2c, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1256 ms

Resolved: SceneTime performance has improved in d34ad8e after 8 minutes.


Update channel header/purpose when current channel

When the channel header or purpose is added/edited on another client a post gets made but if you are viewing that same channel the header and purpose do not update on the store, this will handle that scenario

@enahum Should we be adding unit tests for this?

Yes I think that's probably a good Idea, leave this here for now and I'll add the tests as soon as I can

@hmhealey tests added


Checkpoint Refactor

Description
This feature adds better saving and loading of models that store arguments in a json file. This allows loading the model without needing to keep track of model parameters. Along with this merge there are several related side features. from_torch allows users to bring in models from torch seamlessly assuming they have json serializable inputs. Also, we have exposed the models through endpoints following discussions about expanding usability of modulus.
Here is a list of high level features,

Saving models now contains other information such as version and params so you can instantiate the model directly from the checkpoint from_checkpoint
Bring in model from torch and use it seamlessly as a Modulus module, from_torch
Register custom model dynamically. This allows loading models from checkpoints for example.
Factory that takes a name of a Module and returns the class for it.

This should be ready for review now. I had to mess around with my fork to change it to the public PR so hopefully nothing weird happened.

Hey @akshaysubr , @NickGeneva and I talked and I will refactor some of the registry and entrypoints stuff to be a bit more in line with fsspec. You can look at other parts of the code but I wouldn't bother seeing too much until I make these changes.

Linking with Modulus launch PR that should be merged at the same time, https://github.com/NVIDIA/modulus-launch/pull/42

Hey @akshaysubr and @NickGeneva, This is ready for another round of revisions. I think everything here is in a pretty good place however there is one key design decision that I will explain bellow.
So for the entrypoint exposure I followed the example here to the letter, https://amir.rachum.com/python-entry-points/. In particular I follow their final revision and expose all our models through entrypoints and treat internal and external models the same. You can see where I get the list of models here, https://github.com/loliverhennigh/modulus/blob/fea-checkpoint_refactor/modulus/models/registry.py#L20.
This goes somewhat counter to the way that fsspec does things. Instead of exposing their protocols through entrypoints and getting them from there they manually write them in a dict here https://github.com/fsspec/filesystem_spec/blob/master/fsspec/registry.py#L62C2-L62C2 . Functionally this leads to the same design and interface for users and they have good documentation on how to add protocols through entrypoints. I would say the advantage of this is they can easily add protocols from outside packages and you can see a few examples of this in the dict. If we did the same thing maybe we could bring in hugging face models in for example.
I am open to setting all this up following the fsspec example but at this point there is no benefit to doing it I think. I would say we go with the design I have in this PR and then if we want we can switch to the fsspec setup at any time. This should be easy to do given how I structured the code and will basically just be adding a dict to the registry.py file. This will also not effect any user interface.
Also, just to make it a bit more concrete on how a user can expose a model to modulus via entrypoints I included a little example here https://github.com/loliverhennigh/modulus/blob/fea-checkpoint_refactor/examples/ExternalPackage/example/load_model.py. Ill delete this after but it was really good to wrap my head around this stuff.

Also, just to make it a bit more concrete on how a user can expose a model to modulus via entrypoints I included a little example here https://github.com/loliverhennigh/modulus/blob/fea-checkpoint_refactor/examples/ExternalPackage/example/load_model.py. Ill delete this after but it was really good to wrap my head around this stuff.

I think it is good to keep this example. Just need to ensure it gets run every so often to ensure that it doesn't go stale.

Hey @akshaysubr and @NickGeneva , Ready for another round of reviews! I think I addressed everything. Could I get another look when you have time. Thanks!

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci


Release Microsoft.App 2022-11-01-preview

ARM API Information (Control Plane)
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

/azp run

Hi @JeffreyRichter , please help to review this pr for all breaking changes.

I looked at all the breaks. Many of them are from preview to preview which is fine - I can approve these.
But some are from stable to preview and these would have to be justified.
If the swagger was wrong and we're fixing it then I can approve these too.
If there is some other reason, then the service team has to discuss the reason for the breaks with the Breaking Change Board.

I looked at all the breaks. Many of them are from preview to preview which is fine - I can approve these. But some are from stable to preview and these would have to be justified. If the swagger was wrong and we're fixing it then I can approve these too. If there is some other reason, then the service team has to discuss the reason for the breaks with the Breaking Change Board.

Hi @JeffreyRichter,the breaking changes from stable to preview are caused by the breaking changes we introduced in new 2022-11-01-preview api version. As we mentioned before, we will deprecate previous stable api version 2022-10-01.

BTW, the first breaking change missing Path "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}" is not correct. We do have the path in new api version. It seems there is something wrong for breaking change tooling. It says the path is removed and it also says there is new path (the above one)...

/azp run

This PR does not have the base commit for the 2022-11-01-preview version. This is explained above in the comment :

PLease add the base commit before starting the ARM review

What is the base commit you mentioned? All changes in this PR already get ARM reviews in separated PR


[SpotBugs] Remove unread protected field in Checker

What changes were proposed in this pull request?

Remove unread protected field in Checker.
Remove SpotBugs exclusion URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD.

Why are the changes needed?
Reduce SpotBugs exceptions.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
CI.

Codecov Report

Merging #520 (b6dd573) into master (b80972c) will increase coverage by 0.74%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #520      +/-   ##
============================================
+ Coverage     59.76%   60.51%   +0.74%
+ Complexity     1768     1635     -133
============================================
  Files           205      192      -13
  Lines         11531    10255    -1276
  Branches       1033      911     -122
============================================
- Hits           6892     6206     -686
+ Misses         4233     3673     -560
+ Partials        406      376      -30

Impacted Files
Coverage Δ

...c/main/java/org/apache/uniffle/server/Checker.java
100.00% <ø> (ø)

...storage/handler/impl/DataSkippableReadHandler.java
83.78% <0.00%> (-2.71%)
:arrow_down:

...apache/hadoop/mapreduce/v2/app/RssMRAppMaster.java

.../java/org/apache/hadoop/mapreduce/RssMRConfig.java

...preduce/task/reduce/RssRemoteMergeManagerImpl.java

...mapreduce/task/reduce/RssInMemoryRemoteMerger.java

.../hadoop/mapreduce/task/reduce/RssBypassWriter.java

...n/java/org/apache/hadoop/mapreduce/RssMRUtils.java

...n/java/org/apache/hadoop/mapreduce/MRIdHelper.java

...java/org/apache/hadoop/mapred/SortWriteBuffer.java

... and 5 more

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

Ref #532


Set up neurobagel email accounts

We need a non-person email for the BIC, and we'll need these for other reasons soon as well.
To start us of, we should have:

<EMAIL_ADDRESS><EMAIL_ADDRESS>
Tasks

[ ] research and propose an easy solution for how we can get an email address with our own domain (neurobagel.org)

[ ] without hosting our own mailserver
[ ] with a high chance of making it through spam filters
[ ] ideally for low to no cost
[ ] with IMAP enabled

[ ] set up the email account
[ ] store the passwords in the Bitwarden vault

another option<EMAIL_ADDRESS>:)

https://www.namecheap.com/hosting/email/

As far as I can tell, the only free option would be

https://developers.cloudflare.com/email-routing/

This just forwards email to our personal / work emails. So we can receive but not send.
Other options:

https://www.namecheap.com/hosting/email/
https://www.zoho.com/mail/zohomail-pricing.html
https://proton.me/mail/pricing (only one user)

Also this person made a massive spreadsheet with comparisons: https://docs.google.com/spreadsheets/d/1Gu8FFyNY1Y9X69kHmJvkI0fLv8GaK-5B6HnQZZzo1Nw/edit?usp=sharing

My view is: let's start with the Cloudflare email solution. Reasons:

free (we'd have to discuss if it's worth to pay money for custom email)
we already each have emails - so receiving them in the regular mailbox is pretty easy
the downside of having to respond from a personal email address to an email for neurobagel is OK (to me)

I'll make a follow-on issue to actually implement this if we all agree.

we might also be able to combine this / use instead: https://documentation.mailgun.com/docs/mailgun/user-manual/get-started/

I'm going to close this. Our setup is now:

Cloudflare for receiving email
Own email / McGill email for responding
google-groups: https://groups.google.com/g/neurobagel for disseminating newsletter-like info (tbd)


run dependency-check and get the warn message : NVD API request failures are occurring

I execute dependency-check in cmd
dependency-check
--nvdApiKey "########-####-####-####-############
--scan "D:\###\scanlib"
--out "D:\###\report"
--format "JSON"
The following situations occur:
[INFO] Checking for updates
[WARN] NVD API request failures are occurring; retrying request for the 5 time
[WARN] NVD API request failures are occurring; retrying request for the 6 time
[WARN] NVD API request failures are occurring; retrying request for the 7 time
[WARN] NVD API request failures are occurring; retrying request for the 8 time
[WARN] NVD API request failures are occurring; retrying request for the 5 time
[WARN] NVD API request failures are occurring; retrying request for the 5 time
[WARN] NVD API request failures are occurring; retrying request for the 5 time
[WARN] NVD API request failures are occurring; retrying request for the 5 time
[WARN] NVD API request failures are occurring; retrying request for the 6 time
[WARN] NVD API request failures are occurring; retrying request for the 6 time
[WARN] NVD API request failures are occurring; retrying request for the 6 time
[WARN] NVD API request failures are occurring; retrying request for the 6 time
[WARN] NVD API request failures are occurring; retrying request for the 7 time
....
How can I solve it?

Java : 1.8.291
JDK : Oracle jdk8u291
dependency-check : 9.2.0

By making a large donation to NIST.


Use Terraform provider variables for credentials

Currently, we only read credentials out of environment variables used by bbl. The AWS, GCP, and vSphere Terraform providers support the use of environment variables for authentication. As a courtesy to users who are cleaning up after Terraform rather than bbl, we could allow using those environment variables to authenticate.

I was thinking about that! The go-flags library doesn't support more than one environment variable. Do you know of any other libraries?

Although there certainly are a wide variety of go flag parsing libraries, I'm not aware of any that will let you do this. We may have to write our own.

(Actually I think viper might but it's pretty heavyweight. We could probably PR jhanda to have multiple environment variable support.)

https://github.com/pivotal-cf/jhanda/issues/3

(Blocked by pivotal-cf/jhanda#4)

Decided switching to jhanda might be a lot of work since there isn't a lot of investment in making the global usage like what we have with go-flags now.
Added support for the main env vars that terraform supports for each provider and that should help (mostly removing the BBL_ prefix makes it easier for non-bbl users to understand.)


[Tabs extended] Add animation to make "Tabs expressive"

Description
Original intent of Tabs extended is that it should actually extend Carbon tabs. However during development, it turned out to be tricky and Ian had to rebuild tabs from scratch.
So given now the tabs are detached from Carbon tabs, we should lean into the "expressive" direction, and make these proper "expressive tabs" by adding animation, and rename to Tabs expressive.
Horizontal tabs animation

Vertical tabs animation

Convert to an epic, Design exploration, design spic, func spec, WC dev, React Wrapper, Vis & Prod QA, website


[ALBERT] How many value of 'dupe_factor'  is good?

I see default value is 40, it large. Did this para affect significant to performance?

10 could be work. it may not impact performance so much. as 40 will make tfrecords files very very big.


Skip time

How do I skip the payback to a certain poin, I mean I want to move backward and forward in the video.

I do not know if this is the best or correct way to skip time, but I do it this way :
videoPlayer.Position += 0.01f;
You can of course increase 0.01f to a larger number if you want to make a larger skip...I don't remember if 0.01f represents a 1% skip or how it worked, but I do remember looking for a way to skip for example 10 seconds ahead, but I don't think I managed to find a way to do that, and I just settled for the solution above. It was good enough for me at that time anyway...

@Hultan, can we skip to specific time? like 03 min 32 sec  ?

Hi @Prakash19921206 ,
You can do that with this method, yes, but if it is the best (easiest) way I don't know. The Length property contains the length of the video in milliseconds. Use that to calculate how much of the video you want to skip in percent (number between 0 and 1) and set Position to that number.
Example:
Length = 150 000   (video is 2 min 30 secs long)
If you want to skip to, lets say, 1:00 into that video, you will need to calculate the number of milliseconds for 1:00, which is 60 000. Then divide 60 000 / 150 000 and you will get 0,4 which will be your new position, so:
player.Position = 0.4;
/Per

@Hultan, Thanks for your reply.
another quick question. how to skip 1 frame forward & 1 frame backward?
i don't think there is any inbuilt function for this.

I don't know of any funtion that can do that unfortunately.../Per

There might be a way to do with with VlcManager, but not quite sure how to use it (as per here http://stackoverflow.com/questions/30028851/using-vlcmanager-with-last-version-of-vlc-dotnet)

@SkinnySackboy , thanks for your reply. i had visited that question long time ago (saw my upvote!)
one work around to skip single frame is by calculating total time then time for 1 frame..
I had 1 more issue in .net
I used .net component track bar to skip time. i registered with mouse wheel event. the only issue here is that if i scroll mouse twice, only then video will skip, if i scroll once then track bar will jump but it will immediately revert to previous position..i think its to do with code.. below is my code
private: System::Void colorSlider1_Wheel(System.Object sender, System.Windows.Forms.MouseEventArgs  e)
{
	vlcControl1.Pause(); //pause
	double progressPercent = (double)trackBar1.Value / (double)trackBar1.Maximum;
	if (progressPercent >= 1)
		vlcControl1->Stop();
	else vlcControl1.Position = (double)progressPercent;
	vlcControl1->Pause(); //resume
}

mouse click event works fine without any issue.
@Hultan , any suggestion to above code?
Thanks

@Prakash19921206 I don't know, but it might be the settings in ControlPanel\Hardware and Sound\Devices and Printers\Mouse and then the wheel tab. I think the default value for the settings there is 3 and maybe it will work better if that is 1? I have no idea, but it is something to try :-)

Thanks for your reply! So, this is precisely what I tried (or equivalent), trying to figure out how long one frame would take. Unfortunately I also wasn't able to find a way to determine the frame rate programmatically, so this was a bit tricky. Regardless however, if I compensate for the precise fixed frame rate, skipping by this amount sometimes results in nothing happening, i.e. I can adjust the position a few times, then one time in say 5, it appears to do nothing. I wonder whether this is dependent on where the video happens to be when you pause it and begin to skip forward frame by frame. It does appear though that there is a class called VlcManager which should in theory be able to do this, but I cannot figure out how to use it.

@Hultan , i think like @SkinnySackboy suggested we have to use VlcManager, because changing ControlPanel\Hardware and Sound\Devices and Printers\Mouse and then the wheel tab setting doesn't help - with same settings VLC media player works fine.
i didn't find any example code for using VlcManager in latest Vlc.DotNet

@ZeBobo5 if possible,can you share any example code for C# or point to any documentation ?
i'm trying in winform.
this issue is open from long time.
Thanks
with regards
Prakash

@Prakash19921206 I don't really understand your issue, but the original question has been answered, and I'm closing this.
If you need more help, feel free to open your own issue, or to join the conversation on gitter.


MVP - DSL package integration support

Is your feature part of a bigger picture? If yes, which one?
DSL
Describe the overall flow of the feature from the user's perspective

DSL should support importing packages
DSL should support defining Contract Administration specifics
DSL should support defining Token Handling specifics

Provide a list of steps required to implement the feature

[x] Syntax (as a team)
[x] Code Generation

Additional context (optional)

With the merge of #13 and #18, we can consider this issue as Done.


Locked Max privacy amounts

Locked dropdown https://zpl.io/bz4rJMX

More details https://zpl.io/VxEEkWE

When the user received max privacy transactions and opens " More details"  the received amount is duplicated.
Default sorting DESC and if the user changes it to ASC and then closes the window and opens again then sorting stayed ASC.

checked


HollowObjectTypeReadStateShard iterate readString ints in a single pass

This change introduces an uplift to readString performance for longer strings, in three parts

Introduce a new benchmark
Introduce readVIntsInto method to read a block of varints into an int[] or char[] as a batch
Switch readString to use the new approach.

Also I threw in a slight tidy-up of threadlocal usage for simplicity.
public static int readVIntsInto(ByteData arr, long position, int length, char[] output)
public static int readVIntsInto(ByteData arr, long position, int length, int[] output)

INITIAL

Benchmark                                               (countStrings)  (countStringsDb)  (maxStringLength)  (probabilityUnicode)  Mode  Cnt  Score   Error  Units
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                  5                    10  avgt   10  0.044 ± 0.001  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                 25                    10  avgt   10  0.059 ± 0.003  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                 50                    10  avgt   10  0.095 ± 0.003  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                150                    10  avgt   10  0.237 ± 0.004  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000               1000                    10  avgt   10  1.505 ± 0.056  ms/op

WITH THREADLOCAL NIT

Benchmark                                               (countStrings)  (countStringsDb)  (maxStringLength)  (probabilityUnicode)  Mode  Cnt  Score   Error  Units
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                  5                    10  avgt   10  0.043 ± 0.001  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                 25                    10  avgt   10  0.058 ± 0.002  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                 50                    10  avgt   10  0.089 ± 0.003  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                150                    10  avgt   10  0.275 ± 0.025  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000               1000                    10  avgt   10  1.541 ± 0.182  ms/op

WITH CHANGES

Benchmark                                               (countStrings)  (countStringsDb)  (maxStringLength)  (probabilityUnicode)  Mode  Cnt  Score   Error  Units
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                  5                    10  avgt   10  0.044 ± 0.001  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                 25                    10  avgt   10  0.058 ± 0.001  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                 50                    10  avgt   10  0.074 ± 0.002  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000                150                    10  avgt   10  0.191 ± 0.005  ms/op
HollowObjectTypeReadStateShardBenchmark.testReadString             500            100000               1000                    10  avgt   10  0.936 ± 0.120  ms/op

Wow, the perf numbers look great!


Pretty print: Unintentinally converts amlauta chars

"Pretty-print current JSON file" command would turn this:
{ 	"cities": [ 		"Tallinn", 		"Pärnu", 		"Tartu", 		"Valga", 		"Jõhvi", 		"Haapsalu", 		"Jõgeva", 		"Võru" 	] }
into this:
{     "cities": [         "Tallinn",         "P\u00e4rnu",         "Tartu",         "Valga",         "J\u00f5hvi",         "Haapsalu",         "J\u00f5geva",         "V\u00f5ru"     ] }
Using Json Tools v4.6.1 with Notepad++ v8.4.7.
The JSON file is saved as UTF-8 BOM with Windows line endings.
Remove the .log from the file name: nppJsonToolUmlautaSample.json.log
PS. Probably the issue lies here:
https://github.com/molsonkiko/JsonToolsNppPlugin/blob/6519711170de55f3fd2a345d6623e2d18a475430/JsonToolsNppPlugin/JSONTools/JNode.cs#L271

Hi Japollack, yes, this was an intentional design decision on my part. That said, I agree that it can make JSON with lots of non-ASCII characters less readable. I'm working on this right now and should have a patch finished in a couple of hours.


feat: add an optional way to handle contract errors with Result

Fixes #574
This PR provides an opt-in way to treat Result function return types as an error-handling mechanism. Meaning that only the underlying Ok values are serialized while the Err values result in panic. To do this, FunctionError must be implemented by the Errtype (there are default implementations for types that have Borrow<str> and a derivation macro that generates a ToString-powered implementation).
The legacy behavior still works by default (Result is treated as a normal value and goes through full serialization), but it is supposed to generate compilation warnings (I am still trying to figure out a proper way to do this ascompile_warning! seems to be missing rn, any suggestions are welcome). The user will have to mark the function with #[return_result] to opt-in for the new behavior.

Perhaps would be worthwhile to add this pattern to any examples where it would cleanup code, but lets do this in a follow up PR :)

Yeah,lockable-fungible-token seems like a good candidate.
Also, not related to this PR in particular, but I don't think it makes sense that our only integration tests are essentially examples. I have had a few occasions where I wanted to add an e2e test but didn't want anyone to treat it as an example to follow.

Absolutely, this is a good idea to build out this scaffolding. I just suggested in examples since we do want to indicate to users that this pattern exists

Oh also a changelog entry would be awesome, but nbd it can come after


Do I have to build the host program with -w?

Fails to build (host program, not plugin)
$ go build ./cmd/marvbench
# github.com/TheMightyGit/marvbench/cmd/marvbench
go.info.runtime.itabLock: relocation target go.info.github.com/pkujhd/goloader.mutex not defined
go.info.runtime.itabTable: relocation target go.info.*github.com/pkujhd/goloader.itabTableType not defined

Builds
$ go build --ldflags="-w" ./cmd/marvbench
$

go.mod (snippet)
github.com/pkujhd/goloader v0.0.0-20221206082715-6b332ca22390

go version
$ go version
go version go1.19.1 darwin/amd64

Yeah this was fixed in this commit  in that PR


Implement Testing and Coverage report

[ ] Having testing on every major function that is being triggered through the logs in ACT.
[ ] Having a Coverage output, so we know what functions aren't being tested.

Whatever is doing coverage should ideally inject it into PRs so we can see the change.


Audience type "all"

As an.... author
I want to.... have the option to say that my session is for all audience types
In order to... properly submit my session, since sometimes what I have to say serves several types of audiences and whatever audience type I choose won't make sense either way.
Examples of this problem, Érica's and Ceci's submissions for 2015:
O que eu aprendi trabalhando na organização do Agile Brazil - https://submissoes.agilebrazil.com/2015/sessions/1338
Voluntários na Agile Brazil: criando um time em seis horas! - https://submissoes.agilebrazil.com/2015/sessions/1339

With the new capability to edit audience levels at will, this will end up being just another audience level that can be registered per conference.
So I'm closing this...


docs(spinnaker-mixin): Adding reference for spinnaker-mixin project when using Prometheus

Pull Request Test Coverage Report for Build #57

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.487%

Totals

Change from base Build #56:
0.0%

Covered Lines:
244

Relevant Lines:
261

💛  - Coveralls


GraphQL Federation Documentation And Proof of Concept

Purpose
Bringing Graphql Federation Capabilities to the API-Manager
Approach
This holds the POC done on the concept, custom federation handler and the orbit pom created for federation handler

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

Re-open PR


WIP - Remove -min_confidence=0.9 from golint

This change will make golint complain about naming and case conventions.
ref https://github.com/kubernetes/perf-tests/issues/573

/close


Use an object for generateRandomColorRamp argument

As of now, generateRandomColorRamp has many default values:
export default function generateRandomColorRamp  (
  total:number,
  centerHue:number           = 0,
  hueCycle:number            = 0.3,
  offsetTint:number          = 0.1,
  offsetShade:number         = 0.1,
  curveAccent:number         = 0,
  tintShadeHueShift:number   = 0.1,
  curveMethod:curveMethod    = 'arc',
  offsetCurveModTint:number  = 0.03,
  offsetCurveModShade:number = 0.03,
  minSaturationLight:vector2 = [0, 0],
  maxSaturationLight:vector2 = [1, 1]
):{
  light: hsx[],
  dark: hsx[],
  base: hsx[],
  all: hsx[]
} {}

If I want to modify just one of the default arguments, I need to list all the arguments prior to it, e.g. if I want a different value for offsetShade, I will have to call the function as follows:
generateRandomColorRamp(2, 0, .3, .1, .2)

Also, it is not obvious, what these values stand for, when reading the code.
The following API would be much more intuitive:
generateRandomColorRamp(2, {
  offsetShade: .2
})

The same applies to hsv2hsl, where only parts of the options are required. This is how you could solve this:
type HSX = [number, number, number];

export const hsv2hsl = (params: {
  h: number,
  s: number,
  v: number,
  l ?: number,
  m ?: number
}): HSX => {
  const {h, s, v} = params;
  const l = params.l || v - (v * s) / 2;
  const m = params.l || Math.min(l, 1 - l);

  // ...

};

@caillou I just had the same thought while using it thanks a lot! https://github.com/meodai/fettepalette/blob/main/src/index.ts#L125
Will also do it for the hsv2hsl function though


gcd, lcm, and sign don't match numpy behavior with bool inputs

Reporting a bug

[X] I have tried using the latest released version of Numba (most recent is
visible in the change log (https://github.com/numba/numba/blob/main/CHANGE_LOG).
[X] I have included a self contained code sample to reproduce the problem.
i.e. it's possible to run as 'python bug.py'.

I noticed that numba doesn't match NumPy's behavior for np.gcd, np.lcm, and np.sign with bool inputs.  Notably, NumPy raises, but numba treats bools as ints:
>>> import numpy as np
>>> import numba
>>> @numba.njit
... def gcd(x, y):
...     return np.gcd(x, y)
...
>>> gcd(True, True)
1
>>> np.gcd(True, True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
numpy.core._exceptions._UFuncNoLoopError: ufunc 'gcd' did not contain a loop with signature matching types (dtype('bool'), dtype('bool')) -> dtype('bool')
>>> @numba.njit
... def sign(x):
...     return np.sign(x)
...
>>> sign(True)
1
>>> np.sign(True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
numpy.core._exceptions._UFuncNoLoopError: ufunc 'sign' did not contain a loop with signature matching types dtype('bool') -> dtype('bool')
>>> @numba.njit
... def lcm(x, y):
...     return np.lcm(x, y)
...
>>> lcm(True, True)
1
>>> np.lcm(True, True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
numpy.core._exceptions._UFuncNoLoopError: ufunc 'lcm' did not contain a loop with signature matching types (dtype('bool'), dtype('bool')) -> dtype('bool')

I can get by with the current behavior, but thought you would want to know.

One more: subtract
>>> @numba.njit
... def subtract(x, y):
...     return np.subtract(x, y)
...
>>> subtract(True, True)
0
>>> np.subtract(True, True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: numpy boolean subtract, the `-` operator, is not supported, use the bitwise_xor, the `^` operator, or the logical_xor function instead.

Thanks for the report, I can reproduce.

Think this might need some logic like:
            if not set([x.char for x in np_input_types]).intersection(set([x for x in ufunc_inputs])):
                continue

around here:
https://github.com/numba/numba/blob/fa3630edab447f38f81c97cbd943809ebe7a9840/numba/np/numpy_support.py#L521-L523
i.e. once a loop has been found, require that at least one of the input types is present in the selected loop version. This may however be too restrictive.

I am able to reproduce the incorrect behaviour of Numba. In addition, I added your check as follows and I get the following output with sign example in the code provided by @eriknw.
diff
diff --git a/numba/np/numpy_support.py b/numba/np/numpy_support.py
index eea1b612d..27b1558cd 100644
--- a/numba/np/numpy_support.py
+++ b/numba/np/numpy_support.py
@@ -521,6 +521,13 @@ def ufunc_find_matching_loop(ufunc, arg_types):
         if found:
             # Found: determine the Numba types for the loop's inputs and
             # outputs.
+            np_input_types_set = set([x.char for x in np_input_types])
+            output_types_set = set([x for x in ufunc_inputs])
+            if not np_input_types_set.intersection(output_types_set):
+                print("found but not correct: ", [x.char for x in np_input_types], [x for x in ufu
nc_inputs])
+                continue
+            else:
+                print("found and correct: ", [x.char for x in np_input_types], [x for x in ufunc_i
nputs])
             try:
                 inputs = choose_types(input_types, ufunc_inputs)
                 outputs = choose_types(output_types, ufunc_outputs)
@@ -534,8 +541,10 @@ def ufunc_find_matching_loop(ufunc, arg_types):
             except errors.NumbaNotImplementedError:
                 # One of the selected dtypes isn't supported by Numba
                 # (e.g. float16), try other candidates
+                print("errored")
                 continue
             else:
+                print("returning, :", inputs, outputs, candidate)
                 return UFuncLoopSpec(inputs, outputs, candidate)

     return None

Output
found and correct:  ['d', 'd'] ['d', 'd']
returning, : [float64, float64] [float64] dd->d
found and correct:  ['d', 'd'] ['d', 'd']
returning, : [float64, float64] [float64] dd->d
found but not correct:  ['?'] ['b']
found but not correct:  ['?'] ['B']
found but not correct:  ['?'] ['h']
found but not correct:  ['?'] ['H']
found but not correct:  ['?'] ['i']
found but not correct:  ['?'] ['I']
found but not correct:  ['?'] ['l']
found but not correct:  ['?'] ['L']
found but not correct:  ['?'] ['q']
found but not correct:  ['?'] ['Q']
found but not correct:  ['?'] ['f']
found but not correct:  ['?'] ['d']
found but not correct:  ['?'] ['g']
found but not correct:  ['?'] ['F']
found but not correct:  ['?'] ['D']
found but not correct:  ['?'] ['G']
found but not correct:  ['?'] ['b']
found but not correct:  ['?'] ['B']
found but not correct:  ['?'] ['h']
found but not correct:  ['?'] ['H']
found but not correct:  ['?'] ['i']
found but not correct:  ['?'] ['I']
found but not correct:  ['?'] ['l']
found but not correct:  ['?'] ['L']
found but not correct:  ['?'] ['q']
found but not correct:  ['?'] ['Q']
found but not correct:  ['?'] ['f']
found but not correct:  ['?'] ['d']
found but not correct:  ['?'] ['g']
found but not correct:  ['?'] ['F']
found but not correct:  ['?'] ['D']
found but not correct:  ['?'] ['G']
found but not correct:  ['?'] ['b']
found but not correct:  ['?'] ['B']
found but not correct:  ['?'] ['h']
found but not correct:  ['?'] ['H']
found but not correct:  ['?'] ['i']
found but not correct:  ['?'] ['I']
found but not correct:  ['?'] ['l']
found but not correct:  ['?'] ['L']
found but not correct:  ['?'] ['q']
found but not correct:  ['?'] ['Q']
found but not correct:  ['?'] ['f']
found but not correct:  ['?'] ['d']
found but not correct:  ['?'] ['g']
found but not correct:  ['?'] ['F']
found but not correct:  ['?'] ['D']
found but not correct:  ['?'] ['G']
found but not correct:  ['?'] ['b']
found but not correct:  ['?'] ['B']
found but not correct:  ['?'] ['h']
found but not correct:  ['?'] ['H']
found but not correct:  ['?'] ['i']
found but not correct:  ['?'] ['I']
found but not correct:  ['?'] ['l']
found but not correct:  ['?'] ['L']
found but not correct:  ['?'] ['q']
found but not correct:  ['?'] ['Q']
found but not correct:  ['?'] ['f']
found but not correct:  ['?'] ['d']
found but not correct:  ['?'] ['g']
found but not correct:  ['?'] ['F']
found but not correct:  ['?'] ['D']
found but not correct:  ['?'] ['G']
Traceback (most recent call last):
  File "../debug.py", line 320, in <module>
    test_np_gcd_lcm_sub()
  File "../debug.py", line 310, in test_np_gcd_lcm_sub
    print(sign(True))
  File "/Users/czgdp1807/numba_project/numba/numba/core/dispatcher.py", line 468, in _compile_for_args
    error_rewrite(e, 'typing')
  File "/Users/czgdp1807/numba_project/numba/numba/core/dispatcher.py", line 409, in error_rewrite
    raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
No implementation of function Function(<ufunc 'sign'>) found for signature:

 >>> sign(bool)

There are 2 candidate implementations:
  - Of which 2 did not match due to:
  Overload in function 'Numpy_rules_ufunc.generic': File: numba/core/typing/npydecl.py: Line 98.
    With argument(s): '(bool)':
   Rejected as the implementation raised a specific error:
     TypingError: can't resolve ufunc sign for types [bool]
  raised from /Users/czgdp1807/numba_project/numba/numba/core/typing/npydecl.py:107

During: resolving callee type: Function(<ufunc 'sign'>)
During: typing of call at ../debug.py (308)

File "../debug.py", line 308:
    def sign(x):
        return np.sign(x)
        ^

I have a couple of questions from the output,

What is meant by np_input_types and ufunc_types? As far as I can figure out, np_input_types is the actual type of the input provided by the user, here True and ufunc_types is made available from keys of ufunc_db. Am I right?
Why returning:,  happens multiple times. I noticed that the return UFuncLoopSpec(inputs, outputs, candidate) gets executed multiple times. I am unable to figure out, why?

Thanks.


Only pipenv shell  -c works on my zsh

I'm using zsh, and pip shell only works with the --compat flag.
So, in this case, what "misconfigured shells" means?
github-douglas/demo/dfu-demo
▶ pipenv shell --help
Usage: pipenv shell [OPTIONS] [SHELL_ARGS]...

  Spawns a shell within the virtualenv.

Options:
  --three / --two  Use Python 3/2 when creating virtualenv.
  --python TEXT    Specify which version of Python virtualenv should use.
  -c, --compat     Run in shell compatibility mode (for misconfigured shells).
  --help           Show this message and exit.

github-douglas/demo/dfu-demo
▶ pipenv shell
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.

github-douglas/demo/dfu-demo
▶ ./manage.py --version
Traceback (most recent call last):
  File "./manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

github-douglas/demo/dfu-demo
▶ pipenv shell -c
Spawning environment shell (/bin/zsh).
source /Users/douglas/.virtualenvs/dfu-demo/bin/activate

github-douglas/demo/dfu-demo
▶ source /Users/douglas/.virtualenvs/dfu-demo/bin/activate
(dfu-demo)
github-douglas/demo/dfu-demo
▶ ./manage.py --version
1.10.5
(dfu-demo)
github-douglas/demo/dfu-demo
▶

pipenv==3.3.4

that means you don't have your shell configured properly!

and that's why compatibility mode is there. you can make it permanent by setting PIPENV_SHELL_COMPAT=1

@kennethreitz could you expand a little (or post a link) on what is considered properly configured shell in this case? For people who stumble to this via Google. Thanks!

I'm stumbling across this issue and I still don't know what is misconfigured in my shell that makes a straight pipenv shell not work for me. What is misconfigured in my shell such that "regular" mode does not work, but compatibility mode does? What is considered a properly configured shell? For reference, I'm using zsh.
Thanks.

check this out for more information https://github.com/berdario/pew#the-environment-doesnt-seem-to-be-activated


2019 MacBook Pro - Memory Leaks during vkCreateInstance

Hi! I am new to working with Vulkan, and I was just following the tutorial, and doing some tests to make sure that I am doing things correctly. Of those tests, I ran leaks on my program, and found that there were 4 memory leaks. I made a trivial version of the code that covers all of the memory leaks, and have attached the leaks results below:
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

#include <iostream>
#include <stdexcept>
#include <vector>

const std::vector<const char*> validationLayers = {
    "VK_LAYER_KHRONOS_validation"
};

class Engine {
public:
    void run() {
        glfwInit();

        glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
        glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);

        window = glfwCreateWindow(800, 600, "Application", nullptr, nullptr);

        if(!checkValidationLayerSupport()) {
            throw std::runtime_error("Validation layers requested, but not available!");
        }

        VkApplicationInfo appInfo = {
            .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
            .pApplicationName = "Application",
            .applicationVersion = VK_MAKE_VERSION(1, 3, 0),
            .pEngineName = "No Engine",
            .engineVersion = VK_MAKE_VERSION(1, 3, 0),
            .apiVersion = VK_API_VERSION_1_3
        };

        std::vector<const char*> extensions = getRequiredExtensions();

        VkInstanceCreateInfo createInfo = {
            .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
            .pApplicationInfo = &appInfo,
            .enabledExtensionCount = static_cast<uint32_t>(extensions.size()),
            .ppEnabledExtensionNames = extensions.data(),
            .flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
        };

        createInfo.enabledLayerCount = static_cast<uint32_t>(validationLayers.size());
        createInfo.ppEnabledLayerNames = validationLayers.data();

        createInfo.pNext = (VkDebugUtilsMessengerCreateInfoEXT*) &debugCreateInfo;

        if(vkCreateInstance (&createInfo, nullptr, &instance) != VK_SUCCESS) {
            throw std::runtime_error("Failed to create Vulkan instance!");
        }

        vkDestroyInstance(instance, nullptr);
        glfwDestroyWindow(window);
        glfwTerminate();
    }

private:
    GLFWwindow* window;
    VkInstance instance;
    VkDebugUtilsMessengerEXT debugMessenger;

    bool checkValidationLayerSupport() {
        uint32_t layerCount;
        vkEnumerateInstanceLayerProperties(&layerCount, nullptr);
        std::vector<VkLayerProperties> availableLayers(layerCount);
        vkEnumerateInstanceLayerProperties(&layerCount, availableLayers.data());

        for(const char* layerName : validationLayers) {
            bool layerFound = false;

            for(const VkLayerProperties& layerProperties : availableLayers) {
                if(strcmp(layerName,  layerProperties.layerName) == 0) {
                    layerFound = true;
                    break;
                }
            }

            if(!layerFound) {
                std::cout << "Unable to find validation layer: " << layerName << std::endl;
                return false;
            }
        }

        return true;
    }

    std::vector<const char*> getRequiredExtensions() {
        uint32_t glfwExtensionCount = 0;
        const char** glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);
        std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);

        extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
        extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);

        return extensions;
    }

    static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData) {
        if(messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) {
            std::cerr << "Validation Layer: " << pCallbackData->pMessage << std::endl;
        }

        return VK_FALSE;
    }

    inline static const VkDebugUtilsMessengerCreateInfoEXT debugCreateInfo = {
        .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
        .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,
        .messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,
        .pfnUserCallback = debugCallback
    };
};

int main() {
    Engine app;

    try {
        app.run();
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}

All of the leaks happen in MoltenVK as a result of calling vkCreateInstance.
leak_results.txt

I'm not sure if MoltenVK supports 1.3, I'm using 1.2. Try that out.

@angkaidev Thanks for reporting this.
Apple had/has a known leak on its counter sets. We made use of a work-around, and then Apple fixed it. So the presence of the leak depends the platform and OS version. For the most part, the leak is fixed, and it is small, so we've been living with it on the edge cases where it does appear.
Can you provide some more details about the platform and OS version you are running this on, please? From your leak tool dump it looks like you're running Intel for both CPU and GPU. What OS version?

Hi @AntarticCoder @billhollings, thank you for the quick reply!
I tried using 1.2 and unfortunately it still does not work. I am running Ventura 13.4.1

I'm a bit stumped on this, but why don't you try this. This from vulkan-tutorial so it should be valid code most likely. Just comment out your code, and copy and paste. Then see what your leak dump tool says.

@AntarticCoder Unfortunately, the leaks are still the same.


Base URL not considered while building hyperlinks

If you install this theme as a subpath (example.com/notes) and set baseurl in config.yml as /notes - the homepage works, and links are generated, but the paths will be broken as generated hyperlinks is wrong. (Reference to bug #11)
I think I need to replace all page.url with url + baseurl + page.url

Sorted in the new version. Config at _config.yml.


make Map the default

Hey, happy user here
I'm interested in centralizing all Lru and Fifo packages to yours within the Fastify ecosystem
Just wanted to ask if you would be interested in making the Map versions of the caches the default named exports (Lru and Fifo)
In recent versions of V8, Map essentially always outperforms Object when it comes to read and write speeds
Now, after seeing the perf difference, you might say, "This is the difference? So what?", but let me point out a property of Objects that makes them unsuitable for generic Map functionality — you probably know the others but I'll leave this MDN link as well
Even if you have a null prototype, weird stuff can be done:
let lru = new Lru()
lru.set('toString', () => "Would throw but no longer"})
`${lru.items}` // Output: Would throw but no longer

lru.set(Symbol.iterator, 'Breaks `this.items` iterator')

I know that these aren't even possible in most cases, but they still make it clear that Map is simply more consistent at being... a Map!
In my opinion, objets are only superior when their keys are known at creation time
Benchmark (node ^20)
BENCHMARK  100
Object write took 0.060791969299316406
Object read took 0.1952500343322754
Map write took 0.01816701889038086
Map read took 0.01595902442932129
BENCHMARK  1000
Object write took 0.3558340072631836
Object read took 0.10799980163574219
Map write took 0.10654187202453613
Map read took 0.10749983787536621
BENCHMARK  10000
Object write took 3.391292095184326
Object read took 1.8417911529541016
Map write took 1.2463748455047607
Map read took 1.3308749198913574
BENCHMARK  1000000
Object write took<PHONE_NUMBER>847412
Object read took<PHONE_NUMBER>3623962
Map write took<PHONE_NUMBER>8664856
Map read took<PHONE_NUMBER>5830994

Code
function benchmark(TIMES) {
  console.log("BENCHMARK ", TIMES);

  const object = Object.create(null);

    let start = performance.now();
    for (let i = 0; i < TIMES; ++i) {
        object[`key_${i}`] = 1;
    }

    console.log("Object write took", performance.now() - start);
    start = performance.now();

    let result = 0;

    for (let i = 0; i < TIMES; ++i) {
      result += object[`key_${i}`];
    }

    console.log("Object read took", performance.now() - start);
    start = performance.now();

  const map = new Map();

  for (let i = 0; i < TIMES; ++i) {
    map.set(`key_${i}`, 1);
  }

  console.log("Map write took", performance.now() - start);
  start = performance.now();

  result = 0;

  for (let i = 0; i < TIMES; ++i) {
    result += map.get(`key_${i}`);
  }

  console.log("Map read took", performance.now() - start);

}

benchmark(100);
benchmark(1_000);
benchmark(10_000);
benchmark(1_000_000);

I can send a PR too if you're down

@gurgunday Interesting. My own benchmarks indicated the opposite, see
https://github.com/kibertoad/nodejs-benchmark-tournament/blob/master/cache-get-inmemory/_results/results.md
https://github.com/kibertoad/nodejs-benchmark-tournament/blob/master/cache-get-many-inmemory/_results/results.md
https://github.com/kibertoad/nodejs-benchmark-tournament/blob/master/cache-set-inmemory/_results/results.md
Can you compare our measurement approaches and figure out why they differ in outcomes?

I don't see toad-cache-lru-map in the benchmarks, but I did a test after adding it and the results are the following:
However, I don't trust this one since I'm using battery power right now, I will redo it when I get back home
{ cpu: { brand: 'M1', speed: '2.40 GHz' } }
| Node   | Option                     | Msecs/op       | Ops/sec  | V8                    |
| ------ | -------------------------- | -------------- | -------- | --------------------- |
| 20.8.0 | layered-loader-fifo-object | 0.191705 msecs | 5216.338 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | layered-loader-fifo-map    | 0.205043 msecs | 4877.017 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | toad-cache-lru-map         | 0.207531 msecs | 4818.554 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | layered-loader-lru-object  | 0.212746 msecs | 4700.438 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | toad-cache-lru             | 0.216082 msecs | 4627.863 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | layered-loader-lru-map     | 0.232885 msecs | 4293.968 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | tiny-lru                   | 0.237502 msecs | 4210.496 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | dataloader                 | 1.335993 msecs | 748.507  | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | async-cache-dedupe         | 2.366963 msecs | 422.482  | V8 <IP_ADDRESS>-node.16 |

Seems like the good ol' Object is quite a bit faster when it comes to set performance:
cache-set-inmemory
{ cpu: { brand: 'M1', speed: '2.40 GHz' } }
| Node   | Option             | Msecs/op       | Ops/sec  | V8                    |
| ------ | ------------------ | -------------- | -------- | --------------------- |
| 20.8.0 | toad-cache-lru     | 0.224106 msecs | 4462.169 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | toad-cache-lru-map | 0.293277 msecs | 3409.748 | V8 <IP_ADDRESS>-node.16 |

cache-get-inmemory
{ cpu: { brand: 'M1', speed: '2.40 GHz' } }
| Node   | Option             | Msecs/op       | Ops/sec  | V8                    |
| ------ | ------------------ | -------------- | -------- | --------------------- |
| 20.8.0 | toad-cache-lru-map | 0.194286 msecs | 5147.056 | V8 <IP_ADDRESS>-node.16 |
| 20.8.0 | toad-cache-lru     | 0.204919 msecs | 4879.984 | V8 <IP_ADDRESS>-node.16 |

I would've preferred to see the opposite, but Map is still not there 🤣

@gurgunday can you create a PR with new benchmarks, btw? they would be useful for the future

Yeah, I just did 😁


minor release v0.9.0

Release Summary

Version change: v0.8.0 → v0.9.0
Merge: releases/v0.9.0 → master
Compare the changes between the versions

:warning: When merging this pull request, you need to "Squash and merge" and make sure the title starts with minor release v0.9.0.
After that, a commit minor release v0.9.0 will be added and shipjs trigger will be able to trigger the release based on the commit.
Fore more information, please refer to the mergeStrategy section of the guide.

This is going to be published by the following command:
yarn publish --no-git-tag-version --non-interactive --tag latest

This pull request is automatically generated by Ship.js

Codecov Report

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

@@           Coverage Diff           @@
##           master      #45   +/-   ##
=======================================
  Coverage   91.16%   91.16%
=======================================
  Files           7        7
  Lines         419      419
  Branches       51       51
=======================================
  Hits          382      382
  Misses         17       17
  Partials       20       20

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 efeb321...f5a66f9. Read the comment docs.


feat: Initial set up + test for login

Added dotenv for keeping credentials out of tests and source control
Created a test for login (throw an error when the login fails)
Used a python version file for consistency when developing

Thank you for doing this!


Adding domain access policy to OpenSearch domain deployment

This is an invalid approach. OpenSearch domains in a VPC can't use IP access policies, they need to use security groups and sign the requests.


Replace DumpReliablyWithCallback with a more reliable function

Kernel returns a specific error [1] when there are no more entries in the map which is used by bpftool [2]. We can replace the DumpReliablyWithCallback [3] by checking a specific error to detect when a map was iterated.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/hashtab.c?id=f54c7898ed1c3c9331376c0337a5049c38f66497#n597
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/bpf/bpftool/map.c#n820
[3] https://github.com/cilium/cilium/blob/e5cddc76279ed90da97a21961175d79bb3362a19/pkg/bpf/map_linux.go#L629

This will also solve https://github.com/cilium/cilium/issues/8073


A11y implementation issues for KS-app and Website

Select one ...  (check one with "x")
[ ] bug
[ ] feature request
[ ] enhancement

Expected behavior

Actual behavior

Reproduction of behavior

Include a link to the reproduction scenario you created by forking one of the Clarity Plunker Templates:

Environment details

Angular version: 4.x.x

Clarity version:

OS and version:

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

All fixed now. Closing the epic.


[SPARK-24923][SQL] Implement v2 CreateTableAsSelect

What changes were proposed in this pull request?
This adds a v2 implementation for CTAS queries

Update the SQL parser to parse CREATE queries using multi-part identifiers
Update CheckAnalysis to validate partitioning references with the CTAS query schema
Add CreateTableAsSelect v2 logical plan and CreateTableAsSelectExec v2 physical plan
Update create conversion from CreateTableAsSelectStatement to support the new v2 logical plan
Update DataSourceV2Strategy to convert v2 CTAS logical plan to the new physical plan
Add findNestedField to StructType to support reference validation

How was this patch tested?
We have been running these changes in production for several months. Also:

Add a test suite CreateTablePartitioningValidationSuite for new analysis checks
Add a test suite for v2 SQL, DataSourceV2SQLSuite
Update catalyst DDLParserSuite to use multi-part identifiers (Seq[String])
Add test cases to PlanResolutionSuite for v2 CTAS: known catalog and v2 source implementation

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10567/
Test PASSed.

Test build #105292 has started for PR 24570 at commit b13a8e2.

Test build #105292 has finished for PR 24570 at commit b13a8e2.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class CreateTableAsSelect(
case class DataSourceResolution(
case class CreateTableAsSelectExec(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105292/
Test FAILed.

Test build #105296 has started for PR 24570 at commit a22c335.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10570/
Test PASSed.

Test build #105297 has started for PR 24570 at commit cdf3805.

Test build #105296 has finished for PR 24570 at commit a22c335.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105296/
Test PASSed.

Test build #105297 has finished for PR 24570 at commit cdf3805.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105297/
Test PASSed.

@mccheah, @cloud-fan, here's a v2 implementation for CTAS. Please review if you have time. Thanks!

@cloud-fan, I've updated this PR and fixed your review comments, so please have another look. Also, I added a test suite that I accidentally didn't add, DataSourceV2SQLSuite. That is where I will be putting end-to-end test cases that use in-memory tables to validate the physical plans.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10629/
Test PASSed.

Test build #105364 has started for PR 24570 at commit b19a70d.

Test build #105364 has finished for PR 24570 at commit b19a70d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105364/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10649/
Test PASSed.

Test build #105387 has started for PR 24570 at commit 99ebc00.

Test build #105387 has finished for PR 24570 at commit 99ebc00.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105387/
Test PASSed.

thanks, merging to master!

Thanks for reviewing, @cloud-fan and @mccheah! I'll get the next few PRs posted.


Manage console - uncaught TypeError causes white screen

Bug report:
Manage console is broken in configuration/scheduler-cluster path. I can't see the details of scheduler cluster. See the screenshot for more details.

Expected behavior:
We should be able to see scheduler cluster dashboard in manage console.
How to reproduce it:
Deploy Dragonfly with helm charts using below configuration with https://github.com/dragonflyoss/helm-charts/pull/74 patch
containerRuntime:
  containerd:
    enable: true
manager:
  ingress:
    enable: true
    className: private
    hosts:
      - "dragonfly.example.com"
    tls:
      - secretName: secure-tls
        hosts:
          - "dragonfly.example.com"
cdn:
  # -- Enable cdn
  enable: true

Enter dragonfly.example.com after ingress is up. Login to console. Go to http://dragonfly.example.com/configuration/scheduler-cluster. As the result we see the dashboard for a moment and then it turn into whitescreen.
Environment:

Dragonfly version: v2.0.3-beta.3
OS: Ubuntu 20.04.3 LTS
Kernel (e.g. uname -a): 5.11.0-1021-aws
Others: containerRuntime: containerd://1.4.12

We'll fix it this week.

I see that it has been fixed in v2.0.3. Cool, I am closing it


Maintain new solution persists during SA Algorithm

Ensure that the new solution that is being modified persists throughout the algorithm. The reason this is desired is because if the all the BEBs are initialized in their waiting queues and the only accepted solutions are those in the solution space, then many modifications to the original solution is going to have to be made.
So the utility of all the solutions should be tracked, but only the ones in the solution space should be added as the active solution.

This approach has been deemed incorrect. Cancel and close pull request.


Adding positional superko check

This is a great contribution. Could you also add some tests? One showing that it detects superko (ideally demonstrating this where a capture is included), one showing that this does/doesn't affect the value of is_legal when the check is enabled/disabled.

Not sure how the flake8 error suddenly showed. Flake8 local doesnt show this


Issue with webvid-covr dataset

Dear lucas, I'm really interested in your work, but when I use “bash tools/scripts/download_annotation.sh covr” to download the annotation of webvid-covr dataset, it seems always an empty directory without any downloading error. I wonder is it correct?

Hi,
Thanks for your interest!
I just merged the latest covr branch, and I tested it in a fresh repository where it worked as expected. Could you please try again after doing a git pull? Let me know if you still encounter any issues.

I tried agian and it wroked! thanks a lot!

Dear lucas, thanks for your quick response. When I download the webvid-covr dataset with “split=test” and then do the compute BLIP embeddings everything goes well, but when I try the test.py, it always occurs something wrong as
"Missing 176 pth1's (7.2%), saving them to missing_pth1-test.txt
Error executing job with overrides: []
Error in call to target 'src.data.webvid_covr.WebVidCoVRTestDataModule':
ValueError("Missing 176 pth1's (7.2%) in test split")
full_key: test.webvid_covr"
or
"Missing 29 pth1's (1.2%), saving them to missing_pth1-test.txt
Error executing job with overrides: []
Error executing job with overrides: []
Error in call to target 'src.data.webvid_covr.WebVidCoVRTestDataModule':
ValueError("Missing 29 pth1's (1.2%) in test split")
full_key: test.webvid_covr"
and also I cannot find the missing_pth1-test.txt file, could you give some advice to solve this problem？


change the partition's ownership

if osd using a partition, and the disk has partitioned manually,  the partition's ownership should be changed to ceph:ceph.
Otherwise ceph-disk activate will be failed for something permission denied error

This sounds like a ceph-disk issue though. ceph-disk already sets permissions always when dealing with devices

if ceph-disk create the partition, it will invoking the partprobe command. In this scenario, partitions are created manaually , so I change the ownership.


Disable autocomplete of all used words

If there is returned an empty array from provideCompletionItems, the autocompletion suggests all already used words. Can I disable this behaviour?
I recreated the behaviour in the monaco playground example:
https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-completion-provider-example
function createDependencyProposals() {
    // returning a static list of proposals, not even looking at the prefix (filtering is done by the Monaco editor),
    // here you could do a server side lookup
    return [
    ];
}

monaco.languages.registerCompletionItemProvider('json', {
    provideCompletionItems: function(model, position) {
        // find out if we are completing a property in the 'dependencies' object.
        var textUntilPosition = model.getValueInRange({startLineNumber: 1, startColumn: 1, endLineNumber: position.lineNumber, endColumn: position.column});
        var match = textUntilPosition.match(/"dependencies"\s*:\s*{\s*("[^"]*"\s*:\s*"[^"]*"\s*,\s*)*("[^"]*)?$/);
        var suggestions = match ? createDependencyProposals() : [];
        return {
            suggestions: suggestions
        };
    }
});

monaco.editor.create(document.getElementById("container"), {
    value: "{\n\t\"dependencies\": {\n\t\t\n\t}\n}\n",
    language: "json"
});

Use wordBasedSuggestions options to disable this.

@brijeshb42 Ok thank you, the option solved the behaviour :)


fix(Typeahead): Emit TypeaheadMatch, not {item: TypeaheadMatch}

Previously (typeaheadOnSelect) emitted:
Object {item: any}

from v1.1.10 it emits:
Object {item: TypeaheadMatch {item: any, value: string, header: string}}

whereas the intended value is:
TypeaheadMatch {item: any, value: string, header: string}

This commit fixes that.
Closes: #1103

Current coverage is 85.88% (diff: 100%)

Merging #1104 into development will not change coverage

@@           development      #1104   diff @@
=============================================
  Files               35         35
  Lines             1275       1275
  Methods            227        227
  Messages             0          0
  Branches           212        212
=============================================
  Hits              1095       1095
  Misses             180        180
  Partials             0          0

Powered by Codecov. Last update b80c0b4...d06ccf8

Thanks for your PR :) But I think you forget something. Here is my PR: https://github.com/valor-software/ng2-bootstrap/pull/1105

Thanks for fast fix!


feat: new simplified quickstart

Pull Request Checklist

[x] Did you add new tests and confirm existing tests pass? (yarn test)
[x] Did you update relevant docs? (docs are found in the site folder, and guidelines for updating/adding docs can be found in the contribution guide)
[x] Do your commits follow the Conventional Commits standard?
[x] Does your PR title also follow the Conventional Commits standard?
[x] If you have a breaking change, is it correctly reflected in your commit message? (e.g. feat!: breaking change)
[x] Did you run lint (yarn lint:check) and fix any issues? (yarn lint:write)
[x] Did you follow the contribution guidelines?

PR-Codex overview
The focus of this PR is to update the Alchemy Embedded Accounts guide with a quick start, configuration details, and setup instructions.
Detailed summary

Added a quick start guide for Embedded Accounts
Updated configuration details in config.ts
Modified sidebar links for clarity
Added new pages for running the app and understanding how it works

The following files were skipped due to too many changes: site/getting-started/run-the-app.md

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

this PR assumes #685 redirects are in place from setup -> introduction

closing in favor of #697


fix(ThemeProvider): inner provider should overwrite specified props and only them

We are just add wrapper with theme context to tests here?


[fix] TFE's type checker can't handle map values with different types.

Description
Since TFE's type checker can't handle map values with different types (in our case, some values are strings, and others are maps) we can just disable its typechecking for this module
Issue
ch<fill_in_issue_number>
Test plan
Write how your changes are tested, or give a convincing reason why they can't be tested automatically.

Did you mean to check in the nextstrain wdl again?


Sortable is not defined

I've got Sortable imported fine, but when invoking the following JS, console throws an error.
        $(document).ready(function () {
            var container = $('#sortableLinkList');
            var sort = Sortable.create(container, {
                animation: 150, // ms, animation speed moving items when sorting, `0` — without animation
                handle: ".tile__title", // Restricts sort start click/touch to the specified element
                draggable: ".tile", // Specifies which items inside the element should be sortable
                onUpdate: function (evt/**Event*/){
                    var item = evt.item; // the current dragged HTMLElement
                }
            });

            // ..
            sort.destroy();
        });

ReferenceError: Sortable is not defined
<anonymous>
/create:177:17
mightThrow
/js/app.js:21729:21
resolve/</process<
/js/app.js:21797:12

Not sure how to fix this? Is this a bug?

Could you please attach a JSBIN or JSFiddle to descrive your issue?
Also, include the following if you have not :

Well, I'm using this with a Laravel application which uses Webpack to compile the assets.
I wanted to include Sortable in the vendor.js through vendor extraction, but couldn't get that to work.
I eventually did get it working but it's a bit hacky.
window.Sortable = require('sortablejs'); in my resources/assets/js/app.js allowed Sortable to work as expected, even though it is cluttering the window object with variables...

@EdanBrooke If you want to keep sortable script inside blade then do following on app.js
import Sortable, { MultiDrag, Swap } from 'sortablejs';

i got the same problem
<script type="module" src="/sortablejs/Sortable.min.js" charset="utf-8"></script>
<script type="module" src="/sortablejs/modular/sortable.core.esm.js" charset="utf-8"></script>
<script type="module" src="/sortablejs/modular/sortable.complete.esm.js" charset="utf-8"></script>

Hi everyone, I run across this same problem . Just like OP , I'm using Laravel (5.8.x) and the module compiles alright.
However when trying to use it I get the ReferenceError. Also, the workaround proposed there doesn't work for me.
If anyone has any clue, I'll be thankful.
Cheers!


fix(preview): send configured headers

Description
Fix #9864
Update sirv to send headers in preview.
Additional context
The dev equivalent is set as:
https://github.com/vitejs/vite/blob/f76b1eea0f0dd0096f76a83ff9c9376aa3e5e1f7/packages/vite/src/node/server/middlewares/static.ts#L28-L42
I didn't add the ts handling part as those shouldn't happen in preview.

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

It looks like the test previously failed because the tests aren't using Vite preview, but a custom static server, so I can't test the preview server (though I can confirm it works locally).

Not for this PR, but I think we could move the tests to use vite preview, no? They may not be using it only because the preview server is a feature that was developed after the original e2e test infra.

Yeah that's definitely a followup we should do. It feels odd that we're not using it.

Should this still be working?
Because for the life of me I cannot figure out how to add custom response headers onto vite's preview.
Config:
export default defineConfig({
    plugins: [sveltekit()],
    preview: {
        headers: {
            "X-Foo": "bar",
        }
    }
});

Test:
$ curl -i http://localhost:4173/
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
content-type: text/html
etag: "1705064869377"
Date: Fri, 12 Jan 2024 13:30:51 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked

<!DOCTYPE html>
...

@f0o I can't replicate that locally. Could it be a SvelteKit specific issue?

@bluwy I guess, neither preview nor server settings seem to do anything for me. Wonder how the SvelteKit plugin manages to intercept/override those


Installer now properly imports by module manifest. Fixes issue #4

@clr2of8 I fixed this in code. You mind fixing the wiki reference and closing out issue #4? Thanks!

Updated the wiki, thanks.


Only disable the nginx listener when a namespace is Envoy-only

Internal ticket: MESH-931
The current behavior is to disable both the haproxy and nginx listener when a namespace is Envoy-only. There's a race condition when disabling a namespace where haproxy (the service that listens on a UNIX socket) reloads before nginx (the service that listens on the proxy port and proxies to haproxy) which results in 503s being served for about 10 seconds:
$ curl localhost:20139
<html>[...]

$ curl localhost:20139
503 Service Unavailable
Served by haproxy-synapse on 10-65-79-67-useast1aprod.useast1-prod.yelpcorp.com.

$ curl localhost:20139
503 Service Unavailable
Served by haproxy-synapse on 10-65-79-67-useast1aprod.useast1-prod.yelpcorp.com.

$ curl localhost:20139
curl: (7) Failed to connect to localhost port 20139: Connection refused

This is bad because if nginx and envoy are sharing the port, we may serve 503s from nginx for a few seconds depending on how the traffic is split.
The new approach is to just keep the haproxy listener around and only tear down the nginx listener. This avoids complex coordination that would be required to ensure they get torn down / brought up in the correct order to avoid serving errors, and should be effectively equivalent since nothing will be using the haproxy UNIX socket.
Verification
Here's what a diff to the synapse config looks like now when disabling a namespace:
--- before      2020-08-13 09:59:53.946522493 -0700
+++ after       2020-08-13 10:05:27.145168974 -0700
@@ -30346,32 +30320,6 @@
             },
             "use_previous_backends": false
         },
-        "example_happyhour.envoy.nginx_listener": {
-            "default_servers": [
-                {
-                    "host": "unix",
-                    "port": "/var/run/synapse/sockets/example_happyhour.envoy.prxy"
-                }
-            ],
-            "discovery": {
-                "method": "base"
-            },
-            "file_output": {
-                "disabled": true
-            },
-            "haproxy": {
-                "disabled": true
-            },
-            "nginx": {
-                "mode": "tcp",
-                "port": 20139,
-                "server": [
-                    "proxy_timeout 3610s",
-                    "proxy_protocol on"
-                ]
-            },
-            "use_previous_backends": true
-        },
         "example_happyhour.main": {
             "default_servers": [],
             "discovery": {

I manually tested a built package when toggling off a namespace and it cleanly goes from working to connection refused:
$ while :; do curl -sSI localhost:20139/status | head -n1; sleep 0.05; done
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
curl: (7) Failed to connect to localhost port 20139: Connection refused
curl: (7) Failed to connect to localhost port 20139: Connection refused
curl: (7) Failed to connect to localhost port 20139: Connection refused
curl: (7) Failed to connect to localhost port 20139: Connection refused
curl: (7) Failed to connect to localhost port 20139: Connection refused
curl: (7) Failed to connect to localhost port 20139: Connection refused
curl: (7) Failed to connect to localhost port 20139: Connection refused

@ymilki yup, but I think they'll be taken care of as part of the cleanup we would need to do anyway when finally removing synapse—it shouldn't require an extra step.


Annotate which version each policy option is available

For each policy option, add in which version it is available in

/sig node

/approve

According to KEP 2625 cpu manager extension to reject non SMT-aligned workload

... the CPUManager Policy option full-pcpus-only were both introduced in 1.22 release ...
In 1.23 release, as we are graduating this feature to Beta meaning CPUManagerPolicyOptions is enabled by default allowing the user to configure CPU Manager static policy with the option full-pcpus-only

In 1.25 changelog:

Added a new align-by-socket policy option to cpu manager static policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary. (https://github.com/kubernetes/kubernetes/pull/111278, @arpitsardhana)

Also see https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/cm/cpumanager/policy_options.go#L30:L33
/lgtm


Timeouts on Nvidia Website

This is still occurring.
I still getting the perpetual timeouts on the Snatcher after like 20 or 30 pings.  Can I get a little help here?
Originally posted by @FireRx in https://github.com/jef/nvidia-snatcher/issues/267#issuecomment-698873424

-.//


Removing layers doesn't work with MarkerCluster

I have an application that needs to remove layers from the group, and have the parent group get updated.
This works fine if the parent group is, for example, the map or another layer group.
However, if the parent group is the markercluster then this doesn't work.
This is because the markercluster is expecting a fully loaded layer object to be passed to removeLayer, instead it's passed the ID of the layer, which fails to remove it as far as I can see.

It does seem like the code should handle that case though, trying to work out what's up.

Ah no, sorry, yeah, it always passes the numeric ID of the layer to remove, which isn't handled very well by markercluster.

Not sure if I should suggest that MarkerCluster should support removal by ID rather than Layer object, but as the fix here is super easy, I'm going to fork and suggest the change.

Hi,
Thank you for your report and for the PR!
Good catch about MCG not handling removeLayer(layerId).
Indeed an easy fix would be to retrieve back the full layer object before calling removeLayer, as done internally in Leaflet LayerGroup.
Looking at my code I see another inconsistency, hopefully I can fix that later on.
I will merge your PR in the meantime.
Thank you for your contribution!


First Contribution By Esther Jolomi Adeyinka

Name: Esther  Jolomi Adeyinka
Project Name: FluxML
Link FluxML Governance Model: https://fluxml.ai/governance/#advisory_committee__2
My Contribution: FluxML Governance.docx
how easy or difficult it was to find and understand the FluxML governance model:
I have never contributed to an open source before now. However, the term "governance model" is not new so finding and understanding it was not so difficult for me. Nevertheless, this project gave me a lot of insight into the roles and significance of the governance model in any business. I'm glad I signed up because it helped me improve my research and analytics skills and broadened my knowledge of the subject.
cc @arliss-NF

@jolomi942
Hi Esther Jolomi Adeyinka,
Thank you for your well written contribution. You have a great grasp of this topic and you were very thorough. Great work, looking forward to seeing your second contribution.


Bundle polymer web components

Hi,
Is it possible to bundle all web components to avoid multiple server hits at initial app layout load?
Regards

Hi @sergei-iliev
Thanks for the suggestion, but opt out to bundle deliberately on this add-on because as polymer documentation:

bundled or unbundled resources depends on the behaviour and capabilities of both server and browser.

refer to To bundle or not to bundle? from Polymer site.
However, YES ... you can bundle all your web components on the application level. If you modify the polymer.json to  bundle: true with your build, the Application will run normally.


Find one GDC example with treatments.

Would this work?
https://github.com/CancerDataAggregator/transform/blob/main/tests/steps/gdc_TCGA-E2-A10A_aggregated.yaml

@YeastCell I can't find where that data is in the raw .json pulled from the DCs. Thanks.


Fix issue with canvas fixed width on screens <760px

There was an issue with screens < 760px because of a harcoded fix width on canvas

Thanks @meltingice1337


HUD.hide(afterDelay: completion:) doesn't call completion

Tracing through a debug, it seems that the userInfo that contains the completion block is nil after the delay.
The code I used (replacing the demo code):
@IBAction func showTextHUD(sender: AnyObject) {
    HUD.show(.Label("Text."))
    HUD.hide(afterDelay: 2, completion: { (complete) -> Void in
        print("here")
    })
}

Thanks for reporting this! Fixed already :)


Is there a way to just return from a serializer?

I have a case where I want to serialze a special style inside the block type. But I want to return default rendering of all other styles. I dont want to have to write the serializer for all styles inside the block
How can I do this?

Hi @vongohren. It's possible to delegate to BlockContent.defaultSerializers:
Check out this test for an example:
https://github.com/sanity-io/block-content-to-react/blob/a41894874c0ca7b7aa06e6ac3fa143cdd950c657/test/dom/BlockContent.test.js#L60-L70

Cool, thank you :D
On Fri, Jul 19, 2019 at 1:00 PM Bjørge Næss<EMAIL_ADDRESS>wrote:

Closed #19 https://github.com/sanity-io/block-content-to-react/issues/19
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sanity-io/block-content-to-react/issues/19?email_source=notifications&email_token=AAHXCV445R2UK2EWMYBLKATQAGNDRA5CNFSM4IEOODFKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOSS7C6WY#event-2495491931,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHXCV46EBDPEXHP26JVGVDQAGNDRANCNFSM4IEOODFA
.


Implement reference state-transition tests

Description
As a developer, I want Artemis to use the best available test data so that I am confident that it is performing correctly.
A couple of state transition tests have been added to the testing repo. These should be implemented alongside the other reference tests.
Acceptance Criteria

State transition tests run against the reference test git submodule, although they should probably avoid failing explicitly for now.
Out of scope: debugging Artemis to make it pass the tests for now.

@benjaminion, has this been completed or is it still an open issue?

Remains open.


Case Study: Batch Update - A User Driven Approach: What We Talk About When We Talk About Design Thinking

Karen Shaw<EMAIL_ADDRESS>Adam Arling
Over the past year, NUL dev team has implemented and refined a workflow for modular development of repository applications. It starts with addressing a specific user need or problem. Using design-thinking techniques, we next generate visual solutions through rudimentary wire framing, white boarding sessions and architecture discussions. We then move to API design and mocking before starting development with two teams working independently, from the API, outwards.
This presentation will demonstrate the iterative approach in action; using a recent major batch update feature as a case study. We’ll explore how our approach allowed us to stay connected to our users and helped keep our development team in sync. Finally, we’ll reflect on what we’ve found most successful in this approach as well as stumbling blocks we encountered along the way.

Thank you! My co-presenter has a conflict on Thursday so could we keep it Monday-Wednesday?


Steeringwheel shaking Issue 2021 Acura

Driving rough surface (Ex. concrete surface on bridge) causes steering wheel to shake left/right for a few seconds. It is worse at low speed. Steering wheel shaking issue stops by it self or sometimes i have to hold steering wheel.
It happens if you drive straight and hit a bump in the road.
Device/Version information (please complete the following information):

Device: comma 2
Dongle ID: 91ac852a198890c2
Route1: 91ac852a198890c2|2021-06-22--10-12-47--0 - Timestamp1: 10:20:45 ~ 10:20:50,  10:22:38 ~10:22:42 , 10:23:04 ~10:23:11
Rout 2: 91ac852a198890c2|2021-06-21--18-01-23 - Timestamp 2: 18:03:31 ~ 18:03:52
Version: 0.8.5
Car make/model: 2021 Acura RDX

Please provide more information and fill out the template

Please provide more information and fill out the template

Sorry i pressed enter while filling out the template

Your PID controller is tuned too aggressively. I suggest lowering kP.

Is there any instructions on lowering kP value?

Here's where the parameters are defined for your car - https://github.com/commaai/openpilot/blob/master/selfdrive/car/honda/interface.py#L338. Join the #tuning channel on our discord for some help. If you come up with some better values, submit them as a PR.


x/tools/go/types: treats complex constant as integer

gotype successfully compiles the following program:
package a
var e,f = f^0i,0

while gccgo says:
go.go:2:12: error: incompatible types in binary expression

gccgo seems to be right, because 0i is imaginary literal.
on commit 997b3545fd86c3a2d8e5fe6366174d7786e71278

@ianlancetaylor @rsc @paranoiacblack

Working as intended: 0i is an untyped complex constant that can be represented accurately as an int. Both go/types and gc agree with the spec. This is a gccgo bug.
See also #11563 .


Updated workflows for github actions

This updates the workflow files for github actions to newest version for all actions.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 25.765%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2433

Relevant Lines:
9443

💛  - Coveralls


Cannot setDescription while creating class schema

OrientDB Version, operating system, or hardware.

v2.2.14

Operating System

[x ] Linux
[ ] MacOSX
[ ] Windows
[ ] Other Unix
[ ] Other, name?

Expected behavior and actual behavior
While creating my classes schema I set the description but I get null if I try to read the description later on.
Steps to reproduce the problem
oClass.setDescription("My Description");
Debugging OrientDB code seems that you use the wrong command in OClassImpl row 694 and 698
final String cmd = String.format("alter class %s description %s", name, shortName);
shortName should be iDescription

I just tested that if I try to alter the class using Studio and reading with java I get the description.

hi @lucafrosini,
Thank you for investigating so deep, feel free to do a pull request on 2.2.x branch with the fix, in any case we are going to look into this soon.
Bye

I just created the pull request #7067

merged the pr, closing
Thank you for checking and fixing this.
Bye

thank you

Sorry but the bug is not fixed.
The patch I proposed does not work because while invoking
oClass.setDescription("This is my test class");
This is translated in the following command
alter class MyClass description This is my test class
I think that are missing in the following command (rows 703 and 707).         final String cmd = String.format("alter class%s` description %s", name, iDescription);

hi,
Used query parameters instead of formatting, re-closing
Bye

Sorry @tglman but the bug still occur with a different exception
com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query:
alter class MyClass description ?
^
Encountered "  "alter "" at line 1, column 1.

DB name="gcube"
DB name="gcube"

hi @lucafrosini,
We did a couple of other fix that we release a week ago, feel free to check it, this time i'll wait your feedback to close it.
Regards

I upgraded to 2.2.18 version both server and clients.
Unfortunately I'm still getting an error.
com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query:
alter class `Embedded` description ?
    ^
Encountered " <ALTER> "alter "" at line 1, column 1.

	DB name="mydb"
	DB name="mydb"

It seems working now

Any news about this?
I'm still experiencing. I'm using OrientDB 3.1.2

Sorry, I commented on the old bug. I'm going to comment on the new one. See #8730


How to crope image before upload?

Hi! Is this possible?
https://github.com/cstefanache/angular2-img-cropper
Or is there a better solution?

I'm thinking about making some kind of editor for images or using some existing one but I'm not sure how to build that editor in.

I'd consider this possible with #59, but I won't close if you're still thinking of doing this @aberezkin

Yeah, I think since #59 is resolved we don't need this feature built in. It could be done with some other library now (I don't quite like ng2-img-cropper btw so we can build our own lib @UncleDave).


Input fields for Qt axes scaling dialog

Could we add input text (float) fields next to the sliders on the Qt scale axes dialog?

It's currently quite difficult to achieve desired scales with the Qt dialog. It might look something like the vtki.ScaledPlotter IPython widgets:

Can do.  I’ll add tests as well.

Added in PR #101.

This is awesome!! Thanks!


Remove link to ipynb

Use a code block instead of a link to the example notebooks.

I think this is okay for now, until we figure out a better way to link to the correct version of the examples, without the version being embedded in version.rst.  Maybe it can be done in a release script...

The contents of PyPI description are populated by the long_description field in setup. This can be templated in setup.py to always use the correct version on release, without any hardcoded values anywhere or release scripting.


The subscription method of the pull mode cannot consume messages

** QUESTION**

Please describe the issue you observed:

What did you do (The steps to reproduce)?
My requirement is to pull messages from MQ regularly.

What is expected to see?

I hope to see that the message can be pulled by me normally

What did you see instead?

The strange thing is that I used the subscription mode when I officially pulled the news, but I couldn't pull the news, and all I pulled were empty collections. There is no problem using push mode. Here is the consumer class (org.apache.rocketmq.example.simple.LitePullConsumerSubscribe) from the source code that I am using. Hope to get your reply.

Please tell us about your environment:
Version is 4.4.0，The symptoms of the stand-alone cluster are the same

Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):
` class LitePullConsumerSubscribe {
public static volatile boolean running = true;
public static void main(String[] args) throws Exception {
DefaultLitePullConsumer litePullConsumer = new DefaultLitePullConsumer("test-consumer");
litePullConsumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
litePullConsumer.setNamesrvAddr("<IP_ADDRESS>:9876");
litePullConsumer.subscribe("yyds", "*");
litePullConsumer.start();
try {
while (running) {
List messageExts = litePullConsumer.poll();
System.out.printf("%s%n", messageExts);
}
} finally {
litePullConsumer.shutdown();
}
}
}`

Hi @YutongZh is there any exception log in logs/rocketmqlogs/rocketmq_client.log？


Update build.gradle - Removed unnecessary dependencies.

See https://github.com/Swrve/rate-limited-logger/issues/7

thanks, looks good!