Fix wrong chunk length

In some rare cases there is a small subsequent frame which is not read and transceive aborts with wrong chunk length
I have mcuboot (zephyr) with the option CONFIG_SINGLE_APPLICATION_SLOT=y and use the serial recovery mode. There is an image on the controller with the version <IP_ADDRESS>2043700. I wanted to get the list of images and it failed with wrong chunk length
To be honest I don't completely understand the code. I just saw that there is only the first frame read and the second not. Here https://github.com/vouch-opensource/mcumgr-client/blob/3d910e0b148a8e8c312598065406263a8dd21530/src/transfer.rs#L171 the 2 bytes to encode the length are subtracted and here https://github.com/vouch-opensource/mcumgr-client/blob/3d910e0b148a8e8c312598065406263a8dd21530/src/transfer.rs#L160 not.
I subtracted this 2 bytes too and it works now. I tested list, upload and reset with the fix and had no issues.

I'm not sure it this really fixes it. But this PR introduces a possible new problem: imagine only one byte of a chunk is transferred, and then a newline. Since decoded.len() is usize, this would underflow and the read would terminate. But I should be easy to fix.
And could you post the transferred data with the Go mcumgr program in debug mode, in a gist, which demonstrates your original problem? Then it is easier for me to check it.

I'm not sure it this really fixes it. But this PR introduces a possible new problem: imagine only one byte of a chunk is transferred, and then a newline. Since decoded.len() is usize, this would underflow and the read would terminate. But should be easy to fix.

I am not sure if thats a problem. BigEndian::read_u16 will panic if len is smaller than 2. But it would be invalid data anyway.

And could you post the transferred data with the Go mcumgr program in debug mode, in a gist, which demonstrates your original problem? Then it is easier for me to check it.

I don't have the same image anymore but <IP_ADDRESS>4070009 causes the same error
go client
root@linux:~# /tmp/mcumgr -c mcu -l debug image list
DEBU[2024-07-09 08:04:29.099] Using connection profile: name=mcu type=serial connstring=dev=/dev/ttymxc2,baud=230400
DEBU[2024-07-09 08:04:29.1] {add-nmp-listener} [serial_sesn.go:213] seq=66
DEBU[2024-07-09 08:04:29.1] Encoded &{NmpBase:{hdr:{Op:0 Flags:0 Len:0 Group:1 Seq:66 Id:0}}} to:
00000000  a0                                                |.|
DEBU[2024-07-09 08:04:29.1] Encoded:
00000000  00 00 00 01 00 01 42 00  a0                       |......B..|
DEBU[2024-07-09 08:04:29.1] Tx NMP request: 00000000  00 00 00 01 00 01 42 00  a0                       |......B..|
DEBU[2024-07-09 08:04:29.1] Base64 encoding request:
00000000  00 00 00 01 00 01 42 00  a0                       |......B..|
DEBU[2024-07-09 08:04:29.1] Tx serial
00000000  06 09                                             |..|
DEBU[2024-07-09 08:04:29.1] Tx serial
00000000  41 41 73 41 41 41 41 42  41 41 46 43 41 4b 44 31  |AAsAAAABAAFCAKD1|
00000010  4d 77 3d 3d                                       |Mw==|
DEBU[2024-07-09 08:04:29.1] Tx serial
00000000  0a                                                |.|
DEBU[2024-07-09 08:04:29.525] Rx serial:
00000000  06 09 41 46 30 42 41 41  42 54 41 41 46 43 41 4c  |..AF0BAABTAAFCAL|
00000010  39 6d 61 57 31 68 5a 32  56 7a 6e 37 39 6b 63 32  |9maW1hZ2Vzn79kc2|
00000020  78 76 64 41 42 6b 61 47  46 7a 61 46 67 67 4b 6d  |xvdABkaGFzaFggKm|
00000030  53 72 70 78 6a 59 4e 52  6c 6c 7a 68 74 2b 42 45  |SrpxjYNRllzht+BE|
00000040  30 56 39 34 73 49 64 6e  50 43 59 69 30 50 46 6a  |0V94sIdnPCYi0PFj|
00000050  30 78 58 4b 35 39 46 64  46 6e 64 6d 56 79 63 32  |0xXK59FdFndmVyc2|
00000060  6c 76 62 6e 41 7a 4c 6a  63 75 4f 54 6b 75 4e 7a  |lvbnAzLjcuOTkuNz|
00000070  67 30 4d 44 63 77 4d 44  41 35 2f 2f 2f 2f        |g0MDcwMDA5////|
DEBU[2024-07-09 08:04:29.526] Rx serial:
00000000  04 14 2f 41 41 3d                                 |../AA=|
DEBU[2024-07-09 08:04:29.526] Decoded input:
00000000  01 00 00 53 00 01 42 00  bf 66 69 6d 61 67 65 73  |...S..B..fimages|
00000010  9f bf 64 73 6c 6f 74 00  64 68 61 73 68 58 20 2a  |..dslot.dhashX *|
00000020  64 ab a7 18 d8 35 19 65  ce 1b 7e 04 4d 15 f7 8b  |d....5.e..~.M...|
00000030  08 76 73 c2 62 2d 0f 16  3d 31 5c ae 7d 15 d1 67  |.vs.b-..=1\.}..g|
00000040  76 65 72 73 69 6f 6e 70  33 2e 37 2e 39 39 2e 37  |versionp<IP_ADDRESS>|
00000050  38 34 30 37 30 30 30 39  ff ff ff                 |84070009...|
DEBU[2024-07-09 08:04:29.526] rx nmp response: 00000000  01 00 00 53 00 01 42 00  bf 66 69 6d 61 67 65 73  |...S..B..fimages|
00000010  9f bf 64 73 6c 6f 74 00  64 68 61 73 68 58 20 2a  |..dslot.dhashX *|
00000020  64 ab a7 18 d8 35 19 65  ce 1b 7e 04 4d 15 f7 8b  |d....5.e..~.M...|
00000030  08 76 73 c2 62 2d 0f 16  3d 31 5c ae 7d 15 d1 67  |.vs.b-..=1\.}..g|
00000040  76 65 72 73 69 6f 6e 70  33 2e 37 2e 39 39 2e 37  |versionp<IP_ADDRESS>|
00000050  38 34 30 37 30 30 30 39  ff ff ff                 |84070009...|
DEBU[2024-07-09 08:04:29.527] Received nmp rsp: &{NmpBase:{hdr:{Op:1 Flags:0 Len:83 Group:1 Seq:66 Id:0}} Rc:0 Images:[{NmpBase:{hdr:{Op:0 Flags:0 Len:0 Group:0 Seq:0 Id:0}} Image:0 Slot:0 Version:<IP_ADDRESS>4070009 Hash:[42 100 171 167 24 216 53 25 101 206 27 126 4 77 21 247 139 8 118 115 194 98 45 15 22 61 49 92 174 125 21 209] Bootable:false Pending:false Confirmed:false Active:false Permanent:false}] SplitStatus:N/A}
DEBU[2024-07-09 08:04:29.527] {remove-nmp-listener} [serial_sesn.go:213] seq=66
Images:
 image=0 slot=0
    version: <IP_ADDRESS>4070009
    bootable: false
    flags:
    hash: 2a64aba718d8351965ce1b7e044d15f78b087673c2622d0f163d315cae7d15d1
Split status: N/A (0)

Unmodified mcumgr-client
root@linux:~# /tmp/mcumgr-client -d /dev/ttymxc2 -b 230400 -t 10 -v list
mcumgr-client 0.0.4, Copyright © 2024 Vouch.io LLC

06:04:36 [INFO] send image list request
06:04:36 [DEBUG] (1) mcumgr_client::transfer: request header: NmpHdr { op: Read, flags: 0, len: 1, group: Image, seq: 180, id: 0 }
06:04:36 [DEBUG] (1) mcumgr_client::transfer: serialized:<PHONE_NUMBER>01b400a0
06:04:36 [DEBUG] (1) mcumgr_client::transfer: encoded with packet length and checksum: 000b000000010001b400a0a4c1
06:04:36 [DEBUG] (1) mcumgr_client::transfer: encoded: AAsAAAABAAG0AKCkwQ==
06:04:36 [DEBUG] (1) mcumgr_client::transfer: expected length: 93
06:04:36 [DEBUG] (1) mcumgr_client::transfer: result string: AF0BAABTAAG0AL9maW1hZ2Vzn79kc2xvdABkaGFzaFggKmSrpxjYNRllzht+BE0V94sIdnPCYi0PFj0xXK59FdFndmVyc2lvbnAzLjcuOTkuNzg0MDcwMDA5////
06:04:36 [ERROR] Error: wrong chunk length

Modified mcumgr-client
root@linux:~# mcumgr-client -d /dev/ttymxc2 -b 230400 -t 10 -v list
mcumgr-client 0.0.4, Copyright © 2024 Vouch.io LLC

