Support building for native targets

Motivations
The default project builds for a special version of Rust with a set of special packages to support Espressif targets. These packages mostly wrap esp-idf, but also include features such as linking using a special linker.
While this supports targeting embedded projects well, it does not support running software on the user's host machine. For example, a simple "Hello, world!" program fails to compile when built for the user's target system.
Projects should be cross-compatible, and should work both with Espressif's custom toolchains as well as standard Rust toolchains. Without supporting both native- and cross-builds, Rust projects that target Espressif chips will never be compatible with anything else, making them less attractive.

Would you like to implement this feature? y

Solution
Patches can be added to move the dependency on esp-idf-svc to only targets that are target_os = "espidf". Additionally, the main loop can be modified to gate patch installation behind #[cfg(target_os = "espidf")].
A more complex issue is that embuild needs to explicitly have the espidf feature enabled. Alternately, the sysenv path could be exposed even on non-ESP targets, because code cannot be turned off in build.rs with #[cfg()] macros.
Alternatives
An alternative approach would be to state that esp-rs projects will never be cross-compatible, and encourage users to build their projects as libraries. Rather than having one frontend that supports all targets, esp-rs projects will only ever target a single chip, and multiple chips require multiple projects. Furthermore, "native" and standard Rust builds require other frontends.
Additional context
It may be desirable to modify embuild as described in "Solution" in order to avoid needing to manually set feature flags inside build-dependencies.

As an example, I can use both stable and esp to build for two different targets with the same codebase:

The problem with what you are suggesting is that your code base will be littered with #[cfg(target_os = "espidf")] which should guard those pieces of your code that call into esp-idf-svc. As these APIs are ESP IDF specific.
I wonder if you are not better off by just isolating your cross platform code in a separate library crate which is then consumed by the esp32-specific binary crate? That's what I practice e.g. here.
Otherwise I don't mind I think putting all ESP dependencies behind a target_os = "espidf" gate in Cargo.toml and wherever else necessary (i.e. build.rs). But I need to see a little bit the delta of your changes, so I would appreciate indeed if you can drive a PR.

Admittedly, part of the issue was due to me misreading things. I thought the os field was espressif, and was keying off of invalid cfg strings. I spent a lot of time trying to figure out where --ldproxy-linker was set, as that's what the build was complaining about, and couldn't find it anywhere. As soon as I got the correct os value to key off of, things started working much better.

The problem when coding for an MCU is that you need a lot of additional stuff beyond what is available in the Rust standard libraries, and which happens to be MCU specific.

I think that most of what I'd need can be made common between desktop and embedded. Perhaps some explanation is in order. I'm working on a Rust port of the Blackmagic project. Previously I used esp-idf, but the web build system uses node and python, both of which are in various stages of rot. I'm looking to move to Rust because of its stability, and I think I can make it work.
In terms of MCU-specific features, I can think of:

Wifi configuration -- this is definitely unique and will have to be a platform-specific thread
SWD/JTAG access -- Blackmagic has a set of function calls and these can be papered over to use an external USB device
Configuration reset -- I need to reset wifi configuration when holding down a button
WDT -- needs to reboot if the system locks up
OTA updates -- obviously these are platform specific

The majority of the project will be the same for both -- namely the web terminal interface, handling the debugging requests, the serial interface, and all of the UI stuff. Websockets and the web server would also be common, unless I decide to reuse those present in esp-idf (which is what I'm doing now).
Having said that, your approach seems very viable, and embodies the "Alternatives" approach.

Easiest is to just look at the value of CARGO_BUILD_TARGET and if it is not a target ending on -espidf skip the call to embuild::espidf::*. In build.rs, that is.

Unfortunately that doesn't work because you can only check for environment variables through normal calls in build.rs -- you can't do fancy preprocessor macro stuff:
[7:59:15 pm] E:/r> more .\build.rs
fn main() {
    if let Ok("espidf") = std::env::var("CARGO_CFG_TARGET_OS").as_deref() {
        embuild::espidf::sysenv::output();
    }
}
[10:30:13 pm] E:/r> cargo +stable run
   Compiling windows-sys v0.48.0
   Compiling filetime v0.2.22
   Compiling embuild v0.31.4
   Compiling farpatch-rs v0.1.0 (E:\r)
error[E0433]: failed to resolve: could not find `espidf` in `embuild`
 --> build.rs:3:18
  |
3 |         embuild::espidf::sysenv::output();
  |                  ^^^^^^ could not find `espidf` in `embuild`

For more information about this error, try `rustc --explain E0433`.
error: could not compile `farpatch-rs` (build script) due to previous error
[10:30:18 pm] E:/r>

The workaround is to modify Cargo.toml:
[build-dependencies]
embuild = { version = "0.31.3", features = ["espidf"] }

Just two small nits:

fn main() {
if let Ok("espidf") = std::env::var("CARGO_CFG_TARGET_OS").as_deref() {
embuild::espidf::sysenv::output();
}
}

The above call is wrong, hopefully you realize that. You have to check that the build target ends with -espidf, NOT that the build target is = espidf (which it isn't).

The workaround is to modify Cargo.toml:
[build-dependencies]
embuild = { version = "0.31.3", features = ["espidf"] }

That's exactly what I was trying to suggest: nothing wrong with the fact that (a) embuild would be enabled even for native targets and (b) espidf would be enabled for native targets.

That's exactly what I was trying to suggest: nothing wrong with the fact that (a) embuild would be enabled even for native targets and (b) its espidf feature would be enabled for native targets.

Would it make sense to enable the espidf features by default? Or what are the drawbacks of doing so?
My modified main looks like this:
fn main() {
    // It is necessary to call this function once. Otherwise some patches to the runtime
    // implemented by esp-idf-sys might not link properly. See https://github.com/esp-rs/esp-idf-template/issues/71
    #[cfg(target_os = "espidf")]
    {
        esp_idf_svc::sys::link_patches();

        // Bind the log crate to the ESP Logging facilities
        esp_idf_svc::log::EspLogger::initialize_default();
    }
    #[cfg(not(target_os = "espidf"))]
    simple_logger::SimpleLogger::new().env().init().unwrap();

    log::info!("Hello, world!");
}

Which is nice in that it works on both targets. You're right in that a lot of stuff will go into that guarded section, but that seems no more different from what e.g. libstd does with conditional mod statements for various sys crates.

That's exactly what I was trying to suggest: nothing wrong with the fact that (a) embuild would be enabled even for native targets and (b) its espidf feature would be enabled for native targets.

Would it make sense to enable the espidf features by default? Or what are the drawbacks of doing so?

Yes, why not? The espidf feature is "inert" in that if you don't use it, it won't do anything. The crate that uses it is esp-idf-sys, to build itself. Since you don't (in)directly depend on esp-idf-sys for native targets, it will be simply discarded by the compiler.
@N3xed did it as a feature (that one and a bunch of others) only to get faster builds for the cases where embuild is used without these features.

My modified main looks like this:
fn main() {
    // It is necessary to call this function once. Otherwise some patches to the runtime
    // implemented by esp-idf-sys might not link properly. See https://github.com/esp-rs/esp-idf-template/issues/71
    #[cfg(target_os = "espidf")]
    {
        esp_idf_svc::sys::link_patches();

        // Bind the log crate to the ESP Logging facilities
        esp_idf_svc::log::EspLogger::initialize_default();
    }
    #[cfg(not(target_os = "espidf"))]
    simple_logger::SimpleLogger::new().env().init().unwrap();

    log::info!("Hello, world!");
}

Which is nice in that it works on both targets. You're right in that a lot of stuff will go into that guarded section, but that seems no more different from what e.g. libstd does with conditional mod statements for various sys crates.

Yeaaah... except from the point of view of the libstd users, it is a one single API. They don't see the cfg ugliness which is the libstd actual implementation.
But then, I agree - this is not black and white. Using trait-based abstractions (e-hal and e-svc) is not all roses either, as it tends to lift the complexity of the code significantly.

Closing this as the discussion reached an end point, feel free to reopen if you think there is still stuff related to this template to discuss.

Also and BTW the use case described here (support building for native targets) IS supported after all. You just need to cfg-out all esp-idf specific APIs in your crate when building for the host. And touch the build.rs file to only spit out esp idf linker arms if you are building for the esp idf and not the host.
Mentioning because one of my private binary crates has precisely such a hybrid configuration now. Which allows for very easy host-based running for manual testing.

Great! Happy to hear it's now documented. Thanks for the help.

Great! Happy to hear it's now documented. Thanks for the help.

No it is not documented, sorry if I confused you. But is completely possible, by just following the steps described in this thread. I.e.

put all code calling into the esp-idf-* crates behind #[cfg(target_os = "espidf")]
put the code in your build.rs file of your binary crate that spits out esp idf linker args behind a similar if by the target that cargo builds for
put  the espidf feature unco diagonally on the embuild dependency

That's all there is to it!

The issue was originally created as a suggestion for incorporating it into the default template.
I'm guessing it's been decided that Espressif doesn't want to do this, which is why this issue was closed. In which case this thread will serve as documentation to anyone in the future who wants to do that after they have the template project cloned locally.

Espressif does not have any strong feelings on that as the esp-idf-* crates are a community-driven effort (for now).
So it is between you, me and @Vollbrecht to decide.
We certainly can incorporate that in the template (perhaps, under the "advanced" settings) though I wonder if even this is necessary?
With all due respect, this use case is a very niche one:

Most folks who land on using the esp-idf-* crates are often beginners, so even if we hide such a setting in the advanced configuration, they likely won't even realize what it means as they often start with a very unclear picture as to what "STD" on the ESP IDF really even means
For advanced folks, it is relatively straight-forward to arrive at such a configuration, by starting with an ESP-IDF-only generated project. But then still, this configuration remains very advanced, as you are supposed to build shims/replacements - for all ESP-IDF APIs that you won't have when you build against the host target. Not saying that's impossible (this is exactly what I do), yet - it IS advanced. So in light of this, I'm not sure having the option to directly generate a host-buildable crate adds that much.

But if you still want to do it... just open a PR? As long as this is not what is generated by default (i.e., it is triggered only when the user selects "advanced configuration", and then selects an option which says something like "Support cross-compilation for the host target") y/n (with default = n), I think we can merge that.

Got it.
I appreciate that it's a niche usecase, given how most users will use this repo. In that case, I think this Issue (and the helpful discussion that follows!) serves as enough documentation for people to find a workable solution.

Fwiw, here's an excerpt from my (private / commercial) binary crate that has such a hybrid setup:
(Look at the comments inside though.)
Cargo.toml
...
[target.'cfg(target_os = "espidf")'.dependencies]
esp-idf-svc = { version = "0.48", features = ["embassy-sync", "embassy-time-driver", "critical-section"] }
esp-idf-matter = { git = "https://github.com/ivmarkov/esp-idf-matter", branch = "mdns" }

[target.'cfg(not(target_os = "espidf"))'.dependencies]
futures-lite = "1"
libc = "0.2"
rs-matter = { version = "0.1", default-features = false, features = ["os"] }
rs-matter-stack = { git = "https://github.com/ivmarkov/rs-matter-stack", branch = "mdns", features = ["os", "nix", "edge-mdns"] }
materialize = { git = "https://github.com/ivmarkov/materialize", features = ["std", "edge-mqtt"] }
async-compat = "0.2"
env_logger = "0.11"

[build-dependencies]
embuild = { version = "0.31.3", features = ["espidf"] }

build.rs
fn main() {
    let os = std::env::var_os("CARGO_CFG_TARGET_OS");

    if matches!(
        os.as_deref().and_then(std::ffi::OsStr::to_str),
        Some("espidf")
    ) {
        embuild::espidf::sysenv::output();
    }
}

main.rs
...
mod led;
mod matter;
mod mdns;
mod mqtt;
#[cfg(target_os = "espidf")]
#[path = "runesp.rs"]
mod run;
#[cfg(not(target_os = "espidf"))]
#[path = "runhost.rs"]
mod run;
mod service;
mod spiram;
mod stack;
mod web;

fn main() -> Result<(), StackError> {
    run::initialize();

    info!("Starting...");

    // Run in a higher-prio thread to avoid issues with `async-io` getting
    // confused by the low priority of the ESP IDF main task
    // Also allocate a very large stack (for now) as `rs-matter` futures do occupy quite some space
    let thread = std::thread::Builder::new()
        .stack_size(40 * 1024)
        .spawn(|| {
            run_wrapper()
        })
        .unwrap();

    thread.join().unwrap()
}

#[inline(never)]
#[cold]
fn run_wrapper() -> Result<(), StackError> {
    let result = run::run();

    if let Err(e) = &result {
        error!("LB-Mini aborted execution with error: {:?}", e);
    } else {
        info!("LB-Mini finished execution successfully");
    }

    result
}

.cargo/config.toml
Here I'm cheating a bit as I currently have two different config.toml files because I'm lazy, but a single one should do, like the one below... BUT: this has to be checked and is the biggest risk to coming up with a common cross-build template:
[build]
# If the user wants to build for e.g. the host, she needs to type `cargo build ---target x86_64-unnown-linux-gnu`
# ... or just make it the default target below
# ... or just comment ALL targets below; then cargo would pick up the host one
#target = "x86_64-unknown-linux-gnu"
target = "xtensa-esp32-espidf"
#target = "riscv32imc-esp-espidf"

[target.xtensa-esp32-espidf]
linker = "ldproxy"
rustflags = ["--cfg", "espidf_time64"]

[target.xtensa-esp32s2-espidf]
linker = "ldproxy"
rustflags = ["--cfg", "espidf_time64"]

[target.xtensa-esp32s3-espidf]
linker = "ldproxy"
rustflags = ["--cfg", "espidf_time64"]

[target.riscv32imc-esp-espidf]
linker = "ldproxy"
rustflags = ["--cfg", "espidf_time64"]

[target.riscv32imac-esp-espidf]
linker = "ldproxy"
rustflags = ["--cfg", "espidf_time64"]

[net]
git-fetch-with-cli = true

[env]
ESP_IDF_SDKCONFIG_DEFAULTS = "./sdkconfig.defaults"
ESP_IDF_VERSION = "v5.1.2"

# TODO: This is a bit annoying, as we cannot have it per-target. What that means is that STD would be re-built
# when building against the host target too.


Error downloading discord.js on Windows using npm

I have node js installed on my PC and I've tried installing discord.js but I always get errors.
this is what it says in cmd.
http://prntscr.com/da6rdc
after I try running the bot script this is what shows up.
http://prntscr.com/da6ro2
Please help. I really want to make a bot :(

Your NPM is out of date.
Your Node is out of date. Node 6.0.0 or newer is required.

Updating Node will also update NPM.

Thanks, I'l try now <3


Feature request: YAML front matter

I use GCR to generate a changeling on my github-pages site; it would be nice if I could at the YAML front matter (or at least the title) to the generated file.

What do you mean by YAML front matter?

The stuff that jekyll expects to set the title and such. It's just a block
of yaml text, but it'd allow generating the changelog straight to my github
pages site.

Looks like this was added in https://github.com/skywinder/github-changelog-generator/commit/6f17e7c23633bebb56d4aab4976e34d4ade32d3c

It sure does, @gravitystorm.

By me in fact :)

@retorquere Thanks for building it!


Changing accent color

Is it possible to change the accent color? I tried modifying the fui.js file, but after reloading the extension it goes back to its original state.


Erratic behavior on Facebook chat box

Ubuntu 14.04.3
Google Chrome 48.0.2564.116
Host: dev.privly.org
Installed using these instructions: https://priv.ly/pages/develop.html#Setup
##Issues:

Need to click lock icon (in chat) twice to activate encryption mode to send text.
(Single click only creates additional link, but the text is visible without the extension to the receiver).

On clicking lock icon (chat) in encryption mode to get to non-encryption mode, the text box showed following problems:
i) Backspace stopped working in chat box.
ii) Could replace previously typed text only after selecting (highlight, as in, Select-All) and replacing it with new text (like insert mode in a text editor).
iii) Could resume normal operation (non-encryption mode) after refreshing the page.

