maa-assistant-arknights: 5.2.1 -> 5.2.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for maa-assistant-arknights is: An Arknights assistant
meta.homepage for maa-assistant-arknights is: https://github.com/MaaAssistantArknights/MaaAssistantArknights
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.2.2 with grep in /nix/store/d826zcq5zk2mmdbglryv3k97iyf87dm8-maa-assistant-arknights-5.2.2
found 5.2.2 in filename of file in /nix/store/d826zcq5zk2mmdbglryv3k97iyf87dm8-maa-assistant-arknights-5.2.2

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

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

maa-assistant-arknights
maa-cli

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/7a2ce3232bc6585249c8fefa3005b7710f23f896#maa-assistant-arknights

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/d826zcq5zk2mmdbglryv3k97iyf87dm8-maa-assistant-arknights-5.2.2
ls -la /nix/store/d826zcq5zk2mmdbglryv3k97iyf87dm8-maa-assistant-arknights-5.2.2/bin

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

2 packages built:

maa-assistant-arknights
maa-cli

Maintainer pings
cc @Cryolitia for testing.

@NixOS/nixpkgs-merge-bot merge


Incorrect message on home page.

Level 3 was complete still it was showing incorrect message on Home page.

Verified this issue on dev app v2.0.7(398)


How to restart postgres server inside docker container

I want to restart postgres server to load new configuration in /var/lib/postgresql/data/postgresql.conf but failed to run: "/etc/init.d/postgresql restart" or "pg_ctl restart" (got error message: 'pg_ctl: cannot be run as root Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.')
Please help.

Since there is no init system running in the container, the only process running in the container is postgres itself, so docker restart container-name or docker kill -sTERM container-name followed by docker start container-name will work.
As long as you are not running the process with docker run -it --rm ..., or doing docker rm after you stop it, then the container's data will stick around and you can start it up again.

What if we want to do something in the container while it's running?  Like for instance move Postgresql into /dev/shm so tests run superfast in RAM.  You need to stop and restart Postgresql while the container is up for that or the RAM disk gets deleted.

I thought maybe I could try
su postgres
cd /usr/lib/postgresql/9.6/bin
./pg_ctl stop

But now I get told pg_ctl: directory "/var/lib/postgresql/data" is not a database cluster directory

I tried to restart the Postgres while it had one active connection. Now I'm not able to start it again. Is there anyway I can start it? I don't want to loose any data :(

I wrote up how to do this extensively a while back, it might help:
https://richardcooke.info/how-to-run-your-tests-against-an-in-memory-database-with-a-rails-rspec-mysql-example/
and
https://stackoverflow.com/questions/42226418/how-to-move-postresql-to-ram-disk-in-docker

You can run postgres in background (by supervisor for example), or set restart policy in compose file.

For the ramdisk use-case, I usually start another container to keep the ramdisk around appropriately, ala:
$ docker volume create \
--driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=1048576k \
my-new-volume

When starting PostgreSQL:
$ docker run ... -v my-new-volume:/var/lib/...

When I want to restart PostgreSQL or re-create the container:
$ docker run -d --name temp -v my-new-volume:/save-me:ro alpine:3.7 top
$ docker stop my-postgres
$ docker run ...
$ docker rm -f temp

Since the original question is answered, I'm going to close.

As is stumbled upon the same problem a few minutes ago:
su - postgres -c "PGDATA=$PGDATA /usr/lib/postgresql/10/bin/pg_ctl -w restart"
in case of version 10, worked for me ;) :+1:

@SeWieland , your command will restart the container. It's not as smooth as nginx's nginx -s reload.

@Dean-Christian-Armada thank you! That was exactly what I searched for.
And it is actually the accurate answer to the original question.

Calling pg_reload_conf() will only reload parameters which don't require a restart to update. [Source]
For this reason, a restart remains a viable option for cases where configuration options can't be reloaded.

But still, this proves to be useful on some configurations rather than restarting a container and having downtime

login with postgres user, and
execute "SELECT pg_reload_conf()".

Login with postgres user and run the reload command
su postgres
/usr/lib/postgresql/9.5/bin/pg_ctl reload


Allow creating custom Bytes instances using constructor that takes an Arc

I have a situation where I have a memory mapped file and want to pass a slice of it around unencumbered by lifetimes, but without copying. I have looked into the Bytes crate, but could not use it since there is no way to create a custom Bytes instance.
See https://github.com/tokio-rs/bytes/issues/526 and https://github.com/tokio-rs/bytes/issues/437 .
I ended up writing my own bytes like struct that is a byte slice and an Arc<dyn Any>. See Blob .
This works very similar to Bytes, except that the reference counting is done by the Arc<dyn Any> instead of a custom VTable. There is a Constructor where you pass in a slice and an Arc<dyn Any> and promise that the slice will be valid as long as whatever the Arc<dyn Any> points to is kept alive.
You could easily implement a custom VTable for this approach and expose a similar method in the Bytes crate. I think it is a pretty minimal way to allow for custom Bytes instances without having to expose internals like the VTable.
I guess you would have to do the same for Rc for completeness sake, but still it is much less surface area than approaches that require to make the VTable public, and also quite convenient for the user.
Here is how it is used:
        use memmap::MmapOptions;
        use std::{io::Write, sync::Arc};
        // create a large file
        let mut large_file = tempfile().unwrap();
        large_file.write_all(&[0u8; 1024 * 1024])?;
        // map it and wrap the MMap in an arc
        let mmap =  Arc::new(unsafe { MmapOptions::new().map(&large_file).unwrap() });
        // create a bytes that points to a part of the large file, without allocation
        // the Bytes instance keeps the mmap alive as long as needed
        let slice = unsafe { Bytes::custom_new(&mmap[10..10000], mmap.clone()); };

It looks like the code to traverse the file stops after going down all the way in the tree once.
retrieved from store 139 <= top level node, containing 3 links
retrieved from store 7660 <= another branch node
retrieved from store 262144 <= lots of full leaf nodes
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144
retrieved from store 262144

