[question] backup and recovery

Is there a backup and recovery plan?
How can I save my cluster data and recover it quickly in the event of a failure.

By default, easegress will store cluster data into etcd in your local disk. When restart, easegress will autoload these stored data (yaml files) and create corresponding object (http server, http pipelines) for you. Is this what you mean?

What I mean is that the data on my local disk may be lost due to some unpredictable problems.
I hope to save a snapshot of the data regularly.
So that you can recover as soon as possible in the event of data loss.

@brzyangg Thank you for the question. Here's briefly the instructions for backup and recovery:
Backup single node Easegress
You can backup periodically the data-dir folder that Easegress creates at startup. The default path is ./data but you might have different value in your Easegress configuration.
Recover single node Easegress
Copy backup data-dir directory to suitable location on your node and start Easegress server with the same configuration, as initial instance. Ensure that the data-dir (by default ./data) points to restored backup folder.
Easegress yaml configurations
When developing cloud architecture with Easegress, the best practice is to store all yaml configurations to VCS such as git. Especially important is to add the Easegress server configuration to git, as you will need it when recovering from backup. Please note that if you start Easegress with default parameters (e.g. ./easegress-server with no flags), you don't have configuration to store. Still it's best to add all object definitions (HTTPServer, HTTPPipeline, filters etc) to git to ensure the best developer experience.
Backup multi-node Easegress
If you have multiple Easegress nodes running in a cluster mode (either cluster-join-urls or cluster.initial-cluster defined in Easegress configuration), there are two variant to consider:
Using cluster-join-urls
Easegress v1.4.0 introduced new simplified way to configure and manage cluster using cluster.initial-cluster YAML entry. Please consider updating your configuration to this new way, following this cookbook.
If you don't want to update right now, here's how you should backup your Easegress cluster: Save periodically backup of data-dir (default value ./data) and member-dir (default value ./member) of each node. So for cluster of size N you need to backup N * 2 folders.
Using cluster.initial-cluster
You only need to backup the data-dir (default value ./data). You can export it periodically from one node, from each node or you can alternate the node to backup each time, for example.
Restore multi-node Easegress
Let's consider again the two variants, depending if you are using cluster-join-urls of cluster.initial-cluster in your Easegress configuration.
Using cluster-join-urls
Restore the corresponding data-dir and member-dir of each node and restart Easegress with initial configurations. Please ensure that the restored data-dir and member-dir are in the locations defined in your configuration.
Using cluster.initial-cluster
Restore the latest data-dir to each node and restart Easegress with initial configurations. Please ensure that the restored data-dir is in the location defined in your configuration.

@samutamm Thank you so much. I try this way.

@brzyangg Have you had chance to try these instructions at your environment?

@samutamm  Hi, thank you for your support, I have some problems in my environment.
My easegress using cluster-join-urls and deploy in kubernetes. It is a statefulset and has three pods.
I want to simulate a failure and recover.
First, I copied and saved the data-dir and member-dir of three pods.
Delete the data-dir and member-dir of all pods. The cluster is currently unavailable.
I copied the data-dir and member-dir in as you suggested.
After these operations, the cluster cannot recover.
This is the log of my node
log for pod-0
2022-01-18T15:39:38.932+08:00   INFO    server/main.go:58       Easegress release: UNKNOWN, repo: UNKNOWN, commit: UNKNOWN
2022-01-18T15:39:38.933+08:00   INFO    profile/profile.go:76   cpu profile: /data/palgress/cpu.profile
2022-01-18T15:39:38.933+08:00   INFO    cluster/cluster.go:389  client connect with endpoints: [http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380]
2022-01-18T15:39:38.934+08:00   INFO    cluster/cluster.go:402  client is ready
2022-01-18T15:40:38.935+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:40:38.935+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:40:38.94+08:00    ERROR   cluster/cluster.go:197  start cluster failed (1 retries): start server failed: wal: crc mismatch
2022-01-18T15:41:43.941+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:41:43.941+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:41:43.944+08:00   ERROR   cluster/cluster.go:203  failed start many times(2), start others if they're not online, otherwise purge this member, clean data directory and rejoin it back.
2022-01-18T15:42:40.547+08:00   INFO    server/main.go:58       Easegress release: UNKNOWN, repo: UNKNOWN, commit: UNKNOWN
2022-01-18T15:42:40.547+08:00   INFO    profile/profile.go:76   cpu profile: /data/palgress/cpu.profile
2022-01-18T15:42:40.548+08:00   INFO    cluster/cluster.go:389  client connect with endpoints: [http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380]
2022-01-18T15:42:40.548+08:00   INFO    cluster/cluster.go:402  client is ready
2022-01-18T15:43:40.549+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:43:40.549+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:43:40.553+08:00   ERROR   cluster/cluster.go:197  start cluster failed (1 retries): start server failed: wal: crc mismatch
2022-01-18T15:44:45.554+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:44:45.555+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:44:45.558+08:00   ERROR   cluster/cluster.go:203  failed start many times(2), start others if they're not online, otherwise purge this member, clean data directory and rejoin it back.
2022-01-18T15:45:50.558+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context deadline exceeded
2022-01-18T15:45:50.558+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:45:50.561+08:00   ERROR   cluster/cluster.go:203  failed start many times(3), start others if they're not online, otherwise purge this member, clean data directory and rejoin it back.
2022-01-18T15:46:55.562+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled

log for pod-1
2022-01-18T15:39:52.499+08:00   INFO    server/main.go:58       Easegress release: UNKNOWN, repo: UNKNOWN, commit: UNKNOWN
2022-01-18T15:39:52.499+08:00   INFO    profile/profile.go:76   cpu profile: /data/palgress/cpu.profile
2022-01-18T15:39:52.499+08:00   INFO    cluster/cluster.go:389  client connect with endpoints: [http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380]
2022-01-18T15:39:52.5+08:00     INFO    cluster/cluster.go:402  client is ready
2022-01-18T15:40:52.5+08:00     ERROR   cluster/cluster.go:249  add self to cluster failed: context deadline exceeded
2022-01-18T15:40:52.5+08:00     INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:50:53.745+08:00   INFO    cluster/cluster.go:622  hard stop server
2022-01-18T15:50:53.745+08:00   ERROR   cluster/cluster.go:267  start server timeout(10m0s)
2022-01-18T15:50:56.441+08:00   INFO    server/main.go:58       Easegress release: UNKNOWN, repo: UNKNOWN, commit: UNKNOWN
2022-01-18T15:50:56.441+08:00   INFO    profile/profile.go:76   cpu profile: /data/palgress/cpu.profile
2022-01-18T15:50:56.442+08:00   INFO    cluster/cluster.go:389  client connect with endpoints: [http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380]
2022-01-18T15:50:56.443+08:00   INFO    cluster/cluster.go:402  client is ready
2022-01-18T15:51:56.444+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:51:56.444+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T16:01:57.83+08:00    INFO    cluster/cluster.go:622  hard stop server
2022-01-18T16:01:57.831+08:00   ERROR   cluster/cluster.go:267  start server timeout(10m0s)

log for pod-2
2022-01-18T15:40:59.968+08:00   INFO    server/main.go:58       Easegress release: UNKNOWN, repo: UNKNOWN, commit: UNKNOWN
2022-01-18T15:40:59.97+08:00    INFO    profile/profile.go:76   cpu profile: /data/palgress/cpu.profile
2022-01-18T15:40:59.97+08:00    INFO    cluster/cluster.go:389  client connect with endpoints: [http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380]
2022-01-18T15:40:59.971+08:00   INFO    cluster/cluster.go:402  client is ready
2022-01-18T15:41:59.971+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:41:59.972+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:41:59.976+08:00   ERROR   cluster/cluster.go:197  start cluster failed (1 retries): start server failed: wal: crc mismatch
2022-01-18T15:42:48.931+08:00   INFO    server/main.go:58       Easegress release: UNKNOWN, repo: UNKNOWN, commit: UNKNOWN
2022-01-18T15:42:48.932+08:00   INFO    profile/profile.go:76   cpu profile: /data/palgress/cpu.profile
2022-01-18T15:42:48.932+08:00   INFO    cluster/cluster.go:389  client connect with endpoints: [http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380 http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380]
2022-01-18T15:42:48.932+08:00   INFO    cluster/cluster.go:402  client is ready
2022-01-18T15:43:48.933+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled
2022-01-18T15:43:48.933+08:00   INFO    cluster/config.go:126   etcd config: init-cluster:test-snapshot-palgress-0=http://test-snapshot-palgress-0.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-1=http://test-snapshot-palgress-1.test-snapshot-palgress.service.svc.cluster.local:2380,test-snapshot-palgress-2=http://test-snapshot-palgress-2.test-snapshot-palgress.service.svc.cluster.local:2380 cluster-state:existing force-new-cluster:false
2022-01-18T15:43:48.936+08:00   ERROR   cluster/cluster.go:197  start cluster failed (1 retries): start server failed: wal: crc mismatch
2022-01-18T15:44:53.938+08:00   ERROR   cluster/cluster.go:249  add self to cluster failed: context canceled

I'm not sure what the problem might be, please help.

@brzyangg I noticed there was line
2022-01-18T15:43:40.553+08:00 ERROR cluster/cluster.go:197 start cluster failed (1 retries): start server failed: wal: crc mismatch in the logs of the pod-0 and similar one for pod-2 too. It looks like the content of data-dir is corrupted. I was able to reproduce the same error and failure of the cluster by modifying the number of lines in data/member/wal/0000000000000000-0000000000000000.wal (you might have different names for the .wal file). It seems that the .wal files can get corrupted at least for some disk problems https://github.com/etcd-io/etcd/issues/11488

@samutamm thank you. Let's check further.

@brzyangg The data corruption might happen if Easegress was writing to the data at the same time the backup process copied the data and data was left in inconsistent state.
You can consider creating backup for each node one by one and shutting down the Easegress instance of the current node before copying data. After copy restart the Easegress instance. This should avoid the data inconsistency issue.
As an alternative, depending of your use case, you can also store all yaml configurations elsewhere (git for example) and in case of disaster and recovery just start the cluster with no data at all. Then re-create all objects (HTTPServer, HTTPPipeline, filter...) using egctl tool.
I hope this helps ^^

@samutamm I have no problem using your method of copying data on a physical machine. But in kubernetes it is easy to encounter that problem. Consider possible reasons for data inconsistencies. Let's try a few more plans. If the operation is more complicated in kubernetes, we will use the 'egctl' you said to export all objects.
Thank you very much for your support!


Turn on cpplint in travis

PRs should now be checked for cpplint.
Added -whitespcae/line_length since many lines currently violate it. (120 characters also seems better to me.)

Yeah, I accidentally turned it off on the last two pull requests.  When I
fix up my code I'll work on the lint problems. Thanks for taking care of so
much of the code quality and makefile stuff, I don't think you're doing
your efforts justice when you say you're watching me develop this repo!
On Mar 8, 2016 3:52 PM, "Allen Riddell"<EMAIL_ADDRESS>wrote:

PRs should now be checked for cpplint.
Added -whitespcae/line_length since many lines currently violate it. (120
characters also seems better to me.)
You can view, comment on, or merge this pull request online at:
https://github.com/sakrejda/protostan/pull/51
Commit Summary