06:04:43 [INFO] send image list request
06:04:43 [DEBUG] (1) mcumgr_client::transfer: request header: NmpHdr { op: Read, flags: 0, len: 1, group: Image, seq: 159, id: 0 }
06:04:43 [DEBUG] (1) mcumgr_client::transfer: serialized:<PHONE_NUMBER>019f00a0
06:04:43 [DEBUG] (1) mcumgr_client::transfer: encoded with packet length and checksum: 000b0000000100019f00a0d2f6
06:04:43 [DEBUG] (1) mcumgr_client::transfer: encoded: AAsAAAABAAGfAKDS9g==
06:04:44 [DEBUG] (1) mcumgr_client::transfer: expected length: 93
06:04:44 [DEBUG] (1) mcumgr_client::transfer: result string: AF0BAABTAAGfAL9maW1hZ2Vzn79kc2xvdABkaGFzaFggKmSrpxjYNRllzht+BE0V94sIdnPCYi0PFj0xXK59FdFndmVyc2lvbnAzLjcuOTkuNzg0MDcwMDA5////6V4=
06:04:44 [DEBUG] (1) mcumgr_client::transfer: response header: NmpHdr { op: ReadRsp, flags: 0, len: 83, group: Image, seq: 159, id: 0 }
06:04:44 [DEBUG] (1) mcumgr_client::transfer: cbor: bf66696d616765739fbf64736c6f7400646861736858202a64aba718d8351965ce1b7e044d15f78b087673c2622d0f163d315cae7d15d16776657273696f6e70332e372e39392e373834303730303039ffffff
06:04:44 [INFO] response: {
  "images": [
    {
      "hash": [
        42,
        100,
        171,
        167,
        24,
        216,
        53,
        25,
        101,
        206,
        27,
        126,
        4,
        77,
        21,
        247,
        139,
        8,
        118,
        115,
        194,
        98,
        45,
        15,
        22,
        61,
        49,
        92,
        174,
        125,
        21,
        209
      ],
      "slot": 0,
      "version": "<IP_ADDRESS>4070009"
    }
  ]
}

Thanks, you are right, the panic should be safe, wouldn't happen with valid data anyway. You patch is right, the length of the decoded data needs to be added (so -2 of your patch reads the 2 more bytes). I guess it worked so far only by change, because the base 64 decoding failed before, because it didn't use general_purpose::NO_PAD, pretty tricky.


Implement Eq, Ord, PartialOrd, Hash for CxxString

Closes #737.
This is implemented by delegation to &[u8], as suggested.
I also implemented PartialOrd<str>  for CxxString and PartialOrd<CxxString> for str, since PartialEq<str> is already implemented for CxxString and vice versa. I added tests for comparisons between str and CxxString, just in case.

Oh by the way the standard library implements Hash for str as this. https://doc.rust-lang.org/src/core/hash/mod.rs.html#598-603. They add additional 0xff when hashing.
Do we follow the standard library? If we don't, then we should reconsider implementing PartialEq<str> for CxxStrins and some other traits.

If we don't, then we should reconsider implementing PartialEq<str> for CxxString and some other traits.

Why? I don't know of any relationship that PartialEq would impose on the hash implementation.

If we don't, then we should reconsider implementing PartialEq<str> for CxxString and some other traits.

Why? I don't know of any relationship that PartialEq would impose on the hash implementation.

I thought if two objects are equal, then they should have same hash? I may be mistaken though.

That is definitely not required.


Improve eth client reconnection management

Related to #153 and #151 as the general solution.
Ideally those should be merged first, since they are important for operator stability, and then here they should be refactored. Ideally this will either introduce a utility that helps with client management or a eth.Client wrapper that auto-reconnects, most likely the latter. Also, any other module that manages a client should also be reviewed for stability here, most importantly AvsSubscriber.
The idea here is to allow more reliable subscriptions, as well as the opportunity to handle errors (e.g. call errors will not be ignored) just without having to manage reconnections manually, as well as reducing client duplication.

Opening this earlier, even though not ready yet - this is the type of thing that benefits from extra eyes early on.

Added quite a bit of additional small changes.


[FLINK-17138][sql-client] Close catalogs when close the session

What is the purpose of the change
HiveCatalog may hold resources that need to be released after use. So we should close loaded catalogs when a session ends.
Brief change log

Iterate and close each catalog in LocalExecutor::closeSession.

Verifying this change
Existing tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? NA

@openinx @JingsongLi Do you think the change makes sense?


feat: Add JAVA_COMMAND_ARGS support

Adds support for a JAVA_COMMAND_ARGS config parameter so that additional options can be specified on the Java checkstyle linter via Java JRE properties.
Fixes #6281

Readiness checklist

In order to have this pull request merged, complete the following tasks.
Pull request author tasks

[X] I checked that all workflows return a success.
[X] I included all the needed documentation for this change.
[ ] I provided the necessary tests.
[x] I squashed all the commits into a single commit.
[x] I followed the
Conventional Commit v1.0.0 spec.
[ ] I wrote the necessary upgrade instructions in the
upgrade guide.
[ ] If this pull request is about and existing issue, I added the
Fix #ISSUE_NUMBER or Close #ISSUE_NUMBER text to the description of
the pull request.

Super-linter maintainer tasks

[ ] Label as breaking if this change breaks compatibility with the previous
released version.
[ ] Label as either: automation, bug, documentation, enhancement,
infrastructure.
[ ] Add the pull request to a milestone, eventually creating one, that matches
with the version that release-please proposes in the
preview-release-notes CI job.

Build/test workflow failing due to jsonpath-plus being vulnerable.
npm audit report:
#80 5.138 jsonpath-plus  <10.0.0
#80 5.138 Severity: critical
#80 5.138 JSONPath Plus Remote Code Execution (RCE) Vulnerability - https://github.com/advisories/GHSA-pppg-cpfq-h7wr


importing makeEdgeEnv interferes with @cloudflare/workers-types typings

Starting using edge-mock in one of the projects. Enjoying it much.
I came across and odd situation, which might be totally expected, but I felt like reporting it as potential issue nonetheless.
I was successfully using ModuleWorker typings from https://github.com/cloudflare/workers-types/blob/feat/module-worker/index.d.ts#L734 (installed @cloudflare/workers-types from git branch).
The moment I starting writing my test, and did this by adding import { makeEdgeEnv } from 'edge-mock' as first line to my initial test, this TS error started popping out.

I can silence the error by either of:
a) Commenting out import { makeEdgeEnv } from 'edge-mock'  (which I sure don't wan't to do);
b) Commenting out "tests/*.ts" from tsconfig.json's include values (which I'm not sure I want to do);
Either a) or b) brings back expected typings:

Maybe it's just b) - I am supposed to exclude tests from "include" in tsconfig.json. Maybe it's edge-mock not (yet) supporting Modules syntax. Or maybe anything else that my limited knowledge/expertise does not allow me to identify, that causes this TS error.
Kindly please feel free to instantly close this issue if that's an expected behaviour. Thanks!

Rewrote repo from scratch and the issue seems to be gone. Sorry for false alarm. Am closing the issue.

Pleased you sorted it.


(GH-2966) Fix stacktrace for conflicting module add and Puppetfile

Bolt no longer stacktraces when adding module when Puppetfile includes same module without a version.
!bug

Still need to add testing, but wanted feedback on what I've done so far