Note: I am not saying that this is the best way forward. Any of the other two ( #526 and #437 ) would also do.
It would just be great if there was any way to create a Bytes for something like a memory mapped buffer without copying.

Closing as duplicate of #437.


Add some locking about stdout to avoid some false positives in TSAN

This was discovered trying to figure out why #174 keeps failing the TSAN test.
Per the documentation, I don't think this should be required, but this has minimimal overall impact and makes sure the output won't be interleaved or cause TSAN issues

This needs #182 merged in first

close and reopen for CI


docs: Reorganize "Incoming webhooks" section of API docs.

Rename "Integrations" section to "Incoming webhooks".
Rename "Incoming webhook integrations" item to just "Integrations".
Rename "Non-webhook integrations" item to "Other integrations".
Add new "Generic webhooks" item that links to the REST API page.

Discussion:
https://chat.zulip.org/#narrow/stream/31-production-help/topic/webhooks/near/801262

I'm not happy with how this ends up feeling, though I think it's progress.  I pushed back here with some naming edits.
I think the next thing to try is if merging the "Overview" page to be the bottom of the "Home" page (/api/) would improve things, since that section is clearly not intended to be scoped within the "Incoming webhooks" section.

Yeah, that does appear to improve things. I left the headings unchanged because it didn't feel right to me after increasing the level of headings in the Integrations Overview. Not sure if it would be okay to have two top-level headings in the /api home page though.


Add links to changelly with our ref id in the URL

Should we have a button in each row to send the user to?
Should we have somewhere special that says that you can buy there in USD & EUR? IMO that's one of the most powerful people wants to know when looking to but alt coins...
Should we also give option to something else like cex.io? Also has a referrer plan like changelly..

Link: https://changelly.com/exchange/USD/BTC/1?ref_id=298522b89520
(This link sends by default the user to from USD to BTC with our link.. Probably a common use case..)

Is blocked by: https://github.com/kazazor/coinsmarket/issues/52

Added a button in each row with a link to Changelly
Added a small caption above the table to indicate USD & EU purchases are available
No cex at this point


Add --verbose option to bitbucket cli

See #36 for the implementation on github cli.

resolved by #38


I found a bug

Nothing works

If anyone is reading this, sorry about the spam. I was testing the git API with ruby and for some reason, I sent it to this repo instead of my own.... How embarrassing...

@johncorderox no prob, we all send test emails to all production customers occasionally! 😂 Appreciate the heads up, don't worry at all!


Improve SPI performance

Pull Request Checklist:

[x] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #1270

[x] Tests for the changes have been added (for bug fixes / features)

[x] (If applicable) Documentation has been added / updated (for bug fixes / features)

[x] HISTORY.rst has been updated (with summary of main changes)

[x] Link to issue (:issue:number) and pull request (:pull:number) has been added

What kind of change does this PR introduce?

Make SPI/SPEI faster
fit params are now modular, can be computed before computing SPI/SPEI. This allows more options to segment computations and allow to obtain the fitting params if troubleshooting is needed.
time indexing now possible

Does this PR introduce a breaking change?
Yes. pr_cal or wb_cal will not be input options in the future:

Inputing pr_cal will be deprecated in xclim==0.46.0. If pr_cal is a subset of pr, then instead of:
standardized_precipitation_index(pr=pr,pr_cal=pr.sel(time=slice(t0,t1)),...), one can call:
standardized_precipitation_index(pr=pr,cal_range=(t0,t1),...).
If for some reason pr_cal is not a subset of pr, then the following approach will still be possible:
params = standardized_index_fit_params(da=pr_cal, freq=freq, window=window, dist=dist, method=method).
spi = standardized_precipitation_index(pr=pr, params=params).
This approach can be used in both scenarios to break up the computations in two, i.e. get params, then compute
standardized indice

I could revert this breaking change if we prefer. This was a first attempt to make the computation faster, but the improvements are now independent of this change. We could also keep the modular structure for params, but revert to pr_cal instead of cal_range. It's a bit less efficient when pr_cal is simply a subset of pr, because you end up doing resampling/rolling two times on the calibration range for nothing. When first computing params, then obtaining spi in two steps, then it makes no difference
Other information:

I think the computation is still quite heavy. A few things should help. There is less redundant computation (we can either reuse params, or at least we don't resample/roll more or less twice (like it used to do for pr and pr_cal)).
The user can now dissect the computation more easily:

Produce params before hand, reuse them for many computations
Use of indexer to obtain SPI only for certain periods. This not like selecting, say month of June, from the onset. The indexing must be done  after the rolling. Said another way, you still need months "Jan to June" even if you only want  SPI-6 for June. So the indexer must be used mid-computation, this is what is done.

Benchmarking already resampled data (1812 months x 30 lat x 60 lon):
spi = xclim.indices.standardized_precipitation_index(
    da,
    da.sel(time=slice(datetime(1971, 1, 1), datetime(2010, 12, 31))),
    freq=None,
    window=6,
    dist="gamma",
    method="APP",
    )

New : 14 s
Old : 4 min and still going

I have the feeling we could add features to some of the functions in stats.py that would reduce the complexity of the code here.

I've thinking about this. One change could be to modify fit to allow this code block:
    def wrap_fit(da):
        if indexer != {} and da.isnull().all():
            select_dims = {d: 0 if d != "time" else [0, 1] for d in da.dims}
            fitted = fit(da[select_dims], dist, method)
            return fitted.broadcast_like(da.isel(time=0, drop=True))
        return fit(da, dist, method)

    params = da.groupby(group).map(wrap_fit)

in a single call. So fit would need to accept group and indexer arguments.
Other than that, I find it hard to see how to avoid creating new functions "stats.py" to reduce the complexity.   The function _get_standardized_index really achieves: pdf -> cdf -> ppf using a given scipy dist and parameters for this function. This procedure should be agnostic to the previous processing (rolling and resampling) that usually takes in computing indices used in climate service.   This could be put directly in stats.py?

I think it may be worthwhile to benchmark a bit the previous implementation, where is the bottleneck. The main culprit I believe is dist_method. For instance, let us first obtain some parameters.
from xclim.testing import open_dataset
import xclim
import scipy

pr = open_dataset("sdba/CanESM2_1950-2100.nc").pr
freq, window, dist, method = "MS", 1, "gamma", "APP"
params = xclim.indices.stats.standardized_index_fit_params(
    pr.sel(time=slice("1950", "1980")), freq=freq, window=window, dist=dist, method=method
)
# broadcast params like pr
params = params.rename(month="time").reindex(time=pr.time.dt.month)
params["time"] = pr.time

Now, we either use a numpy/ scipy approach (fast):
# ~0.5 seconds
import xarray as xr
from xclim.indices.stats import get_dist

dist = get_dist(params.attrs["scipy_dist"])
def wrap_cdf(da, pars):
    return dist.cdf(da[:], *pars)

out1 = xr.apply_ufunc(
    wrap_cdf,
    pr.where(pr>0),
    params,
    input_core_dims=[["time"], ["dparams","time"]],
    output_core_dims=[["time"]],
    vectorize=True,
)
out1.values

or we use dist_method (50 times slower)
# about 25 seconds
from xclim.indices.stats import dist_method
out2 = dist_method("cdf", params, pr.where(pr > 0))
out2.values

Both methods give the same results. It remains to be seen if the speed-up persists as we scale things up, but this is already a weird result.

Some more info on dist_method slowness
I think the performance issues really stem from the input_core_dims used in the xr.apply_ufunc call of dist_method. With my little example, I can reproduce the slowness of dist_method:
like dist_method, about 25 s
    def wrap_cdf(da, pars):
        return dist.cdf(da, *pars)

    out = xr.apply_ufunc(
        wrap_cdf,
        pr.where(pr>0),
        params,
        input_core_dims=[[], ["dparams"]],
        output_core_dims=[[]],
        vectorize=True,
    )

while using "time" in the core dims goes much faster. This remains true if I try using dask etc., but maybe I'm not using this well. At this point, we could chunk the time dimension, but earlier steps in stats usually require unchunked time dimension. If using "time" as a core dimension is always appropriate in this scenario, this could be way to improve dist_method easily

Ignore the cancelled builds, merging when docs clear.


fix pdb manifests

What this PR does:
Fixes the PodDisruptionBudget logic.
The manifest was probably created based on target: all mode, this PR creates a template for each component.
Which issue(s) this PR fixes:
Fixes #151
Checklist

[x] CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

Thank you so much!
However #144 (don't really know why) just did the same thing you did. And we are currently in the process of merging this PR. So even though everything is correct here, I might have to close it in favor of #144
:disappointed:

Looks like that implementation has some improvements over mine, I don't mind using that instead. Thanks for the review!


Added About Us Section

Fixed issue #142
Added About Us section and added the appropriate link in the header and footer. The section is responsive across all devices.
Screenshot

Added hover effects

About Us page added

@abhay-raj19 should I make any changes or is it fine?

looks good to me , just resolve up those conflicts
It would be fine


How to ship k8s audit log to Loki

As an engineer I need a solution to ship kubernetes audit logs into my Loki instance.
Document findings under our public documentation within the observability section.
web: https://docs.giantswarm.io/getting-started/observability/
source: https://github.com/giantswarm/docs/tree/main/src/content/getting-started/observability

Both issues are similar https://github.com/giantswarm/giantswarm/issues/16744

Ongoing draft https://github.com/giantswarm/docs/pull/1692

I'd rather we had a sample use case to the promtail app when we work on it

The point here was to actually figure this out here, so we know how to do it in advance and we can help customer who are currently in need for this.

I was planning on explaining it in the doc but it's not the direction it's going

PR added https://github.com/giantswarm/promtail-app/pull/95

Example is added in the promtail app @TheoBrigitte can we close and you communicate that to customers or do we need to add the link to the audit log documentation?

Closing but I'm still expecting feedback @TheoBrigitte :)


Add command to switch to last workspace

Thank you for providing such fantastic plugin! With it, I can fully replace tmux with Wezterm. However, I've noticed that switching to the last workspace is a common action, and it's not straightforward to accomplish in Wezterm. It would be wonderful if your plugins could support this feature.
Thank you so much!

Thanks for the kind words 😄
Would you like to switch to the latest workspace after having opened wezterm from a closed state or if you have workspace A and B open, to quickly switch between A and B?

I mean quickly switching between workspaces A and B.
The workflow involves primarily working in the main workspace, then navigating to other workspaces using your plugins, and finally returning to the main workspace. Currently, I have to open a list and select my main workspace each time.
I am considering something like this: https://github.com/wez/wezterm/discussions/5833. When I use Tmux, there is a command called last-session.
If you find my suggestion unsuitable, I would appreciate any guidance on an easier way to achieve this.
Thank you a lot!

I really like the idea, I have added a keybind with #43.
If you have any other suggestions then I would love to hear them :smile:


Set log MinimumLevel to Debug

appsettings.json log level settings should now work accordingly.

@dtillman Any thoughts?

LGTM


Request decode scam addresses on the web3 networks like metamask and trust wallet to recover stolen crypto!

Summary
I first had the idea for bitcoin as a online stock currency i still believe in bitcoin but i have been severely disappointed with how many scams i have suffered by high level styled cryptocurrency scams online! It would consist of  reverse hashing encoder of crypto transaction hash or using the polygon blockhain or ethereum blockchain website URLS holding undisplayed encryption of contract and wallet addresses to recover and reverse the nastiest scamming techs in the world! I was out 250$ and all my self developed tokens with liquidity from downloading and using a github software i found the contract address 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619 it took me for all my crypto! Metamask has the worst customer support for scamming incidents! I desperately want my 250 dollars back from this URL https://polygonscan.com/address/0x7ceb23fd6bc0add59e62ac25578270cff1b9f619 the hidden encryption is laying around here somewhere i know your software could possibly break chainlinks and decode the transaction hash to reverse transaction or implement a way to recover total amount of lost money! Your software could turn into a Crypto business recovering lost or stolen funds from scams or lost alphanumerical codes all the alphanumeric codes are stored in a cookie based database for each wallet thats something i know every page displayed on phones and websites even apps are locally stored or stored in server databases as a cookie encoded witch reloading that cookie key would display the instance of page of words as a refreshed cookie in each app process data collection or webpage displayed hidden hashed cookies!
you could take 10 percent of value reclaimed from scams or lost wallet there is 80 billion in liquidity lost and billions a year lost in scams anyway you could help anonymous from bitcoin start this up!
recovering funds would come with a procedural expedition of security rules and terms and conditions!
I need my 250$ crypto back they even took all my First Place Token!
I know your software is capable of something like this and solving blockchain blocks by merkle tree previous block previous hash etc!
you can contact me at<EMAIL_ADDRESS>with the neural processing this could all be ran of a nanosecond of AI automated reversal on the blockchains preprocessing contracts and transactions auto prevention of fraudelent factors in the crypto world
anyway you could help me reverse the transaction or just take all their funds they scammed from everyone worth like 300000 dollars in 2 to 4 weeks!!
thanks,
eric
Example Input
Example Output

I had lost some funds due to an airdrop scam too and it fucked me up luckily I got introduced to this hacker who helped me recover what was stolen from me hit him up on telegram:: https://t.me/Blackhathacker110

Do not be deceived into believing that you can't recover your loss, those information are planted online by the perpetrators of these scams. If you take the right steps you can get back your loss. I can't fit my story into one comment or post but if i had not filed a complaint on deftrecoup (.) c o m, i would have lost a lot of money. You could also file an email complaint to - support @ deftrecoup . c o m.

It's not easy to retrieve lost or stolen cryptocurrency, particularly when it comes to Bitcoin. Bitcoin functions in a decentralized, pseudonymous manner that makes it challenging to detect and govern, in contrast to conventional forms of money. Although many find this built-in security feature intriguing, recovery creates a distinct set of difficulties. Choosing a trustworthy and knowledgeable recovery provider is essential because there is a genuine risk of losing money when dealing with cryptocurrencies. Trustgeeks Hack Expert offers a comprehensive range of services designed to tackle the complex challenges of Bitcoin recovery. Whether you've fallen victim to a phishing scam, suffered a malware attack, or simply misplaced your private keys, their team of experts possesses the knowledge and tools to assist you. From digital forensic analysis to blockchain monitoring and encrypted data recovery, Trustgeeks Hack Expert leaves no stone unturned in their quest to reunite you with your Bitcoin.
Bitcoin transactions are far from simple, involving intricate cryptographic processes and decentralized verification. Each transaction leaves a trail of digital breadcrumbs, but deciphering this trail requires expertise and a deep understanding of the inner workings of the Bitcoin network. Additionally, the ever-evolving nature of blockchain technology means that recovery methods must constantly adapt to new threats and vulnerabilities. These complexities highlight the importance of entrusting your recovery to a team with proven expertise.  The backbone of Trustgeeks Hack Expert is their team of highly skilled professionals who live and breathe cryptocurrency recovery. With a deep understanding of blockchain technology, computer forensics, and cybercrime investigation, they possess the perfect blend of expertise needed to navigate the treacherous waters of Bitcoin recovery. Their dedication to staying at the forefront of industry trends and emerging threats ensures that they are always one step ahead of the game. I am recommending the service of Trustgeeks Hack Expert now with all confidence that you will also get yours back. contact with the info  below:
Email: trustgeekshackexpert(At)fastservice.com
whatsApp number  +44(123)- 380 -0794
Telegram: (At) Trustgeekshackexpert
Greetings.

securely and reliablyin a secure and reliable manner is paramount to preventing their disappearance. Losses from Bitcoin can happen for several regrettable reasons. The possibilities are endless, ranging from corrupted hard drives to forgotten passwords, like the mystical animals in a wizard's zoo. Many times, human error and technological difficulties work together to cause confusion and disorientation among people. Accidental deletion, hardware failure, and unfortunate encounters with scam artists are just a few examples of the many threats that loom over the magical world of Bitcoin. But fret not, for the Trustgeeks Hack Expert is here to help navigate these treacherous waters. The Trustgeeks Hack Expert's bag of tricks includes deep knowledge of private key recovery, data restoration, and cryptography. With the mastery of these domains, those  wizard can unleash their spells to recover your lost Bitcoin and return it to your digital treasure trove. The Trustgeeks Hack Expert team boasts years of experience in Bitcoin recovery. They have encountered every twist and turn in the intricate maze of cryptocurrencies, honing their skills along the way. Their expertise is unmatched, and their success stories are spoken about in hushed whispers among those who have witnessed their miracles. So, fear not, dear wanderer of the Bitcoin wilderness. The Trustgeeks Hack Expert team is here to guide you out of the darkness and back into the warm glow of your recovered bitcoins. Their knowledge and technical prowess will help you reclaim what was once lost, proving that even in the digital realm, there's always room for a little magic. For insight, contact Trustgeeks Hack Expert on:  Telegram:@Trustgeekshackexpert or email: trustgeekshackexpert(@)fastservice.com

Bitcoin recovery can be a daunting task, but with Lee Ultimate Hacker, the process becomes easier and more efficient. Here's how it works: The first step in the Bitcoin recovery process is the initial consultation and assessment. This is where you'll have the opportunity to speak with the experts at Lee Ultimate Hacker and provide them with the necessary information about your lost Bitcoin. They will assess your situation and determine the best course of action for recovery. After completing the preliminary analysis, the Lee Ultimate Hacker team will begin examining blockchain transactions in an effort to locate your misplaced Bitcoin. They possess the knowledge and resources to go through the extensive network in search of any leads that might be able to aid in the recovery of your money. A strong grasp of blockchain technology and an attention to detail are necessary for this level. Although words are cheap, Lee Ultimate Hacker's performance history speaks for itself. Their numerous happy clients and remarkable success rates attest to the efficacy of their techniques. They have assisted innumerable clients, both private and commercial, in getting their lost Bitcoin back and regaining confidence in the digital world. They stand out even more for their dedication to openness and individualized customer care, which helps to make the healing process as easy and stress-free as possible. To sum up, I can say this with certainty because of my experience with Lee Ultimate Hacker: they are the real deal when it comes to recovering lost or stolen Bitcoin. They are the first choice for anyone facing a crypto disaster because to their experience, distinct comprehension of the complexity involved, and astounding success rates. Thus, avoid the snake oil salespeople and go instead to Lee Ultimate Hacker, who are the real recovery wizards, if you find yourself in a similar situation. I promise you won't be let down.  Please sure to tell Lee Ultimate Hacker today about how your bitcoin has been misplaced and that you intend to get it back via: Leeultimatehacker @ aol. com
whatsap +1 (203) 954 - 8008
telegram +1 (626) 676 - 5937

There are a lot of untrue recommendations and its hard to tell who is legit. If you have lost money to scam contact (zattrecoverypro1 AT Gmail com) they will surely help you out. Took me long to find them.

It is possible to lose fortunes just as quickly as find them in the maze-like depths of the digital world. Before a single mistake sent my Bitcoin into the deep end, the world of cryptocurrencies was, for me, a place of limitless possibilities. I stared at the empty wallet, the weight of despair trying to overwhelm me, my heart hammering against my ribs like a trapped bird. But then Digital Web Recovery showed itself, a ray of hope emerging from the darkness. Their siren song was "Bitcoin Recovery," a melody that resonated with the desperation gnawing at my soul. Could it be true? Could these digital alchemists truly transmute my despair into retrieved riches? With a hesitant click, I embarked on a journey with Digital Web Recovery, a journey that would redefine my faith in the digital unknown. The procedure was methodical, a deft tango between human skill and sophisticated machinery. The crew at Digital Web Recovery, a symphony of brilliant minds, painstakingly examined the ruins of my virtual shipwreck. They explored the dark recesses of the blockchain, their algorithms acting as sonar pings to illuminate the way to possible rescue. Their commitment was a comfort to my nervousness as each step was patiently and clearly explained. Sufficient strain to cut through and then out of the darkness came a beacon of light. A notification emerged from the depths of obscurity, bearing a glimmer of hope: a portion of my Bitcoin had been saved. Even though it was a minor triumph, it was nonetheless one. It proved that Digital Web Recovery was more than just a marketing gimmick; instead, they were actual digital knights on the run, saving misplaced riches from the jaws of the virtual dragon. The retrieval proceeded, a slow steady trickle that built up to a torrent over time. Every Bitcoin that was recovered served as evidence of Digital Web Recovery's expertise and as a pillar supporting my rekindled faith. Ultimately, they were able to retrieve a large chunk of my lost wealth, which still makes me feel quite grateful. More than just a service, Digital Web Recovery is a lifeline and evidence of the creativity and kindness that persist in the digital frontier Email: digitalwebrecovery(@)mail-me.com They serve as evidence that hope can be found and lost things may be found again, even in the most remote and dangerous places on the internet. Do not give up if you end up lost in the virtual ocean with your Bitcoin being swept away by bad luck. Keep in mind with Digital Web Recovery; they might hold the secret to achieving your own digital happily ever after. I assure you to get back what you lost by contacting Digital web recovery on Telegram User: @digitalwebrecovery

Few losses hurt as much as the disappearance of cryptocurrencies in the rapidly changing world of the digital age when fortunes are made and destroyed in the blink of an eye. Our digital money now resides in the transient world of blockchain ledgers, susceptible to the whims of technology and human mistakes. Gone are the days of physical wallets and tangible possessions. I was standing there, staring at the chasm of Bitcoin wealth that I had squandered, and my hopes were fading faster and faster in this harsh land. At that point, Muyern Trust Hacker, a business whose name seems to evoke a promise of digital sorcery—the resurrection of lost data, the restoration of the seemingly irretrievable—appears as a ray of hope. I went to them with a sad heart, clinging to the final remnants of hopelessness, although I was initially skeptical. From the very first interaction, Muyern Trust Hacker exuded a quiet confidence that instilled a flicker of hope in my tired soul. Their team, a blend of technical wizards and empathetic guides, listened patiently to my tale of woe, their understanding a balm to my wounded spirit. Unlike other recovery services that treated me like a number, Muyern Trust Hacker saw me as a person, a victim of circumstances in need of a helping hand. The recovery process itself was a masterclass in efficiency and transparency. Muyern Trust Hacker kept me informed every step of the way, demystifying the complex technical jargon with clear explanations and regular updates. They never sugarcoated the situation, but their unwavering optimism and dedication to my cause kept my spirits aloft. And then, the magic happened. After days of tireless work, Muyern Trust Hacker delivered the news that sent shivers of joy down my spine: they had found my Bitcoin. It was a moment of pure joy, a surge of relief that washed over me like a tidal wave. The lost fortune, once a distant memory, was now tangible again, a testament to the incredible skill and dedication of the Muyern Trust Hacker team. But the impact of their work transcended the mere retrieval of my cryptocurrency. Muyern Trust Hacker restored my faith in the digital world, proving that hope can prevail even in the face of seemingly insurmountable challenges. They are not just data recovery specialists; they are digital alchemists, transforming despair into triumph, and loss into newfound prosperity. If you find yourself teetering on the edge of digital oblivion, your precious assets lost in the labyrinthine depths of the internet, do not despair. Seek the counsel of Muyern Trust Hacker via TELEGRAM: ( at )muyerntrusthacker, and EMAIL: muyerntrusted[at]mail-me[dot]com and let their digital wizardry work its magic.

When Hope Seems Lost: Talking to Wizard Web Recovery, the Crypto Recovery Prodigies. In the dynamic and often volatile world of cryptocurrency, losing your precious digital assets can feel like a crushing blow. Whether it's a stolen wallet, a forgotten password, or a malicious scam, the path to recovery can seem shrouded in darkness. But fear not, fellow crypto enthusiasts, for a beacon of hope shines in the form of Talk to Wizard Web Recovery. Forget the image of shady hackers operating in dimly lit basements. Talk to Wizard Web Recovery boasts a team of prolific experts, each with their own unique skill set and a shared passion for unraveling the mysteries of lost crypto. They're not just tech wizards; they're blockchain detectives, forensic analysts, and digital strategists, all rolled into one. Their skill and armament are equally astounding. With the precision of a skilled chef deciphering a complicated recipe, they use state-of-the-art blockchain analysis tools to painstakingly examine each transaction trail. They tap into the huge network of the dark web, following the slightest digital whispers to find buried clues. They even outsmart the most crafty cybercriminals when needed by using sophisticated social engineering tactics. But  Wizard Web Recovery understands that losing crypto is more than just a financial loss. It's an emotional rollercoaster, a gut-wrenching experience that can leave you feeling helpless and vulnerable. This is where their human touch shines through. They approach each case with empathy and understanding, offering a listening ear and unwavering support throughout the entire recovery process. Their achievements tell powerful tales. Many people have recovered their lost wealth—from seasoned investors to novices in cryptocurrency—Wizard Web Recovery's commitment and knowledge. Every case they handle demonstrates their steadfast dedication to meeting client needs. Therefore, don't give up if you find yourself gazing into the void of lost cryptocurrency. Speak with Wizard Web Recovery. They will act as your mentors as you make your way across the perilous digital landscape, doing so with compassion and ability. They will stand up for what is truly yours, reassuring you that good things can still happen and hope can be found even in the most desolate areas of the cryptoverse. For those struggling with the difficult work of cryptocurrency recovery, I hope this essay will be a ray of optimism. Recall that you are not traveling alone.
Initiate with them through; wizardwebrecovery(@)programmer (.) net

The days of feeling like you were tossing a life raft into a chasm when you lost your valuable bitcoins are long gone. A light of hope amid the dark waters of bitcoin recovery emerges in the form of Lee Ultimate Hacker. My tale, which attests to their skill in finding misplaced bitcoins, is one of hopelessness turned delightfully virtual vindication. It began with a rookie mistake. A fresh-faced investor, I succumbed to the siren song of a flashy exchange, lured by promises of astronomical returns. Little did I know, the platform was a meticulously crafted mirage, designed to fleece unsuspecting victims like myself. In a blink, my entire bitcoin portfolio vanished, leaving behind a gnawing emptiness and a heart heavy with regret. Days bled into weeks, each sunrise a stark reminder of my folly. I scoured the internet, desperately clutching at straws, only to be met with a chorus of despairing voices and predatory "recovery" scams. Then, amidst the digital wasteland, I stumbled upon Lee Ultimate Hacker. Their website, a beacon of professionalism in the chaos, promised a glimmer of hope. Hesitantly, I contacted their support team. What followed was a series of in-depth consultations, each one a meticulous excavation of my digital footprints. The Lee Ultimate Hacker team, a symphony of expertise and empathy, treated my case with the utmost seriousness. They listened patiently to my tale, dissected the fraudulent exchange's tactics, and formulated a recovery plan that felt both audacious and meticulously crafted. Days turned into weeks, each email update a fluttering pulse of anticipation. Then, one glorious morning, it arrived. A simple email, devoid of fanfare, yet pregnant with the weight of a thousand suns: "Your bitcoins have been recovered. Tears welled up as I logged into my wallet. The numbers, once mockingly absent, now shimmered with the brilliance of a thousand reclaimed dreams. The impossible had been achieved. Lee Ultimate Hacker had not only retrieved my stolen bitcoins, but they had also restored my faith in the very fabric of the cryptocurrency world. My experience is not singular. The unflinching dedication of the Lee Ultimate Hacker team to rectifying the injustices of the digital frontier is demonstrated by their tireless efforts. They are digital Sherpas crossing the perilous terrain of lost bitcoins; they are more than just recovery experts. They are custodians of trust. Contact Lee Ultimate Hacker for aid via:Leeultimatehacker @aol. com

In cases involving the recovery of lost funds, collaboration between recovery specialists like<EMAIL_ADDRESS>and legal professionals is vital. Recovery experts possess the technical expertise to trace and retrieve stolen assets, while legal experts provide guidance on the appropriate legal avenues to pursue. This coordinated effort ensures a comprehensive approach to recovering your funds and increases the likelihood of a successful outcome. One of the most valuable lessons you can learn from a scam experience is to recognize the warning signs of investment scams. Some common red flags include unrealistic promises of high returns with little to no risk, pressure to invest quickly, and lack of transparency in communication or documentation. Take the time to educate yourself by contacting<EMAIL_ADDRESS>and IG Marie_consultancy) to protect yourself from falling into similar traps in the future and to also help you reclaim your lost bitcoin.


[diesel-cli] Should parse ~ as home of current user

If you want to create a database in your home directory you have to do it with the specific path e.g. /Users/username/ it would be better if diesel-cli could parse ~ as $HOME

Diesel doesn't have any control over how file paths are parsed. They're handled either by the Rust file APIs, or by SQLite.


Support dynamic default value

Summary
Fixes: #108 .
Defaults now accept default value as a getter.
Approach
Replace default value's type with type typealias DefaultGetter = () -> Value.
And change Key.defaultValue to a computed property which getter is DefaultGetter.
Thanks
Sorry for the delay of this PR and thanks for your code review 😄 !

Sorry for the delay of this PR and thanks for your code review 😄 !

No need to be sorry. This is open source. We do this stuff for fun when we can.

No need to be sorry. This is open source. We do this stuff for fun when we can.

Got it! Well said! Working on this stuff really makes me fun.
I have applied some changes, thanks for your code review once again!

By the way, we now have API docs: swiftpackageindex.com/sindresorhus/defaults/main/documentation/defaults/defaults

This is awesome! It is much better than showing API in readme.md! Thanks!

✨


Implement query() and adding/removing indexes

This is another Ember Data thing that we don't support yet. (query(), anyway).

:+1:  It would be great.
I had to expose fromRawDoc() on the public API to make a query.

Actually nowadays it may make more sense to just directly plug into pouchdb-find and expose that in ember-pouch. However, I don't have much time for that project these days.

I tried using pouchdb-find along side this plugin but since this one uses a "smart" ID for the document, pouchdb-find has trouble retrieving docs. I could have added the deserialize logic from this plugin but it turned out to be easier to work with the code without using both, so I just stuck with find.

@wujitouch Yeah, I think pouchdb-find integration needs to be implemented within this plugin itself.

I added parseRelDocs in my PR #61 which I needed for my own find query. Thought it might be a good idea to expose this to the outside.
One extra problem i realised when looking at the filters was that db.find in pouchdb-find does not filter on types. So filtering on an attribute date might give more than one type back. But most of the time you only want one type back. For the findHasMany query I do this with an extra selector for the id.
So maybe it is better to make our own version of the query and index functions, since we might also want to include the id between filter to select only documents of a certain type.


Email components

Description
Sample email build using those:

Questions:
Do you want me to split those inside the email folder into atoms/molecules as well or just put this somewhere else altogether?
To do in future:

Automatically parse tailwind config to output a liquid file with the colors.
Place those somewhere in the style guide (?)

Issue ticket number and link
https://trello.com/c/3OZVVplr/194-update-email-layout-to-pcbs
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[ ] I have made corresponding changes to the documentation
[ ] Any dependent changes have been merged and published in downstream modules

Just a quick summary of what we've just discussed offline:
In emails we can't use css variables, and creating email-specific components with hardcoded hex colors is not an option in the component library. So we agreed that we'll just create a regular basic email layout and email partials for the community solution in https://github.com/Platform-OS/community-solution/tree/master/modules/community/public/views/layouts and https://github.com/Platform-OS/community-solution/tree/master/modules/community/public/views/partials and use the core modules email/send command to specify the layout and partial https://github.com/Platform-OS/pos-module-core#email-sending
And later for PCBS-specific emails we can create the layout and the email partials in https://github.com/Platform-OS/pcbs/tree/master/modules/theme-pcbs
This way we can keep our component library clean and at the same time we can avoid git conflicts as the only difference between the CS and PCBS is the layout and partial properties in the payload of the email send command (for shared, common emails), and there won't be any conflicts if the PCBS-specific emails are being sent from a PCBS-specific module or hook (like modules/pcbs-profile).


Update bpf_xdp ebpf program to latest

bpf_xdp.c (a standalone Load balance) in cilium/bpf/
bpf_xdp.c was written 2 years back.
This issue is created to bring

bpf_xdp.c to latest
ensure end-to-end connectivity and functionality stated in the L4LB cilium demo.

cilium fork needs to sync up with the latest.  Hence closing as not planned.


Navigated Image

Respected Sir,
Sir, How can planetary images are being navigated using Spicepy software as shown in attached image ?

Sir, How can planetary images are being navigated using Spicepy software as shown in attached image ?

Respected Sir,
Sir, How can planetary images are being navigated using Spicepy software as shown in figure 1 of paper
https://www.sciencedirect.com/science/article/pii/S0019103517301501.

I suggest you ask the authors of the paper, in their paper they say they use another application called PLIA

Sir in this absrtact
https://meetingorganizer.copernicus.org/EPSC2018/EPSC2018-337.pdf
they have used Python to navigate Mars Images, Pls. Sir let me know ?


[CS2103-W14-2] Track2Gather

Track2Gather will manage up to a few thousand contacts, providing basic features for contact tracing personnel to organise and search through them by personal information (limited to English names and Singaporean contact numbers and addresses), case contacts and quarantine period information.

Codecov Report

Merging #50 (f201a0c) into master (ba53b8c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #50   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 ba53b8c...f201a0c. Read the comment docs.


Fix order state change and mail window when opened via quick search

1. Why is this change necessary?
The order state change and the mail window depends on the order list. Both try to update/reload the order list, when state is changed or a document is added. This dependency throws an error, if the order isn't oped via the order list window, but from the quick search bar in the blue top bar. When one opens an order via quick search there is simply no order list window available.
2. What does this change do, exactly?
This change introduces a try/catch block, when accessing the order list object. It will simply not reloaded, if it's not available.
3. Describe each step to reproduce the issue or behaviour.
Working example:

Open in backend "Kunden -> Bestellungen"
Edit an order
Change order or payment state, to a state with an email associated. E.g. "Bestellstatus: In Bearbeitung" (not sure if this is really standard or our customization ;)
Save order
Growl notification: Succesfull
Mail window opens

Not working example:

Look for existing order number in quick search
Pick order to open
Change order or payment state, to a state with an email associated. E.g. "Bestellstatus: In Bearbeitung" (not sure if this is really standard or our customization ;)
Save order
Growl notification: Succesfull
Mail window does NOT open. There is an error on JavaScript console.

4. Please link to the relevant issues (if any).
Don't know.
5. Which documentation changes (if any) need to be made because of this PR?
None.
6. Checklist

[ ] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Could you please check #1695 if that solves that issue?

Hey @buddhaCode,
we discussed this internally and decided to use the solution from #1695. But thank you for your contribution :blue_heart:


Platform compatibility

I couldn't find any info about platform compatibility in the wiki.
I would like to use TinyIoC for a Unity game potentially targeting pc/mac/linux/xbox/ps4/android/ios.
I'm guessing pc, mac and linux should be no problem - at least it is working fine so far. I don't have other devices yet to make any tests.
Are those platforms (mobile and console) officially (or not so officially) supported by TinyIoC and  TinyMessenger?

We have it working on .net standard and .net 4.5 full framework on linux, macOS and windows without issue.

Ran into namespace not being available after nuget install on .net core 2.1 with Visual Studio Pro. Maybe there is something more to this.

We are also targeting .net standard 2.0 here (https://github.com/exceptionless/Exceptionless.Net/tree/master/src/Exceptionless). Can you see what you are missing by looking at our csproj? It would be really nice to drop some target frameworks and clean up the code a bit.

I can't seem to get VS 2019 .Net Standard 2.0 to recognise the TinyIoC namespace at all.  Works fine in .Net Framework.  I tried starting a brand new project, added the TinyIoC NuGet package (v1.3.0) and all I see is "The name TinyIoCContainer' does not exist in the current context" and "Cannot resolve symbol 'TinyIoCContainer'".

Oh!  Now I see...  The .Net Framework project has had a file named TinyIoC.cs added to it.  That didn't happen for my .Net Standard projects.  Should it have?  Presumably I can just copy it over?

I should delist the alpha package (https://github.com/grumpydev/TinyIoC/issues/136) If anyone has some time to help look into this that would be awesome.

Sorry. No time anytime soon. Also, these namespace pragmas.. Perhaps things settles more clearly in future in the DNX, NetCore-1-2-3 vs NetStandard-world.


Allow specifying custom tags at the route level

The current logic to determine a route's set of tags is based solely on the route, which works in most cases, but isn't flexible when you want to override the tags.
The situation that led me here was the following setup:
prefix 'locations/:id'

resource :employees do
  desc 'Retrieve employees for a given location'

  get '/' do
    ...
  end
end

Which grouped the /locations/:id/employees under the locations namespace. This was undesirable, because almost all of the endpoints in our API are prefixed with /locations/:id, which meant that they were all grouped under the locations namespace.
Allowing an additional tags attribute on the desc method solved the issue for me.
desc 'Retrieve employees for a given location', tags: ['employees']

Before:

After:

Is there another way to accomplish this that I missed altogether, or does this seem like a reasonable addition?

Hello, thank you for your contribution, this is a good feature, can you provide description of this feature in README.md?

thanks @jordanfbrown … did the global tag set also respect your changes?

@Bugagazavr @LeFnord Feedback addressed, thanks!

👍


Longest Substring Without Repeating Characters-Leetcode medium problem

hey @SoumyadeepMukherjee  please allow me to contribute to this issue...
please add hacktoberfest tag

I have made pull request...please look after it...

hey @SoumyadeepMukherjee kindly assign this issue to me as I want to contribute.

Hey @SoumyadeepMukherjee Can you assigned this to me I have optimized approach for this Complexity- O(n)


SAP Documentation for IAAS Link maybe dated or moved

[You may want to find where this page moved or remove the link entirely. I've tried finding an appropriate link but nothing comes up, but configurations for SAP VMs. Here is the MS Doc for SAP with the broken link not found: https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/hana-vm-operations]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 98b3d8f3-4639-aa5f-d0ca-9a41170dd0cf
Version Independent ID: 3ce38d97-3717-9e25-2082-f6597cc6e387
Content: SAP HANA infrastructure configurations and operations on Azure - Azure Virtual Machines
Content Source: articles/virtual-machines/workloads/sap/hana-vm-operations.md
Service: virtual-machines-sap
GitHub Login: @msjuergent
Microsoft Alias: juergent

Thanks @anthfuller for your feedback! We're updating the broken link now to point to https://www.sap.com/dmc/exp/2014-09-02-hana-hardware/enEN/#/solutions?filters=v:deCertified;iaas;ve:24
#please-close


Protractor-getText() return object instead of string

getText() written object instead of string so i have used below function and make it as generic .
getElementText=function(elementLocator){ elementLocator.getText().then(function(text)
{ console.log(text);   //it prints correct text
return text; });
};

After that i am calling above function whenever i need text but in some case i need to split the returning value so i am doing like:
var abc= getElementText(<x-path of locator>);
name= abc.split(",");
console.log(name[0]+"and"+name[1]);

but i am getting value abc as undefined and i am not able to perform any function like split or replace on that.
So help me how to perform any operation on returned value from getElementText() method like split/replace because when i try to perfrom any function on variable abc it is saying that abc is undefined.

Hi there!
getText is asynchronous, so even though your getElementText function is properly waiting for the promise with then it will not return anything itself so abc will be undefined.
Because of it's usage and debugging nature, your question is better suited for StackOverflow or Gitter. Please ask a question there with the 'protractor' tag or post in the Gitter Channel to get help.
From the the getting help section of the README:

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag) or in the Angular discussion group. (Please do not ask support questions here on Github.)

Thanks!

var name;
getElementText().then((textReturnedAfterPromiseResolves) => {
name = textReturnedAfterPromiseResolves.split(",");
console.log(name[0]+"and"+name[1]);
})
Because you are assigning abc with your function that returns a promise you first must wait for it to resolve before you can use it.


Nuget packages with multiple targetframeworks not working properly

Summary
When installing a plugin which has multiple targetframeworks in the package/metadata/dependencies node duality can pick the wrong framework and then complain about not being able to resolve dependencies. This can happen when it picks the .NETStandard1.1 framework for instance. A example of a nuspec with multiple targetframeworks can be found below:
    <dependencies>
      <group targetFramework=".NETFramework4.5.2" />
      <group targetFramework=".NETStandard1.1">
        <dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" />
      </group>
    </dependencies>

If you try to install such a package you will get a similar error to the following:
[Edit] Msg: Installing package 'Singularity.Duality.core <IP_ADDRESS>'...
[Edit] Msg:   Attempting to resolve dependency 'Singularity (≥ 1.0.0)'.
[Edit] Msg:   Attempting to resolve dependency 'NETStandard.Library (≥ 1.6.1)'.
[Edit] ERR: An error occurred while processing Package 'Singularity.Duality.core', Version <IP_ADDRESS>: InvalidOperationException: Unable to resolve dependency 'NETStandard.Library (≥ 1.6.1)'.
            CallStack:
               at NuGet.InstallWalker.OnDependencyResolveError(PackageDependency dependency)
               at NuGet.PackageWalker.Walk(IPackage package)
               at NuGet.PackageWalker.Walk(IPackage package)
               at NuGet.InstallWalker.ResolveOperations(IPackage package)
               at NuGet.PackageManager.Execute(IPackage package, IPackageOperationResolver resolver)
               at NuGet.PackageManager.InstallPackage(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
               at Duality.Editor.PackageManagement.PackageManager.InstallPackage(PackageName packageName, Boolean skipLicense)
               at Duality.Editor.Plugins.PackageManagerFrontend.PackageViewDialog.<>c.<InstallPackage>b__24_1(PackageOperationData d) in C:\projects\duality\Source\Plugins\EditorModules\PackageManagerFrontend\Modules\PackageViewDialog.cs:line 338
               at Duality.Editor.Plugins.PackageManagerFrontend.PackageViewDialog.<PackageOperationThread>d__58.MoveNext() in C:\projects\duality\Source\Plugins\EditorModules\PackageManagerFrontend\Modules\PackageViewDialog.cs:line 761

The problem seems to be that the packagemanager doesn't know what framework it should be looking for so instead of picking the .NETFramework4.5.2 it picks the .NETStandard1.1. I confirmed this by decompiling the InstallPackage method in Nuget.Core:
    public virtual void InstallPackage(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
    {
      FrameworkName targetFramework = (FrameworkName) null;
      bool ignoreDependencies1 = ignoreDependencies;
      bool allowPrereleaseVersions1 = allowPrereleaseVersions;
      this.InstallPackage(package, targetFramework, ignoreDependencies1, allowPrereleaseVersions1, false);
    }

Luckily this method is virtual and as such we can override it:
    public class NugetManager : NuGet.PackageManager
    {
        public NugetManager(IPackageRepository sourceRepository, string path) : base(sourceRepository, path)
        {
        }

        public NugetManager(IPackageRepository sourceRepository, IPackagePathResolver pathResolver, IFileSystem fileSystem) : base(sourceRepository, pathResolver, fileSystem)
        {
        }

        public NugetManager(IPackageRepository sourceRepository, IPackagePathResolver pathResolver, IFileSystem fileSystem, IPackageRepository localRepository) : base(sourceRepository, pathResolver, fileSystem, localRepository)
        {
        }

        public override void InstallPackage(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
        {
            var targetFramework = new FrameworkName(".NETFramework", new Version(4,5,2));
            this.InstallPackage(package, targetFramework, ignoreDependencies, allowPrereleaseVersions, false);
        }
    }

Then replace the nuget packagemanager with our own derived class here
With the above modification duality succeeds in installing the package. So I think the solution is to derive from NuGet.PackageManager and override the methods in order to pass in the correct targetframework.
Note there is a overload of InstallPackage which does accept a targetframework but its protected:
protected void InstallPackage(IPackage package, FrameworkName targetFramework, bool ignoreDependencies, bool allowPrereleaseVersions, bool ignoreWalkInfo = false);

How to reproduce

First create a folder and copy the test nupkg files to it. Make sure the test package has multiple targetframeworks defined (I used .NETFramework4.5.2 and .NETStandard1.1). If one of the test packages has dependencies you need to include them all:

Make a clean build of duality
Go to Build\Output and open up PackageConfig.xml to make sure the RepositoryUrl points to the folder we created in step 1.
Start duality and install one of the testpackages. You should get a popup with a error.

Workaround

Don't use a package with multiple targetframeworks

Fixed by @Barsonax in #710. Release in progress. Closing this.


Docs: Improving examples for fetching secrets

What were you searching in the docs?
I wanted to set up pulling secrets for my project and replacing my custom code with lambda power tools parameters functionality.
Is this related to an existing documentation section?
https://docs.powertools.aws.dev/lambda/python/latest/utilities/parameters/#fetching-secrets
How can we improve?
The example has
api_key: Any = parameters.get_secret("/lambda-powertools/api-key")  headers: dict = {"X-API-Key": api_key}
This reads as pulling a value for an api-key key
But the value of api-key can be a mapping of keys and values and produce a dict.
In my code I've set up secrets where I've got
project-name/staging
Under that I have key value mapping of:
DB_CONNECTION_STRING
API_KEY
And wanted to do: parameters.get_secret("project-name/staging/DB_CONNECTION_STRING") to pull the value under a key within a secret.
Got a suggestion in mind?
Adding another nested example to show the difference between a plain string and key/value results.
Acknowledgment

[x] I understand the final update might be different from my proposed suggestion, or refused.

Hi @chubzor, thank you for opening the issue.
I'm not 100% sure I understand correctly, but if I am, it looks like you have a secret stored as key/value pairs like this

except in your case the keys are DB_CONNECTION_STRING and API_KEY.
If this is the case, then you still need to retrieve the entire secret since AWS Secrets Manager treats it as a single secret. Once retrieved the entire object, then you can parse it and grab the key/val that you need.
Specifically, using Parameters from Powertools for AWS, you could use the transform feature, and do something like this:
from typing import Any

import requests

from aws_lambda_powertools.utilities import parameters
from aws_lambda_powertools.utilities.typing import LambdaContext

def lambda_handler(event: dict, context: LambdaContext):

    try:
        configs: Any = parameters.get_secret("my-project/staging", transform="json")

        api_key = config["API_KEY"]

        # ...
    except parameters.exceptions.GetParameterError as error:
        return {"comments": None, "message": str(error), "statusCode": 400}

If instead you want to be able to get each key/val independently, you'll have to store them separately with each key/val in their own secret.


docs: readme - push instructions and pushed version

TESTING=none

I'm going to merge the doc updates so our customer can get the latest docs.


Delay link retrieval for Yahoo

A proposal to re-enable quick preview in Yahoo. Should fix #23
⚠ Testing needed !

Seems to work !
I tested this fix on honcode-extension and it works too !
Many thanks I'll test this with duckduckgo and try to add this new S.E


crash using Function.get_parameter_at()

I get a crash when trying to call Function.get_parameter_at(). It's a null deref, my script and the crash log are attached.
Here's the file I was analyzing:
easy-biroldo-with-mayonnaise-on-multigrain.zip
#!/usr/bin/env python

import sys
try:
    import binaryninja
except ImportError:
    sys.path.append("/Applications/Binary Ninja.app/Contents/Resources/python/")
    import binaryninja
import time
import socket
import base64

chal = "easy-biroldo-with-mayonnaise-on-multigrain"

# Open a binary view to the challenge as an elf
print "Analyzing {0}".format(chal)
bv = binaryninja.BinaryViewType["ELF"].open(chal)
bv.update_analysis()
time.sleep(0.1)

# start at the entry point
print "Entry Point: {0:x}".format(bv.entry_point)
entry = bv.get_functions_at(bv.entry_point)[0] # Get the entry point as a function object
count = 0
start = None

print bv.arch.calling_conventions

# Iterate over the basic blocks in the entry function
for block in entry.low_level_il:
    # Iterate over the basic blocks getting il instructions
    for il in block:

        # We only care about calls
        if il.operation != binaryninja.core.LLIL_CALL:
            continue

        # The second call is the call to start
        count += 1
        if count == 2:
            start = bv.get_functions_at(il.operands[0].value)[0]
            break

print "start: {0}".format(start)

# Do the same thing with main, it's the first call in start
main = None
for block in start.low_level_il:
    for il in block:
        if il.operation != binaryninja.core.LLIL_CALL:
            continue

        main = bv.get_functions_at(il.operands[0].value)[0]

print "main: {0}".format(main)

# Collect all the call instructions in main
calls = []
for block in main.low_level_il:
    for il in block:
        if il.operation == binaryninja.core.LLIL_CALL:
            calls.append(il)

# If there are 5, then the memcmp is the second one. With 6 its the 3rd one.
if len(calls) == 5:
    read_buf = calls[0]
    memcmp = calls[1]
else:
    read_buf = calls[1]
    memcmp = calls[2]

print "memcmp address: {0:08x}".format(memcmp.address)

memcmp_func = bv.get_functions_at(memcmp.operands[0].value)[0]
canary_address = main.get_parameter_at(bv.arch, memcmp.address, memcmp_func.type, 1)
print canary_address

$ lldb python 334x_standalone.py
(lldb) target create "python"
Current executable set to 'python' (x86_64).
(lldb) settings set -- target.run-args  "334x_standalone.py"
(lldb) run 334x_standalone.py
Process 46726 launched: '/usr/local/bin/python' (x86_64)
Process 46726 stopped
* thread #1: tid = 0x47bb3a, 0x00007fff5fc01000 dyld`_dyld_start, stop reason = exec
    frame #0: 0x00007fff5fc01000 dyld`_dyld_start
dyld`_dyld_start:
->  0x7fff5fc01000 <+0>: pop    rdi
    0x7fff5fc01001 <+1>: push   0x0
    0x7fff5fc01003 <+3>: mov    rbp, rsp
    0x7fff5fc01006 <+6>: and    rsp, -0x10
(lldb) run
There is a running process, kill it and restart?: [Y/n] n
(lldb) c
Process 46726 resuming
Analyzing easy-biroldo-with-mayonnaise-on-multigrain
Entry Point: 80486b7
{'cdecl': <calling convention: x86 cdecl>, 'linux-syscall': <calling convention: x86 linux-syscall>}
start: <func: x86@0x8048420>
main: <func: x86@0x8048370>
memcmp address: 080483d0
Process 46726 stopped
* thread #1: tid = 0x47bb3a, 0x000000010504f524 libbinaryninjacore.dylib`___lldb_unnamed_function987$$libbinaryninjacore.dylib + 180, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x000000010504f524 libbinaryninjacore.dylib`___lldb_unnamed_function987$$libbinaryninjacore.dylib + 180
libbinaryninjacore.dylib`___lldb_unnamed_function987$$libbinaryninjacore.dylib:
->  0x10504f524 <+180>: mov    rax, qword ptr [r13]
    0x10504f528 <+184>: mov    rax, qword ptr [rax + 0x18]
    0x10504f52c <+188>: lea    rdi, [rbp - 0x60]
    0x10504f530 <+192>: mov    rsi, r13
(lldb) reg read
General Purpose Registers:
       rax = 0x0000000000000004
       rbx = 0x0000000000000001
       rcx = 0x0000000000000004
       rdx = 0x00000001003135d0
       rdi = 0x000000010078d300
       rsi = 0x000000010030e380
       rbp = 0x00007fff5fbfedd0
       rsp = 0x00007fff5fbfeca0
        r8 = 0x00007fff5fbfee20
        r9 = 0x00007fff5fbfedf0
       r10 = 0x00007fff5fbfee50
       r11 = 0x0000000105054750  libbinaryninjacore.dylib`BNGetParameterValueAtInstruction
       r12 = 0x000000010030e380
       r13 = 0x0000000000000000
       r14 = 0x00007fff5fbfee90
       r15 = 0x000000010030e3e0
       rip = 0x000000010504f524  libbinaryninjacore.dylib`___lldb_unnamed_function987$$libbinaryninjacore.dylib + 180
    rflags = 0x0000000000010202
        cs = 0x000000000000002b
        fs = 0x0000000000000000
        gs = 0x0000000000000000

(lldb) bt
* thread #1: tid = 0x47bb3a, 0x000000010504f524 libbinaryninjacore.dylib`___lldb_unnamed_function987$$libbinaryninjacore.dylib + 180, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x000000010504f524 libbinaryninjacore.dylib`___lldb_unnamed_function987$$libbinaryninjacore.dylib + 180
    frame #1: 0x000000010504fb58 libbinaryninjacore.dylib`___lldb_unnamed_function988$$libbinaryninjacore.dylib + 152
    frame #2: 0x000000010505477e libbinaryninjacore.dylib`BNGetParameterValueAtInstruction + 46
    frame #3: 0x0000000101fb07ef _ctypes.so`ffi_call_unix64 + 79
    frame #4: 0x0000000101fb1024 _ctypes.so`ffi_call + 836
    frame #5: 0x0000000101fac63f _ctypes.so`_ctypes_callproc + 591
    frame #6: 0x0000000101fa6c60 _ctypes.so`PyCFuncPtr_call + 1049
    frame #7: 0x000000010000eeb0 Python`PyObject_Call + 99
    frame #8: 0x000000010008ea27 Python`PyEval_EvalFrameEx + 26436
    frame #9: 0x000000010009272d Python`fast_function + 264
    frame #10: 0x000000010008eaf3 Python`PyEval_EvalFrameEx + 26640
    frame #11: 0x00000001000880f1 Python`PyEval_EvalCodeEx + 1583
    frame #12: 0x0000000100087abc Python`PyEval_EvalCode + 54
    frame #13: 0x00000001000abea1 Python`run_mod + 53
    frame #14: 0x00000001000abf44 Python`PyRun_FileExFlags + 133
    frame #15: 0x00000001000aba93 Python`PyRun_SimpleFileExFlags + 698
    frame #16: 0x00000001000bd445 Python`Py_Main + 3137
    frame #17: 0x00007fff982145ad libdyld.dylib`start + 1
    frame #18: 0x00007fff982145ad libdyld.dylib`start + 1
(lldb)

Fixed in development


added information about missing python in log

not working on QT 5.6, need fix to 5.5

fixed

still doesn't compile on ubuntu 16.04

ok, now it works


Problem executing NodeTask type from a subproject: ask with path 'nodeSetup' not found in project ':foo'"

Although configuring the node plugin for all my projects, I get this error when I try to run a NodeTask from a subproject:
Could not determine the dependencies of task ':projA:compileTypeScript'.
> Task with path 'nodeSetup' not found in project ':projA'.

Repro:

settings.gradle: include 'projA', 'projB'
build.gradle:

buildscript { repositories { mavenCentral() } }
plugins { id "com.moowork.node" version '0.12' }
allprojects {
    node {
        version        = '4.4.5' // version of node to use
        npmVersion     = '3.8.9' // version of npm to use
        download       = true    // download Node
        workDir        = new File(rootProject.projectDir, '.gradle/nodejs') // default
        nodeModulesDir = workDir // colocate node modules with local Node install
    }
    task installTypeScript(type: NpmTask) {
        workingDir = node.workDir
        args = ['install', 'typescript']
    }
    task compileTypeScript(type: NodeTask, dependsOn: installTypeScript) {
        script = new File(node.nodeModulesDir, 'node_modules/typescript/bin/tsc')
        args = ['--version']
    }
}

Running the task out of the rootProject works:
$ gradle :cTS
:nodeSetup
:installTypeScript
<EMAIL_ADDRESS>node_modules/typescript
:compileTypeScript
Version 1.8.10

BUILD SUCCESSFUL

But running it from the subproject does not:
$ gradle :projA:cTS
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':projA:compileTypeScript'.
> Task with path 'nodeSetup' not found in project ':projA'.

Whoops, created prematurely.


Failure of 'Q' menu option to offer change of database - Mac OS and Ubuntu

This arises from line 79 of selectdb.c:
if (!*dbrequested) {
Replacing this with:
if (!*dbrequested[0]) {
sorts the problem.

Ugh.  Yes, I can see how this would help.  The code is very inconsistent in how it treats an "empty string" -- sometimes it's NULL pointer, sometimes it's a one-byte allocation set to '\0'.  I will look through this in more detail.  I remember doing some work in this area to avoid memory leaks and likely changed the semantics of something in the process.

This is one of those pointer-to-a-pointer-to-a-pointer problems which does my head in!
This also works...
if (!**dbrequested) {

...and is probably the tidiest way of achieving the desired result.

This is one of those pointer-to-a-pointer-to-a-pointer problems which does my head in!
This also works...
if (!**dbrequested) {

...and is probably the tidiest way of achieving the desired result.

Except that it is misleading.  Because of the aforementioned concerns with what an "empty string" is, we may need two checks here.

a check that the pointer to a pointer is not NULL, which is what the current code does.  It would be better written as *dbrequested != NULL.   (Note that tThe ASSERT(dbrequested) validates that the first pointer is valid.)
a check that the pointer to a pointer does not point to a string with a single NULL character.  What you suggest would do this, but it's better written as (*dbrequested)[0] != '\0'

From main.c (and llexec.c), you can see how we pass in either a non-empty or an empty string:
    377                 if (!alldone && c>0) {
    378                         dbrequested = strsave(argv[optind]);
    379                 } else {
    380                         strupdate(&dbrequested, "");
    381                 }
    382                 if (!select_database(&dbrequested, alteration, &errmsg)) {

In both cases we pass in a valid STRING of some sort, so we can:

assume (but validate) that the double-pointer is valid
check that the string is not "empty", using the revised check you suggested.


[rstmgr] Fix dump capture conditions

Fixes #7918
Remove unnecessary dump capture

Signed-off-by: Timothy Chen<EMAIL_ADDRESS>

i decided to go this way because if a low power and actual reset collided (with low power slightly ahead), the act of low power would actually cause the dump sources to be wiped out (since the dump sources are not always on). So when you actually capture again, you would get nothing.
This is not something you would observe at block level tests, unless you modeled the stimulus behavior to disappear on low power as well.

@matutem can you let me know what you think?


Is diffusion position embedding necessary?

Thanks for your excellent work!
I've seen that before the conditioning vector z  entering diffusion model, positional embedding added to it, as the code below:
https://github.com/LTH14/mar/blob/e0cccf8341aa3276069a5bf2eb4bcb83bebafa4e/models/mar.py#L229
Is this crucial? any explanation can be show? I'm really appreciate that.

Thanks for your interest! Actually this position embedding is not a crucial part 😂. I once thought we need to tell the DiffLoss about the position it is generating, so I added this position embedding. But later I found that the condition z should already contain the position information because of the position embedding added before the decoder. However, since all of our pre-trained models are trained with this, I just keep it in the code.

I found that the condition z should already contain the position information because of the position embedding added at the beginning of the decoder.
That's exactly what I thought! Thanks for your reply.


It's nice to be able to make small changes (e.g. I like to use a 1px-wide cursor instead of the default 2px), without having to create a theme/extension.

@chrisdias any thoughts here?

This would be a killer feature.

This?
https://github.com/be5invis/vscode-custom-css

@be5invis It needs to be based on a supported API.

I think this is an important feature. Being able to make a small tweak to an existing theme without having to deploy an entirely new theme is extremely useful when you've found a theme that pretty much suits your tastes. Maybe you want the background to be a touch darker, or to remove the underlining on function names or something. Having to build an entirely new theme is a distraction when you could simply pop open a stylesheet, add a single overriding rule and get on with things.

My use case: the Intellisense popup is not wide enough, so sometimes I don't see arguments to methods, for instance. Things I've tried: No handles to resize; Trackpad doesn't scroll it sideways.

@opyate That should probably be reported as a bug (if it hasn't already been).

Any update on this? Would be willing to take a crack at it if you're looking for PRs

Please integrate this in the next relase 👍
i look this featureRequest 1 time a week 😄

The new theming options that have been made available recently are absolutely amazing and cover probably 90% of the use cases this would have, but I still think there is a use case for allowing users/themes to inject CSS styles. I am using the vscode-custom-css plugin, for instance, to add styles that allow me to have a vertical tab-bar:

When I open a large number of files seeing them all at once vertically makes it much easier to find them and remember what I'm doing. In general, more drastic UI customization and experimentation with different UI/UX flows is what I'm getting at here. This is one of the major advantages of VS Code and electron based editors in general vs IDEs - we can experiment with UX, and try to find better flows and patterns rather than being stuck in the same old workflows from 10 years ago.
On the flip side, opening the pandora's box of custom CSS means that the HTML/CSS structure of the app is no longer private API, and internal changes could break lots of plugins. Maybe there's a way we can get the best of both worlds, an API that allows us to experiment like so without strongly tying things to the underlying structure and styles. Or maybe it should just be very explicit using CSS means anything could break at any time, and it's on addon authors to navigate that.

I feel like there's a balance to be struck here. Exposing this as an API to the extension developers isn't even necessary at first - I would settle for a supported way of loading a custom stylesheet. Support for live reload (similar to how it works for settings.json) would go a long way, too.
The vscode-custom-css extension covers my use case (applying a css filter style to increase text contrast in difficult lighting conditions) but it feels like a bit of a hack; it requires admin rights, makes vscode complain about a corrupted installation and I expect it to fail after an update or two.

Similarly to the other commenters, I used vscode-custom-css to make small tweaks to the display of files in Explorer. Being able to customize the editor's visuals to your own needs would add an amazing layer of control on top of an already great editor.

I feel like there's a balance to be struck here. Exposing this as an API to the extension developers isn't even necessary at first

Indeed. I think the biggest use case here is for end-users to be able to make small tweaks without requiring the time investment of building their own theme or forking the one they're using. The possibility to have live-reload of custom CSS and a much more clean solution than what vscode-custom-css can offer would be great reasons to pursue this.


guide-ja/helper-* revised [ci skip]

Q
A

Is bugfix?
no

New feature?
no

Breaks BC?
no

Tests pass?
--

Fixed issues
--

Merged. Thanks!


feature: add rich container mode

1.Describe what this PR did
In pouch, we can start container in rich container mode by cli flag or API.
If by pouch client, we can set --rich flag to set rich container mode, and set --rich-mode to select which manner to init container, we support systemd, /sbin/init and dumb-init to init container.
If set dumb-init to init container, please install dumb-init in machines, https://github.com/Yelp/dumb-init/tree/v1.2.1
if set systemd or /sbin/init, we need to install systemd or /sbin/init in image.
Otherwise, we need to install runc modified by us to support it, referring to https://github.com/alibaba/runc/tree/v1.0.0-rc4-1.
2.Does this pull request fix one issue?
3.Describe how you did it
4.Describe how to verify it
5.Special notes for reviews

the fail test is flaky test, unrelated to this PR.


When support mbedtls?

I do some programs with uwebsockets, But I had used mbedtls library.So I want to use uWebSockets with it.Could you help me?

There is initial support for WolfSSL, which is pretty nice since you can get full TLS1.2 in 8kb per WebSocket compared to 12kb with OpenSSL. I want to transition focus more towards embedded and mbedtls is definitely on that path, but not added. There are initial code for it but nothing finished.


Can't use ctx.fields() from the book

Expected Behavior
The book says I can use ctx.fields() to get SelectionField I can use to navigate across the fields and subfields. I expected I could use this to automatically insert names of fields to query to the database.
Actual Behavior
error[E0599]: no method named `fields` found for reference `&ContextBase<'_, &Positioned<async_graphql::async_graphql_parser::types::Field>>` in the current scope
   --> src/main.rs:69:7
    |
69  |         ctx.fields();
    |             ^^^^^^ this is an associated function, not a method
    |
    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
note: the candidate is defined in the trait `async_graphql::ComplexObject`
   --> /home/mks/.cargo/registry/src/github.com-1ecc6299db9ec823/async-graphql-3.0.4/src/base.rs:241:5
    |
241 |     fn fields(registry: &mut registry::Registry) -> Vec<(String, registry::MetaField)>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: use associated function syntax instead
    |
69  |         ContextBase::<'_, &Positioned<async_graphql::async_graphql_parser::types::Field>>::fields();
    |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: disambiguate the associated function for the candidate
    |
69  |         async_graphql::ComplexObject::fields(&ctx);
    |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: there is an associated function with a similar name
    |
69  |         ctx.field();
    |             ~~~~~

For more information about this error, try `rustc --explain E0599`.
error: could not compile `shelving-api` due to previous error

Steps to Reproduce the Problem
use async_graphql::*;

struct Query;

#[Object]
impl Query {
	async fn smth(&self, ctx: &Context<'_>) -> Result<Option<String>> {
		ctx.fields();

		unimplemented!()
	}
}

Specifications

Version: 3.0.4

The document is incorrect, I have corrected it.
ctx.field()


Poker Hand Prediction

GSSOC contribution for Poker Hand Prediction

@aviralgarg05 do tag the corresponding issue.

@aviralgarg05 do tag the corresponding issue.

https://github.com/Niketkumardheeryan/ML-CaPsule/issues/602#issue-2296343057
here's the corresponding issue number #602

@aviralgarg05 there is an empty file "/data/test". Remove that.


cancelling any variable picker does not cancel launch

use this launch config:

{
	"version": "0.2.0",
	"configurations": [
		{
			"type": "node",
			"request": "launch",
			"name": "Launch Program",
			"program": "${workspaceRoot}/${input:programName}",
		}
	],
	"inputs": [
		{
			"id": "programName",
			"type": "promptString",
			"default": "test.js",
			"description": "The program name"
		}
	]
}

press F5 and then ESC

Observe:
Debug session starts and node-debug reports error.
Pressing ESC should not only cancel the picker but the debug sessions launch as well.

This is actually a regression in Insiders.
Cancelling command-based variables does not cancel the launch.
Run this launch config (which does not use the new input variables):
{
	"version": "0.2.0",
	"configurations": [
		{
			"type": "node",
			"request": "launch",
			"name": "Launch Program",
			"program": "${workspaceRoot}/${command:extension.pickNodeProcess}",
		}
	]
}

cancel the picker via ESC

Observe:
error

found issue #64550.


Chicago art evvent

So I added some small notes, but mostly rearranging existing things. The big question on this one is, where are the tests?


Update the default parameters of "set_bind_group()"

When setting bind groups, we often have code like this:
render_pass.set_bind_group(0, bind_group, [], 0, 99)
According to the WebGPU specification, the dynamicOffsets parameter has a default value of [], and the last two parameters can also be omitted, allowing for direct passing of an array of dynamic offsets.
See: https://www.w3.org/TR/webgpu/#gpubindingcommandsmixin-setbindgroup
When setting a bind group, you can simplify the code to:
render_pass.set_bind_group(0, bind_group)

I am not very familiar with the codegen utility yet. I just followed the steps outlined in the guide and I am not sure if there were any mistakes. 😅

The validation of the dynamic_offsets_data_start and dynamic_offsets_data_length parameters in the code can cause compatibility issues with some downstream code. Previously, we did not use these two parameters, which led to the presence of code like set_bind_group(0, bind_group, [], 0, 99).
However, if we strictly follow the specification, these parameters must be validated. I am not sure if this will have a significant impact. Perhaps we can continue not using the last two parameters, This is equivalent to only supporting another method signature with only three parameters in the WebGPU specification.