Workaround apisix-base cross-compilation issue

As we've noticed, build and push image action for apisix-base/* failed multiple times. https://github.com/api7/apisix-build-tools/actions/workflows/push-apisix-base-image.yml
Also retrying the failed job does not help. https://github.com/lujiajing1126/apisix-build-tools/actions/runs/4971639355
The current workaround is to build arm64 and amd64 images on separate platforms and merge the manifests in the subsequent job.
https://github.com/lujiajing1126/apisix-build-tools/blob/release/apisix-base-1.21.x/.github/workflows/push-apisix-base-image.yml
But since buildjet is used, I cannot contribute the workflow to the repo.

@Sn0rt Could you help this issue?


radius conversion of ellipse in CRTF

I forgot to add this, since at the moment the to_crtf method was not merged and the tests were passing.
Apologies.

Which test will this fix?  Or, does it need a test?

Actually, the master is failing now, aiming to fix that

the last two tests for crtf which are failing in the master, has been fixed now.
@keflavich this should be merged soon.


SVG examples in colorbuddy

The SVG examples (or screenshots) in the colorbuddy page using a lot of ram(more than 1GB) and the images don't stay loaded and disappear while scrolling. Some other projects use gif, if you can please switch to those.

which colorbuddy page?

Ah, nvm, I see what you're saying. I've moved the pictures to the wiki as well


LXD dockerfile equivalent.

Hi,
Do we have API that support something similar to dockerfile ? If possible, I try to avoid chef or ansible for container creation.
regards,
Stan Wong

LXD itself doesn't provide a Dockerfile equivalent as Dockerfile is really meant for application containers where you build a somewhat minimal, usually heavily modified image for a single application.
LXD instead behaves like a VM host.  They're meant to be long running and be updated and managed as a VM or real system would.
That being said, if you wanted to automate image customization, that's perfectly doable by invoking the "lxc exec" and "lxc file" on a cleanly created container, then publish the result as a new image with "lxc publish".
That or directly using the REST APIs that those tool use (see doc/rest-api.md).

They're meant to be long running and be updated and managed as a VM or real system would.
gross.

@tuapuikia, there are no direct equivalent of Dockerfile in LXC/LXD, but you can try mkosi. Here is a list of other tools: https://wiki.debian.org/SystemBuildTools


Integrate forbiddenapis + fix various forbiddenapi usage.

Motivation:
Checks Java byte code against a list of "forbidden" API signatures.
Modification:
Integrate forbiddenapis plugin and fix usages.
Result:
Future proof code.

@anistor let me know if you would prefer that I split this into multiple pull requests.

@anistor this one is ready to go too, if I work out an elegant solution to IPROTO-88 I will uncomment the custom forbidden API..

What is the purpose of the locale related fixes @johnou ? Do we have any failures?

@anistor no failures, could technically suppress the check for those if you prefer since there should be no problems with english only messages - let me know what you prefer.

let's close this.


Rumble video embed like what was added for Youtube

