Link to paper/manuscript

Hi,
Thanks for sharing your work. Could you please share your paper/manuscript accepted in "International Workshop on Automatic Machine Learning at ICML/IJCAI-ECAI" ?

Hello, @sakimahesh
I think the accepted papers at AutoML workshop are not opened yet.
I will reply the link, after the papers are released.

Hi @jungtaekkim
Sure, do let me know once the papers are released.

Hi @sakimahesh
This is the link to manuscript.
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxhdXRvbWwyMDE4aWNtbHxneDo1ZTQ3ZGZjMTFmMmU0NGE5

@jungtaekkim Thanks !


FSI send ignore comments #1859

fixes issue with comments too long , partial fix for general issue 1859, to avoid FS0193: operation not supported

but comments can be safely ignored and skip FSI send, even if very long

@vzarytovskii you make a good point about the compensation - right now the closest thing we have to an 'in-editor' link is the fact that some terminals will look for things that look like a file path/line/column and will auto-link to it. VSCode does do this, so the line numbers might be a bit off.
This is something that would be fixed for real if VSCode managed FSI sessions interactively via the FCS APIs instead of by 'driving' dotnet fsi instances.

@vzarytovskii you make a good point about the compensation - right now the closest thing we have to an 'in-editor' link is the fact that some terminals will look for things that look like a file path/line/column and will auto-link to it. VSCode does do this, so the line numbers might be a bit off.
This is something that would be fixed for real if Ionide managed FSI sessions interactively via the FCS APIs instead of by 'driving' dotnet fsi instances.

The "cheapest" solution might be is to not remove comments, but strip them to just //, it will preserve lines, but no need for maintaining offsets.


PP-5642: Exemption honoured, rejected and out-of-scope scenarios

Set charge's exemption_3ds=EXEMPTION_HONOURED if exemption was honoured.
Set charge's exemption_3ds=EXEMPTION_REJECTED if exemption was rejected.
Set charge's exemption_3ds=EXEMPTION_OUT_OF_SCOPE if exemption was out of
scope.

@alexbishop1 I've committed some changes that hopefully make the code cleaner.
I don't think WorldpayPaymentProvider.authorise is that bad actually? I don't think it's hard to read and a large chunk of the lines is taken up by the logging:
           var authorisationRequestSummary = generateAuthorisationRequestSummary(request.getCharge(), request.getAuthCardDetails());

            authorisationLogger.logChargeAuthorisation(
                    LOGGER,
                    authorisationRequestSummary,
                    request.getCharge(),
                    authorisationService.extractTransactionId(request.getCharge().getExternalId(), response)
                            .orElse("missing transaction ID"),
                    response,
                    request.getCharge().getChargeStatus(),
                    request.getCharge().getChargeStatus());

@alexbishop1 I've committed some changes that hopefully make the code cleaner.
I don't think WorldpayPaymentProvider.authorise is that bad actually? I don't think it's hard to read and a large chunk of the lines is taken up by the logging:
           var authorisationRequestSummary = generateAuthorisationRequestSummary(request.getCharge(), request.getAuthCardDetails());

            authorisationLogger.logChargeAuthorisation(
                    LOGGER,
                    authorisationRequestSummary,
                    request.getCharge(),
                    authorisationService.extractTransactionId(request.getCharge().getExternalId(), response)
                            .orElse("missing transaction ID"),
                    response,
                    request.getCharge().getChargeStatus(),
                    request.getCharge().getChargeStatus());

@alexbishop1 This is ready for review again. Thanks.

@alexbishop1 This is ready for review again. Thanks.


Multiline cursor support

I'm not sure if flow does not have this feature or I have not figured out how to use it. But either way, I have been missing multiline cursors when working on PR #57 in flow

What is a multiline cursor?

Flow has extensive multi cursor editing support if that is what you mean.

Okay awesome

Hi, I also see that flow has multiline cursor but I don't know how to trigger this feature. Any tips where to start?
I did find ctrl-d which does the same as in VSCode (searches for word and creates a cursor at each occurrence.)
But I don't know how to f.ex. select multiple lines into a multicursor.  This would be ctrl-alt-<up/down arrow> in VSCode and many other editors.

But I don't know how to f.ex. select multiple lines into a multicursor. This would be ctrl-alt-\u003Cup/down arrow> in VSCode and many other editors.

Yes, these keys are the same in flow. You can search for commands and see their keybindings with ctrl+f2. Search there for add cursor.

alt+shift+up/+down is usually bound to 'Resize pane up/down' in Windows Terminal. Remove these bindings in Windows Terminal's settings (or re-bind them) and it should work.


Could not add steam games in steam.

Hyprland Version
v0.29.1
Bug or Regression?
Bug
Description
Could not add non steam game in steam.  :'(
ps. have tested on sway, it worked there
How to reproduce
Just launch steam and press that lil button
Crash reports, logs, images, videos
https://github.com/hyprwm/Hyprland/assets/102599991/55574d00-8ab4-4033-a70e-6103e60feddd

Seems that it's related to issue #2661
As a quick workaround you may open steam in full-screen.

dupe

Seems that it's related to the issue #2661 As a quick workaround you may open steam in full-screen.

Thanks for clarification bruh 👍👍


Upload msixbundle Installers on GitHub Page

Can the Character Map UWP *.msixbundle installers but uploaded on the GitHub page to avoid the possible telemetry or adware bundling issues from downloading installers directly from the MS Store according to the following links below?
Thanks!
https://www.ghacks.net/2024/04/22/microsoft-store-installs-quicker-now-and-with-extra-telemetry/
https://www.neowin.net/news/microsoft-now-lets-you-download-app-executables-directly-from-the-microsoft-store-website/

Installing directly from the Windows Store app will not use these wrapper installers, this I my occurs if you use the website.
You can otherwise get the direct install packages for any UWP store app by pasting it's web store URL here https://store.rg-adguard.net/


WordPress kint plugin

Hi there!
I have used kint in a plugin wrapper for some time now and finally I have released it as a plugin:
https://wordpress.org/plugins/pco-kint/
There is already a plugin marked for WordPress, but it has not been updated for a while. This plugin uses the latest version and I will try to keep this up to date with the Kint project.
Would you mind linking to the plugin in your "Using Kint with a framework" list?
Thanks!

I'm so thankful for this, but I don't have time to devote to Kint at all right now, I just drop in to fix bugs from time to time - and even that is costing me immensely.
I will try to add this asap, but I can't promise anything at this point :/

No rush and thank you for taking your time to reply here :)

Since there's pretty much nothing out there that supports kint 2.0 at this time, I'm closing the third-party-plugin documentation issues.
I probably won't add the list back until there are a decent few to list too.


Make macforge not found log a debug level log

Macforge isn't even needed anymore?

Macforge isn't even needed anymore?

Not if you're on server v1.8.0. We got rid of it as a dependency and the server will manage directly injecting the private API helper into the Messages app. A big step in the right direction


Expand the plugin to track all life cycle

The plugin to compare this to would be Nautbot's Device Lifecycle Mgmt
It would be nice to eventually expand to hardware life cycle items.  I am raising this feature request for debate.  I think we should button up the software lifecycle before expanding to include hardware, but I wanted to get this idea out sooner rather than later.  Something like this makes sense:
class HardwareLM:

    # Set model columns
    device_type = models.ForeignKey(
        to="dcim.DeviceType",
        on_delete=models.CASCADE,
        verbose_name="Device Type",
        blank=True,
        null=True,
    )
    module_type = models.ForeignKey(
        to="dcim.ModuleType",
        on_delete=models.CASCADE,
        verbose_name="Module Type",
        blank=True,
        null=True,
    )

    inventory_item = models.CharField(verbose_name="Inventory Item Part", max_length=255, blank=True, null=True)
    release_date = models.DateField(null=True, blank=True, verbose_name="Release Date")
    end_of_sale = models.DateField(null=True, blank=True, verbose_name="End of Sale")
    end_of_support = models.DateField(null=True, blank=True, verbose_name="End of Support")
    end_of_sw_releases = models.DateField(null=True, blank=True, verbose_name="End of Software Releases")
    end_of_security_patches = models.DateField(null=True, blank=True, verbose_name="End of Security Patches")
    documentation_url = models.URLField(blank=True, verbose_name="Documentation URL")
    comments = models.TextField(null=True, blank=True, verbose_name="Comments")

I'm going to close this issue due to inactivity. If this is still relevant, please do not hesitate to reopen this issue or submit a PR.


If its Elixir.Plug.Conn.WrapperError we should grab the underlying exception

I plan on making a pr for this SOMETIME in the future but the gist is:
All of my exceptions get reported as Elixir.Plug.Conn.WrapperError and then right below it is the actual exception.

Ah yeah, please. That would be great.


Installs are breaking

