Rust templates

Depends on https://github.com/boson-project/buildpacks/pull/95
Open questions:

I added a test-rust make target, but didn't add it to the existing test target yet. Does CI run that? Is cargo available there?
I did not reference a specific tagged version of the builder image in .builders.yaml and I'm not sure who makes latest available. Is that also CI?
Should I squash these to make a more cohesive commit message?

Open questions:
1. I added a `test-rust` make target, but didn't add it to the existing `test` target yet. Does CI run that? Is `cargo` available there?

We use GH Actions for CI, and yes you can add cargo https://github.com/actions-rs/cargo.

2. I did not reference a specific tagged version of the builder image in `.builders.yaml` and I'm not sure who makes `latest` available. Is that also CI?

Yes when we publish a new version CI pushes to quay.io

3. Should I squash these to make a more cohesive commit message?

Your choice. We can squash when landing too.

We use GH Actions for CI, and yes you can add cargo https://github.com/actions-rs/cargo.

Where do I add that, exactly?

We use GH Actions for CI, and yes you can add cargo https://github.com/actions-rs/cargo.

Where do I add that, exactly?

Here you can find the GH Actions definitions, that are being used by CI and for PR validation.

Where do I add that, exactly?

Here you can find the GH Actions definitions, that are being used by CI and for PR validation.

Thanks. I saw that, but couldn't figure out where the other langs were being configured and then thought, "maybe rust is available, by default?" So I just updated the test target and everything worked. Yay!

Ok, I squashed my commits and I think I'm generally happy with it as an initial strawman.

Do you think that you could add Rust Function developer guide?

@zroubalik Is there something in particular I missed in the README.md included in each template? I'm assuming the intended audience already knows rust well enough to have their environment set up and should already be pretty familiar with the cargo subcommands.
Is the guide still useful if it's mostly restating what's in the README's?

@jcrossley3 it's a lot of what's in the readme, but it's also other stuff depending on the runtime/framework. Currently we try to have a language guide for each set of templates. You are probably right that this ultimately probably lands in the template itself - especially as these things start to move upstream.

Do you think that you could add Rust Function developer guide?

Done.


added maxout parameters in service.py and superstaq_client.py

Closes https://github.com/Infleqtion/client-superstaq/issues/583.
still have yet to guarantee that it works on the notebooks. this is the next step.

i ran the server on my local host and the changes are reflected correctly - we can now add in a maxout parameter to the submit_qubo function from the client to specific number of solutions outputted before the job terminates.


conflict between Android and React native when both use glide

(Can't read [com] (Can't read [bumptech] (Can't read [glide] (Can't read [GeneratedAppGlideModuleImpl.class] (Duplicate zip entry [com/bumptech/glide/GeneratedAppGlideModuleImpl.class]))))))

please read the doc https://github.com/DylanVann/react-native-fast-image/blob/master/docs/app-glide-module.md

To be clear on the link above, you need to add
ext {     excludeAppGlideModule       = true }
to you project root gradle file, not the react-native-fast-image gradle file, and definitely not your app level gradle file

Thanks all of you , I solve it

To be clear on the link above, you need to add ext { excludeAppGlideModule = true } to your project root gradle file, not the react-native-fast-image gradle file, and definitely not your app level gradle file

Thanks


[C++] Added methods & algo to test if 2 configs are equivalent

Thanks for the PR, but there is some minor corrections to add:

you must add the default argument prec as in the isApprox method of all the spatial classes.
the isSameConfigurationmust  be a static method of the class

the isSameConfiguration must be a static method of the class

Why static ? I think it cannot be because it depends on idx_q for each joint.

Seems good to me. Concerning the Scalar type, it will be reworked globally in the future.

Thanks


If host completes a chore earlier - it will send IdleChore to the client with an unfinished chore.

Approach has been changed significantly. Closing this as obsolete.


PYI053 autofix removes @deprecated message

This concerns @deprecated from PEP-702

A minimal code snippet that reproduces the bug.
Create a t.pyi file with the following content:

from typing_extensions import deprecated

@deprecated("Function deprecated_func is deprecated. Use method new_func instead.")
def deprecated_func(self) -> None: ...

The command you invoked (e.g., ruff /path/to/file.py --fix), ideally including the --isolated flag.

$ # ruff generates an error
$ ruff check --select=PYI t.pyi --isolated
t.pyi:3:13: PYI053 [*] String and bytes literals longer than 50 characters are not permitted
Found 1 error.
[*] 1 fixable with the `--fix` option.
$ # While flake8-pyi does not
$ pip list | grep pyi
flake8-pyi  24.1.0
$ flake8 --select=Y t.pyi
$ # Even worse, with --fix it removes the message
$ ruff check --select=PYI t.pyi --isolated --diff
--- t.pyi
+++ t.pyi
@@ -1,4 +1,4 @@
 from typing_extensions import deprecated

-@deprecated("Function deprecated_func is deprecated. Use method new_func instead.")
+@deprecated(...)
 def deprecated_func(self) -> None: ...

Would fix 1 error.

The current Ruff settings (any relevant sections from your pyproject.toml): N/A
The current Ruff version (ruff --version): ruff 0.1.11

Ah yes, we had to introduce some special-casing over at flake8-pyi recently for exactly this issue: https://github.com/PyCQA/flake8-pyi/commit/c7d988ef50f8582aad114a1fdc487dd75ff4f8e9


misleading error message

I was going through the serde_json :: de :: from_reader example and encountered an error at run time "KeyMustBeAString". I went back to my json file and looked. All of the keys were strings... I scratched my head and stared. Then I noticed that I had a trailing comma after the last value.
It seems like adding another error code that has something to do with trailing commas would make the error messages more human friendly.
test.json
{
  "fingerprint": "gray",
  "location": "1",
}

error message:
ErrorImpl {
    code: KeyMustBeAString,
    line: 4,
    column: 1
 }

I agree! Would you be interested in implementing this? The code for parsing a map key will need to recognize when it gets a } and treat that as a trailing comma error.

I give it a go.

Is there documentation on contributing? It seems like the tests don't compile on rustc stable...

I switched to nightly and the tests compile with warnings about unused extern crate.  What gives?
rustc 1.21.0-nightly (7eeac1b81 2017-08-30)
cargo 0.22.0-nightly (3d3f2c05d 2017-08-27)

Further study of travis.sh revealed that I was missing a build step
(cd "$DIR/tests/deps" && channel build)

All tests seem to be passing. On to the real work.


Must gather UI

This PR introduces some new UI elements to make use of must gather rest wrapper so we can kick that service off from within the UI.
Part of this work requires toast notifications to be displayed for certain actions, so in addition to hooks and types related to must gather, we've also added similar elements for a generic Notification service.

Steps toward https://github.com/konveyor/forklift-ui/issues/745

Looks like I caused some minor merge conflicts with https://github.com/konveyor/forklift-ui/pull/777, sorry :(

ha! All good, I've a couple minor things to clean up anyway, will rebase shortly

Nice work Michael!


So i manage now to install sqlite3

Good Day
Sorry for being a bother,
I manage to install sqlite3 on my machine with --unsafe-per param

(node:790) UnhandledPromiseRejectionWarning: SequelizeConnectionError: SQLITE_CANTOPEN: unabl
e to open database file
at Database. (/home/mik334mikee/openvpn-status/node_modules/sequelize/lib/dial
ects/sqlite/connection-manager.js:61:34)
(node:790) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originat
ed either by throwing inside of an async function without a catch block, or by rejecting a pr
omise which was not handled with .catch(). To terminate the node process on unhandled promise
rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.
html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:790) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the
future, promise rejections that are not handled will terminate the Node.js process with a non
-zero exit code.

this was returned when run server.js

managed run your work Thanks!
npm install sqlite3 --unsafe-per did the trick
debian9stretch

I just posted an answer on what worked for me.  I had the same problem on Ubuntu 20.04 LTS and Node.js 14: https://stackoverflow.com/a/65890943/4056146

I just posted an answer on what worked for me.  I had the same problem on Ubuntu 20.04 LTS and Node.js 14: https://stackoverflow.com/a/65890943/4056146

I cannot get sqlite3 installed on Windows Server 2012 R2, therefore I cannot get this repository to work.  It works great on Linux though.


Encryption and decryption fix

Fixes new encryption and decryption implementation

Fixes type assertions
Fixes private and public key import
Fixes missing finalizer to transform back to buffer

Fixes old encryption implementation

Support encrypting string inputs
Fix buffer inputs

Hey @martonlederer, on using the old deprecated way with salt, the decryption is having issues here as it is not returning the correct output. For example:
await window.arweaveWallet.connect(["ENCRYPT", "DECRYPT"]);

// encrypt data
const encrypted = await window.arweaveWallet.encrypt(
  "This message will be encrypted",
  {
    algorithm: "RSA-OAEP",
    hash: "SHA-256",
    salt: "hero"
  }
);

console.log("Encrypted bytes:", encrypted);

// decrypt data
const decrypted = await window.arweaveWallet.decrypt(
  encrypted,
  {
    algorithm: "RSA-OAEP",
    hash: "SHA-256",
    salt: "hero"
  }
);

console.log("Decrypted data:", new TextDecoder().decode(decrypted));

I am getting decrypted as a uint8Array having length 30 with all its elements as 0.
https://github.com/arconnectio/ArConnect/blob/e8314be1f4a8a9a39d05791fde0c5698b5eab467/src/api/modules/decrypt/decrypt.background.ts#L94
Maybe using something like this or similar code with help with the issue.
function removeSaltFromUint8Array(originalArray: Uint8Array, salt?: string) {
  if (!salt) return originalArray;

  // Convert the string to a Uint8Array
  const stringArray = new TextEncoder().encode(salt);

  // Calculate the start index to remove the string from the end
  const startIndex = originalArray.length - stringArray.length;

  // Check if the start index is valid and the substring at that position matches the salt
  if (
    startIndex >= 0 &&
    originalArray
      .subarray(startIndex)
      .every((byte, index) => byte === stringArray[index])
  ) {
    // Create a new Uint8Array that excludes the bytes corresponding to the string
    const newArray = new Uint8Array(startIndex);

    // Copy bytes before the string
    newArray.set(originalArray.subarray(0, startIndex));

    return newArray;
  } else {
    // Return the original array if the string is not found at the end
    return originalArray;
  }
}

Passing data as Uint8Array works but when ArrayBuffer is passed it does not work.
// connect to the extension
await window.arweaveWallet.connect(["ENCRYPT", "DECRYPT"]);