Rumble is a video hosting network that is gaining in popularity, not just because of its monetization feature  (i.e., payouts to creators) but  but also because it is the relatively common destination for those who suffered from having their Youtube account terminated (censorship).
This request is to add support for a Post for a link that is a Rumble video to include either the javascript embed or the iframe embed so that the video can be played within the SN post, similarly to how there is now Youtube embed, and Twitter embed support in SN (see Issue https://github.com/stackernews/stacker.news/issues/9).

There's also a similar, related, issue: #107 (for embed of Peertube)

This feature request was discussed on SN, Item #18804.

So unfortunately because of the way Rumbles revenue sharing works pasting the link in the top url and getting an embed is not possible like is done in Item #18804 but you can copy the embed link at the bottom of the video

https://rumble.com/embed/v17j3tt/?pub=3fid3f vs https://rumble.com/v1a59rb-rumble-basics-how-to-embed-your-video.html the first being what can be embedded.
I was able to create a branch that tests embeds for rumble and I would like to eventually embed all the sites but lets start with the POC first in

@benalleng was struggling to add the hack approach in #981 and I think decided to work on something else.

It had to do with this need for a reverse proxy here https://github.com/stackernews/stacker.news/pull/981#discussion_r1553620387. We had come to the conclusion that the embed link doesn't really have a ton of value if no-one ever uses it.

I think you can totally try to get it the rest of the way! This PR does include working support for peertube links and its forks ilike bitcoin.tv. If nothing else you can just split that code off and close #107

Thanks for the info. I'll try and take a look tomorrow.


[gtest] Add a patch to fix build error in GCC 11

Describe the pull request

What does your PR fix?
Fixes #15617.
To summarize, gtest 1.10.0 failed to compile in GCC 11, and no other versions will be released due to their policy (live in head, no release tags), so a patch is the only way to solve it.

Which triplets are supported/not supported? Have you updated the CI baseline?
No change.

Does your PR follow the maintainer guide?
Yes.

/azp run

/azp run

/azp run

/azp run

BTW, invalid command: x-add-version is reported by ./vcpkg x-add-version gtest.

BTW, invalid command: x-add-version is reported by ./vcpkg x-add-version gtest.

LGTM now, thanks for your PR @PragmaTwice.

LGTM now, thanks for your PR @PragmaTwice.


Add xcbeautify & xcodes to macOS toolset

Description
fastlane switched from xcpretty to xcbeautify a while ago. With the latest release (2.211.0), the default way of pinning Xcode versions changed from xcversion to xcodes. Could you please add the two homebrew packages xcbeautify & xcodes to your Packer config?
xcbeautify:

Size: 2.8MB
Installation time: brew install xcbeautify  1.65s user 1.43s system 71% cpu 4.293 total

xcodes:

Size: 13.8MB
Installation time: brew install xcodes  1.79s user 1.55s system 58% cpu 5.755 total

Related issue:
Closes #6657
Closes #6658
Check list

[x] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

Fixed the alphabetical sorting as well 😄


[NTR] Ascaris lumbricoides infectious disease

Preferred term label:
ascaris lumbricoides infectious disease
Synonyms
infection due to ascaris lumbricoides
dbxref: MONDO:patterns/infectious_disease_by_agent
ascaris lumbricoides infection
dbxref: MONDO:patterns/infectious_disease_by_agent
Definition (free text, please give PubMed ID, if applicable, in format PMID:#######)
A disease caused by infection with ascaris lumbricoides.
dbxref: MONDO:patterns/infectious_disease_by_agent
Parent term (use OLS, or your favorite ontology browser)
MONDO_0005550 'infectious disease'
Logical definition:
'infectious disease' and ('disease has infectious agent' some ascaris lumbricoides)
Related to https://github.com/monarch-initiative/mondo/issues/4882

this term already exists: MONDO:0005654


Momentum LOs

The Momentum LOs seem to be lacking when it comes to collisions. This question is an example of one that should have more relevant LOs : https://github.com/open-resources/instructor_physics_bank/pull/134

This one too! https://github.com/open-resources/instructor_physics_bank/pull/135

"Use conservation of momentum and conservation of mechanical energy to solve an elastic collision problem." , "Use conservation of momentum to solve an elastic collision problem."

Ya there aren't that many LOs for momentum I agree. @maya-patel for sure add those 2 suggested LOs and I will try and think of a few more to fill in the gaps

ok added those 2 LOs and a catch all "Use conservation of momentum to solve a problem." let me know if any other questions fall through the cracks


Cost savings: Automatically shut off the database

Vulnerability defender uses a cloud database that loads vulnerabilities from the NVD.

Vulnerability Defender has been refactored to use NoSQL database instead of cloud database


Completely Remove notion of MFAEnabled

What kind of change does this PR introduce?
Completely remove notion of MFAEnabled from the code, model and SQL
What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

There shouldn't be anything major here style wise -- going to merge first since this is mostly deletions.
Will reintroduce the new notion of MFAEnabled (e.g. user has one verified factor associated to account) in a follow up PR later in day.
Feel free to comment if anything should be immediately changed/improved though.


"Lock" function for Teams, Characters, Loadouts and Builds

Much like GO has adopted the "Lock" functionality for Artifacts and Weapons from Genshin itself that prevents a user accidentally deleting an Artifact or Weapon.
Why not introduce this same functionality to all aspects of GO? This could potentially allow the addition of a Delete button directly on Character and Team cards because we're also providing the option to prevent against destructive deletion in a means that should not require any explanation to the user as both GO and Genshin already utilize this exact UI.

The lock data from artifacts and weapons are data we can scan using scanners, however, loadouts and teams do not exist in game. So the data source is different, since user have to intentionally generate data, wheras art/weapon lock state is a data from in-game they can leverage.
The major benefit of the "lock" feature, in both genshin and GO, seem to be protection from "mass removal". However, since loadout and teams have more nuanced data, there are no mass removal, nor do i intend for that to exist in the future. Lastly, for a user to know whether a team/loadout is worth locking, they'd be in the detail UI anyways, which is next to where the delete button, so I am not sure what this request will do other than just add more clutter to the exist UI.


Missing DbContext

Hi,
How to configure a DbContext using this library?
Thank you!

Hello,
The concept of DbContext does not exist with MongoDb, since the DbContext is EF/SQL specfic.
In the docs available here, you can created a MongoDbContext:
https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore/blob/master/README.md
Configuration
To add the stores, you can use the IdentityBuilder extension like so:
services.AddIdentity<ApplicationUser, ApplicationRole>()
	.AddMongoDbStores<ApplicationUser, ApplicationRole, Guid>
	(
		"mongodb://localhost:27017",
		"MongoDbTests"
	)
	.AddDefaultTokenProviders();

It is also possible to share a common IMongoDbContext across your services (requires https://www.nuget.org/packages/MongoDbGenericRepository/):
var mongoDbContext = new MongoDbContext("mongodb://localhost:27017", "MongoDbTests");
services.AddIdentity<ApplicationUser, ApplicationRole>()
	.AddMongoDbStores<IMongoDbContext>(mongoDbContext)
	.AddDefaultTokenProviders();
// Use the mongoDbContext for other things.

You can also use the more explicit type declaration:
var mongoDbContext = new MongoDbContext("mongodb://localhost:27017", "MongoDbTests");
services.AddIdentity<ApplicationUser, ApplicationRole>()
	.AddMongoDbStores<ApplicationUser, ApplicationRole, Guid>(mongoDbContext)
	.AddDefaultTokenProviders();
// Use the mongoDbContext for other things.

Alternatively a full configuration can be done by populating a MongoDbIdentityConfiguration object, which can have an IdentityOptionsAction property set to an action you want to perform against the IdentityOptions (Action<IdentityOptions>).
The MongoDbSettings object is used to set MongoDb Settings using the ConnectionString and the DatabaseName properties.
The MongoDb connection is managed using the mongodb-generic-repository, where a repository inheriting IBaseMongoRepository is registered as a singleton. Look at the ServiceCollectionExtension.cs file for more details.

Hi,
Thanks for your full answer, I already do that but when I build I have a missing DbContext error, it's the reason why I throw this issue!
Thank you

Are you using Identity 2.0 ? This package does not support Identity 3.0.
Also, make sure that you do not have an EntityFramework packages doing Identity related work.
The stores used must only be the MongoDb ones, make sure you do not have any UserStore needing a DbContext.

I use net core 3 ^^

yeah that might be the reason why it's not working, Identity 3.0 is almost a full rewrite, because they integrated the Identity Server package, the data access layer is totally different. This package does not support it yet.

Oh I see, do you plan to migrate to net core 3?

yeah but it's not a 5 minute job 😄


Add archive node integration test to CI

Run archive node test, upload SQL file and blocks files as artifacts
Note: running this test requires an image for the archive node, besides the daemon node

We're running the replayer in integration tests, which verifies that blocks are being added to the archive db.


is your code supports for other reid datasets ?

In general, our model is compatible with all skeleton based datasets, cause we only need 3D coordinates from them. However, the original data format of different datatsets varies, so preprocessing them to a fixed format is necessary. We are extending our preprocess code to other ReID datasets, and more experimental results will be released in the future.


Transitive lemmas are not derived

Steps to Reproduce

Save the following in a file, say file.slk. Note that the three lemmas "entail1", "entail2", and "entail3" correspond respectively to the entailments (1), (2), and (3).data ch_star{
    int val;
}.

pred arr_seg<n>     == self::ch_star<_> & n=1
                    or self::ch_star<_> * q::arr_seg<n-1> & q=self+1 & n>1
  inv n>=1.

pred int_block<v>   == self::ch_star<a> * x::ch_star<b> * y::ch_star<c> * z::ch_star<d>
                     & x=self+1 & y=x+1 & z=y+1 & v=a+256*b+65536*c+16777216*d.

pred int_arr_seg<n> == self::int_block<_> & n=1
                    or self::int_block<_> * q::int_arr_seg<n-1> & q=self+4 & n>1
  inv n>=1.

/*
 * (1)
 */
checkentail x::arr_seg<4> |- x::int_block<_>.
print residue.
expect Valid.
lemma "entail1" self::arr_seg<4> <-> self::int_block<_>.

/*
 * (2)
 */
checkentail x::int_block<_> |- x::int_arr_seg<1>.
print residue.
expect Valid.
lemma "entail2" self::int_block<_> <-> self::int_arr_seg<1>.

/*
 * (3)
 */
lemma "entail3" self::arr_seg<4> <-> self::int_arr_seg<1>.
checkentail x::arr_seg<4> |- x::int_arr_seg<1>.
print residue.
expect Valid.

Run sleek on file.slk.
Comment out lemma "entail3" self::arr_seg<4> <-> self::int_arr_seg<1>., then run sleek on file.slk again.

Expected Behavior
As expected, on the first run, lemma "entail3" self::arr_seg<4> <-> self::int_arr_seg<1>. makes entailment (3) valid.
However, on the second run, without lemma "entail3" self::arr_seg<4> <-> self::int_arr_seg<1>., entailment (3) is no longer valid.
Actual Behavior
On the second run, although the two lemmas lemma "entail1" self::arr_seg<4> <-> self::int_block<_>. and lemma "entail2" self::int_block<_> <-> self::int_arr_seg<1>. are present, and the consequent of "entail1" is the same as the antecedent of "entail2" (i.e. self::int_block<_>), making their transitive combination equivalent to "entail3", entailment (3) is still not valid.

I've traced the control flow, starting from the literal Lemma in the search path output by sleek: "Lemma " -> M_lemma -> trans_one_coercion -> coercion_decl -> process_list_lemma.
When I -dre=process_list_lemma, I see the lemmas as represented internally in sleek. The only difference between the consequent of entail1 and the antecedent of entail2 is self::int_block{}<Anon_17> and self::int_block{}<Anon_19>, so this is an insignificant difference.


Update c2pa-node to 0.5.20 and support Node 20

I would also like to add the uploaded_assets dir to the repo because the script crashes if it doesn't exist.  However, because of .gitignore I can't add the empty dir.  Is there an easy way to do that?

I think you have two options here:

modify the script to create the directory
update the gitignore to something like the following:

uploaded_assets/*
!.gitkeep

basically - ignore all files inside the uploaded_assets directory except for any file named .gitkeep. Then drop a .gitkeep file in the directory.

OK made your suggested changes.  S/be good to go.


DLL load failed after compiling - possibly dlib.cp37-win_amd64.pyd

I am building a software that uses the dlib face detector as well as facial landmarks.
The software works fine on my PC, as well as 5 other virtual and physical machines. However, execution fails on one other system where I tested it.
I compiled with Pyinstaller and created a Windows installer with Inno Setup.
Current Behavior
Importing of dlib fails on one tested system:
# dlib not found in PYZ
Traceback (most recent call last):
  File "BlinkGuard\blinkguard.py", line 15, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "C:\Users\User\Anaconda3\envs\BlinkGuard_packaging_v3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
  File "BlinkGuard\model.py", line 11, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 583, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1043, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: Eine DLL-Initialisierungsroutine ist fehlgeschlagen.

Expected Behavior
This is the console output on my own system, were it works fine:
# dlib not found in PYZ
# extension module 'dlib' loaded from 'C:\\Users\\User\\AppData\\Local\\Programs\\BlinkGuard\\dlib.cp37-win_amd64.pyd'
# extension module 'dlib' executed from 'C:\\Users\\User\\AppData\\Local\\Programs\\BlinkGuard\\dlib.cp37-win_amd64.pyd'
import 'dlib' # <_frozen_importlib_external.ExtensionFileLoader object at 0x00000215B157CB08>

Steps to Reproduce
I am not sure, what is causing the error. My best guess is, building on a newer PC, executing on an older one. I assume it has something to do with the system architecture. It stands out to me that its a Pentium CPU where the execution fails.
CPU used to building: Intel(R) Core(TM) i7-8750H CPU
CPU of the system were it fails to execute: Intel(R) Pentium(R) CPU 4415U
I assume the file dlib.cp37-win_amd64.pyd does not work correctly for the third party system.

Version: dlib=19.19
Where did you get dlib: conda install -c conda-forge
Platform: Win 10 64bit (both built and tested on)
Compiler: pyinstaller 3.6

My best guess is, I need to add a different file than dlib.cp37-win_amd64.pyd to make it work on the other system. However, Googling for hours has not told me if I am right, which dll to use and how to make sure this error does not happen on additional systems in the future.

It's probably being built to use SSE and/or AVX instructions, which are
then not available on the old system.  When dlib builds it prints out
messages saying it's using these instructions or not.  The default rule is
to use them if they are available on the system doing the build.  You can
disable these by using --no, like this:
python setup.py build --no USE_AVX_INSTRUCTIONS --no USE_SSE2_instructions
--no USE_SSE4_INSTRUCTIONS
On Mon, Feb 10, 2020 at 1:26 PM TropicalTsunami<EMAIL_ADDRESS>wrote:

I am building a software that uses the dlib face detector as well as
facial landmarks.
The software works fine on my PC, as well as 5 other virtual and physical
machines. However, execution fails on one other system where I tested it.
I compiled with Pyinstaller and created a Windows installer with Inno
Setup.
Current Behavior
Importing of dlib fails on one tested system:
dlib not found in PYZ
Traceback (most recent call last):
File "BlinkGuard\blinkguard.py", line 15, in
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "C:\Users\User\Anaconda3\envs\BlinkGuard_packaging_v3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
File "BlinkGuard\model.py", line 11, in
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 670, in _load_unlocked
File "", line 583, in module_from_spec
File "", line 1043, in create_module
File "", line 219, in _call_with_frames_removed
ImportError: DLL load failed: Eine DLL-Initialisierungsroutine ist fehlgeschlagen.
Expected Behavior
This is the console output on my own system, were it works fine:
dlib not found in PYZ
extension module 'dlib' loaded from 'C:\Users\User\AppData\Local\Programs\BlinkGuard\dlib.cp37-win_amd64.pyd'
extension module 'dlib' executed from 'C:\Users\User\AppData\Local\Programs\BlinkGuard\dlib.cp37-win_amd64.pyd'
import 'dlib' # <_frozen_importlib_external.ExtensionFileLoader object at 0x00000215B157CB08>
Steps to Reproduce
I am not sure, what is causing the error. My best guess is, building on a
newer PC, executing on an older one. I assume it has something to do with
the system architecture. It stands out to me that its a Pentium CPU where
the execution fails.
CPU used to building: Intel(R) Core(TM) i7-8750H CPU
CPU of the system were it fails to execute: Intel(R) Pentium(R) CPU 4415U
I assume the file dlib.cp37-win_amd64.pyd does not work correctly for the
third party system.

Version: dlib=19.19
Where did you get dlib: conda install -c conda-forge
Platform: Win 10 64bit (both built and tested on)
Compiler: pyinstaller 3.6

My best guess is, I need to add a different file than
dlib.cp37-win_amd64.pyd to make it work on the other system. However,
Googling for hours has not told me if I am right, which dll to use and how
to make sure this error does not happen on additional systems in the future.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/davisking/dlib/issues/1996?email_source=notifications&email_token=ABPYFR5NQOXQT5MR4DGU773RCGL3VA5CNFSM4KSTG2W2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IMKZPXA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPYFR3PTMBHKGROCP7JMADRCGL3VANCNFSM4KSTG2WQ
.

Thanks! I can confirm the old CPU is not supporting AVX (but SSE is supported). It is a Pentium CPU, apparently, even newer models lack AVX support. They would be painfully slow at face detection anyways, so I will just not support them.
Is it possible to check for an existing dlib build if SSE and/or AVX are used? I did not compile dlib myself but simply installed it using conda install dlib

Yes, these things are exposed in python as names like dlib.USE_AVX_INSTRUCTIONS.

ok thanks! found it.


Implement asynchronous socket detachment for reactors and proactors

This PR implements asynchronous socket detachment mechanism for existing reactor and proactor drivers.
ntci::Reactor is extended with new methods, existing detachment methods are marked deprecated:
    /// Stop monitoring the specified 'socket'. Return the error.
    BSLS_DEPRECATE_FEATURE("ntci",
                           "socket-detachment",
                           "use callback version instead")
    virtual ntsa::Error detachSocket(
        const bsl::shared_ptr<ntci::ReactorSocket>& socket) = 0;

    /// Stop monitoring the specified 'socket'. Invoke the specified 'callback'
    /// when the socket is detached. Return the error.
    virtual ntsa::Error detachSocket(
        const bsl::shared_ptr<ntci::ReactorSocket>& socket,
        const ntci::SocketDetachedCallback&         callback);

    /// Stop monitoring the specified socket 'handle'. Return the error.
    BSLS_DEPRECATE_FEATURE("ntci",
                           "socket-detachment",
                           "use callback version instead")
    virtual ntsa::Error detachSocket(ntsa::Handle handle) = 0;

    /// Stop monitoring the specified socket 'handle'. Invoke the specified
    /// 'callback' when the socket is detached. Return the error.
    virtual ntsa::Error detachSocket(ntsa::Handle handle,
                                     const ntci::SocketDetachedCallback& callback);

ntci::Proactor is updated in a similar way:
    /// Detach the specified 'socket' from the proactor. Return the error.
    BSLS_DEPRECATE_FEATURE("ntci",
                           "socket-detachment",
                           "use detachSocketAsync instead")
    virtual ntsa::Error detachSocket(
        const bsl::shared_ptr<ntci::ProactorSocket>& socket) = 0;

    /// Detach the specified 'socket' from the proactor. The specified 'socket'
    /// will be notified when it's detached. Return the error.
    virtual ntsa::Error detachSocketAsync(
        const bsl::shared_ptr<ntci::ProactorSocket>& socket) = 0;

Socket autoAttach/Detach funtionality may conflict when it is used together with new asynchronous detachment mechanism.
All existing socket implementations are using this new mechanism.

Rename ntcs::RegistryEntry::addOngoingProcess() to ntcs::RegistryEntry::incrementProcessCounter() to lexically pair with ntcs::RegistryEntry::decrementProcessCounter().

Done

Refactor conditions expressed as (entry->processCounter() == 0) by adding a new function, ntcs::RegistryEntry::isProcessing() const { return (this->processCounter() == 0); }.

Done, in a way that ntcs::RegistryEntry::isProcessing() const { return (this->processCounter() != 0); }.

Combine ntcs::RegistryEntry::askForDetachmentAnnouncementPermission() with ntcs::RegistryEntry::announceDetached() (which currently returns void) so that ntcs::RegistryEntry::announceDetached() returns bool and effectively performs ntcs::RegistryEntry::askForDetachmentAnnouncementPermission() inside its body. This will make announceDetached() look and behave similar to announceReadable(), announceWritable(), etc.

Done

Remove the functor parameter to ntcs::Registry::removeAndGetReadyToDetach() and simply require the caller to call whatever this is functor is bound to (e.g. ntco::Epoll::removeDetached) when this function returns. I think this enhances the readability of the detachment process by removing this indirection, which isn't currently used for any purpose.

functor was moved back under a lock, where it should be.

The ntcs::RegistryEntry::announceDetached() function must protect its invocation and clearing of the d_detachCallback data member, similar to, e.g. ntcs::RegistryEntry::announceWritable(): Copy d_detachCallback to a local variable under the acquisition of ntcs::RegistryEntry::d_lock, release the lock, then invoke the callback on the copy.

Done.


Creating a new network having extra layers

In order to create a new network having extra layers, the PE and SIMD counts for each layer is required to be provided in the script [NETWORK]-gen-weights-[WxAy].py . How do we decide the values of these parameters?

Hi,
if you define properly the network topology (for example from line 43 to 47 in this file), the finnthesizer used when exporting the network parameters calculates the number of operations per layer and estimates the latency per each layer (Ext Latency in the config.h).
You should select the parallelism values (SIMD and PE) in order to have approximately the same estimated latency for each layer in order to have a balanced dataflow.


this is a test

this is the comment

closing this issue, since this was created as a demo during a meeting


fix(Pluggin/Hosting): allocate menu plugin content next to its list item

Close #842
Regression tests are missing here, sorry. In open-scd we do not have a regression test that would allow testing this specific situation. We should take it into account in open-scd-core.
The solution was to make menu plugin content the next sibling of it, list-item not its child. Doing so, a click on the content is not interpreted as a click in the list-item that triggers the run method.

I think we have to still do something here @ca-d. We move the web-component of the menu type plugin out of the list item, but they are still being in the list and therefore the @action triggers when clicking in a list item within the plugin.


Sync the widgets state with the url

When refreshing window, the helper state should be synced with the url #17, thus all widgets should also be synced with the helper state.
The goal is to have back/next/refresh/copy paste url working

Duplicate of #17.


[BUG]: maps.json is missing

Describe the bug
The url https://maps.geoguess.games/maps.json throws a 404 and that stops it from loading all the premade maps on the homepage.
To Reproduce
Open the homepage. Including the demo site https://demo.geoguess.games
Expected behavior
You see a list of premade maps to pick from
Describe alternatives you've considered
No response
Screenshots
No response
What is your OS ?
Linux
What browsers are you seeing the problem on?
Chrome
Version
master
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Fix, didn't understand why Github remove the custom domain configuration for the maps repository (https://github.com/GeoGuess/GeoGuess-Maps/settings/pages)
Thx for the report.


Upload FIN token

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

[ ] Filename in the lowercase format
[ ] Image format: png
[ ] Image size: 256 by 256 px

@Kishanjvaghela
Also, you can use these graphics to say that your ERC20 token fully compatible with Trust Wallet (https://trustwalletapp.com/logo-assets). Tokens will show up automatically once the user receives them.
Feel free to share this on social media and tag Trust Wallet:

Twitter: @trustwalletapp

Facebook: @trustwalletapp


Make locale files available with bower

As I described here, getting an i18n d3 involves copying a locale file in my project. I'd rather have this file in bower_components/d3. I did not reuse the file exactly as is, I removed the import "locale"; line (not sure what it does).

Why not have the locales imported in the source code, so it can be easily accessible with d3.locale.nl_NL for instance? I know it will bring a few more lines in the code, but it's not that much compared to the size of the library.

Sorry for the late reply, I was on holiday. I now locale files are not big, but I am not the maintainer of that, therefore it should not managed in my VCS, but by bower.

In 4.0 the default build will include all available locales.

Closing as fixed in D3 4.0.

Thanks!


orphaned canvas layout on QtViewer

🐛 Bug
Was just writing up a quick response to this image.sc question, and found this segment of code troublesome:
https://github.com/napari/napari/blob/149bd8cd88f44b0de415186f47c7bc3a015e0e01/napari/_qt/qt_viewer.py#L153-L159
basically, in the QtViewer, we construct a widget and a layout, but we then let it get garbage collected... so it's impossible to get access to the layout that holds the main canvas without jumping through hoops (made more difficult because that temporary widget doesn't have a parent).  Would it be ok to save that widget?

Yes, this is fine - could make a dedicated fix PR or do it as part of #855 and @justinelarsen's work on https://github.com/napari/napari/issues/1132#issuecomment-622162235


fix(controller): Check main container before terminate it for resource template

Caught a bug while debugging issues with https://github.com/argoproj/argo-workflows/pull/6014.
For resource templates, main container is used as a wait container. We need to check its termination status before queue the pod for cleanup. Otherwise, when cleanUpPod is called during node assessment/reconciliation, the main container would have been killed by clean-up and then wf is marked as failed even though the pod is succeeded (if wf status update happens a little late than pod the cleanup, which explains why builds in https://github.com/argoproj/argo-workflows/pull/6014 only fail occasionally).
Example controller log from PNS test-executor in https://github.com/argoproj/argo-workflows/runs/2676799345:
 controller | time="2021-05-26T16:25:15.758Z" level=info msg="Processing workflow" namespace=argo workflow=k8s-resource-tmpl-with-wf-qvl62
 controller | time="2021-05-26T16:25:15.760Z" level=info msg="Get configmaps 200"
 controller | time="2021-05-26T16:25:15.760Z" level=info msg="Updating node k8s-resource-tmpl-with-wf-qvl62 status Pending -> Running" namespace=argo workflow=k8s-resource-tmpl-with-wf-qvl62
 controller | time="2021-05-26T16:25:15.766Z" level=info msg="cleaning up pod" action=terminateContainers key=argo/k8s-resource-tmpl-with-wf-qvl62/terminateContainers
 controller | time="2021-05-26T16:25:15.766Z" level=info msg="https://<IP_ADDRESS>:6443/api/v1/namespaces/argo/pods/k8s-resource-tmpl-with-wf-qvl62/exec?command=%2Fbin%2Fsh&command=-c&command=kill+-s15+--+-1&container=main&stderr=true&stdout=true&tty=false"
 controller | time="2021-05-26T16:25:15.770Z" level=info msg="Update workflows 200"
 controller | time="2021-05-26T16:25:15.770Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1092 workflow=k8s-resource-tmpl-with-wf-qvl62
 controller | time="2021-05-26T16:25:15.774Z" level=info msg="Create events 201"
 controller | time="2021-05-26T16:25:15.785Z" level=info msg="Create pods/exec 101"
 controller | time="2021-05-26T16:25:16.772Z" level=info msg="Processing workflow" namespace=argo workflow=k8s-resource-tmpl-with-wf-qvl62
 controller | time="2021-05-26T16:25:16.774Z" level=info msg="Get configmaps 200"
 controller | time="2021-05-26T16:25:16.774Z" level=info msg="Pod failed: Error (exit code 143)" displayName=k8s-resource-tmpl-with-wf-qvl62 namespace=argo pod=k8s-resource-tmpl-with-wf-qvl62 templateName=main workflow=k8s-resource-tmpl-with-wf-qvl62

Signed-off-by: terrytangyuan<EMAIL_ADDRESS>Checklist:

[x] My organization is added to USERS.md.

Tips:

Your PR needs to pass the required checks before it can be approved. If the check is not required (e.g. E2E tests) it does not need to pass
Sign-off your commits to pass the DCO check: git commit --signoff.
Run make pre-commit -B to fix codegen or lint problems.
Say how how you tested your changes. If you changed the UI, attach screenshots.

@alexec I tested that this change won't break master branch's build by https://github.com/argoproj/argo-workflows/pull/6014/commits/b9bee00326ce66d5c0bb2f95780535723ebc68ce in the other PR. Is that sufficient testing?


Question: can onRest be called after the component unmounts?

Nope.
raf is cancelled and it is the only place where onRest is invoked. At least in Motion.

  startAnimationIfNecessary(): void {
    this.animationID = defaultRaf((timestamp) => {
      if (shouldStopAnimation(/*...*/)) {
        if (this.wasAnimating && this.props.onRest) {
          this.props.onRest();
        }
        /*...*/
      }
    }
  };

  componentWillUnmount() {
      /*...*/
      defaultRaf.cancel(this.animationID);
  }

