Improve aggregate performance massively

This change massively improves the performance of the aggregate transform by getting rid of calls into Arrow Compute: While nice in theory, the overhead of calling into the kernels was >80% of the time spent aggregating in benchmarks with a median slice size of 3.
The new implementation does a lot of template trickery to allow for flexibly working with scalars directly, which allows for keeping an accumulator per column and bucket that can simply be updated for every slice in the record batch that fits into the same bucket.
:memo: Checklist

[x] All user-facing changes have changelog entries.
[x] The changes are reflected on docs.tenzir.com/vast, if necessary.
[x] The PR description contains instructions for the reviewer, if necessary.

:dart: Review Instructions
@6yozo can you try this against your benchmarks?

Assertion fails with the test data:
05:58:18.231] applying 3 transform dcso-flow-aggregate
/home/gg/event-horizon/event-horizon/oss/vast/libvast/src/arrow_extension_types.cpp:62: assertion failed 'unexpected Arrow type id is not in caf::sum_type_access<arrow::DataType>::types'
/home/gg/vast/deps/install/bin/../lib64/libvast.so.2049.0(_ZN4vast6detail9backtraceEv+0x16)[0x7ffff631bd86]
/home/gg/vast/deps/install/bin/../lib64/libvast.so.2049.0(_ZN3caf15sum_type_accessIN5arrow5ArrayEE15index_from_typeERKNS1_8DataTypeE+0x88)[0x7ffff5e43008]
/home/gg/vast/deps/install/lib64/vast/plugins/libvast-plugin-aggregate.so(_ZN3caf15sum_type_accessIN5arrow5ArrayEE5applyINS_5errorERNS_23visit_impl_continuationIS5_Lm0ERZN4vast7plugins9aggregate11aggregation3addENSt3__110shared_ptrINS1_11RecordBatchEEEEUlTyRKT_E_EEJEEESF_RKS2_OT0_DpOT1_+0x3d)[0x7fffedb2ff3d]
/home/gg/vast/deps/install/lib64/vast/plugins/libvast-plugin-aggregate.so(_ZN3caf10visit_implINS_5errorELm1EE5applyIRZN4vast7plugins9aggregate11aggregation3addENSt3__110shared_ptrIN5arrow11RecordBatchEEEEUlTyRKT_E_RNSA_5ArrayEJEEES1_OSD_OT0_DpOT1_+0x33)[0x7fffedb2fed3]
/home/gg/vast/deps/install/lib64/vast/plugins/libvast-plugin-aggregate.so(_ZN3caf5visitIRZN4vast7plugins9aggregate11aggregation3addENSt3__110shared_ptrIN5arrow11RecordBatchEEEEUlTyRKT_E_RNS7_5ArrayEJENS_5errorEEENS5_9enable_ifIXcl8SumTypesIT0_DpT1_EEET2_E4typeEOSA_OSJ_DpOSK_+0x45)[0x7fffedb243b5]
/home/gg/vast/deps/install/lib64/vast/plugins/libvast-plugin-aggregate.so(_ZN4vast7plugins9aggregate11aggregation3addENSt3__110shared_ptrIN5arrow11RecordBatchEEE+0x1190)[0x7fffedb17290]
/home/gg/vast/deps/install/lib64/vast/plugins/libvast-plugin-aggregate.so(_ZN4vast7plugins9aggregate14aggregate_step3addENS_4typeENSt3__110shared_ptrIN5arrow11RecordBatchEEE+0x28d)[0x7fffedb129bd]
/home/gg/vast/deps/install/bin/../lib64/libvast.so.2049.0(_ZN4vast9transform13process_queueERKNSt3__110unique_ptrINS_14transform_stepENS1_14default_deleteIS3_EEEERNS1_6vectorINS_15transform_batchENS1_9allocatorISA_EEEEb+0x31a)[0x7ffff6ee84aa]
/home/gg/vast/deps/install/bin/../lib64/libvast.so.2049.0(_ZN4vast9transform12finish_batchEv+0x145)[0x7ffff6ee7fc5]
/home/gg/vast/deps/install/bin/../lib64/libvast.so.2049.0(_ZN4vast9transform6finishEv+0xef)[0x7ffff6ee7c2f]
Process 28901 stopped
* thread #9, name = 'caf.multiplexer', stop reason = signal SIGABRT
    frame #0: 0x00007fffeedb015c libc.so.6`__pthread_kill_implementation + 286
libc.so.6`__pthread_kill_implementation:
->  0x7fffeedb015c <+286>: movl   %eax, %ebp
    0x7fffeedb015e <+288>: negl   %ebp
    0x7fffeedb0160 <+290>: cmpl   $0xfffff000, %eax         ; imm = 0xFFFFF000
    0x7fffeedb0165 <+295>: movl   $0x0, %eax
(lldb) bt
* thread #9, name = 'caf.multiplexer', stop reason = signal SIGABRT
  * frame #0: 0x00007fffeedb015c libc.so.6`__pthread_kill_implementation + 286
    frame #1: 0x00007fffeed60306 libc.so.6`raise + 24
    frame #2: 0x00007fffeed49813 libc.so.6`abort + 213
    frame #3: 0x00007ffff5e43012 libvast.so.2049.0`caf::sum_type_access<arrow::Array>::index_from_type(arrow::DataType const&) + 146
    frame #4: 0x00007fffedb2ff3d libvast-plugin-aggregate.so`$T caf::sum_type_access<arrow::Array>::apply<caf::error, caf::visit_impl_continuation<caf::error, 0ul, vast::plugins::aggregate::aggregation::add(std::__1::shared_ptr<arrow::RecordBatch>)::'lambda'<typename $T>($T const&)&>&>(arrow::Array const&, caf::visit_impl_continuation<caf::error, 0ul, vast::plugins::aggregate::aggregation::add(std::__1::shared_ptr<arrow::RecordBatch>)::'lambda'<typename $T>($T const&)&>&) + 61
    frame #5: 0x00007fffedb2fed3 libvast-plugin-aggregate.so`caf::error caf::visit_impl<caf::error, 1ul>::apply<vast::plugins::aggregate::aggregation::add(std::__1::shared_ptr<arrow::RecordBatch>)::'lambda'<typename $T>($T const&)&, arrow::Array&>($T&&, arrow::Array&) + 51
    frame #6: 0x00007fffedb243b5 libvast-plugin-aggregate.so`std::__1::enable_if<SumTypes<arrow::Array&>(), caf::error>::type caf::visit<vast::plugins::aggregate::aggregation::add(std::__1::shared_ptr<arrow::RecordBatch>)::'lambda'<typename $T>($T const&)&, arrow::Array&, caf::error>($T&&, arrow::Array&) + 69
    frame #7: 0x00007fffedb17290 libvast-plugin-aggregate.so`vast::plugins::aggregate::aggregation::add(std::__1::shared_ptr<arrow::RecordBatch>) + 4496
    frame #8: 0x00007fffedb129bd libvast-plugin-aggregate.so`vast::plugins::aggregate::aggregate_step::add(vast::type, std::__1::shared_ptr<arrow::RecordBatch>) + 653
    frame #9: 0x00007ffff6ee84aa libvast.so.2049.0`vast::transform::process_queue(std::__1::unique_ptr<vast::transform_step, std::__1::default_delete<vast::transform_step> > const&, std::__1::vector<vast::transform_batch, std::__1::allocator<vast::transform_batch> >&, bool) + 794
    frame #10: 0x00007ffff6ee7fc5 libvast.so.2049.0`vast::transform::finish_batch() + 325
    frame #11: 0x00007ffff6ee7c2f libvast.so.2049.0`vast::transform::finish() + 239

