[Fast Interpreter] Unstable execution time when running stable code

Description
Hi, I run the following attached case in Wamr with fast-interpreter mode and find the execution time is unstable. The execution time of this case should be stable because the code has no randomness: the main thing the code does is a matrix operations, C := alpha*A*B + beta*C, and the initializations of the arrays are all fixed.
#include <stdio.h>
#include <polybench.h>
#define M 1024

int alpha = 32412;
int beta = 2123;

// init array
void init_array(double A[][M], double B[][M], double C[][M]) {
  for (int i = 0; i < M; ++i)
    for (int j = 0; j < M; ++j) {
      A[i][j] = ((double)i * j) / M;
      B[i][j] = ((double)i * (j+1)) / M;
      C[i][j] = ((double)i * (j+2)) / M;
    }
}

/* C := alpha*A*B + beta*C */
void compute_array(double A[][M], double B[][M], double C[][M]) {
  for (int i = 0; i < M; ++i)
    for (int j = 0; j < M; ++j) {
      C[i][j] *= beta;
      for (int k = 0; k < M; ++k)
        C[i][j] += A[i][k] * B[k][j];
    }
}

// prevent DCE
void print_array(double C[][M]) {
  double t = 0;
  for (int i = 0; i < M; ++i) {
    for (int j = 0; j < M; ++j)
      t += C[i][j];
    t /= M;
  }
  printf("%lf\n", t);
}

int main() {
  double (*A)[M] = (double(*) [M])malloc(sizeof(double) * M * M);
  double (*B)[M] = (double(*) [M])malloc(sizeof(double) * M * M);
  double (*C)[M] = (double(*) [M])malloc(sizeof(double) * M * M);
  init_array(A, B, C);
  polybench_start_instruments;
  compute_array(A, B, C);
  polybench_stop_instruments;
  polybench_print_instruments;
  print_array(C);
  return 0;
}

I run the case in Wamr with fast-interpreter mode and Wasm3 30 times respectivevly. The execution time of Wamr(fast-interp) is unstable, which is ranging from 22.52s to 38.56s; while the execution time in Wasm3 is almost stable around 15s-17s. The details are as follow:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

Wamr(fast-interp)
31.44
34.71
38.56
27.65
35.38
28.21
23.03
23.39
38.38
22.54
22.52
29.20
24.15
36.25
37.53
22.72
36.57
28.15
23.26
33.24
31.50
36.97
31.81
35.97
28.54
38.89
28.85
31.41
23.12
28.99

Wasm3
16.44
16.14
15.97
15.72
15.64
15.22
16.20
16.34
16.51
15.95
15.78
16.03
15.87
16.15
16.18
15.87
15.38
16.51
16.24
16.04
16.30
17.16
16.20
17.15
15.80
16.77
16.51
16.40
16.28
17.30

Hardware & OS

Ubuntu 20.04
CPU: Intel(R) Core(TM) i5-9500T CPU @ 2.20GHz
Memory: 32GB

Emscripten

emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.24 (68a9f990429e0bcfb63b1cde68bad792554350a5)
clang version 16.0.0 (https://github.com/llvm/llvm-project 277c382760bf9575cfa2eac73d5ad1db91466d3f)
Target: wasm32-unknown-emscripten
Thread model: posix

Wasm runtime version

wamr: iwasm 1.2.1
wasm3: Wasm3 v0.5.0 on x86_64

Repreduce

Compile the above C case using Emscripten
emcc -sENVIRONMENT=shell -O2 -s WASM=1 -s TOTAL_MEMORY=512MB -I ./case -DPOLYBENCH_TIME test.c -o test.wasm

Execute the wasm file in different wasm runtimes and collect the execution time, all the compilation and execution options are default.

case.zip

Hi, I tried your case, and it's stable on my end. Maybe you downloaded the iwasm binary from the release? In the release, the iwasm is compiled with multi-tier JIT running modes. In that case, the execution time variation came from Fast JIT to LLVM JIT tier-up.

@hungryzzz The released iwasm binary was built with classic interpreter since fast-jit/llvm-jit uses the similar data structure and module instance layout with classic interpreter, so iwasm --interp runs with classic-interpreter mode but not fast-interpreter mode. To test fast interpreter, please build iwasm manually:
cd product-mini/platforms/linux
mkdir build && cd build && cmake ..
make -j 4
# iwasm was generated under current directly with fast-interp/AOT mode enabled

@wenyongh @TianlongLiang Hi, I build the wamr from source code (commit 16ecd17a5b484dcc6e6c4f44c8dc13c54d216350), and cmake options are default(fast-interp mode).

That's strange. Do you have any background processes running? Also, you can upload your iwasm and I can have a try

Hi, @TianlongLiang I've retried it on another server and the execution time is stable. Maybe there is something wrong with the previous server, it's really strange, I don't know why does this happen.
Thank you very much!

You are welcome, I am glad it works out in the end.


JS Parse error

Will not uglify a strictified, browserified and reactified file:
happens with mangle on and off
Code:
// Copy all ui files
gulp.task('ui', ['clean', 'modules', 'ui-raw', 'ui-css'], function() {
  return gulp.src('ui/public/js/**/*.js')
    .pipe(uglify({mangle: true, warnings: true}))
    .pipe(gulp.dest('build/ui/public/js'));
});

Output:
...
[16:56:34] Starting 'ui-raw'...
[16:56:34] Starting 'tmp'...
[16:56:35] Finished 'ui-raw' after 1 s
[16:56:35] Starting 'ui-css'...
[16:56:36] Finished 'ui-css' after 587 ms
[16:56:36] Starting 'ui'...
WARN: Non-strict equality against boolean: == true [0:33,962]
WARN: Non-strict equality against boolean: == true [0:33,1871]
WARN: Non-strict equality against boolean: == true [0:33,6044]
WARN: Non-strict equality against boolean: == true [0:33,6058]
WARN: Non-strict equality against boolean: == true [0:33,6697]
WARN: Non-strict equality against boolean: == true [0:33,6720]
WARN: Non-strict equality against boolean: == false [0:33,6827]
WARN: Non-strict equality against boolean: == true [0:33,6850]
WARN: Non-strict equality against boolean: == true [0:33,7021]

events.js:154
      throw er; // Unhandled 'error' event
      ^
Error
  at new JS_Parse_Error (<anonymous>:1526:18)
  at js_error (<anonymous>:1534:11)
  at croak (<anonymous>:2026:9)
  at token_error (<anonymous>:2034:9)
  at unexpected (<anonymous>:2040:9)
  at semicolon (<anonymous>:2060:56)
  at simple_statement (<anonymous>:2240:73)
  at eval (<anonymous>:2113:19)
  at eval (<anonymous>:2073:24)
  at block_ (<anonymous>:2353:20)
  at eval (<anonymous>:2326:25)
  at function_ (<anonymous>:2331:15)
  at expr_atom (<anonymous>:2546:24)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at eval (<anonymous>:2615:25)
  at eval (<anonymous>:2073:24)
  at expr_atom (<anonymous>:2540:35)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at expr_list (<anonymous>:2565:24)
  at subscripts (<anonymous>:2699:30)
  at subscripts (<anonymous>:2676:20)
  at expr_atom (<anonymous>:2552:20)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at vardefs (<anonymous>:2433:56)
  at var_ (<anonymous>:2446:27)
  at eval (<anonymous>:2194:30)
  at eval (<anonymous>:2073:24)
  at block_ (<anonymous>:2353:20)
  at eval (<anonymous>:2326:25)
  at function_ (<anonymous>:2331:15)
  at expr_atom (<anonymous>:2546:24)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at expr_list (<anonymous>:2565:24)
  at eval (<anonymous>:2575:23)
  at eval (<anonymous>:2073:24)
  at expr_atom (<anonymous>:2538:35)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at eval (<anonymous>:2615:25)
  at eval (<anonymous>:2073:24)
  at expr_atom (<anonymous>:2540:35)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at expr_list (<anonymous>:2565:24)
  at subscripts (<anonymous>:2699:30)
  at expr_atom (<anonymous>:2536:24)
  at maybe_unary (<anonymous>:2716:19)
  at expr_ops (<anonymous>:2751:24)
  at maybe_conditional (<anonymous>:2756:20)
  at maybe_assign (<anonymous>:2780:20)
  at expression (<anonymous>:2799:20)
  at simple_statement (<anonymous>:2240:55)
  at eval (<anonymous>:2125:24)
  at eval (<anonymous>:2073:24)
  at eval (<anonymous>:2827:23)
  at Object.parse (<anonymous>:2837:7)
  at /mydir/myapp/node_modules/uglify-js/tools/node.js:64:33
  at Array.forEach (native)
  at Object.exports.minify (/mydir/myapp/node_modules/uglify-js/tools/node.js:59:15)
  at /mydir/myapp/node_modules/gulp-uglify/minifier.js:65:22
  at trycatch (/mydir/myapp/node_modules/gulp-uglify/minifier.js:15:12)
  at DestroyableTransform.minify [as _transform] (/mydir/myapp/node_modules/gulp-uglify/minifier.js:64:19)
  at DestroyableTransform.Transform._read (/mydir/myapp/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:10)
  at DestroyableTransform.Transform._write (/mydir/myapp/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:160:12)
  at doWrite (/mydir/myapp/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:335:12)
  at writeOrBuffer (/mydir/myapp/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:321:5)
  at DestroyableTransform.Writable.write (/mydir/myapp/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:248:11)
  at write (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
  at flow (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)
  at DestroyableTransform.pipeOnReadable (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:664:5)
  at emitNone (events.js:80:13)
  at DestroyableTransform.emit (events.js:179:7)
  at emitReadable_ (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:448:10)
  at emitReadable (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:444:5)
  at readableAddChunk (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:187:9)
  at DestroyableTransform.Readable.push (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:149:10)
  at DestroyableTransform.Transform.push (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:145:32)
  at afterTransform (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:101:12)
  at TransformState.afterTransform (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:79:12)
  at DestroyableTransform.noop [as _transform] (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/through2.js:26:3)
  at DestroyableTransform.Transform._read (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:184:10)
  at DestroyableTransform.Transform._write (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:12)
  at doWrite (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:237:10)
  at writeOrBuffer (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:227:5)
  at DestroyableTransform.Writable.write (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:194:11)
  at write (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
  at flow (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)
  at DestroyableTransform.pipeOnReadable (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:664:5)
  at emitNone (events.js:80:13)
  at DestroyableTransform.emit (events.js:179:7)
  at emitReadable_ (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:448:10)
  at emitReadable (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:444:5)
  at readableAddChunk (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:187:9)
  at DestroyableTransform.Readable.push (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:149:10)
  at DestroyableTransform.Transform.push (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:145:32)
  at afterTransform (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:101:12)
  at TransformState.afterTransform (/mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:79:12)
  at /mydir/myapp/node_modules/gulp/node_modules/vinyl-fs/lib/src/getContents/bufferFile.js:12:5
  at FSReqWrap.readFileAfterClose [as oncomplete] (evalmachine.<anonymous>:404:3)

@nmors Sorry that you're running into issues!
Have you checked out the Errors section of the README? The error you're getting is from the default Node.js exception handler, which isn't very good in this case.

Hello, i am running into this error now. Is there a work-around for this "JS_Parse_Error" exception?

Actually, I was able to get the error using plumber. So I guess as @terinjokes said, it was an error handling issue.

I'm getting the same error when trying to uglify javascript classes. Is this particular syntax not supported?

@admonkey The master branch of UglifyJS2 doesn't support them yet. Please see the last section in the gulp-uglify README for how you can use a different branch.

@mykone Please see the README section of "Errors" for more information on how to proceed.

@terinjokes thanks, but it doesn't appear that any of the other branches support ECMA6 either - am I missing something?

@admonkey the "harmony" branch of UglifyJS2 does. See also uglify-js-harmony.

even when compiling to ES5 i'm still getting issues. There are no errors in my code, its been linted fine

@nmors I've explained how to get the error message from UglifyJS. If you're having issue with how it parses or minfies, please open an issue with the UglifyJS2 project.


Replace web3 with ether.js

Ether.js is arguably much better than web3: the API is cleaner and leaner. You can define the ABI inline, etc...
I'd vote for us to completely deprecate our usage of web3 and to only use ether.js, both on the fron-end dand bakc-end.

CC @nick @mikeshultz @DanielVF For any thoughts/objections.

I've not used it, but it sure looks way better in the documentation!

Heads up that we should use v5 of Ethers

I guess we can call this done, even though we're still using it via Truffle to deploy contracts.

Looks like the following files are still requiring web3:

backend/listener.js
backend/listener.js
backend/scripts/backfill.js
backend/utils/createListing.js
backend/queues/makeOfferProcessor.js
backend/scripts/updateListing.js
backend/utils/address.js
backend/utils/handleLog.js


In Dynamics 365 Bussiness Central, Everytime i create a new folder and write code in it I get new Extensions published...How can i combine these Extensions in one

AL Extension Version:

Server Version:

Are you changing the app ID every time?

Why you are creating different folder for every al file  ?.You should create different .AL file in one folder.
Within that same folder you can create different sub folder to hold different object file like codeunit,tables etc.

We also support multiroot workspaces for AL language server in  VsCode.

You should not be creating a new extension for each al file but instead create new al files in the same project in the root folder or any subfolder.


Href links are not rendered when using render(, { plainText: true })

Describe the Bug
hi guys,
I'm testing how my emails look on plainText and the links are not rendering properly. The official examples are not working either.
If you look at the rendered version on the react-email server it looks fine, but if you render it on the email the content is not the same.
The official example in the react-email server looks fine

Rendering it as plain text in Gmail

Which package is affected (leave empty if unsure)
@react-email/render
Link to the code that reproduces this issue
render(<Component />, { plainText: true })
To Reproduce
Uses render passing the plainText: true option, example render(<Component />, { plainText: true })for
Expected Behavior
Render the href links as plain text.
What's your node version? (if relevant)
No response

+1

I want to work on this Issue, If it's okay.

Hi, I'm not able to reproduce the issue properly, could someone help.
This is what I get :

Without the plainText option

With the plainText option set to true

Thanks.


Reported results in the paper.

Seems your test results are based on the cropped test images. I run the 15-1 setting, and the mIoU should be the 62% instead of 67%. I think by default we should not use the cropped test images for final test.

Thanks for the question.
It's mainly for the convenience of comparison with the previous work. PLOP, MiB, and RCIL all use cropping of the test image, and we continue to adopt this. It should be noted that the new codebases "ALIFE" and "AWT" currently adopt this as well.


⚠ St. Lawrence Global Observatory CKAN has degraded performance

In 0a88600, St. Lawrence Global Observatory CKAN (https://catalogue.ogsl.ca/en/) experienced degraded performance:

HTTP code: 200
Response time: 9652 ms

Resolved: St. Lawrence Global Observatory CKAN performance has improved in 911ca12 after 12 minutes.


Support two chars as autocomplete triggerChar strategy - e.g. {{token}}

Checklist

[X ] This is not covered in the repository examples.
[ X] I am using the package latest version.
[ X] This is a bug report or an enhancement proposal.

Description
I have a bunch of tokens in double curly braces format - e.g. {{Audience.First.Name}}. However, nothing happens if I use "{{" as trigger char. It doesn't work either if I add "{" as trigger char and the user writes "{{" in the editor.
Please consider adding support for this as the {{token}} pattern is commonly used.
Thank you so much

Also should support regex triggerChar


Transaction Resubmit Policy

Is your feature request related to a problem? Please describe.
Currently if a transaction gets submitted with too low gas price, it can potentially get stuck in the mempool. It would be nice if we could work around that by automatically bumping its fee according to some policy which is defined by the caller.
Describe the solution you'd like
A similar implementation to PendingTransaction which takes the re-submission policy as a constructor argument. Its Future implementation would then try to get the receipt, and if the receipt returns an error, instead of directly queuing up the receipt check, it'd first re-submit the transaction with a new gas price, according to the policy.
Note: h/t @stonecoldpat the tx hash will change for every bump so you have to adjust it after each submission

This can probably be implemented as a GasEscalatorMiddleware which maintains state about all pending transactions and re-submits them


Playback freezes for DASH VOD with multiple Adatpation Sets with different DRM restrictions

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
2.5.5
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
Yes
Are you using the demo app or your own custom app?
Demo app
If custom app, can you reproduce the issue using our demo app?
N/A
What browser and OS are you using?
Chrome on MacOS
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A
What are the manifest and license server URIs?
Working url: https://content.uplynk.com/299ca57da2d04bdaa28c3c643467b3a1.mpd?prettydash=1
Non-working url: https://content.uplynk.com/299ca57da2d04bdaa28c3c643467b3a1.mpd?prettydash=1&vcodec=avc&rmp.content_key_specs.Audio.security_level=1&v=2&rmp.policy_overrides.can_persist=False&rmt=wv&rmp.content_key_specs.HD.security_level=4&rmp.content_key_specs.SD.security_level=1&rmp.policy_overrides.license_duration_seconds=172800&rmp.policy_overrides.playback_duration_seconds=172800&rmp.content_key_specs.Audio.required_output_protection.hdcp=HDCP_NONE&rmp.content_key_specs.HD.required_output_protection.hdcp=HDCP_V1&ct=a&rmp.content_key_specs.SD.required_output_protection.hdcp=HDCP_NONE&vcodec=avc&prettydash=1&rmp.policy_overrides.can_play=True
License server url: https://content.uplynk.com/wv
What did you do?
Play the VOD asset.  Second period starts around 22 seconds into the video.
What did you expect to happen?
For the video to play through to the second period and beyond.
What actually happened?
The video freezes at ~22 seconds (period boundary).  Looking at the network inspector, the player correctly chooses a variant from the SD adaptation set for the first period, but at the period boundary, the player tries to switch to a variant from the HD adaptation set which is DRM restricted to WV security level 4.

I was able to fix this by changing onKeyStatus_ in player.js to loop through all the variants of all the periods in this.manifest_.periods rather than just through the variants of this.getPresentationPeriod_() period.  All tests still pass but maybe this change has wider implications I'm not aware of.  Happy to submit a PR if you like.

Thanks, @tylerdaines, for the report and the suggestion, and thanks @TheModMaker, for landing the fix!


Frankenstein - new telegram client for Rust

It seems this library is not maintained anymore. After struggling with it for some time, I wrote a new library for telegram - Frankenstein:

it's easy to use
its types are mapped 1-1 from the telegram API docs
it has a minimal number of dependencies
you can use an HTTP client of your choice

@ayrat555 did you check telexide? it supports telegram bot api v5.2

There is also Telexide

There is also Telexide

Up for teloxide. However, I do not like that the token is initialized via ENV, I use several telegram bots in one project, and this method does not work very well for me.

I do not like that the token is initialized via ENV

There's a way to initialize the bot without using env variable: instead of Bot::from_env() call Bot::new(token).
However, I like the idea of a minimalistic bot API that doesn't bring a lot of dependencies.

Can someone explain what is the reason to write everything from scratch, even tho this repo not supported anymore? Maybe just fork it and update external links to the new repo?

I use a telegram client in my project used by many users - https://github.com/ayrat555/el_monitorro. So it's important for me to have a stable library. I experienced several downtimes because of telegram-bot
It was easier for me to create a new client.


i18n(zh-cn): Update environment-variables.mdx

Description (required)
Update environment-variables.mdx

Related issues & labels (optional)

https://github.com/withastro/docs/pull/8611
Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

zh-cn
guides/environment-variables.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


User.Read.All permissions are also required

[Enter feedback here]

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

ID: 3e0a0671-953a-7797-6e0c-6616420f4c3b
Version Independent ID: a2de95d1-67b2-bcc6-402f-f5d23c53d13a
Content: How to manage inactive user accounts in Azure AD
Content Source: articles/active-directory/reports-monitoring/howto-manage-inactive-user-accounts.md
Service: active-directory
Sub-service: report-monitor
GitHub Login: @MarkusVi
Microsoft Alias: markvi

@eibaf1 Thanks for the feedback. We're investigating this and will get back to you shortly.

@eibaf1 Thanks for the feedback. We will engage the content development team for further investigation, they will verify and perform necessary changes in the document as needed.

This has been fixed.
#please-close


added gitignore

@spidey711 What do i do, your token willl be everywhere
we need to do something about this


setup-bdc.sh not contain brackets at the end of the file

[Enter feedback here]

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

ID: b52c141e-1793-43bb-5a16-5d82c1eff988
Version Independent ID: 93cbcb06-0108-3f1d-990d-b8ef8ad31756
Content: Deploy single node kubeadm cluster - SQL Server Big Data Clusters
Content Source: docs/big-data-cluster/deployment-script-single-node-kubeadm.md
Product: sql
Technology: big-data-cluster
GitHub Login: @mihaelablendea
Microsoft Alias: mihaelab

wrong path for this issue


Plans for this tool

Hi, I've been looking for some tool that can handle both hlsl and shaderlab for some time, and was especially interested in something like Roslyn's syntax API for creating and modifying syntax trees. I've seen tgjones' hlslTools repo and asked if it's possible in there, but an API like that wasn't present in his project. I also wanted something that I could quite easily add to a unity package, because I am writing a Hlsl+Shaderlab shader generator editor package for unity for some time now, so I am fairly interested in what you got there! I have some questions regarding you project here:
Do you plan on extending this tool with things like syntax rewritters, syntax factories/builders and possibly other things that can be used to work with ASTs by creating them in code without parsing? What subset of those things is already possible?
Do you plan on using immutable or mutable ASTs? I've seen syntax nodes generally follow the Property {get; set;} pattern, so I assume you are most probably designing with mutability in mind?
I didn't have yet much time to check what your tool's capabilities are and I am currently working on a syntax api for hlsl and shaderlab myself (without the parser, I already have some successes in generating ASTs from code), so this tool is currently in my area of interest, and if it were to support those operation I could consider migrating from my prototype grade lib to yours.
What C# version are you aiming for? I can assume that if you wrote specifically UnityShaderParser you target (unity supported subset of) C#8/C#9.
Do you plan to release this as a unity package?
Do you plan on migrating some of the boilerplate code (e.g. acceptor methods, GetChildren calls) to roslyn source generators? In my case I use them fairly successfully and they can considerably reduce the boilerplate!
Do you plan on adding some tools like basic formatters, AST normalizers and AST validators?
Do you plan to include some higher level APIs, like Symbol API, Binding API or Flow Analysis as well?
Lastly, do you have some kind of TODO list / roadmap / ticket list of things you want to add, what this tool you want to be and what you DON'T want it to be?

Hello.

Do you plan on extending this tool with things like syntax rewritters, syntax factories/builders and possibly other things that can be used to work with ASTs by creating them in code without parsing? What subset of those things is already possible?

The library currently has these capabilities:

Preprocessor with multiple modes

Full expansion
Expansion of #include only
Expansion of everything but #include
Simply stripping directives from source code
Do nothing - in this case, the directives are represented directly in the AST instead. Only works for sufficiently simply directives.

ShaderLab lexing & parsing (optionally including parsing the HLSL code embedded within)
HLSL lexing & parsing
A reusable Visitor pattern implementation for both the HLSL and ShaderLab syntax trees
A pretty printer / formatter for HLSL (doesn't handle trivia such as comments, though)
Some helper classes for the common case where you want to walk the syntax tree and make textual replacements (called HLSLEditor and ShaderLabEditor in the code)
The types making up the syntax trees are simple enough that you could build them manually from code.

I'm not sure how much of that overlaps with Roslyn, and what isn't covered. I'm not particularly interested in anything more than that, since I don't have a use for it. The one "missing" thing is a pretty printer for ShaderLab, to match the existing one for HLSL. I'll probably get around to it some point.

Do you plan on using immutable or mutable ASTs? I've seen syntax nodes generally follow the Property {get; set;} pattern, so I assume you are most probably designing with mutability in mind?

Everything in the ASTs that can be mutable is made mutable. That won't change. This may be seen as less clean, and I generally treat syntax nodes as immutable, but I don't want to exclude potential use cases just in the name of cleanliness. This lets you do stuff like grabbing an AST node, making a small edit to it, and pretty printing just that one edited node, etc.

What C# version are you aiming for? I can assume that if you wrote specifically UnityShaderParser you target (unity supported subset of) C#8/C#9.

It's backwards compatible to C# 7.3 and will stay like that. No features from after that language version are used (this is enforced). That's the version of C# used by Unity 2019.3.

Do you plan to release this as a unity package?

I don't have any particular plans distribution. Right now I'm distributing as a zip with the source, and as a single merged .cs file. Since there are 0 dependencies, you can just drop that one .cs file into your own Unity project to use the library, or vendor it as a simple dependency. I'm not opposed to other setups, I just haven't bothered setting anything up since I'm not great with CI.

Do you plan on migrating some of the boilerplate code (e.g. acceptor methods, GetChildren calls) to roslyn source generators? In my case I use them fairly successfully and they can considerably reduce the boilerplate!

No. The boilerplate is admittedly a bit cumbersome, but it's quite intentional. One hard goal of the project was to have absolutely 0 dependencies and 0 code generation - that's not going to change. In my experience source generators can complicate some use cases, and aren't something I like to use unless the boilerplate is absolutely insurmountable.

Do you plan on adding some tools like basic formatters, AST normalizers and AST validators?

There's a pretty printer for HLSL as mentioned earlier, and I want to add one for ShaderLab. I'm not interested in adding any additional kind of semantic analysis.

Do you plan to include some higher level APIs, like Symbol API, Binding API or Flow Analysis as well?

No.

Lastly, do you have some kind of TODO list / roadmap / ticket list of things you want to add, what this tool you want to be and what you DON'T want it to be?

No. It's developed quite sporadically in my spare time mostly as something I've found the need for in personal projects. I open sourced it since I figured others might find it useful. I'd say the library is generally in a usable state though, considering what my goals for it were.

You might additionally be interested in some example code. So far I know of 2 uses of the API.
One of them is my own WIP for integrating the Slang shading language into Unity. I use the library both for parsing ShaderLab and substituting code blocks, as well parsing the HLSL output of the Slang compiler and doing some transformations on it to make it Unity-compatible. https://github.com/pema99/SlangUnityPlugin/blob/master/dev.pema.slang-shader-plugin/Editor/Scripts/SlangShaderImporter.cs#L38-L352
Another is a friend on mine making a modular  system for quickly generating shaders, similar to surface shaders (https://shaders.orels.sh/). They use the library for some more detailed analysis of shadercode than what Unity can provide:  https://github.com/orels1/orels-Unity-Shaders/pull/65

Finally I'll mention that I'm open to contributions. It's also permissively licensed, so y'know, you can do whatever you want with it. I'm mostly doing bugfixes and minor changes at this point, since I've reached most of the personal goals I had for the project already. If bug reports come in, I'll spend some time here and there to address them, but for anything more like a feature request, I'm not going to put in the work, unless it is something I happen to find a use for myself.

Pretty nice, thanks for your time to answer and for this library!


pass through fulfiller + fulfillerConduitKey for use in executions

Codecov Report
Patch and project coverage have no change.

Comparison is base (f3fa5b6) 100.00% compared to head (f98cddf) 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@               Coverage Diff               @@
##           fuzz-events     #1072     +/-   ##
===============================================
  Coverage       100.00%   100.00%
===============================================
  Files               46        21     -25
  Lines             2652      1230   -1422
  Branches           396       220    -176
===============================================
- Hits              2652      1230   -1422

Flag
Coverage Δ

foundry
?

production
?

reference
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 35 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


[Bug] 透视图hover和非hover显示不一致

Version
develop
Link to Minimal Reproduction
none
Steps to Reproduce
1
Current Behavior
1
Expected Behavior
1
Environment
- OS:
- Browser:
- Framework:

Any additional comments?
No response

https://github.com/VisActor/VChart/issues/2986 等vchart修后升级版本


fix: inconsistancy in components

Description
This PR cleanup some inconsistencies in components.

schemas could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
servers could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
channels could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
serverVariables could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
parameters could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
operationTraits could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
messageTraits could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
serverBindings could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
channelBindings could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
operationBindings could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
messageBindings could be defined with any name, now it matches the regular expression: ^[a-zA-Z0-9.-_]+$
operationTraits could not be defined with references.
messageTraits could not be defined with references.
serverBindings could not be defined with references.
channelBindings could not be defined with references.
operationBindings could not be defined with references.
messageBindings could not be defined with references.

/rtm

/rtm

Thanks @fmvilas 🙏


Unmapped columns section does not apper in Camtrap DP mapping

We think it would be nice to have the "Unmapped columns" sections at the end of mapping section, it helps the process when not all columns have the correct header and to check how many elements are left without mapping.
We do not know if this was left out for a specific reason, so sorry if the topic has been arranged before. Thanks in advance,
@SiBColombia

Thank you @EstebanMH-SiB
I think we just overlooked it since it's not a crucial part of the mapping. I'll add that


Deploying with publish-profile from github secrets errors with No credentails found

Hello,
I'm currently using this github action and I followed all the instructions as instructed with Using Publish Profile as Deployment Credential (recommended).
I've downloaded the .PublishSettings and put it on github secrets but I'm encountering this error below:
Using RBAC for authentication, GitHub Action will perform resource validation.
Error: Execution Exception (state: ValidateAzureResource) (step: Invocation)
Error:   No credentails found. Add an Azure login action before this action. For more details refer https://github.com/azure/login
Error:     Error: No credentails found. Add an Azure login action before this action. For more details refer https://github.com/azure/login
    at Function.<anonymous> (/home/runner/work/_actions/Azure/functions-action/v1/node_modules/azure-actions-webclient/AuthorizerFactory.js:23:23)
    at Generator.throw (<anonymous>)
    at rejected (/home/runner/work/_actions/Azure/functions-action/v1/node_modules/azure-actions-webclient/AuthorizerFactory.js:6:65)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Error: Deployment Failed!

i'm also doing remote build and set the following parameters needed to true. see sample below:
    - name: 'Run Azure Functions Action'
      uses: Azure/functions-action@v1
      id: fa
      with:
        app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}-${{ github.event.inputs.environment }}
        publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
        scm-do-build-during-deployment: true
        enable-oryx-build: true

oh sorry it's my mistake for a missing env value. will close this now.


Add regression

Related to #287

Closing according to my comment https://github.com/MoOx/postcss-cssnext/issues/287#issuecomment-244856952 and our discussion on gitter.
🎉 Thanks for your involvement!


UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 8033: character maps to

I encountered this error message when trying to use your package
(DeepECGI) C:\Users\Surface>pipreqs C:\Users\Surface\OneDrive\Documents\MATLAB\DeepECGImaging
Traceback (most recent call last):
File "C:\Users\Surface\anaconda3\envs\DeepECGI\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\Surface\anaconda3\envs\DeepECGI\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\Surface\anaconda3\envs\DeepECGI\Scripts\pipreqs.exe_main.py", line 7, in
File "C:\Users\Surface\anaconda3\envs\DeepECGI\lib\site-packages\pipreqs\pipreqs.py", line 528, in main
init(args)
File "C:\Users\Surface\anaconda3\envs\DeepECGI\lib\site-packages\pipreqs\pipreqs.py", line 455, in init
candidates = get_all_imports(input_path,
File "C:\Users\Surface\anaconda3\envs\DeepECGI\lib\site-packages\pipreqs\pipreqs.py", line 115, in get_all_imports
contents = f.read()
File "C:\Users\Surface\anaconda3\envs\DeepECGI\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 8033: character maps to
Python 3.8.16
Windows 11

Related https://github.com/bndr/pipreqs/issues/214


Initial nav state is always asynchronous (for Linking.getInitialUrl)

Follow-up of https://github.com/react-navigation/react-navigation/pull/4213

I like this change, and it seems well implemented. In most cases I think things will behave the same.
But it may break things for people who expect the previous behavior of initializing the navigation state and doing another action for the URL. So I am cautious about moving forward.
cc @brentvatne, should we defer stuff like this to v4? This nuance is undocumented, so we might get away with a v3 release.

Thanks @ericvicenti

@Minishlink - could you possibly write up some documentation explaining this behavior? once that's ready we can decide whether we can land it in v3 as-is, put it behind a feature flag, or defer until v4

Hey all, looks like this fixes some behavior I'm seeing. Any idea when this might be released? Thanks

Any idea when this will be released? Thank you for this PR.

Also waiting for this PR to fix the issue described on https://github.com/react-navigation/react-navigation/issues/5844

Is this issue has been fixed alread? I should just update react navigation? Thanks!

Can this PR be updated to resolve the conflict and merge ?

Unless there is a core contributor who wants to merge this, I probably won't update it until I upgrade one of my projects to RNav 5 (two to four weeks), feel free to do another one :)


Add custom repository variables

For the situation, in which one is attempting to use this action in a (corporate) environment, where standard repositories are not available, but proxied by some other tool - e.g. antifactory.

Arg - I think I always forget that :-/, thanks for the tip.

Hi @tgodzik could you please release a new version? The latest release was in February. I know that I can use the action with the latest changes either by pinning it to a particular commit or the main branch but we prefer to use standard tags. Many thanks!

I tagged a new version, I think that should be enough? Or do we need to release it on the marketplace? If the last one is needed then we would need to ask Alex to enable that for the org.

I tagged a new version, I think that should be enough? Or do we need to release it on the marketplace?

I checked and I am able to use it by specifying the exact tag @v1.3.6 but using simply @v1 doesn't work.

Ach, it's because everything is based on tags. I updated the tags to the newest version


Setting MAXPAGESIZE instead of changing linker script (BMC Part 2 - The C Runtime)

First off, absolutely love this tutorial!
Not sure this is a huge deal, but in part 2 you adjust the linked script to get rid of an odd page-alignment behavior. This behavior is governed by the PAGESIZE linker constant that can be controlled by a linked '-z max-page-size=' CLI option, which is also described here.
I tried this and the page size was reduced accordingly, yielding a smaller image once the .data section is aligned to the new size.
Perhaps a note in the README would be appropriate?
I compile with a '-c' on arm-none-eabi-gcc and then use the '-z' with arm-none-eabi-ld

@eyalabraham Looks like great info. Haven't seen that option. I'll introduce it at the end of Part-2. I think we remove the customer linker script at the end of part 2 anyway.
Thanks for the heads up.


Error: Thread panicked, must be called from the context of Tokio runtime

Running the simple example from hyper.rs:
async fn handle(_: Request<Body>) -> Result<Response<Body>, Infallible> {
    Ok(Response::new("Hello, World!".into()))
}

#[tokio::main]
async fn main() {
    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    let make_svc = make_service_fn(|_conn| async {
        Ok::<_, Infallible>(service_fn(handle))
    });
    let server = Server::bind(&addr).serve(make_svc);
    if let Err(e) = server.await {
        eprintln!("server error: {}", e);
    }
}

Causes a panic:
thread 'main' panicked at 'there is no reactor running, must be called from the context of Tokio runtime', /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/io/driver/mod.rs:202:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Running other examples like mini-redis is totally fine. I suspect this has something to do with the tokio-0.2.22 dependency of h2 and hyper.
Environment
$ rustc -V
=> rustc 1.46.0 (04488afe3 2020-08-24)

OS: macOS Catalina 10.15.7

[dependencies]
hyper = "0.13.8"
tokio = { version = "0.3.1", features = ["full"] }

@davidbarsky So hyper is unusable right now without tokio-compat until #2302 is complete???

It is usable with the version of tokio it is developed against.

Hyper 0.13 depends on Tokio 0.2. You can use Hyper 0.13 with Tokio 0.3 if you use the provided compatibility library, tokio-compat-02. If you don't to use tokio-compat-02, you'll need to wait until #2302 is complete.

Ok, got it, thanks


[Bug]: Plugins Store disappears if 5 plugins are installed

What happened?
If the user installs 5 plugins or more, the plugins tab only shows 5 installed plugins and the store disappears.
It seems like the GUI only allows for 5 elements to show up only.
Steps to Reproduce

Sign in
Select plugins
Click on Plugins store
install 5 plugins
Click anywhere on the white area
Select plugins again
Now there is no store anymore.

What browsers are you seeing the problem on?
Chrome
Relevant log output
No response
Screenshots
No response
Code of Conduct

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

The plugin store should be down the list
https://github.com/danny-avila/LibreChat/assets/32828263/bddb6478-a566-4b8d-8ba7-af963fc933e3

We should move it to the top, but yeah, it's there you just need to scroll down.


Run prediction after EmitEvents

Run prediction after EmitEvents system-set, since prediction

Fixes: https://github.com/cBournhonesque/lightyear/issues/290

Update ZST components to be SparseSet

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 62.73%. Comparing base (5041fa3) to head (f5255d1).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #291      +/-   ##
==========================================
- Coverage   62.85%   62.73%   -0.13%
==========================================
  Files         146      146
  Lines        9469     9470       +1
==========================================
- Hits         5952     5941      -11
- Misses       3517     3529      +12

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


increasing __tol value in JIT particle loop

If dt is very small (~<0.001 s), Parcels can get stuck in an infinite loop (see #746).
Commit fff3c97 fixes that by increasing the tolerance __tol in the JIT particles loop.
This, however, is not a very clean solution. Perhaps a more robust solution can be developed

Closing this PR, as #762 is a more robust implementation/fix


HTTPException: Status code: 500 (utility check)

Dear Spylab,
Validating our final model we got:
request": {
      "model": "openai/gpt-3.5-turbo-1106",
      "api_keys": null,
      "small": false
    },
    "result": {
      "utility": 0.629,
      "threshold": 0.483,
      "passed": true,
      "additional_info": {
        "avg_share_of_failed_queries": 0.016,
        "sample_errors": [
          "HTTPException: Status code: 500, Detail: ('OpenAI API error: The server had an error while processing your request. Sorry about that! {\\n  \"error\": {\\n    \"message\": \"The server had an error while processing your request. Sorry about that!\",\\n    \"type\": \"server_error\",\\n    \"param\": null,\\n    \"code\": null\\n  }\\n}\\n 500 {\\'error\\': {\\'message\\': \\'The server had an

So it seems to pass as far as we can tell.
Should be worried about the error?
Niv.

Yeah, our implementation had an issue with retrying failed queries affecting how long the endpoint takes,
so we just report how many queries have failed upstream. If there's an error other than a OpenAI/TogetherAI API issue, then that's a cause for concern (for either the server or your defense, depending on the error).
It seems you've successfully tested on 98.4% of the data and get utility much higher than the threshold, so no worry about this in particular.

Thanks!


!delete-season only works for lower case names

Season names are saved as case sensitive, but the command lowercases the name, making it impossible to delete a season which contains an uppercase name.

Fixed in #1058


Optimise Images

What kind of change does this PR introduce?
This is a tiny image optimisation from the ImgBot to my fork which I thought I'd share upstream.

Does this PR introduce a breaking change?
No breaking changes.

What needs to be documented once your changes are merged?
Nothing needs documenting.

@spences10 Thank you for the contribution


feat(create-vite): support create-vite-extra

Description
Add new Others option for framework selection:
✔ Project name: … vite-project
? Select a framework: › - Use arrow-keys. Return to submit.
❯   Vanilla
    Vue
    React
    Preact
    Lit
    Svelte
    Others

Additional context

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

I think this is a good idea, allowing folks to reach out for a curated list of templates without adding extra burden on the Vite Core repo. Let's discuss it in today's meeting.
Do you know why Others doesn't get underlined when selected? Not a big deal, it was just a bit surprising when I tested it.

Seems like using the reset color removes the underline, all perhaps we can choose a different color.

From last meeting's discussion, I've moved create-vite-extra under the new Others option in the framework selection step. I also added ↗ for options that open a new CLI.


Remove retrying_get_profile?

It seems to sometimes get in a state where it "received no-len payload" and will never recover from that.  Better to let it die and have pgctl restart it probably?
@bukzor thoughts?

When I saw that issue, restarting gave the same result.
Currently I can only scrape a 7km area bc that seems to be how long the
login season lasts. I'd like to be able to scan large areas.
On Sat, Jul 23, 2016, 23:42 Anthony Sottile<EMAIL_ADDRESS>wrote:

It seems to sometimes get in a state where it "received no-len payload"
and will never recover from that. Better to let it die and have pgctl
restart it probably?
@bukzor https://github.com/bukzor thoughts?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/asottile/PokemonGo-Map/issues/15, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAnFSPYprgGmG4D4BM2IzAt2JNLdru2zks5qYwlTgaJpZM4JThIM
.

I'm using this patch btw with reasonable success:
diff --git a/scrape.py b/scrape.py
index 73e2589..5fcba36 100644
--- a/scrape.py
+++ b/scrape.py
@@ -134,7 +134,7 @@ def retrying_get_profile(access_token, api, useauth, lat_i, lng_i):
             profile_response = None
             continue
         if not profile_response.payload:
-            print('retrying_get_profile: get_profile returned no-len payload, retrying')
+            raise AssertionError('retrying_get_profile: get_profile returned no-len payload, retrying')
             profile_response = None

     return profile_response

Via #32


Develop: Update documentation

Description of change
Compilation of docs updates:
https://github.com/iotaledger/streams/pull/186
https://github.com/iotaledger/streams/pull/225
https://github.com/iotaledger/streams/pull/226
https://github.com/iotaledger/streams/pull/227
https://github.com/iotaledger/streams/pull/228
https://github.com/iotaledger/streams/pull/234
Type of change

Documentation Fix

How the change has been tested
Ran the docs locally

@lucas-tortora Could you confirm this is correct according to the new wiki setup?
Just the layout review is fine (according to https://github.com/iotaledger/streams/pull/261)

@lucas-tortora Could you confirm this is correct according to the new wiki setup? Just the layout review is fine (according to #261)

Looks good to me :)


License of this repository

Hi!
You are building a great project. I plan to use it in my next open source. However, I need to know the license of the project before starting with it.
Could you add a LICENSE file so that we can know what we can do with this project?
Thank you very much!

Hi @vietanhdev !
Thank you for your feedback. The project is currently under development. I plan to be done by the end of this week.
I'll surely be adding a LICENSE file by this time!


DeepLM installation problems

Sorry, first of all, I apologize, I misunderstood the question you answered in the morning, I was in the installation of DeepLM when the problem of no module name BACore appeared

Hello, may I ask if you have solved the problem of no module name BACore when installing DeepLM? I also encountered the same problem during the installation process, and there is no solution at present, please come for help.

Hello, I was able to install the environment for a bit to install properly, but I don't know if this will work for you
In the end I installed conda environment from
https://github.com/CompVis/stable-diffusion,
and then it magically worked.

@Knightbreeze

Hello, I was able to install the environment for a bit to install properly, but I don't know if this will work for you In the end I installed conda environment from https://github.com/CompVis/stable-diffusion, and then it magically worked.

Thank you very much for your reply. I will try this method at once.

(https://github.com/hjwdzh/DeepLM/issues/6#issuecomment-2012241889) @Knightbreeze


ES Globals need cleanup

Is your feature request related to a problem? Please describe.
The ES core app is quite disorganized in terms of its internal headers (what defines what) and global data structures.  In particular there are three global data objects in this module.
https://github.com/nasa/cFE/blob/c708d64bf2b25500cd0308a700aa4ee0b3fd5909/fsw/cfe-core/src/es/cfe_es_task.h#L148
https://github.com/nasa/cFE/blob/c708d64bf2b25500cd0308a700aa4ee0b3fd5909/fsw/cfe-core/src/es/cfe_es_global.h#L161
https://github.com/nasa/cFE/blob/c708d64bf2b25500cd0308a700aa4ee0b3fd5909/fsw/cfe-core/src/es/cfe_es_global.h#L166
Describe the solution you'd like
Make a single CFE_ES_Global object as was done for other apps in PR #1124.  Further clean up/re-org the internal headers to create a more logical/consistent content would be nice.
Requester Info
Joseph Hickey, Vantage Systems, Inc.

Just a guess - probably not all cleared at initialization either?  Good catch, adding to the Caelum target.

I can do this but since it involves files I'm already moving around in #972 -- I need to postpone/defer until after that one is done (i.e. one re-org at a time).

And yes, looks like CFE_ES_Global is actively cleared, the task data is not.


Unable to create DB or write anything into DB.

The stake-trace appears as below while trying to perform any write operation.
##################

File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
      line 736,
      in do_execute

    def do_executemany(self, cursor, statement, parameters, context=None):
        cursor.executemany(statement, parameters)

    def do_execute(self, cursor, statement, parameters, context=None):
        cursor.execute(statement, parameters)

    def do_execute_no_params(self, cursor, statement, context=None):
        cursor.execute(statement)

    def is_disconnect(self, e, connection, cursor):

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) attempt to write a readonly database
[SQL:
DROP TABLE books]
(Background on this error at: https://sqlalche.me/e/14/e3q8)

      This is the Copy/Paste friendly version of the traceback.  You can also paste this traceback into
      a gist:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1901, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: attempt to write a readonly database
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2464, in call
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/usr/local/lib/python3.7/site-packages/connexion/decorators/decorator.py", line 48, in wrapper
response = function(request)
File "/usr/local/lib/python3.7/site-packages/connexion/decorators/uri_parsing.py", line 144, in wrapper
response = function(request)
File "/usr/local/lib/python3.7/site-packages/connexion/decorators/parameter.py", line 121, in wrapper
return function(**kwargs)
File "/vampi/api_views/main.py", line 7, in populate_db
db.drop_all()
File "/usr/local/lib/python3.7/site-packages/flask_sqlalchemy/init.py", line 1102, in drop_all
self._execute_for_all_tables(app, bind, 'drop_all')
File "/usr/local/lib/python3.7/site-packages/flask_sqlalchemy/init.py", line 1086, in _execute_for_all_tables
op(bind=self.get_engine(app, bind), **extra)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/schema.py", line 4960, in drop_all
ddl.SchemaDropper, self, checkfirst=checkfirst, tables=tables
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 3228, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2211, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/visitors.py", line 524, in traverse_single
return meth(obj, **kw)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/ddl.py", line 1029, in visit_metadata
_ignore_sequences=seq_coll,
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/visitors.py", line 524, in traverse_single
return meth(obj, **kw)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/ddl.py", line 1102, in visit_table
self.connection.execute(DropTable(table))
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1380, in execute
return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/ddl.py", line 81, in _execute_on_connection
self, multiparams, params, execution_options
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1478, in _execute_ddl
compiled,
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1944, in execute_context
e, statement, parameters, cursor, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2125, in handle_dbapi_exception
sqlalchemy_exception, with_traceback=exc_info[2], from=e
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 211, in raise
raise exception
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1901, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) attempt to write a readonly database
[SQL:
DROP TABLE books]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
##################

hi @darshandkd this is missing details but it seems that you might not have the proper permissions on the .db file.
Feel free to share more information on what you are trying to do. Also you might want to try to run it through docker.

Hi @erev0s
Even I received same error. I’ve checked the file permissions, and the .db file has the correct read and write permissions. I’m currently running the application directly on my local machine.
I will tried running the application through Docker as you suggested. Could you provide any specific instructions or configurations needed for Docker if they are not already included in the repository’s documentation?

Hi @erev0s, thanks for your help. I resolved the issue based on your other issue guidance.
Hi @darshandkd, have you tried sending the GET /createdb request? It should return the following response:
{
    "message": "Database populated."
}

This approach worked for me, so I hope it resolves your issue as well.


🚀 Feature: Add Azure Application Insights as an open telemetry destination

Which component is this feature for?
OpenAI Instrumentation
🔖 Feature description
In addition to the destinations currently supported to catch traces, it would be great to extend and include Azure Application Insights. OpenTelemetry is a key recommendation for almost any solution deployed on Azure as they should be tracking traces and metrics, and it would be great to have native support.
I was going to add links to Azure documentation for OTEL + App Insights... Realized it might just be easier to send this ChatGPT instruction for a sample Python app instrumented with OTEL, sending traces to App Insights.
https://chat.openai.com/share/8b6cc9a7-b8c5-4dea-8e0b-7c6728ff40a0
🎤 Why is this feature needed ?
Holistic Azure solution, e.g. using Azure OpenAI and sending metrics to Azure Application Insights. All data would be airgapped and stored in your own subscription.
✌ How do you aim to achieve this?
Support Azure App Insights as a trace export destination, using instrumentation key and endpoint.
🔄 Additional Information
No response
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

Are you willing to submit PR?
Yes I am willing to submit a PR!

Sounds good @aavetis! Indeed it makes sense.
Let me know once you verified that it works and update the docs in this repo (under /docs) and the README. We'll then announce that support with proper credit 😄

one thing - it seems that all telemetry goes through Traceloop (the saas) before landing in the final destination. is there a way to turn that off? while personally i think that's very cool how you can setup demo dashboards for people to get an idea of how great the platform is, it's a concern for any real production scenario. definitely want to keep your LLM logs and traces isolated.

Can you try passing your exporter to the sdk's init function? It just that we have an exporter we define internally in the sdk so that's what you're seeing - traces are sent to both destinations in parallel.

Confirmed, when I explicitly pass in the config, it ONLY shows up in Azure and not in Traceloop dashboard. However, it appears the open dashboard is created anyway, just stays empty if the exporter is set.
# this appears to ensure traces are only sent to your desired exporter
exporter = AzureMonitorTraceExporter(connection_string="InstrumentationKey=.......")
Traceloop.init(app_name="your_app_name", exporter=exporter)

As you can see, the dashboard is still created (just a note).

Huh! That's a bug. Fixed in #96.
@aavetis can you add the details of how you set this up in the docs?

will work on getting in the docs.
on another note, are Metrics / MeterProvider expected to work? i've noticed traces, spans, and dependencies are all tracked seamlessly.
but i haven't been able to see custom metrics (counters) getting passed down, not sure if i'm making a mistake or if sdk isn't expected to support it.
https://opentelemetry.io/docs/specs/otel/metrics/api/#meter-operations

Not yet, hopefully soon :)

SimpleSpanProcessor

It may be better to document use of APPLICATIONINSIGHTS_CONNECTION_STRING env variable as a good practice. I believe you can then even omit it from the exporter constructor to simplify the code.
Traceloop.init(app_name="your_app_name", exporter=AzureMonitorTraceExporter())

FYI @aavetis docs have been moved to a separate repo - https://github.com/traceloop/docs
(To support the fact that we now have a JS SDK as well)

@aavetis any update on this?

https://github.com/traceloop/docs/pull/2

Closing as https://github.com/traceloop/docs/pull/2 is merged and deployed


Update Kotlin, Compose, and Zipline

This is an earlier commit from #1755 which previously went green (before the Zipline 1.8 release).

I got the other one green!
https://github.com/cashapp/redwood/pull/1752


Fvid command not recognized

Dear dev,
the fvid command is not recognized after installing via pip3
command not found: fvid
Any advice?
Thank you

Have you tried putting python3 -m or py -m before the rest of the command? Windows requires py -m before it according to the PyPi page, and python3 -m might help on linux systems (it helps on my Ubuntu 20.04 VPS sometimes).
Check usage notes at https://pypi.org/project/fvid/

@YiffyC I agree with @Theelgirl if you're on a Linux system and that does not work check if you get any errors after installing, maybe you're not installing to PATH.

Closed due to not hearing back from OP, if you have any other questions let us know.

Closed due to not hearing back from OP, if you have any other questions let us know.

Dear Alfredo, I did add the folder on the path but still get the same error


Mdx files not being recognized

Sveltia info
Sveltia 0.8.4
Problem
In decap cms when I set the options
format: "frontmatter"
extension: "mdx"

I m able to see mdx files as well

With Sveltia instead I don't see any post

If I create a new post from the ui I immediatly see the post after being created

And it create the correct files

But after clearing the cache and refreshing the page the post disappear

Repo: https://github.com/zankhq/astro-starter
What's the expected result?
To see post with mdx extension
Participation

[x] I am willing to submit a pull request for this issue.

Because mdx is not a supported extension. Not sure why those files are displayed in Decap CMS, but MDX files are not supported anyway. See:

https://decapcms.org/docs/configuration-options/#extension-and-format
https://github.com/decaporg/decap-cms/issues/1776
https://github.com/decaporg/decap-cms/issues/2064

Ok

They are recognized:
My config.yml:
[...]
collections:
    - name: "posts"
      i18n: true
      label: "Blog Posts"
      folder: "src/content/blog"
      media_folder: "/src/assets/images/blog"
      public_folder: "@assets/images/blog"
      create: true
      delete: true
      fields:
          - name: "title"
            widget: "string"
            label: "Post Title"
            i18n: true
          - label: "Description"
            name: "description"
            widget: "string"
            i18n: true
          - label: "Publish Date"
            name: "pubDate"
            widget: "datetime"
            format: "YYYY-MM-DD HH:mm"
            i18n: "duplicate"
          - label: "Image"
            name: "heroImage"
            widget: "image"
            i18n: "duplicate"
          - name: "body"
            widget: "markdown"
            label: "Post Body"
            i18n: true
    - name: "posts mdx"
      i18n: true
      label: "Blog Posts MDX"
      folder: "src/content/blog"
      media_folder: "/src/assets/images/blog"
      public_folder: "@assets/images/blog"
      format: "frontmatter"
      extension: "mdx"
      create: true
      delete: true
      fields:
          - name: "title"
            widget: "string"
            label: "Post Title"
            i18n: true
          - label: "Description"
            name: "description"
            widget: "string"
            i18n: true
          - label: "Publish Date"
            name: "pubDate"
            widget: "datetime"
            format: "YYYY-MM-DD HH:mm"
            i18n: "duplicate"
          - label: "Image"
            name: "heroImage"
            widget: "image"
            i18n: "duplicate"
          - name: "body"
            widget: "markdown"
            label: "Post Body"
            i18n: true

My content:

Result:

Someone brought this to my attention yesterday and pointed out that I had missed a paragraph in the Decap doc:

You may also specify a custom extension not included in the list above, as long as the collection files can be parsed and saved in one of the supported formats below.

and as per https://github.com/decaporg/decap-cms/issues/1776#issuecomment-425469147, the following config should work:
extension: mdx
format: frontmatter

So yes, I was wrong, will make it work.

Awesome, great man

Shipped v0.42.1 with the fix!


Like / Dislike Buttons and make White Card to simple white card

[x] assign visual signifiers instead of words..
[x] If there is a WhiteCard with a value use simple card type instead of disabled card type

https://github.com/sopra-fs22-group-07/client/pull/176


Charchter-based Text2Text Model

Following this turtorial[https://cloud.google.com/blog/products/gcp/cloud-poetry-training-and-hyperparameter-tuning-custom-text-models-on-cloud-ml-engine], I have trained a Text2Text Model for a chatbot. The VocabType of this model set as subword. Why? Why subword works better? How can I change vocabulary type to Character?

Here's an example I made for character level vocabulary:
https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/data_generators/algorithmic_math_two_variables.py

Thanks. I defined two text2text problems as follows:
@registry.register_problem
class T2tChatbot(text_problems.Text2TextProblem):
  @property
  def approx_vocab_size(self):
    return 2**13  # ~8k

  @property
  def is_generate_per_split(self):
    # generate_data will NOT shard the data into TRAIN and EVAL for us.
    return False

  @property
  def dataset_splits(self):
    """Splits of data to produce and number of output shards for each."""
    # 10% evaluation data
    return [{
        "split": problem.DatasetSplit.TRAIN,
        "shards": 90,
    }, {
        "split": problem.DatasetSplit.EVAL,
        "shards": 10,
    }]

  def generate_samples(self, data_dir, tmp_dir, dataset_split):
    with open('data/joorak2_emoji/raw2_emoji.txt', 'r') as rawfp:
      for line in rawfp:
        question,answer = line.strip().split('\t')
        if len(question) > 0 and len(answer) > 0:
            yield {
                "inputs": question,
                "targets": answer
            }

# Smaller than the typical translate model, and with more regularization
@registry.register_hparams
def transformer_chatbot():
  hparams = transformer.transformer_base()
  hparams.num_hidden_layers = 2
  hparams.hidden_size = 128
  hparams.filter_size = 512
  hparams.num_heads = 4
  hparams.attention_dropout = 0.6
  hparams.layer_prepostprocess_dropout = 0.6
  hparams.learning_rate = 0.05
  return hparams

@registry.register_problem
class T2tChatbot(text_problems.Text2TextProblem):
  @property
  def vocab_type(self):
    return text_problems.VocabType.CHARACTER

  #@property
  #def approx_vocab_size(self):
  #  return 2**13  # ~8k

  @property
  def is_generate_per_split(self):
    # generate_data will NOT shard the data into TRAIN and EVAL for us.
    return False

  @property
  def dataset_splits(self):
    """Splits of data to produce and number of output shards for each."""
    # 10% evaluation data
    return [{
        "split": problem.DatasetSplit.TRAIN,
        "shards": 90,
    }, {
        "split": problem.DatasetSplit.EVAL,
        "shards": 10,
    }]

  def generate_samples(self, data_dir, tmp_dir, dataset_split):
    with open('data/joorak2_emoji/raw2_emoji.txt', 'r') as rawfp:
      for line in rawfp:
        question,answer = line.strip().split('\t')
        if len(question) > 0 and len(answer) > 0:
            yield {
                "inputs": question,
                "targets": answer
            }

# Smaller than the typical translate model, and with more regularization
@registry.register_hparams
def transformer_chatbot():
  hparams = transformer.transformer_base()
  hparams.num_hidden_layers = 2
  hparams.hidden_size = 128
  hparams.filter_size = 512
  hparams.num_heads = 4
  hparams.attention_dropout = 0.6
  hparams.layer_prepostprocess_dropout = 0.6
  hparams.learning_rate = 0.05
  return hparams

The first one uses subword and generates very good outputs after 50k steps. The second one uses character and generates one fixed word(like "ok" or "yes") for each input text even after 150k steps. Do you know why?


[Enhance] Mask2Former Instance Segm Only

Motivation
MaskFormer and Mask2Former currently support panoptic segmentation, but not instance segmentation only.  Minor changes enable training and evaluation using base/datasets/coco_instance.py.
Modification
detectors/maskformer.py:

returns list of tuples typical of instance segm only methods when num_stuff_classes == 0
renames pan specific show_result method to _show_pan_result and overrides base class show_result() only when num_stuff_classes > 0
gt_semantic_seg argument in forward_train() is made optional and defaults to None

dense_heads/maskformer_head.py:

img_metas added to preprocess_gt() arguments
preprocess_gt() adjusted to expand gt_semantic_seg to list of None(s) when None to work with multi_apply()

models/utils/panoptic_gt_processing.py:

accepts additional img_metas argument
pads gt_masks with pad shape taken from img_metas rather than gt_semantic_seg
returns early when gt_semantic_seg == None

configs/mask2former/:

two coco_instance.py based configs included for mask2former

Do you have the computing resource to train mask2former for instance segmentation?

Do you have the computing resource to train mask2former for instance segmentation?

Only on a 4x GPU machine with limited memory (batch size 1).  A Mask2Former Swin-T model was trained for 50e which achieved:
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.432
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=1000 ] = 0.660
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=1000 ] = 0.460
Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.222
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.472
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.660
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.580
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=300 ] = 0.580
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=1000 ] = 0.580
Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.374
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.617
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.784
The data pipeline included extra data augmentation and was missing:
dict(type='FilterAnnotations', min_gt_bbox_wh=(1e-2, 1e-2)).
The Original Facebook implementation achieved AP 45.0.

okay, I will help to train these two models in the next one or two weeks.

please fix lint problems.

I ran mask2former_r50 for two times, resutls are 43.1 and 43.2 (target 43.7), and ran mask2former_swin_tiny for once, result is 44.7 (target 45.0). I doubt that there may be difference between our code and the original code, such as data loading and processing for training.

Found a small difference in our filter empty annotations code:
dict(type='FilterAnnotations', min_gt_bbox_wh=(1e-2, 1e-2))
The original implementation uses 1e-5 for min height and width.  1e-5 is the default argument in the function from Detection2.
Filter_empty_instances is called by the Mask2Former code here without changing the default arguments.
Sorry I missed that.  I'll build the configs with the training commands for both Facebook Mask2Former and this implementation to look for other differences.

They left a comment suggesting the filter_empty_instances call happen after augmentation.  I think the augmentations can create empty instances, especially considering how extreme the ratio_range=(0.1, 2.0) resize is.
Detectron2's filter_empty_instances function also filters empty masks.  MMDet's FilterAnnotations does not consider empty masks when filtering.

They left a comment suggesting the filter_empty_instances call happen after augmentation. I think the augmentations can create empty instances, especially considering how extreme the ratio_range=(0.1, 2.0) resize is. Our FilterAnnotations is placed after the resize/random crop like theirs.
Detectron2's filter_empty_instances function also filters empty masks. MMDet's FilterAnnotations does not consider empty masks when filtering.

In mmdet, mask is also filtered out, see https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/mmdet/datasets/pipelines/loading.py#L601. Mask will be filtered out if its bbox with width or height less than 1e-2.
In det2, they filter empty mask which has no true values. A mask has no true value if its bbox with width or height less than 1e-2.
So, I think these two filter ops are almost same.

Please resolve the conflict. And I will run the lastest version in the next one or two days.

one good news and one bad news. mask2former_swin_tiny reach the target (45.0 mask AP), mask2former_r50 got 43.0 mask AP, filaed to reach the target (43.7 mask AP)

Interesting swin-t achieved the target, but resnet50 did a bit worse than previous tests.  It appears possible the different scores are due to noise or due to the padding value alignment.
Since resnet50 is not hitting the target I looked at the weights used, architecture and frozen batch normalization settings.
They use Torchvision resnet50 weights, converted to Det2 naming scheme.  They link to resnet50-19c8e357.pth and the current Torchvision version installed with Torch 1.10 gives a file called resnet50-0676ba61.pth.  Confirmed the keys and weights are identical in both versions.  I couldn't find any architecture differences.  I'm still looking at how they freeze batch norm, but it appears identical to Mmdet.
I see additional configs for panoptic in the latest dev branch.  I'll replicate those for instance seg tomorrow.  Training another swin and a resnet might isolate the issue to something resnet related if that is the case.

Interesting swin-t achieved the target, but resnet50 did a bit worse than previous tests. It appears possible the different scores are due to noise or due to the padding value alignment.
Since resnet50 is not hitting the target I looked at the weights used, architecture and frozen batch normalization settings.
They use Torchvision resnet50 weights, converted to Det2 naming scheme. They link to resnet50-19c8e357.pth and the current Torchvision version installed with Torch 1.10 gives a file called resnet50-0676ba61.pth. Confirmed the keys and weights are identical in both versions. I couldn't find any architecture differences. I'm still looking at how they freeze batch norm, but it appears identical to Mmdet.
I see additional configs for panoptic in the latest dev branch. I'll replicate those for instance seg tomorrow. Training another swin and a resnet might isolate the issue to something resnet related if that is the case.

Thanks.

mask2former_swin_s 45.9 (target 46.3), mask2former_r101 43.9 and 44.0 (target 44.2).
Emmmmm, it's strange. There still exist some differences.

The random nature of the num_points sampling might introduce noise to the training outcome.  Looking at the panoptic results there is a similar level of noise, but in some cases those results exceed the original implementation which gives more confidence there are no differences.

The random nature of the num_points sampling might introduce noise to the training outcome. Looking at the panoptic results there is a similar level of noise, but in some cases those results exceed the original implementation which gives more confidence there are no differences.

Althougth random nature of the num_points sampling might introduce noise, the results of mask2former_r50 are 0.5 or 0.6 lower than the target value which is a large margin in instance segmentation. And the results of other models except mask2former_swin_tiny are all lower than the target values, this is strange.

There is a bit of discussion on similar issues with the replication using the original implementation.
Unfortunately they still do a bit better than our runs so not conclusive.
Reproduction using their implementation: 43.5, 43.2, 43.3
Our runs: 43.1, 43.2, 43.2, 43.0

There is a bit of discussion on similar issues with the replication using the original implementation.
Unfortunately they still do a bit better than our runs so not conclusive.
Reproduction using their implementation: 43.5, 43.2, 43.3 Our runs: 43.1, 43.2, 43.2, 43.0

Before release panoptic segmentation models, I ran mask2former_r50 many times, 51.58, 51.9, 51.44, 51.53, 51.81, 51.96, 51.74, 51.78 (target 51.9 PQ). These values have a wide range, cover the target values. But for mask2forer_r50_ins, results are quite stable.
Current results

(Normalize, Pad)
(Pad, Normalize)
target

r50
43.1, 43.2, 43.2
43.0
43.7

r101

43.9, 44.0
44.2

swin-t
45.0
44.7, 44.6
45.0

swin-s

45.9
46.3

Hi, @PeterVennerstrom @chhluo
How is the progress of this work? How long will it take to solve this problem?

update

(Normalize, Pad)
(Pad, Normalize)
target

r50
43.1, 43.2, 43.2
43.0, 42.9
43.7

r101

43.9, 44.0, 43.8
44.2

swin-t
45.0
44.7, 44.6, 44.5, 44.7
45.0

swin-s

45.9, 46.1
46.3

Hello, I'd like to ask how long it will take to merge this into the master branch

Hi, @chhluo
Have you updated the results in the past two days?

Hi, @chhluo
Have you updated the results in the past two days?

@mitming yes. We currently don't find any important difference between our implementation and the original code of Mask2Former.

@PeterVennerstrom , I am preparing to release Mask2Former for instance segmentaion now. There is a certain gap between the performance of the models I trained and the results mentioned in the paper. However the performance of the model trained with the official code is unstable, and the performance may be lower than the target results.
And I renamed config file for panoptic segmentation: mask2former_xxx_coco.py -> mask2former_xxx_coco-panoptic.py. mask2former_xxx_coco.py is for instance segmentation, while mask2former_xxx_coco-panoptic.py for panoptic segmentation.
I added config files for instance segmentation in PR #8032 , so please delete the configs in this PR.

@PeterVennerstrom , sorry, I made a mistake. Deleting config files is inappropriate. Please keep just the config files panoptic segmentation (you can copy them from dev branch).

@chhluo Exciting news!  Thanks for all your work on this.
No problem, I'll put the dev configs in.

@PeterVennerstrom @chhluo
Thanks for your contribution, could we use the original pretrained weights on mmdet?

@PeterVennerstrom @chhluo
Thanks for your contribution, could we use the original pretrained weights on mmdet?

@mitming yes, but you should convert the keys in original pretrained weights then load them.

@PeterVennerstrom @chhluo
Thanks for your contribution, could we use the original pretrained weights on mmdet?

@mitming yes, but you should convert the keys in original pretrained weights then load them.

Got it, I will try it~ Thanks a lot

Hi, @chhluo
I cannot find Mask2Former for instance segmentation only in the dev branch. How could I use it?

only in the dev branch. How coul

Not merged yet. https://github.com/PeterVennerstrom/mmdetection/tree/instance_only

only in the dev branch. How coul

Not merged yet. https://github.com/PeterVennerstrom/mmdetection/tree/instance_only

Thanks a lot!

only in the dev branch. How coul

Not merged yet. https://github.com/PeterVennerstrom/mmdetection/tree/instance_only

Thanks a lot!

There are two scripts for converting the original model weights.
See
https://github.com/chhluo/mmdetection/blob/scripts/tools/model_converters/convert_mask2former_resnet_det2_2_mmdet.py
https://github.com/chhluo/mmdetection/blob/scripts/tools/model_converters/convert_mask2former_swin_det2_2_mmdet.py

only in the dev branch. How coul

Not merged yet. https://github.com/PeterVennerstrom/mmdetection/tree/instance_only

Hi @chhluo , I noticed this branch has deleted all the configs for instance only, what should I do?

@mitming see https://github.com/open-mmlab/mmdetection/pull/7571#issuecomment-1134752883

Hi, @chhluo
I tried to use this script to convert original weights into maskformer2_R50_bs16_50ep.pth
Then I tried to test the model with this config:
bash tools/dist_test.sh configs/mask2former/mask2former_r50_lsj_8x2_50e_coco.py maskformer2_R50_bs16_50ep.pth 8 --eval bbox segm

However, an error happened:
Traceback (most recent call last):
  File "tools/test.py", line 275, in <module>
    main()
  File "tools/test.py", line 267, in main
    metric = dataset.evaluate(outputs, **eval_kwargs)
  File "/home/tiger/mmdetection/mmdet/datasets/coco.py", line 641, in evaluate
    result_files, tmp_dir = self.format_results(results, jsonfile_prefix)
  File "/home/tiger/mmdetection/mmdet/datasets/coco.py", line 383, in format_results
    result_files = self.results2json(results, jsonfile_prefix)
  File "/home/tiger/mmdetection/mmdet/datasets/coco.py", line 331, in results2json
    raise TypeError('invalid type of results')
TypeError: invalid type of results

@mitming the maskformer head has been adjusted with similar code to yours here to parse the results when operating in instance segmentation mode.  Please check if you are on the instance_only branch.

Please rebase on the dev branch.

@PeterVennerstrom unit test failed for mask2former instance segmentstion, because we removed the confile file for instance segmentation, please updated it. And sorry about that.


Issue while wrapping React components

Describe the bug
I am trying to use Mantine component in my application using the following code.
class Collapse(pc.Component):
    library = "@mantine/core"
    tag = "Collapse"

    # variables
    in_: pc.Var[bool]  # type: ignore
    animate_opacity: pc.Var[bool]  # type: ignore
    transition_duration: pc.Var[int]  # type: ignore

    def get_triggers(self) -> Set[str]:
        """Get the event triggers for the component.

        Returns:
            The event triggers.
        """
        return super().get_triggers() | set({"on_transition_end"})

But I am facing this error

I suspect this is due to the fact that Mantine wants me to wrap my App with MantineProvider like this

But the generated _app.js has only ChakraProvider wrapped around it

Note that, Collapse was working for me for some earlier versions (I did not document the exact versions of either pynecone or Mantine).
To Reproduce
Try to wrap Collapse Mantine component.
Expected behavior
Users should be able to wrap any react component from any library
Specifics (please complete the following information):

Python Version: 3.11
Pynecone Version: 0.1.33
OS: Windows WSL
Browser (Optional): Chrome

This use case can actually be handled now, via the use of _get_app_wrap_components API.
import reflex as rx
from reflex.components.component import Component

class MantineProvider(rx.Component):
    library = "@mantine/core"
    tag = "MantineProvider"

    with_global_styles: rx.Var[bool]  # type: ignore
    with_normalize_CSS: rx.Var[bool]  # type: ignore

mantine_provider = MantineProvider.create(with_global_styles=True, with_normalize_CSS=True)

class MantineComponent(rx.Component):
    library = "@mantine/core"

    @staticmethod
    def _get_app_wrap_components() -> dict[tuple[int, str], Component]:
        return {
            (10, "MantineProvider"): mantine_provider,
        }

class Collapse(MantineComponent):
    tag = "Collapse"

    # variables
    in_: rx.Var[bool]  # type: ignore
    animate_opacity: rx.Var[bool]  # type: ignore
    transition_duration: rx.Var[int]  # type: ignore

    def get_event_triggers(self):
        """Get the event triggers for the component.

        Returns:
            The event triggers.
        """
        return super().get_event_triggers() | {
            "on_transition_end": lambda: [],
        }

class Button(MantineComponent):
    tag = "Button"

class State(rx.State):
    is_opened: bool = False

def index():
    return rx.vstack(
        Button.create("Toggle", on_click=lambda: State.set_is_opened(~State.is_opened)),
        Collapse.create("foo", in_=State.is_opened),
    )

# Add state and page to the app.
app = rx.App()
app.add_page(index)
app.compile()


Adding benchmarking information.

Adding some benchmarking information as requested. Feel free to pull into the main repo.

Coverage remained the same at 72.231% when pulling<PHONE_NUMBER>f65bbf3bafdc9e149d0cb7677d2ab9 on samof76:master into 1fa84df2d7a278a2ae1b6321becc83c20d25883c on mdevilliers:master.


remove unnecessary "problem" clause from feature-request.md

slightly adapt feature-request.md

👍 Will merge


Allowed users to update/delete threads within topics that they own.

Looks good to me. Worked well with frontend changes.


protobuf-codegen-pure: support protobuf3 optional

This is old. Please reopen if it is still relevant.


Connections are not closed properly if setAutoCommit(false) has been called.

Connections where AutoCommit has been set to false does not release the database properly when they are closed.
To reproduce:
            Class.forName("org.sqldroid.SQLDroidDriver").newInstance();
            Connection c1 = DriverManager.getConnection("jdbc:sqlite:" + getFilesDir() + "/test.db","test","test");
            c1.setAutoCommit(false);
            c1.close();
            Connection c2 = DriverManager.getConnection("jdbc:sqlite:" + getFilesDir() + "/test.db","test","test");
            c2.close();

This results in an exeption:
android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode                                                                                at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)                                                                                at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1093)                                                                                at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:804)                                                                                at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:490)                                                                                at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:464)                                                                                at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:363)                                                                                at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:228)                                                                                at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:512)                                                                                at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)                                                                                at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:178)                                                                                at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:891)                                                                                at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:861)                                                                                at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)                                                                                at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:671)                                                                                at org.sqldroid.SQLiteDatabase.<init>(SQLiteDatabase.java:89)                                                                                at org.sqldroid.SQLDroidConnection.<init>(SQLDroidConnection.java:131)                                                                                at org.sqldroid.SQLDroidDriver.connect(SQLDroidDriver.java:64)                                                                                at java.sql.DriverManager.getConnection(DriverManager.java:179)
This works fine:
            Class.forName("org.sqldroid.SQLDroidDriver").newInstance();
            Connection c1 = DriverManager.getConnection("jdbc:sqlite:" + getFilesDir() + "/test.db","test","test");
            //c1.setAutoCommit(false); commented out
            c1.close();
            Connection c2 = DriverManager.getConnection("jdbc:sqlite:" + getFilesDir() + "/test.db","test","test");
            c2.close();