Run cpplint on travis
Add -whitespace/line_length to cpplint filters
cpplint: fix cpplint complaints

File Changes

M .travis.yml
https://github.com/sakrejda/protostan/pull/51/files#diff-0 (4)
M Makefile
https://github.com/sakrejda/protostan/pull/51/files#diff-1 (8)
M
src/protostan/interface_callbacks/writer/binary_proto_stream_writer.hpp
https://github.com/sakrejda/protostan/pull/51/files#diff-2 (14)
M src/protostan/util/rw_delimited_pb.hpp
https://github.com/sakrejda/protostan/pull/51/files#diff-3 (11)

Patch Links:

https://github.com/sakrejda/protostan/pull/51.patch
https://github.com/sakrejda/protostan/pull/51.diff

—
Reply to this email directly or view it on GitHub
https://github.com/sakrejda/protostan/pull/51.

I think kibitzing would be more accurate than watching. :)
On 03/08, Krzysztof Sakrejda wrote:

Yeah, I accidentally turned it off on the last two pull requests.  When I
fix up my code I'll work on the lint problems. Thanks for taking care of so
much of the code quality and makefile stuff, I don't think you're doing
your efforts justice when you say you're watching me develop this repo!
On Mar 8, 2016 3:52 PM, "Allen Riddell"<EMAIL_ADDRESS>wrote:

PRs should now be checked for cpplint.
Added -whitespcae/line_length since many lines currently violate it. (120
characters also seems better to me.)
You can view, comment on, or merge this pull request online at:
https://github.com/sakrejda/protostan/pull/51
Commit Summary

Run cpplint on travis
Add -whitespace/line_length to cpplint filters
cpplint: fix cpplint complaints

File Changes

M .travis.yml
https://github.com/sakrejda/protostan/pull/51/files#diff-0 (4)
M Makefile
https://github.com/sakrejda/protostan/pull/51/files#diff-1 (8)
M
src/protostan/interface_callbacks/writer/binary_proto_stream_writer.hpp
https://github.com/sakrejda/protostan/pull/51/files#diff-2 (14)
M src/protostan/util/rw_delimited_pb.hpp
https://github.com/sakrejda/protostan/pull/51/files#diff-3 (11)

Patch Links:

https://github.com/sakrejda/protostan/pull/51.patch
https://github.com/sakrejda/protostan/pull/51.diff

—
Reply to this email directly or view it on GitHub
https://github.com/sakrejda/protostan/pull/51.

Reply to this email directly or view it on GitHub:
https://github.com/sakrejda/protostan/pull/51#issuecomment-193964176


feat: add insert sort and heap sort in sort.c

add insert sort and heap sort in sort.c and add related unit test

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@bb7826f). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #450   +/-   ##
=======================================
  Coverage        ?   72.55%
=======================================
  Files           ?       56
  Lines           ?     7746
  Branches        ?        0
=======================================
  Hits            ?     5620
  Misses          ?     1825
  Partials        ?      301

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


session mgmt

Improve session management when hosting services. Fixes #501

Update the changelog?

Update the changelog?

Thank you for the reminder, done


Add LICENSE file to match the package.json metadata

Based on https://github.com/ethereum/grid/blob/c6363ed7ac0658d0664004f42ae461283c278119/package.json#L8

Thanks for noticing, @shazow.


Allow to create presigned URLs using HMAC keys

Is your feature request related to a problem? Please describe.
Currently com.google.cloud.storage.StorageImpl class allows to create a presigned URL using RSA algorithm. One can pass their own ServiceAccountSigner implementation (via StorageOptions.setCredentials()) but the algorithm name literal is deeply hard-coded as GOOG4-RSA-SHA256 (also in com.google.cloud.storage.SignatureInfo). It's not possible to efficiently reuse current code to sign URL via HMAC keys (https://cloud.google.com/storage/docs/authentication/signatures#signing-process).
Describe the solution you'd like
Allow to pass an algorithm via StorageOptions.
Describe alternatives you've considered
The only solution I see is to copy/fork all the code. Reflection seems to be too fragile.

Thank you for the Feature Request, I'll add it to our backlog. I'm not super familiar with what differences this would require in the client so I'm not able to provide an estimate on when we might be able to implement this.


Introduce API's to allow user to restrict cryptographic algorithms.

Best practice suggests users should be able to easily control acceptable algorithms.
While users can use extensibility, it should designed as an inbound policy.
See: https://tools.ietf.org/html/draft-ietf-oauth-jwt-bcp-06#section-3.1

Agreed

@leastprivilege @kevinchalet wrote: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/1385 i am thinking this is a good candidate for a fix next week.
I am thinking Delegate + IEnumerable.
We have two new hires, so we can get more done :-)

@brentschmaltz How are you envisioning this looking vs TokenDecryptionKeyResolver or TokenDecryptionKeys on TokenValidationParameters?

@keegan-caruso I'm thinking TokenValidationParameters seems to make sense as that is where we control validation.

@leastprivilege 6.6.0 has be pushed to nuget.org


add score function

What type of PR is this?
feature
What this PR does / why we need it:
add inner field score function
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Additional documentation (e.g. design docs, usage docs, etc.)

same sa #113


local branch of Print Dropdown for Docs (Outlines/Color)

See https://github.com/microsoft/pxt/pull/5515#

Things look broken after the new docs update:

and selecting "color" didn't print with color. Can't merge this as-is.


Website: Downloads > Source Code link broken

Hey! @yeun 👋
Just a short note, the link: Downloads > Source Code is broken.

Thanks! it's fixed now.


(Re)implement email signup form

We used to have an email signup form.  It was built using Parse, which died.
We should be able to do something similar with a service like Firebase, etc.