@nkbt thanks.  Is there a better place to ask questions like this?

I reckon here is OK. Or reactiflux channel in discord.
I don't even have an account on stack overflow 🤷♂


Miscellaneous updates

Refactored to use dcicutils.portal_utils.Portal.
Many minor-ish changes to submit-metadata-bundle, resume-uploads, upload-item-data.
E.g. sanity checking file paths and uuids, providing more info/feedback to user,
allowing accession ID or accession ID based file name, show file sizes, etc.
Subsume upload-item-data functionality into resume-uploads for convenience.
Starting (readthedocs) documentation updates.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

380 of 380 (100.0%)  changed or added relevant lines in 13 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.718%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2833

Relevant Lines:
2841

💛  - Coveralls


signature verification failed

I am the receiver of this transaction and I want to spend 0.1 atom from this account. but when I run the following code I get ""signature verification failed; verify correct account sequence and chain-id" error.
curl -X POST "https://lcd.nylira.net/txs" -H "accept: application/json" -H "Content-Type: application/json" -d "{"tx":{"msg":[{"type":"cosmos-sdk/MsgSend","value":{"from_address":"cosmos15wa26mgeuxvtfpnqfle98wupdeeyxzdu7lff9a","to_address":"cosmos15wa26mgeuxvtfpnqfle98wupdeeyxzdu7lff9a","amount":[{"denom":"uatom","amount":"100000"}]}}],"fee":{"gas":"70000","amount":[{"denom":"uatom","amount":"1000"}]},"memo":"","signatures":[{"signature":"8KyuGPORRF5Eakxw5URy9BM0CjDM72pw25PuhXVBGCcZCvxZ/UIsssNR+OO9DH9JUDp89yX/RUMFvbES1MGwhA==","pub_key":{"type":"tendermint/PubKeySecp256k1","value":"A3ouexs2TMGjefw2zBWKNnwSZJgFsMYmf5OHkfwdWTWX"},"account_number":"11335","sequence":"0"}]},"mode":"sync"}"
since I'm sure that my signature is true,the chain-id should be wrong. I can't find the right chain-id. can you help me please?

