Switch to rustls or native-tls

OpenSSL currently blocks (or at least makes it difficult) to build on Windows:
error: failed to run custom build command for `openssl-sys v0.9.76`

Caused by:
  process didn't exit successfully: `D:\Desktop\apkeep-master\target\debug\build\openssl-sys-34444d0c3285b3f8\build-script-main` (exit code: 101)
  --- stdout
  cargo:rustc-cfg=const_fn
  cargo:rustc-cfg=openssl
  cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_GNU_OPENSSL_LIB_DIR
  X86_64_PC_WINDOWS_GNU_OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
  OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_GNU_OPENSSL_INCLUDE_DIR
  X86_64_PC_WINDOWS_GNU_OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
  OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_GNU_OPENSSL_DIR
  X86_64_PC_WINDOWS_GNU_OPENSSL_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_DIR
  OPENSSL_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=OPENSSL_STATIC
  cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  run pkg_config fail: "Could not run `\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"`\nThe pkg-config command could not be found.\n\nMost likely, you need to install a pkg-config package for your OS.\n\nIf you've already installed it, ensure the pkg-config command is one of the\ndirectories in the PATH environment variable.\n\nIf you did not expect this build to link to a pre-installed system library,\nthen check documentation of the openssl-sys crate for an option to\nbuild the library from source, or disable features or dependencies\nthat require pkg-config."

  --- stderr
  thread 'main' panicked at '

  Could not find directory of OpenSSL installation, and this `-sys` crate cannot
  proceed without this knowledge. If OpenSSL is installed and this crate had
  trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the
  compilation process.

  Make sure you also have the development packages of openssl installed.
  For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.

  If you're in a situation where you think the directory *should* be found
  automatically, please open a bug at https://github.com/sfackler/rust-openssl
  and include information about your system as well as this message.

  $HOST = x86_64-pc-windows-gnu
  $TARGET = x86_64-pc-windows-gnu
  openssl-sys = 0.9.76

  It looks like you're compiling for MinGW but you may not have either OpenSSL or
  pkg-config installed. You can install these two dependencies with:

  pacman -S openssl-devel pkg-config

  and try building this crate again.

https://github.com/EFForg/apkeep/commit/e98503030f2b28e710bd768d7c9207c1cd0e8863 removes the direct dependency in this repo.  Upstream, I'll have to migrate https://github.com/EFForg/rs-google-play/tree/master/gpapi over as well.

Unfortunately, I've run into a problem blocking on upstream changes to rustls.  A strict set and ordering of ciphersuites is required by Google's server-side authentication in order to proceed with a login: see https://stackoverflow.com/questions/22832104/how-can-i-see-hidden-app-data-in-google-drive.
With openssl, the following ciphersuite string
https://github.com/EFForg/rs-google-play/blob/b3bef184510eb71a0736bb3b5958adf4e043f126/gpapi/src/consts.rs#L6
translates to this list of ciphersuites, captured by wireshark:
Cipher Suites (43 suites)
    Cipher Suite: TLS_AES_256_GCM_SHA384 (0x1302)
    Cipher Suite: TLS_CHACHA20_POLY1305_SHA256 (0x1303)
    Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)
    Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
    Cipher Suite: TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xccaa)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 (0xc0af)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CCM (0xc0ad)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 (0xc0ae)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CCM (0xc0ac)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CCM_8 (0xc0a3)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CCM (0xc09f)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CCM_8 (0xc0a2)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CCM (0xc09e)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x006b)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x0067)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
    Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
    Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
    Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
    Cipher Suite: TLS_RSA_WITH_AES_256_CCM_8 (0xc0a1)
    Cipher Suite: TLS_RSA_WITH_AES_256_CCM (0xc09d)
    Cipher Suite: TLS_RSA_WITH_AES_128_CCM_8 (0xc0a0)
    Cipher Suite: TLS_RSA_WITH_AES_128_CCM (0xc09c)
    Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)
    Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)
    Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
    Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
    Cipher Suite: TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0x00ff)

Migrating to rustls, https://github.com/EFForg/rs-google-play/commit/4779fde5f38cec89112c9c68bd858883c0f0adab is how far I got.  rustls only supports a subset of ciphers required by Google to login, and it does not allow reporting unsupported ciphersuite in the Client Hello, afaict.  This is blocking on upstream changes to rustls.

 Do you have a link to the rustls issue? If no issue exists, I can make one. TLS fingerprinting is a serious issue, so I like to raise awareness when possible.

I'm making one now! :)

https://github.com/rustls/rustls/issues/1125

https://github.com/rustls/rustls/issues/1125


Add Tulip and Talib Indicator-Results to 'stratUpdate' event

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
It add TULIP and TALIB indicator results to the stratUpdate event - emitter.

What is the current behavior? (You can also link to an open issue here)
Currently only native indicators can be retrieved via stratUpdate event.

What is the new behavior (if this is a feature change)?
TULIP and TALIB indicator results are added as [name of the indicator]-[resulting value incl. name], e.g.

{
"bb_bbandsLower":0.004675088145539005,
"bb_bbandsMiddle":0.0048078500000000015,
"bb_bbandsUpper":0.004940611854460998,
"rsi_result":67.55973723993439,
"dmi_dmPlus":0.0002359228110744004,
"dmi_dmLow":0.00006889755136314626
}

Now they can be displayed or evaluated in the GUI client.

great idea!
Just tiny style nits:

In case of multiple return values, would you mind nesting them inside an object? So you get something like this:
{
bb: {
"bbandsLower":0.004675088145539005,
"bbandsMiddle":0.0048078500000000015,
"bbandsUpper":0.004940611854460998,
},
rsi: 67.55973723993439,
dmi: {
"dmi_dmPlus":0.0002359228110744004,
"dmi_dmLow":0.00006889755136314626
}
}

That way they are easier to use for the UI since all indicators are fully encapsulated. If we than have UI elements that can draw bbands we can simply pass the object (per stratUpdate).

would you mind using _.each instead of Object.keys(x).forEach? _.each can also loop over objects.
would you mind fixing indenting? It renders like this on github.com:

Nice ideas! I'll change a few things ;)

Omg, Github didn't show the changes... :( But these commits lead to the suggested structure.

It does look great for me, I'll test and run this asap before I can merge.
But I'm pretty sure it looks good as is :)
On Wed, Aug 29, 2018 at 12:36 AM, Klemens Wittig<EMAIL_ADDRESS>wrote:

Omg, Github didn't show the changes... :( But these commits lead to the
suggested structure.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/pull/2483#issuecomment-416654876, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MD7MDTBr6lEAeMb-ZaKH3Tpsilfcqks5uVXF7gaJpZM4WPReF
.

--
PGP key at keybase.io/mikevanrossum
https://keybase.io/mikevanrossum/key.asc

I tested this and would you mind doing one more tiny tweak?
A lot of indicators only have one result (I quickly spotted ADR, RSI, DEMA, EMA, etc), which TA-lib nests in an object with a single prop called outReal. In case there is outReal we don't need to include that property name. For example:
2018-08-29 18:46:46 (INFO):         [EVENT stratUpdate]
 { date: moment("2018-06-09T01:00:00.000"),
  indicators:
   { 'native-dema': 7614.425573253256,
     'tulip-dema': 7614.405146256687,
     'talib-dema': { outReal: 7614.460945819434 } } }

Hmmm... I think it needs a more generic approach then.
The best would be to check if the indicator result is an object.
Then check if it's _.size() is 1.
If so, directly insert the first key into result, otherwise insert the whole object.
If size is 0, set result null to show, that is not set..
This should deal with all eventualities.

Yea that is fine too!
On Wed, 29 Aug 2018, 19:45 Klemens Wittig<EMAIL_ADDRESS>wrote:

Hmmm... I think it needs a more generic approach then.
The best would be to check if the indicator result is an object.
Then check if it's _.size() is 1.
If so, directly insert the first key into result, otherwise insert the
whole object.
If size is 0, set result null to show, that is not set..
This should deal with all eventualities.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/pull/2483#issuecomment-416923479, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MDyj7su7tC58dNwzIF7ThHfiO_tEOks5uVn7UgaJpZM4WPReF
.

Hmmm... I think it needs a more generic approach then.

I usually agree here, but in this case I think it's more important to stick to what we know the output will look like:
The current version of tulip will already spit out a number instead of an object with one result property. Do we really need all these checks (for tulip) because we know TA-lib does something different (while we know tulip does not)? I really don't think we need 15 lines of if checks for tulip indicators:

While this code correctly branches in the current output. It's not as fast as the previous iteration and definitely not as readable (since the current code will try to account for things that will never happen in the current version of tulip).
if the output format changes we will need to update Gekko most likely anyway.

Note that tulip and talib are compiled libraries that (once installed properly) give very consistent output. This is different from external APIs that can have timeouts, network errors, other API errors, etc. As such I think it's better to have very simply code that parses it according to our expectations than complex code that tries to work with anything thrown at it (I'm not sure why we need things like explicit forOwn at all: lodash already filters these when looping). I personally rather merge up to
c110daa, but given that we already know that TA-lib (and not tulip) nests single results in outReal I would like to catch that (and only that scenario) for the sake of simplicity. I rather update Gekko when they change their format.
Do you agree? What do you think?

I agree on the Tulip part. It's really very generic where it shouldn't be. On the TaLib side, if I understand it's concept correctly, there might be the chance that ot has more properties than outReal. I'll try to figure out and optimize accordingly.
It shouldn'tbe more than two or three more properties inthe worst case.
Since I don't have access to any PC for the next few days, this might take a while. 😉

I agree on the Tulip part. It's really very generic where it shouldn't be. On the TaLib side, if I understand it's concept correctly, there might be the chance that ot has more properties than outReal. I'll try to figure out and optimize accordingly.
It shouldn'tbe more than two or three more properties inthe worst case.
Since I don't have access to any PC for the next few days, this might take a while. 😉

there might be the chance that ot has more properties than outReal.

Just to be sure, whether there is one property (called outReal) is not random or chance based. This happens 100% of the time for specific indicators which only have 1 output. The proper solution (imo) would be a whitelist of indicators that have one output. But that requires us now to go through all of them, and maintain a whitelist. As such as quick and easy solution would be a simple check for only the talib indicators like (pseudo code):
if(indicator.result.outReal && _.keys(indicator.result).length === 1) {
  result = indicator.result.outReal
} else {
  result = indicator.result;
}

This code is concise, easy to understand (there is 1 edge case: there is only 1 prop called outReal), all other cases don't transform output. And most likely fast enough. If speed proves a bottleneck a whitelist would be faster (since you don't need to convert an object into an array of its keys on every stratUpdate). But overkill given that we need to make and maintain one now.
If you really want to have a more generic solution, could you argue what the benefits would be?

I reverted to the most performant version. ´outReal´ will be considered in Talib instead of ´result´.
If there's any more properties to consider, it would be easy to implement them later with if-else or similar without using any overhead functions from lodash or requiring to iterate
through properties.
btw. Coding on mobile phone somehow works, but is tedious ;)

Home again, tested it. Works! ;)

It took me while to test this, it works great!
And apologies for going back and forth between how to solve the talib issue.


Uncaught Error: new BigNumber() number type has more than 15 significant digits

When I go to "Send Ether" with an account balance of 0.998957 and enter an amount of<PHONE_NUMBER>1111111 (17 digits or more) it crashes with error
Uncaught Error: new BigNumber() number type has more than 15 significant digits:<PHONE_NUMBER>1111112
    at raise (bignumber.js:1190)
    at new BigNumber (bignumber.js:262)
    at toWei (wei.js:36)
    at Send._this.preValidate (TxForm.js:170)
    at gas (TxForm.js:52)
    at final-form-calculate.es.js:50
    at Array.forEach (<anonymous>)
    at runUpdates (final-form-calculate.es.js:48)
    at final-form-calculate.es.js:80
    at Array.forEach (<anonymous>)
    at final-form-calculate.es.js:78
    at Array.forEach (<anonymous>)
    at final-form-calculate.es.js:64
    at Object.batch (final-form.es.js:799)
    at form.subscribe.values (final-form-calculate.es.js:28)
    at final-form.es.js:319
    at notifySubscriber (final-form.es.js:394)
    at final-form.es.js:404
    at Array.forEach (<anonymous>)
    at notify (final-form.es.js:400)
    at notifyFormListeners (final-form.es.js:781)
    at final-form.es.js:842
    at runValidation (final-form.es.js:656)
    at Object.change (final-form.es.js:840)
    at Object.change (final-form.es.js:931)
    at onChange (react-final-form.es.js:378)
    at HTMLUnknownElement.callCallback (react-dom.development.js:100)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:138)
    at Object.invokeGuardedCallback (react-dom.development.js:187)
    at Object.invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:201)
    at executeDispatch (react-dom.development.js:461)
    at executeDispatchesInOrder (react-dom.development.js:483)
    at executeDispatchesAndRelease (react-dom.development.js:581)
    at executeDispatchesAndReleaseTopLevel (react-dom.development.js:592)
    at Array.forEach (<anonymous>)
    at forEachAccumulated (react-dom.development.js:560)
    at runEventsInBatch (react-dom.development.js:723)
    at runExtractedEventsInBatch (react-dom.development.js:732)
    at handleTopLevel (react-dom.development.js:4476)
    at batchedUpdates$1 (react-dom.development.js:16659)
    at batchedUpdates (react-dom.development.js:2131)
    at dispatchEvent (react-dom.development.js:4555)
    at interactiveUpdates$1 (react-dom.development.js:16714)
    at interactiveUpdates (react-dom.development.js:2150)
    at dispatchInteractiveEvent (react-dom.development.js:4532)
raise @ bignumber.js:1190
BigNumber @ bignumber.js:262
toWei @ wei.js:36
Send._this.preValidate @ TxForm.js:170
gas @ TxForm.js:52
(anonymous) @ final-form-calculate.es.js:50
runUpdates @ final-form-calculate.es.js:48
(anonymous) @ final-form-calculate.es.js:80
(anonymous) @ final-form-calculate.es.js:78
(anonymous) @ final-form-calculate.es.js:64
batch @ final-form.es.js:799
form.subscribe.values @ final-form-calculate.es.js:28
(anonymous) @ final-form.es.js:319
notifySubscriber @ final-form.es.js:394
(anonymous) @ final-form.es.js:404
notify @ final-form.es.js:400
notifyFormListeners @ final-form.es.js:781
(anonymous) @ final-form.es.js:842
runValidation @ final-form.es.js:656
change @ final-form.es.js:840
change @ final-form.es.js:931
onChange @ react-final-form.es.js:378
callCallback @ react-dom.development.js:100
invokeGuardedCallbackDev @ react-dom.development.js:138
invokeGuardedCallback @ react-dom.development.js:187
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:201
executeDispatch @ react-dom.development.js:461
executeDispatchesInOrder @ react-dom.development.js:483
executeDispatchesAndRelease @ react-dom.development.js:581
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:592
forEachAccumulated @ react-dom.development.js:560
runEventsInBatch @ react-dom.development.js:723
runExtractedEventsInBatch @ react-dom.development.js:732
handleTopLevel @ react-dom.development.js:4476
batchedUpdates$1 @ react-dom.development.js:16659
batchedUpdates @ react-dom.development.js:2131
dispatchEvent @ react-dom.development.js:4555
interactiveUpdates$1 @ react-dom.development.js:16714
interactiveUpdates @ react-dom.development.js:2150
dispatchInteractiveEvent @ react-dom.development.js:4532
index.js:1851 Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-hfwx1vycHF5eMRHxd8KVOWB4EykA4iqXT24HqLnyLU0='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

loadingIframe.onload @ index.js:1851
update @ index.js:1855
handleRuntimeError @ index.js:1807
(anonymous) @ index.js:1792
(anonymous) @ index.js:1931
index.js:2178 Error: new BigNumber() number type has more than 15 significant digits:<PHONE_NUMBER>1111112
    at raise (bignumber.js:1190)
    at new BigNumber (bignumber.js:262)
    at toWei (wei.js:36)
    at Send._this.preValidate (TxForm.js:170)
    at TxForm.js:200
    at flush (index.js:62)
__stack_frame_overlay_proxy_console__ @ index.js:2178
(anonymous) @ TxForm.js:220
flush @ index.js:62
setTimeout (async)
debounced @ index.js:40
runRecordLevelValidation @ final-form.es.js:508
runValidation @ final-form.es.js:604
change @ final-form.es.js:840
change @ final-form.es.js:931
onChange @ react-final-form.es.js:378
callCallback @ react-dom.development.js:100
invokeGuardedCallbackDev @ react-dom.development.js:138
invokeGuardedCallback @ react-dom.development.js:187
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:201
executeDispatch @ react-dom.development.js:461
executeDispatchesInOrder @ react-dom.development.js:483
executeDispatchesAndRelease @ react-dom.development.js:581
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:592
forEachAccumulated @ react-dom.development.js:560
runEventsInBatch @ react-dom.development.js:723
runExtractedEventsInBatch @ react-dom.development.js:732
handleTopLevel @ react-dom.development.js:4476
batchedUpdates$1 @ react-dom.development.js:16659
batchedUpdates @ react-dom.development.js:2131
dispatchEvent @ react-dom.development.js:4555
interactiveUpdates$1 @ react-dom.development.js:16714
interactiveUpdates @ react-dom.development.js:2150
dispatchInteractiveEvent @ react-dom.development.js:4532

Relates to https://github.com/paritytech/fether/issues/247

Other PRs have already fixed issue #298 and now avoid encountering Uncaught Error: [format/input::inNumber16] the given number is not an integer


Added libdlib-dev To The rosdep base.yaml File

Rational For Adding Package:
Needed for it's global optimization functions, ie. find_max_global and find_min_global
Package web listings:

Debian: https://packages.debian.org/search?keywords=libdlib-dev
Ubuntu: https://packages.ubuntu.com/xenial/libdlib-dev
Gentoo: https://packages.gentoo.org/packages/sci-libs/dlib

I took a guess at what the fedora rule would be initially, but after looking into it, it didn't look like there was a corresponding package.

@wjwwood - looks like we should be good to go now!

@wjwwood - sorry to ping you about this again, but my team has some changes (namely a migration from kinetic to melodic) blocked on this


Native persistent notification until read

Currently on Windows 10, chat notifications are shown in the Action Center, but disappear after a delay (user controllable in Action Center settings).
I believe the right user experience would instead be to have the notification persist in the Action Center until the related message has been read (at least locally, but better would be if read on any device). This dismissal should happen even if the user doesn't directly interact with the notification in the Action Center, to avoid a proliferation of notifications. The user would still be able to dismiss a notification (keeping the related message unread).
This would mirror how notifications work on Android.
The HTML5 Notification spec on which the Electron notification feature is modelled allows for such persistent notifications. However I am unclear if the Electron implementation supports these persistent notifications.

Apparently this is currently a limitation of Electron that requires using 3rd party packages. https://github.com/electron/electron/issues/3916


Comparison to https://github.com/sashabaranov/go-gpt3

Can you briefly explain and add to the README how your librayr compares to https://github.com/sashabaranov/go-gpt3 ?
Thanks!

It's probably a good idea, I actually haven't looked at that one or used it as this one was created before it. It looks fairly similar, although doesn't support streaming completion responses from what I can tell. Maybe if someone else has experience with both they could submit a PR to add a section on this.

I've only used your library so far so that person is not me 😆

Having used both, the two main things I can see that are missing are:

Embeddings
Moderations

Embeddings are a current issue for me so i'll likely push a PR to add that, which will bring closer parity to sashabaranov/go-gpt3

A PR for embeddings has been added:
https://github.com/PullRequestInc/go-gpt3/pull/11

I just wanted to chime in to mention that for me, I was originally using sashabaranov/go-gpt3, but switched to this library because the API errors returned were not structs which makes it hard to write code that bubble errors back to the user (e.g., if the user entered prompt uses too many tokens).


Lw-6462 token input tests

Adding asset value input tests.

Allure Report
allure-report-publisher generated test report!

processReports: ✅ test report for 7e481bf2

passed
failed
skipped
flaky
total
result

Total
32
0
4
0
36
✅


Massive Server Lag on hoppers.

Spark:

In the server we are using hoppers, when hoppers are used in farms the server lags to 7-10 tps? Why does this take so much tps?
Im currently using 1.5.8 I I will update if this continues in 1.5.17!

Seems to be working. Not sure though. Server at stable 20 frames. I will check after 12 hours how the server is running with spark

Hi,
this bug should be fixed in the newest version 🙂

Alright Issue Fixed, after 12 hours of using spark profiler it works. Server tps at stable 20 tps thanks


(GH-112) Show more tracker status in details view.

In response to #112, this shows time until next announce, peer count and scrape status in the tracker details view.

Closes #112

Getting this 'next announce' timer glitch? while a torrent is active. (while paused it goes back to -)

Also the scrape values never populate, even on trackers that I know support scrape.

@zp I've pushed a fix for the odd announce times.
Regarding scrape values - I noticed the same when testing, and checked the libtorrent source for when the values are set, and it seems libtorrent only updates the scrape values in certain situations.
There is a function to scrape a tracker, and I'll probably add a context menu to force announce and scrape in an upcoming version.


[Coverity CID :186196]Unchecked return value in  samples/sensor/lsm6dsl/src/main.c

Unchecked return value in File:  samples/sensor/lsm6dsl/src/main.c
Category: Error handling issues
Function: sensor_trigger_set
Component: Samples
CID: 186196
Please fix or provide comments to square it off in coverity in the link: https://scan9.coverity.com/reports.htm#v32951/p12996

Fixed by #15743

Fixed by #15743

If you put this link in the PR instead, the issue will automatically close when the PR gets merged. See https://help.github.com/en/articles/closing-issues-using-keywords

Fixed by #15743

If you put this link in the PR instead, the issue will automatically close when the PR gets merged. See https://help.github.com/en/articles/closing-issues-using-keywords

Ok, I did it:)

OK, but this is still open

Fixed


fix dockerfile

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: JieJhih
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [JieJhih]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


implement event publisher (a.k.a. Zeebe exporter)

the engine is meant to be embedded.
that said, there's a need/appetite to bring transparency into the engine, by allowing users to have a "view" on their processes and states.
One of the initial ideas/goals of this project is to emit the same events, as the popular Camunda Cloud a.k.a. Zeebe BPMN Engine.
Zeebe uses a protobuf based exporter protocol.
The idea for this library is, to provide an optional module so that developers can opt-in to emit events like Zeebe does with the ultimate goal to use their Simple Monitor.

Had to switch the milestone to 0.4.0, because Hazelcast's Go client (which is required for sending events to Hazelcast, the default exporter for Zeebe) does miss RingBuffer support, see https://github.com/hazelcast/hazelcast-go-client/issues/751

I've contributed to Hazelcast Go Client and started in a feature branch to experiment with event publishing.
See https://github.com/nitram509/lib-bpmn-engine/tree/experimental-zeebe-exporter


Save actual snapshot when encountering an error

Fixes https://github.com/jaredpalmer/cypress-image-snapshot/issues/176

@jaredpalmer Could you give this a review? It would be really helpful for my team if we could get this in.

@jaredpalmer Hi, any chance we can get this in?

@jaredpalmer Would you like this "actual" to be optional? The code looks good to me

when this changes will be released ?

This one will be very useful for us. Right now we are applying this patch using post install hook :(

@jaredpalmer would you be interested in giving some other contributors commit rights? There's a bit of low-hanging fruit in existing PRs that would be nice to get merged, I'm guessing you don't have much time for this at the moment.


Add to Chrome Web Store

Could you add this to the Chrome store, just like the original extension (which seems quite abandonded)? It loads and runs fine on Chrome.
OTOH, Chrome complains about manifest version 2, for which the support will allegedly be removed in 2024, so it might make more sense to create a fork and update to manifest v3 (not sure if it will still compatible).

I am not sure if a port to manifest v3 is even possible, given the security model changes which AFAIK made programmatically changing requests with JS impossible, in particular the webRequestBlocking permission which this extension uses (also disabling adblockers such as uBlock Origin).
A very nerfed version might be possible. Thank Google. At this point I have given up on using Chrome due to their stance on advanced extensions.

Note that webRequestBlocking is still available for policy-installed extensions, so if you are a developer/advanced user, that's still one possible avenue. Chrome Extension Store is out of the question, though.

ok, thanks.
I guess most things of no-pdf-download could be done in a framework like declarativeNetRequest, but the header modifications are quite limited and the conditions only allow basic stuff.

Indeed, as I meant by "buggy", declarativeNetRequest would not support things like keeping the attachment filename in case you do want to save the PDF after viewing it, not breaking apps which use hidden PDF iframes for printing etc. etc. It's just very dumb.


sr2t: init at 0.0.26

Description of changes
Tool to convert scanning reports to a tabular format
https://gitlab.com/0bs1d1an/sr2t
Related to https://github.com/NixOS/nixpkgs/issues/81418

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 317967 run on x86_64-linux 1

2 packages built:

sr2t
sr2t.dist


Dataset help

Hey @OrigamiDream !
I am also looking into implementing the Gato paper. In order to complement your work, I decided to start looking into the datasets mentioned in the paper first. I started investigating to see if we could access the vision/language datasets used and if we could train SOTA agents to generate the control datasets: torch-gato/datasets
From my initial investigation, we have open-source access to about 83.62% of the datasets/environments used during training (according to the sample weight). If we use similar open-source variants of the private language/vision datasets, this number climbs to 94.32%. There is still a lot of work to do in order to build a training infrastructure for all the SOTA or near-SOTA agents to generate the control environment expert data.
Let me know if you are still interested in this implementation and how we could collaborate!
Cheers,
Thomas

Hi @ThomasRochefortB
I am so glad to see the datasets you've found.
Your investigation solves one of the hardest part in this project.
I'm still interested in this project and still finding way to implement training strategy in TensorFlow graph execution mode.
In the paper, they mixed datasets across in different tasks, like Atari images (64x80) with its action tokens, and a random image (224x224) with its text tokens for caption generation.
This makes the inputs to main transformer blocks not fixed, meaning cannot be run in graph execution mode.
I have two strategies to solve this problem.

Dropping the performance advantages from graph execution mode and train the model end-to-end.
Pre-training the embeddings for image, actions (discrete) and continuous values using self-supervised learning (which haven't been mentioned in the paper at all) and transfer to the main transformer blocks.

I haven't decided what would be the best option for me, yet.
Thanks

@OrigamiDream
The way I understand the paper, all of the inputs are tokenized which implies that the main transformer block sees a constant shape at its input.
The way I would envision the implementation is to build a "dataloader" that combines the tokenization and embedding part of the process (Section 2.1 and 2.2 of the paper). The first sentence of section 2.2 kind of hints towards that:
"After tokenization and sequencing, we apply a parameterized embedding function to each token to produce the final model input."
The dataloader would be conditional on the modality of the input data (vision vs environment observations vs text) and would apply the corresponding tokenization and embedding functions.
But at the end of it, the input to the transformer is a simple stream of tokens!

Hence, we must pre-train the ViT for image patch tokens prior to make stream of tokens.
The single ResNet block, as you said in #2 , there are already well pre-trained ResNet backbone in the wild for 224x224.
However, in Atari case, which receives 64x80 image, I couldn't find the well-trained backbone.


Could you please release the synthetic Cifar10

Hi, thanks for the great work. Could you please release the synthetic Cifar10 trained on ConvNet or ResNet-18, with 10/50 imgs/class? This would be greatful since I was trying to use the synthetic data to conduct some downstream tasks. Thanks.

Hi, thanks for your interest in our work. I have uploaded some synthetic sets in Google Drive. Please refer to readme.md.

Hi, thanks for your reply, that's really helpful!


Ensure hls videos are used in Safari

Safari also supports MSE and therefore picks dash in our current
setup. Still dash performs slightly worse in Safari, i.e. displaying a
black frame at the end when looping a video.
We could change the order of sources to make hls come first. Since
this might have negative effects in other browsers and we already need
to filter sources to handle bugs in Safari < 11, we instead remove the
dash source dynamically.
REDMINE-16318

Coverage remained the same at 99.291% when pulling 72178cac63d7a4a4dab3767b0c22c0bba2aa7869 on tf:safari-no-dash into b7af1ee77d0d7070b102f77c875764b478708db6 on codevise:master.

Coverage remained the same at 99.291% when pulling 72178cac63d7a4a4dab3767b0c22c0bba2aa7869 on tf:safari-no-dash into b7af1ee77d0d7070b102f77c875764b478708db6 on codevise:master.


Duplicate services are displayed after cloning the service

Environment

Seal version: main 668dab9556242d3496565ea56df8fd7242d2a6dc
UI version: dev-0778b49

To Reproduce
Steps to reproduce the behavior:

Clone the service.
Check services list.

Environment

Walrus version: main 5cf1d9ef1dcb6bd27a686a24454d760fdc19ec22
UI version: dev-2c89dfb

Test Result: pass


Missing currency codes

There are 16 currencies missing from this library which are in the official list (http://www.iso.org/iso/home/standards/currency_codes.htm)

Since #85 has been merged, this can be closed :)


[BUG] Retina scaling no longer working in 2.4.0 (master branch)

Testing out the latest using the master branch (since I needed a new feature) and now my charts are twice as big and blurry.
I believe it is related to this commit.
Expected Behavior
Using a width/height of 640x480, a canvas is created like so:
<canvas width="1280" height="960" style="display: block; width: 640px; height: 480px;"></canvas>

Current Behavior
With responsive set to false, the canvas is created as:
<canvas width="1280" height="960" style="display: block;"></canvas>

With responsive set to true, the canvas is created as:
<canvas width="2560" height="1920" style="display: block; width: 1280px; height: 960px;"></canvas>

Can you drop an example (HTML + JavaScript), here or in a jsFiddle?

Any example should do the trick (such as using the Getting Started example in the documentation). I would put together a JSFiddle but I don't think I can have it use 2.4.0 since it isn't released yet. If this is possible, let me know and I certainly will!
But here are a couple screenshots:
Using 400x400 with responsive set to false:

With responsive set to true:

Both charts appear as 800x800 and are twice as big as they should be.

What's the original HTML code (not the rendered one)?

Nevermind, as you said, the "Getting Started" example do the trick!

That's just copied 'n pasted from the Getting Started example:
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});
</script>

Yep, the Getting Started example will work.

You right, it's broken since this commit change. Just didn't think about that retina case when only the canvas width/height are set. The proper way to size a chart (IMO) is to set the canvas style only: <canvas style="width: 640px; height: 480px"></canvas> in which case it should work as expected. Of course, the reported case needs to be fixed!

However, do we agree that the responsive: true case is correct?

Ah, setting the width/height in style does indeed solve the issue! Thanks.
And yup, the responsive: true case is correct.

@Driklyn can you please pull latest master and confirm that it's fixed?

Yep, looks good now whether you're using <canvas width="640" height="480"></canvas> or <canvas style="width: 640px; height: 480px"></canvas>.
Thanks for the quick fix! :+1:

thanks @Driklyn for verifying this


Update Owners

What this PR does / why we need it:
Remove un-active approvers

@hzxuzhonghu , please let me know whether you'll continue to contribute this project?

Seems no objection :)
I'm going to merge that firstly; if any comments, please let me know :)


RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory

when I run  python train.py --data_path  /mypath --model_name mytrain --num_epochs 30 --batch_size 12 --mypretrain ./weight/lite-mono-8m_1024x320 --lr 0.0001 5e-6 31 0.0001 1e-5 31,
that display "Traceback (most recent call last):
File "E:\qitaxiangmu\Lite-Mono\train.py", line 11, in
trainer = Trainer(opts)
File "E:\qitaxiangmu\Lite-Mono\trainer.py", line 71, in init
self.models_pose["pose_encoder"] = networks.ResnetEncoder(
File "E:\qitaxiangmu\Lite-Mono\networks\resnet_encoder.py", line 76, in init
self.encoder = resnet_multiimage_input(num_layers, pretrained, num_input_images)
File "E:\qitaxiangmu\Lite-Mono\networks\resnet_encoder.py", line 48, in resnet_multiimage_input
loaded = model_zoo.load_url(models.resnet.model_urls['resnet{}'.format(num_layers)])
File "E:\qitaxiangmu\Track-Anything\venv\lib\site-packages\torch\hub.py", line 735, in load_state_dict_from_url
return torch.load(cached_file, map_location=map_location)
File "E:\qitaxiangmu\Track-Anything\venv\lib\site-packages\torch\serialization.py", line 777, in load
with _open_zipfile_reader(opened_file) as opened_zipfile:
File "E:\qitaxiangmu\Track-Anything\venv\lib\site-packages\torch\serialization.py", line 282, in init
super(_open_zipfile_reader, self).init(torch._C.PyTorchFileReader(name_or_buffer))"

Hi, if you set --mypretrain you should input an ImageNet pre-trained file. So you should use something like this --mypretrain ./weight/lite-mono-8m-pretrain.pth

Thank you. This problem should be caused by my network problem


check110 Returns False Even When Number of passwords to remember Greater Than 23

Check 110 is returning FALSE even though Number of passwords to remember is set to 24.
Manually running the command confirms that my Number of passwords to remember is set to 24

I resolved issue by changing https://github.com/Alfresco/aws-cis-security-benchmark/blob/master/prowler#L371
FROM
COMMAND110=$($AWSCLI iam get-account-password-policy --profile $PROFILE --region $REGION --query 'PasswordPolicy.PasswordReusePrevention' | grep PasswordReusePrevention | awk -F: '{ print $2 }'|sed 's/\ //g'|sed 's/,/ /g')
TO
COMMAND110=$($AWSCLI iam get-account-password-policy --profile $PROFILE --region $REGI    ON --query 'PasswordPolicy.PasswordReusePrevention')

Thanks @virtualjj I have just fixed it adding a --output text and better explanation. PR #22


Scipy Sparse (csr) Matrix Indexing obtains AttributeError: format not found

I got a scipy.sparse.csr.csr_matrix and want to select part of the rows with boolean index. However, I got the AttributeError. Could anyone please help on this? I am using anaconda 4.1.1
When I executed the following codes:
print type(xtr)
print type(idxtmp)
print xtr[0,:]
print idxtmp[0:5]
xtr = xtr[idxtmp]
I got the following results and error:
<class 'scipy.sparse.csr.csr_matrix'>
<type 'numpy.ndarray'>
(0, 0)    0.0
(0, 1)    0.0
(0, 2)    899.0
(0, 3)    3315.0
(0, 4)    942.0
[ True  True  True  True  True]

AttributeError                            Traceback (most recent call last)
 in ()
3 print xtr[0,0:5]
4 print idxtmp[0:5]
----> 5 xtr = xtr[[0,1],:]
/usr/local/anaconda2/lib/python2.7/site-packages/scipy/sparse/csr.pyc in getitem(self, key)
296             if isintlike(col) or isinstance(col,slice):
297                 P = extractor(row, self.shape[0])     # [[1,2],j] or [[1,2],1:2]
--> 298                 extracted = P * self
299                 if col == slice(None, None, None):
300                     return extracted
/usr/local/anaconda2/lib/python2.7/site-packages/scipy/sparse/base.pyc in mul(self, other)
317             if self.shape[1] != other.shape[0]:
318                 raise ValueError('dimension mismatch')
--> 319             return self._mul_sparse_matrix(other)
320
321         try:
/usr/local/anaconda2/lib/python2.7/site-packages/scipy/sparse/compressed.pyc in _mul_sparse_matrix(self, other)
476
477         major_axis = self._swap((M,N))[0]
--> 478         other = self.class(other)  # convert to this format
479
480         idx_dtype = get_index_dtype((self.indptr, self.indices,
/usr/local/anaconda2/lib/python2.7/site-packages/scipy/sparse/compressed.pyc in init(self, arg1, shape, dtype, copy)
26
27         if isspmatrix(arg1):
---> 28             if arg1.format == self.format and copy:
29                 arg1 = arg1.copy()
30             else:
/usr/local/anaconda2/lib/python2.7/site-packages/scipy/sparse/base.pyc in getattr(self, attr)
523             return self.getnnz()
524         else:
--> 525             raise AttributeError(attr + " not found")
526
527     def transpose(self):
AttributeError: format not found
Even when I tried xtr = xtr[[0,1],:], I got the same error...

I can't reproduce this error locally. Try upgrading your installed version of scipy.

Hi perimosocordiae,
I upgraded the scipy to the latest version but got a new error (attached). Is there any other way to fix it? Thanks.

The SystemError indicates that this may be a problem with your Python interpreter, not Scipy. If you're still stuck, try asking on StackOverflow.

Also that the line numbers don't match to the code shown indicates that something is wrong with the scipy installation.

I had a very similar problem, and this was the only reasonable link on Google, so I'll put my fix here. Basically, if you have this problem, you may be trying to load sparse matrices created in a previous version of scipy. My version numbers were "created with 0.18" and "trying to load with 0.19". Downgrading to 0.18 fixed the issue.

@robertlayton loading what, from where?

Private project unfortunately so I can't share code or files, but it was a sparse matrix from scikit-learn. Our servers are 0.18, but auto-updating had some dev machines on 0.19.

Ah, if it was saved using scikit-learn it was probably pickled, which unfortunately isn't the most stable way to store objects. Nothing fundamental changed for sparse matrix formats in 0.19, though, so I'm curious what caused the failure to de-serialize.

i uesed to meet the same bug when i load the data ,created in ubantu, in windows.
i fix this problem by create the same data in the windows and reload it in windows


[CELEBORN-1673] Support retry create client

What changes were proposed in this pull request?
As title
Why are the changes needed?
Currently, only Flink retries establishing a client when a connection problem occurs. This would be beneficial for all other engines to implement as well.
Does this PR introduce any user-facing change?
No
How was this patch tested?
UT

Merged to main(v0.6.0) and branch-0.5(v0.5.3).


Implement login command

This removes the need to pass --user foo with every up and down command by caching a temporary token.

This is scheduled for .4. I'll be tackling this next week.


class heritage L is not an object or null (SyncStore.js:83:7)

When loading browser.min.js
It result in an Uncaught TypeError: class heritage L is not an object or null
at  browser.min.js:3:14236 / SyncStore.js:83:7
It seems that class is defined after first reference.
So BrowserFS_DOM is not defined and lib is unusable.
Workaround:
With npm  --save-dev esbuild-plugin-external-global
Update scripts/build.mjs as following:
import {externalGlobalPlugin} from "esbuild-plugin-external-global";

function externalGlobals(pkg, global, mods) {
  const entries = mods.map(m => [`${pkg}/${m}.js`, global]);
  return Object.fromEntries(entries);
}

const core_externals = externalGlobals('@browserfs/core', 'BrowserFS', [
  'ApiError', 'FileIndex', 'backends/AsyncStore', 'backends/SyncStore',
  'cred', 'file', 'filesystem', 'inode', 'mutex', 'stats', 'utils'
]);

const ctx = await context({
	entryPoints: ['src/index.ts'],
	globalName: 'BrowserFS_DOM',
        /* ... */
        plugins: [
          externalGlobalPlugin(externalGlobals),
          { name: 'watcher', setup(build) {
              /*...*/
          }}
	],
});

Could you please try with the latest release to see if the error has been resolved? (v0.0.6 at the time of writing)

Could you please try with the latest release to see if the error has been resolved? (v0.0.6 at the time of writing)

still error:
Uncaught TypeError: class heritage A is not an object or null (browser.min.js:3:13279)
    BrowserFS_DOM https://www.unpkg.com/@browserfs/fs-dom/dist/browser.min.js:3
    <anonymous> https://www.unpkg.com/@browserfs/fs-dom/dist/browser.min.js:3

Uncaught TypeError: class heritage A is not an object or null
    BrowserFS_DOM SyncStore.js:83
    <anonymous> Worker.ts:104
[SyncStore.js:83:7](https://www.unpkg.com/@browserfs/fs-dom<EMAIL_ADDRESS>

Fixed this by bundling not bundling with the core (not the same way as the PR). Thank you very much for spotting this issue @saoirse-iontach!


Support for google analytics gtag

Hi, I'd like to add support for the google analytics gtag.
As far as I'm aware Hugo doesn't yet support the newer gtag method for analytics and Google actively discourages generating older UA style properties.
I've implemented this on my own site and wondering if it's something worth adding to the theme? I'm happy to do it or make any changes:
New Partial: google-analytics-gtag-async.html
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ .Site.Params.gtagId }}"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', '{{ .Site.Params.gtagId }}');
</script>

Modify: footer.html
{{- if and (hugo.IsProduction) (.Site.Params.gtagId) -}}
    {{ partial "google-analytics-gtag-async.html" . }}
{{- end -}}

Then the gtagId = "G-XXXXXXXXXX" can be added to the [params] block of the config to get it to work, I've made use of the isProduction function so I don't get my development traffic logged.
Cheers.

@Xen-Echo I am sure that could be a valuable contribution. Would you mind opening up a separate PR for it?

@lxndrblz Yes, no worries.


New indexer integration

Motivation
Due to lots of feedbacks related to indexation issues (crashes and slowness) we are building a new indexer
TODO

[ ] The indexer integration is done on Milli's repository. Here is the related PR https://github.com/meilisearch/milli/pull/308

This new indexer optimizes the threads usage
This integration also fixes the memory crashes issues we have (fixed in the grenad dependency)

Once the Milli's release containing the changes is out, the MeiliSearch dependency should be updated in this repository.

[ ] Milli dependency expects for a maximum memory size (an optional of bytes). Since the setting to set this size is not available for the users, we need to choose a value by default: MeiliSearch should pass to Milli 2/3 of the RAM if you can detect the RAM of the machine, otherwise None.
If None, grenad will adapt the memory usage but crashes can still happen (less often than before, but it can)

This impacts the @meilisearch/docs-team because:

the memory disk usage will change. The core team should create the PR to give the new measures.

no memory crash should happen anymore. If there are sections in the docs warning the users, you can remove them.
To explain it in detail: MeiliSearch detects the memory size of the machine and adapts its behavior to optimize the indexation by taking a maximum of 2/3 of the RAM of the machine. This prevents from the crashes without over-consuming the RAM. Also, we always want to keep some RAM to perform the search, that's why we don't use 100% of the RAM.
If MeiliSearch cannot guess the size of the RAM, it still adapts the behavior but some crashes could happen (but less than in previous versions). It's impossible to guess the RAM in rare cases for specific OS. For example, FreeBSD is not supported yet, see the opened issue in the sysinfo lib we use to detect the RAM.
Here is the exhaustive list of the supported OS (in the Rust docs): https://docs.rs/sysinfo/0.20.0/sysinfo/#supported-oses

You have all the information, feel free to add what you want to the docs 😇

@meilisearch/docs-team we are currently doing benchmarks on the new indexer: depending on our results, the documentation can be impacted.
Ex: I said "no crashes are present anymore", the result can be a slight difference 😁
Of course, I'll keep you informed and the core team will help you create the technical pages you need!
Also, more detail about the indexation: I already talked about the RAM consumption, but I did not detail the multi-threading. MeiliSearch's indexation is multi-threaded and used half the available cores. If the machine has 12 cores, only 6 are used. For machines having only 1 core, of course, this single core is used. This way, there are always cores available for the search: using all the core during indexation would mean disable the search during indexation.


Hman 578 audit triage

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/HMAN-578
Change description
Adding code to retrieve serviceName for clientToken
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

PR no longer required


Documentation conflates the words 'URL' and 'origin'

The cors documentation conflates the words URL and origin. Everywhere the word URL appears in the documentation, the word origin should be understood.
I write about this in my blog post.

Thanks for opening this issue. What would you propose?  I can't access the blog link.

Oops, the link is still in draft mode. I hope to finish it tomorrow. The link will work after that.

Sorry for the late reply. Yes, URL and origin are two important web concepts, I feel the user should already have a basic understanding of them.
If you think it's necessary to classify them in the doc, please feel free to send a pull request.


Room - Code block mark down after a space is not applied

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.41-2
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Launch app
Open a room chat
Tap header -- room description
Enter   and tap save
Tap description
Just add a space after description and tap save
Note code block markdown can be seen
Tap plus icon -- assign task
Enter title
Enter description   and tap next
Tap description and add a space and save
Note now code block mark down not applied

Expected Result:
Code block mark down must be applied after a space
Actual Result:
Code block mark down after a space applied in room description but not in task description
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/5c68e4b2-7665-4fe2-905d-2f7e9cca6e2f
View all open jobs on GitHub

@abekkala  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
Editing an inline code block with space-only content will remove all the spaces inside it.
What is the root cause of that problem?
In https://github.com/Expensify/App/issues/48101, we allow spaces only inside an inline code block, for example:
`  `

We do that by replacing the whitespace with &nbsp.
In the new task description page, the saved description will be converted to the HTML first and then converted back to the markdown.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/pages/tasks/NewTaskDescriptionPage.tsx#L80
`  ` -> <code>  </code> -> `  ` (the space here is  , non breaking space)

However, when submitting the form, the description value here contains the inline code block with empty content, all the   inside the content (``) are removed.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/pages/tasks/NewTaskDescriptionPage.tsx#L43-L44
That's because of the prepareValues here.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/components/Form/FormProvider.tsx#L168
In prepareValues, we are removing all invisible characters.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/libs/ValidationUtils.ts#L460
And   is considered as an invisible character.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/libs/StringUtils.ts#L35-L39
Why this doesn't happen on the room description page? That's because, on the room description page, we manually managed the input state. So, when submitting, we use the state value instead of the form provider values.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/pages/RoomDescriptionPage.tsx#L43
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/pages/RoomDescriptionPage.tsx#L57-L63
If we use the form passed values, then the issue will happen too.
const newValue = values.reportDescription.trim();

What changes do you think we should make in order to solve the problem?

Since we replace whitespace with   when converting markdown to HTML, we need to replace   with whitespace when converting from HTML to markdown.
https://github.com/Expensify/expensify-common/blob/f11184e88c2e211c3a9423d8c87291b44722576e/lib/ExpensiMark.ts#L638-L640
replacement: (_extras, _match, _g1, g2) => `\`${g2.replaceAll(' ', ' ')}\``,