First we need to confirm that email signup is worthwhile. Right now there's not regular email going out with the existing mailing list. But then yes, a method of signing up will be needed.

Since there's no need for this right now I'm going to close this out. If we decide later that we need to start emailing we can create a new issue and get this done.


feat(data-table): introduce table toolbar

This change introduces table toolbar, with search (filtering) UI and its demonstration.

Thank you for reviewing @cal-smith! And great point about the menu position upon window resizing. Created: #213


Particles per second parameter apparently does not change anything

I see the same result when passing "1" as parameters as when 1000.

Thanks for reporting @ANPez
I did a quick look in the code and as far as I can see is that amountPerMs is calculated when the StreamEmitter is created here:
https://github.com/DanielMartinus/Konfetti/blob/c242aecac9e712cf753d102f64ab0fb3d7d58f2d/konfetti/src/main/java/nl/dionsegijn/konfetti/emitters/StreamEmitter.kt#L29
But not used when the particles are being created here
https://github.com/DanielMartinus/Konfetti/blob/c242aecac9e712cf753d102f64ab0fb3d7d58f2d/konfetti/src/main/java/nl/dionsegijn/konfetti/emitters/StreamEmitter.kt#L33-L51
I'll make some time to implement this properly and see if I can cover this with tests. But I have not much time until the weekend. A Pull request is welcome ofcourse if there is no time to wait.
In the meantime you might be able to achieve the same by creating more than one particle stream.

Hi @ANPez,
To fix the particles per second bug I've refactored the StreamEmitter. I've opened a pull request which also contains a couple of other fixes such as rewriting the RenderSystem to make it all more testable. You'll also find tests in the pull request referenced in this issue.
I'm not exactly sure when I'll push an update for the library, for now the pull request isn't merged yet. I'll update you on the progress.

New release: https://github.com/DanielMartinus/Konfetti/releases/tag/1.1.0

Thanks! Really appreciate your work :+1:


editing a save results in messed up coordinates

Ah can you show me what were the coordinate issues you had specifically?

So after editing a save and loading it in game you get stuck out of bounds

and i also didnt touch the position values

So after editing a save and loading it in game you get stuck out of bounds

Ah yea, everytime you change the map in the save file, you also have to change the position values to a more appropriate position so he doesn't spawn inside a wall, for example
The best way to figure out coordinates so you don't spawn out of bounds is to use the MinishMaker tool (map editor) which allows you to open the maps of the game and view the coordinates
The way it works is, after you open the map in MinishMaker (green arrow) at the bottom left of MinishMaker's window, you'll see the coordinates of where you're mouse is (mouse: black arrow | coordinates: red arrows). In the save editor, you'll notice there's "big y" and "small y". In minishMaker, it only shows 2 values for y axis. Which means, for "big y" take the first value of the y coordinate in MinishMaker and convert it from hex to decimal (you can use a programming calculator to do that, there's a calculator app in windows that has a programming area) then after cnverting to decimal, input it to "big y" in save editor. As for "small y", take the 2nd value of the y coordinate in MinishMaker, and convert it to decimal, then input it to "small y" but it will be a 2 or 3 digit value, so if it's 3 in MinishMaker, you input it in "small y" as 30 or 31 or etc (anywhere from 30 to 39). You do the same thing with x coordinates.
Example using below image:
In this example, i'm using Hyrule Town, room 1 map. the black arrow and the white square outline show you where i'm aiming my mouse in the image. After aiming my mouse in there, at the bottom left, the coordinates are: for x it's "1F" so in the save editor, for "big x", i inputed "1" and for "small x" i have to input a 2 digit value. So, in a hex calculator, I inputed "F" but not just "F", i inputed "F1 or F2 or F3, etc (anywhere from F0 to FF) then I converted it to decimal and inputed the decimal value in the save editor (in the screenshot below, I used F8 and converted it to decimal, which is 248)

Unfortunately though, some maps, such as iirc, "Veil falls" don't work the same way so in minishmaker, it might give you a false value for coordinates.

ok Thanks

Btw, if you want to modify the save file but preserve the coordinates that you already had prior to saving, what you can do is: open your TMC save file in a hex editor before opening it in the save editor and go to offsets 108 to 10B (108: coordinate Y big 109: Y small 10A: X big 10B: X small), then copy each of those values seperately and convert each to decimal value using a hex calculator, then input it in save editor

I'll have an option to preserve map info in the next update

@MyUserNameIsVeryBad Sorry for late update. Can you test the [https://github.com/Captainkittyca2/TMC-Save-Editor/releases/tag/v0.2](latest release)?
When unchecking the "Customize" button, your coordinates should remain the same as well as the map you were in and the room. This time the spawn animations are modifiable regardless of whether or not you checked the "Customize" button.

Alright well I tested myself and indeed it works


1.4: doc: Fix etcd key paths for external etcd installation

[ upstream commit 29ef87aa4e24a9d6058e070ba96ad0cbce04de4e ]
The paths in the standard installation YAML:
# ca-file: '/var/lib/etcd-secrets/etcd-client-ca.crt'
# key-file: '/var/lib/etcd-secrets/etcd-client.key'
# cert-file: '/var/lib/etcd-secrets/etcd-client.crt'
was not aligned with the paths used in the key creation instructions:
kubectl create secret generic -n kube-system cilium-etcd-secrets \
     --from-file=etcd-ca=ca.crt \
     --from-file=etcd-client-key=client.key \
     --from-file=etcd-client-crt=client.crt

This change is

test-docs-please


Workaround for Safari bug #1804

Workaround for Safari bug #1804

Thanks @speigg I'll give this is a try tomorrow (when I have access to an OS X machine).  Even with a simple change like this, we need you to fill out a copy of our Contributor License Agreement (CLA) and email it to us at<EMAIL_ADDRESS>as defined in CONTRIBUTING.md.  Most likely you want the individual agreement.  It's a one time process for all first-time contributors.
If you are not interested or unable to sign the CLA, I can vouch for this change and re-make it myself manually, no big deal.  I know it's silly, but for legal reasons every commit that goes into Cesium must have a signed CLA attached to it.  Thanks.

Also, do you have any thoughts as to why this fixes problems in Safari?  I originally tracked the issue to what looked like scoping problems in the JavaScript engine, but I'm not sure why this particular change would fix it (unless the bug isn't in scoping and is instead something else).