I installed multiple times and still had the same experience.

Confirmed. It eventually works, but is pretty bad at first.
I think the link preview FB uses may be wrecking integration. I have been meaning to blacklist the FB bot on the server side so that it won't try and preview the JS app. I'll give this a try ASAP.

I blocked FB and other bots explicitly. This kills the preview on FB in the chat window, but not in the timeline. This also doesn't fix the odd behavior on the chat window so this is going to take more serious debugging.

https://privlyalpha.org/apps/Message/show?privlyApp=Message&privlyInject1=true&random_token=00a14339e4&privlyDataURL=https%3A%2F%2Fprivlyalpha.org%2Fposts%2F4749.json%3Frandom_token%3D00a14339e4#privlyLinkKey=ZfQ7t38ECYJCTVA2A5wD9HPM5z2eur%2BAO2v%2FNku15MI%3D

Ubuntu Gnome 14.04
Google Chrome 48.0.2564.109
If I start to post my status on Facebook, the following happens if I don't type anything in the status box:

If I start typing it works.
Then if I post the status, there are 2 problems:

The UI repeats itself. Since we aim to integrate Privly as if it isn't there, I feel there should just be a top right notation saying it's posted using Privly.
The upper status box remains filled, it should be cleared out for next usage.


fix: Correctly unset availability filter

Addresses ONYX-699
Description
Currently, unchecking the "Only works for sale" filter on the artwork grid does not remove the filter; instead, it filters for artworks that are not for sale.
With this change, the filter will be removed correctly when unchecked.

In https://github.com/artsy/force/pull/14817, I'm making sure the filter does not appear in the URL as for_sale=.

Looks like this PR addresses that, but we won't actually see the desired URL behavior until https://github.com/artsy/force/pull/14817, yes?

Thanks for the correction! You're right; this PR is pretty much only a preparation for https://github.com/artsy/force/pull/14817, which will bring the desired update.


Performance Discrepancy Between pip install tensorflow and Building from Source

Issue type
Performance
Have you reproduced the bug with TensorFlow Nightly?
No
Source
source
TensorFlow version
tf v2.15.0
Custom code
No
OS platform and distribution
ubuntu 22.04.1 on aarch64
Mobile device
No response
Python version
Python 3.11.0
Bazel version
6.1.0
GCC/compiler version
clang version 16.0.6
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
I have observed a notable difference in the execution time between TensorFlow installed via pip install tensorflow and TensorFlow built from source. The source-built TensorFlow appears to take longer to run hugging face models like resnet50, bert etc, compared to the pip-installed version. The build commands used are given below:
bazel build -s --config=mkl_aarch64 --features=-layering_check --copt=-O3 --copt=-march=armv8-a+sve --copt=-msve-vector-bits=256 --copt=-Wno-gnu-offsetof-extensions --copt=-Wno-unused-but-set-variable  --local_cpu_resources=16 //tensorflow/tools/pip_package:build_pip_package --verbose_failures
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /home/vishwas/Graviton/tensorflow
pip install /home/vishwas/Graviton/tensorflow/tensorflow_wheelfile.whl
It will be great if people help me to provide actual build commands used for aarch64 machine with sve_256.
Standalone code to reproduce the issue
cd tensorflow
git checkout v2.15.0
export CC="/usr/local/bin/clang"
export CXX="/usr/local/bin/clang++"
export TF_PYTHON_VERSION=3.11
pip install -U pip numpy wheel packaging requests opt_einsum