Ah yes, it only works with the subset of Arrow types that are unchanged between the current table slice format and the experimental one. I suppose we could just wait with this patch and bundle it with the next version of VAST, or try to add the old Arrow types we used to use to the sum type access for Arrow Arrays. I did not run into this with my test data set, and neither does the unit test suite apparently.


Text typo(not sure where it belongs)

While translating, I found out (in Flame::UrlResolvingTask) that there are strings below:
-Failed to resove projectId as a number.
-Failed to resove fileId as a number.
These are clearly typos, but I don't know where they belong(no time to dive deep into the whole code, just a translator passing by.)
worth looking into, but not critical. #

Fixed in code


Windows - Unable to create .prs file

A part of the installation instruction is:
create a file in the root of the directory called ".prs" and add { "themoviedb_apikey": }. (remember to remove the "<" and ">")
Windows is unable to create a file without a filename, throws the following error "You must type a file name.".
Is there a workaround to provide the API key without a ".prs" file?

You can create a .prs file by going to command prompt, cd to the appropriate folder and type:
notepad .prs
After confirmation dialog the file will be created and you will be editing it directly.


(bug) Page broken

http://projectimplicit.github.io/PIquest/0.0/quest/introDocco.html doesn't work.

Thanks. I removed the link.
intro.js does not exist anymore.


Remove system_dependencies variable

No system dependencies are required, so the system_dependencies variable is not required.  Without this variable, it should default to the empty set and fix the current issues.

:+1:

Please rebase on master, since #1297 merged.

Not big deal but would it make sense to use default filter rather than removing system_deps from meta? That way in case there are system deps for Swift, we end up editing only defaults..


Error when compiling from linux to windows

Hello,
I get an error whenever I am trying to compile to x86_64-pc-windows-gnu.
I'm trying to compile a Rust code thanks to TravisCI and I'm running cross from Ubuntu bionic. I tried with cross v0.1.16 and the master version but I still get the error:

note: x86_64-w64-mingw32-gcc: error: crt2.o: No such file or directory
x86_64-w64-mingw32-gcc: error: rsbegin.o: No such file or directory
x86_64-w64-mingw32-gcc: error: rsend.o: No such file or directory

I have well installed mingw-w64 and also added the x86_64-w64-mingw32-gcc linker in ~/.cargo/config.
Any idea how to resolve this?

The windows gnu nightly is currently broken in general. This has nothing to do with cross.

Ok my bad, I thought it was a problem with some linker in cross docker. Closing this issue.


[Bug] app tracking protection incompatible with doh

Describe the bug
When app tracking protection is enabled and Android private dns is set to doh e.g. cloudflare-dns.com there are lots of internet connectivity problems: the system shows a connection error and many/most apps (but not all - a few still works) stop being able to connect to the internet.
confirming doh enabled:

Android error notifications:

How to Reproduce
enable app tracking protection
enable android private dns using doh. i.e. either cloudflare-dns.com or dns.google
Expected behavior
no connectivity issues
Environment
- DDG App Version: 5.152.0 (51 520000) - this issue has existed for a long time probably ever since Android started supporting doh
- Device: pixel 7 - happened with older pixels too
- OS: 13

Hey @corobin, thanks for reporting this.
To clarify, I guess the debug information comes from https://<IP_ADDRESS>/help
I have tried to repro the issue in a Pixel 4XL devices running Android 13 and it didn't repro. I can configure cloudflare-dns.com in "private DNS" settings and all work as expected and <IP_ADDRESS>/help tells me Android is using DoH.

huh, thanks for your comment. it's interesting you tried on 4xl because the older device that i saw with the same issue was a 4. on both wifi and mobile data. i can't think of anything else at the moment, perhaps we just wait to see if anyone else has seen this behaviour.

To be clear, I am not saying the issue doesn't exist. But haven't been able to repro it yet. Will also try to pixel 7 and see what I get. DoH support in Android is scattered, hardcoded just for dns.google and cloudflare-dns.com, and even the behavior is different between dns.google and cloudflare-dns.com.
Can you try with dns.google as well?

interesting, it didn't occur to me that different DNS servers might behave differently.
just from a quick test right now, i see that cloudflare-dns.com currently shows the system error but dns.google does not show the system error. i didn't thoroughly test whether or not apps have connection issues, but firefox works with either DNS (even when there's a system error firefox still had no problem, but other apps would be unable to connect). also don't know if dns.google is intermittent.

Yeah DoH is not backported to all versions (I believe there's no support below Android 10) and not supported by all OEMs AFAIU.
Support it's currently hardcoded in their DnsResolver for:

dns.google
cloudflare-dns.com
dns64.dns.google — which is a 6in4 DNS that returns AAAA for IPv4-only destinations

I guess the behavior is different because they may have different fallbacks, probably being the google ones the more resilients.
Will keep this open for now until we get another look at it.

so i just saw this reddit thread where apparently a bunch of people are suddenly seeing the same error on android. don't know what happened for this to become so much more widespread all of a sudden.
https://www.reddit.com/r/GooglePixel/comments/135z8a2/doh_cloudflare_changed_from_dnscloudflarecom/
no information about DDG on those devices - the widespread nature suggests an android problem. although when I originally reported this it was only with both DoH and DDG app tracking protection.

decided to give DoH another shot after upgrading to android 14, and it seems to be working now with DDG enabled. Not sure exactly at what point between my last post and now it was actually fixed, so cannot identify what fixed it.

Thanks for reporting @corobin 🙏


[TensorBoard] Add TensorBoard log directories to the parameters

Add TensorBoard log directories to the parameters.

As talked, will not add TensorBoard log path to the parameters


Please enter a value

I'm struggling to get the example to work. I'm hopefully doing something silly.
To make it as simple as possible, I've skipped the whole form, field, states etc and am directly calling addToMailchimp("<my_email_address>") .
No matter what I try, the response from mailchimp is:
__jp0({"result":"error","msg":"1 - Please enter a value"})
From the devtools I can see the GET request:
"https://gmail.us20.list-manage.com/subscribe/post-json?u=<number>&id=<number>&EMAIL=<my_email_address>&c=__jp0"
The URL is the same as from an embedded form. Note, I don't actually have an embedded form created in my account, is that required?
I'm not sure what to try next, so would be grateful for any ideas to try.

Turns out, this was because "firstname" was set as a required field.
I was connecting to a old (neglected) mailchimp account and I forgot I had that set.


feat: implement serializable isolation level

The serializable isolation level is achieved by acquiring a lock at the beginning of a transaction. Read-only transactions acquire the RLock of the database, allowing them to be executed concurrently. On the other hand, read-write transactions acquire the Lock of the database, allowing only one read-write transaction to be executed at a time. The lock is released when the transaction is committed or rolled back.

The design philosophy differs from CouloyDB's optional transaction isolation level, so this PR is not passed for now.


bert demo question

@marwage
I want to run bert elastic training with kungfu commit 9f8a69b, could tell me the corresponding bert commit number at kungfu branch which i can reproduce your result?

@rankeey I am verifying the result and will get back to you

@rankeey I verified my result with the schedule "16:1000,1:1000,16:1000,1:1000" and I got a f1-score of 74 in my run. The run in the past achieved a f1-score of 72.
In my run I used the state of the KungFu repo v0.2.1
and the code of BERT
The run script is run.sh.txt
and the  Dockerfile
Let me know if it still does not work

@marwage I can get a f1-score of 72.5.I think it is ok.Thanks.
Milo told me that you are testing the bert code with the kungfu master code. Have you done it?

@rankeey No worries! Yes I made that work as well. There is nothing specific about BERT.


[SILOpt] Change the way pass names/descriptions are defined and rewrite them.

...because I need to add a pass and do some playing around with the pass pipeline.

@swift-ci test and merge.

+1. This is a really great change!


feat: allow longer function declaration lines

@jimjenkins5 @lukelafountaine @pbredenberg @yokuze @onebytegone I'm curious your thoughts on this. It came from a suggestion @onebytegone saw when reviewing some of my TypeScript code. With TS, many function declarations end up being very long because of the types for each parameter, return type, and possible generics. I personally hate the weird alignment and vertical wasted space of wrapping the function declaration, so tended to just make it one long line and then add // eslint-disable-line max-len to the end of the line.
I just don't feel like it's critical to be able to see all the parameters and types when I'm writing the function code - I can look once (even if that involves a scroll) and then proceed from there, especially with autocomplete.
Some contrived example to demonstrate the difference:
findPets(
   ownerPartialName: string
   type?: PetTypeEnum,
   lastVisit?: Date
   sort?: PetSearchSortOrderEnum
): PetSearchResults {
   // now my code starts here at this indentation
   const searchParams = ...
}

Vs:
findPets(ownerPartialName: string type?: PetTypeEnum, lastVisit?: Date sort?: PetSearchSortOrderEnum): PetSearchResults {
   // now my code starts here at this indentation
   const searchParams = ...
}

Okay, that wasn't quite 130 chars, but still demonstrates the point. I find the one-line version infinitely more readable and appreciate that it doesn't waste all my vertical space.
Thoughts?

Oh, I forgot to mention: this PR would need some work ... I think my pattern is way too simple. We wouldn't want comments that have the word "function" in them to not have the max-len rule applied. It's just a placeholder for discussion. If you have thoughts on what the pattern should look like, please include those as well.

Lack of vertical space? Could always go with a vertical ultrawide monitor 😉
As for a practical response, I'm okay with either option (assuming we change our linting to support longer declarations). However, I lean towards the wrapped declaration as scrolling horizontally can become painful depending on platform, editor, and HID setup. Additionally, I think wrapped looks a little nicer when there are defaults provided for the args. For example:
function findPets(
   ownerPartialName: string,
   type?: PetTypeEnum,
   lastVisit?: Date,
   sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending,
   ignoreCache: boolean = false
): PetSearchResults {
   // now my code starts here at this indentation
   const searchParams = ...
}

vs
function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   // now my code starts here at this indentation
   const searchParams = ...
}