Hi,
your the account number you're using is incorrect
foo@bar:~$ curl -X GET "https://lcd.nylira.net/auth/accounts/cosmos15wa26mgeuxvtfpnqfle98wupdeeyxzdu7lff9a" -H  "accept: application/json"
{"height":"4038809","result":{"type":"cosmos-sdk/Account","value":{"address":"cosmos15wa26mgeuxvtfpnqfle98wupdeeyxzdu7lff9a","coins":[{"denom":"uatom","amount":"500000"}],"public_key":null,"account_number":"101243","sequence":"0"}}}

Try using 101243


update install instruction

This one is being used in another npm package from the original

By the way, trying to use this library I'm receiving this error:

Have any idea why?


Resources

Tracking progress on resources.
If you wish to implement any of those items leave a comment :)

[x] LED
[ ] Fonts

Since fonts are attributes (working) and the purpose of this item is to have a trait for fonteable controls, it's not a priority right now.

[x] Images
[ ] Keyboard
[ ] Menus
[ ] Handle Names
[x] IupSetHandle
[x] IupGetHandle
[x] IupGetName
[ ] IupGetAllNames
[ ] IupGetAllDialogs
[ ] String Names
[ ] IupSetLanguage
[ ] IupGetLanguage
[ ] IupSetLanguageString
[ ] IupGetLanguageString
[ ] IupSetLanguagePack
[ ] IupClipboard
[ ] IupTimer
[ ] IupUser
[ ] IupConfig
[ ] IupHelp

Picking Timer and Clipboard


Memory Leak while WebSocketServerHandshakeException or Channel failed

when there is WebSocketServerHandshakeException, such as "WebSocketServerHandshakeException: not a WebSocket request: a |Connection| header must includes a token 'Upgrade'" (missing Upgrade header in httprequest), there would be in memory leak in uuid2clients

@HashZhang i have sample problem


Chat icon reads 1, even when no new messages/matches are present

The chat icon indicates (1) as in 1 new message/match, even when all messages have been read and no new messages are present.

Published an update which I think should fix this, let me know if you still see anything weird

Ayy, good stuff Ben! Seems fine now! :'))


Webcmdlets using -InFile parameter locks file

