upload from Cordova: on WiFi works, on 3G - no

I use ostrio:files v 1.8.2
Meteor 1.5.1
Cordova client
I'm sending small files 4K as base64 from Cordova client
When WiFi is on - upload is sucessfull. On 3G - not (connection to Meteor Server is good)
This is client code for upload:
var upload = Images.insert({
      file: 'data:image/jpeg;base64,'+imageData,
      isBase64: true, // <— Mandatory,
      fileName: Date.now()+'.jpg',
      streams: 'dynamic',
      chunkSize: 'dynamic',
      meta: meta
    }, false);

    upload.on('start', function () {
      console.log('upoad started');
      template.currentUpload.set(this);
    });

    upload.on('uploaded', function (error, fileObj) {
      console.log(error);
    });

    upload.on('progress', function (p) {
      console.log(p);
    });

    upload.on('error', function(e){
      console.log(e);
    });
    upload.on('end', function (error, fileObj) {
      if (error) {
        console.log(error);
      } else {

      }
      template.currentUpload.set(false);
      Session.set("taking_picture",false);
    });
    console.log(upload);
    upload.start();

server code
  var Images = new FilesCollection({
    collectionName: 'Images',
    storagePath: storagePath,
    debug: true,
    allowClientCode: true,
    onBeforeUpload: function (file) {
      if (file.size <= 3*1024*1024 && /jpg|jpeg/i.test(file.extension)) {
        return true;
      } else {
        return 'Please upload image, with size equal or less than 3MB';
      }
    },

    onAfterUpload: function(img){

 try {

      s=Shippings.findOne({ticket: img.meta.ticket});
      var d;
      if (img.meta.type=="start") {
        d=dist(img.meta.location.lat,img.meta.location.lng,s.start_point[0],s.start_point[1]);
      }
      if (img.meta.type=="end") {
        d=dist(img.meta.location.lat,img.meta.location.lng,s.end_point[0],s.end_point[1]);
      }
      Images.update(img._id, {$set : {
        "meta.distance" : d
      }});
      }
      catch(e) {
        console.log(e);
      }

    }
  });

On Server I see following debug messages in console when I try to upload file from Cordova client
I20170914-15:46:15.692(0)? [FilesCollection] [File Start Method]<PHONE_NUMBER>181.jpg - GRCxPvyd5XLeQXyiv
I20170914-15:46:15.695(0)? [FilesCollection] [Upload] [DDP Start Method] Got #-1/1 chunks, dst:<PHONE_NUMBER>181.jpg

What it can be?

Hello @Zentelechia ,

Are there any Client logs and/or errors?
Try with streams set to 1

Sorry for delay, please keep this thread updated

Hello @dr-dimitru

No Clients logs or errors (I assigned handlers for all available events  - no errors). Sequence - upload pause->upload started......nothning
I tryed - the same

@Zentelechia Try to use transport: 'http'

and update ostrio:files to the latest release, please.

I think issue is here: file: 'data:image/jpeg;base64,'+imageData
While it should be one of:

file: 'data:image/jpeg,'+imageData
file: 'image/jpeg,'+imageData
file: imageData

And could you console.log(imageData) to make sure imageData actually holds data

With 'http' transport - I got error like 'You are behind proxy.... try to use ddp'  (I say about 3G)
imageData - it's ok (long bas64 string)
I have updated to 1.8.3 - but still same situation
About  file: 'data:image/jpeg;base64,'+imageData - I will try it later, but main issue - that this works for WiFi

With 'http' transport - I got error like 'You are behind proxy.... try to use ddp' (I say about 3G)

This is the Client error. Do you have any Server errors/logs?

imageData - it's ok (long bas64 string)
I have updated to 1.8.3 - but still same situation

Good

About file: 'data:image/jpeg;base64,'+imageData - I will try it later, but main issue - that this works for WiFi

Got it. Could you try (for testing purpose) to upload file without encoding it to Base64? Let's see if it's related to base64 encoded uploads only, or to any type of upload method.
Also if you upload from same mobile device, but from a web version (not Cordova) will it work?

I tryed to upload  file (from input type="file") -the same - works on Wifi only
Ок, later will test with web version

I tryed to upload file (from input type="file") -the same - works on Wifi only

Hmmm...

Ок, later will test with web version

Ok, keep this thread updated

I just noticed, that this issue appeared after  closing  issue #467 - (when I change collection option inside FileCollection Constructor)

@Zentelechia could you post a code where it's used?

@Zentelechia is this one solved?

Closed due to silence at issue owner end.
Feel free to reopen it in case if the issue still persists on your end.

Hi @dr-dimitru !
Sorry for long silence, I'm swamped right now
From my last message, as I needed solution  - I used another way to transfer images from cordova client to server  over 3G (insert base64 string, representing image,  into ordinary Collection - and then on Server move it into FileCollection) I know that it is very bad usecase, but it works for me
May be little later I'll continue experiments with this issue

@Zentelechia thank you for update.
Feel free to reopen it at anytime.


[node, client] Update cf node to 0.2.83

The Problem

The Solution

Checklist:

[ ] I am making this PR against staging, not master
[ ] My code follows the code style of this project.
[ ] I have described any backwards-incompatibility implications above.
[ ] I have highlighted which parts of the code should be reviewed most carefully.
[ ] If my change requires a change to the documentation, I have updated it accordingly.

Closing this since we're updating in #466


iox-#885 Configurable introspection update interval

Pre-Review Checklist for the PR Author