Feel free to go ahead and make the change yourself  :)

Oh, and no, I have no idea why this actually works. My reasoning was simply that Safari was confusing these parameters in part because both parameters were based on the same string... so I figured that if I make the strings "different enough" Safari would treat them as two separate values... not a very technical explanation, but it apparently it works!

Thanks again.


Error when using docker compose up

Problem
When I run the backend locally using docker compose up for the app the logs show this error. Not sure why or how to resolve. It doesn't block me from enabling the app in dev mode but would still like to log it here so it can be addressed.
notifications-1  | [23:20:16.811] INFO (34): Nest application successfully started {"context":"NestApplication"}
api-1            | Error: ENOENT: no such file or directory, open '/usr/src/app/cert/key.pem'
api-1            |     at Object.openSync (node:fs:561:18)
api-1            |     at Object.readFileSync (node:fs:445:35)
api-1            |     at createAppForDevelopment (/usr/src/app/dist/apps/api/main.js:19629:24)
api-1            |     at createApp (/usr/src/app/dist/apps/api/main.js:19618:22)
api-1            |     at bootstrap (/usr/src/app/dist/apps/api/main.js:19606:23)
api-1            |     at /usr/src/app/dist/apps/api/main.js:19638:1
api-1            |     at /usr/src/app/dist/apps/api/main.js:19640:3
api-1            |     at Object.<anonymous> (/usr/src/app/dist/apps/api/main.js:19642:12)
api-1            |     at Module._compile (node:internal/modules/cjs/loader:1546:14)
api-1            |     at Module._extensions..js (node:internal/modules/cjs/loader:1691:10) {
api-1            |   errno: -2,
api-1            |   code: 'ENOENT',
api-1            |   syscall: 'open',
api-1            |   path: '/usr/src/app/cert/key.pem'
api-1            | }

Solution
see above
Alternatives
No response

Following the instructions will resolve the problem describe above


Alternative color mode

Is it possible to display the color changes per line instead of dividing into different blocks?

Could you elaborate a little more what you mean? Would you prefer to have a single foldable markdown section for created, deleted, ... resources?


Revert arraymap optimization

First commit is a new-ish max_entries optimization. It'll help preserve some of the arraymap optimization and then some.
Second commit reverts the arraymap optimization. Not an exact revert but a semantic one.
Third/fourth commits remove count() optimization and associated infra.
Final commit is regression tests.
This closes https://github.com/bpftrace/bpftrace/issues/3498.
Checklist

[x] Language changes are updated in man/adoc/bpftrace.adoc
[x] User-visible and non-trivial changes updated in CHANGELOG.md
[x] The new behaviour is covered by tests

Nice!

Toyed with another idea but ended up just updating a comment


feat(TreeView): support auto expand for active node

support auto expand for active node
Description
fixes #397

 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.


Render build-std web links as hyperlinks

Several hyperlinks in the unstable docs page are not rendered properly as links when the documentation is built. This PR addresses this.

r? @alexcrichton
(rust-highfive has picked a reviewer for you, use r? to override)

Thanks!
@bors r+

:pushpin: Commit 3881fcf688ab94a95f489f6443baa2d4e2bd8c5e has been approved by ehuss

:hourglass: Testing commit 3881fcf688ab94a95f489f6443baa2d4e2bd8c5e with merge 649822ba516e6da6acb44d1d7d5966d7173dd05f...

:sunny: Test successful - checks-actions
Approved by: ehuss
Pushing 649822ba516e6da6acb44d1d7d5966d7173dd05f to master...


Request an updated version of this guidance available for our partners to refer to when using the Azure portal

[Enter feedback here]
Hi team,
This is Mira from CSS. I wanted to inform you that based on the readiness documentation provided in the link
https://partner.microsoft.com/en-us/resources/detail/azure-enterprise-portal-to-azure-portal-pdf, all Azure Enterprise (EA) portal capabilities will be integrated into the Azure portal for partners on April 6, 2023.
Additionally, I was wondering if there will be an updated version of this guidance available for our partners to refer to when using the Azure portal?? Can you help me find the relevant team to assist with updating the new document, please?
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 8fdcc23f-ffab-1324-7ef8-f3a9307b3cdf
Version Independent ID: 7913ce62-bea9-f556-85b4-1d0e1e2b9cfd
Content: Azure EA portal administration for partners - Microsoft Cost Management
Content Source: articles/cost-management-billing/manage/ea-partner-portal-administration.md
Service: cost-management-billing
Sub-service: enterprise
GitHub Login: @bandersmsft
Microsoft Alias: banders

@MiraZJ
Thanks for your feedback! We will investigate and update as appropriate.

@MiraZJ Hi Mira,
Yes, I've been in contact with the EA engineering PM team. Please contact me directly by company email at<EMAIL_ADDRESS>#please-close


Bring back ProjectileLauncher

SpongeAPI | SpongeCommon
This updates everything related to the ProjectileLauncher from invalid.
It is not perfect and needs more work, notably:

launchProjectileTo only works for shulkers as it was only made for them initially. As it has been generalized I'll see how it can be implemented for all entities later
using a dispenser as source may not work for some projectiles like wither skulls (they seem to spawn right in the block), I also had similar issues with explosive fireballs but I don't feel like looking more into it right now

Excellent PR @RedNesto and thanks so much for helping us out in bringing back our features.

manually merged


Feature/theming

Codecov Report

Merging #16 (c51c23f) into main (855f25c) will not change coverage.
The diff coverage is 0.00%.

@@          Coverage Diff           @@
##            main     #16    +/-   ##
======================================
  Coverage   0.00%   0.00%
======================================
  Files          4      11     +7
  Lines         61     450   +389
  Branches      19      77    +58
======================================
- Misses        61     450   +389

Flag
Coverage Δ

unittests
0.00% <0.00%> (ø)

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


Remove unnecessary literals map

Literals have some special handling in Brigadier, but as it turns out, it's also possible to derive what is and isn't a literal from the existing children. This reduces the amount of memory used to store a full 1.16.x command tree by about 18%.

any updates?


MS Bot - Teams Channel - Typing indicator not showing when bot added to a teams channel

Github issues should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Version
4.7.2
Describe the bug
When we create a bot with ms bot framework c# and add the bot to ms teams channel, at this time when bot is added as a seprate app, than it is showing the typing indicator. But when the bot is added in the channel (example general channel in side any team). and when we use the bot by @mention, At this time, bot is not showing the typing indicator.
To Reproduce
Steps to reproduce the behavior:

Add the bot to any of your team's channe;. i.e. General channel
use the bot by doing @ mention. and start the conversation with the bot
Typing indicator will not show ip.

Expected behavior
It should show typing indicator
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
[bug]

@roshanparmar11, thank you for bringing this up. Please be patient while I research the issue. In the meantime, can you tell me if this was working previously (and, if so, which version of BotBuilder you were using) or is this something you came across thru a new implementation?

No. I have not tested this feature before.

I have tested this and noted that when the typing activity is sent, it is respected in a 1:1 and group conversation, but not (as you noted) in a Teams channel threaded conversation. However, any associated delay in the typing indicator is respected. This indicates the bug is in Teams and not the BotFramework.
I have created an issue here for the Teams group to track and triage. Please consider adding to it as more names will give it greater weight for consideration.
Closing this issue as resolved.


Add chat input bar placeholder delegate

Add chat input bar placeholder delegate which is triggered only if:

placeholder view appeared,
placeholder view visibility changed.

Codecov Report

Merging #396 into swift-3 will decrease coverage by 43.19%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           swift-3     #396      +/-   ##
===========================================
- Coverage    63.93%   20.74%   -43.2%
===========================================
  Files           63       63
  Lines         3577     3563      -14
===========================================
- Hits          2287      739    -1548
- Misses        1290     2824    +1534

Impacted Files
Coverage Δ

...ttoAdditions/Source/Input/ExpandableTextView.swift
0% <0%> (-89.86%)
:arrow_down:

ChattoAdditions/Source/Input/ChatInputBar.swift
0% <0%> (-77.04%)
:arrow_down:

ChattoAdditions/Source/Observable.swift
0% <0%> (-100%)
:arrow_down:

ChattoAdditions/Source/AnimationUtils.swift
0% <0%> (-100%)
:arrow_down:

...rce/Chat Items/TextMessages/TextMessageModel.swift
0% <0%> (-100%)
:arrow_down:

...dditions/Source/Input/Text/TextChatInputItem.swift
0% <0%> (-100%)
:arrow_down:

...put/Photos/PhotosInputViewItemSizeCalculator.swift
0% <0%> (-100%)
:arrow_down:

...urce/Chat Items/ChatItemDecorationAttributes.swift
0% <0%> (-100%)
:arrow_down:

...essages/Views/PhotoMessageCollectionViewCell.swift
0% <0%> (-100%)
:arrow_down:

...e/Chat Items/PhotoMessages/PhotoMessageModel.swift
0% <0%> (-100%)
:arrow_down:

... and 33 more

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 cb0f0bb...890f5fa. Read the comment docs.


Tweak AI firing angle and accuracy

With AI shooting working as intended, now it needs some changes to where it's shooting from and if we can, implement changes in accuracy so when the difficulty changes, so does the accuracy of the AI runners shot.

[x] Fix AI firing angle to not have AI shoot into ground as often
[x] Implement changeable accuracy into AI firing

I put the time I spent in the task but the total time I spent on this story was 3 hours, maybe more.


Can't get the examples to work

Am using localhost.
Get the following error when running /examples/minimal.html :
Uncaught TypeError: d3Request.request is not a function
at Object.sparql (d3-sparql.js:26)
at minimal.html:21
This is the line giving the error:
var sparql = d3Request.request(url).mimeType('application/sparql-results+json').response(response);
d3Request seems to be a valid object.
Same happens with /examples/timeline.html
Can't figure out why - apologies if it's a newbie error :)

For the examples to work you need the d3 packages.
Run npm install in the directory.

Thanks for the response, appreciated :)
I did install the packages (otherwise there would have been a different error)  - worked fine.
Can see that the D3 scripts are being directly loaded from node_modules.
I looked at the code and it all looks fine to me - can't see why the 'not a function' error comes up d3Request
clearly is one. Stuck!
p.s. BTW I noticed that D3 request is deprecated in favour of D3 fetch (am thinking to update when I go the examples to work) not that that matters at this stage.

Ah okay, please be aware that this library still depends on D3 Version 3!