bazel build -s --config=mkl_aarch64 --features=-layering_check --copt=-O3 --copt=-march=armv8-a+sve --copt=-msve-vector-bits=256 --copt=-Wno-gnu-offsetof-extensions --copt=-Wno-unused-but-set-variable  --local_cpu_resources=16 //tensorflow/tools/pip_package:build_pip_package --verbose_failures

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /home/vishwas/Graviton/tensorflow
pip install /home/vishwas/Graviton/tensorflow/tensorflow_wheelfile.whl

Relevant log output
Following are the timing differences:
Bert Model Inference: 2237.73 ms  with build from source and 349.63 ms for pip install
Resnet50: 411.6 ms with build from source and 139.4 ms for pip install

These are average run timings.
No changes made for code built from source.

@vishwascm,
The difference in code execution time between a TensorFlow installation from source and a pre-built binary installed using pip install tensorflow can be influenced by several factors.
When you are trying to build TensorFlow from source, there is an option to customize compiler flags and optimizations. If the compilation is not configured optimally for your hardware, it might result in performance. Also the speed of the storage device where TensorFlow is installed can affect the loading and execution times. If the source build is on a slower storage medium compared to the system where the pre-built binary is installed, it can contribute to differences in execution time.
To improve the execution time for TensorFlow built from source, consider the following:
- Use appropriate compiler flags for your CPU architecture.
- Check and customize the build configuration to match your requirements.
- Ensure that GPU support is configured correctly if applicable.
- Monitor the build logs for any errors or warnings that might indicate issues.

TensorFlow build from source can sometimes lead to increased code execution time compared to using pip install tensorflow. While building from source offers certain advantages like customization and access to the new features, it can also introduce performance drawbacks if not done correctly. Thank you!

Hi @tilakrayal,
Is there any place where I can see the build command along with all configuration used and flags used for official tf v2.15.0 wheel file available in pypi.org for aarch64 machine (graviton) with sve_256?

Hi @tilakrayal ,
Is there any place where I can see the build command along with all configuration used and flags used for official tf v2.15.0 wheel file available in pypi.org for aarch64 machine (graviton) with sve_256?

@vishwascm,
Apologies for the delay.
You can directly install the tensorflow v2.15 on aarch64 using pip install tensorflow-aarch64 where the flags are not required.
https://pypi.org/project/tensorflow-aarch64/
If you are trying to install the tensorflow using a build source, then we will use the flags based upon the requirement.
https://www.tensorflow.org/install/source#build_the_package
Thank you!

Hi @tilakrayal,
Thanks for the reply. I am looking for some more detail about building tensorflow from source, specific to aarch64 architecture with vector length 256 (Graviton) machine, including clang version, ubuntu version, build tags to use aarch64 etc. Just like how official wheel files are built.  Are these details available in tensorflow git repository itself? If available how to use it.
Thanks,
Vishwas

@vishwascm,
Could you please take a look at this official build from the source document where you can find the clang version, flags required to install the tensorflow.
https://www.tensorflow.org/install/source
sudo apt-get update && sudo apt-get install -y llvm-16 clang-16
You can try to specify the flags for aarch64 as per the requirement to install the tensorflow from build.
Thank you!


Nest source encounters 409 and retry attempts hit 429 rate-limit

I have a nest hello gen 1 wired doorbell source which, after some time experiences a 409 response:
error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door

It appears that there is no back-off on attempts to re-connect so these are then rate-limited:
error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door

The full error message grabbed from the Device Access Sample App at this time is:
{
  "error": {
    "code": 429,
    "message": "Rate limited for the GenerateWebRtcStream API for the user.",
    "status": "RESOURCE_EXHAUSTED"
  }
}

At this point a restart is not sufficient to re-connect. go2rtc must be stopped for some time to allow the rate limit to "clear" before being started again (in my case this is a case of manually stopping, waiting a few minutes then starting the HA Frigate add-on).
I am unclear what causes the initial 409 conflict response, but implementing a back-off on at least the 429 response would be good. I guess it might make sense to just back-off on any error which would lessen the chance of hitting the rate limit in the first place.
Here is a full extract from the logs at the time of last failure:
2024-10-12 15:16:29.799077795  16:16:29.798 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:171 > error=EOF url=ffmpeg:front_door#audio=aac
2024-10-12 15:16:50.871397445  16:16:50.871 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:16:55.987067326  16:16:55.986 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:01.104080094  16:17:01.103 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:06.220382167  16:17:06.220 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:11.337320055  16:17:11.337 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:16.453962537  16:17:16.453 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:21.569329842  16:17:21.569 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:26.684904880  16:17:26.684 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:31.799685805  16:17:31.799 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:36.916763767  16:17:36.916 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:42.031527043  16:17:42.031 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:47.146558111  16:17:47.146 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:52.264210419  16:17:52.264 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:17:57.380472619  16:17:57.380 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:02.495376712  16:18:02.495 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:07.613469154  16:18:07.613 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:12.728694209  16:18:12.728 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:17.846215123  16:18:17.845 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:22.962979410  16:18:22.962 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:28.079459957  16:18:28.079 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:33.194993369  16:18:33.194 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:38.313387009  16:18:38.313 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:43.428449201  16:18:43.428 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:48.543098321  16:18:48.542 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:53.660881178  16:18:53.660 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:18:58.779714906  16:18:58.779 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:03.892740883  16:19:03.892 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:09.009398444  16:19:09.009 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:14.128929625  16:19:14.128 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:19.246458352  16:19:19.246 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:24.360992865  16:19:24.360 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:29.477766616  16:19:29.477 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:34.593178617  16:19:34.592 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:39.709458289  16:19:39.709 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:44.825299325  16:19:44.825 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:49.941154786  16:19:49.940 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:19:55.060783500  16:19:55.060 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:00.177158992  16:20:00.177 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:00.177373129  16:20:00.177 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:37294: write: broken pipe"
2024-10-12 15:20:05.294597204  16:20:05.293 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:05.294615471  16:20:05.294 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:37302: write: broken pipe"
2024-10-12 15:20:10.410614638  16:20:10.410 WRN [rtsp] error="streams: nest: wrong status: 409 Conflict, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:10.410963374  16:20:10.410 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:37314: write: broken pipe"
2024-10-12 15:20:15.525828154  16:20:15.525 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:20.643628744  16:20:20.643 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:25.758949395  16:20:25.758 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:30.874456050  16:20:30.874 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:30.874686424  16:20:30.874 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:45290: write: broken pipe"
2024-10-12 15:20:35.989727907  16:20:35.989 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:35.990225268  16:20:35.989 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:45292: write: broken pipe"
2024-10-12 15:20:41.106395530  16:20:41.106 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:41.106723038  16:20:41.106 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:45308: write: broken pipe"
2024-10-12 15:20:46.222196430  16:20:46.221 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:46.222541964  16:20:46.222 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:37156: write: broken pipe"
2024-10-12 15:20:51.336820870  16:20:51.336 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:51.336971870  16:20:51.336 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:37166: write: broken pipe"
2024-10-12 15:20:56.452101686  16:20:56.451 WRN [rtsp] error="streams: nest: wrong status: 429 Too Many Requests, exec: rtsp://<IP_ADDRESS>:8554/front_door?audio: Invalid data found when processing input\n" stream=front_door
2024-10-12 15:20:56.452461684  16:20:56.452 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:225 > error="write tcp <IP_ADDRESS>:8554-><IP_ADDRESS>:37168: write: broken pipe"

I had a bit of time to do some local debugging of this and realised I'd not provided my stream config in the issue above:
streams:
  front_door:
    - nest:?client_id=REDACTED&client_secret=REDACTED&device_id=REDACTED&project_id=REDACTED&refresh_token=REDACTED
    - "ffmpeg:front_door#audio=aac

The testing I've done suggest that the fixed 5 second retry I'm seeing stems from the ffmpeg audio transcode I have in place so I am currently testing with a 60 second timeout as follows to see if this helps:
      - "ffmpeg:front_door#audio=aac#input=-fflags nobuffer -flags low_delay -timeout 60000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i {input}"

Did this ever get resolved? I'm trying this inn the go2rtc addon in the frigate docker container and can't seem to get my nest cam working?

Adjusting the timeouts (in both the ffmpeg transcode) and also externally in frigate mitigates the 429 rate limiting, however I am still seeing the stream getting stuck receiving 409 responses (now at 60 second intervals).
At this time I can replicate the responses in the Device Access Sample App as follows:
{
  "error": {
    "code": 409,
    "message": "Failed to retrieve answer SDP due to timeout, please try again.",
    "status": "ABORTED"
  }
}

Restarting appears to be sufficient to resolve whatever the underlying issue is, although on my last restart I did see a single 409 response before the stream started working again.

@AlexxIT may I know that if I want to add this exponential backoff ability, or maybe even restart the nest subscription, which file should I start looking into?

Related to nest files:

https://github.com/AlexxIT/go2rtc/tree/master/internal/nest
https://github.com/AlexxIT/go2rtc/tree/master/pkg/nest


[carrier_accounts] Creation and listing Warning operations.ListCarrierAccountsRequest

Warning is being thrown when creating or listing an account using something like the following:
import shippo
from shippo.models import components, operations

from shippo.debug import DebugSession
#debug_session = DebugSession()

shippo_api_key = '<SHIPPO_API_KEY>'

s = shippo.Shippo(api_key_header=shippo_api_key)

req = components.ConnectExistingOwnAccountRequest(
    account_id='<account_number>',
    carrier='dhl_ecommerce',
    parameters={"api_version": 4, "username": "<client_id>", "password": "<client_password>", "pickup_no": "<dhl_pickup_no>", "facility_code": "<facility_code>"},
    metadata='DHLEcomTestAccount',
    active=False,
    test=False,
)

car_req = operations.ListCarrierAccountsRequest(carrier='dhl_ecommerce')