Currently when you upload a file via Invoke-Restmethod or Invoke-Webrequest and use the -InFile parameter, it puts a lock on the file, so no other process can read it.  It does not set seem to set the FileShare.Read flag
(https://github.com/PowerShell/PowerShell/blob/f5a7d79175248e1efae1232732d361f0ef7322a4/src/Microsoft.PowerShell.Commands.Utility/commands/utility/WebCmdlet/Common/WebRequestPSCmdlet.Common.cs#L1221)
I am trying to parallelize to upload of single files to multiple locations.
Steps to reproduce
Run below command twice at the same time, either in multiple PS hosts, via jobs or runspaces.
Invoke-RestMethod -uri "https://artifactory/artifactory/my-tools/testfile.iso" -Method Put -InFile "C:\temp\testfile.iso" -Credential $creds -ContentType "multipart/form-data"

Expected behavior
I would not expect this to error since it is a read operation, I would suggest that the file is opened with FileShare.Read Flag, so you can have multiple processes access the file at the same time.

Actual behavior
When you run the commands simultaneously, you will get an The process cannot access the file 'C:\temp\testfile.iso' because it is being used by another process. error

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0-rc.1
PSEdition                      Core
GitCommitId                    6.1.0-rc.1
OS                             Microsoft Windows 10.0.17738
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

/cc @markekraus Please look the Issue.

Had some time, so I built pwsh with these simple changes and now I can upload the file to multiple locations at the same time.
SetRequestContent(request, new FileStream(InFile, FileMode.Open, FileAccess.Read, FileShare.Read));

https://github.com/PowerShell/PowerShell/pull/7676


Release version 0.1.0

This will be the first release.

tag 0.1.0
use the output of git describe --tags as version identifier
gui: Adjust the info screen so that it can display both short and long versions in a nice way

A tagged build will have a short and clean version string, e.g. 0.1.0, whereas others will get the tag followed by a number that signifies the number of commits since the last tag and the short git hash, e.g. 0.1.0-3-cba54321.

@sdorre, this PR-generated CI build produced an empty version string because of this:
Run echo "::set-output name=fw_ver::$(git describe --tags)"
fatal: No names found, cannot describe anything

When I build it locally, however, it is shown. Do you think this will resolve itself in the merge build or have I made an error somewhere?

The problem is worse than I thought: Github Actions' fw build strings have never corresponded with the actual git hash...

I will merge this and then try to release version 0.1.0-rc1 by pushing directly to master.


Missing License

Can you please upload a license file that explains what license this code uses?

Thank you for reporting this @webdevcody 👍🏼  This is now fixed and available here https://github.com/datopian/r2-bucket-uploader?tab=MIT-1-ov-file#readme


Releases when new blog posts are added

Hi, I recently discovered Vale and have read all the blog posts and documentation with great interest since.
I'm really excited to see where you're able to take this project in the future and will follow it's development avidly.
Is there any chance of doing releases in this repo whenever a new blog post is published?
That way I can subscribe to releases and get notified.
Thanks. 🙂

Hey, thank you for the kind words! It means a lot to hear that Vale is exciting 🙂
I had no idea people could subscribe to releases, that's pretty cool. Do you think a lot of folks do that? Is that what "Watch" means for github repos?


Updated the inner loop counter

The inner loop counter variable at line 205 is updated to " j " .

Can one of the admins verify this patch?

Sure
On Tue, 26 Sep 2023, 23:28 ethzasl-jenkins, @.***>
wrote:

Can one of the admins verify this patch?
—
Reply to this email directly, view it on GitHub
https://github.com/ethz-asl/libpointmatcher/pull/521#issuecomment-1736021780,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZT6DONNHBTHKGI3RCLPSHDX4MJSVANCNFSM6AAAAAA5IDUS7M
.
You are receiving this because you authored the thread.Message ID:
@.***>


Expose process group backend choice in Fabric CLI

Description & Motivation
Currently, the backend for the process group can be chosen via the Strategy, for example:
fabric = Fabric(strategy=DDPStrategy(process_group_backend="gloo"), ...)

However, this hardcoded setting prevents one to specify a different strategy from the CLI:
# fails, not allowed
lightning run model --strategy deepspeed train.py

We don't currently allow the CLI to overwrite anything that is not the default in the Fabric constructor.
This is a request from an early Fabric tester.
Pitch
Expose the process group backend as a CLI argument:
lightning run model --strategy ddp --pg_backend gloo train.py

Pro:

addresses above use case
Con:
Not compatible with all strategies. Connector would get more complex and error prone for validation

Alternatives
Alternative 1:
Could also expose it as explicit strategy shorthand names:
lightning run model --strategy ddp train.py
lightning run model --strategy ddp_gloo train.py
lightning run model --strategy ddp_nccl train.py

Pro:

No compatibility testing required, as names are explicit
Con:
Number of names increases quadratically

Alternative 2:
Expose it through an environment variable as we have done before (but removed it because it was unused and undocumented)
Additional context
No response
cc @borda @carmocca @justusschock @awaelchli

I would wait with this, until we see more use cases where this surfaces as an inconvenience/need.

If we choose this over a package that supports instantiating classes (hydra, jsonargparse, ...) then I would prefer "Alternative 1"


Precision not maintained on division

I noticed some unexpected behavior when dividing numbers. In the following example I have set the precision to 10 decimal places. I expected this to be the number of significant digits, but apparently this means the number of significant digits behind the decimal point.
In the following example I would expect each of the results to be in the format 1.666666667e[+-]EXP: each time having 10 digits, and the value of EXP being equal to the exponent of the divided value. Instead, the number of digits varies depending on the values exponent.
BigNumber.config(10);

console.log(new BigNumber('5e-15').div('3').toExponential()); // "0e+0"
console.log(new BigNumber('5e-10').div('3').toExponential()); // "2e-10"
console.log(new BigNumber('5e-5').div('3').toExponential());  // "1.66667e-5"
console.log(new BigNumber('5e+0').div('3').toExponential());  // "1.6666666667e+0"
console.log(new BigNumber('5e+5').div('3').toExponential());  // "1.666666666666667e+5"
console.log(new BigNumber('5e+10').div('3').toExponential()); // "1.66666666666666666667e+10"

Is this intended behavior? If so, is there any workaround so I can actually do divisions on small values without loosing precision?

@MikeMcl does this explain why new BigNumber('1.1').dividedBy('2').times(new BigNumber(2).dividedBy('1.1')).toString() returns 1.000000000000000000001 and not 1?

2 / 1.1 has a non-terminating decimal expansion (an infinite number of digits after the decimal point), which means that the result of BigNumber(2).dividedBy(1.1) will only be an approximation.
BigNumber.config().DECIMAL_PLACES   // 20
BigNumber.config().ROUNDING_MODE    // 4
new BigNumber(2).dividedBy(1.1)     // 1.81818181818181818182

BigNumbers are stored as floating-point values not ratios.

Ok, so because BigNumbers are stored as floating-point and not ratios, then the lib is unable to cancel the ratios and return exactly 1, correct? In that case, should the number of DECIMAL_PLACES be increased in order to cover the necessary precision? Is this what decimal.js does?

Infinite precision would be needed in order to return exactly 1.
decimal.js works using significant digits instead of decimal places, but it also stores numbers in a floating-point format so it wouldn't make any difference here.
Your choices would seem to be to either find a library that stores numbers as ratios or just round the result.
a = new BigNumber(1.1).dividedBy(2)
b = new BigNumber(2).dividedBy(1.1)
a.times(b).round()      // 1
a.times(b).round(10)    // 1
a.times(b).round(19)    // 1
a.times(b).round(20)    // 1
a.times(b).round(21)    // 1.000000000000000000001


ImportError when trying to fuzz

Hey,
I have successfully installed everything in a virtual environment and am now trying to fuzz a simple c-program with the following command:
shellphuzz -i -c 1 -d 1 /home/user/local_fuzzing/target/target_binary
When running this, i get the following error outputs:
WARNING | 2019-01-04 12:54:46,354 | angr.analyses.disassembly_utils | Your version of capstone does not support MIPS instruction groups. Traceback (most recent call last):   File "/home/user/local_fuzzing/shellphish-afl/venv/bin/shellphuzz", line 10, in <module>     import driller ImportError: No module named driller
Can anyone help me out with this? Is the angr error causing the ImportError and thats the reason for the crash? Or is just a warning I could ignore and the ImportError itself is the source of the crash? How do I fix it?
Thanks!
Addition:
For installation, I simply created a new virtual environment, activated into it and then ran the 2 commands like specified in the ReadMe here:
pip install git+https://github.com/shellphish/shellphish-afl
pip install git+https://github.com/shellphish/fuzzer

The error indicates you need the driller module installed, i.e.
shellphish/driller.
On Fri, Jan 4, 2019 at 4:03 AM Elothis<EMAIL_ADDRESS>wrote:

Hey,
I have successfully installed everything in a virtual environment and am
now trying to fuzz a simple c-program with the following command:
shellphuzz -i -c 1 -d 1 /home/user/local_fuzzing/target/target_binary
When running this, i get the following error outputs:
WARNING | 2019-01-04 12:54:46,354 | angr.analyses.disassembly_utils | Your
version of capstone does not support MIPS instruction groups. Traceback
(most recent call last): File
"/home/user/local_fuzzing/shellphish-afl/venv/bin/shellphuzz", line 10, in
 import driller ImportError: No module named driller
Can anyone help me out with this? Is the angr error causing the
ImportError and thats the reason for the crash? Or is just a warning I
could ignore and the ImportError itself is the source of the crash? How do
I fix it?
Thanks!
Addition:
For installation, I simply created a new virtual environment, activated
into it and then ran the 2 commands like specified in the ReadMe here:
pip install git+https://github.com/shellphish/shellphish-afl
pip install git+https://github.com/shellphish/fuzzer
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/shellphish/fuzzer/issues/39, or mute the thread
https://github.com/notifications/unsubscribe-auth/ACYg9R0fYiNt-QG5rZQnRPyxAS087Ybzks5u_0MLgaJpZM4ZpkKc
.


FIPS-compliant OpenSSL does not allow md5 hashing

hashlib.md5 gives an error on systems with a FIPS-compliant OpenSSL library. At least for Python versions 3.9+, there is a usedforsecurity flag that can be given to hashlib.md5 to make it (hopefully) work on most of those systems.

The specific error it fails with is:
Traceback (most recent call last):
  File "/home/mast9/surfactant-docker-scout/surfactant/cmd/generate.py", line 369, in sbom
    sw_parent, sw_children = get_software_entry(
  File "/home/mast9/surfactant-docker-scout/surfactant/cmd/generate.py", line 37, in get_software_entry
    sw_entry = Software.create_software_from_file(filepath)
  File "/home/mast9/surfactant-docker-scout/surfactant/sbomtypes/_software.py", line 73, in create_software_from_file
    file_hashes = calc_file_hashes(filepath)
  File "/home/mast9/surfactant-docker-scout/surfactant/fileinfo.py", line 57, in calc_file_hashes
    md5_hash = md5(usedforsecurity=True)
ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS


Management server state not Down after management service stop [in main]

Management server state not Down after management service stop [in main], also noticed some components are not stopped during service stop.
ISSUE TYPE

Bug Report

COMPONENT NAME

Manager Components: ClusterManagerImpl, ClusterServiceServletAdapter, etc

CLOUDSTACK VERSION

<IP_ADDRESS>-SNAPSHOT

CONFIGURATION

OS / ENVIRONMENT

MS OL8 + KVM OL8, Advanced Networking.
SUMMARY

Management server state not Down after management service stop [in main], also noticed some components are not stopped during service stop.
Manager Components: ClusterManagerImpl, ClusterServiceServletAdapter, etc are not stopped. Didn't notice the below logs after stop.
stopping bean ClusterManagerImpl
stopping bean ClusterServiceServletAdapter

From <IP_ADDRESS>-SNAPSHOT (Mgmt2 service stopped) =>

sureshanaparti$ cat <IP_ADDRESS>-SNAPSHOT_StoppingBeansCheck.txt | wc -l
    1139

<IP_ADDRESS>-SNAPSHOT_StoppingBeansCheck.txt
From <IP_ADDRESS> env (Mgmt2 service stopped) =>

sureshanaparti$ cat <IP_ADDRESS>_StoppingBeansCheck.txt | wc -l
    1272

<IP_ADDRESS>_StoppingBeansCheck.txt
STEPS TO REPRODUCE

Created env with latest main / <IP_ADDRESS>-SNAPSHOT
Stop the management service from MS (service cloudstack-management stop) - Notice that management server state is still Up after service is stopped.

EXPECTED RESULTS

MS state should be in Down state after management service stopped (and all manager components should be stopped for graceful service stop).

ACTUAL RESULTS

MS state is in Up state after management service stopped (and few manager components are not stopped).

@JoaoJandre @DaanHoogland I've noticed this issue in my testing, seems to be a critical one, maybe blocker if the management server state is considered during communication in multi-MS/clustered env.

I remember we have noticed some other issues regarding the management server

stopping management server takes 1 minute which is mucher longer than before (found by @DaanHoogland ?)
OOM killer on cloudstack-management service (might it be related to this issue ? @sureshanaparti )

@weizhouapache this is not related to OOM killer, some components in the spring modules are not invoking stop during service stop. I could root cause the issue, working on the fix.

@weizhouapache this is not related to OOM killer, some components in the spring modules are not invoking stop during service stop. I could root cause the issue, working on the fix.

thanks @sureshanaparti
I never faced the OOM killer issue in envs with only 1 mgmt server.
Maybe it is also related to the multiple mgmt serverss


FIX Do not escape the readonly values since they get escaped when rendered

Since, in SS4, HTMLFragment is escaped by default in the template, this line of code results in double escaping.
Fixes #7474

Wait, HTMLFragment is not escaped... that's the point of marking it as HTML to prevent another encoding. @robbieaverill can you show me your reproduction of this issue?

Discussed via Slack - the line removed here should be put back, and the original input data should be fixed instead

Yeah the bug seems to be in treedropdownfield_readonly. We should be using getTitleField()  not getLabelField() now, since our refactor.

Better fix at https://github.com/silverstripe/silverstripe-framework/pull/7517


Lia & Cayenne

About the PR
Ports the HOS' pet carp Lia and the nukies mascot carp Cayenne (which can hold the nuke disk for you!)
Screenshots

Changelog
:cl: eclips_e

add: Added the station's pet carp Lia!
add: Added the syndicate's mascot carp Cayenne!

cayenne nuke disk stuff needs to have significantly more visual feedback (at least a sprite change, this is entirely possible with a visualizer, see mopcarts)


Add a button to hide doctest arrows

THIS IS A FEATURE REQUEST
In the examples shown in the documentation the >>> arrows are annoying.
They and the output of the code have to manually removed after copy pasting the examples in order to run them.
Example of annoying arrows in documentation: https://www.nltk.org/api/nltk.translate.html#nltk.translate.bleu_score.sentence_bleu
Solution:
https://z4r.github.io/python/2011/12/02/hides-the-prompts-and-output/
The above link shows how to configure Sphinx to add a button that can hide the arrows
See the examples in numpy docs to see how it works: https://numpy.org/doc/stable/reference/generated/numpy.mean.html
The button hides the arrows as well as the output of each line to allow easy copy pasting.

Hello, can I work on this issue?

Sure


Shared library version and SONAME/install name

Now we have in mpi.h
Major library version
#define MPI_ABI_VERSION    1
#define MPI_ABI_SUBVERSION 0

We should use these numbers do define the shared library version. Shared library versions typically start at version 0, and that's the number we currently generate. However, AFAICT, that's just conventional. Should we instead start at version 1 to match MPI_ABI_VERSION, thus producing an SONAME of libmpi_abi.so.1 on Linux and a install name of @rpath/libmpi_abi.1.dylib?
Alternatively, MPI could start with MPI_ABI_VERSION=0, although that's admittedly awkward.  Likewise, having libmpi_abi.so.X with X not matching MPI_ABI_VERSION is also awkward.
Use of libtool
On a related note, the MPI ABI major and minor numbers would most likely be used to define the current/release/age triplet of libtool's -version-info c:r:a. Would the following mapping be appropriate?
I assume here we chose the major library version starting at 1, and not 0 as it is conventional, as per the previous discussion.

libtool
MPI ABI

current
MPI_ABI_VERSION + MPI_ABI_SUBVERSION

revision
0

age
MPI_ABI_SUBVERSION

Which would map to the following shared library file names

Platform
Shared library name & symlink
Shared library full file name

Linux
libmpi_abi.so.${MPI_ABI_VERSION}
libmpi_abi.so.${MPI_ABI_VERSION}.${MPI_ABI_SUBVERSION}

Darwin
libmpi_abi.${MPI_ABI_VERSION}.dylib
libmpi_abi.${MPI_ABI_VERSION}.${MPI_ABI_SUBVERSION}.dylib

EDIT: As per the current ABI proposal, libtool's revision number  will always stay zero (is this corrent?). The full shared library filename may have an extra .0  appended on Linux.

What is the use case for these two macros?

The primary use of these macros should be Conditional compilation. For example, I'm about to merge this commit into mpi4py https://github.com/mpi4py/mpi4py/commit/170da9f45f2eabc4ae6e6333f8bf48185bed06dd. I do a few things differently under the ABI. For example, I assume that all MPI symbols are present for a given API version, and I disable or do differently for implementation-specific workarounds.
Irrespective of the macros, Jeff is proposing two version numbers (major and minor) for versioning the ABI. I'm trying to discuss here how these two numbers will map to the shared library filenames and SONAME.

@dalcinl So you only need #define MPI_ABI? I am concerned that we are going to use header macros to differentiate ABI versions. Sounds like trouble.

For the time being yes, my only need is to know whether I'm compiling under the ABI. But that does not mean that in the future having access to the ABI version in the preprocessor will not be useful. What's the problem with differentiating ABI versions? What's exactly your concern?
What I'm trying to discuss in this issue is somewhat orthogonal to the addition of these constants to mpi.h. The ABI will have two version numbers, major and minor, either explicitly, or implicitly. By explicitly, I mean that the standard states these two ABI major/minor numbers for every API major/minor version, and the ABI versions may or may not endup being added to mpi.h.  If the Forum decides NOT to define ABI version (which would be IMHO a disservice to the community), then the ABI version will be implicitly defined trough the API version form the set of backward compatible and non-backward compatible additions on each release of the MPI specification.
Therefore, these ABI versions enconde backward compatibility contracs, quite close if not almost identical in concept to libtool interfaces, then we have to use the ABI version to define the libtool triplet cur:rel:age.
PS: Everytime I raise an issue or concern about a technicality and you reply back with backlash I'm left in an awkward position, in the middle of Jeff and you. For quite a bit of time, Jeff had these two constants plus three new ABI-related query routines as part of his proposal. I guess these additions will be discussed in the next Chicago reading, see Jeff's PR about that. My last merged PR added MPI_ABI_(SUB)VERSION to the stubs mpi.h symply because that header is supposed to be more or less in-sync with the proposal, although I have not yet added the three new query routines because I raised concerns about them.
I do have the feeling that two new macros and three new routines for ABI-related queries seems a bit two much. But that discussion should be held elsewhere. A video meeting would be the best starting point.

PS: Everytime I raise an issue or concern about a technicality and you reply back with backlash I'm left in an awkward position, in the middle of Jeff and you.

Why though? You could either agree with me and argue against Jeff with me. Or you could disagree with me and argue with me with Jeff. Or you could leave the argument for Jeff and me.
Unless you want to stand in the middle and prevent the argument.
FWIW, I don't have a sufficient distinction between an argument and a discussion.

Why though?

Because I think most of the times the most productive use of time is is to argument/discuss in group and settle things once and for all. Otherwise we agree in pairs, and then the third-party at a later time  makes the whole thing restart all over again.
In the particular subject of whether to expose ABI version info as macros, I think the general answer is yes, why not? But it would be really nice if a single macro would provide all what we need. For example, If a MPI implementation and the included mpi.h supports the ABI , we could have #define MPI_ABI_VERSION {100*major+minor}where major and minor and the major and minor ABI version. Otherwise if the ABI is not supported then#define MPI_ABI_VERSION 0` or some other sentinel value?  or perhaps better the macro not defined if not supported? If not defined in C, what do do in Fortran?  Those are all relatively trivial things, but we all tend to have strong opinions. What I think the three of us agree is that there is enough mess in the MPI standard to add more messy/sloppy stuff on top of it.
But again, now I'm derailing myself! I opened this issue to discuss how to name and version libraries. Maybe my opening in the description was a bit confusing. I'll try to reword that.

FWIW, I don't have a sufficient distinction between an argument and a discussion.

Don't worry, I understand you use them interchangeably. I do the same all the time.

Sounds good. So far I only see points to support a mere #define MPI_ABI. This means the API does not have any implementation-dependent extensions. Anything more to bring the ABI into API seems wrong. ABI versioning is controlled by the libtool triplet and the dynamic library versioning. Add 2nd mechanism IMO is unnecessary and harmful.

ABI versioning is controlled by the libtool triplet and the dynamic library versioning

An who ultimately decides the value of the triplet to pass to libtool and the dynamic library versioning?

ABI versioning is controlled by the libtool triplet and the dynamic library versioning

An who ultimately decides the value of the triplet to pass to libtool and the dynamic library versioning?

The libtool triplet is a link-time option for implementers. It doesn't need to be set in header files as macros and especially doesn't need to be consumed by MPI users. Even if you want to put it in the header, it can be directly set to the triplet in a comment rather than set them in misleading macros and imply a formula to derive the triplet.

The libtool triplet is a link-time option for implementers

There you have... The whole point of the ABI is interoperability across implementations.  Look what happened to library versions in MPICH and Open MPI. As per my recollection, there are 10 different MPI APIs (one for each MPI standard version), but in only one time (MPI-3.0) there was a backward incompatible change that removed stuff. Yet, MPICH managed to have today libmpi.so.12 (12!) and Open MPI is at libmpi.so.40 (40!). If MPI has had an ABI from the very beginning, today we all should be at libmpi.so.1.
This is the stubs repository. Some day we will properly rename it and maintain it. Third parties will be able to use it to build binary assets without a concrete implementation. I'm already doing that in testing!
To that end, we have to produce here a libmpi_abi.so.X with a SONAME of libmpi_abi.so.X. Where the X number comes from? Who clearly mandates what that number should be? Where is the clear specification of the rules for that number to change if the ABI changes?.
Irrespective of whether the ABI version numbers belong to mpi.h or not, I think the standard still have to formally mandate on ABI version numbers. From these standard numbers, implementors MUST derive the the current and age values for libtool (with release=0 always?). Otherwise, how do we ensure interoperability across implementations?

I want these macros so I know what version of the header I compiled my application or library against, so that I can check it against the SO I'm using at runtime.  If this is the wrong way to do this, that's fine - I really don't know what I'm doing w.r.t. ABI-versioned shared library designs.

As far as arguing versus discussing, it is important to get all the objections on the table so we don't make mistakes.  At some point, somebody has to decide what to do, and probably somebody isn't perfectly happy with everything, but hopefully the objections are not of the kind "this is garbage that will never work".

The whole point ...

@dalcinl Calm down :) I was not saying not to fix the so version. I was saying you do not do that via header macros that are meant for MPI users. You just need to write down the exact libtool triplet in the document or as a comment in the header file and require implementers to use it.

I want these macros so I know what version of the header I compiled my application or library against, so that I can check it against the SO I'm using at runtime. If this is the wrong way to do this, that's fine - I really don't know what I'm doing w.r.t. ABI-versioned shared library designs.

A comment line will do. And a text in the document will enforce that.

ok i'm fine to use libtool's method, but i need to know how to write it into the MPI spec...

ok i'm fine to use libtool's method, but i need to know how to write it into the MPI spec...

Just write the libtool triplet literally into the spec. Every time we publish a new version of the spec, we update the triplet according to libtool's rule.

I want these macros so I know what version of the header I compiled my application or library against, so that I can check it against the SO I'm using at runtime.

A comment line will do. And a text in the document will enforce that.

@jeffhammond  I believe I told you in private communication that I was not sure the MPI_ABI_(SUB)?VERSION macros and the query routine MPI_Abi_get_version() where useful. But I'm very aware that I overwhelmed you with so many things going on, so you probably forgot or simply ignored me.  @hzhou's comment are more or less in line with these previous comments of mine. The ultimate reason why the ABI version is not that useful is because the MPI API version (from MPI_(SUB)?VERSION and MPI_Get_version()) define the set of additions and removals in each release of the standard, and these additions and removal implicitly define the ABI compatibility.
Guys, we need to reach an agreement on whether we need or not MPI_ABI_(SUB)?VERSION and MPI_Abi_get_version(). Not having them will simplify Jeff's proposal, removing two macro constants and one query routine. Nonetheless, the proposal may still need some more explicit text discussing versioning for the shared library, defining the rule for incrementing the major version (and the initial value of 0 used so far here in the stubs and in MPICH?).
PS: @hzhou I'm sorry, I get easily frustrated. I opened this issue with the intention of settling the versioning of the shared library, and things went sideways discussing the contents of mpi.h. Unfortunately, mpi.h as it is now do have MPI_ABI_(SUB)?VERSION, these macros have been in Jeff's proposal for some time, I just added them to mpi.h to keep the header in sync with the proposal. As a consequence of the recent change, the addition of MPI_ABI_(SUB)?VERSION is also in MPICH after the merge of my recent ABI update PR. I commit myself to implement any fix here and in MPICH once we reach an agreement on what to do exactly.

@dalcinl No worries :)
@jeffhammond Just a reminder that it is always easy to add to the standard later on but nearly impossible to remove from it. I find it worrisome that you are trying hard to solve all issues beyond the initial scope. It is due diligence to look at and discuss all things, but I would try hard to define the current scope. For example, I think including anything Fortran in the first ABI spec is not a good idea. Those _f2c and MPI_F_xxx can be optional inclusions. I think most consumers of MPI ABI won't be affected by those APIs. We need to address the Fortran binary issue, but I think it is better to tackle that as a separate effort.
Sorry for the side track.