@beechtom I changed the message so the top and bottom match, (the top description wasn't very clear in the first place). Is that fine?

Hm, this still raises the error even if bolt module add puppetlabs/cron --force is provided, as the error recommends.


Add temporary NPV exception

Merging this to unblock Coherence-Signed. Will address any feedback after the fact.


i found the autocomplete component  have a bug in ie11

i add two autocomplete components in my page,
when the component init the first one works well when i move into the autocomplete input ,it show all the values.
but the second cann't list all the values,but when i input some words ,the filter works,and list filterd values.

Plunker?

Closing this issue as it does not follow the issue template. Please file a new issue that follows the template, which gives the team the information needed to investigate.


Use 0.4.1 of ThreadingUtilities to stop crashes when !isbits non-array args are used

Closes #4

I confirmed that it runs locally. I'll merge it and release once slow_cheap is tested to return the correct answer.

Out of interest, what is causing the failure here? I don't have the permissions to see the details

Out of interest, what is causing the failure here? I don't have the permissions to see the details

https://twitter.com/BayesWatch/status/1372674712757747715/photo/1
The only message I have from GitHub so far is support saying they'd ask the actions team about it, so I'm still totally in the dark about what is going on myself. Too much CI use is my best guess, but I thought they were supposed to warn you about it first.

Mind bumping the version number?
Then I'll merge and make a release.
(Which I also have to do manually, because no GitHub actions >_<)

Great, thanks!

No worries!


Change Backend port

How to run this backend app to a different port

Use uvicorn app.main:app --reload --port 8080 to start the backend on port 8080.
If you want the frontend to work with the backend running on a different port, update the VITE_BACKEND_API_URL in the relevant .env file, i.e. in .env.development set
VITE_BACKEND_API_URL=http://localhost:8080/api/v1/

where is the file start-reload.sh?? and  i want to change 'FROM tiangolo/uvicorn-gunicorn-fastapi:latest' to python 3.11 but its throw error start-reload no such file or directory

The latest version of tiangolo/uvicorn-gunicorn-fastapi docker image should be using python 3.11 as per https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker .
If you look at the docker file for tiangolo/uvicorn-gunicorn-fastapi:python3.11, you can see that it's built from tiangolo/uvicorn-gunicorn:python3.11 (without fast-api). You can find this tiangolo/uvicorn-gunicorn:python3.11 image here, and the start-reload.sh file here.
If you only want to change the Port used by tiangolo/uvicorn-gunicorn-fastapi, set the PORT env variable on the service running it.


Issues 220, 174: Fix index error for null messages and add icmp message specifications

Fixes #220
Closes #174

There is still a verification test failing but i am not sure why. I cannot run the SPARK tests locally.

There is still a verification test failing but i am not sure why. I cannot run the SPARK tests locally.

That failing check in the CI is caused by a problem of GitHub.

Rebased onto current develop.


7.0.2 not working at all

Getting TypeError: i18next is not a function
gulp version: 4.0.0
node version: 10.15.3
Happens only when installed with yarn.

@Blysq Hm... interesting. I don't have experience using yarn. Any clues what might be the cause?
Is the default export not being exported properly?

@perrin4869 yarn produces no errors.
I tried to install it with npm and it produced the same error. Maybe it's not a problem with yarn.
Yarn produces no errors when installing it.
I can see the difference in files between version 7.0.1 tho.
dist - doesn't exist
lib - exactly the same
Version 7.0.1 installs and works fine.
The difference in package.json between version 7.0.1 and 7.0.2 is:
{
  "name": "gulp-i18next-conv",
  "version": "7.0.2",
  "description": "Gulp plugin to convert gettext .po or .mo files to i18next compatible JSON",
  "main": "lib/index.js"
   ...
}

vs
{
  "name": "gulp-i18next-conv",
  "version": "7.0.1",
  "description": "Gulp plugin to convert gettext .po or .mo files to i18next compatible JSON",
  "main": "dist/index.js"
  ...
}

@Blysq please check if 8.0.1 fixes your issue!! Please reopen if it is still there


Strip trailing whitespace on parameter text

Not sure if I'm doing something wrong, but IRC capabilities seems to break for me - when servers ACK, the response has trailing whitespace:-
yahk.services.irc: DEBUG    IRC/irc.vntx.net: :kornbluth.freenode.net CAP yahk ACK :sasl
This change fixes this by stripping whitespace off the trailing text and it now works for me. Feel free to reject if I'm doing something stupid!
Andy.

Stripping whitespace from the trailing parameters would modify incoming messages from the server, including trailing whitespace in a PRIVMSG command, which is undesirable. I recommend opening an issue if you are still having issues with this.


use the channel lib

response this issue to https://github.com/divnix/digga/pull/469

We need a real channel to judge whether an overlay or isFunction.  https://github.com/gytis-ivaskevicius/flake-utils-plus/pull/120

https://github.com/gytis-ivaskevicius/flake-utils-plus/blob/master/lib/exportOverlays.nix#L80.

There is a problem with the way to judge an overlay function.

tested by:  https://github.com/divnix/digga/pull/483/files#diff-15b26e32ee962cc4fbda5eea87245f72ed0b3710329e25e7a5c62a897610ce35R81


Updated required scope

This does not look right. The client scope relates to events and has apparently nothing to do with this method. check here

I know it doesn't seem right, but I tried it and it works. First attempt
without that scope gave me an error and said I needed that scope. I went
through the OAuth dance and requested the client scope, and it worked. Not
sure if there are others but client definitely works.
Neil
On Thu, 21 Sep 2017 at 12:29, Erik Kalkoken<EMAIL_ADDRESS>wrote:

This does not look right. The client scope relates to events and has
apparently nothing to do with this method. check here
https://api.slack.com/scopes/client
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ErikKalkoken/slackApiDoc/pull/24#issuecomment-331129599,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvzzwNTj5pRWtNmwnTKDtJEHUlrH8zqks5skkiygaJpZM4Pe-Si
.

ok, I will add it. thanks for your contribution.

np. I'm guessing if or when this becomes an official api then the required
scope will change. They've probably just done the bare minimum to get
something out there.
Neil
On Thu, 21 Sep 2017 at 16:08, Erik Kalkoken<EMAIL_ADDRESS>wrote:

ok, I will add it. thanks for your contribution.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ErikKalkoken/slackApiDoc/pull/24#issuecomment-331186387,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvzz5cdHDzZOh9Ij7wGer5nKBWT3-bCks5sknvbgaJpZM4Pe-Si
.


Timer Page

PTI 009
https://aiaio.invisionapp.com/share/424VSP4YP#/screens/114871385
Components:

Timer
Activities
Challenges
Objectives

https://invis.io/2U528PVBA
https://invis.io/ZT528QIFQ
https://invis.io/NP528QRWR

To summarize from today:
App closes:

Phone dies / app is fully exited -- inprogress studio becomes fully disabled (for MVP). User will need to copy over and start a new one
App goes out of focus but still runs -- timer continues with a push notification when the activity timer is up

When Studio is done:

Everything is read-only EXCEPT presenter notes
Presenter notes are editable by going back to each activity to update

When going back to activities during the studio:

Back button to have a "List" label to make it clear you are always going back to list view
Begin Studio button changes to timer indicator

Let me know of any misalignment @Misokate @kperusko @sshaar08


support for macOS armv8.5-a (MBP M1 Pro/Max)

With python 3.9.9 for MBP armv8.5-a, this commit could allow successfully installation via "pip install ." in the directory.

It seems like this will break compatibility with other systems.

Make it a seperate branch called arm？

This can be an option. Another option is to make a check in the script for armv.

closed as #363 is merged to develop. Please let me know if that is not ok.


feat(hepa-uv): Ret 1406 add hepa tachometer

Overview
The HEPA fan has a frequency generator that serves as a tachometer allowing us to read the rpm and determine if the fan is spinning. This PR adds the plumbing and exposes the tachometer rpm so the HEPA task can use it, it correlates with the Opentrons/opentrons#14754 pull request.
Closes: PLAT-17
Change log

Adds the timer for the HEPA_FG tachometer and puts it in input capture mode
Calculate the rpm based on the tachometer period which we get every 4 rising pulses.
Exposes the rpm to the HEPA task so it can be used in the future

Test Plan

[ ] Make sure we get the correct RPM when the Hepa fan is ON
[ ] Make sure the RPM is 0 when the Hepa fan is OFF

Review requests
Risk Assessment
Low, unreleased

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

Project coverage is 83.05%. Comparing base (7501753) to head (10c00e3).

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #764   +/-   ##
=======================================
  Coverage   83.05%   83.05%
=======================================
  Files         103      103
  Lines        4102     4102
=======================================
  Hits         3407     3407
  Misses        695      695


Sources?

Not sure if this is an issue but should the Source folder be renamed Sources? What's the best practice
Maybe @neonichu knows

Hmm, you're right, SwiftPM uses the convention of Sources/. For some reason I thought it used Source/. Not that we support SwiftPM right now (since it's still under active development).

🎉


Level 2 Data Rocks

Level 2 products appear to rock back and forth as the frames animate.
Currently, the level 2 rendering takes the start angle, and assumes 0.5 degree or 1 degree radials.  However, the angle can vary between radials and scans, so this must be calculated every frame.
The solution will likely be similar to that in 9c44257, but I expect all frames must be recalculated, instead of non-standard ones.

https://github.com/dpaulat/supercell-wx/assets/2886605/02758a2e-79e4-42ec-9454-555ae0fc0a20


Chrome debugger for vs-code is deprecated

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

Description
Chrome debugger for vs-code is deprecated now, so we should move to the JavaScript Debugger
Possible Solution

Change vs-code tasks for compatibility with JavaScript Debugger

how ?

According to the doc, changing the type of launch target in launch.json will be enough. Other configs should work fine as is.

Can I solve this issue?

Taking help from the below link of changing vs-code tasks for compatibility with Javascript Debugger.

So changing the launch taget can solve the problem.
If you go back to the File Explorer view (Ctrl+Shift+E), you'll see that VS Code has created a .vscode folder and added the launch.json file to your workspace.
Variable substitution
{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "program": "${workspaceFolder}/app.js",
  "cwd": "${workspaceFolder}",
  "args": ["${env:USERNAME}"]
}

VS Code makes commonly used paths and other values available as variables and supports variable substitution inside strings in launch.json. This means that you do not have to use absolute paths in debug configurations. For example, ${workspaceFolder} gives the root path of a workspace folder, ${file} the file open in the active editor, and ${env:Name} the environment variable 'Name'. You can see a full list of predefined variables in the Variables Reference or by invoking IntelliSense inside the launch.json string attributes.
Platform Specific Property
Launch.json supports defining values (for example, arguments to be passed to the program) that depend on the operating system where the debugger is running. To do so, put a platform-specific literal into the launch.json file and specify the corresponding properties inside that literal.
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/node_modules/gulp/bin/gulpfile.js",
      "args": ["myFolder/path/app.js"],
      "windows": {
        "args": ["myFolder\\path\\app.js"]
      }
    }
  ]
}

This may work. For further you can refer to the doc.


npm install is not working

C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete>npm install

><EMAIL_ADDRESS>install C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers
> node build.js || nodejs build.js

C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild --release )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild --release )
Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
  fibers.cc
  coroutine.cc
  win_delay_load_hook.cc
C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers\src\fibers.cc(899,1): erro
r C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Dipak\Desktop\material-components-web-co
delabs\mdc-101\complete\node_modules\fibers\build\fibers.vcxproj]
C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers\src\fibers.cc(903,1): erro
r C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Dipak\Desktop\material-components-web-co
delabs\mdc-101\complete\node_modules\fibers\build\fibers.vcxproj]
C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers\src\fibers.cc(909,1): erro
r C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Dipak\Desktop\material-components-web-co
delabs\mdc-101\complete\node_modules\fibers\build\fibers.vcxproj]
C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers\src\fibers.cc(927,5): erro
r C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\Dipak\Desktop\material-components-web-co
delabs\mdc-101\complete\node_modules\fibers\build\fibers.vcxproj]
C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers\src\coroutine.cc(153,2): w
arning C4552: '!': result of expression not used [C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\compl
ete\node_modules\fibers\build\fibers.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:321:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Windows_NT 10.0.18363
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--release"
gyp ERR! cwd C:\Users\Dipak\Desktop\material-components-web-codelabs\mdc-101\complete\node_modules\fibers
gyp ERR! node -v v13.6.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++ build-essential`
RHEL users please run: `yum install gcc-c++` and `yum groupinstall 'Development Tools'`
Alpine users please run: `sudo apk add python make g++`
'nodejs' is not recognized as an internal or external command,
operable program or batch file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: `node build.js || nodejs build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\Dipak\AppData\Roaming\npm-cache\_logs\2020-03-23T09_55_09_555Z-debug.log

Can you downgrade your node version to v10 for this project and try again? Please use nvm to switch node versions.

Can you downgrade your node version to v10 for this project and try again? Please use nvm to switch node versions.

This worked for me! :)