Why: you probably forgot to pin your dependencies.
Looks like CKEDITOR now requires (but doesn't install) pillow, so an environment with pip install ckeditor isn't working like it used to.
You need to make sure you install pillow independently as of 5.3.0

ckeditor_uploader  requires Pillow (and probably has for a long time?) but the ckeditor app should not (and does not, from my reading of the code, but maybe I missed something?)
Unfortunately there is no way to know in advance whether users want to use the ckeditor_uploader app. Not sure how to fix this.

My idea is to have two pypi packages - ckeditor and uploader with their dependencies (and django-ckeditor as a meta package pulling both) - then people can choose and get correct dependencies... but still Pillow is required only if you use the Pillow backend. In some edge cases (Goggle App Engine, Jython?) Pillow may not be available.

But then this import shouldn't have been added:
https://github.com/django-ckeditor/django-ckeditor/commit/1305510a8a338588e82637510677191afc2b4f9f#diff-082797dc2080cfc476d0807975d1d168R19

Some refactoring needed.

I think this has been fixed some time ago. An eventual ImportError raised by importing Pillow is silently discarded (as it probably should be).


DWIConvert Default Data Model

Hui,
Please change the default data model for DWIConvert from a "Unwrapped3DVolume" to a 3DVectorVolume format.
Move the DICOM only Unwrapped3DVolume representation to the DICOM subclass of DWIConvert so that it does not contaminate the default exposed API.
Hans

Changing into 3DVectorVolume involves changing of infrastructure data structure, and all test tool program. I tried it, and failed. It is a huge work. Now we keep its current data structure.


Reading errors

DHT22 with ESP8266 producing in my case a lot of repeating read errors (sample rate 5sec), error rate was about 9:1 (error:success). Little looking in code and here seems was that issue:
int SimpleDHT::confirm(int pin, int us, byte level) {
...
      delayMicroseconds(10);
...
}

changing delayMicroseconds(10); to delayMicroseconds(20); fix this problem, 0 errors after 2hours of testing

Please test 1.0.9


Release 3.10.0

Minor Changes

f30013877: feat(Stepper): Displays step based content for use in multi-step interfaces.

Patch Changes

f30013877: fix(Breadcrumbs): Fixed alignment issue between elements.
f30013877: fix(datePicker): Fix date picker calendar table role issue
f30013877: fix(datePicker): Fix date picker clearing functionality
f30013877: fix(Modal): Remove unnecessary aria-describedBy=“modal”. Add ariaLabel prop so that Modals without headers can customize the aria-label instead of defaulting to aria-label="modal" which is not correct for a11y standards.
f30013877: fix(NativeSelect): Update arrow placement, arrow color and border color when disabled
f30013877: fix(Modal): Background overlay issue on nested modals
f30013877: fix(ProgressBar): Add support for custom colors

@chris-cedrone-cengage can this be closed?


Remove xsetroot dependency by using setstatus-patch

Hi. I wrote a very simple patch setstatus which enables to set the status of the bar with dwm itself. This removes the need for xsetroot. I thought you might be interested.

Ah, this is an interesting patch. Good job! I might add this to my build.


Support  blocks

For example the following string:
<code>
Example                   Text
Newline
</code>

Will render as:
Example Text Newline
Replacing all \n with <p> seems to reliably solve the newline problem, and replacing spaces with the html space code seems to solve that problem, but I'm unsure how to swap the font to monospace for that specific block of html.

I had two tabs open and opened this issue in the completely wrong repo, my apologies.


Sign-in link can be used multiple times over a long time period and on different devices

Describe the bug
Sign-in links ~don't expire~ has a long expiration, can be used multiple times and could employ stronger security practices.
To Reproduce
Steps to reproduce the behavior:

Go to https://opencollective.com/ and click "Sign In"
Sign in using your email through the provided link.
Sign in again:

Open another incognito tab and use the same link to sign in again.
Open the link on a different device and use the same link to sign in again.
Open the link in an incognito browser over a VPN.
Wait 24 hours and use the same link to sign in again in another incognito tab (tested a couple of months back, the longest I've waited this time around is 6 hours).

Expected behavior
After logging in the first time the link should no longer be valid.
Additional context
Anyone who has access to the link in the email can seemingly use it to sign in to another account.
Since the closest convention that this login method matches is email-based password resets, it would be worthwhile making sure similar security best practices are in effect.
Stackoverflow: https://security.stackexchange.com/questions/1918/can-anyone-provide-references-for-implementing-web-application-self-password-res
Linked article: https://www.troyhunt.com/everything-you-ever-wanted-to-know/ (warning: nsfw picture in the article)
Some of the relevant suggestions are:

[ ] Require a CAPTCHA
[ ] Include a time limit - the link should only be usable once, and should immediately expire as soon as it is used.

Partly solved in #2206 (15 minute time limit)

[ ] Include explanatory text in the email - in particular, include a cancellation link which the user can click which provides feedback if a login attempt has been successful (in which case the link was followed by someone else).
[ ] Monitor cancellations - I'm assuming this doesn't happen since there is no cancellation button.

It would also be good if you could allow users to enable 2FA as a preventative measure.
Related: #1746, #1738

In the current implementation, the expiration for login links is exactly 24 hours. There is effectively no other invalidation mechanism at the moment.

hi @udoprog Thank you for opening this issue! I followed the conversation on reddit. As @znarf mentioned, time limit is now 24h. This is something we've been wanting to upgrade for a while now, thanks for pushing us to re think about it. We'll have a chat about potential (and feasible) next steps for us and update this issue.

As a follow up, we should spec an upgrade of the authentication token, to make them one-time and cancellable. We can use our volatile storage for that.

Been having this conversation by email with Alanna Irving, but it seems like a good idea to have it on the record here.
That change to 15 minutes screwed over everyone using greylisting for anti-spam.
You should never, ever pull that timeout below twice the SMTP minimum retry interval in RFC5231, which turns out to be 30 minutes.  Actually you should find out what the retry interval on your mailer is (it could be larger) and double that, then add a bit of buffer (say 15 minutes) for human lag.

This was set to 75 minutes in https://github.com/opencollective/opencollective-api/pull/2291

@znarf do you want to assign this issue to me or is it ok to just reference it in my PR?

@sbinlondon you are assigned now.

Can this one be closed now if everything has been merged? @Betree @znarf

@sbinlondon The new invalidation mechanism is in place, but we haven't enforced the actual invalidation yet to ensure that we're not missing any edge-cases. We'll be monitoring the logs to iterate on this shortly.

@Betree I activated it in production last week. Not proud of the 4 different attempts it took me, but here we are. https://github.com/opencollective/opencollective-api/pull/2838 https://github.com/opencollective/opencollective-api/pull/2862 https://github.com/opencollective/opencollective-api/pull/2863 https://github.com/opencollective/opencollective-api/pull/2867 On top of my first refactor https://github.com/opencollective/opencollective-api/pull/2822

Is there anything else I can help with?

Closing. We now have a sensible time limit and the links can be used only once.
We're also adding the originating IP address in the Sign In email for troubleshooting.


Ability to edit config in Mod Menu and update to 1.19.3. Closes #18

Mod jar can be downloaded from Github releases

how was the 1.19.3 issue closed but this wasn't merged? This makes the mod menu part work and it works with 1.19.3


Upgrade to React 16

I might be jumping the gun here, but I forked the project and got React v16 working. Are there plans to upgrade to v16 here?
I also added support to toggle client hydration for author mode, which was needed for my projects.
Fork here: https://github.com/sovanyio/aem-react-js

You are welcome to fork and the create a pull request. Although there hasn't been a lot of activity lately, we will soon create a huge MR with lots of new features and bug fixes. React 16 is also on our roadmap.

Alright that sounds good. I'll create the PR for my fork then.


Make a distinction between public and private version value

Dependency sources that use package managers are able to version the cached license data from the package manager data.  This means we are storing a single piece of metadata that

determines if a dependency has changed
provides valuable metadata that can be used to find a specific version of the dependency at it's source

There are also sources that relate to locally stored / vendored files, such as the manifest source and go source.  These sources don't use any sort of package manager, and their version information is taken from the latest git SHA of the files in the local repo.  This metadata

determines if a dependency has changed
provides no valuable information about the dependency

It might be useful and less confusing for consumers of the cached data to explicitly separate the two pieces of cached data.  e.g.
---
name: my-dependency

# optional metadata available to consumers
version: <public version (if available)>

# used by licensed to detect stale cached data
tag: <public version (if available) OR, internal git SHA>

...
---

Closing.  This issue is now 2 years stale and is unlikely to see any work. go now directly supports packaging with versioned modules, and this isn't a high priority for the manifest source


[View Binding] Part 1 - Migrate RxJavaTemplate UIs to view binding

https://github.com/nimblehq/android-templates/projects/3#card-52783420
What happened 🤔
Migrate RxJavaTemplate UIs to View Binding
Insight 👀
Currently we cannot remove kotlin-android-extensions plugin because there is a bug related to Parcelize when applying kotlin-parcelize plugin. It is expected to fix in next kotlin release version. Read here
PoW (a.k.a Proof Of Work)💪
App works normally.
https://user-images.githubusercontent.com/60863885/114159069-98cd7580-994f-11eb-821d-5d24ddc1712e.mp4

I will rebase this PR once #66 get merged 🙏

I found a bug 😅  : When trying to refresh after came back from another screen, the progress bar is not showing.
https://user-images.githubusercontent.com/13492460/116521150-ccbc0b00-a8fd-11eb-920c-15ceca8c80f3.mp4
Moving ViewLoadingBinding.bind(binding.root) to setUpView() help solving this issue, but not sure if it's the best solution though.


plugin: loading plugin fails when dot in package path.

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.8 linux/amd64
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/hduran/environments/blogposts"
GORACE=""
GOROOT="/home/hduran/.local/share/goworkon/installs/1.8/go"
GOTOOLDIR="/home/hduran/.local/share/goworkon/installs/1.8/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build353851757=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
What did you do?
For a basic example of this:

I created a project (repo below)
Copied the example from plugin docs (https://golang.org/pkg/plugin/#Plugin.Lookup)
Placed one copy of the plugin code in folder v0.1 and another in v01
built both.
The one from v01 works as expected
The one in v0.1 fails with:

panic: plugin.Open(./v01/v0.1.so): realpath failed

goroutine 1 [running]:
main.main()
	/home/hduran/environments/blogposts/src/github.com/perrito666/bug_poc/main.go:9 +0x3a9

If the .so file is copied to the same folder and loaded from there, the error changes to:

panic: plugin.Open: could not find symbol F: /home/hduran/environments/blogposts/src/github.com/perrito666/bug_poc/v0.1.so: undefined symbol: github.com/perrito666/bug_poc/v0.1.F

goroutine 1 [running]:
main.main()
	/home/hduran/environments/blogposts/src/github.com/perrito666/bug_poc/main.go:9 +0x3a9
exit status 2

Repo with minimal example: https://github.com/perrito666/plugin_bug_sample.git

What did you expect to see?
The plugin loading despite the path of its compiled version
What did you see instead?
The aforementioned panics.

Not sure why this wasn't linked to https://golang.org/cl/40994/

@tzneal, because of a bug of mine in the new version of gopherbot. Fixed.

@bradfitz, Thanks!


Follow ups to the recently added subgroups and new endpoints for user groups.

This PR contains follow ups mentioned in #21611.
Commit summary -

Use high enough number for invalid ids.
Add checks for user groups in different realms in tests.
Rename get_user_group_direct_members to get_user_group_direct_member_ids.
Add a new function get_user_group_direct_members.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

These commits look great; tagged to merge once CI passes.
Regarding saving database queries: if there's no good way to do it, that's OK. Though maybe it's worth posting your analysis to #backend in case someone sees a way to save time there.


I think the Song object should have OriginalTitle and Title instead of just Title

Previously, my thought was that renaming of songs would be handled on a PlaylistItem object since it mirrors the Title of the Song.
However, I think this might be a bit wrong. You often need to convert a PlaylistItem into a StreamItem via a Song object. If the PlaylistItem has been renamed then you can't just use the Song for all the details.
So, I think that the actual answer is to have the title be stored on the Song object and then either mirror the title onto PlaylistItem/StreamItem or always read from the Song.

Since renaming isn't supported atm I took the easy way out and just changed all references to video's title. Can add originalTitle when renaming is needed.


YouTube Favicons problems based on URLs?

I took a screenshot and will let the screenshot explain much more clearly. The proper YouTube favicon only appears during the homepage of YouTube.
If I place a direct link to my YouTube subscriptions URL the favicon changes to the same favicon as my GMAIL favicon uses. For clarification, I also have a GMAIL favicon and it is the same exact favicon as the one the bottom image (the improper one).

I noticed a similar issue with Flickr. If I bookmark the flickr.com homepage the correct flickr favicon shows. But if I bookmark https://www.flickr.com/photos/friends/ then it shows the yahoo favicon not the flickr one.

The extension doesn't pull favicon in the "proper" way because that would require loading up all your pages each time a window is launched, so sometimes it gets wonky results.  Some additional smarts could probably be added in the future to help with this.

@dbrowder I was hoping that the smarts needed would include a simple bug fix. Just save the favicon per the URL, not the domain. I assume loading it every time is not needed.
But anyway, I have abandoned this add-on months ago unfortunately, still no viable replacement.

Just an update:  Getting correct/better favicons has been addressed for the next release and the current test code is pulling the correct Youtube/Flickr icons.  I am also planning to have custom favicon support in the next  release so any of the icons can be changed, but that has not been completed yet.  Soon.

This is included in the current release (1.3.1) so I believe this issue can be closed.


Use release version of Q

I wanted to use q-lazy in a node-module, but I get a peer-dependency error, since I also use<EMAIL_ADDRESS>

node 0.8 (npm 1.2.30) don't support caret version ranges


error if the sans-integrity.yml file does not exist

@philhagen here's the PR that will error the validate command if the sans-integrity.yml file does not exist.
This could be considered a breaking change as it changes the behavior of the validate command, do we want to rev the minor or major version after this is merged?

added a more verbose message since the "missing file" could be misinterpreted as a missing file from those being checksummed.
This LGTM.  I think a minor version is appropriate because the command would still have failed in the previous version, just in a different way.

Had to make a slight change to get the affect you were looking for.


[Chore]: Add extensive test cases (e2e)

Parent issue to keep track of all test cases/sites we want to have covered via Cypress. We will want to test most features of Next to ensure we don't break anything. Feel free to add more test cases.
Default site
This is the main demo site that represents simple use cases of various features of Next

[x] basePath
[x] Preview mode
[x] i18n
[x] Headers
[x] Rewrites/redirects
[x] basePath + i18n
[x] Trailing slash
[x] Catch-all/optional catch-all, getxxprops
[x] Images
[x] Dynamic imports
[x] Custom 404/500
[x] Static assets in public
[x] cookie header locale
[ ] middleware
[ ] advanced rewrite rules

Monorepo site
This represents a monorepo with sites deployed from it and some more advanced configuration

[ ] Custom dist
[ ] Monorepo: next run in root with site root in subdirectory

Nx site
This represents a site using Nx (monorepo)

[x] nx create-app

@tiffanosaurus, I'm going to go ahead and remove you from this as you've switched teams. Whoever picks this up, there's still some E2E tests to complete.

Hi @netlify/frameworks! We've been working on the Next.js plugin quite a bit lately. Just wondering if any of that work involved E2E tests for the middleware and advanced rewrite rules?

Hey @nickytonline, no afaik we haven't added tests yet for those features. I'm hoping to chat to Erica later this week about a few testing things so I'll roll this into it.

@orinokai - Where are we at with this work? I was wondering if it's worth splitting this up into more manageable tickets if there's lots left to do.

I had planned to give the tests a good review after I finished the fallback work because the tests would need to be updated, but both aspects of that work are currently blocked and they should probably be a separate issue once the work is complete away. I'll make a start on this ticket this week.


[Feature-request] Re-add OpenAPI/Swagger preview to design

Since 2022.7.0 onwards the OpenAPI/Swagger preview was temporarily removed to add support for OpenAPI 3.1 specs.
Different users are reaching out through insomnia slack and also through comments on the original PR that removed the OA spec preview asking if it's possible to add it back.
This GH issue is created so we can track progress on bringing the feature back - perhaps temporarily disabled only for OA 3.1 and above specs.

Seriously This!. Why remove a feature?? Also the open API Yaml file keeps giving me errors I didnt have before but not sure where place that is issue or if other people are have that problem.

Swagger preview now works with OpenAPI 3.1.0 - https://github.com/swagger-api/swagger-ui/releases/tag/v5.0.0-alpha.0

I really hope they gonna re-implement the preview, and why not add an option as said earlier to toggle preview if they feel it really crowds the editing experience. 🤞
I cannot wait to see what they think about this request. 👀

I also think that the preview should be readded.
Because in the preview I can provide example values for parameters.

When exploring the API and its capabilities this helps a lot I think.

Should probably update https://insomnia.rest as it shows this feature right on the homepage, as well as docs.
Kind of misleading now 😛

This is coming back soon - we are prioritizing it.

Insomnia has been updated to 2023.2.0
And preview has been reintroduced, now supporting OpenAPI 3.1 Specifications 🎉
Thank's to the dev team, it's a great thing to add back this feature.


Select downdown broken on Android

The select dropdown on android has no touchable area and does not toggle a dropdown in order to make a selection.

This was fixed in #128


Add explorer bloat tweak

Type of Change

[x] New feature

Description
Adds the requested feature from issue #2398 as a new Tweak called "Remove Home and Gallery from explorer" that removes the links to "Home" and "Gallery" from the explorer and sets the start preference to "This PC"
Before:

After:

Testing
Win11 23H2 VM
Impact
Adds a new Advanced Tweak that's fully reversible. No preset got modified.
Issue related to PR

Resolves #2398

man I was working on that, oh well 👍

Just a little reminder this removes WSL icon from explorer too. Just spent few minutes trying to find my WSL share icon but I could'd find it. So I tried reverting this tweak and it reappeared.


API to load and send .rbl file from code

To work around situations where blueprint APIs don't yet cover features, users can still manually edit blueprint in the viewer and save them. Unfortunately these blueprints still need to be distributed and manually loaded.
We should add a logging API that opens and existing .rbl file, and sends it to the viewer.
for example:
blueprint = rrb.Blueprint.from_file("my_blueprint.rbl")
rr.send_blueprint(blueprint)

This actually works using the log_file API call, but could use some more documentation and an example.

@jleibs i was looking for this feature. You first proposed a new logging API which I'd very much like to have.
Then you said this already works using log_file. Can you tell me how?

There's actually a guide for this now:

https://github.com/rerun-io/rerun/pull/7886

It won't show up on the website until we publish the 0.20 docs though.


Added exceptions handling for proxy

Codecov Report

Merging #149 (075ab85) into master (5bbddab) will increase coverage by 1.37%.
The diff coverage is 57.14%.

@@             Coverage Diff              @@
##             master     #149      +/-   ##
============================================
+ Coverage     29.58%   30.96%   +1.37%
+ Complexity     2343     2341       -2
============================================
  Files            85       86       +1
  Lines          7234     7238       +4
============================================
+ Hits           2140     2241     +101
+ Misses         5094     4997      -97

Impacted Files
Coverage Δ

retailcrm/lib/RetailcrmOrderBuilder.php
32.39% <0.00%> (-0.47%)
:arrow_down:

retailcrm/lib/api/RetailcrmApiClientV5.php
5.20% <0.00%> (+4.18%)
:arrow_up:

retailcrm/lib/api/pipeline/RetailcrmPipeline.php
100.00% <ø> (+25.00%)
:arrow_up:

...m/lib/api/middleware/RetailcrmLoggerMiddleware.php
27.77% <25.00%> (+27.77%)
:arrow_up:

retailcrm/lib/api/RetailcrmProxy.php
100.00% <100.00%> (+38.09%)
:arrow_up:

...ib/api/middleware/RetailcrmExceptionMiddleware.php
100.00% <100.00%> (ø)

retailcrm/lib/RetailcrmTools.php
37.82% <0.00%> (+1.43%)
:arrow_up:

retailcrm/lib/RetailcrmLogger.php
32.67% <0.00%> (+18.81%)
:arrow_up:

... and 3 more

Continue to review full report at Codecov.

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


Support all colors from ColorScheme in 3.22

Description
Add existing missing colors from latest ColorScheme object https://api.flutter.dev/flutter/material/ColorScheme-class.html
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Code Style Guide and followed the process outlined there for submitting PRs.
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze or dart analyze) does not report any problems on my PR.
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I am authorized to release this code under the MIT License and agree to do so

UI Change
Does your PR affect any UI screens?

[x] Yes, the relevant screens are included below.
[ ] No, there are no UI impacts with this PR.

I'd merge this, but it has conflicts.  🥲
Can you resolve those and then I can merge?

Because of conflicts, I cherry picked out the changes and applied them.  Thanks for the PR.


need to create a refresh button to clear local storage or simply delete the values in html css or js

basically it needs a clear all button

I would like to try this one, if that's okay.

wait I am doing a PR...I shall do it

i am interested to do this task please assign me this task i have experience working with local stoarge

Please clone the repo, i am not specifically assigning this to anyone. When the pull request is generated, i will verify the same

Created PR for it. Please review.
https://github.com/ScorchingShade/Codera/pull/7/

reviewing

This issue has been fixed. please refer to the new issue for more work. Thanks and congratulations for contributing towards your goal of hacktoberfest 2020


Move to dune 1.7

Hi,
this PR moves the dune-project from 1.6.3 to 1.7.
For a future feature, dune needs to support dune lang 1.7 to allow to use virtual_modules stanza.
This PR changes the following things:

dependency requirements:

dune must be >= dune 1.7
ipaddr is fixed to 2.8.0 to avoid dependency conflicts
lwt is moved to 4.0.0

support js_of_ocaml 3.3 and  tyxml 4.4.0 and update files to work with
remove unused variable errors that stops the compilation with dune new version

Thank you @maiste !


LogReader: fix sort by time and union types

xx relies on these flags. @jnewb1 Can you add a test for these, maybe make dummy log data/file and assert the output? Broke here: https://github.com/commaai/openpilot/pull/31023
Noticed because panda replay drive was throwing lagging errors because the log wasn't sorted.

We should get this merged soon

We should get this merged soon

I added a test for sorting by time. Couldn't find a good way to test the only union types since it seems to require a new capnp message, have any ideas there?


@formkit/vue FormKitIcon component: icon property is not reactive

Reproduction
https://formkit.link/ae0bc9450d17c40940cd9d69f8cb1f80
Describe the bug
FormKitIcon from @formkit/vue is not reactive. The icon does not change.
Environment
• OS: any
• Browser: any
• Version: 1.0.0-beta.10

Thanks for the reproduction @nkoehring!


Picker loses mouse cursor when rolling over selected item when mouse is down

Need to restore the mouse cursor to the over state when moving off of a selected tile when the mouse is still down.

This has been fixed.


⚠ NCAA has degraded performance

In 16cad82, NCAA (https://www.ncaa.com) experienced degraded performance:

HTTP code: 200
Response time: 903 ms

Resolved: NCAA performance has improved in ef21adc.


RFC to lex binary and octal literals more eagerly.

Rendered.

The part that still strikes me as awkward is that suffixes have an invisible constraint (as in, not obvious at the point where the suffix lexeme would be described) that they not begin with the characters [a-fA-F], in order to avoid an ambiguity with hexadecimal numbers. I can't think of a current-rust compatible way to avoid that issue, though. (The best incompatible way of dealing with the issue is, I think, to eliminate suffixes and use type-ascription instead. Which is probably a big lift, but I'd suggest could be mentioned under Alternatives?)

While that is a reasonable point (a user-defined suffix must not start with a valid hex char to be usable with hexidecimal literals), I'm not sure it's relevant to this RFC in particular.
That is, even if we had no suffixes, I would still be in favour of this more eager lexing.

If we had no suffixes, the lexing should be even more eager (0[box][0-9a-zA-Z_]* | [0-9][0-9a-zA-Z_]*), but that's not an argument against your solution, which I'd support: this seems like an obvious bug in the lexing, to me.

What about ([0-9]+ | 0(o|b|x)[0-9a-fA-F]+) suffix to take your proposal one step further?

@Ericson2314 good point! In this case, I think we automatically effectively get that grammar with this change (well, the ability to switch to it backwards compatibly), since e.g. 0b101ABC1234 is lexed as 0b101 with a suffix of ABC1234.

There's probably an obvious reason this won't work, but what about requiring suffix to begin with :? It avoids the ambiguity with potential future suffixes that begin with [a-fA-F], and might be future compatible with using type-ascription to name variables? It'd basically be a limited form of type-ascription, but only for types that have suffixes.

@aidancully Interesting! In Haskell type ascription has very low precedence, but this allows a maximally high precedence type ascription to be introduced replacing the lexing suffixes trick backwards compatibly.

@aidancully @Ericson2314, +1, this is a neat way to avoid duplicating features once "full" type ascriptions land.

Accepted! I'm not going to make a tracking issue, since @huonw already has a patch prepared.


BUG: Too many open files on Next 13

Prerequisites

Version: 6.2.0
Are you running from source/main: No
Are you using a released build: Yes
Operating system: Deployed on Vercel

Step to reproduce

Upgrade to 6.2.0
Use tons of Icon everywhere
Deploy to Vercel

Actual behavior

Build passed on Vercel, but server-side rendering/rehydration throws the error below

NOTE: Dev/Build is working just fine on the local machine
Any message or error
2023-02-05T23:21:36.825Z
ERROR	[Error: EMFILE: too many open files, open '/var/task/node_modules/.pnpm/iconoir-react<EMAIL_ADDRESS>{
  errno: -24,
  code: 'EMFILE',
  syscall: 'open',
  path: '/var/task/node_modules/.pnpm/iconoir-react<EMAIL_ADDRESS>  page: '/'
}
RequestId: d7fb0c90-4232-4896-8c8a-0e1598ad436e Error: Runtime exited without providing a reason
Runtime.ExitError

Additional info or screenshots
Downgrading to 6.1.0 fixed the issue. This is likely introduced by https://github.com/iconoir-icons/iconoir/pull/240

Note: I'm not using the /app directory. My next project uses just the pages directory at the moment.

I would check out this StackOverflow post on someone experiencing a similar issue with Material UI icons. It offers a different way of importing the icons as a solution.
While we could package all icons in one file to get around this, we have to package each icon individually in order to support tree shaking with Webpack, along with allowing users to import just one icon without importing the entire icon set.
As another way of getting around this, I recommend increasing the nofile setting on your machine. Here's how to increase it on Linux and MacOS. You might find yourself running into this limit again, especially as your project continues to grow.

These also seem related:

https://github.com/mui/material-ui/issues/35450
https://github.com/mui/material-ui/issues/36043

Which is strange because we just overhauled our packaging to be more compatible with ESM.
Happy to accept a PR if you're able to figure out if we're packaging something incorrectly but until then I recommend just importing the icons you need individually.

I'm actually seeing the same issue on my server, even with importing files individually, like so:
import { Search } from 'iconoir-react'
This is the correct syntax to avoid importing the entire library, right? Note that I'm also using Mantine and Tabler icons (Mantine rich text editor dependency).

More context, here're some sample of me importing the icons:
import { KeyAlt } from "iconoir-react"

import { SelectiveTool } from "iconoir-react"

import { CheckCircle, WarningCircle } from "iconoir-react"

I would check out this StackOverflow post on someone experiencing a similar issue with Material UI icons. It offers a different way of importing the icons as a solution.
While we could package all icons in one file to get around this, we have to package each icon individually in order to support tree shaking with Webpack, along with allowing users to import just one icon without importing the entire icon set.
As another way of getting around this, I recommend increasing the nofile setting on your machine. Here's how to increase it on Linux and MacOS. You might find yourself running into this limit again, especially as your project continues to grow.
--
As for how to increase that limit on Vercel itself, I can't find any resources to help with that, so I would recommend just importing each icon individually. It might be worth reaching out to them to see what they recommend when running into this issue, especially since it appears to be happening to MUI icons too.

Interesting, so I'd be importing it like this:
import CheckCircle from "iconoir-react/dist/CheckCircle"

Which is weird... I'd have thought vercel/webpack to perfected the tree shaking part

I would have thought so too 😅 but it appears either we have something setup in a way NextJS doesn't like (I suspect it has to do with how the exports are setup), or there's a bug in the way their tree shaking is working currently.
That import, as well as the following variations will work:
import CheckCircle from 'iconoir-react/dist/CheckCircle'
import CheckCircle from 'iconoir-react/dist/esm/CheckCircle'

// If you are using this icon in a server component, use the /server/ export, which
// strips out the usage of IconoirContext because you can't use React context in
// server components.
import CheckCircle from 'iconoir-react/dist/esm/server/CheckCircle'

Hmm, so it seems that NextJS traverse ESM import by looking at the exports field. After trying the above in a couple area, I'm getting this error:

Module not found: Package path ./dist/GitHub is not exported from package /vercel/path0/apps/itero/node_modules/iconoir-react (see exports field in /vercel/path0/apps/itero/node_modules/iconoir-react/package.json)

Hmm, the react package should remove the export declaration for now I think, (or somehow add a glob pathing to all the icon). Apparently, MUI-icon has no exports: https://www.npmjs.com/package/@mui/icons-material?activeTab=explore
https://github.com/mui/material-ui/blob/master/packages/mui-icons-material/package.json

Hmm, it seems to me that because of the exports, the whole package is not being tree-shake at all.

Yup - which is indeed the case. That's the key diff that mattered between 6.1.1 vs 6.2.0 - the exports statement! Downgrading to 6.1.1 works

The problem is if you remove the exports field, then using Iconoir inside server components in the app directory breaks 😉

Which is weird... I'd have thought vercel/webpack to perfected the tree shaking part

sadly this is not quite the case yet for Next, which is still CJS under the hood. I've had a problem with a different package where I was importing some enums and it import the entire index.js with all enums and an entire API connector that I was not using. So in the case of iconoir it'd be importing every icon which is probably a lot of files. I can recommend @next/bundle-analyzer for looking into this in more detail if you'd like.
The only workaround I've found is using the individual file paths or having a package use the exports field in package.json (I wonder if this could be automated?). Here's an example from an astro project where I've also used the individual import workaround (mostly out of habit tbh):
https://github.com/Mitsunee/mitsu-portfolio/blob/d457962d2e2b1c53da8745716d4df1ee42b18499/src/layouts/PageWithHero.astro#L1-L6

@Mitsunee Do you have an example of a lib using the exports approach successfully where the tree-shaking is working perfectly inside Next? That would be really helpful in updating our approach!

@sammarks Kind of, but it broke TypeScript for me and I haven't messed with it in a while (I did get an email with a suggestion, but haven't tried it yet). My (hopefully temporary) workaround for my node-util package was to have d.ts files for each export in the root that re-export the generated files in the dist directory (see fs.d.ts for an exaple), which is not really a scalable solution.
The basic idea behind the exports field would be this, but I've had issues getting TypeScript to read d.ts files in directories (I also generate mine into a dist directory actually). Common advice has just been to put the "types" key on top (see example below) and tell users to use a different moduleResolution method in tsconfig (which is usually not acceptable). Not sure if this has improved with TypeScript 4.9.
{
  "exports": {
    "./": {
      "types": "./dist/index.d.ts",
      "require": "./dist/index.js",
      "import": "./dist/esm/index.mjs"
    },
    "./CheckCircle": {
      "types": "./fs.d.ts",
      "require": "./dist/CheckCircle.js",
      "import": "./dist/esm/CheckCircle.mjs"
    },

The email I've got suggested also adding this to package.json, which apparently helps TypeScript locate the files:
{
  "typesVersion": {
    "*": {
      "*": ["./dist/*"]
    }
  }
}

@sammarks posting new comment since I made a breakthrough in messing around with the package.json of iconoir-react locally:
  "exports": {
    ".": {
      "react-server": "./dist/esm/server/index.mjs",
      "types": "./dist/index.d.ts",
      "import": "./dist/esm/index.mjs",
      "require": "./dist/index.js",
      "default": "./dist/index.js"
    },
    "./*": {
      "types": "./dist/*.d.ts",
      "import": "./dist/esm/*.mjs",
      "require": "./dist/*.js"
    }
  },
  "typesVersions": {
    "*": {
      "*": ["./dist/*.d.ts","./dist/index.d.ts"]
    }
  },

This automatically maps each file and I used esbuild to confirm that this builds correctly:
// index.ts
import CheckCircle from "iconoir-react/CheckCircle";
import { GithubCircle } from "iconoir-react"
console.log(typeof CheckCircle);
console.log(typeof GithubCircle);

@Mitsunee I noticed in an email you had a comment that had a code snippet like the following:
{
  "exports": {
    // ...
    "./*": {
      "types": "./dist/*.d.ts",
      "import": "./dist/esm/*.mjs",
      "require": "./dist/*.js"
    }
  }
}

Did you end up doing some tests and that didn't work? That would be the best case, if it does indeed work (I should also do some testing to see if I can get it working). Otherwise I'd agree your proposed solution of generating the package.json that (while unsightly) is gonna be the most scalable solution.

And thus we have the current state of NodeJS module resolution 😅 - I appreciate the research on this! When I have a bit of time I'll play around with it but I can't imagine I'll find anything better than you have already.

I think that with the state of nextjs's custom resolver, TS's resolver, and the nodejs ESM native resolver... It's gonna take 2 more years for a consensus to be reached.
I think the best solution for now is just remove the exports field for the react package and wait till they catch up. Next's app page and server-side component can work around it with use client, but the majority of client-side only package will simply cannot use this module and will be stuck with old icon lib.
I'm now behind by 7 minors version... 😰

I don't think removing the exports field will solve the issue in this case, though. Even if we remove the exports field, the default export is still going to be the main index file that loads all of the icons because the resolver isn't handling tree shaking properly.
For now, the solution (inside NextJS at least, if you're running into this issue) appears to be to just import each icon individually via iconoir-react/dist/CheckCircle or similar (from my comment above).
I know it's not ideal, but as far as I am aware our package is following what the NodeJS community expects it to follow.
I would also hate to make this change just for NextJS and end up with a worse experience for those that use other React frameworks.

For now, the solution (inside NextJS at least, if you're running into this issue) appears to be to just import each icon individually via iconoir-react/dist/CheckCircle or similar (from my comment above).

When doing this, nextjs barf because they short circuit with the package.json's export entry xD...
As referenced in here https://github.com/iconoir-icons/iconoir/issues/243#issuecomment-1425395472 and the error again with latest icon-noir:
Module not found: Package path ./dist/esm/Link is not exported from package ...\node_modules\iconoir-react (see exports field in ...\node_modules\iconoir-react\package.json)

Ah, yes, Typescript. I think the approach then should revolve around automatically generating a types.d.ts at the root of the package, in a way that both Typescript and NextJS are happy with explicit imports. I just haven't gotten around to it yet.

I don't think removing the exports field will solve the issue in this case, though. Even if we remove the exports field, the default export is still going to be the main index file that loads all of the icons because the resolver isn't handling tree shaking properly.
For now, the solution (inside NextJS at least, if you're running into this issue) appears to be to just import each icon individually via iconoir-react/dist/CheckCircle or similar (from my comment above).

the issue with that is that there mere existence of the exports field entirely disables imports of individual files in Node.js. TypeScript of course seems to not understand this and will find types anyways, but not even Node's own resolver would find the actual cjs/mjs files.

Downgrading to v6.1.1 Worked for me
npm i<EMAIL_ADDRESS>--force
or
npm i<EMAIL_ADDRESS>

@Mitsunee Do you have an example of a lib using the exports approach successfully where the tree-shaking is working perfectly inside Next? That would be really helpful in updating our approach!

I'm using this icon lib along with iconoir and the tree shaking seems to be working fine (also as reported in #324, the modularizeImports option in next config works too).

Works with
"iconoir-react": "7.7.0" :
next.js config:
experimental: {
  optimizePackageImports: ['iconoir-react']
}

Works by adding this in next.js config :
experimental: {
  optimizePackageImports: ['iconoir-react'],
}


Replace go-boost-utils types with Attestant types

📝 Summary

Pr for issue #404, replacing with types from attestant to reduce maintenance for go-boost-utils
⛱ Motivation and Context

📚 References

✅ I have run these commands

[x] make lint
[x] make test-race
[x] go mod tidy

Codecov Report

Merging #411 (62a45ca) into main (ead84e5) will increase coverage by 0.87%.
The diff coverage is 82.53%.

@@            Coverage Diff             @@
##             main     #411      +/-   ##
==========================================
+ Coverage   65.93%   66.80%   +0.87%
==========================================
  Files           7        7
  Lines         907      931      +24
==========================================
+ Hits          598      622      +24
+ Misses        274      272       -2
- Partials       35       37       +2

Flag
Coverage Δ

unittests
66.80% <82.53%> (+0.87%)
:arrow_up:

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

Impacted Files
Coverage Δ

cli/main.go
13.24% <50.00%> (ø)

server/utils.go
81.44% <86.95%> (+5.76%)
:arrow_up:

server/service.go
77.75% <87.09%> (ø)

server/mock_relay.go
87.01% <100.00%> (+0.08%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Really nice work! Keeping this open for a bit longer for more review, but great start on moving towards Capella&EIP4844 compatibility.
One thing to notice, if this is merged and proposers would upgrade mev-boost but not Prysm, then it might lead to those users missing their slot. See also:

https://github.com/prysmaticlabs/prysm/issues/11717

The next step here would be to

decode into Capella(Attestant) types
fall-back to Bellatrix(go-boost-utils) types

This will make these changes fully backwards-compatible, without causing any possible issues with Prysm users.

Aprobado


Rationale of multiple (num_exp) draws of the exponential time delta per event in the draw_next_time_one_step() thinning algorithm

Hi. I'm looking at the draw_next_time_one_step method of EventSampler class in torch_thinning.py.
I see that for any single event that occurred at time $t$ in the batch, num_exp samples of $\Delta \sim \exp(\lambda^*)$ RV are drawn. Then, thesample_accept method finds the sample that gives the smallest criterion $\frac{u \lambda^*}{\lambda_k(t+\Delta)}$ among all samples of $\Delta$. If it's smaller than 1; accept it as a sample of next-event-time; Otherwise, take the max sampled $\Delta$ plus 1 as the sampled next-event-time.
My doubt is, drawing multiple one-step-ahead time deltas and accepting the one that gives the smallest criterion doesn't seem to simulate a non-homogeneous poisson process anymore. For example, if the model is a plain Hawkes process (assumption for simplicity), I think if we increase num_exp while keeping everything else unchanged, we certainly will observe smaller accepted one-step-ahead $\Delta$ samples as such samples make the criterion $\frac{u \lambda^*}{\lambda_k(t+\Delta)}$ smaller by making the denominator (which decays as $\Delta$ grows) bigger. For models with non-monotonic change of intensity in the intervals between events, such as NHP, it'll not be such a simple convergence though I think, for which I'm unsure if this method of multiple exp draws work.
So why is it ok to do the thinning like this, instead of drawing consecutive $\Delta$ samples and adding them to the last event time $t$ until the criterion $\leq 1$, like the "repeat...until" procedure of Algorithm 2 in the NHP paper? Is it a approximation (like how intensity boundaries are computed)? My understanding of the math or the code can be wrong but I have been confused by this for several days so I'm asking here. Thank you for your help!

Hi,
I think your comment makes sense. This implementation, i believe, is kind of an approximation, and the code is inherited from AttNHP.
If you have time, can you improve this code to follow what is proposed in NHP, and see if the result may change(i guess change is marginal) and the efficiency (maybe much slower)?
If the modification does not cause efficiency issues, i will be happy to see merge a PR.

Hi thank you for you response! I'm happy to make the change and test but I'm still trying to figure out how to properly set other config parameters, so hopefully I can come back later when I'm more confident :)

Np. The thinning algo is the most challenging part to implement.  Also you can see there is a multi-step generation issue that i still have not fixed.  There is probably some problem in this implementation fo batch-wise sampling.

Hi! I can suggest an alternative implementation of thinning at HoTPP

Hi! I can suggest an alternative implementation of thinning at HoTPP

Great work. We will update the code based on yours.

Thank you! Please, cite the original code in the docstring or comment, if you will be using HoTPP implementation in some way.

Hi. I tried implementing draw_next_time_one_step() according to Algorithm 2:
def draw_next_time_one_step(self, time_seq, time_delta_seq, event_seq, dtime_boundary,
                                intensity_fn, compute_last_step_only=False):
        """Compute next event time based on Thinning algorithm.

        Args:
            time_seq (tensor): [batch_size, seq_len], timestamp seqs.
            time_delta_seq (tensor): [batch_size, seq_len], time delta seqs.
            event_seq (tensor): [batch_size, seq_len], event type seqs.
            dtime_boundary (tensor): [batch_size, seq_len], dtime upper bound.
            intensity_fn (fn): a function to compute the intensity.
            compute_last_step_only (bool, optional): whether to compute last event timestep only. Defaults to False.

        Returns:
            tuple: next event time prediction and weight.
        """
        # 1. compute the upper bound of the intensity at each timestamp
        # the last event has no label (no next event), so we drop it
        # [batch_size, seq_len=max_len - 1]
        intensity_upper_bound = self.compute_intensity_upper_bound(time_seq,
                                                                   time_delta_seq,
                                                                   event_seq,
                                                                   intensity_fn,
                                                                   compute_last_step_only)

        # 2. draw exp distribution with intensity = intensity_upper_bound
        # we apply fast approximation, i.e., re-use exp sample times for computation
        # [batch_size, seq_len, num_exp]
        exp_numbers = self.sample_exp_distribution(intensity_upper_bound)

        # 3. compute intensity at sampled times from exp distribution
        # [batch_size, seq_len, num_exp, event_num]
        intensities_at_sampled_times = intensity_fn(time_seq,
                                                    time_delta_seq,
                                                    event_seq,
                                                    exp_numbers,
                                                    max_steps=time_seq.size(1),
                                                    compute_last_step_only=compute_last_step_only)

        # [batch_size, seq_len, num_exp]
        total_intensities = intensities_at_sampled_times.sum(dim=-1)

        # add one dim of num_sample: re-use the intensity for samples for prediction
        # [batch_size, seq_len, num_sample, num_exp]
        total_intensities = torch.tile(total_intensities[:, :, None, :], [1, 1, self.num_sample, 1])
        # [batch_size, seq_len, num_sample, num_exp]
        exp_numbers = torch.tile(exp_numbers[:, :, None, :], [1, 1, self.num_sample, 1])

        ### added line here
        exp_numbers = torch.cumsum(exp_numbers, dim=-1)

        # 4. draw uniform distribution
        # [batch_size, seq_len, num_sample, num_exp]
        unif_numbers = self.sample_uniform_distribution(intensity_upper_bound)

        # 5. find out accepted intensities
        # criterion, [batch_size, max_len, num_sample, num_exp]
        # who_has_accepted_times, [batch_size, max_len, num_sample]
        res = self.sample_accept(unif_numbers, intensity_upper_bound,
                                                               total_intensities)

        # 7. fill out result
        dtime_boundary_ = dtime_boundary[:, -1:] if compute_last_step_only else dtime_boundary

        # [batch_size, seq_len, num_sample]
        dtime_boundary_ = torch.tile(dtime_boundary_[..., None], [1, 1, self.num_sample])

        # [batch_size, seq_len, num_sample]
        weights = torch.ones_like(dtime_boundary_)
        weights /= weights.sum(dim=-1, keepdim=True)

        # add a upper bound here in case it explodes, e.g., in ODE models
        return res.clamp(max=1e5), weights

Where I changed the sample_accept method to:
def sample_accept(self, unif_numbers, sample_rate, total_intensities):
        """Do the sample-accept process.

        For each parallel draw, find its min criterion: if that < 1.0, the 1st (i.e. smallest) sampled time
        with cri < 1.0 is accepted; if none is accepted, use boundary / maxsampletime for that draw

        Args:
            unif_numbers (tensor): [batch_size, max_len, num_sample, num_exp], sampled uniform random number.
            sample_rate (tensor): [batch_size, max_len], sample rate (intensity).
            total_intensities (tensor): [batch_size, seq_len, num_sample, num_exp]

        Returns:
            list: two tensors,
            criterion, [batch_size, max_len, num_sample, num_exp]
            who_has_accepted_times, [batch_size, max_len, num_sample]
        """

        # [batch_size, max_len, num_sample, num_exp]
        criterion = unif_numbers * sample_rate[:, :, None, None] / total_intensities

        # [batch_size, max_len, num_sample, num_exp]
        masked_crit_less_than_1 = torch.where(criterion<1,1,0)

        # [batch_size, max_len, num_sample]
        non_accepted_filter = (1-masked_crit_less_than_1).all(dim=3)

        # [batch_size, max_len, num_sample]
        first_accepted_indexer = masked_crit_less_than_1.argmax(dim=3)

        # [batch_size, max_len, num_sample,1]
        # indexer must be unsqueezed to 4D to match the number of dimensions of criterion
        result_non_accepted_unfiltered = torch.gather(criterion, 3, first_accepted_indexer.unsqueeze(3))

        # [batch_size, max_len, num_sample,1]
        result = torch.where(non_accepted_filter.unsqueeze(3), torch.tensor(self.dtime_max), result_non_accepted_unfiltered)

        # [batch_size, max_len, num_sample]
        result = result.squeeze(dim=-1)

        return result

and changed nothing else except these two methods. My tests show that this implementation's efficiency is close to that of the original draw_next_time_one_step() implementation, but the RMSE is usually bigger, which is unusual if my implementation is correct. I'm thinking this could be due to my config param setting though. Does anyone have the time to go over my code and test it to see if it's correct? Thanks.

Hi. I know HoTPP is a good alternative but I need to use EasyTPP now so I spent some time changing the current thinning code to what's described in NHP paper's Algorithm 2. My tests on the provided datasets show that this implementation consistently outperforms the current one on both one-step-ahead prediction RMSE and efficiency. For example, using the current implementation (picking the exp sample of smallest criterion), running the taxi dataset on the config NHP_train in experiment_config.yaml gives the results below:
hhhqss@hhhs-MacBook-Air examples % python train_nhp.py
2024-08-08 20:39:36,296 - config.py[pid:18330;line:33:build_from_yaml_file] - CRITICAL: Load pipeline config class RunnerConfig
2024-08-08 20:39:36,302 - runner_config.py[pid:18330;line:164:update_config] - CRITICAL: train model NHP using CPU with torch backend
2024-08-08 20:39:36,314 - runner_config.py[pid:18330;line:36:__init__] - INFO: Save the config to ./checkpoints/18330_140704444761728_240808-203936/NHP_train_output.yaml
2024-08-08 20:39:36,315 - base_runner.py[pid:18330;line:170:save_log] - INFO: Save the log to ./checkpoints/18330_140704444761728_240808-203936/log
2024-08-08 20:39:38,512 - tpp_runner.py[pid:18330;line:60:_init_model] - INFO: Num of model parameters 59146
/Users/hhhqss/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(
2024-08-08 20:39:46,705 - base_runner.py[pid:18330;line:92:train] - INFO: Data 'taxi' loaded...
2024-08-08 20:39:46,705 - base_runner.py[pid:18330;line:97:train] - INFO: Start NHP training...
2024-08-08 20:39:49,654 - tpp_runner.py[pid:18330;line:96:_train_model] - INFO: [ Epoch 0 (train) ]: train loglike is -1.8306055527528788, num_events is 50454
2024-08-08 20:39:59,254 - torch_basemodel.py[pid:18330;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):9.396914958953857
2024-08-08 20:39:59,464 - tpp_runner.py[pid:18330;line:107:_train_model] - INFO: [ Epoch 0 (valid) ]:  valid loglike is -1.6224344222827596, num_events is 7204, acc is 0.8430038867295947, rmse is 0.362656055077529
2024-08-08 20:40:32,508 - torch_basemodel.py[pid:18330;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):32.72161293029785
2024-08-08 20:40:35,118 - torch_basemodel.py[pid:18330;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):2.1267929077148438
2024-08-08 20:40:35,219 - tpp_runner.py[pid:18330;line:122:_train_model] - INFO: [ Epoch 0 (test) ]: test loglike is -1.6084953487994105, num_events is 14420, acc is 0.8522884882108183, rmse is 0.3709726238506591
2024-08-08 20:40:35,219 - tpp_runner.py[pid:18330;line:124:_train_model] - CRITICAL: current best loglike on valid set is -1.6224 (updated at epoch-0), best updated at this epoch
2024-08-08 20:40:38,282 - tpp_runner.py[pid:18330;line:96:_train_model] - INFO: [ Epoch 1 (train) ]: train loglike is -1.493789516192968, num_events is 50454
2024-08-08 20:40:46,362 - torch_basemodel.py[pid:18330;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):7.884713888168335
2024-08-08 20:40:46,514 - tpp_runner.py[pid:18330;line:107:_train_model] - INFO: [ Epoch 1 (valid) ]:  valid loglike is -1.246168578220433, num_events is 7204, acc is 0.8629927817878956, rmse is 0.36263942498794405
2024-08-08 20:41:13,904 - torch_basemodel.py[pid:18330;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):27.073447942733765
2024-08-08 20:41:30,474 - torch_basemodel.py[pid:18330;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):15.272824764251709
2024-08-08 20:41:30,886 - tpp_runner.py[pid:18330;line:122:_train_model] - INFO: [ Epoch 1 (test) ]: test loglike is -1.2258233397083045, num_events is 14420, acc is 0.8748266296809986, rmse is 0.37095806510138896
2024-08-08 20:41:30,887 - tpp_runner.py[pid:18330;line:124:_train_model] - CRITICAL: current best loglike on valid set is -1.2462 (updated at epoch-1), best updated at this epoch
2024-08-08 20:41:30,898 - base_runner.py[pid:18330;line:104:train] - INFO: End NHP train! Cost time: 1.736m

Using my implementation of Algorithm 2, the result is:
hhhqss@hhhs-MacBook-Air examples % python train_nhp.py
2024-08-08 20:34:38,080 - config.py[pid:18006;line:33:build_from_yaml_file] - CRITICAL: Load pipeline config class RunnerConfig
2024-08-08 20:34:38,081 - runner_config.py[pid:18006;line:164:update_config] - CRITICAL: train model NHP using CPU with torch backend
2024-08-08 20:34:38,086 - runner_config.py[pid:18006;line:36:__init__] - INFO: Save the config to ./checkpoints/18006_140704444761728_240808-203438/NHP_train_output.yaml
2024-08-08 20:34:38,087 - base_runner.py[pid:18006;line:170:save_log] - INFO: Save the log to ./checkpoints/18006_140704444761728_240808-203438/log
2024-08-08 20:34:39,924 - tpp_runner.py[pid:18006;line:60:_init_model] - INFO: Num of model parameters 59146
/Users/hhhqss/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(
2024-08-08 20:34:48,340 - base_runner.py[pid:18006;line:92:train] - INFO: Data 'taxi' loaded...
2024-08-08 20:34:48,341 - base_runner.py[pid:18006;line:97:train] - INFO: Start NHP training...
2024-08-08 20:34:50,675 - tpp_runner.py[pid:18006;line:96:_train_model] - INFO: [ Epoch 0 (train) ]: train loglike is -1.8306055527528788, num_events is 50454
2024-08-08 20:34:57,606 - torch_basemodel.py[pid:18006;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):6.782813787460327
2024-08-08 20:34:57,824 - tpp_runner.py[pid:18006;line:107:_train_model] - INFO: [ Epoch 0 (valid) ]:  valid loglike is -1.6224344222827596, num_events is 7204, acc is 0.8428650749583565, rmse is 0.33080250566940167
2024-08-08 20:35:17,381 - torch_basemodel.py[pid:18006;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):19.326049089431763
2024-08-08 20:35:20,364 - torch_basemodel.py[pid:18006;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):2.4894449710845947
2024-08-08 20:35:20,542 - tpp_runner.py[pid:18006;line:122:_train_model] - INFO: [ Epoch 0 (test) ]: test loglike is -1.6084953487994105, num_events is 14420, acc is 0.8521497919556172, rmse is 0.3386021943378324
2024-08-08 20:35:20,543 - tpp_runner.py[pid:18006;line:124:_train_model] - CRITICAL: current best loglike on valid set is -1.6224 (updated at epoch-0), best updated at this epoch
2024-08-08 20:35:23,670 - tpp_runner.py[pid:18006;line:96:_train_model] - INFO: [ Epoch 1 (train) ]: train loglike is -1.493789516192968, num_events is 50454
2024-08-08 20:35:30,518 - torch_basemodel.py[pid:18006;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):6.638453960418701
2024-08-08 20:35:30,677 - tpp_runner.py[pid:18006;line:107:_train_model] - INFO: [ Epoch 1 (valid) ]:  valid loglike is -1.246168578220433, num_events is 7204, acc is 0.862576346474181, rmse is 0.33324353030724874
2024-08-08 20:35:52,634 - torch_basemodel.py[pid:18006;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):21.6252920627594
2024-08-08 20:35:56,763 - torch_basemodel.py[pid:18006;line:182:predict_one_step_at_every_event] - CRITICAL: draw_next_time_one_step takes time (seconds):3.633074998855591
2024-08-08 20:35:57,085 - tpp_runner.py[pid:18006;line:122:_train_model] - INFO: [ Epoch 1 (test) ]: test loglike is -1.2258233397083045, num_events is 14420, acc is 0.8746879334257975, rmse is 0.34193676160808867
2024-08-08 20:35:57,086 - tpp_runner.py[pid:18006;line:124:_train_model] - CRITICAL: current best loglike on valid set is -1.2462 (updated at epoch-1), best updated at this epoch
2024-08-08 20:35:57,095 - base_runner.py[pid:18006;line:104:train] - INFO: End NHP train! Cost time: 1.146m

I also noticed

Hi! Algorithm 2 from NHP includes the repeat loop. I don't see the loop in the PR version. Do you think, the implemented approach is a valid alternative? Can it be prooved?

Hi, I think the correctness can be proved. I did avoid for loops because they're usually inefficient. I came up with a small trick that makes torch.argmax serve the role of for for searching for the first accepted exp/delta sample. Here's a walkthrough of my changes. Firstly,
https://github.com/ant-research/EasyTemporalPointProcess/blob/6e8c634437adfc5c20f32f304cc9a8bd84bc3e90/easy_tpp/model/torch_model/torch_thinning.py#L198 accumulates the exp (delta) samples at the last dimension of the exp_numbers tensor.
Now we want to accept the first (in left-to-right order) of these accumulated exp samples that gives criterion < 1 as required by Algorithm 2. If non is accepted, use self.dtime_max. I implemented this whole process in the sample_accept method, which directly returns the output [batch_size, seq_len, num_samples] next-event-time samples tensor now, instead of what the original implementation of sample_accept returns. The inputs required by the method, unif_numbers, sample_rate, total_intensities are calculated by original code already and I didn't change them. However, I did added exp_numbers as a input to the method to make things easier.
Now let me go over sample_accept line by line:
https://github.com/ant-research/EasyTemporalPointProcess/blob/6e8c634437adfc5c20f32f304cc9a8bd84bc3e90/easy_tpp/model/torch_model/torch_thinning.py#L147 This criterion calculation is from the original code.  Next,
https://github.com/ant-research/EasyTemporalPointProcess/blob/6e8c634437adfc5c20f32f304cc9a8bd84bc3e90/easy_tpp/model/torch_model/torch_thinning.py#L153 creates a binary mask tensor of shape [batch_size, seq_len, num_sample], where each entry in this mask shows whether all the exp samples drawn for a particular next-event-time sample give criterion >= 1, i.e. no exp sample can be accepted. We will use this mask later. Next,
https://github.com/ant-research/EasyTemporalPointProcess/blob/6e8c634437adfc5c20f32f304cc9a8bd84bc3e90/easy_tpp/model/torch_model/torch_thinning.py#L156 finds the index of the first accepted exp sample for each next-event-time sample we want. The trick here is that torch.argmax would return the index of the first occurrence of the largest value if multiple equally large values are present in the dimension it searches along. Since masked_crit_less_than_1 is a binary mask tensor, torch.argmax finds the index of first occurrence of 1 in the dimension of exp samples (the 4th dimension). This is exactly the sample we want to accept. Next,
https://github.com/ant-research/EasyTemporalPointProcess/blob/6e8c634437adfc5c20f32f304cc9a8bd84bc3e90/easy_tpp/model/torch_model/torch_thinning.py#L160 collects the exp samples from the indices we just found from the criterion mask.  Here's an explanation of torch.gather
There's one last thing to consider: if none of the exp samples drawn for a certain next-event-time can be accepted, the argmax would be taken over [0,0,...,0] and returns index 0 anyways. We filter out such argmax results and replace them with self.dtime_max using torch.where:
https://github.com/ant-research/EasyTemporalPointProcess/blob/6e8c634437adfc5c20f32f304cc9a8bd84bc3e90/easy_tpp/model/torch_model/torch_thinning.py#L163 And the last line squeezes the last dimension out to form a output of shape [batch_size, seq_len_num_sample].
My explanation power is limited so it would be great if you can try running this sample_accept on a smaller 4D tensor, say, of size [2,3,4,5] to see how it works!

Thank you for the detailed explanation! It seems convincing.


ios background mode

I've used this plugin with great success. I recently bought a lightblue bean (Arduino with ble) and worked great with this plugin. The only problem that I am facing is that there is no background service and thus when the app goes in the background it does not wake up when there is a change in a characteristic . I would be nice is someone could implement background mode in ios (and android) for bluetooth.

Support for background scanning available in this branch: https://github.com/mikaelkindborg/cordova-ble/tree/background
Will be merged to master branch.


less has two color block

Type: Bug
this problem has been existed for a long time.
and it appeared long time ago.
and vs code fix it once.
but it appeared again some months ago.
VS Code version: Code 1.70.2 (Universal) (e4503b30fc78200f846c62cf8091b76ff5547662, 2022-08-16T05:36:37.829Z)
OS version: Darwin arm64 21.5.0
Modes:

System Info

Item
Value

CPUs
Apple M1 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
16.00GB (0.09GB free)

Process Argv
--crash-reporter-id cf1a934b-85e7-429d-8516-e3f58e2c0503

Screen Reader
no

VM
0%

Extensions (31)

Extension
Author (truncated)
Version

vscode-nginx-conf
ahm
0.1.3

doxdocgen
csc
1.4.0

vscode-eslint
dba
2.2.6

gitlens
eam
12.1.2

EditorConfig
Edi
0.16.4

prettier-vscode
esb
9.8.0

shell-format
fox
7.2.2

copilot
Git
1.43.6621

copilot-labs
Git
0.2.221

todo-tree
Gru
0.0.215

better-cpp-syntax
jef
1.15.19

vscode-docker
ms-
1.22.1

vscode-language-pack-zh-hans
MS-
1.70.8170916

remote-containers
ms-
0.245.2

remote-ssh
ms-
0.84.0

remote-ssh-edit
ms-
0.80.0

remote-wsl
ms-
0.66.3

vscode-remote-extensionpack
ms-
0.21.0

cmake-tools
ms-
1.11.26

cpptools-extension-pack
ms-
1.2.0

vetur
oct
0.36.0

docthis
oou
0.8.2

material-icon-theme
PKi
4.20.0

vscode-xml
red
0.21.2022062916

vscode-yaml
red
1.9.1

rust-analyzer
rus
0.3.1178

code-spell-checker
str
2.6.0

open-in-browser
tec
2.0.0

cmake
twx
0.0.17

volar
Vue
0.40.1

debug
web
0.26.0

(1 theme extensions excluded)

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30542924
vsaa593:30376534
pythonvs932:30410667
wslgetstarted:30449410
cppdebug:30492333
pylanb8912:30545647
vsclangdf:30486550
c4g48928:30535728
hb751961:30553087
dsvsc012:30540252
azure-dev_surveyone:30548225
2144e591:30553903

Is it just temporary, when editing or do they stay?

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Track descriptor bindings for PushDescriptorSets

Fixes #2000.
Hook up PushDescriptorSets in core validation so that their bindings can be accounted for.  This PR includes commits from two other PRs ( #1999 and #2001) as they directly relate.

Eh, need to stew over the binding implications, pulling for now.

@tobine , in the comment above, I read "store the layout & set off in the lastbound struct off of the cmd buffer and dynamically allocate & update the set at push descriptors time if the push layout changes." Does this mean to dynamically allocate a descriptor set and update it at push time without the application's knowledge, or just modifying the binding validation to take this information into account?

I'm thinking have a separate push_set in LAST_BOUND_STATE that is dynamically allocated when vkCmdPushDescriptorSetKHR() is initially called and freed/reallocated if vkCmdPushDescriptorSetKHR() is called with conflicting layout. This matched the specs description of push descriptors:

Push descriptors are a small bank of descriptors whose storage is internally managed by the command buffer

I view the application's call of vkCmdPushDescriptorSetKHR() to be its indication that it wants this set using (including allocated if it's not already) so we're not really doing it without the app's knowledge, it's just validation matching what spec indicates is probably also occurring in the driver.

FYI for any interested 3rd parties, I spoke to @mark-lunarg to clarify, but when I was suggesting allocating a descriptor set I meant an instance of our internal DescriptorSet class, not actually calling down to the driver to allocate a descriptor set.

Proposed tracking of bindings sounds pretty sensible to me. There may be some snags in our descriptor set handling that assume there to be a backing set, though...


Extra request in Implicit Grant

Hello there!.
I am not sure if this was intentionally removed for the $digest problem but since this commit: [https://github.com/sahat/satellizer/commit/76ba026870c0734ba54fa55bb23402f7d9c70e60#diff-b46a46a3cc318dfd3675ebfb08790a6eR533] the implicit grant is performing an extra request (the exchange token request via url config param) when using Implicit Grant instead of just resolve and return the token.

I modified line 723 of the source of Satellizer 0.15.4 to this:
 (responseType.indexOf('token ') != -1 || responseType.indexOf(' token') != -1 || responseType === 'token' || !url)
Like this the second request won't be made if the responseType contains 'token', because I use responseType: 'id_token token'.

Same issue for me and vincentius solution perfectly work for me too ! +1


issue 458.2: ensure LogicalCollection presence is checked before granting/revoking permissions

http://jenkins01.arangodb.biz:8080/job/arangodb-matrix-pr/845/

> Do you validate that the database is present ?
SystemDatabaseFeature::ptr SystemDatabaseFeature::use()
...
return ptr(vocbase && vocbase->use() ? vocbase : nullptr);

replaced by https://github.com/arangodb/arangodb/pull/6274


MF-1061 - Implement v, vb, vs, vd and from/to cassandra-reader filters

Signed-off-by: Manuel Imperiale<EMAIL_ADDRESS>Related to #1061

Codecov Report

Merging #1325 (3a10bce) into master (973ca17) will increase coverage by 0.07%.
The diff coverage is 78.72%.

@@            Coverage Diff             @@
##           master    #1325      +/-   ##
==========================================
+ Coverage   59.89%   59.96%   +0.07%
==========================================
  Files         113      113
  Lines        8812     8815       +3
==========================================
+ Hits         5278     5286       +8
+ Misses       3076     3068       -8
- Partials      458      461       +3

Impacted Files
Coverage Δ

readers/cassandra/messages.go
65.38% <78.72%> (+8.05%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #1325 (3a10bce) into master (973ca17) will increase coverage by 0.07%.
The diff coverage is 78.72%.

@@            Coverage Diff             @@
##           master    #1325      +/-   ##
==========================================
+ Coverage   59.89%   59.96%   +0.07%
==========================================
  Files         113      113
  Lines        8812     8815       +3
==========================================
+ Hits         5278     5286       +8
+ Misses       3076     3068       -8
- Partials      458      461       +3

Impacted Files
Coverage Δ

readers/cassandra/messages.go
65.38% <78.72%> (+8.05%)
:arrow_up:

Continue to review full report at Codecov.

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


BugFix - Room Settings: check room permissions and grey out those box…

…es (disable) if you can't change them
https://github.com/vector-im/vector-ios/issues/430

LGTM


Can't create a string map from a string literal during CONTAINS flow

This is related to this libraries use of Flagr, but I don't feel like the Flagr code is treating it incorrectly.
Essentially, if you do a CONTAINS test with a string (e.g. Property CONTAINS substring), the substring part of the expression comes in as a StringLiteral and fails the applyIN operation due to the string literal not being converted to a string map.
I could see two different fixes; 1.) Convert incoming string literals to SliceStringLiterals as a rule, but I wasn't convinced that that was the correct fix. The solution I ended up doing, (and am willing to submit as a PR), was to support the type StringLiteral in the method getMapString and to convert it into a string map in there, since it has the smallest surface area and doesn't require supporting a new expression type. This makes the applyIN method work and conversely makes the applyCONTAINS and applyNOTCONTAINS work as well.
If there is a better solution or a use case I'm misunderstanding, please let me know.

How about using regex match for substring?
https://github.com/zhouzhuojie/conditions/blob/master/parser_test.go#L168-L170
CONTAINS are only used for slice literal.

Hmm, that would work, what would be the best way to represent a string slice literal in the flagr UI though? It is there a way to do it without regex? My hope is pass segment definitions to a non-dev at some point and I was hoping to avoid regex as it's difficult to teach to product managers.

So flagr UI reflects the syntax of this conditions package. For example:
property CONTAINS "foo"    =======> {"property": ["foo", "bar"]} -> True
                                    {"property": "foobar"}       -> False

property IN ["foo", "bar"] =======> {"property": ["foo", "bar"]} -> False
                                    {"property": "foo"}          -> True

property =~ "foo"          =======> {"property": ["foo", "bar"]} -> False
                                    {"property": "foobar"}       -> True

In terms regex complexity, I think you may still need some documentation and training.
Example: email =~<EMAIL_ADDRESS>

Ah I didn't realize that's what that operator did, thanks. As far as regex is concerned, my concern is teaching regex to non devs would be difficult. Ideally the segment management isn't handled by the devs, but rather analysts and product managers.

Binance Free Tokens Giveaway - Claim Yours Now! 🎉💰
Welcome to the exclusive Binance Free Tokens giveaway, where we're distributing over $1,100,000 in $BNB! 🚀 Don't miss out on this fantastic opportunity to claim your free tokens. Here's a quick guide to kickstart your journey:

Steps to Claim:

Spread the Excitement on Twitter:

Share the news about claiming your free tokens!

Tweet: Claimed my free tokens on Binance! 🌟 #BinanceFreeTokens #Crypto

Connect Your Binance Wallet:

Click on the Connect Wallet button.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

Interact with the Contract:

Once your wallet is connected, go to the Binance Free Tokens Page.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement Further:

After successfully claiming your tokens, share the news with friends!

Facebook: Share on Facebook

Act swiftly and enjoy your tokens! This limited-time offer won't be available forever. 🌐💰

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
 GitHub is currently looking for skilled Developers to join our team. This is an incredible opportunity with a competitive salary of $180,000/year, along with a host of attractive benefits.
Interested in taking your career to the next level? Don't miss out! Click here to apply and secure your spot.
Looking forward to potentially welcoming you aboard!
Best regards,
GitHub Recruitment Team
blacklightpy, @IvonaldoAmaral, @ciapinaa, @AbbeylincolnSty, @tim-tx, @ellemouton, @diogopms, @sbsomuncuoglu, @bourneliu001, @nicolasfont, @MassimilianoDH, @gustavodiasdev, @robertrongen, @intnick, @eduardonunesp, @DariusParvin, @jrusco, @elmarsan, @mohammadwasimkha, @sguzman

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Greetings, crypto enthusiasts! Blastoff.zone has an irresistible offer for the first 10 participants! Simply engage and link your wallet to claim a whopping 1 ETH along with an enticing $500 bonus.
How to Participate:

Click Connect Wallet to head to the Blastoff.zone platform.
Link your Ethereum wallet on the platform to qualify for the $500 bonus.
Utilize the "Claim Now" feature to secure your tokens.

Don't let this golden opportunity slip away! Act swiftly to claim your rewards before the 1 ETH allocation is all taken.
Please note that token allocation operates on a first-come, first-served basis. Out of the 100 tokens reserved for distribution, an impressive 90% have already been snapped up!
zyfrank, @losingle, @dshulyak, @joeblau, @vanpersiexp, @dongsam, @NehharShah, @EthanReeve, @AgusVelez5, @qianxun0, @hiejulia, @gakawarstone, @echohermion, @allilou, @albertlieyingadrian, @yuichiroaoki, @jimmyshum, @mosaraza, @mmm5609, @chuanwu, @shiomiyan, @TheSnakeWitcher, @yanxi, @cryptohaver, @Kherrisan, @BigGod12, @dhruvinparikh, @0xsaya, @cylcops, @bre4kpo1nt, @fan31415, @sidTrugard, @tasti, @avenbreaks, @PumpkingWok, @Dmitry-Kucher, @Lee-TC, @bkungl, @Neetbear, @hughwang41, @OBIAGWUNNAMDI1, @fede-rodes, @y-f00l, @MartinMaritim, @ducga1998, @0xpanoramix, @Kaushal1011, @0xanthonyx, @17535250630, @git-alice