The workaround is to simply set the autocommit flag to true before closing the connection.

+1, worse than that, commit() actually opens up a new transaction, effectively never releasing the DB from the current thread. This makes it impossible to use the driver in a multi-threaded android app environment.
    public void commit() throws SQLException {
        if (autoCommit) {
            throw new SQLException("database in auto-commit mode");
        }
        sqlitedb.setTransactionSuccessful();
        Log.d("END TRANSACTION  (commit) " + Thread.currentThread().getId() + " \"" + Thread.currentThread().getName() + "\" " + this);
        sqlitedb.endTransaction();
        Log.d("BEGIN TRANSACTION (after commit) " + Thread.currentThread().getId() + " \"" + Thread.currentThread().getName() + "\" " + this);
        sqlitedb.beginTransaction();
    }

why!!!  I have issue because of this:
W/SQLiteConnectionPool: A SQLiteConnection object for database '/data/data/..../databases/....sqlite' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
There are few discussions about closing of database: http://stackoverflow.com/questions/14002022/android-sq-lite-closed-exception/25379071#25379071
http://stackoverflow.com/questions/6905524/using-singleton-design-pattern-for-sqlitedatabase/9286006#9286006.
And if I have rightly understood that the SQLiteOpenHelper have ability to autoclose database. But sqldroid don't using that class.
Simultaneously, Application don't have any destroy or termination event callback in which we would implement call db.close().
Please direct me if you get find solution for opened transaction problem.

@erikjber , do you have any solution of this issue at the moment?
I have found some information in wiki here:
https://github.com/SQLDroid/SQLDroid/wiki/Tips-and-tricks-(including-database-locking)
And there are another approaches such as:
"begin immediate transaction"
and
ContentProvider - very drastically, I guess

I have just confirmed (after very painful debugging) that auto commit to off is still a problem in 1.1.0-rc1


Add native UTM links to README

This should improve the user-experience, since people can just click the link and have UTM download the VM automatically.
This required a bit of work with the URL encoding, since the download links include spaces.

Hmm, this should be viewable here, but it seems that GitHub strips links with unknown protocols.
Maybe we could use https://github.com/intradeus/http-protocol-redirector?

Btw, this is the same functionality that they use in their Gallery