--write-m3u: Generate with regards to local files (as opposed to YouTube links)

What is the purpose of your issue?

[ ] Bug
[x] Feature Request
[ ] Question
[ ] Other

Description
Currently, --write-m3u generates an m3u file using YouTube links. It'd be great if this could be expanded so that it points to the local files (ie. download the list, and create an m3u file which points to the local files instead of the YouTube link). This would make the --write-m3u argument much more widely applicable, especially for importing playlists.
Log

After a little thought, this doesn't seem like something spotdl should handle since spotdl mainly focuses on matching tracks from YouTube, and this doesn't make use of any core functions in spotdl in any way.
There probably are external tools for this very specific purpose or should be easily be doable with a custom script. You could download the tracks and run the script on them to generate an m3u file. What do you think? I mean I could add this but maintaining this for future would be an additional burden on the devs when there are tools that do exactly the same thing.

This doesn't seem like something spotdl should handle

Spotdl already handles most of it with the --write-m3u argument. I understand the point that external tools might be a more reliable method of doing this, but then why have the write-m3u argument at all?
If your position is that write-m3u shouldn't really be a part of spotdl (or that it won't be maintained as often/low priority), I understand that. On the other hand, if it is, I personally believe that allowing it to write with regards to local files could be useful.
Just my two cents :)
Thanks for all your hard work!

Duplicate of #599.


Passing skip parameter to MQTTClient::connect()

With passing the skip parameter, it would be possible to do the TLS connection outside of the mqtt client. Which is useful in case of intense certificate handling for example.
Maybe this clarifies, what I mean: https://github.com/256dpi/arduino-mqtt/issues/169
I can now for example switch between the two google LTS rootCAs.
device = new CloudIoTCoreDevice(project_id, location, registry_id,
                                device_id, private_key_str);
mqttClient = new MQTTClient(512);
mqttClient->setOptions(180, true, 1000); // keepAlive, cleanSession, timeout
netClient = new WiFiClientSecure();
netClient->setCACert (root_cert_lts);
mqtt = new CloudIoTCoreMqtt(mqttClient, netClient, device);
mqtt->setUseLts(true);
mqtt->startMQTT();

// Establish LTS Connection
int ret = netClient->connect(CLOUD_IOT_CORE_MQTT_HOST_LTS, (uint16_t) CLOUD_IOT_CORE_MQTT_PORT);
if(ret == 0 && netClient->lastError(nullptr, 0) == -9984){
  DEBUG_MSG("Problem with Root CA. Trying backup.");
  netClient->setCACert (root_cert_lts_backup);
}
ret = netClient->connect(CLOUD_IOT_CORE_MQTT_HOST_LTS, (uint16_t) CLOUD_IOT_CORE_MQTT_PORT);
if(ret == 0 && netClient->lastError(nullptr, 0) == -9984){
  DEBUG_MSG("Again problem with Root CA. Cancel.");
  return false;
}
if (ret == 0) {
  DEBUG_MSG("Problem with WIFIClientSecure. Error Code: " + String(ret));
  return false;
}
mqtt->mqttConnect(true);

@googlebot I signed it!

This is awesome, thank you!


Question: remove eigen and lu methods for stationary distribution?

I was looking over our coverage results and noticed that we don't test lu_solve or eigen_solve at all.
Is the gth_solve algorithm strictly better? If so, I would vote to remove the other two algorithms entirely.
cc: @oyamad @ZacCranko

gth_solve should be strictly better at least in terms accuracy.
You might try the following example, for e = 1e-12 through 1e-17 for example:
function mc_example(e)
    p = 0.5
    P = [1-(p+e) p       e
         p       1-(p+e) e
         e       e       1-2*e]
    return MarkovChain(P)
end

Analytically the unique stationary distribution is (1/3, 1/3, 1/3) for any value of e.

What ever you guys want to do. I thought I included tests for these at one point. Apparently not!

Implemented in #99 see discussion there


Add the documentation of how to set Auth User Method

Summary of Changes
This updates the documentation of OIDC support, and explains how to setup the AUTH_USER_METHOD using OIDC provider.
Tests
N/A
Documentation
This is documentation change. Please refer to summary of this PR.
CheckList
Make sure you have checked all steps below to ensure a timely review.

[x] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[x] PR includes a summary of changes, including screenshots of any UI changes.
[x] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[x] In case of new functionality, my PR adds documentation that describes how to use it.

All the public python functions and the classes in the PR contain docstrings that explain what it does

[x] PR passes all tests documented in the developer guide
[x] I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message"

Codecov Report

Merging #175 into master will increase coverage by 19.85%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #175       +/-   ##
==========================================
+ Coverage   53.24%   73.1%   +19.85%
==========================================
  Files         108      22       -86
  Lines        2710     948     -1762
  Branches      277      79      -198
==========================================
- Hits         1443     693      -750
+ Misses       1238     229     -1009
+ Partials       29      26        -3

Impacted Files
Coverage Δ

...ication/static/js/components/common/Tabs/index.tsx

...ndsen_application/static/js/ducks/search/api/v0.ts

...ication/static/js/components/common/Flag/index.tsx

...ts/common/ResourceListItem/TableListItem/index.tsx

...sen_application/static/js/ducks/allTags/reducer.ts

...tatic/js/components/common/ScrollTracker/index.tsx

...pplication/static/js/ducks/popularTables/api/v0.ts

...js/components/TableDetail/WatermarkLabel/index.tsx

...sen_application/static/js/config/config-default.ts

...n/static/js/components/common/InfoButton/index.tsx

... and 76 more

Continue to review full report at Codecov.

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


[turborepo] ERR_PNPM_CANNOT_RESOLVE_WORKSPACE_PROTOCOL

What version of Turborepo are you using?
latest
What package manager are you using / does the bug impact?
pnpm
What operating system are you using?
Mac
Describe the Bug
pnpm run release localily
ERR_PNPM_CANNOT_RESOLVE_WORKSPACE_PROTOCOL

Expected Behavior
work well
To Reproduce
download example/design-system
pnpm i
git commit -m 'first'
pnpm changeset  -> all none none
pnpm install
pnpm release
get error
Reproduction Repo
No response

Hey @vaynevayne, couple things:

If you're starting from one of our examples, you'll have to rename the package names to something other than their defaults to be able to publish. The example repos we provide will not be publishable out of the box
I tried to follow your steps and got an error on publish (which is expected, since publishing shouldn't work out of box), but I got the expected 404 error on publishing @acme/core. The ERR_PNPM_CANNOT_RESOLVE_WORKSPACE_PROTOCOL error you reference seems different. What version of pnpm are you using? Is this what you're trying to solve with #5048?

@mehulkar hello
I released the package for the first time using changetset and monorepo+ pnpm
I have a lot of comments on my operation, and now I can't remember the specific reason. The other pr is because when I want to publish soul-eslint-config to npm, it prevents me from releasing it, so I just change it to *.
I have changed the pnpm version several times, from pnpm 7 to 8


Needs update to biomass libraries

To be compatible with the new harvest extensions and the land use extension, Century needs to be re-coded to be compatible with the biomass libraries. Lesley Bross did so on a branch; needs to implemented on the trunk.

How should the libraries be handled? The options in order of my preference:

NuGet
Add a lib folder and store copies of the libraries there that were used to build the project. Project points libraries in this directory
Point project at C:\Program Files\LANDIS-II\v6\bin\extensions directory for libraries (current scenario). I don't like this because there is no control over which library is in the extensions folder. Also developers have to compile and copy the library before the century project can be compiled.

My order of preference:

Add library folder.
Point to local.
NuGet.  I get NuGet but I don't like it as it involves more technology, more accounts, passwords, etc. Although a wonderful tool for the more advanced developers, it is a barrier to our goal of enabling scientists to quickly download, tweak, test.

Going with adding the lib folder. It looks like this task also requires updates to the leaf-biomass-cohort library. Can you break that out into its own repository and give me commit privileges?

Lesley,
My understanding - perhaps wrong - is that the leaf-biomass-cohort library will become essentially defunct after the change.  By having PnET, Biomass, and Century Succession all working with the same biomass-cohort library, we need not have duplicate biomass-harvest and biomass-insect disturbances.

That is not what I'm finding. There are still lots of references to the leaf-biomass-cohort library. I did not make any of these changes originally. Brian M. made them and I was tasked with integrating them into an installer for Jonathan's group. Right now, I'm just trying to migrate Brian's changes to the current century code. I recommend checking with Brian M. if you need more details. I may also have an old e-mail or two that I can forward.

You're correct, references to leaf-biomass-cohorts should remain.

Can you break leaf-biomass-cohorts out into its own repository and give me commit privileges?
Also, do other extensions use this library? If so, they will need to be tested with the updated leaf-biomass-cohorts

I'm afraid I can't from this computer - GitBash not working.  It would have to wait until mid-March when I return to PDX.  Assuming all goes well, no other extension should need the library.


No audio on playback

Describe the bug
Using Linux, 6.6.10-arch1-1, compose.yml as follows:
version: '3'
services:
  podfetch:
    image: samuel19982/podfetch:latest
    user: ${UID:-0}:${GID:-0}
    ports:
      - "80:8000"
    depends_on:
      - postgres
    volumes:
      - ./podcasts:/app/podcasts
    environment:
      - POLLING_INTERVAL=300
      - SERVER_URL=http://localhost:80 # Adjust to your server url
      - DATABASE_URL=postgresql://postgres:changeme@postgres/podfetch
      - DB_CONNECTIONS=10 # optional
      - BASIC_AUTH=true
      - USERNAME=foo
      - PASSWORD=redacted
  postgres:
    image: postgres
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
      PGDATA: /data/postgres
      POSTGRES_DB: ${POSTGRES_DB:-podfetch}
    volumes:
      - postgres:/data/postgres
    restart: unless-stopped

volumes:
  postgres:

Adding podcasts and downloading works as expected. Audio playback does not.
No output whatsoever, except for the little 'pop' that headsets/speakers sometimes make when switching from 0 output to some output, only for the first file I try to play. My system audio indicates an output stream from the web UI as well, but I hear nothing. Other browser-based output streams work as expected.
Files are downloaded fine, and the same files can be played with mpv by navigating to the directory.
docker-compose logs -f doesn't show anything of interest. Not sure how else to debug, I tried exporting the contents of the docker image but didn't find the debug file mentioned in those logs (actually, the directory system was nothing like that, so I guess it's lack of knowledge about docker on my part.)
Please let me know what further information I can provide.
Reproduction

Be on linux. 2. Copy above compose.yml. 3. Download podcast. 4. Try to play in firefox.

System Info
npx envinfo --system --binaries --browsers
Need to install the following packages:
<EMAIL_ADDRESS>Ok to proceed? (y) y

  System:
    OS: Linux 6.6 Arch Linux
    CPU: (24) x64 AMD Ryzen 9 5900X 12-Core Processor
    Memory: 40.23 GB / 62.70 GB
    Container: Yes
    Shell: 3.7.0 - /bin/fish
  Binaries:
    Node: 21.5.0 - /usr/bin/node
    npm: 10.3.0 - /usr/bin/npm
  Browsers:
    Chromium: 120.0.6099.216

Used Package Manager
n/a
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

It was a permissions issue. I was unable to generate the API key with the basic auth user. Switching to a separate user solved the issue.


chocolate-doom: fixed CVE-2020-14983

Motivation for this change
Fix CVE-2020-14983
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Actually it looks like 3.0.1 has both patches applied, so there's nothing to be done here. Considering this is a security issue, is 20.03 going to get 3.0.1 backported?
https://github.com/chocolate-doom/chocolate-doom/blob/chocolate-doom-3.0.1/src/d_loop.c#L427

Actually it looks like 3.0.1 has both patches applied, so there's nothing to be done here. Considering this is a security issue, is 20.03 going to get 3.0.1 backported?

Indeed, made a PR for that when the update was merged:
https://github.com/NixOS/nixpkgs/pull/92248


Pool Clustering

Is there a way to set up a pool cluster to balance the server load? I tried creating two pools, one with the payment processing enabled (as the "master") and the other without (as the "slave" and I have them both connected to the same database sharing the same daemons.
However no data was sent to the database from the "slave" pool. I might have configured it incorrectly, but I wanted to see if this is the correct direction before pushing further.

The setup we are using at coinfoundry is similar to what you describe, with a subtle difference. We are running four Miningcore instances that don't even have a database connection configured. Payment processing is turned off as well. These servers are using the shareRelay option to publish submitted shares over ZeroMQ:
"shareRelay": {
    "publishUrl": "tcp://<IP_ADDRESS>:6000"
}

Additionally there's one master pool instance that both a database connection and payment processing enabled. It collects shares from the edge servers using the externalStratum option for every pool:
{
    "id": "ltc1",
    "enabled": true,
    "coin": {
        "type": "LTC"
    },
    ....
    "enableInternalStratum": false,
    "externalStratums": [{
        "url": "tcp://pool-us-east:13042",
        "topic": "ltc1"
    },{
        "url": "tcp://pool-us-west:13042",
        "topic": "ltc1"
    }, {
        "url": "tcp://pool-eu:13042",
        "topic": "ltc1"
    },{
        "url": "tcp://pool-asia:13042",
        "topic": "ltc1"
    }],
    ...
}

@ oliver If I were to turn this into a pair of example configs for the example config would they look like this?


Correct stream type for storage_write_api method in batch

PENDING is used instead of COMMITTED
Implementation was already ok, only correcting the documentation

Formatting tables in markdown is giving me a headache :sweat_smile:
I tried to make as few changes as possible. The only line I wanted to update is line 123


proposal: runtime: implement a DIT/DOIT mode

Apple silicon implements "data memory-dependent prefetchers" (DMPs) which attempt to speed up irregular memory access patterns by doing strange things with pointers in memory. It turns out these optimizations can break cryptography code which is designed to operate in constant time (see https://gofetch.fail), by making certain operations non-constant. It is unclear if Apple intends to do anything about this.
Currently the only reasonable countermeasure to this is setting the ARM DIT MSR bit, which disables the DMP optimizations.
While not affected by this particular attack, Intel has a similar MSR bit, DOIT which similarly disables optimizations.
Given in these cases there are no reasonable blanket mitigations that can be applied to all constant-time code (i.e. blinding is effective for RSA, but there are a number of other implementations affected where there is not a clear solution), and since we are unsure about the performance impact of setting DIT/DOIT, it is unclear what we should do.
It is perhaps worthwhile to provide a opt-in DIT/DOIT mode for Go binaries (i.e. GOEXPERIMENT=dit) which causes them to attempt to set these MSRs where possible. This would provide users the highest level of protection, but with the understanding that they are trading some performance in order to prevent these (typically local only) side channels. It would then be up to users to make the determination if they need to take this extra precaution or not.
Note: the Linux kernel merged a patch which sets DIT by default in kernel space, but does not set it in user space, and user space programs can set it as they see fit (user space programs on darwin can also do this), but they currently have not implemented a DOIT version of this. As far as I can tell user space programs cannot set DOIT currently, at least on the systems that I have access to test on.
Related to #49702.

Another, significantly more involved option, would be adding a function closure, say crypto/subtle.WithDIT(func(){}), which would set DIT for enclosed code. We would then be required to enclose all cryptographic code which relies on constant time properties in said closure. This is obviously not ideal, but seems to be the path ARM expects developers to eventually go down, per their own documentation.

Apple's documentation also invites setting and restoring DIT around cryptographic code. I am somewhat skeptical of this, because cryptographic keys, plaintext messages, and other secrets are handled and loaded into memory all over a program, not just in the cryptographic code. The reason we see papers attack cryptographic code is that the rest of the program is application-specific (and that it usually makes simple operations like loading and copying, which we used to understand as safe, but apparently are not anymore).
https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#Enable-DIT-for-constant-time-cryptographic-operations

An alternative would be to add a -spectre=dit mitigation. See https://go.dev/wiki/Spectre. It's not quite Spectre, but it's a binary-wide mitigation for a CPU side channel that can cause secret extraction from local attackers.

@marcan has found M2 DMP disable chicken bit: https://social.treehouse.systems/@marcan/112238385679496096, so at least whole-system workaround is possible.

Note from that thread which I forgot to mention when initially writing this issue: Apple does appear to be enclosing their corecrypto code with calls to enable/disable DIT. It seems like this is, really, the "expected" convention moving forward (although I agree with @FiloSottile, that this seems like a problem that is likely to plague many things, not just the specifically "crypto" parts).
See e.g. https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/corecrypto/cc_internal.h#L86.

I'd appreciate if this could be added to subtle so that non-stdlib crypto code could also benefit from it.

Another possible API, similar to runtime.LockOSThread:
// Tries to enable DIT, reporting
// whether it was enabled.
func EnableDIT() bool

// Disables DIT. If DIT is currently
// disabled, it is a no-op.
func DisableDIT()

The compiler could rewrite those as intrinsics.

Apple now is also explicitly recommending enclosing cryptographic code that relies on constant time properties with calls to set/unset the DIT bit, see https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#Enable-DIT-for-constant-time-cryptographic-operations.
I think we're leaning towards implementing a closure, similar to the one suggested in the secret.Do proposal, which simply sets and unsets the DIT(/DOIT) bit on platforms which support them, and are a no-op otherwise. We'll then enclose all of the standard library code we currently expect to be constant time in these closures, and make it a public API for people doing constant time stuff outside of the standard library.

Drive-by comment since I don't see it mentioned above: I assume the DIT state is thread-local (really CPU-local, but presumably migrated by the kernel), thus the Go scheduler will need to save/restore the DIT state on context switch.
(Alternatively, DIT-enabled regions could be non-preemptible. Note that assembly is non-preemptible.)

I still need to benchmark how negatively this impacts cryptographic code, but I expect it will cause at least some slowdown (since we'll be inherently disabling some optimization somewhere, otherwise the bit wouldn't need to exist).

For reference: having implemented this at work for Rust and C, we saw about a 5% performance regression. I can't imagine Go would be much worse.

For what it is worth, Qubes OS always enables DOITM.

Looks like we're leaning towards the closure solution, a formal proposal for that:
Akin to the API proposed in #21865 for secret memory tagging, add a function which takes a function which will be run with DIT enabled (if it is available). Nesting usage will leave DIT enabled, tracking when it needs to be unset. Using the function will inherently lock the goroutine from which it is called to the OS thread for the duration of the enclosed function.
Concretely:
func WithDIT(f func())
func DITEnabled() bool // may not be strictly necessary, but for some uses may be valuable

I think there are three open questions:

Should we be referring to this using the term DIT? DIT is ARM specific, and Intel has it's own version, DOIT, which we'll likely want to also implement transparently, so perhaps there could be a better term for this. We could use the phrase "constant-time" (i.e. WithConstantTime) but we need to be extremely clear that this doesn't make explicitly non constant-time code constant (Apple has a big red warning around where they describe how to use DIT explaining that you still need to actually write constant time code for it to be useful).
Where should this functionality live? The proposed runtime/secret package from #21865 could make sense, but the naming of the functions proposed in that package make it seem like the package should really be restricted to just memory tagging. Perhaps runtime/dit (in which case we'd remove the DIT suffix/prefix from the proposed functions)?
With the goal of making it easy to wrap existing crypto code, it might be nice to actually make the signature of the enclosing function func WithDIT(f func() (any, error)) (any, error), allowing the caller to not have to refactor functions to assign results/errors to the parent scope and instead just wrap existing logic (e.g. see how this would work for crypto/rsa here https://go.dev/cl/598337/1) and return results as-is (this of course assumes all existing functions return a (result, error) tuple, which may not be strictly true).

cc @FiloSottile

Should we be referring to this using the term DIT? DIT is ARM specific, and Intel has it's own version, DOIT, which we'll likely want to also implement transparently, so perhaps there could be a better term for this. We could use the phrase "constant-time" (i.e. WithConstantTime) but we need to be extremely clear that this doesn't make explicitly non constant-time code constant (Apple has a big red warning around where they describe how to use DIT explaining that you still need to actually write constant time code for it to be useful).

WithDataIndependence? It's obscure but so is the feature.

With the goal of making it easy to wrap existing crypto code, it might be nice to actually make the signature of the enclosing function func WithDIT(f func() (any, error)) (any, error), allowing the caller to not have to refactor functions to assign results/errors to the parent scope and instead just wrap existing logic (e.g. see how this would work for crypto/rsa here https://go.dev/cl/598337/1) and return results as-is (this of course assumes all existing functions return a (result, error) tuple, which may not be strictly true).

Mild preference against (any, error) unless we can use generics. The type assertion neutralizes the readability advantages.

and Intel has it's own version, DOIT, which we'll likely want to also implement transparently

I don't think you can enable DOIT from userspace. You have to write to an MSR, which is privilege level 0.

With the goal of making it easy to wrap existing crypto code, it might be nice to actually make the signature of the enclosing function func WithDIT(f func() (any, error)) (any, error),

I think this only makes things more difficult. The conversion to any probably allocates, and the result has to be type asserted.

runtime.WithDataIndependentTiming(func())

Mild preference against (any, error) unless we can use generics. The type assertion neutralizes the readability advantages.

Yeah I was trying to figure out if there was a good way to use generics for this, but 🤷.

I think this only makes things more difficult. The conversion to any probably allocates, and the result has to be type asserted.

Good point.

runtime.WithDataIndependentTiming(func())

Sounds good to me.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

It seems like maybe we should start with this in crypto/internal/something (which wouldn't need a proposal).
runtime.WithDataIndependentTiming seems wrong to me. It's too low-level. What if we need CodeIndependentTiming next, then people have to do
runtime.WithDataIndependentTiming(func() {
    runtime.WithCodeIndependentTiming(func() {
       ...
    })
})

This also seems like the kind of thing that secret.Do could just do as part of its scope. Given that Keith has a secret.Do CL pending (CL 600635), should we think about rolling it into that?

Could there also be a global function to set DIT/DOIT and never disable it?  This would be for programs like OpenBao or age that do nothing but handle secrets.

@rsc

It seems like maybe we should start with this in crypto/internal/something (which wouldn't need a proposal).

I'm not strictly opposed, but given this appears to be the expected way to write constant time code in the fast approaching Arm future I expect we will need to provide some way for users to trigger this in non-standard library code. Putting it in internal probably buys us one release cycle, which is maybe all we need to hammer out the right API?

runtime.WithDataIndependentTiming seems wrong to me. It's too low-level. What if we need CodeIndependentTiming next

While it seems hubristic to attempt to divine what processor designers will do next, I would be somewhat surprised if we see another bit that affects constant-time-ness.
We could name the API to make it clear it is just a closure around code that is expected to be constant-time, and then apply the fixes we desire to enforce that property behind the scenes, but I partly like this API because it is somewhat obscure and low-level.
The thing we need to be extremely careful about is making it clear what this does do, and more importantly what it doesn't do. Specifically we need to make it obvious that you still need to write constant-time code in the first place for this to have any affect whatsoever. I worry naming this something more user-friendly, like constanttime.Do, may make people reach for it under the expectation that it will magically make non-constant-time code constant-time. The subtleties here are a pain.

This also seems like the kind of thing that secret.Do could just do as part of its scope. Given that Keith has a secret.Do CL pending (CL 600635), should we think about rolling it into that?

I think, often, these two things will want to be mixed, but there are also cases where they may not need to be. It is not unreasonable to care about zero-ing sensitive memory allocated in a closure, but not necessarily care about constant-time-ness for all operations originating from said closure (due to performance implications), and vice-versa, you may not care about zero-ing all intermediate values, but do care about the constant-time-ness of the operations that produce them.
That said, depending on the benchmarking of both modes, if the overhead is low enough it is maybe reasonable to just lump them together and say you get both even if you only really care about one.
@DemiMarie

Could there also be a global function to set DIT/DOIT and never disable it? This would be for programs like OpenBao or age that do nothing but handle secrets.

This was part of the original proposal, and I'm not strictly opposed. It feels like this is probably something that the OS should really be doing, so that it can properly handle forking etc, but seems reasonable to implement in Go absent that functionality.

What about crypto/subtle.WithDataIndependentTiming?

That works for me.

It sounds like the proposal is:

Add crypto/subtle.WithDataIndependentTiming(f func()), which runs f with DIT/DOIT enabled. If the host system does not support a DIT/DOIT mode, f is just run normally; WithDataIndependentTiming doesn't fail/crash or anything like that. At the moment, this means that WithDataIndependentTiming would only do something besides call f on newish arm64, because x86-64 only lets you set the bit in kernel mode. If newer Linux or other operating systems make setting that bit possible from user space then the call would start setting that bit as possible.
Separately, GODEBUG=dataindependenttiming=1 being set at startup (or by a //go:debug line in main) would enable it for the whole program.
There is no way to ask whether DIT/DOIT is enabled in the current goroutine at the moment.

Do I have that right?

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group
The proposal is https://github.com/golang/go/issues/66450#issuecomment-2329631554.


Any version after 3.1 for Linux, crashes on startup for me.

InFormant.log
Provided is the log from "InFormant-3.1.2-Linux-x86_64.AppImage", unsure if it will help figure out what is wrong.
"InFormant-3.1-Linux-x86_64.AppImage" this is the last version to start and run on my PC.
PC Specs.
OS: Garuda (Arch based)
Host: Z690 UD AX DDR4
Kernel: 6.8.9-zen1-2-zen
Shell: bash 5.2.26
Resolution: 2560x1440, 1920x1080
DE: Plasma 6.0.4
WM: KWin
CPU: 12th Gen Intel i7-12700KF (20) @ 4.900GHz
GPU: NVIDIA GeForce RTX 3080 12GB
GPU: NVIDIA GeForce GTX 960
Memory: 15395MiB / 31928MiB
At least there are the previous version that do still work with my operating system. :)
Thank you, for making this software.

Hi!
I'm encountering the same problem and downloading a 3.0.x version allows me to launch the app but it doesn't connect to my audio system/server.
Currently I'm running Arco-linux (essentially arch) with pipewire (along with compatibility stuff such as pipewire-pulseaudio and pipewire-jack). While running InFormant I get no audio connection interface in Carla or Qjackctl.
What audio setup are you running? And do you have any tips on how to get the audio routing working correctly?


Igniting a new app with no vector icon package causes a runtime error

Steps to replicate

With Ignite 2, ignite new Foo and answer none to all the questions
Try to run the app with react-native run-android or ios
Observe this error:

The development server returned response error code: 500

URL: http://<IP_ADDRESS>:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

Body:
{"message":"Unable to resolve module react-native-vector-icons/FontAwesome from /Users/jh/Code/ReactNative/playground/Temp4/App/Navigation/NavItems.js: Module does not exist in the module map or in these directories:\n  /Users/jh/Code/ReactNative/playground/Temp4/node_modules/react-native-vector-icons\n\nThis might be related to https://github.com/facebook/react-native/issues/4968\nTo resolve try the following:\n  1. Clear watchman watches: `watchman watch-del-all`.\n  2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.\n  3. Reset packager cache: `rm -fr $TMPDIR/react-*` or `npm start -- --reset-cache`.","name":"UnableToResolveError","type":"UnableToResolveError","errors":[{}]}
onResponse
    DevServerHelper.java:323
execute
    RealCall.java:126
run
    NamedRunnable.java:32
runWorker
    ThreadPoolExecutor.java:1133
run
    ThreadPoolExecutor.java:607
run
    Thread.java:761

I tried just adding the vector icons package and I get this:

We'll want to test each library in isolation, and none at all, before we're done with this.

where my image go GitHub

I don't think anyone has tried Android yet.  😅

Looks like vector icons shouldn't be opt-outable.  Or we should remove it's use completely from our unholy template.

Appears to be working fine in latest release. ¯\_(ツ)_/¯

Look @skellock my guy's arm is working. I had to put three backslashes


Add ENV variables and array of ES URLS

Adds support to use ENV variables to configure the CLI and the ability to use multiple endpoints to the ES cluster.
Not sure if this is what you would want the project to become so feel free to ignore it.

Hi @Shonei and thank you for your contribution.
It is a bit hard to see the real diff because it looks like file encoding or something was changed about some files (eg the .dockerignore file) but not the actual content.
In terms of the idea, that is adding support to use ENV variables for configuration, I am completely open to it.

Hi @Shonei and thank you for your contribution.
It is a bit hard to see the real diff because it looks like file encoding or something was changed about some files (eg the .dockerignore file) but not the actual content.
In terms of the idea, that is adding support to use ENV variables for configuration, I am completely open to it.

Not sure what I had done there but I reverted it.


fix bad references to accordions

http://manage.dimagi.com/default.asp?176455
pretty sure this was just wrong
@biyeun @dannyroberts

sigh guess qa just missed that, sorry


Need special logic for Event

Cannot be fetched out of .status on other objects, so need to be listened for separately.
Unfortunately, it's a special native object that does not implement a .spec: https://docs.rs/k8s-openapi/0.4.0/k8s_openapi/api/core/v1/struct.Event.html
A bit annoying.

Actually pretty easy to just do as an api call. If we wrapped this in a reflector it would be a weird zip thing we'd need on top of it anyway. Now we may as well call the api to get very specific events related to the actual resource we are observing:
let sel = format!("involvedObject.kind=Node,involvedObject.name={}", o.metadata.name);
let opts = ListEventForAllNamespacesOptional {
    field_selector: Some(&sel),
    ..Default::default()
};
let req = Event::list_event_for_all_namespaces(opts)?.0;
let res = client.request::<Event>(req)?;


Make implementation decisions

Figure out what needs to be added

[x] Identify pages that need to be modified
[ ] Open issues for ui additions
[x] Identify functions that may be needed

Ex: mvFolder(path, newPath), runMoss(dir1, dir2)

[ ] Add function headers to os utils issue or open a new issue

ItemArchivePanelList.jsx was heavily modified to incorporate
Moss

Only runMoss needed to be added


@[ ] and @[x] for adding/modifying task lists

Is your feature request related to a problem? Please describe.
Currently task lists are supported in the following format:
/**
 * @todo This issue has a task list
 * @body Here's the body text
 * @body
 * @body - [ ] Here's an unchecked task
 * @body
 * @body - [x] This one's done
 */

However this requires a lot of lines.
Describe the solution you'd like
I'd like it to work like this:
/**
 * @todo This issue has a task list
 * @body Here's the body text
 * @[ ] Here's an unchecked task
 * @[x] This one's done
 */

Describe alternatives you've considered
I thought
 might work but it does not after a couple different attempts.
  * @todo This issue has a task list
  * @body Here's the body text

  * @body - [ ] Here's a checkbox?

  * @body - [x] This one's done
  */

also tried
 /**
 * @todo This issue has a task list
 * @body Here's the body text
- [ ] Here's a checkbox?
- [x] This one's done
 */

Additional context
I've been experimenting with this over at https://github.com/Pawper/Testing-Workflow

Thanks for the details here @Pawper! This should work:

I thought  might work but it does not after a couple different attempts.

What happens? Does it still just use the first line, or does it have multiple lines but the checkboxes don't render properly?

It looks like this one should have worked, but the body is rendering with spaces before the - [ ], which causes it to not render the checkboxes. Here's the markdown body of the issue:
"Testing more for GitHub's todo app for checkboxes
 - [ ] Here's a checkbox?
 - [x] This one's done
 blahblah\n\n---\n\nhttps://github.com/Pawper/Testing-Workflow/blob/97ec6e9044fa9e1325ba02eeabd39f6701899b8f/test.js#L17-L22\n\n---\n\n###### This issue was generated by [todo](https://todo.jasonet.co) based on a `@todo` comment in 97ec6e9044fa9e1325ba02eeabd39f6701899b8f. It's been assigned to @Pawper because they committed the code."

@JasonEtco Thanks for the quick replies. Yes, the issue is that the checkboxes do not render with
. However even if
 worked, I feel it isn't much more elegant than the empty @body lines. Ideally there would be some sensible syntax without having to use workarounds like these. Either seamless multi-line body, e.g.:
/**
 * @todo This issue has a task list
 * @body Here's the body text
 * @body - [ ] Here's an unchecked task
 * @body - [x] This one's done
 */

Or the initial suggestion:
/**
 * @todo This issue has a task list
 * @body Here's the body text
 * @[ ] Here's an unchecked task
 * @[x] This one's done
 */

Thanks again, really appreciate this app in what I'm figuring is a VSCode-GitHub-Todo-Automation (VGTA?) workflow 😁

There's some previous conversation on why the first suggestion (multi-line @bodys) won't work: https://github.com/JasonEtco/todo/issues/93. I'm open to exploring this more to see if we can make it work though!
As for the latter - I'm really hesitant to add any special syntax. TODO operates on keywords, not any fancy AST parsing - this lets it be language agnostic. Adding syntax like @[ ] makes sense for parsing JSDoc comments, but won't have reliable equivalents in any other language or documentation tool.

Sorry, I'm a bit of an amateur, but I'm doing my best to keep up! I do see what you mean - @body is only JSDoc and TODO supports other contexts as well. There is also the idea that task lists are part of the body of the issue.
Anyway, I can go ahead with the current functionality and I'm going to delete the comments once the task list is all checked off (which I think will close issues in a future release?), so it's not seriously problematic or anything. Maybe just more encouragement for your exploration of multi-line @bodys.

👋 I'm getting around to closing some old issues, and I think this one is good to close. It was an interesting discussion, and might lend itself to a future iteration of TODO that isn't based on string matching. Thanks for the discussion!


Upon reloading a plugin, userScripts are disabled.

On first startup, I'd like to load a plugin into my webView:

webView.loadPlugin(Tokenising("zh-Hans"), namespace: "Tokenising")

Later, when an action button is pressed in the toolbar, I'd like to re-initialise the plugin and load it in again to the same namespace:

webView.loadPlugin(Tokenising("ja"), namespace: "Tokenising")

A user script is added, which should call a function from the current instance of the Tokenising class:
let userScript = WKUserScript(
   source: /* All the contents of userScript.js, which will declare and run `exampleFunction()`, which calls `window.Tokenising.romaniseobj()` */,
   injectionTime: WKUserScriptInjectionTime.atDocumentEnd,
   forMainFrameOnly: false
)

The user script runs its exampleFunction() function perfectly – which, for this example, simply makes the whole background of the page green – until I reload the plugin. Upon reloading the plugin, the Tokenising class does still remain available in JavaScript, however, the user script is deleted (i.e.. window.exampleFunction cannot be found).
Nonetheless, Swift reports that a memory address for the user script is still attached to webView.configuration.userContentController, so it's clearly floating around somewhere. Even if I manually remove the user script and re-add it, JavaScript cannot find the window.exampleFunction again.
Is this the behaviour you'd expect, or should user scripts be preserved when reloading a plugin? Also, am I even correct in thinking that you can reload a plugin into the same namespace as a prior existing one?
Thank you very much for your time. This library is very helpful indeed.

Here is my full source in case my explanation is insufficient.
JS file: userScript.js
//  Copyright © 2017 shirakaba, www.github.com/shirakaba . All rights reserved.
"use strict"

exampleFunction(); // Invoke the JS function below immediately upon being added to the WebView.

function exampleFunction(){
  /* This will be called once Swift's Tokenising.romanise runs callback.call() on its XWVScriptObject. */
  function cb(originalsFromNative, transliterationsFromNative){
    var msg = 'Originals from Swift: ' + originalsFromNative + '; Transliterations from Swift: ' + transliterationsFromNative;
    webkit.messageHandlers.callbackHandler.postMessage(msg);

    var el = document.querySelectorAll('*');
    for(var i=0; i<el.length; i++) el[i].style.backgroundColor = 'green'; // Visually confirm that JS callback was called.
  }

  window.Tokenising.romaniseobj(cb, "Example text to tokenise"); // Run the Swift function.
}

Swift file: ViewController.js
//  Copyright © 2017 shirakaba, www.github.com/shirakaba . All rights reserved.

import WebKit
import UIKit
import JavaScriptCore
import XWebView
import Foundation

class Tokenising: NSObject {
    dynamic var locale: CFLocale?

    @objc func romaniseobj(_ callback: XWVScriptObject, _ input: String) {
        callback.call(arguments: [["EXAMPLE", "TOKENS"], ["example", "transliterations"]], completionHandler: nil)
    }

    init(_ locale: String) { self.locale = NSLocale(localeIdentifier: locale); }
}

class ViewController: UIViewController, WKNavigationDelegate, UISearchBarDelegate, WKScriptMessageHandler {
    var webView: WKWebView!
    let jsvm: JSVirtualMachine = JSVirtualMachine()
    let injectlib = try! String(contentsOfFile: Bundle.main.path(forResource: "userScript", ofType: "js")!)

    override func loadView() {
        super.loadView()

        let userScript = WKUserScript(
            source: injectlib,
            injectionTime: WKUserScriptInjectionTime.atDocumentEnd,
            forMainFrameOnly: false
        )

        webView = WKWebView(frame: self.view.frame, configuration: WKWebViewConfiguration())
        webView.configuration.userContentController.addUserScript(userScript)
        webView.configuration.userContentController.add(self, name: "callbackHandler")
        webView.loadPlugin(Tokenising("zh-Hans"), namespace: "Tokenising")
        view = self.webView!
    }

    func userContentController(_ userContentController: WKUserContentController,didReceive message: WKScriptMessage) {
        if(message.name == "callbackHandler") { print("JavaScript is sending a message: \(message.body)"); }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        /* Construct toolbar. */
        let reloadPlugin = UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(reloadThePlugin))
        let runExampleFunc = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(runTheExampleFunc))
        toolbarItems = [reloadPlugin, runExampleFunc]
        navigationController?.isToolbarHidden = false

        let url = URL(string: "https://www.bbc.com/zhongwen/simp")!
        webView.load(URLRequest(url: url))
    }

    func reloadThePlugin(){
        webView.configuration.userContentController.removeAllUserScripts();
        webView.loadPlugin(Tokenising("ja"), namespace: "Tokenising");
    }

    func runTheExampleFunc(){
        webView.evaluateJavaScript("window.exampleFunction();", completionHandler: { result, error in
            print(result ?? "no 'result'."); print(error ?? "no 'error'.");
        })
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}

Expected behaviour
On startup: app navigates to the BBC's Chinese-language website and runs the user script, which calls exampleFunction() from a copy of the contents of userScript.js, thus setting the backgrounds of all elements on the webpage to green. Upon navigating to any new links, the background will continue to be set to green by this code being re-injected each time the document had loaded.
On clicking the refresh button in the toolbar: The plugin will be reloaded, this replacing the object in the "Tokenising" namespace with a new one that has been initialised in a different way.
On clicking the action button in the toolbar: exampleFunction() can be run manually before or after reloading the plugin, causing the webpage to turn green.
On navigating to a new page after reloading the plugin: the same behaviour described on startup should continue.
Actual behaviour
On startup: Correct.
On clicking the refresh button in the toolbar: No error - probably works.
On clicking the action button in the toolbar: The exampleFunction() function can only be found by Javascript before reloading the plugin.
On navigating to a new page after reloading the plugin: The exampleFunction function can't be found, so it is not run and thus the page background doesn't become green.

Perhaps you need to unbind the plugin object before refresh.
// Don't use the loadPlugin helper method, create a channel and bind an object to it.
let channel = XWVChannel(webView: webView)
channel.bindPlugin(Tokenising("zh-Hans"), toNamespace: "Tokenizing")
......
......
// refresh
channel.unbind()
channel.bindPlugin(Tokenising("ja"), toNamespace: "Tokenizing")

I have never tried this before, and refreshing is not tested.

Thank you for the input. I've just tried that, and unfortunately it appears to have the same behaviour.
Note: if I try to refresh the plugin object more than once (via my original methodology, or via your bind/unbind methodology), this error is thrown:
Feb 21 20:35:16 org.xwebview.xwebview <E>:
Failed to inject script.
Error Domain=WKErrorDomain
Code=4 "A JavaScript exception occurred"
UserInfo={
    WKJavaScriptExceptionLineNumber=4,
    WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: XWVPlugin,
    WKJavaScriptExceptionSourceURL=http://www.bbc.com/zhongwen/simp/media/video,
    NSLocalizedDescription=A JavaScript exception occurred,
    WKJavaScriptExceptionColumnNumber=13
}

To be clear, this error isn't thrown after just the first refresh. I don't know whether this is of any help.
For now, I'll work around the problem instead; I don't know whether plugin refreshing was ever an intended use case.

While we cannot reload plugins with a new object, I have learned that it is possible to dynamically update properties on plugins that have already been loaded into the webView, thus circumventing the need to reinitialise the plugin. If it is of help to anyone, here is how I am doing it:
/** This class is a wrapper for any object, allowing it to be passed by reference.
  * This is useful for passing strings (which are passed by value if passed directly),
  * although is admittedly unnecessary for this example of passing CFLocale.
  * Forcing objects to be passed by reference, eg. by specifying the parameter as 'inout'
  * would be more elegant, but I couldn't get it working. */
class AnyByRef {
    var anyObj: Any!
    init(_ anyObj: Any) {  self.anyObj = anyObj; }
    func get() -> Any { return self.anyObj! as anyObj!; }
    func set(_ anyObj: Any) { self.anyObj = anyObj; }
}

/** The class that is loaded as a plugin into Javascript. */
class Tokenising: NSObject {
    dynamic var localeByRef: AnyByRef?

    @objc func romaniseobj(_ callback: XWVScriptObject, _ input: String) {
        var dynamicallyUpToDateLocale: NSLocale = localeByRef.get() as! NSLocale;
        // When JavaScript calls Tokenising.romaniseobj(), dynamicallyUpToDateLocale will be used here.
        callback.call(arguments: [["EXAMPLE", "TOKENS"], ["example", "transliterations"]], completionHandler: nil)
    }

    init(_ localeByRef: AnyByRef) { self.localeByRef = localeByRef; }
}

class ViewController: UIViewController, WKNavigationDelegate, UISearchBarDelegate, WKScriptMessageHandler {
    // Initialise
    var localeByRef: AnyByRef = AnyByRef(NSLocale(localeIdentifier: localeIdentifier))
}

As coding using this pattern is equally effective, I am closing this issue.


Need a minimal starter sample project

Hello,
i found your lib through nuget, but i am not able to understand how it works. does it change table schema etc on runtime or do i need to generate migrations from ef commands? a minimal solution of how it works would be great.
thanks

Hi @aloksharma1 ,
I have added a small sample project to the repository. The database changes are executed at runtime, so you don't have to generate manual migrations.
Please take a look at the sample project. Run the solution, update an existing entity, or add a new one, and then check the database. You should be able to see the updated tables. The approach is very similar to Entity Framework for .NET Framework.
Let me know your test result please.

Thank you for the update.


Ar virtual collect

We use associations with dot notation.
These need to be converted into real associations,
This method simplifies dissecting the various associations and will be used by miq_expression, search
/cc @imtayadeway does this meet your needs?

@kbrock this looks great! :thumbsup:

for reference, this has overlap with #7916
(just putting in here to link the two)

wip: good feedback - making changes

👍


LUCENE-10480: Move scoring from advance to TwoPhaseIterator#matches to improve disjunction within conjunction

Description (or a Jira issue link if you have one)
Follow-up changes for https://issues.apache.org/jira/browse/LUCENE-10480 to improve performance for disjunction within conjunction queries.
Benchmark results with wikinightly.tasks boolean queries below:
AndHighHigh: +be +up # freq=2115632 freq=824628
AndHighHigh: +cite +had # freq=1367577 freq=1223103
AndHighHigh: +is +he # freq=4214104 freq=1663980
AndHighHigh: +no +4 # freq=1060681 freq=944177
AndHighHigh: +title +see # freq=2077102 freq=1100862
AndHighMed: +2010 +16 # freq=933686 freq=531050
AndHighMed: +5 +power # freq=849829 freq=257919
AndHighMed: +only +particularly # freq=895806 freq=100045
AndHighMed: +united +1983 # freq=1185528 freq=150075
AndHighMed: +who +ed # freq=1201585 freq=127497
OrHighHigh: are last # freq=1921211 freq=830278
OrHighHigh: at united # freq=2834104 freq=1185528
OrHighHigh: but year # freq=1484398 freq=1098425
OrHighHigh: name its # freq=2577591 freq=1160703
OrHighHigh: to but # freq=6105155 freq=1484398
OrHighMed: at mostly # freq=2834104 freq=89401
OrHighMed: his interview # freq=1771920 freq=94736
OrHighMed: http 9 # freq=3289683 freq=541405
OrHighMed: they hard # freq=1031516 freq=92045
OrHighMed: title bay # freq=2077102 freq=117167
AndHighOrMedMed: +be +(mostly interview) # freq=2115632 freq=89401 freq=94736
AndHighOrMedMed: +cite +(9 hard) # freq=1367577 freq=541405 freq=92045
AndHighOrMedMed: +is +(bay 16) # freq=4214104 freq=117167 freq=531050
AndHighOrMedMed: +no +(power particularly) # freq=1060681 freq=257919 freq=100045
AndHighOrMedMed: +title +(1983 ed) # freq=2077102 freq=150075 freq=127497
AndMedOrHighHigh: +mostly +(are last) # freq=89401 freq=1921211 freq=830278
AndMedOrHighHigh: +interview +(at united) # freq=94736 freq=2834104 freq=1185528
AndMedOrHighHigh: +hard +(but year) # freq=92045 freq=1484398 freq=1098425
AndMedOrHighHigh: +9 +(name its) # freq=541405 freq=2577591 freq=1160703
AndMedOrHighHigh: +bay +(to but) # freq=117167 freq=6105155 freq=1484398

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                     AndHighHigh       40.93      (2.8%)       40.72      (4.2%)   -0.5% (  -7% -    6%) 0.659
                      AndHighMed      150.71      (3.4%)      152.22      (3.7%)    1.0% (  -5% -    8%) 0.371
                        PKLookup      250.85      (8.7%)      257.51      (8.9%)    2.7% ( -13% -   22%) 0.340
                 AndHighOrMedMed       66.87      (4.0%)       68.70      (2.7%)    2.7% (  -3% -    9%) 0.012
                AndMedOrHighHigh       89.04      (2.6%)       93.28      (3.1%)    4.8% (   0% -   10%) 0.000
                      OrHighHigh       21.71      (6.0%)       34.50      (6.8%)   58.9% (  43% -   76%) 0.000
                       OrHighMed       85.11      (5.0%)      189.37      (8.0%)  122.5% ( 104% -  142%) 0.000

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                AndMedOrHighHigh       68.90      (4.5%)       67.15      (4.3%)   -2.5% ( -10% -    6%) 0.074
                     AndHighHigh       73.07      (3.0%)       72.11      (3.5%)   -1.3% (  -7% -    5%) 0.212
                      AndHighMed      146.94      (4.7%)      145.56      (4.9%)   -0.9% ( -10% -    9%) 0.550
                        PKLookup      252.01      (9.3%)      249.71     (13.2%)   -0.9% ( -21% -   23%) 0.806
                 AndHighOrMedMed       65.49      (5.8%)       66.09      (4.9%)    0.9% (  -9% -   12%) 0.600
                      OrHighHigh       21.34      (6.7%)       29.63      (6.7%)   38.8% (  23% -   55%) 0.000
                       OrHighMed      122.61      (8.2%)      227.04      (9.0%)   85.2% (  62% -  111%) 0.000

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                      AndHighMed      113.58      (2.8%)      113.98      (4.8%)    0.3% (  -7% -    8%) 0.779
                     AndHighHigh       51.37      (3.2%)       51.58      (5.2%)    0.4% (  -7% -    9%) 0.759
                        PKLookup      272.05      (8.9%)      276.89     (12.6%)    1.8% ( -18% -   25%) 0.605
                 AndHighOrMedMed      102.86      (5.1%)      107.47      (5.4%)    4.5% (  -5% -   15%) 0.007
                AndMedOrHighHigh       91.55      (3.8%)       96.43      (5.2%)    5.3% (  -3% -   14%) 0.000
                      OrHighHigh       27.08      (6.5%)       47.16     (11.3%)   74.2% (  52% -   98%) 0.000
                       OrHighMed       78.78      (5.9%)      153.46     (12.1%)   94.8% (  72% -  119%) 0.000

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                        PKLookup      260.41      (9.8%)      261.79     (10.0%)    0.5% ( -17% -   22%) 0.866
                     AndHighHigh      122.91      (4.0%)      124.37      (5.0%)    1.2% (  -7% -   10%) 0.406
                      AndHighMed      112.99      (4.6%)      114.77      (5.9%)    1.6% (  -8% -   12%) 0.345
                 AndHighOrMedMed       81.97      (5.6%)       83.37      (5.9%)    1.7% (  -9% -   13%) 0.342
                AndMedOrHighHigh       91.34      (4.7%)       98.16      (5.8%)    7.5% (  -2% -   18%) 0.000
                      OrHighHigh       21.05      (5.5%)       30.30      (5.7%)   43.9% (  31% -   58%) 0.000
                       OrHighMed       98.48      (6.3%)      274.14     (11.2%)  178.4% ( 151% -  208%) 0.000

Here are the latest benchmark results:
                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                        PKLookup      237.99     (11.8%)      239.14     (15.3%)    0.5% ( -23% -   31%) 0.911
                      AndHighMed      144.70      (5.9%)      146.20      (6.0%)    1.0% ( -10% -   13%) 0.581
                     AndHighHigh       38.99      (5.5%)       39.44      (5.8%)    1.2% (  -9% -   13%) 0.518
                 AndHighOrMedMed      107.06      (6.1%)      108.65      (5.0%)    1.5% (  -9% -   13%) 0.399
                AndMedOrHighHigh       93.02      (4.5%)       96.45      (5.7%)    3.7% (  -6% -   14%) 0.023
                      OrHighHigh       27.21      (6.8%)       48.15     (10.8%)   76.9% (  55% -  101%) 0.000
                       OrHighMed       79.43      (6.5%)      147.82     (12.8%)   86.1% (  62% -  112%) 0.000

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                     AndHighHigh      122.10      (4.2%)      119.71      (4.6%)   -2.0% ( -10% -    7%) 0.157
                      AndHighMed      110.48      (4.9%)      110.66      (4.8%)    0.2% (  -9% -   10%) 0.918
                        PKLookup      235.57     (11.8%)      237.25      (8.7%)    0.7% ( -17% -   24%) 0.829
                 AndHighOrMedMed       62.93      (6.2%)       64.80      (4.2%)    3.0% (  -7% -   14%) 0.078
                AndMedOrHighHigh       89.72      (4.6%)       94.33      (4.8%)    5.1% (  -4% -   15%) 0.001
                      OrHighHigh      107.23      (4.7%)      139.99     (14.4%)   30.6% (  10% -   52%) 0.000
                       OrHighMed       96.16      (6.2%)      261.62     (15.4%)  172.1% ( 141% -  206%) 0.000

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                      AndHighMed      148.59      (4.0%)      148.27      (4.2%)   -0.2% (  -8% -    8%) 0.865
                     AndHighHigh       39.74      (3.8%)       39.88      (4.1%)    0.3% (  -7% -    8%) 0.783
                        PKLookup      253.64      (6.8%)      256.62     (10.0%)    1.2% ( -14% -   19%) 0.664
                AndMedOrHighHigh       87.58      (3.9%)       90.93      (2.7%)    3.8% (  -2% -   10%) 0.000
                 AndHighOrMedMed      106.05      (4.7%)      110.28      (4.5%)    4.0% (  -5% -   13%) 0.006
                      OrHighHigh       19.56      (6.3%)       25.00      (4.9%)   27.8% (  15% -   41%) 0.000
                       OrHighMed       83.40      (5.2%)      191.56      (8.3%)  129.7% ( 110% -  150%) 0.000

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                 AndHighOrMedMed       83.55      (5.2%)       82.09      (4.5%)   -1.7% ( -10% -    8%) 0.255
                        PKLookup      244.80      (7.2%)      243.63      (6.1%)   -0.5% ( -12% -   13%) 0.821
                     AndHighHigh       51.79      (4.8%)       51.71      (3.5%)   -0.2% (  -8% -    8%) 0.899
                      AndHighMed      141.27      (4.9%)      142.38      (4.1%)    0.8% (  -7% -   10%) 0.583
                AndMedOrHighHigh       33.17      (3.9%)       34.37      (3.4%)    3.6% (  -3% -   11%) 0.002
                      OrHighHigh       20.46      (4.3%)       24.23      (5.8%)   18.4% (   7% -   29%) 0.000
                       OrHighMed      122.35      (3.8%)      228.37      (7.8%)   86.7% (  72% -  102%) 0.000

I don't understand why top-level disjunctions get faster but the change looks good to me.

Oh sorry @jpountz I should have mentioned it explicitly as well. The benchmark baseline I used was prior to all BMM changes (specifically, the head of baseline is https://github.com/apache/lucene/commit/08a9dfddeb4ffd32115673487eb58caef9b3b6c2) , so that the results reflect net effect of BMM changes on those boolean queries.

Ah, that makes sense to me now! Thanks for explaining.

Ah, that makes sense to me now! Thanks for explaining.

No problem!


Scrolling broken on devices.zwave-js.io

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within ZWaveJS2MQTT?
NO, my problem is NOT within ZWaveJS2MQTT
Checklist

[X] I have checked the troubleshooting section and my problem is not described there.

[X] I have read the changelog and my problem was not mentioned there.

Describe the bug
This very well may be the wrong place for this bug report. I'm happy to move it with guidance on the correct location.
What causes the bug?
Visiting devices.zwave-js.io on mobile. (specifically Chrome for Android)
What do you observe?
Scrolling is ignored both in the device list and in a specific device page.
What did you expect to happen?
To be able to scroll through devices and device information for reference on my phone.
Steps to reproduce the behavior:

Go to devices.zwave-js.io on mobile.
Attempt to scroll

Device information
N/A
How are you using node-zwave-js?

[ ] zwavejs2mqtt Docker image (latest)
[ ] zwavejs2mqtt Docker image (dev)
[ ] zwavejs2mqtt Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[ ] HomeAssistant zwave_js integration  (please specify version)
[ ] pkg
[ ] node-red-contrib-zwave-js (please specify version, double click node to find out)
[ ] Manually built from GitHub (please specify branch)
[ ] Other (please describe)

Which branches or versions?
version:
node-zwave-js branch:
zwavejs2mqtt branch:
Did you change anything?
no
If yes, what did you change?
No response
Did this work before?
Yes (please describe)
If yes, where did it work?
At some point in the past I was able to browse device docs on my phone. I can't provide an estimated timeline
Attach Driver Logfile
N/A

Can confirm it's working as expected again.


ektensions error

Type: Bug
saya tidak bisa menginstall apapun di extensions marketplace studio visual code saya untuk windows 7
VS Code version: Code 1.70.2 (e4503b30fc78200f846c62cf8091b76ff5547662, 2022-08-16T05:35:13.448Z)
OS version: Windows_NT x64 6.1.7600
Modes:

Hi @angga283,
Thank you for contacting the VS Marketplace Team. To assist you effectively, could you kindly provide additional details about your concern? This will help us investigate thoroughly.
Regards,
VS Marketplace Team

Closing the issue since there has been no updates on the information requested. If the issue still persists, please feel free to reopen or create a new issue
Regards,
VS Marketplace Team


submit project-43-general-optimizers.md

Great! Last thing - can you add a link to a social media post (e.g., LinkedIn)?


Update index.md

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the master branch of freeCodeCamp.
[ ] None of my changes are plagiarized from another source without proper attribution.
[ ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

You ignored a list of requirements including "My pull request has a descriptive title (not a vague title like Update index.md)". Descriptive titles and good explanations of changes are necessary for a well maintained codebase. Free Code Camp is choosing to relax some of its requirements to help people reach their Hacktoberfest goals, but this PR would normally be rejected. In the future, please help repository maintainers by providing useful titles and do not ignore contributing guidelines or requirements.


Hashbrowns logger

This starts implementing a logger, and takes a bit of my experience trying to use the Nancy logger, and improves it (I think)
Logs by default to:
~/.ossindex/hashbrowns.combined.log
You can change the logger location by using:
func GetLogger(loggerFilename string, level int)
That function will either return the existing logger, or set one up with the loggerFilename you give it, and the log level.

Not a blocker, and maybe not for this PR, but I noticed some conflicting (implied success) messages in the output, e.g.:
Notice Wonderbar! No policy violations reported for this audit!, even though things failed.
$ ./hashbrowns fry --path .

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! WARNING : You are using the default username and password for Nexus IQ. !!!!
!!!! You are strongly encouraged to change these, and use a token.           !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Wonderbar! No policy violations reported for this audit!
Report URL:
Error: Get "http://localhost:8070/api/v2/applications?publicId=": dial tcp [::1]:8070: connect: connection refused
Usage:
  hashbrowns fry [flags]

Flags:
      --application string   Specify application ID for request
  -h, --help                 help for fry
      --max-retries int      Specify maximum number of tries to poll Nexus IQ Server (default 300)
      --path string          Path to file with sha1s
      --server-url string    Specify Nexus IQ Server URL (default "http://localhost:8070")
      --stage string         Specify stage for application (default "develop")
      --token string         Specify Nexus IQ token/password for request (default "admin123")
      --user string          Specify Nexus IQ username for request (default "admin")

Global Flags:
  -v, -- count   Set log level, higher is more verbose

Get "http://localhost:8070/api/v2/applications?publicId=": dial tcp [::1]:8070: connect: connection refused

@bhamail take another gander, I think you'll be happy with how it all came together


[Version bump] Fix fee calculation when funding a psbt.

Change Description
This PR tests the changes made in btcsuite/btcwallet#844 to make sure the lnd test suite passes.
The new versions of the btcwallet and the txauthor fix #5739
How to test the new funding for example on simnet (now we get an error when the available amount is too low which lets us construct a transaction which creates no change output:
slncli wallet psbt fund --sat_per_vbyte 1 --outputs='{"sb1pw75fhwyp55ad0ejxr8y65qxptn8af56z4956hhakn62nyy2gnars5dn4w2":9766 }'
[lncli] rpc error: code = Unknown desc = wallet couldn't fund PSBT: error creating funding TX: insufficient funds available to construct transaction: amount: 0.00009766 BTC, minimum fee: 0.00000112 BTC, available amount: 0.00009466 BTC

Available funding is 9466 - 112 (fee without a change output using the required feerate) = 9354 sathoshis
slncli wallet psbt fund --sat_per_vbyte 1 --outputs='{"sb1pw75fhwyp55ad0ejxr8y65qxptn8af56z4956hhakn62nyy2gnars5dn4w2":9354 }'
{
	"psbt": "cHNidP8BAF4CAAAAASTr+kWSpegHh9KXR7W4wt0SDsaVBdk1S9QWZg/T/c18AAAAAAD/////AYokAAAAAAAAIlEgd6ibuIGlOtfmRhnJqgDBXM/U00Kpaavftp6VMhFIn0cAAAAAAAEBK/okAAAAAAAAIlEgd6ibuIGlOtfmRhnJqgDBXM/U00Kpaavftp6VMhFIn0ciBgM+0TvBiXTKiXVW2IEU1AH2JW+sF33B8di2nNnCmxQBehgAAAAAVgAAgAAAAIAAAACAAAAAAAIAAAAhFj7RO8GJdMqJdVbYgRTUAfYlb6wXfcHx2Lac2cKbFAF6GQAAAAAAVgAAgAAAAIAAAACAAAAAAAIAAAAAAA==",
	"change_output_index": -1,
	"locks": [
		{
			"id": "ede19a92ed321a4705f8a1cccc1d4f6182545d4bb4fae08bd5937831b7e38f98",
			"outpoint": "7ccdfdd30f6616d44b35d90595c60e12ddc2b8b54797d28707e8a59245faeb24:0",
			"expiration":<PHONE_NUMBER>,
			"pk_script": "512077a89bb881a53ad7e64619c9aa00c15ccfd4d342a969abdfb69e953211489f47",
			"value": 9466
		}
	]
}

slncli wallet psbt finalize cHNidP8BAF4CAAAAASTr+kWSpegHh9KXR7W4wt0SDsaVBdk1S9QWZg/T/c18AAAAAAD/////AYokAAAAAAAAIlEgd6ibuIGlOtfmRhnJqgDBXM/U00Kpaavftp6VMhFIn0cAAAAAAAEBK/okAAAAAAAAIlEgd6ibuIGlOtfmRhnJqgDBXM/U00Kpaavftp6VMhFIn0ciBgM+0TvBiXTKiXVW2IEU1AH2JW+sF33B8di2nNnCmxQBehgAAAAAVgAAgAAAAIAAAACAAAAAAAIAAAAhFj7RO8GJdMqJdVbYgRTUAfYlb6wXfcHx2Lac2cKbFAF6GQAAAAAAVgAAgAAAAIAAAACAAAAAAAIAAAAAAA==
{
	"psbt": "cHNidP8BAF4CAAAAASTr+kWSpegHh9KXR7W4wt0SDsaVBdk1S9QWZg/T/c18AAAAAAD/////AYokAAAAAAAAIlEgd6ibuIGlOtfmRhnJqgDBXM/U00Kpaavftp6VMhFIn0cAAAAAAAEBK/okAAAAAAAAIlEgd6ibuIGlOtfmRhnJqgDBXM/U00Kpaavftp6VMhFIn0cBCEIBQLurtloc/vyInUBrJwwsvrcbIa2Zm7l12l4J+7RJ/iFxr6SGqPUTzC1DcU+b4FoAae45at+SIwMTfM4s/FRpvnEAAA==",
	"final_tx": "0200000000010124ebfa4592a5e80787d29747b5b8c2dd120ec69505d9354bd416660fd3fdcd7c0000000000ffffffff018a2400000000000022512077a89bb881a53ad7e64619c9aa00c15ccfd4d342a969abdfb69e953211489f470140bbabb65a1cfefc889d406b270c2cbeb71b21ad999bb975da5e09fbb449fe2171afa486a8f513cc2d43714f9be05a0069ee396adf922303137cce2cfc5469be7100000000"
}

The resulting tx pays exactly 112 sats, and is off by 1 sat (virtualsize is 111)  because we always account for the sighash byte in the taproot spend although the default has none. But I think 1 sat off is not that bad :)

I've tested (especially with the example provided in https://github.com/lightningnetwork/lnd/issues/5739) and it works like a charm 👍
The only thing I don't understand is your 112 vbytes in your example (shouldn't be 110? 1 input 1 output both p2wpkh)

Just to clarify why 112 and not 111. I think studying this let me to a bug in the size calculation.
Basically we account for 2 additional weight-units, one here (size of witness elements)[https://github.com/btcsuite/btcwallet/blob/master/wallet/txsizes/size.go#L235] this shouldn't be here because every Witness Input already accounts for its number of elements: (number of items)[https://github.com/btcsuite/btcwallet/blob/master/wallet/txsizes/size.go#L164]. But only this one would also lead to 112. Moreover we account for an additional sighhash byte in the P2TR Weight, this I find not necessary because it was left out exactly to save weight but also fees (IMO).
Thos 2 additonal weight units lead to 1vbyte more according to (estimate)[https://github.com/btcsuite/btcwallet/blob/master/wallet/txsizes/size.go#L244]
I think we should also fix this too, what are your opinions ?

Just to clarify why 112 and not 111. I think studying this let me to a bug in the size calculation.
Basically we account for 2 additional weight-units, one here size of witness elements this shouldn't be here because every Witness Input already accounts for its number of elements: number of items. But only this one would also lead to 112. Moreover we account for an additional sighhash byte in the P2TR Weight, this I find not necessary because it was left out exactly to save weight but also fees (IMO). additional sighash wu
Thos 2 additonal weight units lead to 1vbyte more according to estimate
I think we should also fix this too, what are your opinions ?

I think this estimate of 66 wu for a P2TR input is correct, because EstimateVirtualSize intends to make a worst-case size estimate.
The P2TR input would only be 65 wu when using SIGHASH_DEFAULT, as explained in the BIP. So EstimateVirtualSize accounts for the extra wu that would be used by a non-default sighash flag. This leads to the overestimate for P2TR inputs using SIGHASH_DEFAULT, but as a worst-case estimate the value is correct.


update to latest version of gpmf-parser

Hi
I was looking for a way to get to the metadata in my hero5 and came across your repo. I ran into the issue that I didn't check out the submodule, so I checked out the code by hand and copied it into deps. Of course the latest version changed some names and functions arguments, so I tried to fix it. It compiles for me and seem to be working. Thought I submit a PR ;) Also added a note in the README to run submodule init (not sure if this is the correct way of doing it).
Arun

Seems to work fine. Thanks!


new lesson: Binary Search Tree

⭐ Request Type
Add in-depth documentation for binary-search-tree algorithm here.
💻 Location
This lesson is present under the
Section: 16
Lesson: A
Location Order: 16A
File-Name: intro-bst.md
❌ Additional Info
You can take the help of other markdown files in the /lesson directory
This lesson must consist of at least the following topic:
introduction to the binary search tree algorithm
code for binary search Tree
examples based on binary search Tree
complexity analysis(in brief)

Can I work on this issue?

Thank you for your interest in contributing to our Repo:

this issue is already taken by @Buddhad.
you can start working on the other issues.
And don't worry I'll create more issues by the time so anyone can work on them.


"rez-depends" and "private_build_requires ".

Hi,
I noticed that rez-depends does not list the private_build_requires  attribute:
private_build_requires = [
    'git',
    'python',
    'rez_api']

Would be something great to have as a command line argument.
Cheers,
Thomas

That was bugging us for a while to. I just implemented this in pull-request #444
Enjoy.

@nerdvegas This can be closed now after the merge. Thanks!

I need to update this actually, for 2 reasons.

There's currently a bug, this doesn't work for released packages because private_build_requires is stripped at release time (easily fixed)
The -p arg needs to specify a particular package - it doesn't make sense to expose the private build reqs of all packages, as this does not represent any real env that ever gets resolved. Only the private build reqs of a package being built directly are ever included in a resolve.

https://github.com/nerdvegas/rez/releases/tag/2.25.0


Snackbar can be clicked through in IE11

Problem description
I can click through the Snackbar in IE11 onto the underlying elements. That causes problems when there are, for instance, links lying underneath the Snackbar.
Steps to reproduce
Take a Snackbar and a SnackbarContent within the Snackbar. Place it over some element, e.g. a Link. Trigger the appearance of the Snackbar and click on it where the link is beneath.
Versions

Material-UI: 1.0.0 Beta 8
React: 15.6.1
Browser: IE11

Good find @stbenz88.  This would be a good first issue for you to PR the fix.

I don't follow, I can't reproduce:

Beat me with a french stick, but I wouldn't know how to cause this issue if I wanted to.
Are the links underneath Material UI?

I made a gif myself.

I can make a PR if you want to with the fix. Let me know.

How would you fix the issue? Without a way to reproduce, I can only trust you.

I would fix it by setting the pointer-events to 'all' in the Snackbar root class.
See https://github.com/callemall/material-ui/pull/8096


[R] write_dataset gets a "zsh: illegal hardware instruction  R" error

Describe the bug, including details regarding any error messages, version, and platform.
Hi - we use arrow in R and python for a wide range of projects at my company but are running into a datset issue with R-arrow I am not sure how to track down, it may be something with my system.  Recently updated to <IP_ADDRESS> on an M1 Max x86 running on Ventura 13.4
library(arrow)
library(testthat)
library(ggplot2)

Running the following I'm able to read/write parquet file no problem:

data <- ggplot2::diamonds
tmpdir <- tempdir()

# read parquet works fine
write_parquet(data, file.path(tmpdir, "test.parquet"))
data2 <- read_parquet(file.path(tmpdir, "test.parquet"))
expect_equal(data$carat, data2$carat)

But trying to write a dataset I get an immediate "Fatal Error" crash in Rstudio.  Running in R, This happens:
# fatal error
write_dataset(data, path = tmpdir, partitioning = "cut")

I get what appears to be a prompt asking me to make a Selection (see image), with no options. I just put in "1" and get the
zsh: illegal hardware instruction  R error`
Tracing the error i made it to Schema__WithMetadata() before it broke.

Some context:
open_dataset also has the same result on some preexisting datasets we've created at my company, this is actually where I came across the error and then found write_dataset was doing something similar.
I dont know why sessionInfo says Im running under Big Sur/Monterrey below, maybe that has something to do with it? My company has  software manager (kandji) and updated this mac to Ventura a while ago. Could just be me :/
sessionInfo()

R version 4.1.3 (2022-03-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur/Monterey 10.16

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base

other attached packages:
[1] ggplot2_3.3.6   testthat_3.1.10 arrow_<IP_ADDRESS>

loaded via a namespace (and not attached):
 [1] magrittr_2.0.1   tidyselect_1.1.0 bit_4.0.4        munsell_0.5.0
 [5] colorspace_1.4-1 R6_2.4.1         rlang_1.1.1      fansi_0.4.1
 [9] dplyr_1.0.7      tools_4.1.3      grid_4.1.3       gtable_0.3.0
[13] utf8_1.1.4       DBI_1.1.0        cli_3.6.1        withr_2.5.0
[17] ellipsis_0.3.2   yaml_2.2.1       bit64_4.0.5      assertthat_0.2.1
[21] tibble_3.1.7     lifecycle_1.0.3  crayon_1.4.1     brio_1.1.2
[25] purrr_1.0.1      vctrs_0.6.2      glue_1.6.2       pillar_1.7.0
[29] compiler_4.1.3   generics_0.1.3   scales_1.1.1     renv_0.17.3
[33] pkgconfig_2.0.3

arrow_info()

Arrow package version: <IP_ADDRESS>

Capabilities:

acero      TRUE
dataset    TRUE
substrait FALSE
parquet    TRUE
json       TRUE
s3         TRUE
gcs       FALSE
utf8proc   TRUE
re2        TRUE
snappy     TRUE
gzip       TRUE
brotli     TRUE
zstd       TRUE
lz4        TRUE
lz4_frame  TRUE
lzo       FALSE
bz2        TRUE
jemalloc   TRUE
mimalloc   TRUE

Memory:

Allocator mimalloc
Current    0 bytes
Max        0 bytes

Runtime:

SIMD Level          sse4_2
Detected SIMD Level sse4_2

Build:

C++ Library Version           12.0.1
C++ Compiler              AppleClang
C++ Compiler Version <IP_ADDRESS>30022

I have no problems running this test script on my other mac, which is an Mac Pro Intel chip on Ventura 13.5. Others have had no issue but they're all Intel.  We all run on the same renv project.

ran brew install apache-arrow as well, which updated/installed 12.0.1_4, but my understanding is the mac binary for R-arrow comes with everything, I assume that version wouldnt be an issue anyway but could there be confusion there?

Component(s)
R

@paleolimbot thanks for this suggestion, I added to my zshrc file, made sure zsh is my default shell, restarted, tried and still got the error, though it added this number, perhaps the process id, not sure.
 12898 illegal hardware instruction  R

From what others have reported, I'm not sure changing variables will get this to work assuming you're running an Intel version of R on a non-Intel mac.  With other similar issues like this, it's been resolved by installing a native (arm64) build of R.  Assuming the above is correct, I'm going to close this issue, but feel free to reopen if it's not the case and we can discuss more!


refactor: Fixing styles, adding headerIcon and fixing readme.

Pull Request Test Coverage Report for Build 183

5 of 6 (83.33%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 81.702%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/components/Card/headerTitle.js
0
1
0.0%

Totals

Change from base Build 162:
0.2%

Covered Lines:
439

Relevant Lines:
526

💛  - Coveralls


Fix REQUEST [error] Error (error) while connecting to https://www.googleapis.com/youtube/v3/search

After setting up as directed to in the readme, I got REQUEST [error] Error (error) while connecting to https://www.googleapis.com/youtube/v3/search. on trying ivy-youtube.
I tried toggle-debug-on-error and saw
  "searching..."(:data ((error (errors . [((domain . "usageLimits") (reason . "accessNotConfigured") (message . "Project<PHONE_NUMBER>12 is not found and cannot be used for API calls. If it is recently created, enable YouTube Data API by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123456789012 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.") (extendedHelp . "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123456789012"))]) (code . 403) (message . "Project<PHONE_NUMBER>12 is not found and cannot be used for API calls. If it is recently created, enable YouTube Data API by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=372038329055 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."))) :symbol-status error :error-thrown (error http 403) :response [cl-struct-request-response 403 nil ((error (errors . [((domain . "usageLimits") (reason . "accessNotConfigured") (message . "Project<PHONE_NUMBER>12 is not found and cannot be used for API calls. If it is recently created, enable YouTube Data API by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123456789012 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.") …
I think

The readme should say that you have to enable the youtube api  https://console.developers.google.com/apis/api/youtube.googleapis.com/
ivy-youtube should display the error.errors.message instead of just REQUEST [error] Error (error) while connecting to https://www.googleapis.com/youtube/v3/search.

Issue title must be in imperative, present tense (e.g. "add", "fix", "change") (?)

… should probably say "Fix" instead of "fix" :-/

Thank you for the feedback, I'll improve the readme and try to catch this error and deal with it.

@unhammer can you review my code to see it is enough for your needs?

LGTM =D


Read custom chunks from a midi file, when chunk header contains no size information

Hi.
I have a midi file which contains one track with some nested chunks. One of the complex chunks (these ones contains multiple simple chunks or complex chunks, in a nested structure) contains information about waveform data, and the waveform data itself. Yes, wave data in midi file structure.
The structure is like this:
AWav- ComplexChunk
    |- WAVE (no chunk size, only these 4 bytes, as a marker)
    |- Afmt SimpleChunk contains chunk size information
    |- Sfmt SimpleChunk contains chunk size information
etc...

using this code
public sealed class AWavChunk : ComplexChunk
    {
        public const string Id = "AWav";

        public AWavChunk() :
            base(Id, new ChunkTypesCollection
            {
                { typeof(WAVEChunk), WAVEChunk.Id },
                //{ typeof(AfmtChunk), AfmtChunk.Id },
                //{ typeof(SfmtChunk), SfmtChunk.Id },
                //{ typeof(SdecChunk), SdecChunk.Id },
                //{ typeof(AdatChunk), AdatChunk.Id },
                //{ typeof(AInfChunk), AInfChunk.Id }
            })
        {
        }

        public override MidiChunk Clone()
        {
            return new AWavChunk
            {
                Chunks = Chunks.Select(c => c.Clone()).ToList()
            };
        }
    }

I'm getting an InvalidChunkSizeException for WAVE chunk. (Actual size (1366657) of a WAVE chunk differs from the one declared in the chunk's header<PHONE_NUMBER>)). But, as I said, WAVE chunks does not have any size, they are only like markers in this midi file structure.
If I comment { typeof(WAVEChunk), WAVEChunk.Id }, in the code above, and uncomment the others I get NotEnoughBytesException
the structure of SimpleChunk and ComplexChunk are the same from #100

Hi,
It looks like you want to read WAVE file. Why do you think it's somehow related to MIDI?

I think you need to combine multiple libraries to read your file. You can read entire structure with DryWetMIDI, but for reading the complex chunk (which includes WAVE marker) you can use dedicated library for audio, for example, NAudio.

Hi,
It looks like you want to read WAVE file. Why do you think it's somehow related to MIDI?

Because:

The file header is MThd.
Second chunk is MTrk.
Next chunks are some nested chunks, one of them we spoke already in the past, OTSc and CASM.

The file is an Audio Style format from Yamaha. The style engine from the keyboard read those wave files and play them in loop.
I don't want to play the audio chunks, I only want to read the file and to see where the problems are, because the files from keyboard are ok, but the custom Audio Styles made in their soft have some problems. I want to check, and if I can, to repair the problems.

Oh, really complex structure :) Well, maybe we can adjust reading of AWav chunk moving reader's position by 4 bytes on the start? If you show me your class for AWav chunk, I'll try to show what I mean.
It's impossible for MIDI chunkto omit its length. WAVE in fact is not a chunk, it's indeed sort of marker as it is in WAV files.

You say that AFil chunk I must read it with NAudio?

No, now I see that actually there is no valid WAV file inside, it's a mix of MIDI and WAV.

AWav class is in the first post, already. You want me to show those simple classes too? for WAVEChunk, AfmtChunk and so on?
Those are SimpleChunk classes and AInf is a ComplexChunk, like AWav.

Well, something like this:
public sealed class AWavChunk : ComplexChunk
{
    public const string Id = "AWav";

    public AWavChunk() :
        base(Id, new ChunkTypesCollection
        {
            //{ typeof(AfmtChunk), AfmtChunk.Id },
            //{ typeof(SfmtChunk), SfmtChunk.Id },
            //{ typeof(SdecChunk), SdecChunk.Id },
            //{ typeof(AdatChunk), AdatChunk.Id },
            //{ typeof(AInfChunk), AInfChunk.Id }
        })
    {
    }

    protected override void ReadContent(MidiReader reader, ReadingSettings settings, uint size)
    {
        reader.Position += 4; // skip WAVE marker

        base.ReadContent(reader, settings, size);
    }

    public override MidiChunk Clone()
    {
        return new AWavChunk
        {
            Chunks = Chunks.Select(c => c.Clone()).ToList()
        };
    }
}

This is ok in reading process. But I think it will blowup the structure when I write back the file, doesn't it?

protected override void ReadContent(MidiReader reader, ReadingSettings settings, uint size)
{
    reader.Position += 4; // skip WAVE marker
    base.ReadContent(reader, settings, size - 4);
}

protected override void WriteContent(MidiWriter writer, WritingSettings settings)
{
    writer.WriteString("WAVE");
    base.WriteContent(writer, settings);
}

protected override uint GetContentSize(WritingSettings settings)
{
    return base.GetContentSize(settings) + 4;
}

Thank you Maxim. Till I will make all classes which modifies my file to be able to save it, I will close this issue. In theory, it must work!


UTF-8 support

If I understood the specifications correctly, DNS support UTF-8 (at least partly) for some time now.
A change to your library which actually should not break anything (ASCII and UTF-8 are quite compatible) would be if you build strings from byte-arrays with Encoding.UTF-8.GetString(byte-array) instead of adding them to a StringBuilder byte by byte.
I found a fork of your project here, where the person changed the project to support the .NET Core:
https://github.com/alanta/Heijden.Dns
This might be interesting.
But what I found more interesting in his changes is this commit:
https://github.com/alanta/Heijden.Dns/commit/98785aa8f024ecbf9497ce0d8940ad7c58253414
In ReadString he builds the string with Encoding.ASCII.GetString, when that would use Encoding.UTF8.GetString instead one part is already complete.. similar it should work for ReadDomainName.

Hey @Lakritzator I'm not currently using this library at any clients, more than willing to add yourself or anyone else as a contributor if so desire, so that this library can keep growing.

I was using this here: https://github.com/onovotny/Zeroconf
Which also builds on the code of Heijden, which was embedded, so I looked at a nuget package with the same content. This is how I got here...
I didn't use your library directly, so I'm not really an expert nor had the need to resolve DNS records myself.
Anyway, I will have a look at it, maybe I do have an interest.. and report back. But Greenshot already occupies most of my time, the rest is taken by another new project "dapplo" which is currently work in progress...
P.S.
Did you ever contact Alphons van der Heijden himself?
Maybe he has an interest himself, his code seems to be used a lot. :)

Why did you stopped using Zeroconf?

@softlion : Let's keep the discussion related to this project please. Discussion about that kind of thing should be taken out of bug reports.

Ok but where. And why do you answer as you left the project ? :)


Some pngs will cause unexpected exit

Reading some files based on docker alpine will cause unexpected exit.
The attached icon is a test png.
test.js
const libpng = require('node-libpng');
let result = libpng.readPngFileSync('./icon.png');

console.log(result);

icon.png.zip

Are some PNGs working? Or is it failing with all?

Some PNGs failed. Not all are invalid.

After confirming the test, when the "Interlace" option is checked, it will cause unexpected errors.


Issue: 'flutter create' always creates an "test" directory with a code-error inside

When I create a new project using "flutter create" there is a "test" directory created which includes a widget_test.dart. This test file contains an error just from the beginning. The only way for newbies to fix this is deleting the file or the whole test-directory, but I don't think this is the original intention of this dir.

@regetskcob it looks like there may be errors in the lib/main.dart file that might be related to this. Can you open the Problems view (View -> Problems) and post a screenshot of all three errors listed in there?
In lib/main.dart there should be code like this:
class MyApp extends StatelessWidget {
  const MyApp({super.key});

But I think there may be other errors in there (which may be causing this error).

@regetskcob
Along with above comment, I am unable to replicate this after creating a new flutter proejct using latest master verson.

Can you provide flutter doctor -v ?


How can I remove the .html extension from the file URL address?

When accessing an md file using this theme, the url address has .html appended to it, so I'm trying to get rid of it. Many people say that you can just edit the permaling value, but I don't know how to edit it so that the .html disappears, so I'm leaving this post. I would appreciate any help as I am a beginner.

If someone is experiencing the same issue, you can refer to the following example. In the .md file, specify the desired URL in the permalink field as shown below. (See the example below.)
If a test.md file exists in the category folder, it would typically be accessible at /category/test.html. However, by setting the permalink as shown below, it can be accessed at /category/test instead.

title: "[category] test "
date: "2024-11-05T00:00:00Z"
thumbnail: "/images/test"
published: true
permalink: /category/test
tags:
- tags1
- tags2
- tags3


Overwriting parameters in inherited instruments

Currently parameters are added to an instrument in the init. Once a parameter is added it is not possible to overwrite this by using another add_parameter command. When inheriting an instrument you generally want to overwrite inherited functions as well as some parameters. This is currently not possible.
The current workaround would be to overwrite the entire init and copy paste all the add_parameter commands that were in the parent class. I think it makes sens to run super().init(...) and then only overwrite those parameters that are overwritten.

@AdriaanRol  how about implementing as you proposed an add_praemter(...., overwrite=False) ?

This is now possible via #3125


Docs for defineProps and defineEmits are lacking

What problem does this feature solve?
Every time I go to the docs for defineProps/defineEmits, I can't find the answers I'm looking for.

What is the signature for possible inputs and return value?
Show a usage example of using the property value
The Props page should at least mention defineProps with a link for more details

What does the proposed API look like?
n/a - sorry, none of the issue templates fit?

Oh goodness. I just found the "Composition" toggle in the upper left corner of the docs page. Totally missed that. I think that switch needs to be more prominent somehow.


empty or isset checks on Eloquent relations fails in PHP 7

In both PHP 7.0.1 and later, empty and isset checks return improperly on unloaded relations on Eloquent models. For example, if you have a model $parentModel that has a related model relation childModel where the id of the child model is set on $parentModel already and you then check if it's empty with empty($parentModel->childModel) it returns 1.  However, if you then echo out $parentModel->childModel it returns with the existing relation.  In PHP 5.6 it worked, and empty($parentModel->childModel) returns 0.  This is obviously a critical bug if you rely on isset or empty for checking for existing relations.  Some references for the fixes in PHP 7 that addressed issues with isset and ArrayAccess I have included a few links below on possible issues that may be related, but am not sure:
https://bugs.php.net/bug.php?id=69659
https://bugs.php.net/bug.php?id=72160

This was fixed in PHP 7.0.6.

@GrahamCampbell No it wasn't with our examples and the latest laravel framework.  We tested this first in 7.0.6, then 7.0.5, then 7.0.1.  Unloaded relationships will not return the proper result with empty.

Well, since this is a PHP bug, it's upto PHP to fix it, just like when there are segfaults. Thanks for letting us know though.

We are seeing this issue on a Laravel 4 project running PHP 7.0.16. I'm not 100% sure but it looks like maybe this was patched in 5.2, but since Laravel 4 wasn't patched with the update it is still breaking.

PHP 7 has fixed a bug with __isset which affects both the native isset and empty methods. This causes specific issues with checking isset or empty on relations in Eloquent. In PHP 7 checking if a property exists on an unloaded relation, for example isset($this->relation->id) is always returning false because unlike PHP 5.6, PHP 7 is now checking the offset of each attribute before chaining to the next one. In PHP 5.6 it would eager load the relation without checking the offset. This change brings back the intended behavior of the core Eloquent model __isset method for PHP 7 so it works like it did in PHP 5.6.

Source: https://allmychanges.com/p/php/framework/