What alternative solutions did you explore? (Optional)
I think we shouldn't include   as the invisible character because the character is totally visible. I think the reason we remove it is explained by these comments:
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/libs/StringUtils.ts#L41-L50
\p{Cc} matches the new line too, so to prevent replacing the new line with an empty string, we replace all new lines to nbsp first, and then convert all nbsp back to the new line. An alternative way to prevent removing the new line is by splitting the string by new line first, doing the replacement, and then join the strings back.
result = result.split("\n").map((part) => part.replace(/[\p{Cc}\p{Cs}\p{Co}\p{Cn}]/gu, '')).join("\n");

This way, we don't need to remove the nbsp.
https://github.com/Expensify/App/blob/d18766580c7e35e439ff933f3097366e36c6ceca/src/libs/StringUtils.ts#L35-L39
result = result.replace(/[\u200B\u2060]/g, '');
result = result.split("\n").map((part) => part.replace(/[\p{Cc}\p{Cs}\p{Co}\p{Cn}]/gu, '')).join("\n");

PR is ready
cc: @ZhenjaHorbach

@twisterdotcom I'll be ooo until Mon Oct 21
Given that the PR has not yet deployed to prod starting the 7 day waiting period yet I don't expect this to come to payment before I return from ooo on Oct 21.
STATUS: proposal selected, PR created but not yet deployed to production
Payment Summary [date, TBD]:

Fix: @bernhardoj [$250, if no regressions] payment made via NewDot
PR Review: @ZhenjaHorbach [$250, if no regressions] OFFER

I'm back from ooo - unassigning @twisterdotcom

PAYMENT SUMMARY FOR OCT 24

Fix: @bernhardoj [$250, if no regressions] payment via NewDot
PR Review: @ZhenjaHorbach [$250, if no regressions] Offer

Requested in ND.

@ZhenjaHorbach, can you complete the checklist above so that I can issue payment today? Thanks!

@ZhenjaHorbach payment sent and contrct ended - thank you! 🎉

Pasting summary once more as it got a little buried above:
PAYMENT SUMMARY FOR OCT 24

Fix: @bernhardoj [$250] payment via NewDot
PR Review: @ZhenjaHorbach [$250] - paid 🎉

$250 approved for @bernhardoj


Updating TopicProperties with AuthorizationRules returns 400 Bad request

Using azure-messaging-servicebus:7.13.4, updating TopicProperties with non-empty AuthorizationRules returns 400 Bad request. This happens regardless if the rule is created in the Azure Portal or attempted created using the Java client.
In earlier versions (up to azure-messaging-servicebus:7.13.3), the same invocation would "work", but silently remove any existing AuthorizationRules existing for the topic. Attempting to create rules from the Java client has no effect in this version.
The exact API method that causes this incorrect behavior is:
 ServiceBusAdministrationClient#updateTopic(TopicProperties)