[ ] Code follows the coding style of CONTRIBUTING.md
[ ] Tests follow the best practice for testing
[ ] Changelog updated in the unreleased section including API breaking changes
[ ] Branch follows the naming format (iox-#123-this-is-a-branch)
[ ] Commits messages are according to this guideline

[ ] Commit messages have the issue ID (iox-#123 commit text)
[ ] Commit messages are signed (git commit -s)
[ ] Commit author matches Eclipse Contributor Agreement (and ECA is signed)

[ ] Update the PR title

Follow the same conventions as for commit messages
Link to the relevant issue

[ ] Relevant issues are linked
[ ] Add sensible notes for the reviewer
[ ] All checks have passed (except task-list-completed)
[ ] Assign PR to reviewer

Notes for Reviewer

Checklist for the PR Reviewer

[ ] Commits are properly organized and messages are according to the guideline
[ ] Code according to our coding style and naming conventions
[ ] Unit tests have been written for new behavior
[ ] Public API changes are documented via doxygen
[ ] Copyright owner are updated in the changed files
[ ] PR title describes the changes

Post-review Checklist for the PR Author

[ ] All open points are addressed and tracked via issues

References

Closes #885

@elBoberido want to have your opinion before polishing this PR. Does it really worth it? There are a lot of smelly places, because we need to proxy this parameter thru many classes.
We can also be pragmatic and drop this feature.

At first I thought it would be neat to be able to reduce test times, but since this currently affects only one test we might also just drop it. We would also need to test this feature which would add more code for little gain. So I'm for dropping.
@elfenpiff what do you think?

@elBoberido want to have your opinion before polishing this PR. Does it really worth it? There are a lot of smelly places, because we need to proxy this parameter thru many classes.
We can also be pragmatic and drop this feature.

At first I thought it would be neat to be able to reduce test times, but since this currently affects only one test we might also just drop it. We would also need to test this feature which would add more code for little gain. So I'm for dropping.
@elfenpiff what do you think?

I would suggest to keep the INTROSPECTION_DEFAULT_UPDATE_INTERVAL in posh types and use this directly in all classes which are affected by it and not provide this as a constructor or method argument.
This should keep the code changes to a minimum but we would not decrease the time spent in tests. But if it is too much effort I also would vote for dropping the feature.

I would suggest to keep the INTROSPECTION_DEFAULT_UPDATE_INTERVAL in posh types and use this directly in all classes which are affected by it and not provide this as a constructor or method argument.

This should be easy, I'll create a separate PR then.


Add form components

Here's one I whipped up: http://codepen.io/johno/full/BKrvWJ/

I'm +1 on this. I really like these components.

Somehow forgot about this. Will add some tweaks and merge in later.

Awesome.

Some other form ideas (may implement these myself but I'm not a designer):

New blog post form
A form with dropdowns and/or checkboxes and/or radio buttons

Why not send a PR to the component gallery. Tachyons is not a UI kit like Bootstrap, it's the composable CSS to make them (like you did). :D

Closing this as it's more of a docs issue. Believe there is a duplicate ticket. Will open one if not.


chore: Rename activity routes to notifications

This PR resolves ONYX-612
Description
This PR renames the following routes to align with Force:

 /activity -> /notifications
/activity/:notificationID -> / notifications/:notificationId

Slack Discussion about naming
PR Checklist

[ ] I have tested my changes on iOS and Android.
[ ] I hid my changes behind a feature flag, or they don't need one.
[ ] I have included screenshots or videos, or I have not changed the UI.
[ ] I have added tests, or my changes don't require any.
[ ] I added an app state migration, or my changes do not require one.
[ ] I have documented any follow-up work that this PR will require, or it does not require any.
[ ] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

Rename activity routes to notifications - ole

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (Rename activity routes to notifications - ole)

  Generated by :no_entry_sign: dangerJS against 0876c72ed692d4923178130b772b335ec2748472


Team Tab in Microsoft Project not available after installing Azure DevOps Office® Integration 2019

Hi all,
I am not seeing Team Tab in MS Project :(
Following office pack is installed:

Office 365 Pro Plus
Microsoft Project Online Desktop client.

I have tried re-installing office, as well as Ms Project - no success. I have even isntalled Visual Sturio Enterprise 2019, and still it is not showing..
But, I have seen it at colleagues computer that works, and I am not able to figure out why is on his computer working, and on mine not.. Coudl you please heeelp!!
Thanks!

Thanks for your question. It looks like you're working through an issue with your scenario or implementation, rather than an issue with the documentation. Here are a couple of options where you might consider asking your question:

Azure DevOps on Stack Overflow
Azure DevOps Support Bot


fixed issue where compare views were colliding if the browser window …

…got too small. Also fixed a bug related to navigating to the patient compare view from the pass/fail icons.

@thecristen does this mean I should wait until your pull request gets approved? or do you just want to incorporate these changes into your pull request?

@edeyoung Either. I'd prefer if this PR waiting until after mine (since this will be easier to rebase since it's so tiny)


Dockerfile*: Separate resolving dependencies

from the rest of the build to speed up local cached builds.
not essential but helps while testing

Also merge into master!

Changed ADD to COPY

v0.11.0 388mb
v0.11.1-RC1 579mb

I see no reason to change release builds when you can only change dev builds.

https://github.com/mesosphere/marathon/pull/925#issuecomment-68431390


My Copilot always says Oops, your response got filtered. Vote down if you think this shouldn't happen.

VS Code Version:
OS Version:
Logs:

Steps to Reproduce:

Please include logs via CTRL / CMD + SHIFT + U -> GitHub Copilot Chat


HBOS_RobustScaler

meta description as an issue with description.
you have mentioned about standardscaler in it.
small issue exists in data scaling description.


Requests that return " malformed" also return last request's response

If you:
resty http://localhost:5984
GET /test

It returns the expected result (information about the CouchDB database I'm getting info about).
However, if I do that, and then type it again--forgetting the opening slash:
GET test

I get:
* <url> malformed
* <url> malformed
* getaddrinfo(3) failed for test:80
* Couldn't resolve host 'test'
* Closing connection #0
* About to connect() to localhost port 5984 (#0)
*   Trying <IP_ADDRESS>... connected

and the remainder (headers and content) of my earlier request.
What I'd expect is the "Couldn't resolve host 'test'" response.
Thanks.

This is a feature

If the path parameter is not provided on the command line, resty will just use the last path it was provided with.

I'm gonna see if it's possible to disable it has a feature for 3.0

there is now the feature to disable it


Namespace cannot inherit the Resource Limit default value from the project

Setup

Rancher version: v2.7.1
Browser type & version: 110.0.5481.100

Describe the bug

When the namespace was created, the value of the default resource limit set in the project was not inherited into the namespace
To Reproduce

Create a project and set the default value of Container Default Resource Limit
Create a namespace in this project, check the default value of Container Resource Limit

Result
Container Resource Limit does not inherit from the default value of the project, all are empty
Expected Result

Inherit default values from project

Engineering to write an automated test to help QA in #8786


Readme doesn't explain what the library does

The readme.md file does a pretty good job introducing issues that arise while writing functionnal js. It really gives desire to avoid those.
But in the end, I haven't picked up:

what methods the library exposes
if it is ECMA6 only
how to get started.

For instance, I use Lodash. Are there any reason I should consider moving to trine?

The docs (linked from the README) list all the methods and show you how to use them.
Trine needs ES7 (via Babel, with runtime included and experimental flags). This enables it to be far more convenient than Lodash because you can then chain methods without using wrappers. The README shows an example of an array that's filtered and then mapped (native array methods), but then has a Trine method (flatten) applied to it using ES7's bind operator. This feature (plus ES6 iterators under the hood) mean you get all the benefits of Lodash's chaining without having to wrap or unwrap your data — you can call the Trine method on the data object directly :D
The key gain is that by using the features of ES7 idiomatically, your code reads far better in source (and it's far easier to reason about what you want to write without thinking about how to write boilerplate), but compiles down to something similar to Lodash for use in ES5.

Thanks for feedback. I opened the issue not only to get the info myself, but more to make a feedback on what can a newcomer understand from landing there and what IMHO could be nice to explain more in detail. :)

If there's any ideas on how to improve the README in this regard, I'd be more than happy to take PRs. :) I'm not quite sure how to communicate this information in the README myself. :/

For instance, I use Lodash. Are there any reason I should consider moving to trine?

As for this question, given that Trine is built on the bind syntax proposal that may or may not ever land to JavaScript (although it seems unlikely to me that it wouldn't), production usage is not advised, and should be considered carefully. You might end up being bound to a specific version of Babel if you depend on the bind syntax. That's part of the reason why I didn't add very specific instructions on how to easily get set up either, because you should know what you're doing as well as possible if you decide to take Trine into production use.

may not ever land to JavaScript

@jussi-kalliokoski that would be hilarious. "The functional programming library that Javascript definitely deserves, but can't actually run" – that should keep the haters happy ;)

@barneycarroll hahah, yes. :laughing:

Of course, there's the performance benefits as well. For example the case that's in the README, getting the first 15 items of a large product catalogue, sorted by price.
Here's a benchmark of doing that for a product catalogue of 1 million items:
"use strict";

import { quickSort } from "trine/iterable/quickSort";
import { head } from "trine/iterable/head";
import { to } from "trine/iterable/to";

function inMilliseconds () {
    const seconds = this[0];
    const nanoseconds = this[1];
    return seconds * 1e3 + nanoseconds / 1e6;
}

function measure (samples) {
    const times = [];

    for ( let i = samples; i > 0; i-- ) {
        const start = process.hrtime();
        this();
        const elapsed = process.hrtime(start);
        times.push(elapsed::inMilliseconds());
    }

    times.sort((a, b) => a - b);
    const medianTime = times[Math.floor(times.length / 2)];

    console.log("%s took %sms", this.name, medianTime);
}

function * randomProducts () {
    while ( true ) {
        yield {
            price: Math.random() * 1000,
        };
    }
}

const SAMPLES = 1000;
const PRODUCTS = 1000000;

const products = randomProducts()::head(PRODUCTS)::to(Array);

function native_sort_15_first_items () {
    return products
        .slice() // copy the array to avoid manipulating the original
        .sort(function (a, b) { return a.price - b.price; })
        .slice(0, 15);
}

function trine_quicksort_15_first_items () {
    return products
        ::quickSort(function (b) { return this.price - b.price; })
        ::head(15)
        ::to(Array);
}

native_sort_15_first_items::measure(SAMPLES);
trine_quicksort_15_first_items::measure(SAMPLES);

The results on my computer were as follows:
native_sort_15_first_items took 1842.314449ms
trine_quicksort_15_first_items took 715.955531ms

(The benchmark took around an hour to run for me, so might want to adjust the constants if you want to run it yourself).
As you can see, Trine is almost 2.5x as fast in that example compared to the native equivalent (and AFAIK, lodash, underscore and Ramda all use the native sort internally so would have similar or worse performance characteristics as the native version). However, if you start decreasing the catalog size, you'll quickly notice that the native equivalent becomes faster - this is because of the current overhead of iterators due to not being provided natively but by pretty complex state machine logic in regenerator.
And the current quicksort implementation in Trine is actually rather naive and could be optimized to be much faster, and also at some point when engines start optimizing generators and Trine doesn't need to be compiled anymore, the difference will likely become even greater.
Unlike with other utility libraries, you usually don't even have to be thinking about performance and computational complexities with Trine, as just naturally spelling out what you want will most likely be the fastest way to perform the operation. Using plain old ES5, you'd have to hand-write a sort implementation that only does precise sorting for the first N items to get the same performance you get with Trine out of the box.


Roll Flutter Engine from 2923201bc337 to 05ec21175ce0 (2 revisions)

https://github.com/flutter/engine/compare/2923201bc337...05ec21175ce0
2023-12-05<EMAIL_ADDRESS>Roll Skia from de49aeaa8224 to a998afefb1b0 (1 revision) (flutter/engine#48660)
2023-12-05<EMAIL_ADDRESS>Roll Skia from d37625f80ac0 to de49aeaa8224 (1 revision) (flutter/engine#48658)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC matanl@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Add link to apidoc-generator in DEVELOPER.md

Found that it was not clear at first glance that code generation is a separate concern from apidoc proper.

:+1:

thanks!


How to use cpt with cmake.install()

I developing a conan package for an external project that is built using cmake. It builds & tests just fine locally, but not on gitlab ci. My package is using cmake.install() in the build() method and just pass-ing on the package method as documented here, and the output looks like it isn't getting anything in the package, with each configuration resulting in output like:
CppUTest/master@bryceschober/stable: Generating the package
CppUTest/master@bryceschober/stable: Package folder /home/bschober/.conan/data/CppUTest/master/bryceschober/stable/package/97fa2add7ff02bfbb82a5e5931d282250fb81a2a
CppUTest/master@bryceschober/stable: Calling package()
CppUTest/master@bryceschober/stable: WARN: No files copied from build folder!
CppUTest/master@bryceschober/stable: Package '97fa2add7ff02bfbb82a5e5931d282250fb81a2a' created

If I do a local non-cbt build+test along the lines of:
conan source .
conan install .
conan build .
conan package .
conan export-pkg -pf package . bryceschober/testing
conan test test_package CppUTest/master@bryceschober/testing

Then I get the files that I expect and the test works as expected.
It seems that cbt either doesn't support this "non-standard" but documented / recommended way of reusing the cmake install, or maybe that how do use it with cbt wasn't discoverable by me.

The cpt only allows conan create flow.

Hi @bryceschober !
As @lasote said, the best option is using conan create command.
You could obtain more information about create here.
Also you could write a Conan recipe as well.
When running Conan Package Tools, it will call conan create automatically. But the best option for cmake install is running into package method. Package is the point where Conan copies all files to package folder.
Do you have any question?
Regards!

Nope, I'm OK and have moved on.


Make conversation name in conversation view bodytext2

My branch. I made the text message color, bodytext2. So changing that will change the received message color


Clipping primitive; two ClippingBoxes at the same time

Hello,
I tried following these instructions  to add a second ClippingBox to a renderer. I had some of issues that came up:

The MonoBehaviour script SecondClippingBox does not reference the variable clipBoxSizeID, and the script requires including the namespace Microsoft.MixedReality.Toolkit.Utilities. I commented out the clipBoxSizeID and included the namespace to the script.

Modifying the MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader in step 5 for #if defined(_CLIPPING_BOX2). I changed the code to include variables clipBoxSide2 and clipBoxInverseTransform2 to match the format of  #if defined(_CLIPPING_BOX). I also removed the argument _ClipBoxSize2.xyz from PointVsBox().

Making these changes worked for me :) I included some screenshots.

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

ID: e84ae485-589a-39ae-215b-2a180e256847
Version Independent ID: 1e333459-27c2-0a15-e6f5-00dbc4e6b88f
Content: Clipping primitive - Mixed Reality Toolkit
Content Source: mrtk-unity/features/rendering/clipping-primitive.md
Product: mixed-reality
GitHub Login: @keveleigh
Microsoft Alias: kurtie

@qianw211 assigning to you as you were listed as a contributor. Feel free to close or remedy based on your opinion.

@Cameron-Micka, any insight?

@keveleigh ah yes, we need to update these docs to reflect some PRs that have gone in over the years. (I think this bugcalls this out too.)
I did recently update the steps in MRTK3, so they should be correct: https://learn.microsoft.com/en-us/windows/mixed-reality/mrtk-unity/mrtk3-graphicstools/features/clipping-primitive#advanced-usage

@DreVinciCode Hi, I also have a problem following the instruction. I looked into your screenshot, but still the second box is not clipping my model.
I wonder what is wrong and here are the codes I changed according to the instruction and your answer.

Finally, here are the clipping boxes in the scene.

I am using MRTK 2 and created a new material with the altered standard shader. I would really appreciate it if someone can have a look at my settings. Thanks in advance.


How to use the Http notifier in burrow?

I have configured in this way. But nothing is happening
[httpnotifier]
url=http://nj09mhf5528.mhf.mhc:9000/v1/alert
interval=60
extra=app=burrow
extra=tier=STG
template-post=/home/pbhaskaruni/work/go/src/github.com/linkedin/burrow/config/default-http-post.tmpl
template-delete=/home/pbhaskaruni/work/go/src/github.com/linkedin/burrow/config/default-http-delete.tmpl
timeout=5
keepalive=30

"Nothing is happening" is very vague. There are no errors being reported at startup on processing the templates? There are no ongoing log messages about not being able to contact the endpoint? Are there any consumers that are actually bad (i.e. that should be having things sent out?)? Have you sniffed the traffic to that host to see if any connections are being attempted from Burrow?


Proposal: regexp: Optimize fixed-length patterns

The regexp package has 3 different matchers (NFA, onepass, backtrack). One of them is selected depending on the pattern.
I suggest adding a 4th matcher optimized for fixed-length patterns like a.ab$ on strings.
I wrote a proof-of-concept implementation which provides near constant-time matching whereas the current matchers from regexp perform linearly with the size of the input string. Performance becomes close to what can be achieved with methods like strings.Index.
Here is a sample benchmark result of regexp.MatchString("a.ab$", strings.Repeat("a", N)+"b"):
N=1000
BenchmarkRegexpBypass/DotSuffix/bypass-8   	30000000	    109 ns/op  # New matcher implementation
BenchmarkRegexpBypass/DotSuffix/std-8      	   50000	  69882 ns/op  # Go's current standard library
BenchmarkRegexpBypass/DotSuffix/pcre-8     	  100000	  41359 ns/op  # PCRE
BenchmarkRegexpBypass/DotSuffix/rust-8     	20000000	    157 ns/op  # Rust regexp engine

I've added more details, benchmarks and tests (with fuzzing!) to the repository. Not sure how much should be inlined here.
The obvious cons of this proposal are:

Adding more code to the standard library
Adding more work at compilation time.

The pros are:

Constant-time matching for many simple regexps
No overhead for regexps that are not supported
Go's regexp package is usually considered immature performance-wise. This proposal plays a small role in fixing that by adding optimizations that can reasonably be expected from the end-user.
This matcher keeps very little state and bypasses the mutex from regexp.go
There are already 3 different matchers in the standard library (4 with the upcoming DFA), so adding a new one for a specific kind of patterns is not surprising.
regexp.MatchString("(?:png|jpg)$") could obviously be rewritten as strings.HasSuffix("png") or strings.HasSuffix("jpg") but sometimes it is not practical because the pattern to be matched is user-supplied or part of a long list of patterns. Examples include interactive log search or lists of paths in HTTP routers.
Limited risk due to exhaustive tests in the standard library and additional fuzzing

Feedback would be highly appreciated. Thanks!!

CC @rsc

It would be interesting to examine a large corpus of Go code (perhaps https://github.com/rsc/corpus), extract all the regular expressions (at least the constant ones), and categorize them as to whether this matcher would apply.

I looked in the BigQuery GitHub public dataset for constant regular expressions used with regexp.MatchString:

matcher applies
cnt

yes: ^([\w\d\s]+\|?)+$
206

yes: ^[\w\d\s\.]+$
47

yes: [\w\d\s\.]+\$
59

no: ^[^\^\$]+$
422

no: [\*\+\?]
1182

maybe
548

13% of the time, the matcher applies. 65% of the time, it does not.
Feel free to add comments or suggestions to the query, I will re-run it and update the results here.

Great idea & thanks for the stats!
Regarding BigQuery, I think we should also match calls to (Must)?Compile, as this proposal isn't limited to MatchString (though my prototype implementation currently is). Also, it might be difficult to decide if the matcher applies based only on a regexp, so another technique could be dumping all the patterns to a CSV and then testing them one at a time. Finally, the matcher has a "firstpass" mode of operation where it extracts anchored fixed-length prefixes and suffixes before delegating to the other matchers, so that should be counted separately.
I'm going to update the repository with a more exhaustive list of supported regexps to make things clearer.

The pros are:

Constant-time matching for many simple regexps

I'm not aware of any theory making that possible. Can you please explain?

I have updated the repository with a clearer table of supported patterns.
@cznic I meant constant-time like strings.HasSuffix is. I'm not sure of the exact complexity of string slicing in Go, but for practical purposes I have observed it to be constant. I made a chart of the benchmark of regexp.MatchString("a.ab$", strings.Repeat("a", N)+"b") as an example:

I meant constant-time like strings.HasSuffix is.

I don't think strings.HasSuffix is O(1) either.

I made a chart of the benchmark ...

Nice chart, but the N parameter is used in the wrong place. Actually, the data are for constant N, no wonder it flat-lined.
More importantly, theory needs to talk. Can you refer to a theory enabling/explaining constant time regexp matching?
Don't get me wrong, none of the above means your contribution does not improve performance.

I don't think strings.HasSuffix is O(1) either.
I'm not sure if it is in theory, but I just added a benchmark for it and it does seem constant even with a 1Gb string.

Nice chart, but the N parameter is used in the wrong place. Actually, the data are for constant N, no wonder it flat-lined.
Sorry if I missed something. I'm using the strings returned by getString(n int) as input, those do seem to grow and I'm sending the same input to both implementations so I'm not sure there is an error.

I'm happy to change "constant" to something else if it's not actually the case but so far I haven't seen any linear behaviour in the benchmarks for these simple patterns.

I'm not sure if it is in theory, but I just added a benchmark for it and it does seem constant even with a 1Gb string.

The N you're looking for is the length of the matched pattern, not the length of the string searched. But you're using a constant length pattern, so you can only get a constant result.
Normally, two parameters should be considered, length of the pattern (let's call it N) and length of the string (M). If the computation can take advantage of knowing the location of the end of the string in O(1) and perform the match from the end, it reduces to considering N only. But I'm not aware of any way to perform the match in O(1) wrt to N only. Therefore, regardless of the complexity wrt M, the overall one cannot be constant time. Known theory says O(NM), which is O(N) for strings.HasSuffix.

@cznic OK I see what you mean. I did mean "constant" relative to the size of the input string only. I will add that clarification where needed. I'm obviously not claiming it to be constant relative to the size of the pattern itself. Thanks!

I used this query to extract constant regular expressions used with MatchString, Compile and MustCompile in the the GitHub public dataset: CSV file
Feel free to run an analysis on it.

Thanks a lot @steren! I just added the dump to the tests, here are the stats:
Total occurences                    76341
Invalid                             2545 (3.33%)
Unsupported                         48006 (62.88%)
Supported total                     25790 (33.78%)
 Supported with byPassProgLinear    14714 (19.27%)
 Supported with byPassProgAlternate 450 (0.59%)
 Supported with byPassProgFirstPass 10626 (13.92%)

33% is much higher than I expected!

I've updated my repository to add support for all fixed-length unanchored patterns. Support on the GitHub dataset increased from 33.78% to 36.51% with overall performance improvements. It would even go up to 55% if/when we support captures.
I am pretty excited by the fact that on some patterns, my implementation beats all the engines I have been able to benchmark, including Rust which usually performs best. I think implementing both this proposal and a proper DFA would make Go's regexp engine a very strong performer.

Hi. Thanks for looking into the performance here. I would like to understand better how much of the improved performance can be had by appropriate adjustments to the existing matchers versus how much requires a whole new matcher. Every new matcher adds a cost, and honestly I think we have too many already. I don't really like how overengineered RE2 is, and I don't want Go's regexp package to end up the same way one matcher at a time. So I want to make sure we're doing all we can with existing matchers before adding a new one.
I observe the following about the standard Go regexp package:

It looks like leading or trailing .* (or leading ^.* or trailing .*$) should be stripped from the pattern and handled specially, just like we handle literal prefixes.

It looks like the literal prefix matcher doesn't kick in for anchored patterns, and we should fix that. (See the difference in std between ^xxy and xx in your benchmark.)

It seems clear that we should handle patterns ending in $, like \.(jpe?g|gif)$, by scanning the string backward, which cuts the processing from O(n) to O(1) for an input of size n. That's easy to add to the existing matchers and doesn't need to be limited to fixed-size patterns.

Every top-level .* in the pattern (including the implicit .* inside .+ expanded to ..*) serves as a "cut" in the Prolog sense; when reached it should cause all lower-priority threads to be discarded, and no new start-of-pattern threads should ever be created, the same way those threads are disabled when finding an overall match.

I think those would recover the bulk of the improvements shown in the benchmarks, without a new matcher.

Thanks for your feedback @rsc!
I agree it's fair to try improving the existing matchers before considering adding a new one. I still believe fixed-length patterns can benefit from optimizations that will require new matching methods, but let's indeed find out what the minimal amount of new code would be.

It looks like the literal prefix matcher doesn't kick in for anchored patterns, and we should fix that. (See the difference in std between ^xxy and xx in your benchmark.)

I don't see any difference in the benchmark in std between ^xxy and xx, could you explain?
In your points 1 & 4 you mention optimizations for .*. Are they valid only with the DotNL flag or would they involve scanning the input to look for \n characters?
I will try to make a CL for backward matching of anchored patterns first. Should I open a separate issue for it?
I have a couple questions for further CLs:

Would it be possible to add new InstOps? For instance I think having a new one similar to OpAnyCharNotNL but with any other character than \n would improve performance because excluding a single character is a frequent use case. [^a]*a could also be done in a single InstOp.
Cutting processing time from O(n) to O(1) is always interesting, but how much do you care about reducing the ~100ns/op that seem to be the overhead of re.MatchString even for simple patterns? For instance, would you be open to approaches that bypass the mutex when it's not needed?
Would it be worth it to generalize LiteralPrefix and scan the string for all top-level literals in the pattern?

Thanks!

re difference, looks like maybe I misread the benchmark output.
re .*, yes, what I described would only apply when . matches \n. That's kind of sad.
re backward matching, sure feel free to open a separate issue.
re InstOps, it would be nice to avoid them by default, since new InstOps invalidate other code using the Prog representation (that don't know how to handle them), but if they make a big difference it is probably OK.
re LiteralPrefix, the nice thing about the prefix is that it tells you where to start too, so the scanning is not wasted effort. Scanning for the other required literals might be OK but they're harder to extract from the Prog, and I try to avoid doing analyses directly on the Regexp beacuse of all the syntax complications. Worth trying though.

On hold for response (no hurry).


Feature serialization improvements

This PR fixes interoperability issues with other platforms and with protobuf clients in other programming languages.

Discarded because the PR was referring to an old develop codebase.

@akuker I'm getting a lot of automated "build failed" emails even though I don't have any compilation issues on my Pi. Can you please check?

@akuker I'm getting a lot of automated "build failed" emails even though I don't have any compilation issues on my Pi. Can you please check?

I'm not sure why it suddenly started sending emails. The build job has been broken for a while, so I've just disabled it for now.


Consider a request/response wrapping hook slightly higher level than asgi_wrapper()

There's a long justification for why this might be needed here:

https://github.com/simonw/datasette-auth-tokens/issues/10#issuecomment-1701820001

Short version: it would be neat if it was possible to stash some data on the request object such that a later plugin/middleware-type-thing could use that to influence the final returned response - similar to the kinds of things you can do with Django middleware.
The asgi_wrapper() mechanism doesn't have access to the request or response objects - it gets scope and can mess around with receive and send, but those are pretty low-level primitives.
Since Datasette has well-defined request and response objects now it might be nice to have a middleware layer that can manipulate those directly.

Not sure what to call this. Maybe app_wrapper()?

This could even be a pair of hooks - process_request() and process_response().
Or could take a leaf from Django, which redesigned middleware to use this pattern instead:
def simple_middleware(get_response):
    # One-time configuration and initialization.
    def middleware(request):
        # Code to be executed for each request before
        # the view (and later middleware) are called.
        response = get_response(request)
        # Code to be executed for each request/response after
        # the view is called.
        return response
    return middleware

Or even borrow an idea from pytest where fixtures can yield in the middle, like this:
@pytest.fixture
def sending_user(mail_admin):
    user = mail_admin.create_user()
    yield user
    mail_admin.delete_user(user)

A pattern like this could be interesting:
async def my_middleware(datasette, request, get_response):
    # Mess with request here if neccessary
    response = await get_response(request)
    # mess with response
    return response

The hook could be called register_middleware() and could work like register_routes() and register_commands():
@hookspec
def register_middleware(datasette):
    """Register middleware: returns a list of async def middleware functions"""

Need to make sure the design of this takes streaming responses into account. Those could be pretty tricky here.

This looks relevant:
https://pluggy.readthedocs.io/en/stable/#wrappers

A hookimpl can be marked with the "wrapper" option, which indicates that the function will be called to wrap (or surround) all other normal hookimpl calls. A hook wrapper can thus execute some code ahead and after the execution of all corresponding non-wrappper hookimpls.

This could be the perfect mechanism for implementing this hook, although I still need to figure out how it interacts with streaming.


[9.0] Don't try and find a user when stripeId is null

If a payment is manually created from the Stripe dashboard, it is
possible that it will not be linked to a customer.
When this null stripeId is used to find a user record, it will find the
first customer record that does not have a stripeId in the database.
Adding an early exit will prevent this from happening, and stop these
null stripeId users being erroneously referenced in webhook handling.

Thanks!


Add Offline Capabilities

User Stories

As a user, I would like to use this application with little or no internet access and still have core functionality available.

Offline functionality working


Compilation error when one-way binding an attribute value to a c# string.

Title
Compilation error when one-way binding an attribute value to a c# string.
Minimal repro steps

Create a new Blazor app
Open Index.cshtml and add a private string Test; member in a @functions code block
Add a public string InputText {get; set;} prop in the @functions code block
Add the following input in the html code <input @bind(InputText) class="@Test" />
Try to build the project

Expected result
Code should compile
Actual result
The following error is produced
Error	CS1503	Argument 2: cannot convert from 'string' to 'Microsoft.AspNetCore.Blazor.RenderTree.RenderTreeFrame'	WebApplication1.Client	E:\Desktop\WebApplication1\WebApplication1\WebApplication1.Client\obj\Debug\netstandard2.0\Pages\Index.g.cs	42	Active

Did you try without double quotes ? <input @bind(InputText) class=@Test />

I already encountered this compilation error when I use both a @bind() to a property and some Razor code in the same input.
If you put @bind(InputText) at the end, it works.
<input class="@Test" @bind(InputText) />
It is a workaround but I don't know why the compilation returns this message.

Thanks for letting us know. I believe this issue will no longer be applicable when we merge #406. I'll close this since it's not applicable to do anything about it when it's about to disappear.
But if you notice any other condition where this can be triggered (without using @bind), please let us know!

@rynowak If you think I'm wrong about this please reopen!

I get the same error message with @onclick() .
The error message appears for code like this
 DoSomething()) href='@(SomeProperty)'>
but if I switch the places of @onclick() and href like this
 DoSomething()) >
then the error goes away
Don't know how to reopen this bug

OK thanks @miroslavp! Reopening.
Again I think this issue will disappear when we remove @onclick(...) and replace it with onclick=..., but we should keep this issue open until we know for sure.


Enable: fix package manager name

Using app enable packageManagerName was failing cause the code was checking the system package manager and not the one provided by packageManagerName.
Fixed.

This is super funny... one of my friends who's a user of this literally just asked me about this today. He tried app enable flatpak and it didn't work and I told him, it's supposed to be app -m flatpak enable and then proceeded to say, “but hum... maybe I should change it so that both app -m flatpak enable and app enable flatpak will work. 😂 Thanks so much for this!
Btw, I am pretty slammed this week but will get to reviewing all the pull requests soon...

The behavior you have coded makes totally sence, my bad! I should have read more carefully the helper usage part. 😬
We are too formatted with the english syntax where the action takes place before the subject like here app action subject => app enable flatpak.
But honestly your code works well for me, I'll close this.


support question: refer html dom element in external library

Note: for support questions, please use one of these channels: Chat: AngularClass.slack or Twitter: @AngularClass
The above channels dont seem to be available currently, so posting a support question here.

I'm submitting a ...
[ ] support question

I have a component that has html as follows:

          Elite Construction Group, LLC
          Pro Era Limited

Its basically a slider.
I have a library that I use in a lot of projects, for animations and stuffs.
Theres a function as follows that initiates a slider:
function initPartnersSlider(container) {
var $partnersSlider = $(container) ;
if (!$partnersSlider.length) return;

$partnersSlider
  .find('.js-slick-slider')
  .slick({
    dots: false,
    infinite: true,
    speed: 300,
    slidesToShow: 5,
    autoplay: true,
    accessibility: false,
    prevArrow: $partnersSlider.find('.js-partners-prev'),
    nextArrow: $partnersSlider.find('.js-partners-next'),
    responsive: [
      {
        breakpoint: 1100,
        settings: {
          slidesToShow: 4
        }
      },
      {
        breakpoint: 1000,
        settings: {
          slidesToShow: 3
        }
      },
      {
        breakpoint: 768,
        settings: {
          slidesToShow: 1
        }
      }
    ]
  });}

Function Call:
initPartnersSlider('#partners-slider');
Problem here is
$partnersSlider.length

is always 0.
As per my understanding, the html element is placed inside a minified file by webpack (prod)

main.bundle.js

I am referring my external javascript file inside index.html as a script tag. It doesnt seem to recognise the dom element with id="properties-slider" as the element is inside main.bundle.js?. I am able to debug and see it in my library code.
Has anyone done that before?
Thanks for any help!

What do you have inside container variable?
var $partnersSlider = $(container) ;

Updated the question, basically initPartnersSlider method is called with id ref '#partners-slider'
initPartnersSlider('#partners-slider');
so
$(container) = $('#partners-slider');

We had same problem and we just wrap run slick code in setTimeout, not good solution but it works for us
setTimeout(() => {
      $(this.el.nativeElement.children).slick(this.local.options);
    }, 0);

It worked like a charm. Thank you, spent a lot of time over this, you saved me some more!!


WebAssembly compile-time imports

Hot off the presses, WebAssembly now has a proposal for compile-time imports: https://github.com/WebAssembly/design/issues/1479.
This is a very early stage proposal on the WebAssembly side, but it'd be good for the champions to be aware of. Namely, should imports be passable both during compile time (i.e. the action that produces a WebAssembly.Module), how might this proposal be extended to support that? In other words, there should be an "out" here so if compile-time imports become a thing, that ideally does not preclude usage of this proposal.
At the same time, because the WebAssembly proposal is so early stage, we definitely should not design the JS proposal speculatively.
Thoughts?

This did come up in the Wasm CG meeting when we discussed the topic, but it seemed at the time like there wouldn't really be a conflict.
Reading over the design space again, there definitely will be interactions we need to figure out though. Whether compile-time imports build on top of WebAssembly.Module or on top of something lower-level definitely seems like it affects interaction with the ESM integration. That said, I'm not even clear on what the baseline ESM-integration expectation would be for compile-time imports as well? Would standard host-resolution be sufficient?
Then I suppose JS doesn't have a concept of link-based specialization or optimization at all? So this is simply not a concern for JS? Wondering if partial linking will come up for JS at some point.
I'd be very interested to hear if @eqrion has any thoughts with regards to how this might work as well.

Thanks for putting some thought to this one @eqrion, appreciated for keeping it on your list! Very interesting to hear the motivations and great to see your progress on this topic.
The goal of the source phase is to provide a module abstraction that is both transferrable and generic for virtualization. The source phase is also supposed to represent the earliest loading phase of a given source in the current environment. It can have some environment specific host data associated with it as well though.
To expose compile time imports in the ESM integration, it seems to me like the options might be:

Define host-defaults from the browser, so that compile-time imports can be automatically provided to a WebAssembly.Module provided by the source phase.
Require passing compile options with something like import attributes. We only have primitives here currently so it would require some kind of syntax extension I think.
Define a JS representation for an uncompiled module that could be used for the source phase in a generic way - WebAssembly.Source say.

I'm not sure that a separate compile phase would make sense as it would still require a JS representation of this compilation something like (3), which would then be better served by the source representation since I don't believe it would be possible to justify creating a phase that has no meaning for JS modules. Unless you were pointing to something more like (2) for a parameterized source phase?
Then to open up the discussion a bit more -  there might also be a similar concept to compile time imports in the module declarations spec which permits an earlier linking phase between sources. See https://github.com/tc39/proposal-module-declarations#example.
In whatever form, it would be great to figure out a path for supporting compile time imports in the ESM integration both with and without the source phase though. If it would help to have an in-person discussion, it would be great to have you join our weekly modules meeting on Tuesday at 9am pacific if you're free then - I can send you an invite if you are interested.

@eqrion we discussed this topic further in the modules meeting today, and a suggestion on the topic that came up with support from members including @nicolo-ribaudo and @lucacasonato was what if WebAssembly were to assume a special privileged namespace for imports, something like wasmsys:builtin.
On the JS side at least, we could possibly even look at reserving / ensuring this namespace will never be reachable for JS modules, such that it could be assumed to be reachable only from WebAssembly.
In that case, a core module with an import of "wasmsys:builtin-type" "builtin-func" could be known at compile time to only resolve to its specific delegated host builtin meaning, achieving the same goals of compile time imports I believe, without altering interaction with WebAssembly.Module or phasing.
That does leave open the question of other types of non-host compile time imports, although I'm not sure if there is a use case there being prioritised.
Another benefit of the above would then be first-class ESM integration support for these optimizations.
Would something like the above be a viable option do you think?

Okay, coming back to this after discussing this with several folks offline.
I didn't fully understand the issue because I thought the issue was with how to specify certain wasm imports as being 'compile-time' when using ESM-integration. But the bigger issue is that even if you have that, you need that compile-time import to get some value from another module's exports and that doesn't fit in the ESM module phases (evaluation comes last) without extending it quite a bit.
Proposed new direction
So here's another option (restated and tweaked from @guybedford and others) that supports the use-case of js-builtins in wasm, without using compile-time imports:

Add an option to the WebAssembly JS-API compilation endpoints (module constructor, compile, compileStreaming, etc):

dictionary WebAssemblyCompileOptions {
    optional sequence<USVString> builtinModules;
}

Every string in builtinModules must be a host-recognized 'builtin-module', and the list must not have duplicates. Every 'builtin-module' that's provided is available as an import when compiling the WebAssembly module.
Any module import that refers to something from a builtin-module is checked eagerly when compiling and then is no longer needed to be provided when instantiation happens (same as with compile-time imports). They're  'eagerly' applied and this allows us to specialize codegen to them.

Define a 'wasm/string' builtin-module, basically the same as the proposal currently has it in the WebAssembly namespace

In a future with ESM-integration, builtin-modules are available to be imported and because they're guaranteed to always resolve to the host we can recognize and specialize codegen to them while we compile the module for instantiation later.

Advantages

No longer need any restrictions around serializability/shareability that compile-time imports introduced. Anything that's within a builtinModule is reasonably expected to be serializable and shareable.
Coherent story for working with ESM-integration in the future

Disadvantages

Unclear if we could make Web features available in the wasm-builtin-modules or only just JS features that are purely computational and don't represent a 'capability'. Even if true, this may not matter as we may only care about computational features?

Open question
Would source importing a wasm module that imports a wasm builtin-module have the same 'eager' behavior as in the JS-API above?
If the answer is yes, then this would seem to make certain import namespaces behave differently, which is not ideal. If the answer is no, then we can't easily specialize codegen to these builtin modules, which is the whole point of this proposal.
Maybe it could be optional using an import attribute of some kind to opt-in to eagerly applying some imports?

Very interesting, thanks @eqrion for putting this together. This would be really nice to see for ESM integration compatibility.

Add an option to the WebAssembly JS-API compilation endpoints (module constructor, compile, compileStreaming, etc):

dictionary WebAssemblyCompileOptions {
  optional sequence<USVString> builtinModules;
}

Does this mean that providing a string that is not a host-recognized builtin module will result in an immediate compilation error? If so, will there be some kind of reflection API for determining which host APIs are supported?

Would source importing a wasm module that imports a wasm builtin-module have the same 'eager' behavior as in the JS-API above?

Would eagerly compiled imports be usefully transferrable as WebAssembly.Module instances to workers?  If so, then I wouldn't personally see strong reasons for not wanting that in the source phase imports case by default.
Your suggestion of having control over this through import attributes sounds like it might well be an option if further control is needed. For example, to entirely turn off all compile time imports one might have import mod from './mod.wasm' with { compiledHostImports: false } for example. Obviously to be figured out further, but I think having this config on top of the default case of the compile time imports automatically applying may well be preferable.

Add an option to the WebAssembly JS-API compilation endpoints (module constructor, compile, compileStreaming, etc):

dictionary WebAssemblyCompileOptions {
  optional sequence<USVString> builtinModules;
}

Does this mean that providing a string that is not a host-recognized builtin module will result in an immediate compilation error? If so, will there be some kind of reflection API for determining which host APIs are supported?

Good question, I could see that being useful but I'm not sure the best way to do it. One option could be to duplicate these modules on the WebAssembly namespace (e.g. WebAssembly.String). But that could be a lot of work for just feature detection.

Would source importing a wasm module that imports a wasm builtin-module have the same 'eager' behavior as in the JS-API above?

Would eagerly compiled imports be usefully transferrable as WebAssembly.Module instances to workers? If so, then I wouldn't personally see strong reasons for not wanting that in the source phase imports case by default.

Yeah, any Module with eagerly compiled imports should be transferrable under the current set of builtin modules we're thinking of (no capabilities outside of basic JS primitives).

Looks like the string builtins are going to ship in Chrome, including the compile-time imports mechanism. I don't immediately see a way to use them with this proposal.


Update elpi 1.14

Motivation for this change
New release of elpi and coq-elpi
Things done

Built on platform(s)

[ ] 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

[ ] 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
[ ] 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

[ ] Fits CONTRIBUTING.md.

CC @CohenCyril

First commit looks good.
Second one breaks coq-elpi.

Thanks for looking into this. But I'm so bad at this nix business that I can't figure out what is wrong by myself in 94d4de1.

@GrahamcOfBorg build coqPackages_8_15.coq-elpi

Дякую!

Grazie!


info toast and tree modal updates

Description

added some info toast to inform the user that tree creation may take awhile.
added toast message for if tree creation has failed (using same component as download failed alert)
adjusted tree modal with new design updates

Issue
ch150458
ch157597
Test plan
tested locally and on https://info-toast-frontend.dev.genepi.czi.technology/data/samples

@phoenixAja this looks fantastic! Only 3 comments:
Tree Build Dialog

[ ] Update tooltip link to open doc in a new tab
[ ] Remove the second line of copy from below the create button "We will notify you when your tree is ready"

Toast Notification:

[ ] When the notification is present, the selection count and sample action buttons (tree + download) are missing. They appear again once the notification starts to fade. I almost didnt notice, but the page content jumps down a little when they reappear. I think these should always be there, even if they are temporarily covered.

good catch on that shift janeece i didn't even notice that was happening

will hopefully be ready for re-review in the hour

The copy and toast notifications look great!


Replace cURL to Slack with slackapi/slack-github-action

Problem

The following workflows make Slack API calls using a cURL request.

https://github.com/WordPress/openverse/blob/c312886d98bc74f5a67caef4cdf2eaf046c0c313/.github/workflows/discussion_ping.yml#L23-L27
https://github.com/WordPress/openverse/blob/c312886d98bc74f5a67caef4cdf2eaf046c0c313/.github/workflows/pr_limit_reminders.yml#L38-L47
https://github.com/WordPress/openverse/blob/c312886d98bc74f5a67caef4cdf2eaf046c0c313/.github/workflows/pr_ping.yml#L31-L35
https://github.com/WordPress/openverse/blob/c312886d98bc74f5a67caef4cdf2eaf046c0c313/.github/workflows/pr_ping.yml#L40-L44

Description

A better approach is to use the (official?) Slack API action<EMAIL_ADDRESS>by means of technique 3 i.e. incoming webhooks. These workflows can be coverted to that actions making them more maintainable because cURL and Bash (and especially together) can be notoriously hard to understand and make changes to.

I would like to contribute to this!
Please assign it to me.

Hey, I think current version of slackapi/slack-github-action is 1.24.0. I have used that in current change, please let me know if it need ot me 1.23.0 for any particular reason.


Requirements: Matcher isn't working at all

Shared Program: https://code.world/#P8oLJbNoRdktVtaI-F7hO_g
Description
Matching seems to have stopped working at some point in the requirements checker.  It definitely used to work, so I'm not sure what's going on here.

It looks like in a0c65d4e2c7bc4e38dc5e6f2a67bde478531903c, I lost the logic that stops comparing SrcSpanInfo.  Oops.


V1.2 code quality

fixes #81

Codecov Report

Merging #82 into master will decrease coverage by 0.23%.
The diff coverage is 0.00%.

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


chore(Transition): remove deprecated lifecycle methods

Related to #3919.
Removes the usage of UNSAFE_componentWillReceiveProps for Transition.

Codecov Report

Merging #3982 into master will decrease coverage by 0.09%.
The diff coverage is 95.71%.

@@            Coverage Diff             @@
##           master    #3982      +/-   ##
==========================================
- Coverage   99.84%   99.74%   -0.10%
==========================================
  Files         180      181       +1
  Lines        3169     3170       +1
==========================================
- Hits         3164     3162       -2
- Misses          5        8       +3

Impacted Files
Coverage Δ

src/modules/Transition/utils/computeStatuses.js
91.17% <91.17%> (ø)

...ddons/TransitionablePortal/TransitionablePortal.js
100.00% <100.00%> (ø)

src/modules/Transition/Transition.js
100.00% <100.00%> (ø)

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 20d851d...07c92b6. Read the comment docs.


Notification on ring pressed

Hi,
there is the possibility to have a binary_sensor or something else to know when the ringbell is pressed?
Thanks for your awesome work

@techunleadit there is a binary sensor in the latest version when using websockets (default).  Do you not see it?

@imhotep yes but when someone press the ringbel is not changing status. Do you want to have access to a test HA instance?

@techunleadit also confirming that with the newest version, the binary sensor isn't changing when the ring is triggered on the access

@imhotep I forgot to tell you that I have Access 1.22.10 as my version
@ethank referring to the documentation, paragraph "8.2 Fetch Device Notifications", is it possible that something has changed with my version? Because this should be the payload they say on the documentation:

WebSocket Payload

When a doorbell rings: [access.remote_view] Doorbell status change: [access.remote_view.change] {  "event": "access.remote_view",  "receiver_id": "",  "event_object_id": "535b6125-860c-489a-b0a1-0ba01906afa9",  "save_to_history": false,  "data": {  "channel": "4513899f-0370-4116-9731-63a6b0feea23",  "token": "6dff120f-2688-497d-856f-0ca08b383d1d",  "device_id": "e4388386be1d",  "device_type": "UA-G2-PRO",  "device_name": "UA-G2-PRO-BE1D"

I'm on 1.22.10 as well, but the binary sensor is not changing when the ring is pressed. Confirmed again today.

Fixed in 1.1.2. reopen the issue if it still doesn't work


Fix issue with long titles in course outline

The download view was getting squashed.
Before:

After:

@mikekatz please review

:+1:


Login to Audi service failed

Describe the bug
Since a few days my integration is not working anymore.  I'm not getting any new data, the integration also shows: Failed to set up
Screenshot

Logfile
LOGIN: Login to Audi service failed: 'Location'
LOGIN: Login to Audi service failed: Cannot connect to host content.app.my.audi.com:443 ssl:default [Timeout while contacting DNS servers]
LOGIN: Login to Audi service failed: 'NoneType' object has no attribute 'get'
Your Vehicle Details
Model: A3
Year: 2022
Type:  Hybrid
Region: EU

Same here today

Same here. SQ7 from Germany

VW devs are the worst at breaking stuff

Same here Q4, Belgium

Same, 2022 etron, UK

This helped me to reconnect to my audi through HA
1: go to https://my.audi.com/ and login with your account
2: Change your Country to another country (for instance USA)
3: Logout of your account
4: Logon to your account again and change country back to the correct one
5: Log out of your account
6: Try to reconnect with home assistant
Hope it work for your all

I got it working again, but I just logged in and logged out. I wasn't able to change my country

same problem Q4 Belgium
logging out and back in does not work unfortunately
Logger: homeassistant.config_entries
Bron: config_entries.py:640
Eerst voorgekomen: 15:43:29 (1 gebeurtenissen)
Laatst gelogd: 15:43:29
Error setting up entry xxxxxxxxxx for audiconnect
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 640, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/audiconnect/init.py", line 144, in async_setup_entry
return await data.update(utcnow())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/audiconnect/audi_account.py", line 162, in update
if not await self.connection.update(None):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/audiconnect/audi_connect_account.py", line 113, in update
vehicles_response = await self._audi_service.get_vehicle_information()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/audiconnect/audi_services.py", line 269, in get_vehicle_information
"Authorization": "Bearer " + self.audiToken["access_token"],
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'access_token'

Did you try logging in from a web browser. This issue seems to be down to some sort of user acceptance form that pops up when you try to login. It needs to be agreed prior to successful login.

yes, tried logging in with webbrowser, did't get any pop-up
I have reinstalled the integration, without success

I logged out from the app on my phone, and logged back in.
First time I got an error, on a second try the login succeed, and the HA integration also works again
Seems to be a glitch at Audi server

Looks like they changed the backend (again). my.audi.com gives me the following message:
"_Audi connect: Coming soon in the myAudi app
To make all information and services for your Audi even more accessible to you, we are currently renewing our digital services.
Therefore, you will soon find the new myAudi customer zone here with your digital instruction manual, options to contact your Audi dealer, and many other important applications.
With the launch of the new myAudi customer zone, your Audi connect services will only be available via the myAudi app._"


GUI not automatically updated after model change

I  Maybe I've misunderstood something, but it seems like the GUI is sometimes not automatically updated after the model was changed.
Only after I move the mouse over the elements, the interface is updated.

Simplified code:
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE ConstrainedClassMethods #-}

module Main where

import Control.Lens
import Data.Text (pack, toLower)
import qualified Monomer as M
import Monomer hiding (width)

data Box = Box {
    _width :: Int
} deriving (Eq, Show)

newtype BoxRow = BoxRow {
    _boxRowContent :: [Box]
} deriving (Eq, Show)

data Resolution = XL | LG | MD
    deriving (Eq, Show)

resolutionSize :: Num p => Resolution -> p
resolutionSize XL = 190
resolutionSize LG = 126
resolutionSize MD = 50

data AppModel = AppModel {
    _selectedResolution :: Resolution,
    _boxes :: [Box]
} deriving (Eq, Show)

data ElementLocation = ElementLocation BoxRowIdx BoxIdx RowIdx ElementIdx deriving (Eq, Show)
type BoxRowIdx = Int
type BoxIdx = Int
type RowIdx = Int
type ElementIdx = Int

data AppEvent
    = AppInit
    deriving (Eq, Show)

makeLenses 'AppModel
makeLenses 'Box

buildUI
  :: WidgetEnv AppModel AppEvent
  -> AppModel
  -> WidgetNode AppModel AppEvent
buildUI wenv model = widgetTree where
    widgetTree = vstack [
        hstack [
            label "Resolution: ",
            dropdown selectedResolution [XL, LG, MD] (label . toLower . pack . show) (label . toLower . pack . show)
        ],
        spacer,
        box ( hstack_ [childSpacing] $
            fmap (buildBox model) (model ^. boxes) )
            `styleBasic` [padding 8, border 2 red]
        ] `styleBasic` [padding 10]

buildBox :: AppModel -> Box -> WidgetNode AppModel AppEvent
buildBox model b =
    box ( label "Some content" )
        `styleBasic` [M.width boxWidth, padding 8, border 2 blueViolet, borderL 12 blueViolet]
  where
    resWidth = resolutionSize $ model ^. selectedResolution
    boxWidth = fromIntegral (b ^. width) * resWidth / 12

handleEvent
    :: WidgetEnv AppModel AppEvent
    -> WidgetNode AppModel AppEvent
    -> AppModel
    -> AppEvent
    -> [AppEventResponse AppModel AppEvent]
handleEvent wenv node model evt = case evt of
    AppInit -> []

main :: IO ()
main = do
    startApp model handleEvent buildUI config
    where
        config = [
            appTheme darkTheme,
            appFontDef "Regular" "./assets/fonts/Roboto-Regular.ttf",
            appInitEvent AppInit
            ]
        model = AppModel LG
            [ Box 12
            , Box 10
            , Box 3
            ]

This is indeed a bug! You can test the fix by modifying your stack.yaml to point to:
- git: https://github.com/fjvallarino/monomer.git
  commit: 20332c4aca0e5d362ad5209e95040dd786df2c97

This commit hash will only be valid until the fix is merged to main.
Thanks for reporting!

that fixes the problem, thank you very much!

Nice! I just merged the fix to main, so the previous commit hash is no longer valid. The new one, which will not be removed, is: 908de6f48eb91d3a7a0405737de30b1ddc3338a2.
I'll close the issue now. Thanks for reporting!


Document usage of active links in menu component

Docs for the menu component does not mention how to add active/current links. This needs to be documented.
Add current class next to menu--link, like this:

  Corporate Information

Beyond having just the examples updated, we need for the docs to mention also how to create active links within the menu component, where to add the current class, etc.

@matthewmorek Seems like you have already reworked the notice in this commit:
https://github.com/wfp/ui/commit/a91f68562d068ddefeb1e10f6725cd164fa08d7c#diff-34ced5e2b8b6596d16c2a584d778fbf6R22

In the wake of this coincidence, I'm hereby closing the issue, deeming it solved.


Improve robustness of Bounding Box algorithm

The algorithm that computes the bounding boxes for the ZoltanPartitioner class only works correctly for an even number of processes.

This issue has been resolved in commit ID e9e6051ff1304f3d6be4f17200ac46219768e0ec


Structify more of the internals to simplify the implementation.

Reduces the number of arguments to the function signatures, making the code much easier to understand, and relocates some things. For example, docker_in_docker is now associated with Engine, and now with cli::Args. Likewise, unstable doctests is now a part of Environment and not cli::Args. MessageInfo now stores mutable state (needs to clear lines) and is no longer copyable, and a single instance is created in lib and passed around everywhere as a mutable reference.
This also fixes an issue where -vv+ was not recognized as a valid verbose flag: cargo can handle 1 or more v characters. Also allowed parsing of --color=value args, when we previously only accepted --color value.

Still a draft since many things changed and I need to triple check no bugs were introduced. This refactors a lot of things to try to simplify our logic internally. The only actual changes in terms of behavior for the user are bug fixes:

--color=value is now valid
-vvvvvvvvvvvv or as many arguments of v are now valid

Both are consistent with cargo.

Great! looks like a straightforward interface improvement


Bug: findByCredentials() returns User when email is empty string

PHP Version
7.4
CodeIgniter4 Version
4.2.10
Shield Version
develop
Which operating systems have you tested for this bug?
Windows
Which server did you use?
apache
Database
MariaDB 10.4.18
Did you customize Shield?
No.
What happened?
findByCredentials() returns a valid user object when the email parameter value is empty.
Steps to Reproduce
Do this:
$users = model(UserModel);
$user = $users->findByCredentials(['email' => '']);
dd($user);

This returns a valid CodeIgniter\Shield\Entities\User instance.
Expected Output
I expect null to be returned as no email address was entered in the value field.
Anything else?
However, if I add a space with the value like so: $user = $users->findByCredentials(['email' => ' ']);, I get null.

Thank you for reporting.
I sent a PR #548


added convenience method to get an app's XSP Property

Assuming single String param of the xsp property key (e.g.- 'xsp.theme', etc.).

Thanks Eric, we will review your contribution and be in touch soon.
Padraic

Hi Eric,
Thanks for your contribution. It was included in the sixteenth Extension Library release.
Padraic

With a live release during the IBM Connect session on Extending the Extension Library, no less.
Thanks Padraic, safe travels.


data-engineer.sh should remove ruby version from all bash-it prompts

Very very few repos in the data org use Ruby. we should remove that from bash-it prompts, or not include it in the first place

If you don't install Ruby then it won't show the version on the prompt. We should probably take this line and move it into the if block for labs engineers.
https://github.com/pivotal/workstation-setup/blob/ab471bd695ea1682f11c95d4553e953ef20de9a9/scripts/setup.sh#L27

Boom, hit this again. We'll seek to pick it up on our team.

Thanks!

In a recent run-through of the data-engineer.sh, without ruby being installed, at some other point we were prompted to install ruby (or something), and so we did, and thus our ruby version was showing up. We'll watch out to see if it happens again so we can provide more details -- either to address the dependency or provide another fix.


Update minimum go version to 1.21

What this PR does:
In dskit we aim to keep support for the last 2 stable go version. Currently dskit requires 1.20. I propose to upgrade the requirement to 1.21. In this PR I'm also updating drone to run CI against latest 1.21 minor release.
Which issue(s) this PR fixes:
N/A
Checklist

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

Merging cause I think this is non controversial.


Implement Screen Sharing as an Option

The WebRTC-powered screen sharing option is pretty robust and quick.  One pretty cool implementation is available at https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/
It'd be great to have screensharing incorporated into the WebRTC module for Etherpad.  Users would benefit because they could use Etherpad even when the shared work wasn't text base--or when that work would benefit from text supplemented with other examples (like Mathmatica, for example).
I see this implemented first as an option--it'd need to be turned on or off by a URL string if at all possible so that account-level control could be implemented.  For example:

If the URL contains "ss=YES," then a button appears on the toolbar.  When clicked, the button attempts to use WebRTC to show the screen of the person who clicked it.    All participants in this room will be able to see your entire desktop if you continue."

If confirmed, a screen sharing window opens.  I see this as covering the pad completely--like ep_draw.  If someone is sharing their screen, a message should appear on all pad users that reads something like, "XXX is sharing their screen.  Click the screen sharing icon to see their shared screen."

Here's the impossible part... only one user should be able to share a screen at a time.  That means there would have to be a way to stop the sharing so that another user could start it.

Of course, these are just my unfinished ideas, but it gives us a place to start.

At the moment, it looks like firefox and IE both have a popup that that warns you and/or lets you choose exactly what you want to share. I think that's fine but just keep that in mind with the additional warning you're talking about. I'd worry that UI might change in the browsers that might make its warning go away after first permission granted, so your warning may be worth keeping around.
I feel like the "start sharing srceen" button should turn into "view shared screen" once someone else is sharing their screen.

Fixed by PR #131.


Feature/quickstart

Added sections: Testing and Scheduling
Added mdx files for other pages, such as overview, project structure, bi stack example 1

@seunggs Could you please review this PR? Thanks


Support for Parcelables in Parcels.wrap

I currently have a bunch of generic methods just calling Parcels.wrap when they want to make something parcelable.
However, if the object that I pass in is already a parcelable on its own Parceler fails to find an implementation for that object.
I understand it might be out of scope for the project but I would love it if there was a ParcelableParcelable or something that would make Parcels.wrap work with parcelable objects.

Right now the Parcels.wrap keys on the specific class name, not the inheritance hierarchy.  If you could provide a PR with some performance metrics (show that searching the inheritance tree for Parcelable has little effect on the runtime) then I'm more than happy to merge in this change.

I'm going to close, feel free to reopen if you have a solution or a related issue.


Using with Remix: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.

Hello -- I'm trying to use the Turnstile component in a Remix app, like so:
import React from 'react';
import { Form } from "@remix-run/react";
import Turnstile, { useTurnstile } from "react-turnstile";

export default function Contact() {
  const turnstile = useTurnstile();

  return (

Contact me

      <Form method="post">
        <legend>Please enter message details</legend>

          <input type="email" name="email" class="bg-transparent border-2 border-solid border-slate-50 rounded-sm"/>

          <textarea name="message" class="bg-transparent border-2 border-solid border-slate-50 rounded-sm"></textarea>

        <Turnstile
          sitekey="1x00000000000000000000AA"
        />
        <button type="submit">Send message</button>
      </Form>

  );
}

However, when I try to browse to this route, I get this error:

[ERROR] Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.
Check your code at contact.tsx:19.

Line 19, that it mentions in the error, is where the Turnstile component is declared.
Is this something anyone else has come across? And can they offer any advice, if they have?
Thank you,
Doug.

Have the same problem.
@biot023
Did you managed it?

I worked around this by letting the Turnstile component only render on the client via ClientOnly from https://sergiodxa.github.io/remix-utils/#md:clientonly

You need to render only on the client. With ClientOnly as emqMalte said, or with useEffect:
export default function ComponentWithTurnstile() {
  const [isClient, setIsClient] = useState(false);
  useEffect(() => {
    setIsClient(true);
  }, []);

  return (
    ...
    {isClient && <Turnstile ... />}
  )
}


[Bug]: Remix.run website docs CSS doesn't load when navigating from homepage under certain circumstances

Steps to Reproduce

Go to https://remix.run/ with an old version of https://remix.run/build/routes/docs/$lang.$version-5PGTYVVM.js in cache (in my case, it has a docs CSS url of /build/_assets/docs-QW57RZDF.css).
Click "Read the docs"

Expected Behavior
It should look the same as when loading the docs page directly (or when an old version of the $lang.$version JS isn't cached):

Actual Behavior
The docs-specific CSS doesn't load because it's using the wrong URL - https://remix.run/build/_assets/docs-QW57RZDF.css vs. https://remix.run/build/_assets/docs-XP2CWPRA.css.

This looks to be because https://remix.run/build/routes/docs/$lang.$version-5PGTYVVM.js changed (I get the updated version in an incognito window), but the old version was sent with a cache-control: public, max-age=31536000, immutable header, so my browser isn't loading it.

I'm getting a similar behavior on localhost for a remix project. Not sure yet how to fix it nor what's the culprit.

Moving this issue to our private website repository, thank you for reporting it.


Implement testing API for computedAttribute

Did not create a new API point, just used POST with query parameter.
Pass deviceId as query param and try to apply computedAttribute to last position, if deviceId omitted will be default "add" behavior.
Check both, expression and type casting.

Can we separate it into two methods? Will Java automatically route to the correct one based on query parameters?

I think jax-rs can not do it by default, some tricks are possible, but it will be more complex than just two functions.

OK, thanks.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add generalized mean calculation

SciPy does not currently implement "generalized mean" (also known as power mean, or Hölder mean) calculation: https://en.wikipedia.org/wiki/Generalized_mean
This is a Python implementation I've found: https://github.com/Fontkodo/generalized-mean
Note that harmonic mean, geometric mean, etc. could be implemented as special cases of the generalized mean.

Can’t this be written trivially in terms of linkage.norm?

Can’t this be written trivially in terms of linkage.norm?

Hi! How would you write it?

for positive values, this looks like just the power norm divided by n

for positive values, this looks like just the power norm divided by n

https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.norm.html ?
We have to divide by n before **(1./ord)

Ok we can just multiply by (1/n)**(1/ord)

The problem of this "trivial formula" is that it overflows when ord is zero

This is a possible solution, please note that for values of "p" ("ord") near zero, the Python implementation you can find here https://github.com/Fontkodo/generalized-mean is a bit better because we overflow earlier (we already overflow with p=0.001). I used the EAFP approach, but you could also add checks instead of relying on try..except blocks.
import numpy as np
from scipy.linalg import norm
from scipy.stats import gmean

def powermean(x, p):
    with np.errstate(all="raise"):
        try:
            return norm(x, p) * (1 / len(x)) ** (1 / p)
        except (ZeroDivisionError, FloatingPointError):
            try:
                return gmean(x)
            except FloatingPointError:
                return 0.0

https://github.com/numpy/numpy/issues/19341


Clear Progress on Loadout Removal

Resolves #79 by clearing the "Progress" panel on the build column if the associated loadout is removed.

hmm don't merge this yet.  i may have broken something

Hmm.  The code looks fine but I had it fail to unlock some runes.  The "locked" monsters were also unable to build their 6 runes (inexplicably).

How are "locked" builds handled?  Do we need to remove them from loadouts but not unlock the runes?

OK I can't reproduce my problem.  Perhaps it wasn't merged with the PR that unlocks the runes.

I've tested this PR and #98 locally and they're looking good.  I suggest merging both and getting a release out.


test_cat: use proper protocol in unused_port method

Which issue(s) this PR fixes:
Fixes #4674
What this PR does / why we need it:
Fixes an issue where an inappropriate protocol was specified in the unused_port method.
See https://github.com/fluent/fluentd/issues/4674#issuecomment-2440522606
Docs Changes:
Release Note:

Thanks, but it should be tcp.
There must be another reason why this test fails.
ref: https://github.com/fluent/fluentd/issues/4674#issuecomment-2440707784

https://github.com/fluent/fluentd/issues/4674#issuecomment-2440728867

If there is a possibility of using TCP, it will need to take care of both.

it may be a good idea to take care of both!

Thanks!


No examples of post-run task object CRUD

http://datmo.readthedocs.io/en/latest/source/datmo.task.html
Include examples of instantiating a variable as the result of a task run to show how to query task result properties

@nmwalsh can you share some more specifics on what you mean here?

This page is currently autogenerated, however the example can be added in it's own RST document in the docs/ directory.
To be more specific, the example that we would like to include should have the following:
import datmo
task_obj = datmo.task.run(command="python script.py")
for k, v in task_obj.results.items():
    print(k + ": " + v)

since this was removed from the latest SDK given we are using run I am going to close this issue.


Edit Sessions: Unexpected Behavior for Resuming Last Session

Testing #153386
I was expecting that resuming the last session multiple times would do the same thing as doing it once, but it seems like it works sort of like a stack where it starts restoring old sessions.
Repro steps:

In either the GitHub repository or the local clone, in any file:
a. type "one"
b. save file
c. store the current edit session
repeat with "two" and "three".
In the other repo location, resume the last session three times. You should see "three", then "two", then "one". I expected calling this multiple times to just unload the change saying "three" all the times that you resume the last session.

If this isn't what edit sessions is supposed to do, feel free to ignore and close 😅.

Yeah, it is effectively a stack because each edit session is deleted from storage after being resumed, the intention being that while we allow keeping multiple edit sessions at once, we don't want to keep this data around forever. Closing as as-designed for now but we should revisit if we get additional feedback on this behavior.


Is RealTimeL4CasADi suitble for RNN?

I want to know if l4c.RealTimeL4CasADi suitable for RNN, for example LSTM, GRU

Hi,
RealTimeL4CasADi generally works with RNNs. The specific use (e.g. when to update approximations and which inputs to fix as constant/variable for the approximation) is dependent on your use-case.
Best
Tim

Thank you very much. I appreciate your work very much and hope you can achieve greater breakthroughs in this area

You are welcome! Feel free to close this issue if it is resolved.
Thanks
Tim


help please!! Error 405

Please follow the guide below

Issues submitted without this template format will be ignored.
You will be asked some questions and requested to provide some information, please read them carefully and answer completely.
Put an x into all the boxes [ ] relevant to your issue (like so [x]).
Use the Preview tab to see how your issue will actually look like.

Before submitting an issue, make sure you have:

[ ] Updated to the latest version
[ ] Read the README and docs
[ ] Searched the bugtracker for similar issues including closed ones

Purpose of your issue?

[x ] Bug report (encountered problems/errors)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections requests more details for particular types of issues, you can remove any section (the contents between the triple ---) not applicable to your issue.

For a bug report, you must include the Python version used, code that will reproduce the error, and the error log/traceback.
Paste the output of python -V here:
Code:
# Example code that will produce the error reported
from instabot import Bot

bot = Bot()
bot.login(username="user", password="pass")
followers = bot.get_user_followers(bot.user_id)

Error/Debug Log:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero

Describe your issue
Explanation of your issue goes here. Please make sure the description is worded well enough to be understood with as much context and examples as possible.
USER_NAME: dennis_prs, FOLLOWER: 1276, FOLLOWING: 470
2019-01-21 19:48:58,263 - INFO - Liking user_14789422's feed:
2019-01-21 19:48:58,582 - INFO - Received 18 medias.
2019-01-21 19:48:58,583 - INFO - After filtration 1 medias left.
2019-01-21 19:48:58,583 - INFO - Going to like 1 medias.
0%|                                                     | 0/1 [00:00<?, ?it/s]2019-01-21 19:48:58,713 - ERROR - Request returns 405 error!
Media ID error!
^Z
[5]+  Stopped                 python3 like_user_following.py

@maxdevblock @alblz I'm fairly new to git. Could you explain what is meant?
I've installed python and downloaded the ZIP from the project page. I run instabot trough cmd.exe


Add hostNetwork config option to ingress-nginx

This to be able to support running on EKS with calico CNI

This is handled in https://github.com/XenitAB/terraform-modules/pull/334


Consistent capitalization on homepage

Science & Technology: Video shorts, Interactives, Web Content, podcasts
News & investigative reporting: Streaming programs, articles, video shorts, interviews
American History, Timelines, Articles, Biographies, Maps

Probably capitalize only the first letter, though title case wouldn't be terrible. Let's just be consistent.

i think @AlisonCSmith is this?

Well, I already fixed it to my taste in one of those unilateral PRs. It can be revisited if necessary.


Test the new clickhouse based API and switch over to it

This involves doing both manual and automated testing of the deployed clickhouse based API. Checking that everything works as expected and that it meets the desired performance.
Once this is done we will proceed to switching over to using that in production. In the first iteration we should only do that for OONI Explorer.

As part of the preparation:

[ ] Sync up fastpath table from prod
[ ] Check and sync up jsonl table

Done


Newer release available rules_foreign_cc: 0.7.0 (current: 6c0c2af)

Package Name: rules_foreign_cc@6c0c2af3d599f4c23117a5e65e811ebab75bb151
Current Version: 6c0c2af@2021-09-22
Available Version: 0.7.0@2021-12-03
Upstream releases: https://github.com/bazelbuild/rules_foreign_cc/releases

New version is available for this package
New Version: 0.7.1@2022-01-02 16:42:56+00:00
Upstream releases: https://github.com/bazelbuild/rules_foreign_cc/releases
New Issue Link: https://github.com/phlax/envoy/issues/90


Question about mixing gobpf/bcc XDP modules and XSK maps with cgo/C AF_XDP code

I'm trying to use AF_XDP. I use gobpf/bcc to load a piece of C XDP kernel code that uses redirect_map to an xsk map. It's pretty much an adaptation of https://github.com/xdp-project/xdp-tutorial/blob/master/advanced03-AF_XDP/af_xdp_kern.c except using gobpf/bcc to load the kernel code, instead of C code.
In the example I'm trying to copy, they attach the XDP module in C:
struct bpf_map *map;

bpf_obj = load_bpf_and_xdp_attach(&cfg);
if (!bpf_obj) {
	/* Error handling done in load_bpf_and_xdp_attach() */
	exit(EXIT_FAILURE);
}
/* We also need to load the xsks_map */
map = bpf_object__find_map_by_name(bpf_obj, "xsks_map");
xsks_map_fd = bpf_map__fd(map);
if (xsks_map_fd < 0) {
	fprintf(stderr, "ERROR: no xsks map found: %s\n",
		strerror(xsks_map_fd));
	exit(EXIT_FAILURE);
}

I replaced this part with Go, using gobpf/bcc:
buildArgs = []string{"-w"}
module := bcc.NewModule(source, buildArgs)
fn, _ := module.Load("my_xdp_prog", C.BPF_PROG_TYPE_XDP, 1, 131072)
module.AttachXDP("veth-xdp", fn)
xskTable := bcc.NewTable(module.TableID("my_xskmap", module)

iface, _ := net.InterfaceByName(device)
ifname_c := C.CString(iface.Name)
ifindex_c := C.int(iface.Index)

C.set_up_af_xdp_sock(ifindex_c, ifname_c) //described below

Up until here, everything is good, my XDP kernel program is loaded and attached, and the xskTable is valid and I can use TableIter() etc. with it.
After that, I call out to my C function set_up_af_xdp_sock(int ifindex, char *ifname) to set up the UMEM, AF_XDP socket, etc. Those are copied from the tutorial above, https://github.com/xdp-project/xdp-tutorial/blob/master/advanced03-AF_XDP/af_xdp_user.c#L557.
I get the error:
ERROR: Can't setup AF_XDP socket "No such file or directory"

I believe I've narrowed it down to the function xsk_socket__create, specifically the line https://github.com/libbpf/libbpf/blob/master/src/xsk.c#L579, with a combination of gdb and strace (but I'm not 100% certain).
I don't get this same error when running the example C code as-is, and the only significant difference is that:

I'm loading+attaching the XDP kernel program inside Go, and then calling a C function with cgo function to set up the AF_XDP socket
They're loading+attaching the XDP kernel program and setting up the AF_XDP socket all in the same C code

Thanks in advance for taking a look.

I believe it's related to maps vs. tables.


[Feature Request] Output Templates

It would be really great if we could specify an output template, so we could use our own code conventions, and automatically include things like copyright statements, etc.

Hey, I just started using StarUML and I'd too like to see a more configurable template. I'll try to see if I can come up with a solution and post a PR (if this repo is still active).


cypress-harness-integration tests are broken

Steps to reproduce

Clone repo
npm i
npx nx e2e cypress-harness-integration

First error
Can't find @cypress/webpack-dev-server package
Second error
After installing @cypress/webpack-dev-server:
(0 , webpack_dev_server_1.startDevServer) is not a function
TypeError: (0 , webpack_dev_server_1.startDevServer) is not a function
    at startAngularDevServer (/devkit/packages/cypress-angular-dev-server/src/lib/start-angular-dev-server.ts:78:24)

More info
We were noticing that our harnesses weren't working with cypress unless we added the following to unwrap the element from the locatorFor code like so: .host().pipe(el => (el as any).element)
So I wanted to see if this ran to see if it was something we were doing or an issue with the lib:
it('should set date using material datepicker harness', () => {
    datepicker.setValue('1/1/2010');
    datepicker.openCalendar();
    /* Can't use `next` because it is already used by cypress. */
    datepicker.getCalendar().invoke('next');
    datepicker.getCalendar().selectCell({ text: '10' });
    datepicker.getValue().should('equal', '2/10/2010');

    calendars.should('be.empty');
  });

any solution for this ?

I am going to close this issue for now.
Please let us know if you still encounter any problems in a new issue.
Thank you!


e2e: Framework improvements

@electrocucaracha and I were discussing e2e runs and how we might make them more visible. A few thoughts for discussion:

The whole framework right now depends on everything being checked in. We need the framework to support testing against PRs, which means against interim docker image builds as well as interim kpt packages. That's going to require a lot of thought and work.
Should https://github.com/nephio-project/test-infra/blob/main/e2e/e2e.sh capture the logs and deliver them to a bucket or something we can expose via the Prow UI?
I think right now the e2e execution will abort on any failure. I think probably e2e.sh should not abort if one of the test scripts fails, but instead log it and continue with subsequent scripts. There will be failures in later tests due to an earlier test failing, right now, because these all build on one another. But over time I think we will develop a collection of tests that do not all build on top of one another
Right now, very little data is captured about each test and it's not in a machine consumable format. Eventually that may need to evolve so we can build test boards that capture which tests are failing

Which of these can/should we address right away? And others need to become part of the backlog.
/assign @electrocucaracha
cc @radoslawc @vjayaramrh

This is the initial proposal to address the first bullet

Should https://github.com/nephio-project/test-infra/blob/main/e2e/e2e.sh capture the logs and deliver them to a bucket or something we can expose via the Prow UI?

That's already in place, in every prow job container $ARTIFACTS variable points to directory under which whatever's placed there during job run will be stored in prow's bucket. In prow's UI if you go to Spyglass log view, top right corner there's 'Artifacts' link that leads to gcsweb viewer allowing to browse that bucket without having access to GCP project and those logs/artifacts can be viewed/downloaded there.

Thanks Rado, that's helpful. I see that is linked from the main dashboard on e2e runs. Looking at that, the Prow-based e2e right now runs the terraform but then I think there is something more we need to do to execute the actual e2e tests and check their results. Here's what I am seeing:
https://prow.nephio.io/view/gs/prow-nephio-sig-release/pr-logs/pull/nephio-project_test-infra/77/e2e/1667547401017102336#1:build-log.txt%3A487
I think we need to do something there?
There are two steps:

Spin up the sandbox demo environment. This is basically what gce_init.sh does.
Run the functional e2e tests. This is done by gce_init.sh if you pass the nephio-run-e2e metadata as "true", or we could do it separately by just calling the e2e.sh.

I think the current prow job does step 1, but not step 2. I'd like to get it doing step 2 as well (it will take longer but is much more coverage). The only thing is, step 2 fails right now, so we may want to add a "TEST-SKIP" flag so e2e.sh doesn't try to run tests that are not quite ready.
Would you or @electrocucaracha be able to take a look at that early next week?

Sure, no problem. In order to achieve that, we need to propagate the bash errors to Terraform scripts. I'll do a research about it.