// encrypt data using RSA-OAEP
const encrypted = await arweaveWallet.encrypt(
    new TextEncoder().encode("This message will be encrypted").buffer,
    { name: "RSA-OAEP" }
);

console.log("Encrypted bytes:", encrypted);

// now decrypt the same data using
// the same algorithm
const decrypted = await arweaveWallet.decrypt(
    encrypted,
    { name: "RSA-OAEP" }
);

console.log(
    "Decrypted data:",
    new TextDecoder().decode(decrypted)
);

As the new approach doesn't use the hybrid approach (RSA + AES), it can only encrypt/decrypt smaller data. The following code will not work and throw an error. Maybe this should be communicated in the docs if this is the expected behavior that this is useful to encrypt/decrypt smaller data only. On the other hand, the deprecated old method works as it uses the hybrid approach (RSA + AES).
await window.arweaveWallet.connect(["ENCRYPT", "DECRYPT"]);

const dataToEncrypt = new TextEncoder().encode(
  "ArConnect is an Arweave-native wallet extension that provides a non-custodial wallet and asset management in your favorite browser. The extension allows Arweave wallet holders to interact with any dApps without sharing their private keys with them." +
    "The isolated environment that ArConnect creates is not only a security improvement for users, but it also provides a more seamless login flow for applications. Developers no longer have to build sign-in functionality, they can let ArConnect do the hard work for them."
);

console.log("dataToEncrypt: ", dataToEncrypt);

const encrypted = await window.arweaveWallet.encrypt(
  new Uint8Array(dataToEncrypt),
  {
    name: "RSA-OAEP"
  }
);

console.log("Encrypted bytes: ", encrypted);

// now decrypt the same data using
// the same algorithm
const decrypted = await window.arweaveWallet.decrypt(encrypted, {
  name: "RSA-OAEP"
});

console.log("Decrypted data:", decrypted);

@pawanpaudel93 these should be fixed now. Please check again.

@martonlederer LGTM 🚀


Opposite of deny_list

A field that works as the opposite of deny_list (accept_list or allow_list maybe?) would be super helpful where the entities in the list are not flagged if they are detected as PII. This is not necessarily even related only to ad-hoc recognizers but in general.

Does this solve your problem?
https://microsoft.github.io/presidio/tutorial/13_allow_list/

Yes! Thanks a lot!


Task - New taxon name - disable overlay not fully covering status

   when i start to create a new species
       then the Status section appears only partially disabled

@jlpereira Same issue with Gender and form, just going to reference that here.


Use unique settings classloader scope for each build of composite

Prior to this, all settings scripts shared the same classloader scopes. This caused unnecessary creation of classloaders and their classes across build invocations. Each settings script was vying for the same entry in the class loader cache, causing the load of a subsequent settings script with a different export loader to replace any existing. The net result was that all of the descendant loaders (buildSrc and the projects, i.e. almost everything) were new on each build.
The triggering condition is to have different settings scripts load different dependencies/plugins. This is actually typical when using the Gradle Enterprise plugin in a composite build, as it is typically only applied to the root build.

@bot-gradle test QF

OK, I've already triggered QuickFeedback build for you.

I think we need to consider backporting this if we do any more 6.x releases. This bug exists there, and it means that anyone using composite builds and Gradle Enterprise is paying a price.
There is a possible workaround in applying the Gradle Enterprise plugin to each build in the composite, but there's a reasonable chance that users miss that they need to do that.
@big-guy are any more 6.x releases planned?

@bot-gradle test RFM

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test QF

OK, I've already triggered QuickFeedback build for you.

@bot-gradle test QF

OK, I've already cancelled the old build and triggered a new QuickFeedback build for you.

@bot-gradle test RFM

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.


Bump CATs release to get proper exit codes

https://github.com/SUSE/cf-acceptance-tests-release/commit/187c3c624e314e63cc5b32164576cce2793a2743
Signed-off-by: Dimitris Karakasilis<EMAIL_ADDRESS>Description
The cleanup trap hides the exit code in case of failures
Screenshots (if appropriate):
Types of changes

[x] 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 change)

Checklist:

[ ] My code has security implications.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

@mudler The image doesn't seem to be published?

Pretty sure we triggered the pipeline.. but maybe we have missed something ?

0.0.11 was build and pushed here: https://ci.flintstone.cf.cloud.ibm.com/teams/quarks/pipelines/release-images/jobs/build-cf-acceptance-tests/builds/19 Maybe the tag is not constructed correctly?