Exception or Stack Trace
Using azure-messaging-servicebus:7.13.4 causes the following exception:
Exception in thread "main" com.azure.messaging.servicebus.administration.implementation.models.ServiceBusManagementErrorException: Status code 400, "<Error>400<Detail>Bad Request. To know more visit https://aka.ms/sbResourceMgrExceptions. . TrackingId:bfe78ab4-0ece-4f7d-8483-d1cab5b2598d_G3, SystemTracker:NoSystemTracker, Timestamp:2023-05-09T11:50:33</Detail></Error>"
	at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)
	at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:56)
	at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:356)
	at com.azure.core.implementation.http.rest.SyncRestProxy.ensureExpectedStatus(SyncRestProxy.java:130)
	at com.azure.core.implementation.http.rest.SyncRestProxy.handleRestReturnType(SyncRestProxy.java:213)
	at com.azure.core.implementation.http.rest.SyncRestProxy.invoke(SyncRestProxy.java:81)
	at com.azure.core.implementation.http.rest.RestProxyBase.invoke(RestProxyBase.java:109)
	at com.azure.core.http.rest.RestProxy.invoke(RestProxy.java:91)
	at jdk.proxy2/jdk.proxy2.$Proxy3.putSync(Unknown Source)
	at com.azure.messaging.servicebus.administration.implementation.EntitiesImpl.putWithResponse(EntitiesImpl.java:355)
	at com.azure.messaging.servicebus.administration.ServiceBusAdministrationClient.updateTopicWithResponse(ServiceBusAdministrationClient.java:1749)
	at com.azure.messaging.servicebus.administration.ServiceBusAdministrationClient.updateTopic(ServiceBusAdministrationClient.java:1706)
	at com.example.Main.main(Main.java:43)