Can you downgrade your node version to v10 for this project and try again? Please use nvm to switch node versions.

I can also confirm that it works. I downgraded to version v10.23.0 using nvm. Thanks!


Make Pallet Bounties and Pallet Tips Instantible

The Treasury Pallet is currently instantiable, but second instances of the pallet cannot have bounties or tips because these sub-pallets are not instantible.
We should make these other pallets instantible, and then create some tests which ensures that multiple instances of treasury with these extensions work.

Hi @shawntabrizi i'd like to be assigned to this :)

@Doordashcon its yours

@koushiro this is being worked on by @Doordashcon
I will merge from @Doordashcon assuming he finishes

should be completed


Relationships between Tenants and System

Hello,
I am building an exam system for companies. Each company(tenant) has employees who will do the exams. For security purposes, the exams will be on System database. If a company has paid for the exam, then its employees can do the exam. How do I create a relationship between the Tenant model and the system model for this scenario? Or if there is any other solution to this issue.
Thanks in advance.

can you check my comment on here and see if that'll help.

Thanks @bkintanar!
Can u please elaborate more on that example or expand it to my use case as I have not understood it yet!

This issue should help you figure it out #426 .

Indeed it should, thanks @f0reclone


[infra] Use latest kaniko executor image for cloudbuild

The issue mentioned in the comment with the version pinning https://github.com/GoogleContainerTools/kaniko/issues/1786 has been fixed.
Our production build started failing though and seems kaniko related. The error shown in GCP is the same as https://github.com/GoogleContainerTools/kaniko/issues/1604
Not sure why we just started seeing this now, but trying to see if using the latest version fixes this.

If the preview deploy works does this verify that the change worked? Thank you!

If the preview deploy works does this verify that the change worked? Thank you!

Yes the failing build step is practically identical for prod build and preview build so as it looks like it made it past the build step, I have confidence this should work for prod build as well. No risk if it somehow fails after merging as that's no worse than where we're currently at and we'll just be serving the site from an older version.

Prod build and deploy was successful with this and I can see the typo fix of the previously merged PR (with the failing build) applied in the live site.


[ART-1850] Disable RHCOS 4.1

Related ticket: ART-1850

I'd prefer to rip out 4.1 in one commit https://github.com/openshift/aos-cd-jobs/pull/2243
So that we don't gradually remove bits related to it and have to remember them all later if we need 4.1 back.

Agree! Closed in favor of https://github.com/openshift/aos-cd-jobs/pull/2243


Install of grpcio with Python throws "Unknown target CPU" message at s390x platform

System Information
. OS Platform and Distribution: s390x SuSE SLES 12 SP2
. grpcio package installed via pip3
. Python version: 2.7 and 3.4
Error Message
When doing a build / install of the grpcio package under the IBM system z platform (architecture s390x) on Linux SuSE SLES 12, I get the following error message at the make step:
    In file included from third_party/boringssl/include/openssl/rsa.h:60:0,
                     from ./src/core/lib/security/credentials/jwt/json_token.h:23,
                     from ./src/core/lib/security/credentials/jwt/jwt_credentials.h:23,
                     from src/core/lib/security/credentials/google_default/google_default_credentials.c:31:
    third_party/boringssl/include/openssl/base.h:106:2: error: #error "Unknown target CPU"
     #error "Unknown target CPU"
      ^

Is there a solution available through the OpenSSL package? Any hint how fix this error is welcome.

At this moment, s390x is an unsupported platform. However, this issue seems to be from the setup.py pulling in a boringssl dependency. Assuming that there is a system openssl in place, you might be able to patch setup.py to use that.
It would be nice to actually have setup.py support the option of using the system openssl if preferred. The Makefile in core already supports this (ie, it tries to use the system openssl if available), but in this case, we would want this to be an option.
Hope this helps!

That one's going to be a bummer. While the Makefile is able to detect if you have a system OpenSSL that works properly and will try to use it, the python build system isn't going for this and will always try to use the embedded SSL provided, as @hsaliak mentioned.


Revamp R memory model

This PR contains two changes:

Use of Rcpp storage class for the SEXP handling
Use of Rcpp's r_cast<...>(...) to case e.g. a numeric vector to integer vector. Note that this will emit a warning if the warning is not suppressed, because I think this can be quite expensive.

Unfortunately, Rcpp chose the rather generic update() name for the method that is called on the CRTP base class after the SEXP has changed. But I think this does not (yet) collide with any method that we have in xtensor.
@DavisVaughan I hope this fixes the memory problems you were seeing! :)

do you need to add the new rcpp_extensions.hpp to the cmake? https://github.com/QuantStack/xtensor-r/blob/159905b547568b498bd9d165fc19fb016a2a7c02/CMakeLists.txt#L42

yeah! good catch. These changes should help to bring xtensor-r to the next level ... lot's of small improvements all over the place.
And when taking a rarray / rtensor as an argument by reference, we're not doing a copy (anymore) so you an operate right on the buffer! Should be a nice speed up for many cases -- the previous behavior was a bug but solving it involved diving a little deeper into Rcpp. Your benchmarks helped to spot these issues!
Btw. any chance you know how to force the R compiler to put -O3 at the end? I can add CPPFLAGS (or CXXFLAGS) in the ~/.R/Makevars file but it only puts the flag at the beginning of the command ... so it compiles with -O2 for me (and only uses SSE, not AVX) so for me, doing some simple operation is currently slightly slower than pure R. We need to close that gap, hehe.

when taking a rarray / rtensor as an argument by reference, we're not doing a copy (anymore)

This is good! I'm pretty sure I was noticing this happening when doing some memory tests. The profmem package helped me there.
Regarding putting -O3 at the end. This actually took me a bit to figure out. So in rray I have some package specific flags set in src/Makevars. (I have them slightly wrong currently):
PKG_CPPFLAGS = -I../inst/include
CXX_STD = CXX14

Generally, I think I would then add this to ~/.R/Makevars.
CXXFLAGS = -O3

When I install the package, -O3 actually wasnt showing up for me at all. Finally I found a comment in this stackoverflow answer suggesting that because I am setting CXX_STD = CXX14, I need to use:
CXX14FLAGS = -O3

After doing this and restarting R, I only see -O3 when I install the package.
I don't know what you were doing, but that seemed to fix it for me.

@DavisVaughan just to let you know: your tip worked!
With the new memory stuff + -O3 -march=native & xsimd, a addition is (almost) as fast as the R version. More complicated operations will have much better speedups, of course!

@wolfv happy to hear it! looking forward to getting back on this a bit later in the week and running some speed/memory benchmarks and also to finish up that other PR.

yeah – unfortunately the other PR will need a rebase now ... hope that's alright.

not a problem!


Bug - Pi Pico

jasper works 100% read and write
falcon get a error saying  PicoFlasher firmware is too old so cant read it .

if i keep trying get this
System.TimeoutException: The operation has timed out.
at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count)
at System.IO.Ports.SerialPort.Read(Byte[] buffer, Int32 offset, Int32 count)
at JRunner.PicoFlasher.RecvUInt32(SerialPort serial)
at JRunner.PicoFlasher.<>c__DisplayClass20_0.b__0()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

Download the new version of the PicoFlasher firmware (PicoFlasher.uf2)

Some of the bugs have been fixed by balika and will be available in the new version. I will try to reproduce this with the latest firmware.
J

Can't reproduce on the latest version, so assuming its one of the things balika already fixed.
Try building from next and if it still happens, re-open the issue.
Kind Regards,
Josh


Set CT related fields on URLRequestContextStorage

Follow up fix for #249
Looks like there were a few fields only being set on the net::HttpNetworkSession::Params and not also set on the net::URLRequestContextStorage object that would cause a crash when missing there.
/cc @deepak1556 @sleevi
Refs https://github.com/electron/electron/issues/7389

Alternatively https://cs.chromium.org/chromium/src/net/url_request/url_request_context_builder.h?rcl=0&l=114 may be sufficient. Even if you can't switch wholly to URLRequestContextBuilder, that gives you the 'safe' path for ensuring a URLRequestContext and the Params are kept in sync

This should only cause a crash if you're using the same URLRequestContextStorage between two URLRequestContexts, right?
I don't know the Electron security model, but in Chrome, I flag any such situations as bugs, because they are a routine source of issues. Thinks like ambient auth decisions for 'background' requests leaking and affecting 'foreground' requests. However, that may be totally acceptable for your use case. Just wanted to highlight it (this is why Chrome has a 'system' URL request context and a 'profile' URL request context, and why WebRTC & media use distinct HttpNetworkSessions). That said, it can also cause surprises (e.g. proxies work on main requests, but not for WebRTC). Just wanting to highlight :)

Alternatively https://cs.chromium.org/chromium/src/net/url_request/url_request_context_builder.h?rcl=0&l=114 may be sufficient.

Great suggestion, switched it to use that instead.

This should only cause a crash if you're using the same URLRequestContextStorage between two URLRequestContexts, right?

To be honest, I'm not really sure on this one.

This should only cause a crash if you're using the same URLRequestContextStorage between two URLRequestContexts, right?

@sleevi Yeah but in brightray we only allow every BrowserContext to have a single URLRequestContext associated with it (media in the same context shares it), we use this to create session concept similar to profiles of chrome.
@kevinsawicki the change looks good to me.

👍


Lazy property hydration of geometric information by using proxy functionality