if you read the text, i am defining only what C needs from Fortran, plus stating things that are required for a Fortran implementation like VAPAA to use the C ABI.

@jeffhammond I believe your last comment is misplaced. Did you meant to put it in #27?

No, I was responding to Hui's comment immediately prior.


Added center, centroid and envelope.

Just firing em off!  Nice.  Think you'd be up to the challenge of creating some tests for these?

Relates to #86, #88


Support supplying protocolClasses to NetworkConfiguration

We wish to use Mocking libraries such as OHHTTPStubs or Mocker to build automated end 2 end testing solution in order to validate our Snowplow events are emitting.
Currently DefaultNetworkConnection provides an empty an array of protocolClasses to the URLSessionConfiguration
This overrides the swizzling performed by HTTPStubs.m
By adding protocolClasses property to NetworkConfiguration we enable supplying the network connection with custom protocols and prevent overriding swizzled properties during testing.
We can supply protocol classes such as:
Snowplow.createTracker() {
    NetworkConfiguration()
        .protocolClasses([CustomURLProtocol.self])

Hi @markst, thank you for the contribution, that's a useful change!
Could you please add an example test case to showcase how this could work?

I guess something along these lines:
import XCTest
import Mocker

class SnowplowMocker: XCTestCase {
    var snowplowTracker: TrackerController?

    override func setUp() {
        let endpoint = "au-net-abc-test2.collector.snplow.net"
        snowplowTracker = Snowplow.createTracker(
            namespace: "DEBUG",
            endpoint: endpoint,
            method: .post
        ) {
            NetworkConfiguration(endpoint: endpoint, method: .post)
                .protocolClasses([MockingURLProtocol.self])
        }
    }

    func testScreenViewEvent() {
        let exp = expectation(description: "Expect mocked response requested")
        var mock = Mock(
            url: URL(string: "https://*.collector.snplow.net/com.snowplowanalytics.snowplow/tp2")!,
            statusCode: 200,
            data: [.post:"{}".data(using: .utf8)!]
        )
        mock.onRequestHandler = OnRequestHandler(httpBodyType: [[String:String]].self, callback: { request, postBodyArguments in
            if  let body = request.httpBodyStreamData(),
                let json = try? JSONSerialization.jsonObject(with: body, options: []) {
                // TODO: Validate the body contains expected params
                XCTAssertEqual
            }
            exp.fulfill()
        })
        mock.register()

        let event = ScreenView(name: "DemoScreenName", screenId: UUID())
            .type("TestType")
            .entities([])
        let _ = snowplowTracker?.track(event)

        wait(for: [exp], timeout: 5)
    }
}

Thanks @markst and sorry for the later reply. That example looks good, but I meant if you could please add it to the tracker tests in the PR so that we have this use case covered in CI and can detect any regression. The tracker tests already use the Mocker library so hopefully this should work just adding your snippet in.

Sorry for delay @matus-tomlein. Understood and we'll sort it soon!


Remove .only in press.spec.ts

Remove the .only in press.spec.ts so that other keypress events are also covered

:tada: This PR is included in version 1.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Enable Application Logging for Debugging

As a developer, I want to have access to application logs, so that I can more easily debug issues with the application.
A/C:

Given the application is running, When a user sends an HTTP request to the application, Then the details of the request (e.g. endpoint, method, headers, and parameters) must be logged to the console.

https://github.com/ks982579/rust-quiz-web-app/pull/9
Pull Request Opened and ready for review.

Reviewed and merged in to Develop.


Support far jumps even if they are not the first instruction

As 64 bit applications are becoming more prevalent, we increasingly face the issue of windows APIs which are unhookable (e.g. the OleIsCurrentClipboard method).
As discussed on https://gitter.im/EasyHook, it should be possible to extend EasyHook to support this. We would like to officially request that feature :).
If we can contribute or assist in development, please let us now (please note, however, that my assembler is "a bit" rusty to say the least).

@pheber I believe that this can work (in 64-bit mode), simply by replacing the existing lines 394 & 395 of reloc.c with:
#ifdef _M_X64
	if(pOld != InEntryPoint)
		THROW(STATUS_NOT_SUPPORTED, L"Hooking far jumps is only supported if they are the first instruction.");
#endif

Would you be able to make this change locally and test with your known use cases?

Just a heads up I had the conditional define incorrect, it should be #ifndef _M_X64 not #ifdef _M_X64.

Tested it successfully with our use case - thank you!


Fixed the retry fequency if un-changed for the WebServerMonitor

Fixes #5634

Given the nature of the default configurations, this change looks for a default configuration still existing; if found, it updates the configuration to be proper.  If the settings do not match the defaults no changes are made.

Fixed issue


[Feature] More file types

Add support for more music file types such as WMA and WAV (as supported by TagLib)

V2022.5.1


[GEN] Use OCL builtin for tf32 dpas

Awaiting for a release driver that contains the support of the OCL builtin.
Replace with OCL builtin: float8 intel_sub_group_tf32_tf32_matrix_mad_k8_f32(float4 a, float8 b, float8 acc);

Can we have a ENV to fallback to GenISA? It is easy for us to do some experimental feature with the GenISA.

Can we have a ENV to fallback to GenISA? It is easy for us to do some experimental feature with the GenISA.

Not going to merge this until we change to a release driver with the support.

Can we have a ENV to fallback to GenISA? It is easy for us to do some experimental feature with the GenISA.

Not going to merge this until we change to a release driver with the support. We should not expose the usage of GenISA in GEN dialect in the future.

I agree. We want to migrate to use the new supported builtins and we should not use the GenISA intrinsics.

Tested with pre-release agama 881.12, there are 3 test failures remain:
FAILED operators/test_matmul.py::test_op[128-256-64-1-8-3-256-512-160-True-False-float32-float32-None-True-None-None] - AssertionError: Tensor-likes are not close!
FAILED operators/test_matmul.py::test_op[128-256-64-1-8-3-256-512-160-False-False-float32-float32-None-True-None-None] - AssertionError: Tensor-likes are not close!
FAILED operators/test_matmul.py::test_op[128-256-64-1-8-3-256-512-160-True-True-float32-float32-None-True-None-None] - AssertionError: Tensor-likes are not close!


Fix account and folder selection

The exsiting drawer has a complex setup to communicate account and folder changes between itself, the MessageList, MessageFragment and different entry points (widgets, notifications). To simplify the communication flow we decided to introduce a separate view model to keep track of the currently active account and when needed selected folder. It should be bound to the lifecycle of the MessageList activity and exposed to the navigation drawer as single source of truth.

Update: The view model approach caused a couple of lifecycle issues and a mutable state is used solely for the new drawer implementation. The MessageList will remain responsible to set the desired states.


feat(terminal_theme): add more themes

Type of changes

[ ] Bug fix
[x] New feature
[ ] Documentation / docstrings
[ ] Tests
[ ] Other

Checklist

[x] I've run the latest black with default args on new code.
[x] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[ ] I've added tests for new code. (Not applicable).
[x] I accept that @willmcgugan may be pedantic in the code review.

Description
Adds more terminal themes

Dracula
Material Oceanic
Material Deep Ocean
Material Palenight
Material Lighter
Material Darker

Great PR!
@wizard-28, @willmcgugan are there any updates?

We could create a rich-terminal-themes as mentioned by the maintainer in this comment


overlay :: Image -> Image -> Image

It feels a little awkward that one can't overlay an image onto another and get back an image. If I want to create some kind of widget that has multiple layers, but treat it as a single unit, I have to carry around a list of layers where each layer is an image, deferring merging them until the very very end, when I can merge everying into a picture at once and display it.
Would it be feasible to add overlay :: Image -> Image -> Image?
skimming the code, it seems like you could add a constructor to Image
data Image =
    ...
    | Layers [Image]

Which would allow for this. If the idea makes sense and you think it's a good idea, I'd be happy to have a crack at implementing it.

Hi @sullyj3, thanks for opening this. I am not sure what it would take (or what obstacles you might encounter) to do this, but I would be interested in it as a feature. I think I even opened a ticket like this back before I was the maintainer, and IIRC the previous maintainer said it would be feasible.
With that said, how do you envision this working? I can think of two ways this could behave:

An image Layers [a, b] is as large as its largest layer, even if that layer is a translation, and the layers a and b can never interact with layers of an adjacent image Layers [c, d]. This would probably be much simpler to implement, but it would only be useful if you don't want two adjacent images' upper layers to end up getting superimposed on top of those adjacent images' lower layers.
An image Layers [a, b] next to an image Layers [c, d] could potentially result in layer a being superimposed on top of c and/or b on top of d if those upper layers are sufficiently translated. This approach is way more flexible, but I am not sure how difficult it would be to implement. I think it could be difficult for users to reason about, but this approach might lead to the least surprising behavior. I'm not sure. This approach probably essentially amounts to just keeping track of the layers and then translating them when a Picture is made, keeping track of offsets as the larger image is assembled.

Thoughts?

Yeah, I had been implicitly thinking of version 2 there. 1 could be a good fallback if 2 turns out to be too tricky.

Actually, thinking about it more, I don't think 2 quite makes sense. Under the interpretation 1, the images that you are <-> or <|> -ing, are the smallest rectangle that encloses all of their layers. The boundary between the two would be the adjacent edges of their respective enclosing rectangles. By contrast, how would you decide where the boundary ought to be in the case of 2? Would you just say that you're putting the bottom-most layers of each image next to each other? But lower layers might theoretically be buried beneath more constructors, arbitrarily far down. It's not even clear you would have a canonical lowest layer, as in the following case
-- suppose these image are all 2x2 except image4, which is 2x4
overlay (some square <

Fat fingered it, sorry

Thanks for your example - yes, I think approach 2 is probably not workable. But approach 1 is not equivalent to just carrying around the layers yourself and stitching them together at the end, because doing it manually gives you way more control in how they are laid out. I just wanted that to be clear going into this. But I still think approach 1 could be a useful addition and worth exploring if you want to work on a patch!

I agree they're not equivalent - carrying around [x,z] allows you to insert another layer y in between them later on. Calling overlay wouldn't allow this - you'd be committing to treating them as a solid unit. I think of it as abstraction boundary - you call overlay if you know you don't want to insert anything in between later on.
I'll begin poking around!

For posterity, I ended up getting a bit intimidated by the idea of trying to edit this module:
https://github.com/jtdaugherty/vty/blob/c9b63ffad6b7ec0ea8509e17a5d10706034c0691/src/Graphics/Vty/PictureToSpans.hs#L67-L92
if anyone is interested in implementing this, that's where most of the implementation complexity will be, I think.

@sullyj3 I know it's been a while, but I am going to close this due to inactivity (and also because I don't have time to tackle it myself). If you get interested in taking a look at this again, let's re-open it.


LASR with known camera intrinsics/extrinsics

Hello, I would like to run LASR with known camera intrinsics & extrinsics. I believe this is already implemented, but I'm having some trouble understanding how to accomplish this myself. The mechanisms seem to be two-fold: with the use_gtpose option and providing per-frame camera files (parsing code here). Could you clarify the functionality of these mechanisms? I was unable to find an example that made use of either, but if I missed one or you have one, that would also be helpful.
Another thing that confuses me is the scaling of the scale (lol) when use_gtpose is set even though the focal length is assigned equivalently if the camera files are provided or not that makes me think these two mechanisms might have different purposes and I am incorrectly conflating them.
Any clarification you can provide would be much appreciated! Thanks!

Hi Erik, the "with gt camera" option is not tested in the latest codebase. I believe some non-trivial modifications are needed. It would be the easiest to go from the synthetic spot data with the following suggestions.
First, you will need to pass --use_gtpose to the program call.
Then, you will need to prepare camera files which is compatible with the parsing code. The files are stored as "database/DAVIS/Camera/Full-Resolution/sequence-name/00xxx.txt", and contains values in the cammat array used in synthetic data generation, which contains [focal length, translation-x, translation-y, quaternion-w, quaternion-x, quaternion-y, quaternion-z, translation-z]. Note the translation and rotation quaternions are coordinate transformations from object to camera space. We assumed the principle point to be (0,0) in the normalized device, and therefore did not record it.
What the parsing code does is to transform the camera intrinsics from the raw image coordinate to the cropped and scaled image coordinates.
I believe the scaling of the scale by 10x is not correct and should be removed.

I pushed a modified script for synthetic data generation, which should save camera files as well.

Thanks for adding those camera files. The files are generated and read without any issue. I think the 10x factor might be related to the focal length for the synthetic spot scene being 10 and the scaling due to cropping not modifying, but overwriting the file's focal length. (The focal lengths were set as cam[0]=1./alp and I think it should be cam[0]/=alp with the 10x factor in mesh_net.py removed.)
When training, there appear to be some issue. The replacement of the predictions with the GT in this if opts.use_gtpose statement did not result in the same shapes, so I repeated the tensor to match the shapes which seemed to be the correct operation for the data to match. This was the only runtime error I encountered with --use_gtpose; however, it does not appear to be correct. The network never manages to learn to overfit the scale parameter (output always settles at 1e-12) and the depth also appears to be incorrect. Additionally, I tried overriding these incorrect predictions in predictor.py; however, the results do not appear to be correct either way (see below), so I suspect there is some error in how I am overriding the camera parameters.
I am using the ppoint computed in the code, which is a bit under 10 for all frames, not zero as you mentioned above. Should I set the principle point to be zero for the synthetic spot dataset?
The patch of my changes (I left the print statements to match logs below)
The output logs running spot3 with use_gtpose for the patch above
The extraction output running with the patch above using --use_gtpose option:

The extraction output when overriding the scale and depth predictions with GT values (10 and 10) in predictor.py:

I pushed a new commit, please checkout this additional note.

Excellent! That does result in a much more convincing cow, although not quite as good as without GT camera parameters (due to use of single bone?).

Does that mean if I use my own data with GT camera parameters I will be constrained to a single bone? This would probably cause issues for articulating objects and I don't understand why the use of GT camera parameters constrains the number of bones and number of hypothesis symmetry planes. Also, would I only use the GT poses for the first optimization call like in 'spot3-gtcam.sh`?

The problem is likely due to the small number of views (this example only uses 3 views) and lack of smoothness constraint . The shape should be better if you increase it to ~20 views or use a larger weight for laplacian smoothness .
It should be easy to modify the use_gtpose option to be compatible with more than one bone. My guess is that your previous modification repeated the camera predictions in the wrong way. For instance, you only want to modify the root body pose to be the ground-truth poses, but not the bone transformations, which ground-truth is not available. You would only want to repeat in the hypothesis axis to make the shape match.
Again, the use_gtpose option is not supported by this repo and I don't have cycles to push a commit that fully address the problem. But feel free to follow up if you want to continue on it.

Sorry to return to this after such an extensive absence, but I was wondering if you could clarify for me why we only pass --use_gtpose to the first optimization call for the spot sequence? How would this scale to the more complex datasets using 5 optimization steps (e.g. --use_gtpose for first 4 optimizations and then --nouse_gtpose for the last)?
Also, should the produced per-frame cam*.txt files match those provided (if the format is converted of course)? For the spot dataset this doesn't appear to be the case.

The pose CNN is trained with the provided camera poses in the first optimization, and that's why it still works without passing --use_gtpose to the 2nd optimization. If it's desirable to always use GT cameras (e.g., the cameras are very accurate), you could pass --use_gtpose to all optimizations (I haven't tested).
Can you elaborate on the second point? The result of which optimization does not match? Is it off a lot?

Is the root rotation and translation removed from the meshes when they are extracted (ie. they are aligned with the camera)?

Your understanding is correct.
The values written to cam*.txt should correspond to the focal length and principal points in pixel units (before cropping to object bounding box). If I remember correctly, the focal length predicted by the network correspond to the true value (before cropping) but scaled by 1 /128.


Should it be possible to start a Timer again in the callback?

In my TimerCallback I've tried using the Timer param, and an external pointer reference, to reinitialise the timer and start it but it never fires, for example:

std::vector<ghostState> cycleStates = {
  ghostState::CHASE,
  ghostState::SCATTER,
  ghostState::CHASE,
  ghostState::SCATTER,
  ghostState::CHASE,
  ghostState::SCATTER,
  ghostState::CHASE
};

std::vector<int8_t> cycleTimes = {
  20,
  7,
  20,
  5,
  20,
  5,
  -1
};

int8_t blinky_cycle_index = 0;
int8_t pinky_cycle_index = 0;
int8_t inky_cycle_index = 0;
int8_t clyde_cycle_index = 0;

void manage_ghost_move_state(Timer &t, Ghost *g, int8_t *cycle_index) {
  ghostState nextState = cycleStates[*cycle_index];
  printf("manage_ghost_move_state setting state %d for ghost %s\n", nextState, g->name.c_str());
  g->set_move_state(nextState);
  if (*cycle_index < cycleTimes.size()) {
    int8_t next_cycle_time = cycleTimes[*cycle_index];
    if (next_cycle_time != -1) {
      // Setup next ghost cycle.
      printf("manage_ghost_move_state %s timer pre  dur - %d started - %d loops - %d state - %d\n", g->name.c_str(), g->move_cycle_timer.duration, g->move_cycle_timer.started, g->move_cycle_timer.loops, g->move_cycle_timer.state);
      g->move_cycle_timer.duration = cycleTimes[*cycle_index] * 1000;
      g->move_cycle_timer.loops = 1;
      g->move_cycle_timer.start();
      printf("manage_ghost_move_state %s timer post dur - %d started - %d loops - %d state - %d\n", g->name.c_str(), g->move_cycle_timer.duration, g->move_cycle_timer.started, g->move_cycle_timer.loops, g->move_cycle_timer.state);
      cycle_index++;
    }
  }
}

void blinky_cycle_timer_callback(Timer &t) {
  printf("blinky::move_cycle_timer_callback fired %d.\n", blinky_cycle_index);
  manage_ghost_move_state(t, blinky, &blinky_cycle_index);
}

I think this is because the TimerCallback is executed prior to the transition to FINISHED, so my code resets duration and loops then calls start only for the Timer code itself to immediately mark my timer as finished.
I don't know if this is intentional or if there are any knock on effects from modifying this behaviour?  My hope was a simple way of increasingly changing object behaviour over time.
I could of course move this logic out to the Ghost update() cycle if that is more appropriate?

Are you guys happy for me to attach proposed PRs?  Is there a format or template you use for this?
This solves my problem, but I was concerned with regards to knock on effects for infinite timers:
https://github.com/pimoroni/32blit-beta/compare/master...Loxrie:feature/fix-512?expand=1

Could you use g->move_cycle_timer.loops = -1 so that the timer always implicitly loops and restarts? I don't think there's any danger in changing the duration on the fly in this case.

I sure can, I'll try that, then I just have to stop it when I run out of cycles.

That said - I don't  think there are any knock-on effects to moving the callback after the loop decrement. You could argue that this better reflects the number of remaining iterations and the timer state at the time the callback is fired.
Right now you can never know- from callbacks alone- if the timer has actually finished, without doing some weird gymnastics.
In case of your tweak, just moving the callback right after the if/else block should be fine.
This might have knock-on effects in user code, but I think your way is the right way.

Your suggestion also works. 👍
Should I submit that PR?

Yup just stick the callback after the if/else and raise a PR. I'll see if it breaks anything :laughing: and then warn people with the next release.
Pause might be useful. You're welcome to try!

Ok I've moved the callback so there's only one of them and pushed it to the feature fix branch.  I'll raise that PR.


Skip running Kind tests for changes to the plugins/ code

Kind e2e tests do not exercise any code there.
Signed-off-by: Antonin Bas<EMAIL_ADDRESS>

Codecov Report

Merging #3443 (81c6f5d) into main (1cbf816) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #3443      +/-   ##
==========================================
- Coverage   42.47%   42.47%   -0.01%
==========================================
  Files         200      200
  Lines       24330    24330
==========================================
- Hits        10334    10333       -1
- Misses      12933    12934       +1
  Partials     1063     1063

Flag
Coverage Δ

unit-tests
42.47% <ø> (-0.01%)
:arrow_down:

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

Impacted Files
Coverage Δ

pkg/agent/openflow/pipeline.go
22.79% <0.00%> (-0.07%)
:arrow_down:

/skip-all


Add tailnet lock fields to device structs

The client doesn't return the values for tailnetLockError or tailnetLockKey, and these would be great to include, since they're included by default when listing devices anyway.

Thank you!
The change itself looks good. Can you please also update the test to include these fields?

Done! Thanks!


Features are not working

Type: Feature Request
GitHub Copilot is not working as I cannot associate my GitHub account here.
As well, I cannot sync the data that I have kept in Azure DevOps to this Visual Studio Code.
VS Code version: Code 1.78.0 (252e5463d60e63238250799aef7375787f68b4ee, 2023-05-03T20:09:00.748Z)
OS version: Windows_NT x64 10.0.22621
Modes:
Sandboxed: No

Please file issues against the relevant extensions, such as copilot

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines. If you don't know which extension is causing the problem, you can run Help: Start extension bisect from the command palette (F1) to help identify the problem extension.
Happy Coding!


[5.6] Revert "[cxx-interop] Fix two issues with extending nested types across modules."

This reverts commit 6ba7a1ec1ed2665e56bb25c93f41d29c2884b59c on release/5.6 branch by cherrypicking https://github.com/apple/swift/pull/40481.
(cherry picked from commit c5a715d4ed734257937f4d8539e3284cff8495fc)

Seeing the same issues showing up in our 5.6 quals

@swift-ci please test


fix: Timeline.Context types

:tada: This PR is included in version 0.2.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


MySQL 8 authentication not supported

I upgraded my nodejs application from mysql 5.7 to mysql 8.0.11, and i notice that i cannot logged in into my application.

Should be covered by #1962.

Че за херня, когда наконец исправите??


【scrcpy-win64-v1.2】Version 1.2 runs abnormally

Version 1.2 runs abnormally， but 1.1 runs ok

Could you translate the relevant text on the screenshot for me, please?

OK, it seems your screenshot shows the Windows "program crash dialog" (https://img.raymond.cc/blog/wp-content/uploads/2009/08/program_has_stopped_working_error.png) (sorry, I am not familiar with Windows at all).
So, does it happen on every launch? Which version (Windows 10, 8… and 32 or 64 bits)?

yes. Every time it crashes. I use window 7 sp1 x86-64

问题事件名称:	BEX64
应用程序名:	scrcpy.exe
应用程序版本:	<IP_ADDRESS>
应用程序时间戳:	5b0c67df
故障模块名称:	StackHash_1dc2
故障模块版本:	<IP_ADDRESS>
故障模块时间戳:	00000000
异常偏移:<PHONE_NUMBER>000000
异常代码:	c0000005
异常数据:<PHONE_NUMBER>000008
OS 版本:	6.1.76<IP_ADDRESS>.256.1
区域设置 ID:	2052
其他信息 1:	1dc2
其他信息 2:	1dc22fb1de37d348f27e54dbb5278e7d
其他信息 3:	eae3
其他信息 4:	eae36a4b5ffb27c9d33117f4125a75c2

OK, I suspect an incompatibility between your system and the prebuilt dll for ffmpeg/sdl.
Could you try building it manually in MSYS2, so you won't use these prebuilt dll, please?

ok, i'll try it

I finally found the root cause.  it's the graphics card driver issue. After I update my video card drive, the problem solved.  thank you for your tools and your efforts.


feat: add simp lemma

It is already there for inf/sup, now add it to inter/union. Now simp succeeds in cases where previously symm; simp was necessary

Thanks :tada:
bors merge


Cannot receive message from super group, and ChatID for normal group not correct

What version of gotd are you using?
github.com/gotd/td v0.115.0

Can this issue be reproduced with the latest version?
Yes
What did you do?
Just run echo bot example
What did you expect to see?
should echo in super group, it echo as expected in normal Telegram group
I test the same bot(same appId, appHash, botToken) with pyrogram, pyrogram can receive message from the same super group
What did you see instead?
nothing
What Go version and environment are you using?
``
go version go1.23.3 windows/amd64

And there is another bug, the ChatID from group or super group should be negative

This is the specifics of Telegram's work, not the library's

Channel - ids starts with -100
Chat - other ids

Channel - ids starts with -100 Chat - other ids

ok, finally I figure out that pyrogram do a convertion for channel/chat/user id for convenience, in the telegram protocol, all ids are positive


Kucerar/3161 multiple provisioning mapping

https://redmine.czechidm.com/issues/3161

Looks good to me!


Hotfix for secp256k1 alloc feature

Latest merges has broken builds since they have introduced alloc feature in secp256k1 which appeared only in 0.20.3 version, while Cargo.toml here still required 0.20.2
This was not caught by CI since it always runs with cargo update

ACK  4eedd46

ACK 4eedd46d58f9c4cd2a7f4ceadf09c275e309be57


POC for Inventor Configurator CPQ integration, BE part

Build fails because of non-working UI tests. Effort is stopped now, fixing tests was not part of PoC.