(earlier versions of the SDK will not cause exception, but instead silently remove any existing authorization rules).
To Reproduce
Steps to reproduce the behavior:
Using 7.13.4:

Compile and run the below code snippet, using a valid connection string
See that the code throws the above exception
Optional, verify that the topic is created, but doe not have any authorization rule

Using 7.13.3:

Compile and run the below code snippet, using a valid connection string
See that the code prints "Updated"
Verify that the topic is created, but doe not have any authorization rule
Optional, create authorization rule in Azure portal/UI, re-run steps 1-3, and verify that the authorization rule is removed

Code Snippet
ServiceBusAdministrationClient administrationClient = new ServiceBusAdministrationClientBuilder()
        .connectionString("****")
        .buildClient();

// Get or create topic
String topicName = "test-topic";
TopicProperties topic = administrationClient.getTopicExists(topicName)
                ? administrationClient.getTopic(topicName)
                : administrationClient.createTopic(topicName);

// Print some properties
System.out.println("topic.getName() = " + topic.getName());
System.out.println("topic.getUserMetadata() = " + topic.getUserMetadata());
for (AuthorizationRule authorizationRule : topic.getAuthorizationRules()) {
    System.out.println("topic.getAuthorizationRules() = " + authorizationRule.getKeyName() + ", " + authorizationRule.getClaimType());
}