Thanks again for your kindness. It works now. I lazily assumed that the "pretest" script in package.json was not relevant to me wanting to just run the examples, being more used to seeing a "start" script if one is needed.
I'm on Windows so the rm of the build dir of that script doesn't work. Like a fool I thought I could run the rollup after the install completes in case it was somehow needed for the examples but clearly I cannot. IOW I think it's because rollup wasn't run during install rather than after it.  If so, in the pre-test script a W10-compatible version of
rm -rf build
would cure it I guess. I just re-downloaded the source, removed the rm -rf build and hey presto, it works on install.

npm WARN prepublish-on-install As of npm@5, prepublish scripts are deprecated.
npm WARN prepublish-on-install Use prepare for build steps and prepublishOnly for upload-only.
npm WARN prepublish-on-install See the deprecation note in npm help scripts for more information.

<EMAIL_ADDRESS>prepublish C:\Users\w10\Documents\dev\sz.tld\utils\sparQL
npm run test && uglifyjs build/d3-sparql.js -c -m -o build/d3-sparql.min.js

<EMAIL_ADDRESS>pretest C:\Users\w10\Documents\dev\sz.tld\utils\sparQL
mkdir build && rollup -g d3-request:d3 -f umd -n d3 -o build/d3-sparql.js -- index.js

<EMAIL_ADDRESS>test C:\Users\w10\Documents\dev\sz.tld\utils\sparQL
tape 'test/**/*-test.js'

added 68 packages from 94 contributors in 2.795s

node -v
v9.2.0
npm -v
5.8.0

BTW in case it helps, I noticed a range of examples of what your code will do nicely here:
https://github.com/ktym/d3sparql

I append my package-lock.json for completeness:
{
"name": "d3-sparql",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"align-text": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"dev": true,
"requires": {
"kind-of": "3.2.2",
"longest": "1.0.1",
"repeat-string": "1.6.1"
}
},
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"brace-expansion": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
"dev": true,
"requires": {
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
"camelcase": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
"dev": true
},
"center-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"dev": true,
"requires": {
"align-text": "0.1.4",
"lazy-cache": "1.0.4"
}
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"cliui": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
"dev": true,
"requires": {
"center-align": "0.1.3",
"right-align": "0.1.3",
"wordwrap": "0.0.2"
}
},
"commander": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
"d3-collection": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz",
"integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI="
},
"d3-dispatch": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz",
"integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg="
},
"d3-dsv": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.5.tgz",
"integrity": "sha1-QZ99tH9ih4n8P9tjbmeESdCCETY=",
"requires": {
"commander": "2.11.0",
"iconv-lite": "0.4.18",
"rw": "1.3.3"
}
},
"d3-request": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/d3-request/-/d3-request-1.0.5.tgz",
"integrity": "sha1-TarpRtHdDVff4B8CKVY1SVjVHyM=",
"requires": {
"d3-collection": "1.0.4",
"d3-dispatch": "1.0.3",
"d3-dsv": "1.0.5",
"xmlhttprequest": "1.8.0"
}
},
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
"deep-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
"integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
"dev": true
},
"define-properties": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
"integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
"dev": true,
"requires": {
"foreach": "2.0.5",
"object-keys": "1.0.11"
}
},
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
"integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
"dev": true
},
"es-abstract": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz",
"integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=",
"dev": true,
"requires": {
"es-to-primitive": "1.1.1",
"function-bind": "1.1.0",
"is-callable": "1.1.3",
"is-regex": "1.0.4"
}
},
"es-to-primitive": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
"integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
"dev": true,
"requires": {
"is-callable": "1.1.3",
"is-date-object": "1.0.1",
"is-symbol": "1.0.1"
}
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"for-each": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz",
"integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=",
"dev": true,
"requires": {
"is-function": "1.0.1"
}
},
"foreach": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
"dev": true
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"function-bind": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
"integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
"dev": true
},
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"dev": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
"dev": true,
"requires": {
"function-bind": "1.1.0"
}
},
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"iconv-lite": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
"integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA=="
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
"is-buffer": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
"dev": true
},
"is-callable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
"integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
"dev": true
},
"is-date-object": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
"dev": true
},
"is-function": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
"integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=",
"dev": true
},
"is-regex": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": {
"has": "1.0.1"
}
},
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
"integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
"dev": true
},
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
"is-buffer": "1.1.5"
}
},
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
"dev": true
},
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
"dev": true
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "1.1.8"
}
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
"object-inspect": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.2.2.tgz",
"integrity": "sha1-yCEV5PzIiK6hTWTCLk8X9qcNXlo=",
"dev": true
},
"object-keys": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
"integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
"dev": true
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
"path-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
"dev": true
},
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
"dev": true
},
"resolve": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
"integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
"dev": true,
"requires": {
"path-parse": "1.0.5"
}
},
"resumer": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
"integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
"dev": true,
"requires": {
"through": "2.3.8"
}
},
"right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"dev": true,
"requires": {
"align-text": "0.1.4"
}
},
"rollup": {
"version": "0.27.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-0.27.1.tgz",
"integrity": "sha1-c5kxsHhM8AwnS5US0shS5CBVolc=",
"dev": true,
"requires": {
"chalk": "1.1.3",
"minimist": "1.2.0",
"source-map-support": "0.4.15"
}
},
"rw": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
},
"source-map": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
"integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
"dev": true
},
"source-map-support": {
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
"integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
"dev": true,
"requires": {
"source-map": "0.5.6"
}
},
"string.prototype.trim": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
"integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
"dev": true,
"requires": {
"define-properties": "1.1.2",
"es-abstract": "1.7.0",
"function-bind": "1.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
},
"tape": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/tape/-/tape-4.7.0.tgz",
"integrity": "sha512-ePzu2KfZYVtq0v+KKGxBJ9HJWYZ4MaQWeGabD+KpVdMKRen3NJPf6EiwA5BxfMkhQPGtCwnOFWelcB39bhOUng==",
"dev": true,
"requires": {
"deep-equal": "1.0.1",
"defined": "1.0.0",
"for-each": "0.3.2",
"function-bind": "1.1.0",
"glob": "7.1.2",
"has": "1.0.1",
"inherits": "2.0.3",
"minimist": "1.2.0",
"object-inspect": "1.2.2",
"resolve": "1.3.3",
"resumer": "0.0.0",
"string.prototype.trim": "1.1.2",
"through": "2.3.8"
}
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
"uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"dev": true,
"requires": {
"source-map": "0.5.6",
"uglify-to-browserify": "1.0.2",
"yargs": "3.10.0"
}
},
"uglify-to-browserify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
"dev": true,
"optional": true
},
"window-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
"dev": true
},
"wordwrap": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
"dev": true
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"xmlhttprequest": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
"integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
},
"yargs": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"dev": true,
"requires": {
"camelcase": "1.2.1",
"cliui": "2.1.0",
"decamelize": "1.2.0",
"window-size": "0.1.0"
}
}
}
}