Context
For certain (Geographic) Addresses, we refer to a Geography, which can be a Municipality, City, Borough, etc. Such a Geography typically has a name, a parent Geography, optionally some child Geograpies and possibly a collection of MultiPolygons.
MultiPoloygons are used since a Municipality may have multiple Polygons, for instance when lakes / islands are involved.
The current approach for the Geometric DBAL types is to process all geographic information and convert it to proper PHP values. However, for our Geographic Entities most of the times the Geographic information is not used. During some profiling with Blackfire.io I noticed that the object hydration takes up significant processing time. I already posted this question before on the Doctrine Users group, and a suggested approach is to store the Geographic information as simple strings, and only convert them to MultiPolygons when actually required.
However, by changing the column datatype of the database table, geographic-functionality provided by the database itself becomes useless.
Question
Do you guys think it is possible/reasonable to use some kind of proxy mechanism to have the DBAL type only convert to PHP values when the geographic data of an Entity is being accessed? I know @ocramius documented some of his work on proxies and at first glance the Ghost Object seems a viable approach. That way the actually parsing of the information retrieved from the database (triggered here, can be postponed until it is actually required.
What do you guys think, is this something that might just work, or am I thinking in the wrong direction...

This will be possible in 3.x.
Please see doctrine/doctrine2#1241
Also, it is not a DBAL concern IMO.
On Dec 7, 2015 16:19, "Menno Holtkamp"<EMAIL_ADDRESS>wrote:

Context
For certain (Geographic) Addresses, we refer to a Geography, which can be
a Municipality, City, Borough, etc. Such a Geography typically has a name,
a parent Geography, optionally some child Geograpies and possibly a
collection of MultiPolygons.
MultiPoloygons are used since a Municipality may have multiple Polygons,
for instance when lakes / islands are involved.
The current approach for the Geometric DBAL types is to process all
geographic information and convert it to proper PHP values
https://github.com/creof/doctrine2-spatial/blob/b729248fab59cf4c23a5ac704650dcedd04a16ea/lib/CrEOF/Spatial/DBAL/Types/AbstractGeometryType.php#L121.
However, for our Geographic Entities most of the times the Geographic
information is not used. During some profiling with Blackfire.io
https://blackfire.io/ I noticed that the object hydration takes up
significant processing time. I already posted this question before on the
Doctrine Users group
https://groups.google.com/forum/#!searchin/doctrine-user/holtkamp/doctrine-user/wrpXak1PLLU/I-rAnsjIx3wJ,
and a suggested approach is to store the Geographic information as simple
strings, and only convert them to MultiPolygons when actually required.
However, by changing the column datatype of the database table,
geographic-functionality provided by the database itself becomes useless.
Question
Do you guys think it is possible/reasonable to use some kind of proxy
mechanism to have the DBAL type only convert to PHP values when the
geographic data of an Entity is being accessed? I know @ocramius
https://github.com/ocramius documented some of his work on proxies
http://ocramius.github.io/ProxyManager/ and at first glance the Ghost
Object
https://ocramius.github.io/ProxyManager/docs/lazy-loading-ghost-object.html
seems a viable approach.
What do you guys think, is this something that might just work, or am I
thinking in the wrong direction...
—
Reply to this email directly or view it on GitHub
https://github.com/creof/doctrine2-spatial/issues/121.

We are also planning on implementing a default/geometry-geography output mechanism so data is returned in geojson, WKB, or WKT by choice rather than WKT by default. This could eliminate or defer the WKT processing on each geography/geometry fetched by the hydration.
No date has been determined for this feature

@holtkamp as things are currently using partial objects might avoid this.
Proxy objects might be useful in other situations too. We'll keep this in mind when the features @ddproxy are implemented.

@djlambert, thanks for the pointer to partial objects. For others arriving at this issue, this is what worked for me:
$query = $queryBuilder->select('partial g.{id, name}')
    ->from('Domain\Entity\Geography', 'g')
	->getQuery();
$geographies = $query->getArrayResult();
foreach($geographies as $geography){
	echo $geography['id'] . ': ' . $geography['name'];
}

Warning
Note that $query->getArrayResult() needs to be used. When using $query->getResult(), an SQL statement is exectuted only fetching the id and name properties, but Geography objects are returned of which the properties seem to be lazily hydrated "when needed", eventually not really solving the problem.
Outdated documentation?
The documentation suggests an exception would be thrown, which was not the case... @Ocramius, this seems outdated documentation from 2010? Should I file an issue / PR that removes the part about the exception?

@holtkamp we also support SELECT new Foo(a.bar, a.baz) FROM MyEntity a now, so yes, the docs may well be outdated. A reference to tests for this must be found before removing docs snippets.

UPDATE, prevent unused (geographical) information to be hydrated, I used a separate Geometry Entity which has a lazy-loaded one-to-one association with the Geography Entity itself. Not the most elegant approach but it does the job....


The startup query SELECT @@socket should be ignored when connecting to a remote database

Bug description
I have a server that is using the TDSQL for MySQL distribution database provided by Tencent Cloud.
The problem is Prisma Client will get a error when startup:
2021-03-23T17:11:16.362175968+08:00 prisma:info Starting a mysql pool with 91 connections.
2021-03-23T17:11:16.373958504+08:00 prisma:info Fetched a connection from the pool
2021-03-23T17:11:16.373999662+08:00 prisma:info Encountered error during initialization:
2021-03-23T17:11:16.38391327+08:00 prisma:error  in    0: user_facing_errors::Error::new_non_panic_with_current_backtrace
2021-03-23T17:11:16.383934881+08:00    1: query_engine::error::<impl core::convert::From<query_engine::error::PrismaError> for user_facing_errors::Error>::from
2021-03-23T17:11:16.383941043+08:00    2: query_engine::error::PrismaError::render_as_json
2021-03-23T17:11:16.383946603+08:00    3: query_engine::main::main::{{closure}}::{{closure}}
2021-03-23T17:11:16.383954968+08:00    4: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
2021-03-23T17:11:16.383959586+08:00    5: std::thread::local::LocalKey<T>::with
2021-03-23T17:11:16.383963003+08:00    6: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
2021-03-23T17:11:16.383966609+08:00    7: async_io::driver::block_on
2021-03-23T17:11:16.384001264+08:00    8: async_global_executor::reactor::block_on
2021-03-23T17:11:16.384038635+08:00    9: std::thread::local::LocalKey<T>::with
2021-03-23T17:11:16.384044606+08:00   10: async_std::task::builder::Builder::blocking
2021-03-23T17:11:16.384048593+08:00   11: query_engine::main
2021-03-23T17:11:16.384078069+08:00   12: std::sys_common::backtrace::__rust_begin_short_backtrace
2021-03-23T17:11:16.384082347+08:00   13: std::rt::lang_start::{{closure}}
2021-03-23T17:11:16.384126229+08:00   14: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
2021-03-23T17:11:16.38413206+08:00              at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/ops/function.rs:259:13
2021-03-23T17:11:16.384136979+08:00       std::panicking::try::do_call
2021-03-23T17:11:16.384150434+08:00              at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:379:40
2021-03-23T17:11:16.384155794+08:00       std::panicking::try
2021-03-23T17:11:16.384176193+08:00              at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:343:19
2021-03-23T17:11:16.38418046+08:00       std::panic::catch_unwind
2021-03-23T17:11:16.384183135+08:00              at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panic.rs:396:14
2021-03-23T17:11:16.384185549+08:00       std::rt::lang_start_internal
2021-03-23T17:11:16.384193123+08:00              at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/rt.rs:51:25
2021-03-23T17:11:16.384200237+08:00   15: main
2021-03-23T17:11:16.384203643+08:00 Error querying the database: Server error: `ERROR HY000 (1193): Unknown system variable 'socket''

So I had a check of the Prisma client startup queries, it's executed:
Connect      |<EMAIL_ADDRESS>on mydb using TCP/IP
Query        | SELECT @@socket
Query        | SELECT @@max_allowed_packet
Query        | SELECT @@wait_timeout

Prisma will always select the @@socket variable, it's not necessary for the remote database in my opinion.
How to reproduce

Deploy a server on Tencent Cloud with a TDSQL database, with Prisma Client.

Expected behavior

Prisma startup will not execute the SELECT @@socket, because TDSQL is not defined.
The server will startup correctly.

Environment & setup

OS: CentOS 8
Database: TDSQL with MySQL
Node.js version: 14.15.4
Prisma version:

prisma               : 2.19.0
@prisma/client       : 2.19.0
Current platform     : rhel-openssl-1.1.x
Query Engine         : query-engine c1455d0b443d66b0d9db9bcb1bb9ee0d5bbc511d (at<EMAIL_ADDRESS>Migration Engine     : migration-engine-cli c1455d0b443d66b0d9db9bcb1bb9ee0d5bbc511d (at<EMAIL_ADDRESS>Introspection Engine : introspection-core c1455d0b443d66b0d9db9bcb1bb9ee0d5bbc511d (at<EMAIL_ADDRESS>Format Binary        : prisma-fmt c1455d0b443d66b0d9db9bcb1bb9ee0d5bbc511d (at<EMAIL_ADDRESS>Studio               : 0.358.0

After investigate deeper I the query is triggered by mysql_async library: https://github.com/blackbeam/mysql_async/blob/master/src/conn/mod.rs#L681
but how to disable it?

We don't pass every config option to mysql async. I will mark this as a bug for now as we can refactor that part of code.
mysql_async is wrapped by quaint: https://github.com/prisma/quaint

We should also add a e2e test to cover this: https://github.com/prisma/e2e-tests/issues/1537

This sounds like an issue with mysql-async, do you mind opening an issue there and linking to this issue? If it turns out to be an issue in quaint we can investigate.

Any update here?  We have the exactly same problem, is there any workaround?
 prisma:engine {
  prisma:engine   is_panic: false,
  prisma:engine   message: "Error querying the database: Server error: `ERROR HY000 (1193): Unknown system variable 'socket''",
  prisma:engine   backtrace: '   0: user_facing_errors::Error::new_non_panic_with_current_backtrace\n' +
  prisma:engine     '   1: query_engine::error::<impl core::convert::From<query_engine::error::PrismaError> for user_facing_errors::Error>::from\n' +
  prisma:engine     '   2: query_engine::error::PrismaError::render_as_json\n' +
  prisma:engine     '   3: query_engine::main::main::{{closure}}::{{closure}}\n' +
  prisma:engine     '   4: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll\n' +
  prisma:engine     '   5: std::thread::local::LocalKey<T>::with\n' +
  prisma:engine     '   6: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll\n' +
  prisma:engine     '   7: async_io::driver::block_on\n' +
  prisma:engine     '   8: async_global_executor::reactor::block_on\n' +
  prisma:engine     '   9: std::thread::local::LocalKey<T>::with\n' +
  prisma:engine     '  10: async_std::task::builder::Builder::blocking\n' +
  prisma:engine     '  11: query_engine::main\n' +
  prisma:engine     '  12: std::sys_common::backtrace::__rust_begin_short_backtrace\n' +
  prisma:engine     '  13: std::rt::lang_start::{{closure}}\n' +
  prisma:engine     '  14: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once\n' +
  prisma:engine     '             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/ops/function.rs:259:13\n' +
  prisma:engine     '      std::panicking::try::do_call\n' +
  prisma:engine     '             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:379:40\n' +
  prisma:engine     '      std::panicking::try\n' +
  prisma:engine     '             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:343:19\n' +
  prisma:engine     '      std::panic::catch_unwind\n' +
  prisma:engine     '             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panic.rs:431:14\n' +
  prisma:engine     '      std::rt::lang_start_internal\n' +
  prisma:engine     '             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/rt.rs:51:25\n' +
  prisma:engine     '  15: main\n' +
  prisma:engine     '  16: __libc_start_main\n' +
  prisma:engine     '  17: <unknown>\n'
  prisma:engine } +0ms
  prisma:client Error: Error querying the database: Server error: `ERROR HY000 (1193): Unknown system variable 'socket''

hi gays，I ran into the same problem！
How to deal with it?

I ran into the same problem too!

This problem also  bothered me a lot.

Are you all on Tencent Cloud @wxqqh @charlyzeng @liuwt12138 as well?
Next step for us is to get a reproduction via https://github.com/prisma/e2e-tests/issues/1537 so we can experience the problem ourselves. Then we can investigate deeper if what @xuqingkuang identified above is really the root cause, and how we can work around that.
(If one of you can supply us a (empty!) testing database with this behavior, we would be very happy. You can contact me via<EMAIL_ADDRESS>to send a connection string)

Are you all on Tencent Cloud @wxqqh @charlyzeng @liuwt12138 as well?
Next step for us is to get a reproduction via prisma/e2e-tests#1537 so we can experience the problem ourselves. Then we can investigate deeper if what @xuqingkuang identified above is really the root cause, and how we can work around that.
(If one of you can supply us a (empty!) testing database with this behavior, we would be very happy. You can contact me via<EMAIL_ADDRESS>to send a connection string)

I'm trying to provide the empty database, the problem is as a cloud database the port can't be opened on the internet.
The connection of the database is only available for a CVM in the same VPC private network range.

Are you all on Tencent Cloud @wxqqh @charlyzeng @liuwt12138 as well?
Next step for us is to get a reproduction via prisma/e2e-tests#1537 so we can experience the problem ourselves. Then we can investigate deeper if what @xuqingkuang identified above is really the root cause, and how we can work around that.
(If one of you can supply us a (empty!) testing database with this behavior, we would be very happy. You can contact me via<EMAIL_ADDRESS>to send a connection string)

Thank you for your reply, I had sent the CVM that be able to access the TD-SQL database information with my mail<EMAIL_ADDRESS>please have a check.

Are you all on Tencent Cloud @wxqqh @charlyzeng @liuwt12138 as well?
Next step for us is to get a reproduction via prisma/e2e-tests#1537 so we can experience the problem ourselves. Then we can investigate deeper if what @xuqingkuang identified above is really the root cause, and how we can work around that.
(If one of you can supply us a (empty!) testing database with this behavior, we would be very happy. You can contact me via<EMAIL_ADDRESS>to send a connection string)

Hi, Jan.
The server I provided seems you didn't login yet, do you have any progress?

Sorry, this is not our highest priority right now. But I assigned it explicitly to @pantharshit00 now to take a look at the server you provided (I got the email, thanks!) and have a look what is going on here.

OK, I hope @pantharshit00 will check the problem as soon as possible because I can't afford the CVM for a long time. :-)

Thanks for the details @xuqingkuang. I was able to reproduce in that VM.
@pimeys Will it be possible to expose prefer_socket in connection uri so that user can control this?
I will also ask people in the team for setting up a tencent cloud account which we can use in end to end tests.

Thanks for the details @xuqingkuang. I was able to reproduce in that VM.
@pimeys Will it be possible to expose prefer_socket in connection uri so that user can control this?
I will also ask people in the team for setting up a tencent cloud account which we can use in end to end tests.

I am feeling SELECT @@socket is a side effect, just make sure the arguments pass through to mysql_async correctly, and SELECT @@socket is not executed when Prisma connect will be OK.
So the problem isn't to use end to end tests to make Prisma working on TD-SQL, but the pass argument issue and the issue is able to be checked by the unit test of generating the URL to mysql_async

Here is the piece of code which is handling the parameters: https://github.com/prisma/quaint/blob/336f6d2f524740dd7dce956a37ca859cb10977a6/src/connector/mysql.rs#L155
It doesn't handle prefer_socket so we will add that. Unit test will be added to this file itself.
Regarding e2e, we have this huge repo which tests every dev release of Prisma with almost every cloud platform/service provide/db we can think of and we will like to ensure Prisma is not broken in any of those: https://github.com/prisma/e2e-tests/

mysql://user:password@host:port/db?prefer_socket=false is not effective
error: Unknown system variable 'socket' is already exists

me too

when i use TDSQL, this problem is already exists
error: Unknown system variable 'socket' is already exists

Workaround: https://github.com/prisma/prisma/issues/24010#issuecomment-2436928484


Use ProgressLogging.jl instead of ProgressMeter?

I wonder if the progress bar (very nice feature BTW!) could be made backend-agnostic and better integrated in VSCode by using the ProgressLogging.jl interface (there exist eg frontends for VSCode (in the Julia extension) and the REPL (TerminalLoggers.jl)).

I went with https://github.com/timholy/ProgressMeter.jl/ mostly because it appeared to be more active as a package. I'm unsure on the status of https://github.com/JuliaLogging/ProgressLogging.jl but it didn't seem as active. It's all an implementation detail so feel free to switch them out and we'll see what the different, if any there is.

I guess the ProgressLogging repo is not very active because the API is quite stable. It's used a lot though since its the progress logging backend in the VSCode extension (and therefore also most of the progress logging in Pumas was switched to ProgressLogging.jl a while ago).

I think this would be a good change since it would make the progress visualization similar to other progress meters that we use in Pumas.


wmma: refactor tensor core to be generic

To test HIP TC, run PYTHONPATH="." HIP=1 HALF=1 N=4096 DEBUG=3 python3 ./extra/gemm/simple_matmul.py.

"remove unnecessary barrier" this made it faster

Really before we can merge this, we need better tests. I'll note the tensor cores should work as locals regardless of the platform (they currently do).

Is there a way to retain all current behavior but just parameterize the cores themselves? We also need testing around these codepaths, maybe merge that first?

If you want to exclude dataclass fields from the built-in repr, you can use field(repr=False)
https://stackoverflow.com/questions/68722516/exclude-some-attributes-from-str-representation-of-a-dataclass

Is there a way to retain all current behavior but just parameterize the cores themselves (current master is terrible with the two large ifs)? We also need testing around these codepaths, maybe merge that first?

I've rebased to master and moved the new shared memory handling to a separate PR that depends on this one (#1921).  I've also added a new test that checks that the tensor cores are triggered when appropriate and also generate correct answers.
Unfortunately, I can't think of a way to maintain the current TC=2 behavior and have the HIP tensor cores pass the new test with just local dims.  If I could, I wouldn't have had to implement the thread segments/aliases to explicitly map the WMMA thread indices and upcasted WMMA elements.

Moving this to draft mode until the requisite tests in #1925 are merged.

Does this fix https://github.com/tinygrad/tinygrad/issues/1967?

Does this fix #1967?
I see it does, but it does other bad things.
*** 59 r_1_1_36_9_2_8_8_8_4 arg 3 sz [324, 1, 1] [32, 1, 1] OPs 2M/ 0.02G mem 0.00 GB tm 61.00us/ 1.75ms ( 43.51 GFLOPS, 6.72 GB/s)
Why is that first global dim 324?

I believe the PR does fix #1967, but I've disabled it in the latest rebase.
The global dim starts as 324 (here's with no optimization):
***   59 r_32_8_36_9_16                        arg   3 sz [324, 8, 32]       [1, 1, 1]    OPs      2M/   0.02G  mem  0.00 GB tm    422.79us/     7.97ms (    6.28 GFLOPS,    0.97 GB/s)
On master, after the standard optimizations it is also generates globals with [324,1,1]

Does this fix #1967?
I see it does, but it does other bad things.
*** 59 r_1_1_36_9_2_8_8_8_4 arg 3 sz [324, 1, 1] [32, 1, 1] OPs 2M/ 0.02G mem 0.00 GB tm 61.00us/ 1.75ms ( 43.51 GFLOPS, 6.72 GB/s)
Why is that first global dim 324?

Sorry I take that back.  I've added the simplify_ones to the end of the TC path now and it looks better:
***   59 r_36_9_2_8_8_8_4                      arg   3 sz [9, 36, 1]         [32, 1, 1]   OPs      2M/   0.02G  mem  0.00 GB tm     32.00us/     1.88ms (   82.94 GFLOPS,   12.82 GB/s)```