try:
    car = s.carrier_accounts.list(car_req)
    for x in car.results:
        print(f'carrier_account number: {x.account_id}\nobject_id: {x.object_id}')
except shippo.models.errors.sdkerror.SDKError:
    print(f'There was an exception' )

The warning presented is:
/Users/xxxx/hippo/pip_examples/sdk_venv/lib/python3.11/site-packages/dataclasses_json/core.py:336: UserWarning: Failed to decode {'access_token': '******', 'valid_until': '******', 'expires_in': '******', 'username': 'xxxxxx', 'password': '******', 'pickup_no': 'xxxxxx', 'facility_code': 'xxxxxxx'} Union dataclasses.Expected Union to include a matching dataclass and it didn't.
  warnings.warn(
/Users/xxxx/hippo/pip_examples/sdk_venv/lib/python3.11/site-packages/dataclasses_json/core.py:336: UserWarning: Failed to decode {'access_token': '******', 'valid_until': '******', 'expires_in': '******', 'username': 'xxxxxxxx', 'password': '******', 'pickup_no': 'xxxxxxx', 'facility_code': 'xxxxxxxx'} Union dataclasses.Expected Union to include a matching dataclass and it didn't.
  warnings.warn(

@jfriedr
For this line:
car_req = operations.ListCarrierAccountsRequest(carrier='dhl_ecommerce')
Why aren't we using the Enum like this?
car_req = ListCarrierAccountsRequest(carrier=CarriersEnum.DHL_ECOMMERCE)

@jfriedr Can you share what data types are being passed in for all the parameter values?
Most likely there is an error serializing the parameters into the default Union[Dict[str|any]] type here
I created a test for it but need closer to the real data to potentially cause it to fail. See here


Minor edits to paper.md

Minor edits to paper.md:

Emonts:2020 may need the  @ symbol.
Convolving with a gaussian —> Gaussian should be capitalized

https://github.com/openjournals/joss-reviews/issues/4942

Thank you for noticing this typos, they should be fixed in the current version


Which retina face model are you using?

I can see there are various types of model available on arcface repo https://github.com/deepinsight/insightface/tree/master/model_zoo
Can you tell me which model are you using and why?
Also the it takes so much time to detect the face. If you are looking for optimising the inference time and need a hand, do let me know I would like to contribute.

this is a re-implementation from https://github.com/StanislasBertrand/RetinaFace-tf2
weights retrieved from the source: https://www.dropbox.com/s/g4f2lap9cyrdfw5/retinafaceweights.npy?dl=1


Overlapblock

We will be starting the proceedings
Design a overlap block that looks like the button in this image...
Create a file "OVERLAP_DESIGN.html" in the modules/overlapblock folder.
Use simple HTML and CSS and JAVASCRIPT to create the overlapblock. You can use the interface development https://kwickerhub.com (This project) or you can write the lines of code yourself.
Step by Step Guide.
Fork this project(Use the 'fork' button in the top right corner) and Clone your Fork.
git clone https://github.com/YOUR_USERNAME/frontend
Open your code Editor and Create a file "OVERLAP_DESIGN.html" in the "modules/overlapblock" folder of this project you just cloned. No need to create head, title and body tags, Just Add a div tag with some embedded style(i.e use the style tag) and the script tag where necessary.
If you want to add an image resource, please add it in the folder  ••
"modules/overlapblock/images_and_icons"
We recommend you use an svg for your image/icon.
Push your Code: You need to push your recent changes back to the cloud. Use the command below in the main directory of this Repository
git push origin dev
or use a GUI tool to avoid mistakes or complexity. LOL.
Make you Pull Request...
Good-luck.

Can I work on this issue?

Sure , fork the repo and carry on
On Sun, May 14, 2023, 6:18 PM Shalini @.***> wrote:

Can I work on this issue?
—
Reply to this email directly, view it on GitHub
https://github.com/KwickerHub/frontend/issues/234#issuecomment-1546951472,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYAUKVPKPXFUJBMATBT27A3XGEHU7ANCNFSM6AAAAAAX5NFRPU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I will be working on this issue


Crunchyroll Updates

Requires yt-dlp nightly build to work. yt-dlp >=2<IP_ADDRESS>749.dev0
Only works with login auth.
mutate_values.json A particular file for this plugin. Overwrites the value of a specified field. For example, in cases where the season given by yt-dlp - season_number does not correspond to the actual season of the series. The available fields are as follows: season_number, season, episode_number, and episode.
direct mode. On Crunchyroll, the direct mode inherits the functionality of the bridge mode. Given the latest updates, it is necessary to obtain the audio and video streams separately, redirect their output, and remux both tracks to finally serve them over HTTP. Experimental, sometimes it may fail to start playback and you need to try playing it again. There is no timestamp and it is not possible to navigate through the video's timeline.
With download mode, the audio and video streams will be downloaded separately, and after downloading, they will be remuxed to finally serve a final video/mp4 file. The files will be downloaded to ./temp/ and their lifespan will be 24 hours. This is configurable in config.json -> ytdlp2strm_temp_file_duration. The Crunchyroll plugin in download mode will automatically download the latest discovered episode of each series declared in channel_list.json.
In the config.json file, and specifically for the Crunchyroll plugin, there are 4 parameters: jellyfin_preload_last_episode, jellyfin_base_url, jellyfin_user_id, and jellyfin_api_key. When configured with their correct values, they allow detecting if an episode is being played and pre-downloading the next one to achieve a seamless playback flow without interruptions.

https://github.com/fe80Grau/ytdlp2STRM/commit/8c7ec493ead3fcb664750e7643f4dbe45a20ca23


fix(virtualizedCellRender): resolved ambigous condition

it may be issue with babel, as it was working file in storybook, but not in project. so i clarified
with braces

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Set version to 1.23.2.

Looks to be only bugfixes since last release so 1.23.2 seems appropriate.

#989


Draft: writer::JUnit (#50)

Synopsis
For now cucumber output can't be parsed by default CI tools.
Solution
Implement writer::JUnit
Checklist

Created PR:

[x] In draft mode
[x] Name contains Draft:  prefix
[x] Name contains issue reference
[x] Has assignee

[x] Documentation is updated (if required)
[x] Tests are updated (if required)
[x] Changes conform code style
[ ] CHANGELOG entry is added (if required)
[ ] FCM (final commit message) is posted

[ ] and approved

[ ] Review is completed and changes are approved
Before merge:

[ ] Milestone is set
[ ] PR's name and description are correct and up-to-date
[ ] Draft:  prefix is removed
[ ] All temporary labels are removed

Security-audit will be failing until https://github.com/chronotope/chrono/pull/578 is resolved

@ilslv junit-report 0.7 is out, so we can finish this.

FCM
Implement writer::JUnit (#147, #50)


potential bug in rewrite rules of the prop test?

Could be doing something wrong -- but the rewrite rules in the prop test claim the following two are equivalent:
(| (& ?x ?y) (-> ?x ?z))
(-> ?x ?y)
However this is not the case, I think... If you have ?x = True, ?y = False, then flipping ?z from False to True changes the overall truth value of the formula. If you plug the first equation into WolframAlpha it reduces it to ~x | y | z, which makes this more apparent.

From a cursory check it would appear that this rule is the problem: lem_imply, "(& (-> ?a ?b) (-> (~ ?a) ?c))", "(| ?b ?c)".
WolframAlpha claims it can be either true or false
Is there a typo in the lem_imply rule, or am I missing something obvious here?
 We could use the new multipatterns features to make this sound, by basically doing the following:
?value = true = (& (-> ?a ?b) (-> (~ ?a) ?c))
=>
?value = (| ?b ?c)

This basically constrains the rule to work in the true e-class, which I believe makes it sound.


Advice on creating alias expression

@smitpatel - now that AliasExpression has changed, do you have any tips for how to use it here:
https://github.com/ErikEJ/EntityFramework.SqlServerCompact/blob/master/src/Provider40/Query/Sql/Internal/SqlCeQuerySqlGenerator.cs#L112
TIA!

It would be very straight forward in that case.
With #6994, we no longer have requirement that operand of InExpression has to be AliasExpression. You can just use left or right without checking it being alias & wrapping in it.

Thanks!


The native client driver is not downloaded Mysql_binaries mysql client with version 8.0.19

Description

DBeaver Version
23.1.1
Operating System
Windows 10
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

@jbozal Hi, I see a blank space in place of the Username. Was it covered for privacy purposes?

Yes
El mié, 28 jun 2023 a las 11:29, Georgii @.***>)
escribió:

@jbozal https://github.com/jbozal Hi, I see a blank space in place of
the Username. Was it covered for privacy purposes?
—
Reply to this email directly, view it on GitHub
https://github.com/dbeaver/dbeaver/issues/20408#issuecomment-1611077096,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJJ6SBSECLGWX5VTG3LYQN3XNP2PXANCNFSM6AAAAAAZWWWOUE
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Un saludo.
Jorge Bozal Gascón.
http://es.linkedin.com/in/jorgebozalgascon/

Please, provide the log files. You can find instructions here https://dbeaver.com/docs/wiki/Log-files/.

Could you also write detailed steps to reproduce the issue?


Change default port to 8443 instead of 10350

Describe the problem/challenge you have
The default KAPPCTRL_API_PORT is currently 10350, which can cause some issues on hosted Kubernetes clusters, specifically GKE and EKS, that implicitly deny that port by only permitting a smaller subset of traffic.  For example, by default EKS does 9443, 8443, 6443, 4443, and 443.
Describe the solution you'd like
Change the default port to 8443, this will reduce the likelihood of new users experiencing issues when installing kapp-controller in those environments.  It can't be 443 since that's a privileged port.
Anything else you would like to add:
Even though it's happening on an overlay network, the cloud providers are looking at the port number for the traffic.

Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.

The standard ports may or may not be available for us to use those ports, and we may have conflict, hence the decision to go with a non-standard port.
Need to explore more to see if there are other service that may use the standard port that we want to use or change to.
However, it is possible to change the configuration on the release.yaml to change the port at the time of installation.

I think that was my misunderstanding of the PORT situation in kapp-controller. I thought that 10350 was the port that the kube-apiserver was serving the Carvel Packaging API on. Not that it was the port on the container of the kapp-controller pod.

The thing that becomes difficult is that cloud providers like GCP or AWS generally are deployed with a network CNI that actually cares about those ports when going to the API Server (which is hosted in the cloud provider's space), so it's almost like an edge case that happens all the time with GCP and AWS.

I'm slightly confused by that statement, when you say they "care about the ports going to the API Server". What does that mean exactly? If we chose 8443, what would happen on GCP?

The API server makes the call to a container.
Source is API server in cloud provider space owned by cloud provider
Destination is container on VM in vpc owned by customer
Both AWS and GPC look at the port of the container, and use security groups and firewall rules to see if that's acceptable traffic.
By default they permit 443 (privileged), 8443, 9443, and then some other ones that aren't shared between providers.


Is there any training data?

May I ask if there will be some training data available as a reference for training?

They are released as part of RT-X (https://robotics-transformer-x.github.io/). We are planning to release it in a easier-to-access format in a month or two.
If you want to debug your code, I would recommend starting with ACT repo's sim environments. It has both scripted and human demonstrations readily available. The data format/training is exactly the same between sim and real.
Tony

Thanks for sharing! But in the shared link I find that the Registered Dataset Name of ALOHA data is empty, and I failed to find the corresponding data of ALOHA from RT-X dataset. Is it possible to specify where I can download the ALOHA data? fe

Thanks for sharing! But in the shared link I find that the Registered Dataset Name of ALOHA data is empty, and I failed to find the corresponding data of ALOHA from RT-X dataset. Is it possible to specify where I can download the ALOHA data?


Avoid using ListBuckets to determine if a bucket exits

Since ListBuckets can be used to gather information about a system, it is considered to be a security risk in some production environments.
cassandra-backup uses ListBuckets to verify if a specific bucket exists.  This can be replaced by doesBucketExistV2 and remove the dependency on ListBuckets.

Closing as it is part of 2.0.0-alpha6


[mat-sidenav] opened="true" - appears closed in Universal rendered view

Bug, feature request, or proposal:
[x] - bug
What is the expected behavior?
Given opened="true" on mat-sidenav, the sidenav should appear opened in the server-rendered html.
What is the current behavior?
Right now, it doesn't get transform: translate3d(0px, 0px, 0px) applied when rendering server-side (I have included NoopAnimationsModule in my app.server.module.ts. The sidenav appears closed in the server-rendered view and only opens after the client kicks-in.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular: 5.0.0-rc.2
Material: 2.0.0-beta.12

Duplicate of #6865. @MrCroft The issue you've documented with the missing transform is compounded with the missing margins applied to the mat-sidenav-content. If we just patch the transform, the mat-sidenav will just overlap the content. But great catch on noticing this was missing. I've added it to #6865 for tracking.
cc @mmalerba


Configure

Hi Sindresorhus,
Trying to use your gulp plugin but not sure how to pass through options that go into nunjucks.configure() ?
Another silly question, is there away I can avoid using relative paths for my includes?
instead of: "  ../../component/componentName/fileName.nunjucks "
I want:  " componentName/fileName.nunjucks "
Thanks

From the readme:

Options will be passed directly to the Nunjucks Environment constructor which will be used to compile templates.

Another silly question, is there away I can avoid using relative paths for my includes?

That would be a question for a Nunjucks support channel.


SMALL: CI for Helm Packages on artifacthub.io

Background
Need to plumb into CI a helm artifact builder workflow that then publishes to https://artifacthub.io. Possible to grok and take inspiration from https://github.com/jupyterhub/helm-chart
Some things to think about:

helm versioning requirements: chart version bumping, app version (meaning eoAPI) bumping, revision bumping. All these should be put into the Chart.yml at CI time
maybe we store the intermediate tarball artifacts somewhere else besides https://artifacthub.io also?

versioning requirements: chart version bumping, app version (meaning eoAPI) bumping, revision bumping

We haven't done any release yet, but I'm planing to once we have something we consider 👌


Update request dependency with patched version

Hello! I work for a company that leverages this SDK and ran into what appears to be a security vulnerability from a transitive dependency.
We run nsp check to audit our dependencies.
We pull in<EMAIL_ADDRESS>which in turn pulls in the server SDK. The server SDK is flagged for us because of a vulnerability in hoek, which is transitive from request.

Upgrading hoek removes the issue.
This can't really be verified using a unit test, but can be checked using the following:

Clone the repo
Run nsp check in the repo root of master (either via npx or via a global installation). Should see something similar to the above screenshot.
Checkout this branch
Run nsp check again. Should see "No known vulnerabilities found"

I think this will also require a corresponding version change in the client SDK's 1.6 branch to use a caret with the published version of this, should it get merged.
Let me know if you have any questions / concerns!
Best,
Austin

Coverage remained the same at 98.737% when pulling cd19b7571549e878d3950663dd1497e68d8f4684 on grrizzly:grrizzly/address-nsp-audit-vuln into c29c01f359f0db5cf55a649ef9c6eff0323f58d1 on optimizely:master.

Coverage remained the same at 98.737% when pulling cd19b7571549e878d3950663dd1497e68d8f4684 on grrizzly:grrizzly/address-nsp-audit-vuln into c29c01f359f0db5cf55a649ef9c6eff0323f58d1 on optimizely:master.

Coverage remained the same at 98.737% when pulling cd19b7571549e878d3950663dd1497e68d8f4684 on grrizzly:grrizzly/address-nsp-audit-vuln into c29c01f359f0db5cf55a649ef9c6eff0323f58d1 on optimizely:master.

Thanks for the PR @grrizzly. Unfortunately upgrading to that version of the request library breaks compatibility with legacy Node (< 4.0). This was an issue previously where the upgrade to 2.82 was actually a breaking change and ended up causing issues because we weren't pinned to minor versions.  We are currently in the process of releasing the 2.0 version of the SDK, which does upgrade the request library and breaks support for legacy Node. Unfortunately we cannot do it in 1.x.x versions because we do have customers using legacy Node versions. You can refer to this release for more information: https://github.com/optimizely/javascript-sdk/releases/tag/v2.0.0-beta1


[BUG] Re-enable AQE integration tests

Describe the bug
The recent merge of SPARK-32332 in 3.0.1 and 3.1.0 means that the plugin now gets called to optimize the Exchange node when AQE is enabled. Unfortunately, a validation check was added as part of this PR that validates that the resulting exchange node implements the appropriate BroadcastExchangeLike / ShuffleExchangeLike trait, and this is not currently the case.
AQE tests need to be re-enabled when we merge https://github.com/NVIDIA/spark-rapids/pull/462 which will resolve this issue.
There is also an argument for rolling back the validation check that was added.
Steps/Code to reproduce bug
Run the AQE integration tests.
Expected behavior
Tests should pass.
Environment details (please complete the following information)
N/A
Additional context
N/A

@andygrove  for rapdis-0.2 , can be used AQE now?
I attemp to set spark.sql.adaptive.enabled true in spark-default.conf with rapids-0.2 ,but it  seems not work

@chenrui17 GPU-accelerated AQE support is implemented in https://github.com/NVIDIA/spark-rapids/pull/462 and requires a snapshot version of Spark 3.0.1 or 3.1.0.


Fix model connection for SQLite tests

While running integration and feature tests using SQLite driver and the query is not completed initialized in a multitenant scenario and for example the output of $this->query->toSql() will be select * or 1, this will fallback to the default connection instead of using the proper model connection.

Coverage remained the same at 95.644% when pulling 78679d5ca3ed4704e9ff9ed0a953133225991d54 on anderson-comvex:master into 9387aaeb131f90ae33e4aa2afdd52052b55d6880 on GeneaLabs:master.

Coverage remained the same at 95.644% when pulling 78679d5ca3ed4704e9ff9ed0a953133225991d54 on anderson-comvex:master into 9387aaeb131f90ae33e4aa2afdd52052b55d6880 on GeneaLabs:master.


Update whitelist.py and /remote_api

Update whitelist.py so it works with the latest App Engine SDK. Also
update permissions on /remote_api to be compatible with the latest App
Engine SDK. Note: The change appears to remove the requirement for admin
rights to use the /remote_api facility. However this admin requirement
is now enforced by the Google supplied code which runs behind
/remote_api. Performing the additional check in web.xml just causes an
error about too many authentication attempts.
Also remove excess catch statement in Whitelist.java that has been
giving us compilation warnings for a very long time. Note:
Whitelist.java is no longer in use, but can be enabled via a simple edit
to OdeAuthFilter.java, so we are not removing it yet.
Change-Id: I30cbb0eba3fba3f20d8443a94dae837c827f0b20

I have testing whitelist.py against a real running instance and the dev server. The script can be a bit finicky depending on what version of the App Engine Python SDK you have installed. But this version works for me, whereas the previous version was without hope!


PUT /users/:id

PUT /users/:id
Story

As a developer
I want an api that updates a single user
so that I can update a users information

Acceptance Criteria

Update the PUT /users/:id api use a mongo collection called 'users'
To update, use something like .update({_id: req.params.id}, {$set: req.body}, ...)
your response line should be something like res.json(result);
Update your test to pass under with the new mongo connection

Approach

Use the API listed here:

http://mongodb.github.io/node-mongodb-native/2.2/api/Db.html
http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html

@vincent12322 Sprint due Tuesday 3/28


Can't get started on windows - build.ethdev.com not available

Without getting some pre-built dependencies we can't build.
C:\cpp-ethereum\extdep>ping build.ethdev.com
Pinging build.ethdev.com [<IP_ADDRESS>] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for <IP_ADDRESS>:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

You can find all dependencies here:
https://github.com/ethereum/cpp-dependencies/releases/tag/vc120

So do we need a pull request with a fix?  Windows is a legit platform still.

Also, why is this domain offline?

In either case, as this is the work around:

fetch the dependencies from that above location manually
put into some location in your build tree
unpack the dependencies (untar/gz)

What are the optimal interim steps to reduce the manual setup at this point?  I had to set all of the INCLUDE and LIB variables manually to point to the right locations of these dependencies.  This took awhile.  I'm sure there is another way for the windows build, but would be interested to hear from someone familiar with building on windows?   Also, I tried changing that URL to point to the location provided for the ethereum cpp-depedencies, but the bat script downloader would work properly at that point.
I'm interested in resolving this, however, would like some feedback from someone who has optimized the work around a bit further than I did.

@truedat101 I agree - but sorry it's probably not me. I did the semi-manual thing too.  I've also ground to a halt as I'm now missing something to do with stratum.  It's pretty clear that this really isn't very close to a "shrink wrap" process.
I found another repo with some batch files in in (I've forgotten where) and it gave me the clue that cmake is a bit of a swiss army knife and that you can install the dependencies into the extdep/install/windows directory using
cmake -E tar -zxvf -x64.tar.gz
cmake -E copy_directory  ..\install\windows
I did get an exe built - but still not quite right for the GPU I was working on.
So yes - some documentation from whoever actually does this would probably be the way forward.
Hopefully including details of where things need to be put. Examples of the build commands would be nice too.

@TimMurnaghan I got mine built, and I'm happy to produce a zipwad if that's useful.  I'm unaware about the stratum issue.   My point is/was that the pulling of dependencies wasn't terribly difficult, just that the cmake process was not as turnkey as the original upstream repository.   I'd be interested in looking at those bat files you have to see if I can rig this together.

You just put the files in the download folder and run getstuff, and it will skip the download part


Not able to create other pages

gatsby build generates the correct layout, but React-Router is throwing
Warning: No route matches path "/company". Make sure you have <Route path="/company"> somewhere in your routes'
I've tried the following:

/pages/company.js
/pages/company.jsx
/pages/company/index.js
/pages/company/index.jsx

So I found that if you go to /company/ then it works.  Anyway we can get this to not need the trailing slash?

Eventually yes. See this issue comment. As that comment suggests, removing the trailing slash has to be supported by whatever you'll be using to host your site e.g. Nginx. The idea is that you could enable "slash-less" mode in your site config so trailing slashes wouldn't be added to routes. If interested, I'd love a PR for that.

I couldn't find a documentation example on how to create jsx pages instead of md. @cgarvis, could you please post a skeleton of yours? Thanks!

@obvio171 .jsx files should just work. What problems are you hitting?

We use .js as the extension.  I ended up make sure all the links were not "slash-less"

@KyleAMathews they do, I just wasn't sure what to put in them :) Found out though, thanks!

This is kind of a major issue in my opinion. I just spent 30 minutes trying to figure out why my new pages were showing 404's.

@TimonVS you were expecting slashless urls as well?
Something that could help is if Gatsby had a "sitemap" page that was auto-generated during dev mode.

Just ran into that myself. How about at least adding a mention about slashless routes not working to the docs?

@SachaG that would be a great start — could you add it? Perhaps to the FAQ?

And expanding on my "sitemap" idea above. I think in dev, the 404 page should just be the sitemap — something like "hey, we couldn't find that page... here are the pages we do know about". Also would be easy to add a little search box for larger sites.


@backstage/plugin-techdocs does not contain a dist folder

Techdocs plugin in npm does not work because it doesn't contain the dist folder.

Because it's removed when the cli is built :grin: https://github.com/spotify/backstage/blob/f6dd091d7f696dad6195f873b2c3e33ecd23aa70/packages/techdocs-cli/bin/build#L31

Because it's removed when the cli is built grin
https://github.com/spotify/backstage/blob/f6dd091d7f696dad6195f873b2c3e33ecd23aa70/packages/techdocs-cli/bin/build#L31

Ohhh that explains it. Thanks!


Mobile

Does it work if exported to mobile, I mean does the touch work instead of the click?

There hasn't been a follow-up here for a while, so I'll close this for now.  Please feel free to open up another issue if you have any more questions!


Run Selection/Line in Python Terminal is inserting unnecessary, breaking lines

if True:
    print("Hi")

What ends up in the REPL seems to be:
if True:

    print("Hi")

Didn't realize that #1560 had not been merged yet.


Ctrl-C no longer quits a hanging "zq -" (regression at eb43f03)

The most recent repro of this problem is at Zed commit 59dc184.
This journey all began with a typo. I wanted to check the version of my currently-installed zq, but made a typo and accidentally included an additional space character, causing zq to hang while waiting for input from stdin.
$ zq - version

I tried hitting Control-C multiple times to get back to my shell, but to my surprise, this did not work. I ultimately went the Control-\ route and saw the resulting stack dump.
$ zq - version
^C^C^C^C^C^C^C^C^C^C^C^C^C^C^\SIGQUIT: quit
PC=0x7fff20398cde m=0 sigcode=0

goroutine 0 [idle]:
runtime.pthread_cond_wait(0x1e320c0, 0x1e32080, 0x0)
	/usr/local/opt/go/libexec/src/runtime/sys_darwin.go:384 +0x39
runtime.semasleep(0xffffffffffffffff, 0xc000048000)
	/usr/local/opt/go/libexec/src/runtime/os_darwin.go:63 +0x8d
runtime.notesleep(0x1e31e70)
	/usr/local/opt/go/libexec/src/runtime/lock_sema.go:181 +0xdb
runtime.mPark()
	/usr/local/opt/go/libexec/src/runtime/proc.go:1340 +0x39
runtime.stoplockedm()
	/usr/local/opt/go/libexec/src/runtime/proc.go:2495 +0x6e
runtime.schedule()
	/usr/local/opt/go/libexec/src/runtime/proc.go:3103 +0x48c
runtime.park_m(0xc000102a80)
	/usr/local/opt/go/libexec/src/runtime/proc.go:3318 +0x9d
runtime.mcall(0x106ed96)
	/usr/local/opt/go/libexec/src/runtime/asm_amd64.s:327 +0x5b

goroutine 1 [syscall]:
syscall.syscall(0x10b5800, 0x0, 0xc00039e000, 0x2000, 0x0, 0x0, 0x0)
	/usr/local/opt/go/libexec/src/runtime/sys_darwin.go:19 +0x2e
syscall.read(0x0, 0xc00039e000, 0x2000, 0x2000, 0x0, 0x1, 0x1)
	/usr/local/opt/go/libexec/src/syscall/zsyscall_darwin_amd64.go:1242 +0x66
...

This was puzzling to me, as I seemed to recall this having worked in the past. Indeed, I went on a binary search and confirmed the following.

A single Control-C caused a successful exit back at the last GA release v0.29.0. Granted, at that time a simple zq - produced the warning about how it refused to write binary ZNG data to the terminal, so I had to get into the equivalent repro state with zq -f zson -. But a single Control-C did the trick.
Starting with Zed commit e2769ab (which is associated with #2596, cc: @mccanne), I started having to hit Control-C twice. As a user, I find this isn't too bad, since when one Control-C fails to have the desired effect, I'll usually bang on it a few times out of anger and be content if it's effective. :smile:
Starting with Zed commit eb43f03 (which is associated with #2919, cc: @nwt) I see the current behavior I reported above where no amount of banging Control-C makes it quit.

In addition to Control-\, I also found hitting Control-D three times also gets it to exit. I'm accustomed to Control-D being interpreted as EOF, so this was somewhat intuitive, though having to do it three times was not.
Bottom line: It's not like we have a hard requirement as to what's the ideal behavior here. However, knowing there's surely some users like me that reach for Control-C in these situations, and it used to exit with just one tap, it's probably worth seeing if we can bring back the prior behavior without breaking something else.

Verified in Zed commit e72fe38b.
@nwt mentioned having had to deal with lots of corner cases in this fix, but for the simple example that kicked off the issue, the attached video shows that a single Control-C now has the expected result of killing the hanging zq process.
https://user-images.githubusercontent.com/5934157/134590966-39efbad5-9127-4206-8767-db4773671143.mp4
Thanks @nwt!


Updating Bash Expression Syntax for Web Driver Triggering

This change is

Previously, xwsxethan (Ethan) wrote…
> #### Updating Bash Expression Syntax for Web Driver Triggering

Review status: 0 of 2 files reviewed at latest revision, 1 unresolved discussion.

vulcanize.sh, line 39 [r1] (raw file):

  # We use set -e to make sure this will fail if the command returns an error
  # code.
  if [[ -d  "$STATIC_DIR" ]]; then

Not a bash expert, but what's the difference between single [ ] and double [[ ]] ?

Comments from Reviewable

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

vulcanize.sh, line 39 [r1] (raw file):
Previously, blueandgold (Henry Chang) wrote…
> Not a bash expert, but what's the difference between single [ ] and double [[ ]] ?

For bash, it seems that double brackets [[ ]] cause more predictable behavior by causing special characters to be parsed as bash builtins rather than terminal keywords. For example, [ a < b ] tries to redirect b to a whereas [[ a < b ]] checks if a is less than b as you would expect when writing an if statement. More generally, I was just following this example to make the if expression get parsed correctly: http://stackoverflow.com/questions/14964805/groups-of-compound-conditions-in-bash-test

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion.

vulcanize.sh, line 39 [r1] (raw file):
Previously, xwsxethan (Ethan) wrote…
> For bash, it seems that double brackets [[ ]] cause more predictable behavior by causing special characters to be parsed as bash builtins rather than terminal keywords. For example, [ a < b ] tries to redirect b to a whereas [[ a < b ]] checks if a is less than b as you would expect when writing an if statement. More generally, I was just following this example to make the if expression get parsed correctly: http://stackoverflow.com/questions/14964805/groups-of-compound-conditions-in-bash-test

In this case it doesn't really make a difference, but I was just trying to be consistent between files. Whereas in web_driver.sh, each expression in the if statement needs to be double brackets [[ ]] to be parsed correctly, or else it throws too many arguments. The addition of parenthesis there is to make it more obvious as to what is happening.

Comments from Reviewable


Conda package installation has conflicts

Conda package is created, but the installation throws
Found conflicts! Looking for incompatible packages.

conda build throws:
conda.exceptions.ResolvePackageNotFound: - fenics==2019.1.0
during
conda_build.exceptions.DependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {'fenics==2019.1.0'}

removing fenics as dependencie solves the package creation without --no-tests

(for local conda build change meta.yml to:
source:
  path: ../
  #url: https://github.com/BAMresearch/PGDrome/archive/refs/tags/v{{ version }}.tar.gz

and run
conda build .conda)

mamba create -n test -c bam77 pgdrome
results in:


Mixpanel

Integration Method: CocoaPods / Carthage / Manual
Xcode Version:
Library Version:
Platform: iOS / App Extension / watchOS / tvOS
Language: Swift / Objective-C
Description:
Expected Behavior:

Hey @toppole69 did you open this by accident? I'm closing this - feel free to reopen if you have an issue and provide some details.


SFProc.SFProcApp version 3.12.86

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

It's ok, this app can be installed only with override arguments


Bar reinforcement component in GH

Components to construct and deconstruct bar reinforcement in GH.

Add check to control that stirrup is placed inside the section?


Do not run coverage until all jobs have finished

Sometimes lcov would report negative counts. This may be related to lcov
running while the job it was collecting counts for was also running.
This patch makes two changes: Do not run the coverage build under
gdb, and wait for all jobs to finish before running lcov.
@ximinez @sublimator

Nice looking changes especially the number of processors

good call on the wait!
Gdb messes with coverage results?

@sublimator I pushed a fix that takes the min of physical cores and virtual cores. That should work well everywhere.

This is merged in b5 but we still get "negative counts" from lcov.


【翻译完成】20190814-go-understand-the-empty-interface

些许问题已在文中 TODO 标出

issues1426

@unknwon 有疑问的是这个翻译：
The struct has two more mappings including the list of fields. It clearly shows that converting a built-in type into an empty interface will lead to a flat conversion where the description of the field and its value will be stored in memory.
这句中的 a flat coversion怎么理解？

嗯... 我觉得这里作者想表达的意思就是，内置类型到空接口的转换没有任何额外的开销，是一种很直接的转换

@DingdingZhou 有空时你直接校对一下好了，我修改完再merge一下就行了

Well used and with parsimony, in most of the case the empty interface should have a real impact on the performances of your application.
这句感觉作者认同空结构体，影响是积极的，但从压力测试看，空结构体的效果并不太好
@DingdingZhou


Android Studio stuck when creating new Flutter project（macOS）

When I use Android Studio on macOS to create a Flutter project, I have been stuck in the prompt box to create a Flutter project here.
The basic information about Flutter on the personal computer is attached below.
When I execute the flutter doctor -v command, it tells me that my local Flutter environment is fine.
➜  ~ flutter doctor -v
[✓] Flutter (Channel stable, v1.17.0, on Mac OS X 10.15.4 19E287, locale
zh-Hans-CN)
• Flutter version 1.17.0 at /Users/heliquan/flutter
• Framework revision e6b34c2b5c (11 天前), 2020-05-02 11:39:18 -0700
• Engine revision 540786dd51
• Dart version 2.8.1
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at /Users/heliquan/Library/Android/sdk
• Platform android-29, build-tools 29.0.3
• Java binary at: /Applications/Android
Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.4.1, Build version 11E503a
• CocoaPods version 1.9.1
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 45.1.1
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build
1.8.0_212-release-1586-b4-5784211)
[✓] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API
29) (emulator)
• No issues found!
But I do n’t know why, creating Flutter using Android Studio will always be stuck creating the Flutter project here.
Could you please tell me how to solve this problem, thank you.
I personally tried to use Google search, but I have not found an effective solution. Looking forward to your reply, thank you.

The following is what I just tested to create a Flutter project through Android Studio. As shown in the figure, I have been stuck in creating a Flutter project.

Over the wall, global agent.
It may be a way, but I have already configured the domestic when downloading and configuring Flutter. It should be reasonable that it should not be pulled from domestic sources?

Hi @HLQ-Struggle
This is probably due to insufficient disk permission
Can you please make sure you've Full Disk Access for Android Studio enabled in Security & Privacy?
Can you try a creating project using terminal with flutter create demo and let us know if it works?
Thank you

Hello, thanks for your reply, here I explain the operation.
First of all, I was confirming that the local Flutter environment is normal, and also updated to the official version of Flutter, and then created the Flutter project through Android Studio, but found that I have been stuck in Create Flutter Project ... here. By looking at the macOS process, there are multiple darts.
Then began to try to create the Flutter project through the flutter create command, and found that it can be created normally.
I want to ask, what factors might affect Android Studio to create Flutter? I confirm that my operating environment is consistent several times.
Finally, I confirm that macOS has been given the highest permissions for Android Studio, because I am an Android developer.
Thank you for your reply ~

Hi @HLQ-Struggle
Did you setup Configuring Flutter china to use a mirror site](https://flutter.dev/community/china#configuring-flutter-to-use-a-mirror-site) ?
Can you please try reinstall flutter intellij plugin?
Thank you

Hi @TahaTesser ,Thank you very much for your reply.
I confirm that I have installed the official website for configuration and also configured the mirror address in China. The following is the configuration Flutter content address I recorded:
https://juejin.im/post/5eb435e46fb9a0435210a377

@HLQ-Struggle
is project created when you close Android Studio?
is project created when using cmd flutter create project_name? if no, could you provide flutter create project_name -v?

@VladyslavBondarenko The Flutter project can be created normally through the command line.


Remove octal and binary notation for floating point literals

As discovered in https://github.com/crystal-lang/crystal/issues/12662#issuecomment-1291771682, Crystal supports octal and binary notation for floating point literals. It only works for integer values, a decimal separator is not accepted. Hexadecimal notation is also unsupported because floating point type suffix is interpreted as hex digits (#12662).
0b11_f32 # => 3.0
0o11_f32 # => 9.0
0x11_f32 # => 73522 (Int32)

Notating floating point literals in power-of-two bases doesn't make much sense. For integers it is useful because it corresponds to the byte representation. But that's completely different for floats.
I'm proposing to remove support for that octal and binary notation. It's not even documented: crystal-lang.org/reference/1.6/syntax_and_semantics/literals/floats.html
I checked with Rust which uses the same literal syntax and it does not accept octal and binary notation for floating point numbers.
println!("{}", 0b11_f32); // error: binary float literal is not supported
println!("{}", 0o11_f32); // error: octal float literal is not supported

This results in a syntax error in pre-v1.3.0.
Probably a bug introduced in #11211.


Version not up to date

Current release is v0.3.1. README and lego --version claim v0.3.0.
As far as I know the version must be fixed in:

cli.go
README.md

👍 Thx!


Better Security Definitions for more granularity

Hello there,
First of all, thanks for your work :+1:

Context
So, this times I got to add scopes verification and all to different endpoints security (paths).
I want to have multiple scopes for a same securityDefinition to be able to access one route, but I just want to check if the token have at least one of this scopes.
It could be really better if the scopes definition can be an object, with more specifications possibilities, let me explain better.
Current Specs
What we actually have:
securityDefinitions:
  oauth2-testing:
    ...
    scopes:
      - write
      - read

paths:
  /test:
    get:
      security:
        oauth2-testing:
          - read
          - write

With this you must have the scope read and write to access the /test path. To make this scopes optionnals, this should do the trick:
securityDefinitions:
  oauth2-read:
    ...
    scopes:
      - read
  oauth2-write:
    ...
    scopes:
      - write

paths:
  /test:
    get:
      security:
        oauth2-read:
          - read
        oauth2-write:
          - write

Current Specs Problem
As you can see, this is not the more convenient way to do this, if you want to have at least one of the scopes needed to access the /test path, this is not so good, even on swagger-ui, this is making multiple securityDefinitions for one same authentification rule... For just having multiple scopes for one route.

Specs Refacto Idea
First Idea
So, I think making it something like:
securityDefinitions:
  oauth2-testing:
    ...
    scopes:
      read:
        required: False
      admin:
        required: False
      another_scope:
        required: False

paths:
  /test:
    get:
      security:
        oauth2-testing:
          read:
            required: False
          admin:
            required: False
          another_scope:
            required: True

Second Idea
securityDefinitions:
  oauth2-testing:
    ...
    oneOf: True
    scopes:
      - read
      - admin
      - another_scope

paths:
  /test:
    get:
      security:
        oauth2-testing:
          oneOf: True
          scopes:
            - read
            - admin
            - another_scope

Conclusion
I know this is maybe not the best solution here, but it can't be cool to think about making the security options more flexible and more readable in case I want one mandatory scope and at least one of the others, something like that is actually not possible with the current specs.
I think it could be better to go with scopes being an array of objects (making the scope checks more granular for one route, can add other rules in it later...)

Don't hesitate to tell me if it's something wrong and why,  actually maybe misunderstand something about the whole security specs :)
Thanks for reading

Totally agree, it could be very useful! 👍
As a workaround, today i am doing this:
`
securityDefinitions:
oauth2-testing:
...
scopes:
- profile:read:birthdate
- profile:read:name
paths:
/test:
get:
security:
- oauth2-testing:
- profile:read:birthdate
- oauth2-testing:
- profile:read:name
`
I need this because my endpoint /test have to be reachable by a user A who own profile:read:birthdate scope only in order to get birthdate but do not need the name. An another user B who own profile:read:name scope only because he can only see the name.
Why i need this? Because i have to implement the concept of RBAC in my code in order to display claims (here birthdate and name) depending of scope owned by the user inside his JWT token.
Note: Example above is simple, but in my case i have a lot of different claims with multiple scopes. I cannot imagine to create a separate endpoint for each claims.

Hello,
I do agree with the above comments.
Just looking to the openid connect default scopes (profile, email, address, phone), not all are necessary when fetching the user information. I guess this behavior is needed in other ReST endpoints.
Regarding the settings, here is another suggestion on how to handle it:
securityDefinitions:
  oauth2-testing:
    ...
    #default is allOf
    scopes-policy: oneOf
    scopes:
      - read
      - admin
      - another_scope


Add another action check to validate metadata

Need to validate against list of patterns and topics, maybe even tags?

We have this already - topic check.


Sims not buying/selling at correct pct on Binance with BTC currency.

System information

Have I written custom code (as opposed to using zenbot vanilla): Vanilla besides config files
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
Zenbot version (commit ref, or version): 4.1.0
Zenbot branch: stable
NodeJS version: 8.11.3
Python version (when using a python script): 2.7.14
Exact command to reproduce (include everything): for sims only, ANY strategy, any options, as long as the selector is binance.***-BTC
Did I make any changes to conf-sample.js?: No

Describe the problem
This is a serious bug in running sims on Binance with BTC, at least to me. It has to do with the buy_pct and sell_pct. I have tried to run sims on any stock strategy with binance.TUSD-BTC, binance.STORM-BTC, binance.XRP-BTC, binance.XMR-BTC, binance.ETH-BTC, and about 10 more. The buy and sell percentages are not working. For example, if set the asset/currency to 100ETH and 100BTC, and the buy/sell_pct at 90, when it buys it should leave me with 10BTC (or close to it with the fees). But it ends up being, 99.999990 or something like that.
This happens regardless of setting the options in command line or in a config file. But it only happens on Binance and only if the currency is set with BTC, It works fine BNB, ETH, and USDT. And regardless of maker or taker. This is only on sims, it works fine on paper, and have not tested on live mode.
I have checked and rechecked to see if I put a period before my buy/sell_pct options, I have looked at everything that I changed over and over and found nothing that could cause this. I have not looked at anything in lib/.

Apparently it does it with ETH, too.
./zenbot.sh sim  --days 60 binance.XRP-ETH --strategy dema --buy_pct=90 --sell_pct=90 --period=5m --max_sell_loss_pct 10 --max_buy_loss_pct 15 --ema_short_period=5 --ema_long_period=10 --up_trend_threshold=0 --down_trend_threshold=0 --overbought_rsi_periods=9 --overbought_rsi=99 --noise_level_pct=0


tdjson: get version information

a cursory search of the various API methods doesn't return anything on how to get the version of the tdjson library being used, the only thing i see is when you start using tdjson, you get this via updateOption (which seems to come from td/td/telegram/Td.h)
{
  "_extra": null,
  "name": "version",
  "value": {
    "_extra": null,
    "value": "1.6.2",
    "@type": "optionValueString"
  },
  "@type": "updateOption"
}

there are various other version numbers i would be interested in, such as the current api layer (td/td/telegram/Version.h) and the git commit / is dirty info (td/auto/git_info.h) , is there any way to query for these version numbers?

No. There is only "version" option, which is sent in a very first update from the TDLib.

thanks, maybe this will change in the future cause it is potentially useful info


Video explicativo del taller de docker

Do you want to work on this Issue @Yosoyfr ?

Yes @sergioarmgpl, it was a mistake to close it

@Yosoyfr this video is in spanish? it could be a good idea somebody in the class created the same video in english.

If it possible, I want to work with it too.

@sicmmar just pending to receive your PR.

Videos:
Taller 1: https://youtu.be/i80ijiHcot0
Taller 2: https://youtu.be/lckxBhJqLxI
Taller 3: https://youtu.be/NhCfo1-uKBs
Taller 4: https://youtu.be/FEYm4gQGXWQ

Here's the video of the workshops explained.

We have to create a section for the videos @Yosoyfr @sicmmar lets check this PR from one of your classmates https://github.com/Jose-Carlos-Jimenez/operating-systems-usac-course/blob/update-contribuiting/CONTRIBUTING.md he implement a small menu to choose the language


Allow passing a simple date on the command line

It's probably common to want to grab readings for specific days while at the moment you have to pass a full date time to the command line. Being able to pass say 2023-11-01 and having that automatically recognized as 2023-11-01T00:00:00 would be helpful.
One way to approach this would be to attempt to parse as a Date first and then try OffsetDateTime if that fails. Another would be to just throw a load of regular expressions at the problem.

Had a try yesterday but no luck yet. Am not quite there with my Rust skills yet, will try again once I've learned more.
BTW have switched to Octopus and just came across octopower, which does overlap with the Glowmarkt API. Will have a look at that too

Yeah I had heard that if Octopus is your energy provider then they have their own API. I don't use them unfortunately.


Feat/adi impl

Describe the changes this PR makes. Why should it be merged?
This PR adds types and proper support for basic ADI types such as AnalogOut/AnalogIn, DigitalOut/DigitalIn, Encoder, Gyro, Motor, support for Port, Potentiometer and Ultrasonic.
Additional Context

(disclaimer: this isn't an actionable request, just some thoughts)
Constructors & the New trait
I think the New trait at best doesn't add much value and at worst may be actively misleading to people creating devices, since it fills in missing arguments with default values (or 1.0).
- The only current purpose of it is to group "ommon" (not really, due to the above reason) methods together. There isn't really a case where you would take a fn new<T: New>(device: T) or return an impl New. This is also reflected in how things are in the standard library - theres no universal Constructor trait even though there are common naming schemes for methods such as new,  new_unchecked, try_new, etc...
- Since it's a trait, if users don't explicitly use New without the prelude they can't access the methods.
I'm also not completely sure if the variants of new are necessary on actual devices. We don't currently do any bounds checking on smart devices, just take the port index and run with it. (THIS IS BAD, but will hopefully be fixed in the future). Some of the methods (such a new_raw) also don't practically do anything, since the bounds range of AdiSlot is verified at compile time by enum variants. You can't create an ADI port with a larger index than AdiSlot::H, since you can't add new variants to AdiSlot.

For now, I'd probably just recommend a single new method for all ADI devices that takes in a slot and constructs the device from the slot. Bounds checks at this point in time aren't necessary, since you can't create out-of-range ADI ports.

AdiPort
It seems like AdiPort isn't being used (it was replaced with AdiSlot), but is still kept around for legacy reasons. That's fair, since we'll probably go back to using a port-based system so that expanders can be supported in the future. Just not sure if it should be removed entirely or not currently.
reset naming
Smart devices use the term zero for resetting device state (e.g. InertialSensor::zero_euler), rather than tare (what PROS uses) or reset (VEXcode's terminology). I think this naming is the worst of both worlds and sucks (who thought that making zero a verb was a good idea), but for consistency it might be a good idea to change the naming around to match existing methods.

The only current purpose of it is to group "common" (not really, due to the above reason) methods together. There isn't really a case where you would take a fn new<T: New>(device: T) or return an impl New. This is also reflected in how things are in the standard library - theres no universal Constructor trait even though there are common naming schemes for methods such as new,  new_unchecked, try_new, etc...

I agree with this. When I suggested adding a trait for ADI new functions, I didn't want it to be a generic Constructor trait for all devices. I saw that all ADI devices that where implemented had the exact same constructor functions and thought that they could possibly be put into a trait. The naming of the new trait is very confusing eg.
fn generic_over_new(opaque: impl New) {
   let _ = opaque::new(0);
}
// Where was it made clear that this is just for ADI devices?

I'm also not completely sure if the variants of new are necessary on actual devices. We don't currently do any bounds checking on smart devices, just take the port index and run with it. (THIS IS BAD, but will hopefully be fixed in the future).

All of these new function variants will become obsolete when Peripherals are implemented.

The other thing is that I think it's technically safe (albeit very incorrect) to register a device on an out-of-range port, since PROS will just catch the error and throw ENXIO.

Yeah, PortError should handle out of bounds devices for you.


Sync the author from the articles

I think it would be great if the author of article could be retrieved, similarly to how can use the published_at, reading_time, etc. I would also like to know if there are more fields we can retrieve. I haven't checked the API yet. Thanks in advance and good job with the plugin :)

ATM following fields are available:
https://github.com/huseyz/obsidian-wallabag/blob/master/src/note/NoteTemplate.ts#L15-L31
I'm open to adding more.

I took a look at the Wallabag API and did find an 'authors' section, under both 'patch' and 'post'.
(POST) /api/entries
(PATCH) /api/entries/{entry}
Can we get those added to the list of fields already available? (And do you need a separate request or is this issue sufficient?)

I'd like to have it too, and have added to a list of changes I'd like to make. We need to potentially handle a list of authors rather than just one.
My personal preference will be to have authors as links eg. [[Brandon Sanderson]] rather than just the author name. Would you prefer a setting to toggle this on or off?

I am working on the code to add authors. Got most of it cracked. Now some final formatting to do. I'm putting in a setting as per my previous post.

@quantumgardener Awesome! Here's hoping that @huseyz accepts the patch!
And then does that automatically fead into Obsidian's own plugin update process? (Is it pulling from Github?)

It should do. Wallabag is listed there now and I updated the readme to reflect that. On 19 Dec 2024, at 7:04 am, jason-mehmel @.***> wrote:
@quantumgardener Awesome! Here's hoping that @huseyz accepts the patch!
And then does that automatically fead into Obsidian's own plugin update process? (Is it pulling from Github?)
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>