// Update something to verify the update
topic.setUserMetadata("Updated by Java @" + LocalDateTime.now());

// Add AuthorizationRule if none exists
List<AuthorizationRule> authorizationRules = topic.getAuthorizationRules();
if (authorizationRules.isEmpty()) {
    authorizationRules.add(new SharedAccessAuthorizationRule("java-test", List.of(AccessRights.MANAGE, AccessRights.LISTEN, AccessRights.SEND)));
}

//  * 7.13.3, "Works", BUT does not create new AuthorizationRule and removes existing rules...
//  * 7.13.4 Gives 400 Bad request if any AuthorizationRule exists/is created
//  * 7.14.0-beta.1 (same behavior as 7.13.3, build is older than 7.13.4)
// (Similar code, using the .Net API works as expected)
administrationClient.updateTopic(topic);
System.out.println("Updated");

Expected behavior
The code sample should print some values, then update the topic with given values, and finally print "Updated", without exceptions and keeping any existing authorization rule or creating a new if none exists.
We have recreated the above Java program in .net, using the .net SDK and verified that the it works as expected. This leads us to believe this is a problem with the Java SDK, and not the Azure APIs.
Setup (please complete the following information):

OS: Test concluded on MacOS, same behavior is observed in Linux stage and production environments.
IDE: IntelliJ with Gradle 8 (but doesn't really matter)
Library/Libraries: com.azure:azure-messaging-servicebus:7.13.4 with com.azure:azure-core:1.39.0 (as noted, earlier versions show different behavior, but still broken)
Java version: 17 (OpenJDK java 17 2021-09-14 LTS)
App Server/Environment: N/A
Frameworks: N/A

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

Full compilable project, using Gradle.
azure-sb-test.zip

Through the debugger, I can se that the actual HTTP request is a PUT to https://sbn-***.servicebus.windows.net/test-topic?api-version=2021-05 with headers Content-Length=3336, Content-Type=application/atom+xml, If-Match=*, Accept=application/xml, application/atom+xml and actual payload below.
It all looks reasonable to me, and the generic 400 "Bad request" response doesn't give any pointers to what might be "bad" about the request. With a little help, I might have been able to create a PR for this...
Atom/XML payload:
<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <wstxns1:TopicDescription xmlns:wstxns1="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <wstxns1:DefaultMessageTimeToLive>P10675199DT2H48M5.477S</wstxns1:DefaultMessageTimeToLive>
            <wstxns1:MaxSizeInMegabytes>1024</wstxns1:MaxSizeInMegabytes>
            <wstxns1:RequiresDuplicateDetection>false</wstxns1:RequiresDuplicateDetection>
            <wstxns1:DuplicateDetectionHistoryTimeWindow>PT1M</wstxns1:DuplicateDetectionHistoryTimeWindow>
            <wstxns1:EnableBatchedOperations>true</wstxns1:EnableBatchedOperations>
            <wstxns1:SizeInBytes>0</wstxns1:SizeInBytes>
            <wstxns1:FilteringMessagesBeforePublishing>false</wstxns1:FilteringMessagesBeforePublishing>
            <wstxns1:IsAnonymousAccessible>false</wstxns1:IsAnonymousAccessible>
            <wstxns1:AuthorizationRules>
                <wstxns1:AuthorizationRule xmlns:wstxns2="http://www.w3.org/2001/XMLSchema-instance" wstxns2:type="SharedAccessAuthorizationRule">
                    <wstxns1:ClaimType>SharedAccessKey</wstxns1:ClaimType>
                    <wstxns1:ClaimValue>None</wstxns1:ClaimValue>
                    <wstxns1:Rights>
                        <wstxns1:AccessRights>Manage</wstxns1:AccessRights>
                        <wstxns1:AccessRights>Listen</wstxns1:AccessRights>
                        <wstxns1:AccessRights>Send</wstxns1:AccessRights>
                    </wstxns1:Rights>
                    <wstxns1:CreatedTime>2023-05-10T16:16:09.153310900Z</wstxns1:CreatedTime>
                    <wstxns1:ModifiedTime>2023-05-10T16:16:09.153310900Z</wstxns1:ModifiedTime>
                    <wstxns1:KeyName>foo</wstxns1:KeyName>
                    <wstxns1:PrimaryKey>***</wstxns1:PrimaryKey>
                    <wstxns1:SecondaryKey>***</wstxns1:SecondaryKey>
                </wstxns1:AuthorizationRule>
            </wstxns1:AuthorizationRules>
            <wstxns1:Status>Active</wstxns1:Status>
            <wstxns1:CreatedAt>2023-05-10T14:52:02.808893700Z</wstxns1:CreatedAt>
            <wstxns1:UpdatedAt>2023-05-10T16:16:09.166329900Z</wstxns1:UpdatedAt>
            <wstxns1:AccessedAt>0001-01-01T00:00:00Z</wstxns1:AccessedAt>
            <wstxns1:SupportOrdering>false</wstxns1:SupportOrdering>
            <wstxns1:CountDetails>
                <wstxns3:ActiveMessageCount xmlns:wstxns3="http://schemas.microsoft.com/netservices/2011/06/servicebus">0</wstxns3:ActiveMessageCount>
                <wstxns4:DeadLetterMessageCount xmlns:wstxns4="http://schemas.microsoft.com/netservices/2011/06/servicebus">0</wstxns4:DeadLetterMessageCount>
                <wstxns5:ScheduledMessageCount xmlns:wstxns5="http://schemas.microsoft.com/netservices/2011/06/servicebus">0</wstxns5:ScheduledMessageCount>
                <wstxns6:TransferDeadLetterMessageCount xmlns:wstxns6="http://schemas.microsoft.com/netservices/2011/06/servicebus">0</wstxns6:TransferDeadLetterMessageCount>
                <wstxns7:TransferMessageCount xmlns:wstxns7="http://schemas.microsoft.com/netservices/2011/06/servicebus">0</wstxns7:TransferMessageCount>
            </wstxns1:CountDetails>
            <wstxns1:SubscriptionCount>0</wstxns1:SubscriptionCount>
            <wstxns1:AutoDeleteOnIdle>P10675199DT2H48M5.477S</wstxns1:AutoDeleteOnIdle>
            <wstxns1:EnablePartitioning>false</wstxns1:EnablePartitioning>
            <wstxns1:EntityAvailabilityStatus>Available</wstxns1:EntityAvailabilityStatus>
            <wstxns1:EnableSubscriptionPartitioning>false</wstxns1:EnableSubscriptionPartitioning>
            <wstxns1:EnableExpress>false</wstxns1:EnableExpress>
            <wstxns1:UserMetadata>Updated by Java @2023-05-10T18:16:24.400742</wstxns1:UserMetadata>
            <wstxns1:MaxMessageSizeInKilobytes>256</wstxns1:MaxMessageSizeInKilobytes>
        </wstxns1:TopicDescription>
    </content>
</entry>

Okay, it seems the issue is really a problem the Azure service (server side), that is known and worked around in the SDK, related to name spaces in AuthorizationRule... Except not for the topic case.
See the following comment in ServiceBusManagementSerializer.java:
https://github.com/Azure/azure-sdk-for-java/blob/6eef53eff51432a441ba71043539b0b47d7a9da5/sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/administration/implementation/ServiceBusManagementSerializer.java#L51-L54
I fixed the issue by adding the CreateTopicBodyImpl.class to the list of classes that is tested for, and applying the hack in this case too. Will create a PR.

Hi, I filed this issue along with a PR to fix it (including a test case that will fail without the patch applied) almost 4 weeks ago, but have not received any feedback whatsoever. Is this normal?

@haraldk, apologize for not following up here :( .. Thank you for debugging and finding the root cause. I looked into the PR you opened and looks great to me!


Cartfox 3.0

stops the cart quantities jumping up and down

This won't be required with the new version.


noSuchMethod not needed anymore for Mock classes

Previously there was an analyzer warning when writing Mock classes like this (with mockito or mock):
class MockRequestContext extends Mock implements RequestContext {}

It would warn about unimplemented member variables and methods. So it was necessary to add a noSuchMethod function.
In recent versions of dart, this is not necessary anymore.
Is this a bug or a feature?

I believe it's a bug-fix.
The specification requires a warning if a class doesn't implement its interface, unless the class overrides the noSuchMethod inherited from Object.
The analyzer was previously giving warnings unless the class itself declared a noSuchMethod, whether or not it inherited one from a superclass (other than `Object). That was incorrect.
(I don't know if the spec changed on this at some point.)

Ah Ok @lrhn , so if any of my superclasses (except Object) implements noSuchMethod then there is no warning? Makes sense. I'm closing this then.


Bug Fix - Download page link now points to vX.X.X

Fixes #982
Changes:
Bug Fix - Added a letter v so that it points to a correct URL( https://github.com/processing/p5.js/releases/download/v1.3.1/p5.zip .) @outofambit @lmccart please review this PR.
Screenshots of the change:
Running on local Host

Thanks

it needs to be changed everywhere there's [p5_version], lines 62 and 72 as well


add ut for tail

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
add some ut
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

NONE

/ok-to-test

/approve
/lgtm


Interacting with 3rd party libraries that set inline styles

Hi, If I set a style property, say color: yellow, and then a 3rd-party library adds it's own inline styles which sets color to red. How do you go about clearing that out and making the color yellow again?
Here's a jsfiddle to illustrate this scenario: https://jsfiddle.net/cd9ej2v0/6/
Steps to reproduce in the jsfiddle:

If you click the on off button you will see that the text color stays yellow
If you click the simulate 3rd party lib button you will see the text turn red
Now if you press the on/off button the text color will never go back to yellow

Other properties defined in my style object get applied/removed appropriately, but I can't make it go back to yellow.
Thanks.

React doesn't really play well with other libraries; this isn't a Radium issue in particular. In general, you should either control a subtree 100% with React or 100% by a third party. Mix and matching will usually not work well.

@ianobermiller Thanks for the feedback! Appreciate it.


[BUG]: Panel sets Content Y and Height to minus numbers so the content is displayed off screen

Describe the bug
We have a panel that gets shown / hidden multiple times on the same screen - the visibility is controlled via a boolean "showPanel" and the X/Y/Height/Width of the content layout container are all set to panel.Content*
The first time showPanel is set to true, everything is displayed correctly. Anytime after showPanel is set to true, the Content Y and Content Height are set to numbers that display the content layout container off the screen

PS: If I remove the subtitle from the panel, the Content Y / Height work every time.

also repro'd for me and the CoE Flows page usage of this component.


SwiftMessages errors look sort of wonky

This could stand to look more polished :-\

[ ] Needs design
[ ] Needs implementation

@aaronbrethorst Is it necessary to have the url presented to users? If removing the url will make it look better, I think I can fix this real quick.

Maybe log it in console, but don't show in alert

I've included a design and an alternative to the URL, which I agree is ugly.


[v2] fix: assign swiper on initSwipers

This PR fixes problems with swipeable tabs which need .swiper reference.  (here) Also, swiper existence is ensured to prevent any uncaught errors.

I agree with having double check for swiper, but swiper element assignment already happens in the swiper core at https://github.com/framework7io/Framework7/blob/v2/src/components/swiper/swiper-class/components/core/core-class.js#L89

Yes. So that may be another problem but if we combine (swiperable + routable) tabs example and without this line it throws an error that swiper is undefined. BTW I can revert 9e8c18d as you already marked that demos as TODO :)

Thanks! Yes, there is an issue with swipeable-routable tabs. They don't support to be "routable" at the moment.


attempt to index global 'cv' (a nil value)

Try to run the following codes
require 'image'
require 'cv'
require 'cv.highgui'
require 'cv.videoio'
require 'cv.imgproc'
require 'cv.imgcodecs'
require 'nn'
lena_p = image.load('/home/xie/codes/lena1.jpg')
cv.imshow{"lena",lena_p}
THEN
Got a wrong message:
/home/xie/torch/install/bin/luajit: /home/xie/codes/test.lua:14: attempt to index global 'cv' (a nil value)
stack traceback:
/home/xie/codes/test.lua:14: in main chunk
[C]: in function 'dofile'
.../xie/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
[C]: at 0x00405d70
===========================
global 'cv' ?  why?
I mean I already use the  "  require 'cv'  " to make sure it is included.
Can anyone tell me how to fix it?

@soumith can you help me to solve it ?
attempt to index global 'cv' (a nil value)

@xiestone1992 You need to do
cv = require 'cv'

because require 'cv' returns the package but not adds it to the global namespace.

@fmassa it seems work for me !
THX！


Double clicking an activity on the timeline should open selected activity panel

Viewing activity details requires switching the view and then clicking the activity.
We should make view details of activity as simple as possible.
Double click is a reasonable option I think, feel free to explore other options.

also see this: https://jira.jpl.nasa.gov/browse/AERIEQS-402

Should this also apply to the directives/spans table?


[New chain]: Mode Testnet 1.4.1

Summary

https://github.com/safe-global/safe-deployments/pull/597
https://github.com/ethereum-lists/chains/blob/master/_data/chains/eip155-919.json

Chain ID
919
Chain detail URL
https://chainlist.org/chain/919
RPC URL
https://mode-testnet.drpc.org
Blockscout Client URL
No response
Etherscan Client URL
No response
Etherscan Client API URL
No response
Version
1.4.1
Address (Master copy)
0x41675C099F32341bf84BFc5382aF534df5C7461a
Deployment Tx hash (Master copy)
0x8bff3bffa2a4b239571d3ac3dde0b2ab2f8a3aad43196af69099277205dc3589
Block explorer URL (Master copy)
https://testnet.modescan.io/address/0x41675C099F32341bf84BFc5382aF534df5C7461a
Address (Master copy L2)
0x29fcB43b46531BcA003ddC8FCB67FFE91900C762
Deployment Tx hash (Master copy L2)
0x3d9f617b4c36e1f9f91b44b82c16d0e04e9c28bfd019cdf336b2f8e4b8c0d5bd
Block explorer URL (Master copy L2)
https://testnet.modescan.io/address/0x29fcB43b46531BcA003ddC8FCB67FFE91900C762
Address (Proxy factory)
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Deployment Tx hash (Proxy factory)
0x3fa5e6bb781b3554b6864c4a4ec63b0afdd808d940c67bc6fe8ffa4d8d14e824
Block explorer URL (Proxy factory)
https://testnet.modescan.io/address/0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67

/execute


PAPIv3: open and close thermocycler lid

Overview
As a protocol author, I would like to command my thermocycler's lid to open and close
Acceptance criteria

[ ] thermocycler_module_context.open_lid
[ ] thermocycler_module_context.close_lid
[ ] thermocycler/openLid JSON command
[ ] thermocycler/closeLid JSON command

Implementation notes

Requires two new ProtocolEngine commands
See JSON protocol schema v6 for command params
This ticket takes over for #8547

ProtocolEngine resolved. Close ticket and write PAPIv3 ticket for later

PAPIv3 acceptance criteria moved to #10887. This ticket closed by #10760


paket bootstrapper should not be a simple script ?

Committing binary files to version control does not seem to be a good idea to me.
Paket bootstrapper should not be a simple script that downloads paket.exe ?

if you find a way to make that reliably work on all plattforms then I'm very interested

Maybe a script for Windows and another for Linux based platforms, or even .fsx scripts should take care of this task. What you think?

it just doesn't work that nice than the very very very little bootstrapper

Closing as explained


Conditionally rendering on submitting results in empty values and no validation

https://stackblitz.com/edit/modular-forms-solid-gluqpu?file=src/routes/login.tsx
When you press submit, check the console: values is an empty object, no email. If you extract the form outside of the Show, or change the when to something else, it's fine

This behavior is expected. Modular Forms detects if a field is in the DOM and sets a active state depending on it. If a field is inactive its value is not captured by default. You can see this behavior here in the debugger when you change the value of the type field. This behavior allows optional fields to be captured only when necessary.
In your example the following happens. After the form is submitted, the state of submitting is set to true. Then the values of the fields are retrieved and passed to your onSubmit handler. However, since setting submitting causes the Show component to remove the fields from the DOM, they are marked as inactive and no longer end up in the final values of the form. The source code of the Form component can be found here.
For a quick fix, you can either tell the Form component with the shouldActive property to also capture the values of inactive fields, or you can individually tell each Field component with the keepActive property to keep it active. If more people approach me with this "problem", I will think about whether it would be useful to revise the implementation. For example, I could try capturing the values before setting the submitting state to true.

Gotcha, yeah I get how it’s expected from the implementation details, but definitely comes across as a bug, and a hard one to debug at that. I also don’t think it’s too rare of a pattern to hide the form and show a loader instead while it’s submitting, so I’m guessing other people will run into this.
It’s easy to work-around once you know what the issue is, but sort of mysterious and unexpected imo.

You are right that this is somewhat unexpected and probably most would expect different behavior. I'll give it some thought. However, do not expect a quick reaction. I do not have so much time at the moment.

Hey, I'm getting this issue too, with fields that are in popover components. I try to add shouldActive keepActive etc but it doesn't work...
https://github.com/fabian-hiller/modular-forms/assets/28579123/77a426c5-c72d-4ec5-90f1-533ab51bceea
So to make it works I added hidden inputs in the page
<FieldArray name="tags" keepActive>
    {(fieldArray) => (
      <For each={fieldArray.items}>
        {(_, index) => (
          <Field name={`tags.${index()}`}>
            {(_, props) => (
              <input {...props} type="text" class="sr-only" />
            )}
          </Field>
        )}
      </For>
    )}
</FieldArray>

The result
https://github.com/fabian-hiller/modular-forms/assets/28579123/2b99151a-fd01-45ed-a7c6-aa7819d970e4
I hope it will help other people facing this "issue"

Hey @armandsalle I think the problem has a different origin with you. Can you provide me a minimal reproduction in StackBlitz? You can fork my project and use it as a template.

I have thought about this issue again. On one hand, I understand the problem and agree that this is somewhat unexpected. On the other hand, I think it is a bad practice to remove the elements with Show from the DOM for accessibility reasons. Instead, the relevant information should be passed to the user in some other way. For example, by using the disabled attribute in combination with CSS for visual feedback. For this reason, I don't want to make any changes to the code of the library for the time being. Nevertheless, should other people encounter similar problems, I will think about it again.


Error handling

Description
This handled asynchronous errors and other global errors. Try...catch can be omitted. Also, logging errors to files were also implemented. When some unknown error occurs we can keep records of it on logs/*.log files.
The packages, winston was used for logging errors to files, and express-async-errors was used to handle asynchronous errors.
Fixes #66 (issue)
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[x] Chore: error handling chore

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

routes/user.js was used to test the changes.
If this is a good candidate to be merged, then we can update all other files, by removing  try...catch blocks.

With respect to error logging. One can either do this
//const AppError = require AppError from config/ folder
...
throw new AppError("Missing required fields" , 400);

OR
throw new Error("Missing required fields");
This works, it would be encouraged to use the express response object, if available,  to return error responses.
This is because any exception or error thrown using Error or its subclasses would be logged to the log files. It is better to do this:
return res.status().send({
  success: false,
  message: 'invalid password or email'
})

Instead of this:
throw new AppError( 'invalid password or email' , 400);
// OR
throw new Error( 'invalid password or email');

This way, we don't get to log unnecessary errors to the file. Yes, `invalid password or email' shouldn't be logged it should be told to the client/user.
Note: that this commit handles Unknown exceptions or a known one if thrown as described above.
@anomic30

With respect to error logging. One can either do this
//const AppError = require AppError from config/ folder
...
throw new AppError("Missing required fields" , 400);

OR
throw new Error("Missing required fields");
This works, it would be encouraged to use the express response object, if available, to return error responses. This is because any exception or error thrown using Error or its subclasses would be logged to the log files. It is better to do this:
return res.status().send({
  success: false,
  message: 'invalid password or email'
})

Instead of this:
throw new AppError( 'invalid password or email' , 400);
// OR
throw new Error( 'invalid password or email');

This way, we don't get to log unnecessary errors to the file. Yes, `invalid password or email' shouldn't be logged it should be told to the client/user.
Note: that this commit handles Unknown exceptions or a known one if thrown as described above.
@anomic30

In the future, this can be solved....but for now, this is very handy. Yes, you throw errors where do not have access to the express response object and return errors where you do.

Hi @ezehlivinus, we don't need to log unnecessary errors related to login/register.
We should return the error to the client like this:
return res.status(401).send({
  success: false,
  message: 'invalid password or email'
})

Also, we should be able to send errors to the client when the server is down.

This Pull Request is due for review and merge.
cc/
@anomic30


ui.input_dark_mode not available in version 0.10.1

File "D:\Projects\shinyspring_git\templates\simple_navbar\app.py", line 70, in
ui.nav_control(ui.input_dark_mode(id = "mode" ,mode = "light")),
Pip freeze -
shiny==0.10.1
shinyswatch==0.6.1
shinywidgets==0.3.2

ui.input_dark_mode() was added in shiny v0.8.0. Are you sure you're using v0.10.1? You can add the following somewhere in your app's UI to confirm
f"Shiny version: {shiny.__version__}"


SpinXsk failed with 1460 (ERROR_TIMEOUT)

https://github.com/microsoft/xdp-for-windows/actions/runs/9663469753/job/26678786620?pr=571 has the full data. But as far as I can tell, it just timed out.

VERBOSE: C:\vss-agent\2.317.0\_work\xdp-for-windows\xdp-for-windows\artifacts\bin\amd64chk\spinxsk.exe -IfIndex 15
-QueueCount 2 -Minutes 10 -Stats -SuccessThresholdPercent 1 -WatchdogCmd
C:\vss-agent\2.317.0\_work\xdp-for-windows\xdp-for-windows\artifacts\corenet-ci-285f2f66ac3319220c663312e93da28af9e9365
e\vm-setup\livekd64.exe -o
C:\vss-agent\2.317.0\_work\xdp-for-windows\xdp-for-windows\artifacts\logs\spinxsk_watchdog.dmp -k
C:\vss-agent\2.317.0\_work\xdp-for-windows\xdp-for-windows\artifacts\corenet-ci-285f2f66ac3319220c663312e93da28af9e9365
e\vm-setup\kd.exe -ml -accepteula -EnableEbpf

LiveKd v5.63 - Execute kd/windbg on a live system
Sysinternals - www.sysinternals.com
Copyright (C) 2000-2020 Mark Russinovich and Ken Johnson

Saving live dump to C:\vss-agent\2.317.0\_work\xdp-for-windows\xdp-for-windows\artifacts\logs\spinxsk_watchdog.dmp... done.
WATCHDOG exceeded on queue 0


PyLint Panel Still broken

From<EMAIL_ADDRESS>on 2010-02-02T15:51:42Z
What steps will reproduce the problem?

Run PyLint on a file multiple times while coding.
Notice that it does not always update with the latest output (the time
displayed will not be current when this occurs).
If you run it enough times, the time field will display the current time
instead of the time from a previous run.  The results are also correct at
this time. What is the expected output? What do you see instead? The time and output from the current run, not some old stale output. What version of the product are you using? On what operating system? Spyder 1.0.3, python 2.6 on Windows XP

Please provide any additional information below
. It appears for some reason Spyder is using some stale output instead of the
current output.  I have not dove into the code to attempt to debug this at
all.  Typically if you click the Output button, the displayed output there
is correct.
pylint.bat --version
No config file found, using default configuration
pylint.bat 0.18.1,
astng 0.19.1, common 0.45.0
Python 2.6.1 ( r261 :67517, Dec  4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)]
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=144

From<EMAIL_ADDRESS>on 2010-02-03T14:22:45Z
My prior steps to reproduce this problem weren't quite complete.  The user must be
running PyLint on multiple files.
I believe I've discovered the cause of this bug and the fix for this issue and issue
145 .  The bug is in the behavior of the set_data function and the assumption of the
analyze function (both in the PylintWidget class).  The analyze function assumes the
order of the combobox and self.data is synchronized.  The problem is the method in
which set_data stores a new result of a previously analyzed file.  It currently pops
the result for the old analysis from it's current location and appends the new result
at the end of self.data.  This causes the possibility that the combobox filename
order may be different than the order of the data in self.data and thus causes
analyze to sometimes incorrectly set the combobox index number.  This manifests
itself as "random" changing of the file selected in the combobox and analysis of this
file, additional instances of the original file for analysis being added into the
combobox list, and/or the analysis output for the selected file not being brought up
to date (and possibly corrupting the prior analysis of a different file).
The fix is to just insert the new data at the same location in self.data so that the
order of the combobox and self.data stay synchronized.  Only append new data when it
did not previously exist in self.data.
I'm going to attempt to check in the changes to the hg repository.

From pierre.raybaut on 2010-02-20T00:52:16Z
fixed in mercurial repository
Status: Fixed


Structure Overhaul

What's been changed?

Overhauled project structure to more modular module structure. Example structure:

MODULE_NAME

index.ts: Exports module function & types
MODULE_NAME.module.ts: Actual module handler / fetching logic
MODULE_NAME.test.ts: Basic testing for this specific module
MODULE_NAME.types.ts: Types specific to this module & the PUBG API

Added /types & /constants exports to package.json
Added basic testing used Vitest
Added CI GitHub workflow
Removed example Vite project
Fixed some types (Game, Platform, etc)
Added environment.d.ts to add PUBG_API_KEY to process.env
Added import path aliases to tsconfig.json
Upgraded dependencies

I DID NOT CLICK THAT

😂


Bug: Some characters are missing

Describe the bug
Several of the "new" Fabled are missing e.g. bootlegger https://botcscripts.com/script/4337/1.0.0

There's a list of characters in https://script.bloodontheclocktower.com/data/roles.json
We should find out which ones we're missing and then add them. Probably wants an admin debug page to do that.

I now have a secret admin page for this.


Skeleton Tracking with voxelsdk

Can I please know how to implement skeleton tracking using voxelsdk ?

Look for open source application that uses point cloud and OpenNI/NITE.  You can probably leverage those libraries.  voxelsdk outputs the same types of depth/amplitude and 3d data as Kinect.

Hi Thanks for your response.
The pcl(point cloud library) has openi/nite viewer which works fine with kinect v1 and v2.
I am trying to use voxel for TI sensors which does not work with openi/nite as they work only with kinect.
Could I please know how to use voxel or any other library to implement skeleton tracking with Ti's TOF sensors

@ashokbugude:  You may want to try this:
YouTube:
https://www.youtube.com/watch?v=FmXbS5DkSsw
Code:
https://github.com/Norman0406/OpenSkeletonFitting
Look in the OpenSFInput folder, and follow the InputKinect class example to create a new input class InputVoxel by deriving from the Input class.

Here is another solution, base on TI sensors, with fully compatible with OpenNI V1.5 and 2.2
https://www.youtube.com/watch?v=_qrw2AhSthI

You could use this
http://www.lips-hci.com/products/sdk/

Closing, this is not a voxelsdk issue.


Gradient Accumulation Support

Is there currently support for gradient accumulation? If not, do you have any hints on how/where I can implement it in this project?

Hi, Pointcept currently does not support gradient accumulation but I do plan to add it in the next version. You can consider modifying the code here (https://github.com/Pointcept/Pointcept/blob/main/pointcept/engines/train.py#L183). You can access the config dictionary by self.cfg.


Not working locally

I have an alias to a project of mine called eventos.dev and when I go to the main route, it is detected as a favicon route.
I have checked the code, and according to it, there are 2 matches and that is why the 404 is shown.

What do you mean by alias? Also, what is the the full route of your main route? That will help me look into this. Thanks!

By alias I mean a host alias. "eventos.dev" points to the / route in my project.
I printed the file variable you have and it echoed "eventos.dev".
Can't tell you much more because I have removed the package, sorry,

This should now be fixed in release 0.2.1. Thank you @jaumeavila for reporting this! (I hadn't implemented the plugin myself yet, which I should have.) I added additional unit test to test for a valid base route, and well as a the favicon specific routes.


Change name to p5js-electron-templates

We could aim to provide base templates for different types of common p5.js projects. Here are my suggested title and description.
Title
p5js-electron-templates
Description
A set of p5.js templates that run as Electron apps.

Happily done...


Remove kernel cache as its not used

We're not reading from the cache, hence removed it (fewer unnecessary disk writes).

@rchiodo
Its read a lot, however we cache the promise https://github.com/microsoft/vscode-jupyter/blob/fad999e807ce74ae415cd27aeb23da9d5abe30d0/src/client/datascience/kernel-launcher/localKernelFinder.ts#L149-L149
Hence for every session, we only ever do this once per workspace.

@rchiodo
Its read a lot, however we cache the promise
https://github.com/microsoft/vscode-jupyter/blob/fad999e807ce74ae415cd27aeb23da9d5abe30d0/src/client/datascience/kernel-launcher/localKernelFinder.ts#L149-L149
Hence for every session, we only ever do this once per workspace.

Seems like that would be problematic when people add new environments. But I guess we have that issue with interpreters too.

Codecov Report

Merging #5619 (8f70876) into main (70a6e7b) will decrease coverage by 3%.
The diff coverage is 100%.

:exclamation: Current head 8f70876 differs from pull request most recent head fad999e. Consider uploading reports for the commit fad999e to get more accurate results

@@           Coverage Diff           @@
##            main   #5619     +/-   ##
=======================================
- Coverage     72%     68%     -4%
=======================================
  Files        402     401      -1
  Lines      26724   26691     -33
  Branches    3899    3891      -8
=======================================
- Hits       19458   18369   -1089
- Misses      5634    6800   +1166
+ Partials    1632    1522    -110

Impacted Files
Coverage Δ

...t/datascience/kernel-launcher/localKernelFinder.ts
81% <100%> (-3%)
:arrow_down:

.../datascience/jupyter/kernels/cellExecutionQueue.ts
10% <0%> (-83%)
:arrow_down:

...ience/variablesView/variableViewMessageListener.ts
22% <0%> (-78%)
:arrow_down:

src/client/datascience/jupyter/kernels/kernel.ts
9% <0%> (-73%)
:arrow_down:

...ent/common/application/webviewViews/webviewView.ts
14% <0%> (-72%)
:arrow_down:

...lient/datascience/jupyter/kernels/cellExecution.ts
6% <0%> (-66%)
:arrow_down:

...ent/datascience/jupyter/kernels/kernelExecution.ts
12% <0%> (-62%)
:arrow_down:

...c/client/datascience/variablesView/variableView.ts
18% <0%> (-58%)
:arrow_down:

src/client/datascience/webviews/webviewViewHost.ts
19% <0%> (-53%)
:arrow_down:

...t/datascience/notebook/vscodeNotebookController.ts
35% <0%> (-51%)
:arrow_down:

... and 77 more

But I guess we have that issue with interpreters too.

Would be as simple as invalidating this cache when we detect new enviroments from Python extension.