Can you break this into two PRs? This is a really hard PR to review because it's making a pretty deep change to untested code.
I think about half of this PR is "style" like switching the arg to UOps.WMMA. Can you submit all the refactor looking stuff to be merged first, then I can really tackle reviewing this.

Can you break this into two PRs? This is a really hard PR to review because it's making a pretty deep change to untested code.
I think about half of this PR is "style" like switching the arg to UOps.WMMA. Can you submit all the refactor looking stuff to be merged first, then I can really tackle reviewing this.

Done! The style stuff is now in #2014 on which this PR now depends.


Test: inline chat sparkle icon

Refs: #1833

[ ] anyOS @anthonykim1
[ ] anyOS @gregvanl

Complexity: 2
Create Issue

This iteration, we have added a sparkle icon in the gutter of the editor which on click spawns the inline chat. The icon should appear only when the selection is empty and the cursor line only contains whitespaces or tabs. To test follow the next steps:

Enable the setting inlineChat.showGutterIcon
Open a file and place the cursor on a line so that the selection is empty and the line only contains whitespaces or tabs
Verify that a sparkle icon appears in the gutter at that line
Click on the sparkle icon and verify that inline chat appears at that line
Change the cursor state so that condition 2 is no longer satisfied (you can for example start typing on that line, make a non null selection or place the cursor on a line that is non-empty)
Verify that the sparkle icon is no longer visible in the gutter
Switch documents in the editor, verify that the sparkle icon appears/disappears according to above rules.