We need to bump the stemcell for this to work (see some lines above the change

@mudler @jimmykarily It's good to bump the default stemcell, but it carries more responsibility of testing that all the releases that depend on the default stemcell still works correctly.

Is there a way to bump the cats release without bumping all? If not, is CATs and smoke tests enough to give us confidence to merge?

@jimmykarily Yes, you can set a specific stemcell for CATS like this: https://github.com/cloudfoundry-incubator/kubecf/blob/master/deploy/helm/kubecf/values.yaml#L85-L87.
I'd prefer to bump only the CATS stemcell and have another task to bump the default one. Smoke and CATS are not testing all the releases at this point, unfortunately.

Nice thanks! I pushed a commit to only bump the cats stemcell. Let's see what the CI has to say.

CATS failed twice with this PR on my local testing. Both run with flake attempts set to 2.

Deployment seems to fail as in master.. can't tell if it's related to our bump

Passed tests: https://concourse.suse.dev/teams/main/pipelines/kubecf/jobs/cf-acceptance-tests-diego/builds/35


Admin Schema and Route

Description
Create admin schema, routes and controllers
Screenshots/testimonials
NA

on it!

Closing this against #35


Bluetooth A2D

Hi @Edzelf,
do the Bluetooth A2D feature ready?
it does mean we could pair mobile phone to esp as external speaker right?
looking forward to try this awesome feature
thank you!

I don't think this is possible.  Using WiFi and BT with only one antenna is too much.

i guess antenna is not an issue, just flash space and memory constraints.

probably adding the where a2d chunk from bt to be feed to the i2s is something that mostly valueable and to have that to work. i did not understand those or know how to do it.
we could just simply turned off the wifi, disable the webserver to use bt or other services such as mdns or mqtt as an option. having all to be working together as a future enhancement.
hope you could shed some light on how is a2d stream could be feed to the chunk and queue for processing so we could start looking into it.
thanks!


make has_mapped_type struct friendly

I'd like to propose slightly different implemenation of struct has_mapped_type that use Type traits added in C++11. It doesn't change current functionality, but looks more natural.

Coverage remained the same at 99.904% when pulling e9fde3e1166abb6ede4881c832c22d750e69e77b on vpetrigo:has_mapped_improve into a0ef5a194c94d910ad24be73388aed4cd9110832 on nlohmann:develop.

Thanks!


Admin-chat Discord relay

Description

We need a Discord relay specifically for admin chat.

Resolved can be closed.

Resolved can be closed.


How do I set the cursor timeout?

As per: https://www.mongodb.com/docs/v7.0/reference/parameters/#mongodb-parameter-param.cursorTimeoutMillis

Hello.
I believe this can be achieved by running a command on admin database:
        MongoClient
          .fromConnectionString[IO](s"mongodb://localhost:$mongoPort")
          .use { client =>
            for {
              db <- client.getDatabase("admin")
              _ <- db.runCommand(Document("setParameter" := 1, "cursorTimeoutMillis" := 300000L))
            } yield ()
          }

Thanks for the useful feedback. I was using coll.find(...).boundedStream(1) which in theory according to some MongoDB docs should cause the cursor to be kept active, but I think there may be lower-level buffering going on which caused the timeout due to apparent inactivity. FYI the application is very long-running as processing each record takes quite some time. This was the exception: https://www.mongodb.com/community/forums/t/mongocursornotfoundexception/14599 .

After doing a quick google search, I've realised that I have not implemented noCursorTimeout method on find operation.
I'll release this change later today. Maybe this will solve your problem.
Will let you know when it is done.

@satyagraha
You update the library to 0.7.3, then you should be able to use find with noCursorTimeout:
coll.find(...).noCursorTimeout(true).boundedStream(1)

Let me know if this helps


Send girder request token

Fixes #355

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fixed result

This looks bad on both places:
https://cucumber.io/docs/guides/overview/
https://github.com/cucumber/docs.cucumber.io/blob/master/content/docs/guides/overview.md
I believe that fancy arrow ('▶') is the reason...

Hi @Betlista,
Thanks for your making your first contribution to Cucumber, and welcome to the Cucumber committers team! You can now push directly to this repo and all other repos under the cucumber organization! 🍾
In return for this generous offer we hope you will:

✅ Continue to use branches and pull requests. When someone on the core team approves a pull request (yours or someone else's), you're welcome to merge it yourself.
💚 Commit to setting a good example by following and upholding our code of conduct in your interactions with other collaborators and users.
💬 Join the community Slack channel to meet the rest of the team and make yourself at home.
ℹ Don't feel obliged to help, just do what you can if you have the time and the energy.
🙋 Ask if you need anything. We're looking for feedback about how to make the project more welcoming, so please tell us!

On behalf of the Cucumber core team,
Aslak Hellesøy
Creator of Cucumber


NTR: Premature Ovarian Failure 14

Should be a child of primary ovarian insufficiency. See https://www.omim.org/entry/618014

MONDO_0044777


Make it more clear that side triggers only using block below

Change level color??
Or maybe better to dim sides on player

No longer an issue since side effects can be triggered from all sides


Questions about slimming AppleALC Kext

Hi, I'm kinda interested in slimming AppleALC kext for smaller file size. On reading your tutorial, I've got some questions:

We only need to repeat the process of slimming the kext when a new release has fixes regarding our codec, not on every release, right? I assume that even our codec gets new layout ID, we don't need to update either. Is that right?
At the time of me writing this, AppleALC kext version is 1.8.1. How come yours is 1.8.2 :v ?

From what I know, newer releases mainly only contain new layouts. Significant changes to the kext itself are less frequent (check time timestamp of the source code). But don't quote me on that, since I am not a programmer. I usually download the latest source from time to time, replace the Resources folder by the one for my codec and I compile it again.
I think you don't really need to update it unless there have been significant changes made to the kext to be compatible with the next version of macOS where it would crashes the system otherwise (hypothetically speaking)
My AppleALC is on 1.8.2 because that's where the current source code is at. It's usually ahead of pre-compiled binary releases

Very clear, thanks for your response!


[PyTorch] forward attention_type in MultiHeadAttention

In MultiHeadAttention, the attention_type is not properly forwarded to DotProductionAttention.

/te-ci pytorch

/te-ci pytorch


[DOC] Multiple small improvements

I've added some backslashes for newlines, as well as a code block
I've renamed the joined colums from _capitals to _right in the fuzzy_join example because I think it's clearer, but I'm open to other names

@TheooJ please merge the small PR I opened on your branch (just whitespace in the displayed output dataframes) and then we can merge this one. Thanks!

You have errors that seems unrelated to this PR. Could you run the CI another time before we merge this?
 git commit -m "running ci to reproduce the error" --allow-empty


visualization bug

@micahwoodard @alexpiet
The RunLength was set to a fixed value, which caused the update of the figure is not smooth. This variable is set and changed in the GUI.
Left is the current code, and the right is my previous code. Please make it set by GUI instead of hardcoded!

The code review process should be more rigorous. I spent several hours debugging this week.

@XX-Yin there was an issue to remove the plot settings widget from the UI. I wrongly hardcoded the kernel_size to 2 because of this. Some widgets referenced in the fix no longer exist, but I will push a fix and request review

Looking closer at the code, removing the plot settings would make this value hardcoded. Would it be better to hardcode this value to 10? Also I realize that the plot settings were not removed from the ephys gui. I couldn't find the plot settings group widget so I thought they did not exist. Do you regularly use these widgets?

@XX-Yin We purposefully removed the plotting settings as part of our on-going efforts to streamline the GUI. Do you use this? What is your use case for changing the plot?

Can you tell me why you want to change the plot resolution on the GUI? What is the use case for that feature?

The answer is in the following question:
Why do you hardcode the runlength to 2 or 10? Which one is better?

@XX-Yin following back up on this issue

@ellahiltonvano We still hardcode the runlength, which is ok. We can close this issue.


Refactor irregularities commands using bulk update

Make python manage.py irregularties <file path> faster by using bulk updates.

Changes Unknown when pulling 33b6c38639431160bc1a67db57931116bfe044a2 on cuducos-irregularities-bulk-update into ** on master**.


update hotpixel mask

Resolve path for pytest:
IRDA00041018.fits (DARK) was placed in 'data/dark/' to resolve pytest error.
Hopefully it will work out...

Add new functions for more accurate identification of hot pixels:
I made some changes so that users can select two options for Hotpixel mask;

Use a fixed (prepared) hotpixel mask. See read_hotpix.py for how to use it. (Example masks were placed in src/pyird/data/)
Create hotpixel mask by sigma clipping (hotpix_mask_sigclip()) from DARK images (i.e. updated one from the previous identify method). It is designed as parameters (sigma and number of iterations) are automatically set to appropriate values.

@YuiKasagi write data file paths in MANIFEST.in


scipy.stats.truncnorm.rvs not sampling correctly

Describe your issue.
When creating a truncated normal distribution with a mean of 0.95 and two truncation points at 0.9 and 1.0, I expect that when sampling from the distribution using the .rvs() method, all values should be between 0.9 and 1.0, and they should concentrate around the mean of 0.95.
Instead of this expected behavior, the below attached code shows that the smallest sampled value is around 0.995; hence only the top 5% of the (0.9, 1.0) interval is sampled. This is comfirmed by the histogram plotted in the below code.
Is this a bug, or am I overlooking something?
Reproducing Code Example
import matplotlib.pyplot as plt
import scipy.stats as stats

samples = stats.truncnorm.rvs(a=0.9, b=1.0, loc=0.95, scale=0.05, size=100000)
print(min(samples))
plt.hist(samples, bins=50)
plt.show()

### Error message

```shell
No error message.

SciPy/NumPy/Python version and system information
1.10.1 1.24.2 sys.version_info(major=3, minor=10, micro=9, releaselevel='final', serial=0)
{
  "Compilers": {
    "c": {
      "name": "gcc",
      "linker": "ld.bfd",
      "version": "10.3.0",
      "commands": "cc"
    },
    "cython": {
      "name": "cython",
      "linker": "cython",
      "version": "0.29.33",
      "commands": "cython"
    },
    "c++": {
      "name": "gcc",
      "linker": "ld.bfd",
      "version": "10.3.0",
      "commands": "c++"
    },
    "fortran": {
      "name": "gcc",
      "linker": "ld.bfd",
      "version": "10.3.0",
      "commands": "gfortran"
    },
    "pythran": {
      "version": "0.12.1",
      "include directory": "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\pip-build-env-v_zt9njv\\overlay\\Lib\\site-packages\\pythran"
    }
  },
  "Machine Information": {
    "host": {
      "cpu": "x86_64",
      "family": "x86_64",
      "endian": "little",
      "system": "windows"
    },
    "build": {
      "cpu": "x86_64",
      "family": "x86_64",
      "endian": "little",
      "system": "windows"
    },
    "cross-compiled": false
  },
  "Build Dependencies": {
    "blas": {
      "name": "openblas",
      "found": true,
      "version": "0.3.18",
      "detection method": "pkgconfig",
      "include directory": "c:/opt/openblas/if_32/64/include",
      "lib directory": "c:/opt/openblas/if_32/64/lib",
      "openblas configuration": "USE_64BITINT= DYNAMIC_ARCH=1 DYNAMIC_OLDER= NO_CBLAS= NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP= PRESCOTT MAX_THREADS=4",
      "pc file directory": "c:/opt/openblas/if_32/64/lib/pkgconfig"
    },
    "lapack": {
      "name": "openblas",
      "found": true,
      "version": "0.3.18",
      "detection method": "pkgconfig",
      "include directory": "c:/opt/openblas/if_32/64/include",
      "lib directory": "c:/opt/openblas/if_32/64/lib",
      "openblas configuration": "USE_64BITINT= DYNAMIC_ARCH=1 DYNAMIC_OLDER= NO_CBLAS= NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP= PRESCOTT MAX_THREADS=4",
      "pc file directory": "c:/opt/openblas/if_32/64/lib/pkgconfig"
    }
  },
  "Python Information": {
    "path": "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-dskf9r9k\\cp310-win_amd64\\build\\venv\\Scripts\\python.exe",
    "version": "3.10"
  }
}

I will take a close look later, but it is probably not a bug. The truncnorm documentation says:

This is often a source of confusion around the behavior of the truncated distributions.
I suspect that it is not a coincidence that the scale is 0.05 and only the top 5% is being sampled.

Thanks for your response @mdhaber.
I checked the documentation before posting here but it wasn't clear in solving my issue. It might very well be that I misunderstand the way this method is to be used; in such a case please let me know how I can create a truncated normal distribution with center at 0.95 and scale of 0.05, truncated at 0.9 and 1.0, if not this way:
stats.truncnorm.rvs(a=0.9, b=1.0, loc=0.95, scale=0.05, size=100000)

I agree that it would likely make the doc much more informative.
Thanks a lot; indeed I overlooked that part of the code! Now it makes sense!

To close this issue, I'd suggest a PR that:

Adds this code (with explanatory text) as an example
Mentions the example in the notes (which discuss this issue)

@mdhaber I'd like to contribute to this issue. Can someone point me to where the code examples are defined? I've looked through the documentation and have only found "%(examples)s" where they should be.

Yeah, that's some sort of magic that automatically generates examples. You can see what it produces in the rendered documentation. You can add your example either above or below it, or you can replace it entirely if yours covers the same uses.

And these automatically generated examples don't show up in the editor when using the function right? So ideally, should these be replaced with hardcoded examples so that we can see them everywhere, not just in the rendered documentation?

There are many problems with the distribution documentation, but that is not one of them:
In [2]: from scipy.stats import truncnorm
help(truncnorm)
Help on truncnorm_gen in module scipy.stats._continuous_distns:
<scipy.stats._continuous_distns.truncnorm_gen object>
    A truncated normal continuous random variable.

    As an instance of the `rv_continuous` class, `truncnorm` object inherits from it
    a collection of generic methods (see below for the full list),
    and completes them with details specific for this particular distribution.

    Methods
    -------
    rvs(a, b, loc=0, scale=1, size=1, random_state=None)
        Random variates.
    pdf(x, a, b, loc=0, scale=1)
        Probability density function.
    logpdf(x, a, b, loc=0, scale=1)
        Log of the probability density function.
    cdf(x, a, b, loc=0, scale=1)
        Cumulative distribution function.
    logcdf(x, a, b, loc=0, scale=1)
        Log of the cumulative distribution function.
    sf(x, a, b, loc=0, scale=1)
        Survival function  (also defined as ``1 - cdf``, but `sf` is sometimes more accurate).
    logsf(x, a, b, loc=0, scale=1)
        Log of the survival function.
    ppf(q, a, b, loc=0, scale=1)
        Percent point function (inverse of ``cdf`` --- percentiles).
    isf(q, a, b, loc=0, scale=1)
        Inverse survival function (inverse of ``sf``).
    moment(order, a, b, loc=0, scale=1)
        Non-central moment of the specified order.
    stats(a, b, loc=0, scale=1, moments='mv')
        Mean('m'), variance('v'), skew('s'), and/or kurtosis('k').
    entropy(a, b, loc=0, scale=1)
        (Differential) entropy of the RV.
    fit(data)
        Parameter estimates for generic data.
        See `scipy.stats.rv_continuous.fit <https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_continuous.fit.html#scipy.stats.rv_continuous.fit>`__ for detailed documentation of the
        keyword arguments.
    expect(func, args=(a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)
        Expected value of a function (of one argument) with respect to the distribution.
    median(a, b, loc=0, scale=1)
        Median of the distribution.
    mean(a, b, loc=0, scale=1)
        Mean of the distribution.
    var(a, b, loc=0, scale=1)
        Variance of the distribution.
    std(a, b, loc=0, scale=1)
        Standard deviation of the distribution.
    interval(confidence, a, b, loc=0, scale=1)
        Confidence interval with equal areas around the median.

    Notes
    -----
    This distribution is the normal distribution centered on ``loc`` (default
    0), with standard deviation ``scale`` (default 1), and clipped at ``a``,
    ``b`` standard deviations to the left, right (respectively) from ``loc``.
    If ``myclip_a`` and ``myclip_b`` are clip values in the sample space (as
    opposed to the number of standard deviations) then they can be converted
    to the required form according to::

        a, b = (myclip_a - loc) / scale, (myclip_b - loc) / scale

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.stats import truncnorm
    >>> import matplotlib.pyplot as plt
    >>> fig, ax = plt.subplots(1, 1)

    Calculate the first four moments:

    >>> a, b = 0.1, 2
    >>> mean, var, skew, kurt = truncnorm.stats(a, b, moments='mvsk')

    Display the probability density function (``pdf``):

    >>> x = np.linspace(truncnorm.ppf(0.01, a, b),
    ...                 truncnorm.ppf(0.99, a, b), 100)
    >>> ax.plot(x, truncnorm.pdf(x, a, b),
    ...        'r-', lw=5, alpha=0.6, label='truncnorm pdf')

    Alternatively, the distribution object can be called (as a function)
    to fix the shape, location and scale parameters. This returns a "frozen"
    RV object holding the given parameters fixed.

    Freeze the distribution and display the frozen ``pdf``:

    >>> rv = truncnorm(a, b)
    >>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

    Check accuracy of ``cdf`` and ``ppf``:

    >>> vals = truncnorm.ppf([0.001, 0.5, 0.999], a, b)
    >>> np.allclose([0.001, 0.5, 0.999], truncnorm.cdf(vals, a, b))
    True

    Generate random numbers:

    >>> r = truncnorm.rvs(a, b, size=1000)

    And compare the histogram:

    >>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
    >>> ax.set_xlim([x[0], x[-1]])
    >>> ax.legend(loc='best', frameon=False)
    >>> plt.show()

Closed by gh-18477.


CallFunction(...) Arguments exceed max args length of 63

After upgrading to the io.particle:cloudsdk:0.2.2, the CallFunction() seems added a limitation on the argument length that breaks my App.
Could someone explain why the limit is set to 63 and would this be changed in the future sdk versions? It would be rather inefficient if I have to break the current argument and send in two steps.
Thanks!
Stack trace:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalArgumentException: Arguments 'cnt=8000|rdt=9000|mtt=11000|mot=8000|rlt=1500|rlp=1000|srr=19|srt=29' exceed max args length of 63
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
at io.particle.android.sdk.cloud.ParticleDevice.callFunction(ParticleDevice.java:265)
at com.rwmobi.garadget.activities.SettingsActivity$3.callApi(SettingsActivity.java:257)
at com.rwmobi.garadget.activities.SettingsActivity$3.callApi(SettingsActivity.java:253)
at io.particle.android.sdk.utils.Async$AsyncApiWorker.doInBackground(Async.java:103)
at io.particle.android.sdk.utils.Async$AsyncApiWorker.doInBackground(Async.java:71)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)

Actually max argument length of 63 characters is limitation of Core & Photon devices not the SDK.

@ry-wong Ido is correct, this limitation isn't an SDK issue; closing.


GraphQLErrorFactory instantiates unwanted spring beans.

Hello~
I'm using graphql-spring-boot v 5.9.0.
GraphQLErrorHandlerFactory instantiates unwanted spring beans. (ex: abstract, lazy-load)
2019-09-26 17:47:34 [ERROR](GraphQLErrorHandlerFactory.java:47) Cannot load class abstractComicDataSource. Error creating bean with name 'abstractComicDataSource': Bean definition is abstract

...
<bean id="abstractComicDataSource" class="org.apache.commons.dbcp.BasicDataSource" init-method="createDataSource"
		  destroy-method="close" abstract="true" >
...

I think the code below is implements in that way. How can I workaround this?
https://github.com/graphql-java-kickstart/graphql-spring-boot/blob/35c478f21dcbc42c8a1e1e18f8f8e8ccd5798278/graphql-spring-boot-autoconfigure/src/main/java/com/oembedler/moon/graphql/boot/error/GraphQLErrorHandlerFactory.java#L41

It looks like fixed in the v5.10.0.
https://github.com/graphql-java-kickstart/graphql-spring-boot/commit/1306cc1e005fa90d8ffe518677bad46b2c4da1fb#diff-9d7b5bc791394af420b1ae6f698781d4
I'll upgrade version to v5.10.0. Thank you.


Fetch all containers when trying to map container IP to container metadata

In the newer versions of Docker, there is a slight delay between when a container has started executing and when the Docker daemon API reports it as running.  This is breaking IAM credential lookups in the first few milliseconds after a container started - notably impacting the Indymaps service.
This is not a complete fix, but appears to help.  The metaproxy service does the following:

Fetch all running containers
Loop through the list and inspect each container to get metadata & IP address details
Matches the calling container's IP to the container metadata
The rest of its magic

This change fetches all containers, not just running containers, and then does the inspect.  The delay between fetching the list and doing the inspect appears to be "enough" to solve the underlying race condition.
Note that non-running containers are skipped.

I'm not too worried about changing the filter. I suspect the number of containers that exist on the host in the set of (all containers) - (stopped containers) probably isn't that different than just (running containers).

@daveworth I believe what I've seen from docker ps -a on our agents is the dead containers get cleaned up quite nicely


KeyError: 'Tags' when running remote list

This has suddenly started failing since yesterday when calling remote list on a fresh install.
  File "/home/runner/work/hfie-watcher/hfie-watcher/.venv/bin/remote", line 8, in <module>
    sys.exit(app())

  File "/home/runner/work/hfie-watcher/hfie-watcher/.venv/lib/python3.10/site-packages/remotepy/instance.py", line 218, in list
    names, public_dnss, statuses, instance_types, launch_times = get_instance_info(

  File "/home/runner/work/hfie-watcher/hfie-watcher/.venv/lib/python3.10/site-packages/remotepy/instance.py", line 114, in get_instance_info
    tags = {k["Key"]: k["Value"] for k in j["Tags"]}

KeyError: 'Tags'

This is possibly resolved but its also not reproducible so closing it


Snapshot repositories not picked up by Resolver

Having
  <repositories>
    <repository>
      <id>oss-sonatype</id>
      <name>oss-sonatype</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>oss-sonatype</id>
      <name>oss-sonatype</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

in a pom.xml is getting picked up by this Resolver setup:
https://github.com/sormuras/junit-platform-maven-plugin/blob/1bcd5afc3645604c3ce7628da5649d550f1bcbad/src/main/java/de/sormuras/junit/platform/maven/plugin/Resolver.java#L144-L167
Why?
IT: https://github.com/sormuras/junit-platform-maven-plugin/tree/master/src/it/jupiter-5.4.0-platform-1.4.0-SNAPSHOT
Log: https://travis-ci.com/sormuras/junit-platform-maven-plugin/builds/84812073#L965

Stacktrace
[INFO] Launching JUnit Platform...
[DEBUG] Using transporter WagonTransporter with priority -1.0 for file:///C:/Users/Sor/.m2/repository
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for file:///C:/Users/Sor/.m2/repository
[INFO] Downloading from local.central: file:///C:/Users/Sor/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.4.0-SNAPSHOT/junit-jupiter-engine-5.4.0-20180913.171143-28.pom
[DEBUG] Writing tracking file R:\dev\github\sormuras\junit-platform-maven-plugin\target\local-repo\org\junit\jupiter\junit-jupiter-engine\5.4.0-SNAPSHOT\junit-jupiter-engine-5.4.0-20180913.171143-28.pom.lastUpdated
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://oss.sonatype.org/content/repositories/snapshots/
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://oss.sonatype.org/content/repositories/snapshots/
[INFO] Downloading from oss-sonatype: https://oss.sonatype.org/content/repositories/snapshots/org/junit/jupiter/junit-jupiter-engine/5.4.0-SNAPSHOT/junit-jupiter-engine-5.4.0-20180913.171143-28.pom
[DEBUG] Writing tracking file R:\dev\github\sormuras\junit-platform-maven-plugin\target\local-repo\org\junit\jupiter\junit-jupiter-engine\5.4.0-SNAPSHOT\junit-jupiter-engine-5.4.0-20180913.171143-28.pom.lastUpdated
[DEBUG] Skipped remote request for org.junit.jupiter:junit-jupiter-engine:pom:5.4.0-20180913.171143-28, already updated during this session.
[DEBUG] Skipped remote request for org.junit.jupiter:junit-jupiter-engine:pom:5.4.0-20180913.171143-28, already updated during this session.
[WARNING] The POM for org.junit.jupiter:junit-jupiter-engine:jar:5.4.0-20180913.171143-28 is missing, no dependency information available
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=14322, ConflictMarker.markTime=12860, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=2922, ConflictIdSorter.topsortTime=7892, ConflictIdSorter.conflictIdCount=1, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=35951, ConflictResolver.conflictItemCount=1, DefaultDependencyCollector.collectTime=439736115, DefaultDependencyCollector.transformTime=84178}
[DEBUG] Using transporter WagonTransporter with priority -1.0 for file:///C:/Users/Sor/.m2/repository
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for file:///C:/Users/Sor/.m2/repository
[INFO] Downloading from local.central: file:///C:/Users/Sor/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.4.0-SNAPSHOT/junit-jupiter-engine-5.4.0-20180913.171143-28.jar
[DEBUG] Writing tracking file R:\dev\github\sormuras\junit-platform-maven-plugin\target\local-repo\org\junit\jupiter\junit-jupiter-engine\5.4.0-SNAPSHOT\junit-jupiter-engine-5.4.0-20180913.171143-28.jar.lastUpdated
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://oss.sonatype.org/content/repositories/snapshots/
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://oss.sonatype.org/content/repositories/snapshots/
[INFO] Downloading from oss-sonatype: https://oss.sonatype.org/content/repositories/snapshots/org/junit/jupiter/junit-jupiter-engine/5.4.0-SNAPSHOT/junit-jupiter-engine-5.4.0-20180913.171143-28.jar
[DEBUG] Writing tracking file R:\dev\github\sormuras\junit-platform-maven-plugin\target\local-repo\org\junit\jupiter\junit-jupiter-engine\5.4.0-SNAPSHOT\junit-jupiter-engine-5.4.0-20180913.171143-28.jar.lastUpdated
[DEBUG] Skipped remote request for org.junit.jupiter:junit-jupiter-engine:jar:5.4.0-20180913.171143-28, already updated during this session.
[DEBUG] Skipped remote request for org.junit.jupiter:junit-jupiter-engine:jar:5.4.0-20180913.171143-28, already updated during this session.
[WARNING] Resolving JUNIT_JUPITER_ENGINE failed
org.eclipse.aether.resolution.DependencyResolutionException: Could not find artifact org.junit.jupiter:junit-jupiter-engine:jar:5.4.0-20180913.171143-28 in local.central (file:///C:/Users/Sor/.m2/repository)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:355)
    at de.sormuras.junit.platform.maven.plugin.Resolver.resolve (Resolver.java:162)
...

From org.junit.jupiter:junit-jupiter-api:5.4.0-SNAPSHOT in the pom-xml the plugin extracts 5.4.0-20180913.171143-28 as the version for the entire junit.jupiter.version group.
Now resolving the matching engine artifact doesn't work with the timestamp version from the api.
Have to maintain the 5.4.0-SNAPSHOT string.
And resolve org.junit.jupiter:junit-jupiter-engine:5.4.0-SNAPSHOT
Instead of org.junit.jupiter:junit-jupiter-engine:5.4.0-20180913.171143-28
It's real version is 5.4.0-20180913.171147-28 (47 minutes, not 43)


Add logging for errors

Right now when I click on "Current ratios" I receive an error.
When I am trying to checkout logs from nohup.out - there is no logging for the error.
So I manually added logging error and checked the error - I got: list index out of range. But this is another issue I guess related to  function text_4096_cutter https://github.com/lorcalhost/BTB-manager-telegram/blob/0c28f4d35bf2255f880861194766ffb058b882b0/btb_manager_telegram/utils.py#L60

Do you propose using logger.error and logger.warning to log errors and warnings or do you have other solutions in mind?

logger.warning and logger.error should be enough.


Select API has no clear documentation

Hello. Thank you for such awesome product. According to https://github.com/mui-org/material-ui/issues/14417
I've found some details that confused me.

onOpen\onClose props are not working as documentation describe this.
when you just pass prop example onOpen it's do nothing.
But when you set state for Select open={true} onOpen and onClose begin work.

So I think it's not clear behavior that not documented. Please add note that onOpen and onClose props requires passing of open prop. Or later I can add this info to the doc and create PR. Thank you in advance!

@rreznichenko Thanks for the issue. What's your use case or using onOpen / onClose without the open property?

What do you think of this change?
--- a/packages/material-ui/src/Select/SelectInput.js
+++ b/packages/material-ui/src/Select/SelectInput.js
@@ -44,12 +44,15 @@ class SelectInput extends React.Component {
   }

   update = ({ event, open }) => {
-    if (this.isOpenControlled) {
-      if (open) {
+    if (open) {
+      if (this.props.onOpen) {
         this.props.onOpen(event);
-      } else {
-        this.props.onClose(event);
       }
+    } else if (this.props.onClose) {
+      this.props.onClose(event);
+    }
+
+    if (this.isOpenControlled) {
       return;
     }

I have no objection in changing the behavior.

@oliviertassinari My use case was to open a Drawer instead of the select dropdown on mobile devices. So at first I thought that Select has own local state. And onOpen handles in the component. Because if you use this component without onOpen onClose & open. It works properly. This behavior is logic but it's not documented. I'm pretty new in React so It was't clear that I need to pass open prop. So I think for everyone like me it can be difficult to find out what's wrong. And it's good to have little note in documentation that open prop required.
I think we need to make this.isOpenControlled optional because In some ways I want to prevent opening like example above. And for making that I need to pass open prop to control state outside the component. Or in the other case I need just hook this event. So for doing smth with the opening dropdown. So in that case we don't need open prop and local state of component will be fine. So for example we can do something like this?
`update = ({ event, open }) => {
let isOpen = this.isOpenControlled ? this.isOpenControlled : open
if (isOpen) {
this.props.onOpen(event);
} else {
this.props.onClose(event);
}
    if(this.isOpenControlled) {
      return;
    }

    this.setState({
      // Perform the layout computation outside of the render method.
      menuMinWidth: this.props.autoWidth ? null : this.displayRef.clientWidth,
      open,
    });
  };`

isOpen - bad name. But sorry I have not time now to make something more good.

Sorry don't know why git cant insert this code properly.

@rreznichenko Ok, it confirm what I was suggesting. You can listen to the change event on an input component without having to control the value. It should be the same with the Select component. So for me, it's an implementation issue, not a documentation one.

@oliviertassinari Okay. I'll look through other components that has onOpen onClose and if there is the same implementation, we need to change it in all components like drawers etc.

What's the link with the Drawer?

I've checked there is no link because Drawer has no onOpen prop. I've meant that maybe in other components we have same issue.

@oliviertassinari So I can make PR for this issue as we discussed?

Sure :)

@oliviertassinari I've done https://github.com/mui-org/material-ui/pull/15176
thanks for your awesome work!


Add blur for footer

Hi,
Love your work! It is possible to add blur to the footer as well?
Thanks

Unfortunately due to how SteamOS lays out the footer there's no good way to blur it. I can make it transparent but all that's behind it is black. If I fix that, any scrolling menu will need additional margins so that the footer isn't covering part of the scrollable content, for which there are too many elements to realistically fix.


packit cli file sync should respect git tracked files

When I've used
packit propose-downstream --dist-git-branch epel8 without --local-content it behaves strange:

file sync copy git untracked files
untracked files behaves as --local-content because git did not change version
tracked files are changed to tagged version (it is fine)

possible easy solution could be filter copying just to listed files:
git ls-tree -r --name-only $(git branch --show-current)

From that perspective packit-service and packit cli behaves very differently, because packit-service have everytime proper clean git repo with proper versions.
So that use case that someone workaround packit-service by local packit e.g. in case PS is down may lead to unexpected behaviour.

This is a good one and we discussed it today on our architecture meeting. The conclusion was that @csomh implemented it in the rewritten propose-update command.

Thanks a lot. I'm looking forward for this.

We should make sure that generated spec files are correctly synced downstream.

@csomh Haven't you rewritten the sync logic to rsync? I think this is not relevant anymore, is it?

Tbh, I'm not sure that using rsync as a backend fixed this or not. @jscotka could you please share the steps and description of the state to reproduce this issue, or try it again with the current version of packit?

@csomh @lachmanfrantisek
It is very dependent on what we want to do.
rsync probably fix some issues (at least it can fix the issue, when removing files, if rsync uses the option --delete what will remove extra files on target) (but I can imagine that someone may use it as feature, that has some e.g. extra tests in dowstream and it may break this workflow. so that this --delete should be configurable in packit yaml)
But my fist issue were, that to downstream there were also proposed files what were not added to git. (e.g. I've created some temp file) it although packit checkout some release tag, these files are still there and present and was synced as well.
So there is more possible solutions (my proposed were, to just have there filter and copy just git tracked files (or maybe copy current dir to some temp one, do git reset and then do all packit stuff))


Remove redundant CI workflow steps

Not sure if we want to preserve the 'alternate JDK' testing?
Thinking at the moment we have enough to contend with for the Jakarta / Camel / Quarkus upgrade. Introducing another JDK into the test matrix at this stage just adds to the workload.

IMHO, we can bring alternate JDK later. Let's focus on bringing a first 3.0-M1


Collection and dictionary items are always assumed to be of the same type

As of now, CollectionSerializer and DictionarySerializer assume that the items in the collection/keys and values in the dictionary are of the exact same type as their generic type arguments.
That is to say, CollectionSerializer assumes that a List<A>'s items are all of type A, even if some may actually be of type B (where B : A). A similar assumption is made by DictionarySerializer when it comes to keys and values.
This is obviously not always going to be the case, and so it is necessary to ensure that the correct type is used during (de)serialization.
The most obvious fix is to simply include a Type attribute in the item, key, or value nodes as necessary, and prevent passing the item/key/value Type in case the Type attribute is found on said nodes. This will allow Serializer to (de)serialize them as the correct type.

Closed wtih https://github.com/Carnagion/GDSerializer/commit/5fa3416bd5feb3a7de7d11d92644c6f6cf0a424c.


add postgres prebuilds

Describe the desired feature
just like how sqlite3 has prebuilds, we can do the same with postgres dump files:
https://www.postgresql.org/docs/8.1/backup.html
Additional context
No response
To-do items
No response

I've used this in the past for exporting & importing databases, and I run an automated dump every night for backup.
Anything you're planning to implement here?

The plan is to...

create a dump file with all of the third party data loaded (matproj, jarvis, cod, etc.)
upload this dump file to the simmate cdn (where the sqlite prebuilds are also stored)
have the simmate database reset command offer to download and load the dump file

If you're interested in sharing the lab's calculation results with others, we can eventually add some warren lab data to the prebuilds too

I'm not sure if this will be faster or slower than the load-remote-archives command, so there's a chance I scrap this feature too

It takes 4-12 hours to grab all the data for postgres when loading all archives, in my experience.  I presume the bottleneck is that the cdn is rate limited.
I believe our database with all matproj, jarvis, cod, + oqmd is 4 GB for reference.  Not sure how it compares to the original data that is stored at the cdn.

I presume the bottleneck is that the cdn is rate limited.

Downloading from the CDN is actually really quick and only takes a few minutes with UNC's crazy internet speeds. The slow part is then taking that CSV data and then saving it your postgres database. Right now, thebottleneck is recalculating the MatProj hull energies for all systems, so I need to cache these. Once cached, I bet the load-remote-archives command will only take ~1-2 hrs.

Not sure how it compares to the original data that is stored at the cdn.

you can look at the files in ~/simmate/sqlite-prebuilds/ to see what's stored in the cdn. These are really just CSV files compressed into a ZIP and I think they're normally ~1-2GB


fix (spark-k8s): CVE-2024-36114

Description
Fix CVE-2024-36114 in Spark 3.5.1 by upgrading a dependency. Spark 3.5.2 is not affected.
part of stackabletech/vulnerabilities#834
Definition of Done Checklist

Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
Please make sure all these things are done and tick the boxes

- [x] Changes are OpenShift compatible
- [x] Add an entry to the CHANGELOG.md file
- [ ] Integration tests ran successfully

TIP: Running integration tests with a new product image
The image can be built and uploaded to the kind cluster with the following commands:
bake --product <product> --image-version <stackable-image-version>
kind load docker-image <image-tagged-with-the-major-version> --name=<name-of-your-test-cluster>

See the output of bake to retrieve the image tag for <image-tagged-with-the-major-version>.

https://testing.stackable.tech/view/02 Operator Tests (custom)/job/spark-k8s-operator-it-custom/11/


Text is not contained in the class in the posts view

I think its this:
class="prose text-gray-500 max-w-none dark:text-gray-400"
Text  is shown as one line breaking the container. I had a go to fix but only just started with tailwind.

Hi, can you elaborate what the problem is or add a screenshot?

Hiya, sure,

On the 'Latest' pages, the excerpt runs off the page to the right. Once clicked onto the post, its good.
A really great theme by the way

That's strange... do you see it on https://tailwind-nextjs-starter-blog.vercel.app/ too or only your local version? There's an outer wrapper div which should prevent it from overflowing. If you see it on the sample website as well, can I check what browser are you using?

Hi, It still does it on the demo site above. I am using safari Version 13.1.1 (156<IP_ADDRESS>.2). However I just checked on another mac, and it doesn't do it on their so it must just be my machine. I don't know if some other code is missing, because when you change pages, the header navigation changes position. Also the footer is overlapping.
Maybe just my machine but it also does this on the iPhone. Thanks for looking at it

Ok, the problem is due to various flex bugs with safari and the fact that it might not support all the flex classes used in the template. As such, it looks different compared to chrome or safari. I tried to fix some of them. Let me know if you still get the same problems. If so, I welcome a pull request to fix the bugs

It's fixed the navigation issue thanks,


How to compile Caffe for windows without CUDA?

Can I compile Caffe for windows without CUDA? looking forward for your kind response.

Hi monjoy,
From my knowledge it is not possible to built caffe without CUDA.If you want to use caffe without CUDA try in Ubuntu operating system. I did for ubuntu
Regards,
Gopi Krishnan.R

ok Thank you. I compiled caffe in ubuntu.
Thanks and Regards,
Monjoy Saha
On Thu, Apr 7, 2016 at 11:42 AM, Gopi Krishnan<EMAIL_ADDRESS>wrote:

Hi monjoy,
From my knowledge it is not possible to built caffe without CUDA.If you
want to use caffe without CUDA try in Ubuntu operating system. I did for
ubuntu
Regards,
Gopi Krishnan.R
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/niuzhiheng/caffe/issues/85#issuecomment-206787227


Material Data Tables

Add new demo to gallery to show data tables. (This currently doesn't
use a Card; I'll create a Card version in a subsequent patch.)

Fix checkbox alignment. It now centers in its box regardless.

Add Colors.black54.

Some minor fixes to dartdocs.

DataTable, DataColumn, DataRow, DataCell

RowInkWell

Augment dartdocs of materia/debug.dart.

DropDownButtonHideUnderline to hide the underline in a drop-down when
used in a DataTable.

Add new capabilities to InkResponse to support RowInkWell.

Augment dartdocs of materia/material.dart.

Add an assert to catch nested Blocks.

Fix a crash in RenderBox when you remove an object and an ancestor
used its baseline. (https://github.com/flutter/flutter/issues/2874)

Fix (and redocument) RenderBaseline/Baseline.

Add flex support to IntrinsicColumnWidth.

Document more stuff on the RenderTable side.

Fix a bug with parentData handling on RenderTable children.

Completely rewrite the column width computations. The old logic made
no sense at all.

Add dartdocs to widgets/debug.dart.

Add a toString for TableRow.

@HansMuller

Fixes https://github.com/flutter/flutter/issues/2768
Fixes https://github.com/flutter/flutter/issues/2874

This is a nice piece of work!
LGTM


Convert all dataclasses to pydantic basemodels

Partial fix of #89
Replaces all uses of dataclasses in our factory with pydantic BaseModels.
This highlighted several issues in the type hints of Spec objects that I fixed as well.

Thanks for the suggestion, I included it in my commit!

I had to rebase the PR, could you re-approve it?


Add missing i18n tokens/texts to Catalogue view

Related to #965
Add missing i18n tokens/texts related to Catalogue view:

Show ... entries
Search
Name
Backend host
View Details
Bookmark
Rating
Showing 1 to 10 of ... entries
No data available in table (text appears when you search)
Previous
Next

Closing this issue. The Catalogue templates have been re-written since the original i18n audit. All catalogue related templates have i18n tokens/texts for all UI text.

See PRs: #1165, #1221


Update aiohttp to > 3.*

py-evm Version: 0.2.0a26
OS: linux
Python Version 3.6

What is wrong?
Aiohttp dependency is quite ubiquitous and using old version prevents including py-evm in many projects.
How can it be fixed
It should be minor update according to: https://docs.aiohttp.org/en/stable/changes.html

I may be wrong but I'm not sure if that library is actually in use anywhere right now. Trinity does currently not provide an http server built-in and there are currently no plans to provide that functionality built-in because there are other adapter-like mechanisms that people may use in the future to get an HTTP interface to Trinity.
I did a quick search on aiohttp across the source code and the only place where I see it is in the dependency list.

I'm inferring from this commit that it's eth-tester that requires aiohttp < 3 https://github.com/ethereum/py-evm/commit/df84ff208f2e7656bb9206afa3a94cc1bc83393c
Maybe it was simply a bug that that requirement slipped in, though. Before we simply delete the line, do you remember why it was added @hwwhww ?

@carver I'm so sorry I just saw I was tagged, and don't have the memory of why I added it. I guess it was for async_lru for some reason. And now the async_lru dependency is only for p2p, not for evm. Again, apologies for that I should have another commit to fix it and poor memory.
I think we can just remove it all aiohttp and the async_lru of evm. I will fix it.

This can now be closed as we got rid of the dependencies.


panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xe3706c]

command used: cat subdomains.txt |katana -jc -d 5 -headless -o katana.txt
katana version: v1.0.5
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xe3706c]
goroutine 49479 [running]:
github.com/projectdiscovery/utils/url.(*URL).String(0x0)
/home/gdattacker/go/pkg/mod/github.com/projectdiscovery/utils@v0.0.72/url/url.go:98 +0x2c
github.com/projectdiscovery/katana/pkg/engine/hybrid.(*Crawler).navigateRequest.func1(0xc0083e8b40)
/home/gdattacker/go/pkg/mod/github.com/projectdiscovery/katana@v1.0.5/pkg/engine/hybrid/crawl.go:68 +0x230
github.com/projectdiscovery/katana/pkg/engine/hybrid.(*Hijack).Start.func2(0x0?)
/home/gdattacker/go/pkg/mod/github.com/projectdiscovery/katana@v1.0.5/pkg/engine/hybrid/hijack.go:52 +0x28
reflect.Value.call({0x13905e0?, 0xc018f737d0?, 0x100c010bcf640?}, {0x1572398, 0x4}, {0xc00188df58, 0x1, 0xc0083e8b40?})
/usr/local/go/src/reflect/value.go:596 +0xce7
reflect.Value.Call({0x13905e0?, 0xc018f737d0?, 0xc0083e8b40?}, {0xc00188df58?, 0xc00c4b2330?, 0x707260?})
/usr/local/go/src/reflect/value.go:380 +0xb9
github.com/go-rod/rod.(*Browser).eachEvent.func1()
/home/gdattacker/go/pkg/mod/github.com/go-rod/rod@v0.114.1/browser.go:401 +0x3d9
github.com/projectdiscovery/katana/pkg/engine/hybrid.(*Hijack).Start.func3()
/home/gdattacker/go/pkg/mod/github.com/projectdiscovery/katana@v1.0.5/pkg/engine/hybrid/hijack.go:57 +0x22
created by github.com/projectdiscovery/katana/pkg/engine/hybrid.(*Crawler).navigateRequest in goroutine 49419
/home/gdattacker/go/pkg/mod/github.com/projectdiscovery/katana@v1.0.5/pkg/engine/hybrid/crawl.go:49 +0x51b

Thank you for opening this issue. I have made a minor modification in https://github.com/projectdiscovery/katana/pull/773. Kindly retry with this change and let us know if the issue has been resolved.


Hide item

How can i hide the item ? or set the visible on one of the item ?

Are you looking to secure based on roles or just programmatically turn the visibility on/off?


Two profiles called "SubscriptionStatus for the handshake event"

Section Number Identify the most specific section number the issue occurs (e.g. 4.1.2)
Artifacts
Issue Describe your issue. Don't write a book, but do include enough to indicate what you see as a problem.
There are two profiles called "SubscriptionStatus for the handshake event"
Proposed Change Propose a resolution to your issue (e.g., suggested new wording or description of a way to address the issue). The committee might simply accept your suggested text. Even if they don't, it gives a good sense of what you are looking for. Leaving this blank means you can't imagine how to resolve the issue, which makes it easier for the committee to admit they can't imagine how to resolve it either and leave it unresolved.
Rename the profiles to differentiate them. Is one of them supposed to be a heartbeat?
Priority:

Medium: Significant issue or clarification. Requires discussion, but should not lead to long debate.

typos to be fixed. one is for hearthbeat


Fix #184 - Link not matching trailing /

Fix #184
Issue summary : <A> was not showing as active for domain.com/solidjs/ due to trailing slash.
This PR exposes the normalize() utility function as normalizePath() so it can be used by the <A> component when comparing active paths.

Thanks


Support diagram scheme for SFC/Grafcet

https://desk.draw.io/a/tickets/35788

Closing through lack of additional interest.

Hi. I was looking for a software to support preliminary functional specifications of GRAFCETs and haven't found anything until now.
I would find that support on drawio very interesting since I already use this tool in many other drawings.
Thanks in advance

I agree this is a feature we (engineers) cannot find anywhere for free or opensource. the only software i can use is a school that made it back in 2003 (called EditSTAB). there is a real business around Grafcet/SFC diaggrams.


Clarification on post-split-brain behavior

The architecture doc states:

When the old primary node connects to the new primary node, it will see that its checksum is different even though its transaction ID could be the same. At this point, it will resnapshot the database from the new primary to ensure consistency.

How does this appear to the application?

Good question. The new snapshot is written to the SQLite database under the same locking mechanism as a regular SQLite write transaction. So the application wouldn't notice anything different from the database except the data may be different since it's reverting unreplicated transactions.
One other difference is that the transaction ID can appear to repeat itself. The TXID is an autoincrementing number and it's combined with the rolling checksum of the database to form the replication position. If you have a db database file then you can read its replication position from db-pos.
The scenario where TXID can repeat is like this:

Node A is primary and is at TXID 100.
Node B is a replica and is replicated up to TXID 100.
Node A receives two new transactions (101, 102) but disconnects from the network before it replicates to Node B.
Node A loses its lease and Node B gets promoted to primary.
Node B receives a different transaction and moves to TXID 101.
Node A reconnects as a replica connected to the primary (Node B).
Node A sees its position doesn't match Node B so it re-snapshots and reverts to Node B's version of TXID 101.

A client connected to Node A could see TXID 102 and then when it reconnects it is back at 101. Hopefully that makes sense?


jodyford added graph query for G02.08

Description
addedAzure Resource Graph query that checks for key vaults with firewalls and virtual network service endpoints or private endpoints enabled, you can use the following query:
Related Issue
N/A

Checklist

[x] I've tested my changes to ensure they are ready for review.
[x] I've read the CONTRIBUTING.md guide.
[x] I've updated the documentation (if applicable).
[x] Resource Graph queries have been included (and tested) for recommendations where ever possible[^note].
[ ] Resource Graph queries have NOT been included (please explain below).

Additional Information
Is there any additional context, screenshots, or considerations that might help in the review process? Please include them here.
Reviewer Notes
Is there a specific area you’d like feedback on? Please highlight it here. We're here to help and learn together! 💡
[^note]:
Details on how to add Azure Resource Graph queries to recommendations can be found here.


Update ugsec.adoc

I want my daughter back from child custidy,  barnevernet,  they did it dispite the law,


DBZ-2868 imprt TestDatabase as QuarkusTestResource for debezium-server IT tests

https://issues.redhat.com/browse/DBZ-2868
implementing QuarkusTestResourceLifecycleManager with TestDatabase it simplifies IT tests
i will open jira ticket if the changes looks ok

We have already have a QuarkusTestResourceLifecycleManager implementation in place in the UI POC. Would be great if we could move that to debezium-testing-testcontainers package and use it in debezium-server. WDYT?

maybe its better to wait on #2012 its centralizing PostgreSQL image.
only question i have is how to get dynamic port to TestConfigSource.java/application.properties

it seems like its automatically picked up by MicroProfile Config. follwoing ceode did work
setting param in start
return Collections.singletonMap("quarkus.test.resource.minio.port", container.getMappedPort(MINIO_DEFAULT_PORT).toString());

reading it
@ConfigProperty(name = "quarkus.test.resource.minio.port")
String minioPort;

maybe its better to wait on #2012 its centralizing PostgreSQL image.

Agreed! That's why I asked about that relationship before.

only question i have is how to get dynamic port to TestConfigSource.java/application.properties

See my comment above in the linked code in PostgresInfrastructureTestResourceLifecycleManager. You can configure environment / system properties that are injected on Quarkus startup (instead of Kafka Connect you can configure the JDBC datastore for the PG instance).

Can you also please fix the commit messages and/or squash into one commit? The commit messages need to start with a Jira ticket id.

makes sense, also it seems like FixedHostPortGenericContainer deprecated. is it possible to pass the dynamic port to ConfigSource before the server initializes?
need to check how to pas dynamic port to TestConfigSource.java and set property 'debezium.source.database.port'

Pushed one more commit to take care of that; the variables returned from PostgresTestResourceLifecycleManager#start() automatically amend/override those values from the config source, so there's no need to expose them via the config source in the first place.

makes sense, also it seems like FixedHostPortGenericContainer deprecated. is it possible to pass the dynamic port to ConfigSource before the server initializes?
need to check how to pas dynamic port to TestConfigSource.java and set property 'debezium.source.database.port'

Pushed one more commit to take care of that; the variables returned from PostgresTestResourceLifecycleManager#start() automatically amend/override those values from the config source, so there's no need to expose them via the config source in the first place.

And merged; thx, @ismailsimsek and @rk3rn3r!

And merged; thx, @ismailsimsek and @rk3rn3r!


tw_opt_set

This is a new API function which can be used to set options during runtime (any options that are registered with TWOPT). It may be useful for models that always require certain options.
This is also a step in the direction of formalizing the ROSS API and removing the need for models to muck with global variables. The hope is that models only worry about options documented by --help text and never need to remember g_tw_xxx variables.
Some larger discussion should take place in #162.

If this merge represents a feature addition to ROSS, the following items must be completed before the branch will be merged:

[ ] Document the feature on the blog (See the website Contributing guide).
Include a link to your blog post in the Pull Request.
[ ] Builds should cleanly compile with -Wall and -Wextra.
[ ] One or more TravisCI tests should be created (and they should pass)
[ ] Through the TravisCI tests, coverage should increase
[ ] Test with CODES to ensure everything continues to work

This needs some logic as to whether tw_opt_set is being called before or after tw_opt_parse. At first blush, I feel like it is incorrect to call set after parse... but really, there is no reason not to, other than being sane for model developers and ensuring that options set on the command-line always take precedence.

I should also de-allocate that memory I use...


Changing the alignment of NKVPhonePickerTextField does not change the Flag and the + sign

When you set an alignment for the NKVPhonePickerTextField to lets say bottom, the phone number correctly aligns to the bottom but the flag and the plus sign seem to always be aligned to center left.

Is there a way to change this behavior ?

You can fix it only if change the frame in code. The frames for the flag and plus calculated manually, so it don't rely on alignment property of the UITextField. 😕

Please commit a PR if you would take this problem into account, but this is not hard-needed feature, so i regretfully not going to work at it. Closing the issue.


Install Python modules if needed when running abi_check

I forgot about the ABI check job in https://github.com/ARMmbed/mbedtls-test/pull/18.
Testing:

[x] On https://github.com/ARMmbed/mbedtls/pull/5193 which revealed the bug and where the check should pass: https://jenkins-mbedtls.oss.arm.com/job/mbed-tls-pr-test-parametrized/215/ → PASS, log looks sensible
[x] On https://github.com/ARMmbed/mbedtls/pull/5263 which doesn't need Python modules and where the check should pass: https://jenkins-mbedtls.oss.arm.com/job/mbed-tls-pr-test-parametrized/214/ → PASS, log looks sensible
[x] On https://github.com/ARMmbed/mbedtls/pull/5189 targeting development_2.x where the check should run normally and report differences: https://jenkins-mbedtls.oss.arm.com/job/mbed-tls-pr-test-parametrized/216/ → reported failures as expected

This is a low-risk patch so I'm merging it with one approval.


Adding a file that is already added triggers commit even if commits are disabled.

I am starting aider with --no-dirty-commits --no-auto-commits --model gpt-4
When adding /add a file that was already added triggers a commit.

Thanks for trying aider and reporting this issue.
I can't reproduce the problem you are describing. What version of aider are you using? Can you share a screenshot or paste the output of aider where you are seeing unexpected behavior?
If you really don't want aider to do anything with git, you can use --no-git.


Tizen C-API application bug fix

issue #377 has occured since #403.
Found that current classification assumes to have trainingSet as a
validationSet.
Fixed accordingly, which resolves #377
I think it is hard to say as a bug though, this patch enables training.
Self evaluation:

Build test: [X]Passed [ ]Failed [ ]Skipped
Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.4.20191203. Thank you for submitting PR #405. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.


Form validation is busted on beacon document upload

[ ] You can successfully submit without a title
[ ] Document hrefs aren't being correctly set in the database

This is due to the javascript. It should be moved over to the opportunityForm.js format used by the conductor contract/company stuff.


Is it possible to prevent the manifest from being written to disk?

I'm managing the manifest in-memory and through my own module, so I'd like the option to not write it to disk in some cases.
I assumed that returning null or undefined from the reduce function or filtering out all the assets would prevent writing to disk, but that doesn't seem to happen.
Is this supported?

if you are using memory-fs, it shouldn't write to disk

I'm managing the manifest in-memory

I checked your boilerplate, to check how you are doing that. You might be interested by: https://github.com/danethurber/webpack-manifest-plugin/pull/76
Anyway, I don't think an option we want


Correction for raw affiliation Department of English, St. Xavier's University, Kolkata, India

Correction needed for raw affiliation Department of English, St. Xavier's University, Kolkata, India
raw_affiliation_name: Department of English, St. Xavier's University, Kolkata, India
new_rors: 008kngs41
previous_rors: 039543c28
works_examples: W4377086455
contact: 61794af33d94d767c71c3f509ecab857:b28122f8 @ ourresearch.org

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Streaming support

Will add streaming support.

current commits are completely untested, hence draft

Okay, this works with the following script:
import outetts
import sounddevice as sd
import threading
import time

model_config = outetts.EXL2ModelConfig_v1(
    model_path="OuteTTSexl2",
    language="en",
)

interface = outetts.InterfaceEXL2(model_version="0.2", cfg=model_config)

speaker = interface.load_default_speaker(name="male_1")

audio_queue = []
def player():
    global audio_queue
    while True:
        time.sleep(0.01)
        while audio_queue != []:
            if isinstance(audio_queue[0], bool):
                return
            sd.play(audio_queue[0], samplerate=24000)
            sd.wait()
            audio_queue.pop(0)

threading.Thread(target=player).start()

print("running interface")

for i in interface.generate_stream(
    text="Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and it can be implemented in software or hardware products.",
    temperature=0.1,
    repetition_penalty=1.1,
    max_length=4096,
    speaker=speaker,
):
    audio_queue.append(i.audio.cpu().numpy().squeeze())
audio_queue.append(False)

Currently it's only implemented in EXL2. Except for input_ids = self.prepare_prompt(text, speaker).to("cpu") generate_stream in interface should just be moveable to InterfaceHF, then implementing generate_stream for HF and GGUF shouldn't be too hard

Also, doesn't include any sort of fading/other way to reduce chunk clipping noise (yet)

You should look for the code_end token and append word by word for buffering the audio. Here’s an example of how you could implement it:
def generate_stream(
    self,
    text: str,
    speaker: dict = None,
    temperature: float = 0.1,
    repetition_penalty: float = 1.1,
    max_length = 4096,
    additional_gen_config = {},
    additional_dynamic_generator_config = {},
    chunk_size: int = 8,
):
if chunk_size < 1:
    raise ValueError("Chunk size should be 1 or more")

code_end_token = self.prompt_processor.tokenizer.encode(self.prompt_processor.special_tokens["code_end"], add_special_tokens=False)[0]
logger.info(f"Code end token: {code_end_token}")

# you can use .cpu() instead of .to("cpu")
input_ids = self.prepare_prompt(text, speaker).cpu()
if self.verbose:
    logger.info(f"Input tokens: {len(input_ids)}")
    logger.info("Generating audio...")

self.check_generation_max_length(max_length)

audio_buffer = []
token_buffer = []

for piece in self.model.generate_stream(
    input_ids=input_ids,
    config=GenerationConfig(
        temperature=temperature,
        repetition_penalty=repetition_penalty,
        max_length=max_length,
        additional_gen_config=additional_gen_config,
    ),
    additional_dynamic_generator_config=additional_dynamic_generator_config
):

    token_buffer.append(piece)

    if piece == code_end_token:
        audio_buffer.append(self.get_audio(token_buffer))
        token_buffer = []

    if len(audio_buffer) == chunk_size:
        output = ModelOutput(torch.cat(audio_buffer, dim=-1), self.audio_codec.sr)
        audio_buffer = []
        yield output

if audio_buffer:
    output = ModelOutput(torch.cat(audio_buffer, dim=-1), self.audio_codec.sr)
    yield output

As mentioned before, we should use an audio queue for better handling of audio playback. Also, the output can handle playing directly without needing a separate function:
import outetts
import threading
import queue

model_config = outetts.EXL2ModelConfig_v1(
    model_path="",
    language="en",
)

interface = outetts.InterfaceEXL2(model_version="0.2", cfg=model_config)

speaker = interface.load_default_speaker(name="male_1")

audio_queue = queue.Queue()

def audio_player():
    while True:
        chunk = audio_queue.get()
        if chunk is None:
            # No more audio chunks to process
            break
        chunk.play()
        audio_queue.task_done()

audio_thread = threading.Thread(target=audio_player)
audio_thread.start()

for chunk in interface.generate_stream(
    text="Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and it can be implemented in software or hardware products.",
    temperature=0.1,
    repetition_penalty=1.1,
    max_length=4096,
    speaker=speaker,
):
    print(chunk)
    audio_queue.put(chunk)

# Signal that audio generation is complete
audio_queue.put(None)

audio_thread.join()

You should also look into the EXL2 model. For some reason, it fails to generate properly. It keeps generating indefinitely and does not output the BOS token.

I also noticed in your implementation that you were decoding 8 tokens at a time:
if isinstance(piece, int):
    pieces.append(piece)
if isinstance(piece, str):
    size += 1
if size == chunk_size:
    audio = self.get_audio(pieces)

This chunk size is way too small, it’s about 0.1 seconds of audio per decode. This likely leads to the issues you described, such as clicking. Also calling self.get_audio that frequently will significantly slow down generation.

I also noticed in your implementation that you were decoding 8 tokens at a time

This is every 8 decodable tokens, not every 8 audio tokens. I agree 8 audio tokens is way too few to decode and would probably sound like noise. Decodable tokens seem to only occur after each part of audio gen completes. The models generate_stream() yields every token_id and a string every time there's a decodable token. If there's a decodable token, size goes up by one until it's 8.

Sounds good, I'll check it out. Sorry for going silent on this, things on my side got really busy pretty quick. I'll work on this PR once I'm able to. The generate_stream function should just be repastable to InterfaceHF once logic for transferring input_ids to CPU/GPU is implemented straight in the respective engine (super easy), you might have already seen that

In addition, what could work well for chunking is decoding one overlapping token and then fade it out as that same overlapping token is faded in for the next chunk. That way, the audio volume stays consistent while the popping disappears. The fade function can even be exponential or quadratic as long as both fade in and fade out added together at any time equal 1. Problems with this:

One chunk has to wait for the next to decode
Complex to implement, especially timing which tokens are where in time
Slightly higher latency from the decoder since the same token is decoded multiple times

Solves:

No more popping
Chunk length can go from 8 -> ~3-2

Sigmoid could be good for this

Sorry for going silent on this, things on my side got really busy pretty quick.

All good! No rush :)

what could work well for chunking is decoding one overlapping token and then fade it out as that same overlapping token is faded in for the next chunk.

That's a good idea, we could add some kind of dummy token then fade it. The popping mostly happens as it cuts the audio abruptly in the chunks. If you stream with stream_segments enabled, it will stream like sentences so it mostly is fine and shouldn't pop or be very minimal.
After some testing you'll see in the implementation I keep the token history as context for wav tokenizer decoder. That fixes an issue where it couldn't handle smaller chunks as it now has the previous history to work with, then we just slice the audio from latest chunk after it's decoded.

I keep the token history as context for wav tokenizer decoder.

My only issue with this is that decoding time will also increase as the decoding size gets bigger. I think keeping the past ~1-3 tokens should be sufficient without sacrificing too much performance (this is still a decent chunk of decoding performance loss though since decoding 1 token is a lot different than decoding 4. Perhaps only use this with chunks < 4? Or scale according to size, i.e. chunks of 8 have 1 extra token while chunks of 2 have 2 or 3)

I keep the token history as context for wav tokenizer decoder.

My only issue with this is that decoding time will also increase as the decoding size gets bigger. I think keeping the past ~1-3 tokens should be sufficient without sacrificing too much performance (this is still a decent chunk of decoding performance loss though since decoding 1 token is a lot different than decoding 4. Perhaps only use this with chunks < 4? Or scale according to size, i.e. chunks of 8 have 1 extra token while chunks of 2 have 2 or 3)

Decoding should be fast, and it's quite dependent on history to keep the audio quality. Maybe not keep all of it, but it should keep solid chunk of words in the context, let's say something like 16-32 words, then after it can have a sliding window that keeps the newer words.
"~1-3 tokens" we should also look at this not by tokens but rather by the chunk (word).


[BUG] java: incompatible types: java.util.Iterator<java.lang.Object[]> cannot be converted to java.util.Iterator<T[]>

Was following the Intellij Setup Tutorial when that happened
Screenshot:
https://media.discordapp.net/attachments/584392541336502283/874741681705091122/unknown.png
Full error message:
G:\Downloads Folder\7 4 2021\CrackByPaolloV\mcp918\src\minecraft\net\minecraft\util\Cartesian.java:61:36
java: incompatible types: java.util.Iterator<java.lang.Object[]> cannot be converted to java.util.Iterator<T[]>
im using Java 1.8

I’d just like to mention how funny the CrackByPaolloV is.
Are you certain that this is an error with This project, cause this type of error would prevent the client from starting up (and I believe that this project can at least start up.


Quitting a competitor suggests wrong replacement when their prior results changed

Hi,
When fixing a scoretaking mistake after a competition, I changed the R1 results of a competitor, and then cleared their results and quit them from R2 because they no longer qualified for the round.
Instead of giving me the correct competitor as a replacement, WCA Live gave me the competitor behind the unqualified competitor with their new result.
To be more clear, here is the affected round. Romain Stefan was initially qualified, but then wasn't anymore. I cleared his result, and quit him, and it suggested Samuel Jehanno, when it should have suggested Gabin Thiery. (Based on a later test on a local instance of Live, clicking "yes" would have indeed accepted Samuel instead of Gabin).
Based on the same local test, updating that competitor's results to a full DNF doesn't suggest a competitor to replace them with, because there is noone else with results after them now.
This feels like a pretty important bug, because as far as I know, this popup is the only way to accept new people into subsequent rounds, and it could be easily missed, and qualify the wrong competitor after a scoretaking mistake. My example isn't an issue because the competition is already over anyway, but it can also happen during a competition if the next round is opened before scorechecking is done.
Steps to reproduce:

Enter some results in a first round.
Open the second round.
Change the result of a qualified competitor in the first round so that they don't qualify anymore.
Quit them from the second round.

For more context, the reason for this behaviour is that we don't explicitly track which competitors quit. Instead, when looking for replacement, we look at the previous round and effectively consider any gaps in the (green) advancement markers as competitors who already quit. This approach doesn't work as expected when the previous results are altered and the result changes its position.

because as far as I know, this popup is the only way to accept new people into subsequent rounds

I believe you can quit competitor from the next round without picking any replacement, and then use "Add competitor" to pick the next candidate, which should be the correct one in this case.
FWIW I think altering previous round as the next one is already ongoing is fairly unlikely and should be always done with care.
To improve this behaviour, when quitting a competitor we could add a quit flag on their previous result. This way we wouldn't need the heuristic for treating "gaps in green markers" as competitors who quit. IIRC the main reason for this heuristic in the first place, was that the prior implementation of WCA Live operated on WCIF directly and I wanted to avoid adding attributes to the document.


refactor!: worker status

description
At the start of each epoch, GI queries the /workers_status API on each node to identify the supported worker types and determine if the node qualifies as a full node. Full nodes are prioritized in the request distribution process. However, if a node's /workers_status API response is erroneous or abnormal during this check, it will be disqualified from distributing requests for that entire epoch cycle.
It is recommended that all nodes upgrade to at least version v0.5.17.
breaking changes

add new scheduler service enforcer instead of reliability_score
upgrade golangci-lint to 1.58.1 to match the node.

close https://github.com/RSS3-Network/Protocol-Go/issues/33


docs: Document the Event Loop as it Relates to Node

This came up in the roadmap with #70 and I volunteered to get some content put together. I've done some local presentations on it for the JS folks in my town. I really enjoyed a talk by Philip Roberts @ JSConf EU 2014 something like that could be made more Node-centric and distilled into some GIFs for a presentation to help illustrate it.

I see this issue listed on the docs quarterly roadmap along with an overview of "blocking vs non-blocking" and was wondering how you plan to cover this topic without involving the other, and how one would talk about blocking without getting into how the event loop works? I ask just for the sake of planning the topics, I was considering trying to help out on the blocking topic.

I started work on this about a week ago and would greatly appreciate feedback!
https://github.com/nodejs/node/pull/4936

@jrit I'm imagining the "Introduction to Node.js" document introducing the concept of blocking vs non-blocking breifly (and pointing to the topic/guide for that) just before also briefly describing the event loop (and pointing to the topic for that).  But that's just off the top of my head.
The trick I think is establishing a progressive hierarchy of documents: at the foundation, we have the documents for those totally new to node which introduce but skim over many of the core concepts while providing inline links to documents of further detail.
Also, FYI - Just pushed updates to nodejs/node#4936

@techjeffharris That definitely sounds good, establishing a hierarchy of documents to progressively explain more I think would be the best. I'll take a look at your PR and provide any feedback I can.

Closing as this repository is dormant and likely to be archived soon. If this is still an issue, feel free to open it as an issue on the main node repository.


default to normal

I love this plugin but this missing (and easy to implement feature) has really been bugging me.
If I open up a new file a.txt:
1

I can increment the 1 normally with <c-a>. However, that doesn't work with dial because dial doesn't have any groups associated with a random text file.
How can I configure dial to default to the builtin mapping if dial doesn't do anything? Should this be a default?
Thanks for the awesome plugin.

not default i guess.
What I meant was "fallback". So fallback to  and make it behave like vanilla vim if dial.nvim doesn't do anyhing. Do you understand the example I gave in the original post?

dial.nvim supports all the features provided built-in <C-a>/<C-x>, so no fallback function is provided at this time.
If requested, I would consider adding a function like require("dial.status").manipulatable().
This function would allow fallback to the default if there is no manipulatable augend:
vim.keymap.set("n", "<C-a>", function()
    if require("dial.inspect").manipulatable() then
        -- use dial.nvim's <C-a>
        return "<Plug>(dial-increment)"
    else
        -- fallback to built-in
        return "<C-a>"
    end
end, { expr = true })

@monaqa That would actually be quite nice to have. I believe I found myself in similar situation as reported by OP.

Sorry @gegoune, but I can't reproduce what OP said, could you provide the reproduction steps? For me, it just workx as expected when opening a.txt

For simple case such 1 it does work, as @monaqa states in their comment. I can't think of/remember situation I mean in my previous comment, so perhaps it is not relevant or factual at all.