As for the regex, maybe something like:
^\s*(?:(?:async|export|default|async|public|private|protected) )*function

Test cases:
function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
async function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
export function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
export async function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
export default function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
export default async function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   public function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   public async function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   private function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   private async function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   protected function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
   protected async function findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {
// This is a comment about a function with a really long declaration.

@jthomerson Is it the intention to only target function declarations and not method declarations (inside classes where the word function will never appear)?
@onebytegone When in TypeScript can you do something like protected function findPets(..?

@yokuze Good point. The function keyword is not always there. The list of test cases, has been updated.

I'm honestly not a fan of this approach. I understand the issue with having long function declarations, but as @onebytegone mentioned, depending on the device being used or the environment we're looking at code in, long lines can still be mind bending. For example, when we are reviewing code in GitHub/GitLab the line may or may not wrap (depending on your settings) leading to confusion.
Up until now our linting standards have always aimed for improved readability, and that's why we have the max-len rule in the first place. Personally, I think that the vertical definitions are more readable than the long lines, especially when reviewing MRs
In addition, I can't see a great way to target only functions declarations in a safe way. As was mentioned by @yokuze, many of our function declarations are part of a class and won't have function or any defining characteristics. So this would likely lead to more confusion as the max-len rule gets applied to some, but not all, function declarations.
Finally, I think this would start setting a dangerous precedent that could lead to making countless exceptions in our linting.

@yokuze Good point. The function keyword is not always there. The list of test cases, has been updated.

I'm confused about how your regex is working on this line:
public findPets(ownerPartialName: string, type?: PetTypeEnum, lastVisit?: Date, sort: PetSearchSortOrderEnum = PetSearchSortOrderEnum.Ascending, ignoreCache: boolean = false): PetSearchResults {

the word function is not there, but your regex requires it.

I personally find the single line signature to be more readable. When scanning through a file, I can easily identify a signature when it's on a single line. When it's wrapped, it seems to blend more into the function body. I have also found the wrapped signatures to be annoying while refactoring. For example, there have been times when I removed a parameter from a method and then forgot to reformat the signature to fit on a single line. So, we could end up with multi-line signatures that don't need to be multi-line.
However, I could go either way. It does seem kind of funny to make an exception just for signatures.


Shared workflow

PR Checklist
GitHub

[x] Commits signed: All commits must be GPG or SSH signed.
[x] DCO Compliance: Developer Certificate of Origin (DCO) applies to the code, documentation, and any example data provided. Ensure commits are signed off.

Build updates

Add build badge

Place reusable workflow file in utils for use by other repos

Add dependabot config

The python build is updated to use pyproject.toml instead of the old
setup.py build. tox is also added to control the test environments and
add linting commands. With the new build, the code is moved into the
standard src and tests folders. The ci build is updated to use the new
tox setup including running lint jobs.
The code is updated to pass the lint checks and python typing is added.

@adampingel Please review. I don't appear to be a committer on this repo.


Rescue julia from it own exacting requirements

@jkeiser @tyler-ball @btm @PrajaktaPurohit @randomcamel

:+1:


[BDD] Add a product to wishlist

Implement frontend to support this part of the API.
Scenario: add a product to a wishlist
Given the following wishlists
| name                  | user_id|
| Birthday Wishlist     | 1 |
| Thanksgiving Wishlist | 1 |
| Apr Wishlist          | 2 |
And the server is running
When I visit the "Home Page"
And I set the "Product_Name" to "Toy"
And I set the "Product_price" to "13.2"
And I set the "Product_Status" to "1"
And I set the "Product_Pic_Url" to "www.pic.com/toy.png"
And I set the "Product_Short_Desc" to "this is a toy"
And I set the "Product_Inventory_Id" to "1"
And I set the "Product_Wishlist_Id" to "1"
And I press the "Create_Product" button
Then I should see the "Product_DB_Message" to be "success"
When I copy the "Product_Wishlist_Id" field
And I press the "Product_Clear" button
Then the "Product_Id" field should be empty
And the "Product_Price" field should be empty
And the "Product_Wishlist_Id" field should be empty
When I press the "Wishlist_Clear" button
And I paste the "Wishlist_Id" field
And I press the "Wishlist_Retrieve" button
Then I should see "Birthday Wishlist" in the "Wishlist_Name" field
And I should see "1" in the "Wishlist_User_Id" field
And I should have a "name" field as "Toy" in the "Wishlist_Products" field

Added details to the body

Hey team! Please add your planning poker estimate with ZenHub @Fivetoes @jiuliwei @XinyuC97 @yx2512 @ZX-WANG

IBM Cloud toolchain: Delivery Pipeline deployed wishlists to prod, including commit fa780ecfbb2fb1887a6254a0f13c8bdef72336c1


Code of paper "Reversible Vision Transformers"

I do not find code about Reversible Vision Transformers. Will it be released?

Yes, I will be released

Hi,
Thanks for interested in the work. We have released the code (+model weights and recipes) in pyslowfast first : https://github.com/facebookresearch/SlowFast/tree/main/projects/rev and will soon also release in this codebase here.

Thanks for the notification.


Fix sign in with ledger errors

Changes:

fixing closing dropdown while changing HD path - now it will close only when confirmed by clicking a button
fixing saving HD path in the local storage - before HD path was saved only if it wasn't the default path, which causes a few problems, now it's saved always in signInWithLedgerAddAndSaveAccounts thunk so it's always up to date
fixing choosing HD path, it was problematic if a user opens dropdown and changed path a few times
fixing closing dropdown without any action

What exactly is being fixed here @marcinbodnar?

What exactly is being fixed here @marcinbodnar?

@morgsmccauley I added a description to this PR

@morgsmccauley I rebased it and fixed one additional small problem with component rerender.


Correctly identify asgardpy as a software package

This is not a pipeline, as one can run any of the AnalysisStep given relevant object initializations.

Rechecked to have a stronger argument otherwise. Until there is a definitive reason and demand for this change, I will close this.


Spare parts?

The wires for the hotend cooling fan are too short to reach the tool board and are likely to get pinched. If the wires were 10 mm longer it would be much easier to install. The next problem is finding a replacement.

What is the length of your wire, in my case, I had not really issues, but could it be that yours came shorter?

For spare parts, you need to ask your local supplier, I insisted a lot on having spare parts also available, but for some reason vendors are not open to it. Its a real issue, I admit, but unfortunately it's hard on my side to change this. It would be better if customers complained directly to the vendors because they can order replacement parts from LDO...but they are not willing to right now. I even asked to at least provide spare parts via AliExpress...so far, still no parts there. Fabreko and Filastruder has some in the US but that is not convenient for everybody.

Thank you for your prompt reply Robert,
The hotend fan wire is ~120mm. My mount is a bit unusual due to its layout. I fixed the problem by creating a conduit in the mount so the wire has a direct route to the toolboard. [image0.jpeg]
The only other issue I have is that I have not found a description of how to use the filament load/change. Everything is working fine (the assembly and installation is well documented) but I have not used the automatic loading/change feature.
Cheers
John Lytle
On Sep 8, 2024, at 5:12 AM, LorinczElectronics @.***> wrote:

What is the length of your wire, in my case, I had not really issues, but could it be that yours came shorter?
—
Reply to this email directly, view it on GitHubhttps://github.com/RobertLorincz/Smart-Orbiter-SO3/issues/1#issuecomment-2336609975, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIE3KPQIGSDHM2OEWTE6K4TZVQIG5AVCNFSM6AAAAABNRGKOSWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZWGYYDSOJXGU.
You are receiving this because you authored the thread.Message ID: @.***>

Thanks again Robert,
I contacted KB3D, where I purchased my Orbiter 3, and Kris informed me that he has the fans in stock. The website was not updated at that time.
This is very convenient for me as KB3D is a short drive for me, just up the road in Twinsburg, Ohio.
Cheers
John Lytle
On Sep 8, 2024, at 5:16 AM, LorinczElectronics @.***> wrote:

For spare parts, you need to ask your local supplier, I insisted a lot on having spare parts also available, but for some reason vendors are not open to it. Its a real issue, I admit, but unfortunately it's hard on my side to change this. It would be better if customers complained directly to the vendors because they can order replacement parts from LDO...but they are not willing to right now. I even asked to at least provide spare parts via AliExpress...so far, still no parts there. Fabreko and Filastruder has some in the US but that is not convenient for everybody.
—
Reply to this email directly, view it on GitHubhttps://github.com/RobertLorincz/Smart-Orbiter-SO3/issues/1#issuecomment-2336611208, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIE3KPXBTTXBOMIJBFYKJKLZVQIV3AVCNFSM6AAAAABNRGKOSWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZWGYYTCMRQHA.
You are receiving this because you authored the thread.Message ID: @.***>


Register idat.edu.pe domain

Register idat.edu.pe as IDAT is a technological institute that offers IT related courses that last 3 years.
https://www.idat.edu.pe/carreras-profesionales-tecnicas/computacion-e-informatica

@cjdp25 Pull request merged. Thank you!


Fix a message loading bug and improve behavior

The behavior of 'needFetchAtFirstUnread' is quite wrong.
First, we do the minimal work to fix #3441 in the first commit.
The rest of the work implements correctly the originally intended behavior.

Thanks @borisyankov ! This indeed looks like an effective fix.
The PR summary says later commits implement the intended "do we need to fetch" behavior. I see some welcome simplifications which might make it easier to do that, but I don't see the actual new logic in the current branch. Are there more changes you intended to push?
The last commit moves the function to a selectors file. I'm not sure that's actually helpful; perhaps it'll be clearer one way or the other in the presence of the change that adds back more logic. It's true that the function is a pure function, one of whose arguments is the state... but semantically it feels to me like part of the decision-making of the "fetch messages" logic here in messages/fetchActions.
I.e., the choices we've made that are embedded in it are choices about when and what we fetch (and the other code with those choices is in this file), and not about what data structures we maintain (which is the set of choices that are embedded in selectors and reducers).

Merged, except that last commit (moving to a selectors module), and with a quick commit on top adding a comment. Thanks again!
If you already have in your head (or on your disk) a clear idea of what the more sophisticated logic ought to be, I'd be glad to see that in a further PR.


Fix/java path

Summary
Since the docker base image has changed we need to adjust the java path in smarti.sh.
Other Information
https://github.com/docker-library/openjdk/issues/326

I changed the base from master to develop.


(Discussion) Adding redirect uri to Facebook

What's this PR do?
In order to allow for one click auth, we're adding redirect uri support to the Facebook login flow.
At the moment, I did this by placing the session()->referer code in the redirectToProvider() function. However, I'm now thinking this would break the normal client based redirect, because the referer_uri is going to override the intended redirect for the client (Basically, if i click signup, and click login with facebook, the referer uri will be northstar/register, not phoenix/campaign)
So I'm now thinking, maybe we need one more Facebook route specifically for 1 click login that puts the referrer in the session and then sends you to redirectToProvider
How should this be reviewed?
…
Checklist

[ ] Documentation added for changed endpoints.
[ ] Tests added for new features/bug fixes.
[ ] Post a message in #api if this includes something that causes a rebuild!

For review: …

Let's handle this the same way we allow clients to specify whether to show login or registration page (so /authorize?mode=facebook&... would automatically redirect unauthenticated users to Facebook rather than showing them a login or registration page).

Going to close this since it's been open for a while.

rip

press f to pay respects


Laravel error messages are not showing properly

My controller
        $request->validate([
            'title' => ['required','min:20'],
            'body' => ['required','min:20'],
            'email' => ['required','email'],
        ]);

I followed the documentation for the validation. The error messages are shared to Vue from Laravel but the messages are not shared. Only the index of the error messages are shared I think.
Am I missing something?

Hi,
What's being shared in this case, is the translation key: https://github.com/laravel/laravel/blob/ebf2646c347b941e63709f7e69ab79416f6d5124/resources/lang/en/validation.php#L90
By default, a standard Laravel & Inertia setup does share this correctly in my experience, so it's quite likely that you changed something in the default localization setup that's causing this. A good example of this, is that you're using a (different) app locale for which you don't have translations (any longer).
Although I'm fairly certain this isn't a problem caused by Inertia's involvement in your app, it's best to confirm this for yourself by re-creating this situation within a Blade view. If my suspicion is correct, you'd still see the untranslated language key in that situation, even though Inertia isn't being used. Of course, that wouldn't solve your issue, but at the very least it leads you closer to the actual problem, which is all that I can do with the current context/information.
Hope this helps!

Spot on, mate. Thank you so much.
I forgot that I (carelessly) deleted the default lang/en folder.

Glad you solved it! 👍


Fix makefile dependencies and bundler versioning

https://trello.com/c/2XWgdfo7/5-💥-make-setup-super-fast-and-easy
Previously we installed bundler without a version restriction, which
caused problems since Bundler 2.0 is not compatible with most of our
repos. We may also need to cope with installing specific versions of
bundler for certain services. This splits the installation step for
bundler and ensures the major version is consistent with each service.
Previously we used '$@' in the target list for each service, which is
not valid (it can only be used within the recipe). This reverts the use
of '$@' back to the service name in each service Makefile.

We definitely want to consolidate our Makefiles!


有没有方式可以通过api,不通过页面来进行配置

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

看一下apollo开放平台的介绍


Simulation issue

I followed all the steps for running a simulation but the editor does not have a simulation panel (looks different from the online editor) and therefore in grasshopper the components arent populated. Can you please let me know if I'm missing a step? Thanks!

Can you post a screenshot? And more info on your system. You mean there is no simulation panel in the editor? Note that by default it is collapsed. It should be there, because it's hard-coded in the .html file, not dependent on anything.

I'm running windows 10 pro on bootcamp, and Internet explorer to run the program.
Thank you!

I see, you are using a different version of this editor. Please note that that code is still experimental. We took out the simulation in that version, because we are looking for another simulation that.
If you want to create metamaterial mechanisms with the simulation, then please download the code from this repository.
Also, I think there are issues with the editor in Internet Explorer. I tested successfully with Chrome, consider using that.


The sample import script uses a value for MaxSizeBytes which is invalid

If you attempt to run the sample script on the page https://docs.microsoft.com/en-us/azure/azure-sql/database/scripts/import-from-bacpac-powershell#sample-script, one of two things will happen:

In a region where enforcement has been enabled, you will receive an error message like: New-AzSqlDatabaseImport : 40619: The edition 'Standard' does not support the database data max size '262144000'.

In a region where enforcement has not been enabled, the parameter will be ignored and you will end up with a database of the max size for the SLO (256GB for S3)

Suggestion: Change the line  -DatabaseMaxSizeBytes "262144000" to be something from the list of supported values, such as  -DatabaseMaxSizeBytes 100GB

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

ID: 7844350b-f5a2-2c2e-5085-38e65ab41077
Version Independent ID: a0fd06d7-67fe-3fed-b8b6-2b99cfe09412
Content: PowerShell: Import a BACPAC file to a new database in Azure SQL Database - Azure SQL Database
Content Source: articles/azure-sql/database/scripts/import-from-bacpac-powershell.md
Service: sql-database
Sub-service: data-movement
GitHub Login: @stevestein
Microsoft Alias: sstein

@sredman Thank you for the feedback. We are actively investigating and will get back to you soon.

@sredman The -DatabaseMaxSizeBytes "262144000" corresponds in range of greater than 250 MB so S3 performance level should work as per the article. However even when I tried to repro with same value I was also getting error. When I changed the DatabaseMaxSizeBytes to max value of S3, it did work. I need to check the same with product team on this.
Also, could you please provide little more details on enabling enforcement you mentioned?

@sredman The -DatabaseMaxSizeBytes "262144000" corresponds in range of greater than 250 MB

According to Powershell, 262144000 is exactly 250MB:

When I changed the DatabaseMaxSizeBytes to max value of S3, it did work. I need to check the same with product team on this.

I am the product team :) MSFT internal profile page -- You must use exactly a value from that the list in the linked documentation. Even one byte difference will not work. (This applies to DTU-based databases. For vcore-based database, there is no restriction)

Also, could you please provide little more details on enabling enforcement you mentioned?

In short, we are rolling out a new version of the service. We had intended it to be identical to the old version but we did add this enforcement. The new version is in ~2/3 of public regions right now. Unfortunately we have discovered that a lot of our documentation has 250MB as the example value for MaxSizeBytes but that value is un-supported.

@sredman Yes you rightly pointed out that value is unsupported and gives error when trying to run the command.
Also as mentioned by you these changes are rolled out to multiple regions already, you might want to connect with the author of document for more changes if applicable to the document. I am assigning this to content author to evaluate and update as appropriate.
@stevestein

@sredman omg....I was in a real battle with this error using terraform.  This issue saved my sanity.

#please-close


Countries should have valid url's not @{country name}

Not a bug. The pack has ethnologue url's for countries.
 {
        "@id": "https://www.ethnologue.com/country/AD",
        "@type": "Country",
        "name": "Andorra",
        "isoA2": "AD",
        "isoA3": "AND",
        "geojson": {
       ...


Query SRA directly for SARS-CoV-2 accessions

This uses a more stable API isntead of a rando yaml that disappeared.
Hopefull this will make it more stable. Working ona  replacement for the
genome accessions now.

@mvdbeek do you think it is a good idea to have single files with date and and global file. This would make it easier to incrementally add new data.

Not really, we'd need to keep two files in sync, since annotation often changes. Just checkout any version in time if you want to get accessions from a specific timepoint. We should annotate collection and deposition date though.

We should annotate collection and deposition date though.

Which we would have with file-with-date ... I'm not sure those files needs to be updated, its just a history that is easy accessible. The most up-to-date list is still the one-big-file.

Which we would have with file-with-date ...

That's a different thing. Deposition date is when it has been added to the SRA, that doesn't have to correspond to when we first encountered it in our query.
I don't like duplicating this information that you can easily get from git.
What content do you want to have in those files ? A copy of current_metadata.txt ?

The SRA numbers that have been added by the bot at a particular date. A user might now want to download everything again, but maybe just the new numbers from the last 3 days. This would make it very easy.
We can also do it just locally and offer this on our site.

I can add that, but I guess I'd prefer to add a column in current_metadata.txt ? In 2 years we'd have 700 files in that directory otherwise.

That would also work I guess, thanks.


ui needs authentication

I am using fabio for public facing services therefore I would like the ui to live on https with some authentication scheme such as basic or digest.

I'll add at least basic auth and client certificate authentication to the next release. This requires to switch the UI to HTTPS for which I'll provide a builtin certificate which can be overwritten.

+1

This is unfortunately not going to happen for 1.0.9 but as a temp workaround I suggest to have the UI bind to localhost

#258 is a first step in that direction


Add Yara scanning

Also fixes https://github.com/cado-security/cloudgrep/issues/13

Merging - This adds yara scanning.


Failure to progress into finished state

The 'yes but just take me to the results' did not work. When attempting to proceed to the 'yes and do the other 18 questions', the final question response buttons did not work. The only thing that worked was copying the URL (which encoded the weighted results thus far), loading it in a new tab, and selecting the forced 'no just take me to the results'.

Chrome 64b


Making code compatable with Pyinstaller + Minor typo correction

Addressing Issue #22 +  the typo bug in issue #17 + addressing issue #23
Changes for issue #22: Removed the typing package import to remove Pyinstaller bug.
Changes for issue #17: Correct the word amd to and in the token prompt.
Changes for issue #23: Implemented the password input type for the token prompt. All token prompts would be hidden using * characters.
Furthermore, implemented a feature where if the user types in "exit" instead of a valid password (or an invalid password), the CLI would automatically exit.

This works! I made some minor changes with the access token prompt in terms of spacing since on my end the text cuts off in the terminal. I added in a tiny fix so that when user uses CTRL-C, it doesn't show an error message.

@moonsdust Thanks a lot! I'll verify code in this PR works tomorrow, then merge it tomorrow as well


Add development mode to Proxy

Type of change

Enhancement / new feature

Description

Adds a development configuration map to the top level of the proxy configuration
Adds the concept of development mode, requiring the user to set KROXYLICIOUS_DEVELOPMENT_MODE=true by env var or system prop to use the development features. It initially disallows any configuration to be provided. The proxy will not start if the development object is non-empty and the proxy is not in development mode (the default).

Additional Context
Split out of #1635
To enable integration testing the ApiVersions downgrade response with a real client we have an issue. The proxy may be on the latest kafka-clients version, so it's hard to test this case where the client is ahead. To test this we want to add a development only configuration to enable us to control the maximum version per ApiKey supported at the proxy, to masquerade as a proxy that only understands up to a certain version of ApiVersions.
We want to make sure it's clearly not a production feature and force users to jump through some opt-in hoops to enable the functionality.
This PR adds the foundation for this, introducing development mode and establishing how to switch it on
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[ ] Write tests
[ ] Update documentation
[ ] Make sure all unit/integration tests pass
[ ] Make sure all Sonarcloud warnings are addressed or are justifiably ignored.
[ ] If applicable to the change, trigger the system test suite.  Make sure tests pass.
[ ] If applicable to the change, trigger the performance test suite. Ensure that any degradations to performance numbers are understood and justified.
[ ] Ensure the PR references relevant issue(s) so they are closed on merging.
[ ] For user facing changes, update CHANGELOG.md (remember to include changes affecting the API of the test artefacts too).

NOTE:  You must be a member of @kroxylicious/developers to trigger the system test and performance test suites.  If you are not part of this group, comment on the PR requesting a trigger, tagging @kroxylicious/developers.

Looks reasonable to me.

Is the mode really independent of the configuration model? Should it just be a synthetic node injected into the config model?

Configuration around how/what gets loaded from the configuration file feels independent.
We'd also need to add to the Filter API to expose it, as they are currently only aware of their individual configuration objects. I don't think we would want to expose the whole configuration tree to each Filter so it leans towards an independent style anyway.
For now I propose:

make the naming more specific since development mode has some baggage in the naming
make sure the logging talks about how the configs are unsupported and have no compatibility guarantees
leave it harsh/restrictive for now, since the only usage is this testing case I think it's okay to prevent startup

Since we have no compatibility guarantees it should be quick to rewrite/evolve if we want to take this mechanism further.

pushed up, the implementation is now in terms of Set<Feature> and the feature is unlocked with -DKROXYLICIOUS_UNLOCK_LOAD_TEST_CONFIGURATION=true

Could the coverage sonarcloud be addressed before we merge?


Implement DecodingLayer interface for loopback

Great stuff, thanks!  Could you do me a quick favor and add godoc comments to the functions?  They'll be super redundant to everything else, but they make the godoc pages look a little nicer :)

I signed it!

Added godoc comments

ping


what dose it mean  UnexpectedToken: Unexpected token Token($END, '') at end of input

how to write a rule to match $END?

The grammar doesn't expect the EOF at this point in the grammar.

The grammar doesn't expect the EOF at this point in the grammar.

That is to say,if the "start" grammar is whole matched, there will not be an error when meet EOF, is it right?

Yes

Yes

thank you very much! ：）


IGMP Proxy is too old

Current version of igmpproxy does not support v.3. Looks like sourceforge is abandoned and moved to https://github.com/pali/igmpproxy which provides support for v.3.
Report:
RECV V2 member report from <IP_ADDRESS> to <IP_ADDRESS>
Updated route entry for <IP_ADDRESS> on VIF #2
RECV unk: 0x22/0x00 from <IP_ADDRESS> to <IP_ADDRESS>
ignoring unknown IGMP message type 22 from <IP_ADDRESS> to <IP_ADDRESS>
RECV Leave message from <IP_ADDRESS> to <IP_ADDRESS>
leaveMcGroup: <IP_ADDRESS> on pppoe0

this is a port issue which should be reported upstream to FreeBSD. I assign this to @fichtner as he knows how to handle this.

Or, just as an idea, pimd could be another option with same functionality. AFAIK it provides more robust IGMP routing...

For sane inclusion we need a new release from them with release notes to see the list of changes and required changes for integration (if any)  https://github.com/pali/igmpproxy/issues/22

See https://github.com/opnsense/ports/commit/ce69914ce21ecf250d415896e0eea5c75bb868cd and https://forum.opnsense.org/index.php?topic=6535.0 for testing instructions. Depending on user feedback and testing this may or may not make it into 18.1.


add wiki_hop

This PR adds the WikiHop dataset from the QAngaroo multi hop reading comprehension datasets
More info:
http://qangaroo.cs.ucl.ac.uk/index.html

Also the dummy data files are quite big (500KB)
If you could reduce that that would be nice (just look at the files inside and remove unecessary chunks of texts)
in general dummy data are just a few KB and we suggest to not get higher than 50KB
Having light dummy data makes the repo faster to clone

Also the dummy data files are quite big (500KB)
If you could reduce that that would be nice (just look at the files inside and remove unecessary chunks of texts)
in general dummy data are just a few KB and we suggest to not get higher than 50KB
Having light dummy data makes the repo faster to clone

@lhoestq  Actually the downloaded file contains both the WikiHop and MedHop dataset, which is why the dummy data is big. We could only keep the required dataset to lower the size and delete the other one.


RFC: wrangler as an API

Premise: wrangler should be usable in "code", enabling folks to build their own tooling and abstractions on top of it, and potentially preventing feature creep in wrangler itself. Some usecases that have come up -

The first usecase that's come up is writing integration tests (tracking at https://github.com/cloudflare/wrangler2/issues/1183). At it's core, the usecase here is to program wrangler itself, and build one's own scaffoling on top of it.

Something similar, is the Pages+Wrangler convergence. We would like Pages to have every feature that wrangler has, and it shouldn't require a rewrite to do. A major portion of Pages functionality should able to be built on top of wrangler (and newer features that are still generic should be built into wrangler). So if wrangler had a first class api, the pages cli/commands/configuration would simply be an abstraction on top of it. This not only makes Pages better, but it proves that anyone wanting to build a platform on top of Workers should be able to just reuse the tooling that wrangler provides.

A simpler/smaller usecase, is to enable alternate configuration formats. The JS community doesn't commonly use toml, and would prefer to use json/js/typescript/whatever. We probably shouldn't be adding newer configuration formats, but having a first class api means we can get, at minimum, static type checking for free. (related: https://github.com/cloudflare/wrangler2/issues/1165)

Internal to Cloudflare, folks write Workers to control Cloudflare itself, but the configuration is a bit different. Specifically, account ids aren't necessary (a lot of these workers are run for every worker on the control plane, for example), some bindings are different, and the way they're published is dramatically different. That said, a lot of things are similar; they'd like to use typescript/wasm, third party dependencies from npm, as well as the bindings we already enable, and so on. Having an api will let them use functionality that's already built in wrangler, and run it next to their own tooling/infrastructure.

I think a first step here is to enable integrations tests as described in https://github.com/cloudflare/wrangler2/issues/1183, that should flesh out some of the bsaic things we need to move forward on the other usecases.

Super cool idea ❤
RE: other tooling, I don't know if there are specific tools. I had considered adding tooling to Flareact that made it super easy to create things like Durable Objects + add them to wrangler.toml for you automatically, but I never got around to it. If wrangler were usable as a JS API, that would have made it even easier!
Over at Shopify, we're embarking on a couple related projects:

We've been investigating a new CLI experience that has the same spirit of plugability and extensibility. @pepicrft has been leading the charge on that and might have opinions — I'm sure we can share more when it's public 😄
We built a small oxygen-preview CLI which is essentially a stripped-down version of Miniflare. However, we still have to manually deal with a custom configuration file, build management, reloading and change detection, etc. We could probably use a wrangler API instead for the Oxygen platform when that's available!

Some thoughts about a design for "wrangler as an API"
After some internal discussion and exploration, we've tentatively settled on a design for worker testing that looks like treating workers as an EventTarget, specifically the dispatchEvent method.
// index.ts

export default {
  scheduled: (event, env, ctx) => {
    ctx.waitUntil(async () => {
      await env.MY_KV_STORE.put("last-trigger": new Date())
    })
  },

  fetch: async (request) => {
    const name = await request.headers.get("NAME") ?? "world";
    return new Response(`Hello, ${name}!`);
  }
}

// index.spec.ts

import { makeWorker } from "wrangler/test";
import type { Worker } from "wrangler/test";
import defaultExports from "./index.ts";

const worker: Worker = makeWorker("./index.ts");

it("says hello world", async () => {
  const response = await worker.fetch("some-url.com");
  await expect(response.text()).resolves.toEqual("Hello, world!");

  // this is functionally equivalent to `worker.fetch`
  const response2 = await worker.dispatchEvent("fetch",
    new Request("some-url.com", { headers: { NAME: "Xanathar" } })
  );
  await expect(response.text()).resolves.toEqual("Hello, Xanathar!");
});

it("writes to KV when triggered", async () => {
  await worker.cron("* * * * *"); // or `worker.dispatchEvent("cron", "* * * * *")`;
  expect(worker.MY_KV_STORE).hasProperty<number>("last-trigger");
})

This implies that "wrangler as a library" should also have this sort of design, e.g. to allow wrangler/test or wrangler-environment-jest or whatever to simply delegate:
export const makeWorker = (file: string, options?: MakeWorkerOptions): DevSession => {
  return wrangler.dev({ file, ...options })
}

Additionally, it makes sense to have commands be EventEmitters, since (especially for long-running commands like dev) there will be multiple lifecycle hooks clients want to listen to (see @geelen's comment above).
import { dev } from 'wrangler';

const devSession = dev({
  source: "path/to/index.ts",
  sourceMaps: true,
  // ...
  });

devSession.on("reload", (reloadEvent) => handleReloadEvent(reloadEvent));

Combined with the EventTarget implementation, this provides an idiomatic two-way channel for communication.
import { dev } from 'wrangler';
import process from 'node:process';

const devSession = dev({
  source: "path/to/index.ts",
  sourceMaps: true,
  // ...
  });

devSession.on("reload", (reloadEvent) => handleReloadEvent(reloadEvent));

process.on("SIGKILL", () => { devSession.dispatchEvent("kill"); });

Internally, this would be useful for decoupling our own code such that every command looks essentially like:

Parse input into a command
Attach hooks to the command that displays output to the user

This separation of user-facing output from core wrangler APIs will be really good dogfooding of our own API, and will allow us to spot issues with the design before we stabilize.
Lastly, taking some inspiration from ExecaChildProcess, we could also have commands implement the Promise API, so that for shorter-lived commands (e.g. wrangler secret put) a user could simply await the command without needing to tap into the various lifecycle hooks.
This also provides an idiomatic way to "wait for completion" of longer-running commands after setting up various lifecycle hooks:
import { dev } from 'wrangler';
import process from 'node:process';

const devSession = dev({
  source: "path/to/index.ts",
  sourceMaps: true,
  // ...
  });

devSession.on("reload", (reloadEvent) => handleReloadEvent(reloadEvent));

process.on("SIGKILL", () => { devSession.dispatchEvent("kill"); });

await devSession;

I've done a little experimenting and it seems like this should work fairly well. I'll start with the dev command, since that's the highest priority, but I think once this design has been proved out it would be worthwhile to migrate over all the wrangler commands.
I'm not convinced we need to implement the entire spec for, say, EventEmitter (in particular I'm a little hung up on exposing the emit function
to the user, which really should only be used internally by the command), but I think it's a good starting point.
Thoughts?

devSession.on("reload", (reloadEvent) => handleReloadEvent(reloadEvent));
Having something like this would be really useful for implementing live reloads, https://github.com/cloudflare/wrangler2/issues/1167.
The current implementation in miniflare does this in a similar way -  https://github.com/cloudflare/miniflare/blob/67d35f813cee9609369a9fd107e6bfa82101c24f/packages/http-server/src/index.ts#L436-L447

Following a discussion with @IgorMinar, we've decided to focus solely on implementing an EventTarget-based interface, since 1. that's a browser standard, rather than a Node API, and 2. it has a smaller API surface (i.e. addEventListener, removeEventListener, and dispatchEvent).
We also considered the Worker API, but found it didn't quite fit our needs as well.
Lastly, for an MVP we'll hold off on implementing Promise, and instead focus solely on implementing EventTarget.
I'll have a draft PR up shortly that more explicitly demonstrates what I have in mind.

I have a use case where I would love to programmatically publish a worker where the files are never actually written to disk. I create them in memory and would love to be able to pass that to some sort of "wrangler api" to publish it for me.

I have a use case where I would love to programmatically publish a worker where the files are never actually written to disk. I create them in memory and would love to be able to pass that to some sort of "wrangler api" to publish it for me.

This might be something you would be interested to track https://github.com/cloudflare/wrangler2/pull/1538


Test and add examples for complete on vertices

Added examples and test for the function CompleteOnVertices from graph.py.

It seems like there is a problem with graph_from_vertices_and_edges because CompleteOnVertices now returns a graph with no edges.

It seems like there is a problem with Graph.from_vertices_and_edges because CompleteOnVertices now returns a graph with no edges.

Now I checked it and it looks like Graph.from_vertices_and_edges works.

My guess is that in CompleteOnVertices, combinations(vertices, 2) return an iterator which is consumed by the _check_edge_format_list so it becomes empty, but I am still puzzled.

I was thinking the same, I will try to fix it by making a list of combinations. I suppose this problem didn't occur before because the iterator was sent directly to from_vertices_and_edges.

We can do
        G = Graph.from_vertices(vertices)
        G.add_edges(combinations(vertices, 2))
        return G

in CompleteOnVertices, since we know we can skip the check.

I solved it by passing a list of combinations instead of an iterator.

Thanks a lot for discovering the bug by writing the test!


Add support for protocol 11 (does not fix leaderboard)

Subj.

That allows connection, but not spawning. @ItzLevvie

^^ Works for spawning too.

I thought something was wrong with the LB, when i noticed "An unnamed cell" doesn't appear on it.

i can't spawn

can't press 'play'
it connects me but can't join the server -_-

Probably the custom skins script @AlexHGaming

works now.
BTW profile picture buddies for a long time lmfao

@Agarian and @AlexHGaming i am confused in Who is saying that! Confused in same profile hahaha


overflow encountered in exp (model optimization)

Hi
I've encountered a problem while optimizing a GPR model
test_functions.m (helper functions to get some data)
regression.m (some basic regression)
and I get
/home/xyz/.virtualenvs/tf_0_11/bin/python /home/xyz/workspace/studia/mgr/kod/pypilco/sandbox/regression.py
/home/xyz/.virtualenvs/tf_0_11/lib/python2.7/site-packages/GPflow-0.3.4-py2.7.egg/GPflow/transforms.py:129: RuntimeWarning: overflow encountered in exp
  return np.log(1. + np.exp(x)) + self._lower
(...)

PS If I have some more questions (that can be trivial for someone) I should post theme here as Issues, mail them to someone, post somewhere or It would be best not to bother you with those at all?

I can't really go through the entire piece of code to find the cause. It would be more helpful to get a minimum working example.
This may be obvious, but it looks like one of the positively constrained hyperparameters becomes rather large during optimisation, causing the overflow. This is usually caused by an odd dataset or by strange optimiser dynamics.
Dataset features could be if one dimension has no variation and ARD=True. This causes the optimum for the appropriate lengthscale to lie at infinity. Alternatively similar things can be caused by the range of the datasets being very large. Normalising the input dimensions usually fixes this.
Sometimes aggressive optimisers like BFGS take very large steps when the estimated Hessians are ill-conditioned. Using nonlinear conjugate gradient (method='cg') could fix this. To debug further, it may be good to log the intermediate states during optimisation by adding a callback function, e.g.:
hist = []
def logger(x):
    hist.append(x)

And then passing callback=logger.
I'm happy to answer any small queries here. You could post them in the same thread if you think they are small.

Discussion is welcome through these issues. Perhaps you could mark them as 'discussion' rather than 'bug' though.
@markvdw  @alexggmatthews , perhaps we should make this clearer on the front page?

I simplified the code but I get no exception there. I'll try to figure it out.

@BPie, the dataset is odd for an RBF kernel, like I mentioned above. The input range is 0..40, similar for the output range. The relationship is close to linear too. This causes an RBF to require a much larger variance, in relation to the size of the dataset, causing the overflow. Fixes:

Use a Linear + RBF kernel
Normalise the dataset to keep the required variance in a sensible range.

Feel free to drop me an e-mail with any other issues you have.

@markvdw, thanks, that helped me to understand the issue.


Using with current hammerjs/webpack/modern browsers

To get this to work with the current hammerjs and modern browsers, I had to explicitly setup hammerjs with an inputClass designation:
let hammertime = new Hammer(canvas, {
inputClass: Hammer.TouchInput
})
Otherwise it was only recognizing pointer events and not multitouch events needed for things like pinch/rotate etc.

Thank you! This got hammer working with this emulation.

Thank you so much! Finally got this working thanks to this :)


Grids are susceptible to overflow

@mbaityje FYI this is a breaking bug right now but I will fix it 👍

Should be fixed now


'file.css': [...] not working

files: {
	'index.css': [
		'file1.scss',
		'file2.scss'
	]
}

files: [
	{
		src  : ['file1.scss', 'file2.scss'],
		dest: 'index.css'
	}
]

Included only the first file!

That's not supported. Use grunt-contrib-concat if you need to concat files, or even better, just use the Sass @import thingy.

@sindresorhus, hm. But it's standard Grunt
For example:
Your solution:
@import '../../../../node_modules/normalize/index.sass'

My solution:
src  : [
     'index.scss',
     require.resolve('normalize/index.sass'),
     // ... and more other polyfills and components
],

It's more comfortable for me.
Why cut the standard grunt features?

It's not standard. It's up to each task if it makes sense. And here it doesn't make sense.


rollup failed: Unexpected token

Running into this issue when trying to build with the module included via CloudModule.forRoot.
Followed all the instructions here: http://docs.ionic.io/setup.html but can't seem to get around it.
Node v7.4.0
NPM 4.0.5
Cordova CLI: 6.5.0
Ionic Framework Version: 2.0.1
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.1.4
ios-deploy version: 1.9.0
ios-sim version: 5.0.12
OS: macOS Sierra
Node Version: v7.4.0
Xcode version: Xcode 8.2.1 Build version 8C1002

Full Error Dump:
[16:18:13]  rollup failed: Unexpected token
[16:18:13]  ionic-app-script task: "build"

[16:18:13]  Error: Unexpected token
Error: Unexpected token
    at error (/Users/james/Projects/iCanQuit-App/node_modules/rollup/dist/rollup.js:170:12)
    at Module.error$1 [as error] (/Users/james/Projects/iCanQuit-App/node_modules/rollup/dist/rollup.js:7997:2)
    at tryParse (/Users/james/Projects/iCanQuit-App/node_modules/rollup/dist/rollup.js:7700:10)
    at new Module (/Users/james/Projects/iCanQuit-App/node_modules/rollup/dist/rollup.js:7735:14)
    at /Users/james/Projects/iCanQuit-App/node_modules/rollup/dist/rollup.js:9481:17

I have same problem

@mobyjames  I have find out issue. Issue is that angular-cloud has dependency to rxjs beta, after i upgraded to 5.0.1 issue is gone.


Toast Fails to Appear on Initial Screen on iOS

IF YOU DO NOT USE THIS TEMPLATE - YOUR ISSUE WILL BE CLOSED.  PLEASE READ THE FAQ AND THE CODE OF CONDUCT BELOW!
Please check all of the platforms you are having the issue on (if platform is not listed, it is not supported)

[X] iOS
[] Android
[] UWP
[] PCL

Version of OS(s) listed above with issue
iOS - 10.3.1
Android - 5.1
Version of ACR UserDialogs Library
6.4.1
Expected Behaviour
I am using the new Userdialogs 6.4.1 Nuget with the iOS fix for Toast. (Thanks!) It works great in iOS in all places except when the app starts up. On the very first screen I try to pop up a Toast with config info. On this one page it does not work. All all other pages in iOS, Toast is working fine.
The only difference I can ascertain is that it is the first page that comes up. I am using a PCL project & it is set as the MainPage in the App.xaml.cs, I am not Navigating to it. I am using the latest version of Xamarin.Forms.
On the Android version of the App, same code, the Toast appears on the first screen just fine.
Actual Behavior
Toast does not appear on initial screen on iOS device / simulator. Does appear on Android device/simulator.
Code of Conduct

No Library Update Requests
No Timeline Requests
Please read through the documentation and FAQs
Please be respectful of my time. I put a lot of effort into my libraries.  I try to support the issue requests within a day.  I'm not psychic, so please take the time to fill out the above form as complete as possible

Works fine for me.  Where in your code are you calling for the toast to display?

no response - closing issue


lighttpd: 1.4.63 -> 1.4.64

Motivation for this change
https://www.lighttpd.net/2022/1/19/1.4.64/
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

On macos 10.15:
builder for '/nix/store/syrkxl1xnkfwq1lgsg27b2fh4lvnvmy6-lighttpd-1.4.64.drv' failed with exit code 2; last 10 log lines:
               && CCRandomGenerateBytes(&u, sizeof(u)) == kCCSuccess) {
                                                          ^
  rand.c:390:49: error: use of undeclared identifier 'kCCSuccess'
      if (CCRandomGenerateBytes(&i, sizeof(i)) == kCCSuccess)
                                                  ^
  4 errors generated.
  make[3]: *** [Makefile:4339: t_test_mod-rand.o] Error 1
  make[2]: *** [Makefile:1768: all] Error 2
  make[1]: *** [Makefile:470: all-recursive] Error 1
  make: *** [Makefile:400: all] Error 2

https://redmine.lighttpd.net/issues/3129

Preparing patch...