Just discovered the following two bugs:

The inline chat sparkle icon does not appear directly, the cursor selection must be changed for the inline chat sparkle to appear
When changing documents, the inline chat sparkle does not appear as it should even though it is on an empty line

I will be investigating the two issues above.

Concerning the issues I mentioned above, the fix is in PR https://github.com/microsoft/vscode/pull/196412 which should go in soon.


Step 11. Deep link in code sample is incorrect.

Sample code shown is:
<deepLink app:uri="www.example.com/{myarg}"/>
That's the deep link from the previous step. In this step, it should be:
<deepLink app:uri="www.iana.org/domains/{myarg}"/>
Instructions should then be to navigate to www.example.com and click the link. Upon choosing the app from the sharing list, you then see 'reserved' displayed in the fragment.

Thank you for the feedback - the wording here was very confusing and the instructions to open a deep link were not clear. The instructions in the codelab have been updated and include multiple ways to open the deep link.


Make logic for testing the operator upgrade paths extensible

/kind user-story
/area testing
User Story
As an operator developer, I want to easily extend the current operator upgrade E2E tests to include additional supported versions, So that I can be confident the operator can be upgraded from one supported version to another.
This is a follow-up issue related to this review comment: https://github.com/janus-idp/operator/pull/384#discussion_r1634314472
Acceptance Criteria

[ ] It should extend the current approach, which relies on a specific deployment manifest (0.1.3) as the starting point - see https://github.com/janus-idp/operator/blob/main/tests/e2e/e2e_upgrade_test.go#L53-L54
[ ] It should allow to try out different upgrade paths, using different starting versions to the current one.
[ ] It should be documented in the E2E tests README
[ ] ...

Links

Related to the Operator Level 2 Capability Level: https://sdk.operatorframework.io/docs/overview/operator-capabilities/#level-2---seamless-upgrades
JIRA: https://issues.redhat.com/browse/RHIDP-2641

/kind user-story

JIRA issue: https://issues.redhat.com/browse/RHIDP-2641


compiler/checker: investigate if importing the same name twice is handled correctly

In the function checkImport we import the names without checking if they have already been imported.
Not sure if this may lead to incosistencies, we should investigate on it.
NOTE: before proceeding, wait for the merge of the PR #856.

Consider this scenario:
// main.go
package main

import (
	. "test/bar"
	. "test/foo"
)

func main() {
	Foo()
	Bar()
}

// bar/bar.go
package bar

func F() {}

func Bar() {}

// foo/foo.go
package foo

func F() {}

func Foo() {}

gc returns the error:
./main.go:5:2: F redeclared during import "test/foo"
        main.go:4:2: previous declaration during import "test/bar"

We should consider and test the various combinations of native and non-native imported names.
For example:

first declaration imported is native, a second one (with the same name) is native too
first declaration imported is native, a second one (with the same name) is not native

etc...

This code does not return error:
"https://github.com/open2b/scriggo/issues/859": {
	sources: fstest.Files{
		"index.html": `
		{% import "foo.html" %}
		{% import "bar.html" %}

		{{ Foo() }}
		{{ Bar() }}
	`,
		"foo.html": `
		{% macro F() %}{% end macro %}
		{% macro Foo() %}{% end macro %}
	`,
		"bar.html": `
		{% macro F() %}{% end macro %}
		{% macro Bar() %}{% end macro %}
	`,
	},
},


CNN satellite data, not enough

Satellite data seems to be sometimes not working. Not enough data.
Did not work at 16.04
Worked at 16.24

Some options for dealing with it:
Leaving the last n frames even if they are older in latest
Have a backup to the 15 minutely satellite data that is also available for when the RSS is shut off or unavailable

Did work at 16.51 and 16.56
Didn't work at 17.01,
Did work at 17.06

the number of timesteps in the latest zarrs changes if the satellite data isn't available on time, so it'll fluctuate between 11 and 13 I think

that'll def be a prob for the u-net. Is there a way to guarantee there are always an exact number of consecutive timesteps available? even if that means delaying t0 a bit?

yea, I think a way to do it is to always trim down to 11 or always trim down to the minimum. Admittedly this does mean some data is lost.
The way its written is t0 is constant in 30 mins blocks, might be a bit harder to make t0 more flexible

I think a way to do it is to always trim down to 11 or always trim down to the minimum. Admittedly this does mean some data is lost.

For the MVP, I'd agree that it's probably best to do whatever it takes to have a reliable service, even if that slightly hurts performance.
Having said that, I'd be keen to learn more about the way data is saved for the production service. Maybe we could chat in our next tech planning meeting?

As this is stable now, ill close this for the moment


helicone-stream-force-format: true seems to cause JSON::ParserError when using Azure OpenAI

Describe the bug
When working with the Azure OpenAI service, we seem to be running into occasional "JSON::ParserError" errors. These don't happen frequently, but if you run a script that runs 100 prompts, it almost always triggers the error.
We tracked this down to the "helicone-stream-force-format" parameter suggested in the README. When that's present, the bug triggers. When it isn't, the bug doesn't trigger.
The error looks something like this:
unexpected token at '{"finish_reason":null,"index":0,"deltdata: {"id":"chatcmpl-8XckshxV3cEBasKbvvUD4MDSpUgYJ","object":"chat.completion.chunk","created":1703024490,"model":"gpt-35-turbo","choices":[{"finish_reason":null,"index":0,"delta":{"content":"."}}]}' (JSON::ParserError)

To Reproduce
Run this script:
client = OpenAI::Client.new(
  access_token: ENV.fetch("AZURE_OPENAI_API_KEY"),
  uri_base: "https://oai.hconeai.com/openai/deployments/gpt-35-turbo",
  request_timeout: 240,
  extra_headers: {
    "api-key": ENV.fetch("AZURE_OPENAI_API_KEY"),
    "Helicone-Auth": "Bearer #{ENV.fetch("HELICONE_API_KEY")}",
    "Helicone-OpenAI-Api-Base": ENV.fetch("AZURE_OPENAI_ENDPOINT"),
    "Helicone-Property-Prompt": "TestUnexpectedTokenErrorsPrompt",
    "helicone-stream-force-format": "true"
  },
  api_type: :azure,
  api_version: "2023-03-15-preview"
)

100.times.peach(8) do |i|
  puts ""
  puts "Iteration #{i}"
  puts ""

  client.chat(
    parameters: {
      model: "gpt-3.5-turbo",
      messages: [
        {role: "user", content: "Write me 3 paragraphs about the topic 'OpenAI parsing needs to be fixed'"}
      ],
      response_format: {type: "text"},
      seed: i, # Default, can be overridden using parameters
      stream: proc do |chunk, _bytesize|
        if chunk.dig("choices", 0, "finish_reason") == "stop" # last message
          puts ""
          puts "Iteration #{i} finished."
          puts ""

          next
        end

        content = chunk.dig("choices", 0, "delta", "content")
        unless content.nil?
          $stdout.write(".")
        end
      end
    }
  )
end

Expected behavior
JSON::ParserError shouldn't be triggered.

Looks like the parameter was added in https://github.com/alexrudall/ruby-openai/issues/251, and the work in https://github.com/alexrudall/ruby-openai/pull/338 possibly negates the need for this?


Add a way to change "user_agent"

headers={["User-Agent"]="xxx-client"}

Agreed this is already possible.
Seeing as this plugin isn't really being developed actively I don't see form being removed any time soon.


Create App without dashboard

Hi. I've deployed my Parse Server on Heroku, but I can't set up the Dashboard because I don't have an App on my Parse Server. How can I create a Parse Server App to set it on parse-dashboard-config.json?

You need to follow the docs for parse-server and use the appId, URL, and master key that you create in your dashboard config.

Hi Drew. So, whatever I add on config it will be  my credentials. Is it right? Anda what about multiple app for same parse-server?
Thank you so much for your answers.

Yep, those are the credentials. parse-server doesn't currently support multiple apps.


Throttle onScroll with requestAnimationFrame

Related to #21. Right now, props.scrollDelay is used to throttle the internal onScroll handler.
The way I do this in my resize handlers is to use requestAnimationFrame. They aren't necessarily mutually exclusive -- requestAnimationFrame could be used on the debounced handler. This could improve perceived rendering performance significantly.
Right now the only dependency of the library is React, but I think it could be worthwhile to use chrisdickinson/raf or another polyfill here.