Thanks again for your patience but most of all, thanks for the code! If I can improve it, I will.

Thank you! We hopefully will find some time to improve stuff in summer. Meanwhile happy to see PRs!

Can you test if this now works out of the box on windows too? https://github.com/zazuko/d3-sparql/commit/1d4abb7c4106c4dbe068812f6c47c8743d3e6849
Thanks

Works perfectly, thanks!

npm WARN prepublish-on-install As of npm@5, prepublish scripts are deprecated.
npm WARN prepublish-on-install Use prepare for build steps and prepublishOnly for upload-only.
npm WARN prepublish-on-install See the deprecation note in npm help scripts for more information.

<EMAIL_ADDRESS>prepublish C:\Users\w10\Documents\dev\sz.tld\utils\d3-sparql
npm run test && uglifyjs build/d3-sparql.js -c -m -o build/d3-sparql.min.js

<EMAIL_ADDRESS>pretest C:\Users\w10\Documents\dev\sz.tld\utils\d3-sparql
rimraf build && mkdirp build && rollup -g d3-request:d3 -f umd -n d3 -o build/d3-sparql.js -- index.js

<EMAIL_ADDRESS>test C:\Users\w10\Documents\dev\sz.tld\utils\d3-sparql
tape 'test/**/*-test.js'

added 71 packages from 94 contributors in 3.4s


applet.benchmark: Skip going through the MODE state

I get the feeling that there's a reason that we're going through the MODE state but I can't figure out why. If there isn't a reason, feel free to pull this otherwise just close it!
This improves the throughput a bit.
(before)
I: glasgow.applet.benchmark: mode source: 16.999 MiB/s
I: glasgow.applet.benchmark: mode sink: 18.138 MiB/s
(after)
I: glasgow.applet.benchmark: mode source: 23.196 MiB/s
I: glasgow.applet.benchmark: mode sink: 23.840 MiB/s

I get the feeling that there's a reason that we're going through the MODE state but I can't figure out why.

This applet was written before applet resets worked. No reason to go through it any more.


object_selection: selection on variable-length subarrays

Yup. You can now perform selection on variable-length subarrays (dtype=object):
from root_numpy.testdata import get_filepath
from root_numpy import root2array

print root2array(get_filepath('vary1.root'), branches='n_int')[3]
print root2array(get_filepath('vary1.root'), branches='n_int', object_selection={'n_int % 2 == 0': ['n_int']})[3]

[60 61 62]
[60 62]

Coverage increased (+0.0005%) to 99.925% when pulling 0ae332c33f003fe2dc2b0d9ba68c77cc7e6a6ecf on ndawe:subselection into 640beb7bdd511837701c98f92a3d6eb708ea911d on rootpy:master.

Coverage increased (+0.0005%) to 99.925% when pulling 0ae332c33f003fe2dc2b0d9ba68c77cc7e6a6ecf on ndawe:subselection into 640beb7bdd511837701c98f92a3d6eb708ea911d on rootpy:master.


Update sbt to 1.5.0

Updates org.scala-sbt:sbt from 1.3.13 to 1.5.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, semver-minor

Superseded by #89.


Missinf Country

Before opening the issue, have you...?

[X] Searched for existing issues
[X] Looked through common issues
[X] Updated plugin to the latest version (if applicable)

Describe the bug
There is a missing country (Turkey) in configuration.
To Reproduce
New account register
Expected behavior
Having Turkey?
Logs
N/A
Logs
N/A
Environment Information
- Plugin Version:
- Homebridge Version: <!-- homebridge -V -->
- Node.js version: <!-- node -v -->
- NPM version: <!-- npm -v -->
- Operating System: <!-- Raspbian / Ubuntu / Debian / Windows / macOS / Docker / hb-service -->

I think you are referring to the creation of the SmartThings account. I do not have any influence on that. So sadly I can not help you. Please try to contact SmartThings for that issue.


when terminal is moved to the editor area, find result decorations are mis-positioned

Testing #145629
https://user-images.githubusercontent.com/29464607/159562247-0fdef5ba-d565-4895-a205-3f4086620bcb.mov

on move bw the panel and editor, hide find


UMD/AMD support?

I can't use gulp/grunt processing and I don't want to load fixed-data-table and React as global objects. Id' like to load the library as AMD (or UMD) module. The problem is, files generated in dist/* by Webpack are not UMD/AMD compatible :(

you can use the --output-library-target option to webpack to bundle for amd/umd


enable dicomcast to survive brief dicom outages AB#91480

Description
Add retry handlers for dicomcast gets
Related issues
AB#91480

/azp run