I think this is a great idea.  I would prefer to keep props.scrollDelay (for now, at least).  But I'd prefer not to use a polyfill (at least not inside the library itself).  requestAnimationFrame has pretty good browser support http://caniuse.com/#feat=requestanimationframe.  Users should still be able to use a polyfill as long as it sets window.requestAnimationFrame and mirrors its implementation.

Version 2 does this!


Request: Is there some safe way to just test if a store is good - checksum valid?

My use case is Android with a reasonably high expectation of crashing and corrupting the store.  What I suggest is a entirely safe way to detect on app start-up that the store is corrupted so I can just delete it and start over.  Just a simple method to check that the store headers and checksum - without it starting the transaction writer thread, etc?

There was header checksum in 1.0, but I had to disable it to fix one bug.
I will add this feature in 2.0. There is also other feature request for new settings, to just delete storage if its corrupted, that will be included as well.

Closing this issue. Delete storage when opened corrupted store, moved to TODO list.


Fixes NOOP not accepting argument.

As already said in #107 NOOP SHOULD accept arguments as stated in RFC 5321 $<IP_ADDRESS>.

LGTM; I'll merge this and then add a NEWS item.  Thanks!


Application crashes when openend for a while

This is a:
Bug Report
Version:
<IP_ADDRESS>
Describe the bug
I have a LiteDB database file on a network share. I have a collection opened. After a while (not sure what the timeframe is, this happend after an hour or so) when I hit the refresh button the application will hang.
Steps to reproduce:

Open a LiteDB database file from a share
Open a collection
Keep the app running in the background for x amount of time
Hit the refresh button

What is expected:
Data will be refreshed
What is actually happening:
The app hangs and crashes
"The program LiteDbExplorer.exe version <IP_ADDRESS> stopped interacting with Windows and was closed"

Do you share this file with other processes?

I did a little research about this case (file over network).
My recommendation, do not do this!
If you take a quick look you will see that even Windows Explorer hangs many on this case.
In this GUI once the database is opened it is always connected (never disposes until closed) and all references are always in memory and directly 2 way binded with UI. There is no reconnection or resilience mechanism.
Anyway I added an alert when detected file over network and changed the connection way to ensure exclusive access.


<Router basename={'/path'}> not working as expected

Version
"react-router-dom": "^4.2.2"
Test Case
https://funnel.garritz.com/doncarro/ (it should redirect to /doncarro/login/), instead it is just rendering the 404 error I put there.
Steps to reproduce
Trying to deploy to subdirectory on my server.
.htaccess
Options -MultiViews     RewriteEngine On     RewriteCond %{REQUEST_FILENAME} !-f     RewriteRule ^ index.html [QSA,L]
Router
<Router basename={'/doncarro'}>         <Switch>                 <Route exact path={${process.env.PUBLIC_URL}/dashboard} component={Dashboard}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/campaigns} component={Campaigns}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/leads} component={Leads}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/admin} component={Admin}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/admin/users} component={AdminUsers}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/admin/users/:id} component={AdminUserInfo}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/admin/users/:id/edit} component={AdminUserEdit}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/user} component={User}></Route>                 <Route exact path={${process.env.PUBLIC_URL}/logout} component={Logout}></Route>                 <Redirect exact from={${process.env.PUBLIC_URL}/} to={${process.env.PUBLIC_URL}/dashboard} />                 <Route component={NotFound} status={404}></Route>         </Switch> </Router>
package.json
{   "homepage": "https://funnel.garritz.com/doncarro",   "name": "funnel",   "version": "0.0.1",   "private": true,   "dependencies": {     "babel-polyfill": "^6.26.0",     "react": "^15.6.1",     "react-datepicker": "^0.54.0",     "react-dom": "^15.6.1",     "react-router-dom": "^4.2.2",     "victory": "^0.24.2"   },   "devDependencies": {     "react-scripts": "1.0.7"   },   "scripts": {     "start": "react-scripts start",     "build": "react-scripts build",     "test": "react-scripts test --env=jsdom",     "eject": "react-scripts eject"   } }
Expected Behavior
It should be rendering https://funnel.garritz.com/doncarro/dashboard or /doncarro/login (depending on localStorage).
Actual Behavior
It is just showing the 404 error there. It seems to not be considering the basename={'/doncarro'} at all, as if I remove it, build it and upload it again to public_html -> doncarro, it seems to work just fine. Either I am doing something wrong, or it seems that in my case it is just worthless to include basename={'/doncarro'}.
Hope you can help me. Thanks!

When you use a basename, the basename should not be included in the pathname.
<BrowserRouter basename='/test'>
  <Route exact path='/' /> {/* this matches the url example.com/test */}
</BrowserRouter>

I feel so stupid now. Thank you!


Restructure use of RadWatch_Samples.csv

First off, I don't know how Chris designed this part of the code to be used. How is RadWatch_Samples.csv generated? Are you supposed to enter the metadata by hand?
What I find is that running Gamma_Analysis.main() almost always generates an error at the end, because Gamma_Analysis.make_table() doesn't have the same .Spe files in the current directory as the number of entries in RadWatch_Samples.csv. Unless there's some automated trick that I'm missing, it is inconvenient to manually modify RadWatch_Samples.csv every time you add or remove a file from the directory.
I don't have a specific solution in mind, but it is something to discuss.

The file Radwatch_samples.csv is currently edited manually before running gamma_analysis. Typically before I run gamma_analysis, I ensure that only the reference spectra, it's like soil_sample_ 18, the spectra that I am running the analysis on, and the corresponding background  renamed to independence (how the renaming is also needs to be changed in my opinion) are in the directory. Any other spectra I usually remove from the directory.
I was thinking some kind of GUI that asks for user input might be a good thing to implement?

Thanks for explaining. Yes, there are a few things to change. I'd rather not go so far as to make a GUI at this point though. We could do text input.
A more flexible solution would be to have a database (could just be like the existing CSV) with the metadata for all samples. Instead of the code expecting to find all of those, it just looks up the UCB### of each file that is getting analyzed, and takes that metadata. Then you just have to add metadata for new samples, instead of customizing it each time.
I'll make a separate issue to allow analyzing a single file, with custom background and reference spectrum (also relates to #43).

The database sounds good to me. One of the tricky things with utilizing Gamma_Analysis is remembering dry mass of the relevant samples since (to my knowledge) there is no comprehensive document with all the dry masses. So this essentially should kill two birds with one stone.

The metadata spreadsheet is in RadWatch / Gamma / Sample Metadata. You can open it and go File > Download as... > csv. It has a lot of columns you don't need in the code but it is best to keep everything in the one place. It isn't updated with recent samples yet.


FEATURE REQ: allow starting the tree from any FEN

We want to support middle game training. A workbook would contain multiple FEN positions, represented same way as bookmarks and only available to open one at a time

Implemented.


Run backtest with and without snapshot have different results

HI, I noticed that the backtest results are quite different when I use an initial snapshot compared to when I don’t. For example, adding initial snapshot changes PnL, and SR a lot.
Why does using a snapshot make such a big difference? Is it always necessary to use a snapshot for accurate results, or are there cases where it’s fine to skip it?
asset = (
BacktestAsset()
.data('/Users/r/Desktop/hftbacktest/btcusdt_20240901.npz')
.initial_snapshot('/Users/r/Desktop/hftbacktest/btcusdt_20240831_eod.npz')
.linear_asset(1.0)
.intp_order_latency('/Users/r/Desktop/hftbacktest/btcusdt_feed_latency_20240901.npz')
.power_prob_queue_model(2)
.no_partial_fill_exchange()
.trading_value_fee_model(-0.00005, 0.0007)
.tick_size(0.1)
.lot_size(0.001)
.roi_lb(roi_lb)
.roi_ub(roi_ub)
)
with snapshot

without snapshot

As shown in your plot, the most significant differences occur at the beginning because, without the initial snapshot, the market depth starts empty. Until sufficient market depth information is accumulated through natural refresh (via subsequent market depth feeds), the market depth data and, consequently, the order fill simulations, are inevitably inaccurate.
It is recommended to input an initial snapshot unless the data file already contains one at the beginning. But, this can lead to inefficiencies when backtesting across multiple consecutive days. Alternatively, you can consider the backtest results reliable after a certain period, once enough market depth information has been accumulated.


Troubleshoot Firestore deletion behavior and add more tests

@pulyaevskiy had some additional plans for the Firestore plugin on flutter/plugins#258

I've been trying to nail down this weird behavior with deleting items and it seems to be that this is an issue with underlying platform SDKs... but I'm not sure.
In short: deleting a document (while subscribed to a Query matching this document) results in following sequence of snapshot events with DocumentChanges:

DocumentChangeType.removed with hasPendingWrites: false and isFromCache: false - OK
DocumentChangeType.added with hasPendingWrites: false and isFromCache: true - ???
DocumentChangeType.removed with hasPendingWrites: false and isFromCache: false - ???

Tested with AnimatedList and Dismissible items: deleted item appears in the list for a second and disappears again.
Wondering if anyone knows what am I doing wrong here?
I will be pushing some more changes this week in regards to SnapshotMetadata and adding some more tests.

@collinjackson
The issue at https://github.com/flutter/flutter/issues/13028 has been closed and moved here. Future collaboration on this issue will be done here.

https://github.com/flutter/flutter/issues/13028#issuecomment-544594576

repost "I'm not sure if this is the problem I'm running into but I would really appreciate some guidance. I have a FirebaseAnimatedList whose children are wrapped in Dismissible. Everything works great but I get the 'A dismissed Dismissible widget is still part of the tree.' error and I haven't found any way to force an item off FirebaseAnimatedList. (This is for firebase_database)"