examples don't work

here is the example:
[package]
name = "serde_examples"
version = "0.1.0"
authors = ["Felipe@MBP2 <EMAIL_ADDRESS>edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
serde_json = "1.0"

code:
use serde::{Deserialize, Serialize};
use serde_json::Result;

#[derive(Serialize, Deserialize)]
struct Address {
    street: String,
    city: String,
}

fn print_an_address() -> Result<()> {
    // Some data structure.
    let address = Address {
        street: "[null,4,'\\'$\\'#,##0.00']".to_owned(),
        city: "London".to_owned(),
    };

    // Serialize it to a JSON string.
    let j = serde_json::to_string(&address)?;

    // Print, write to a file, or send to an HTTP server.
    println!("{}", j);

    Ok(())
}

somehow, I get this error:
error[E0432]: unresolved import serde
--> src/main.rs:1:5
|
1 | use serde::{Deserialize, Serialize};
|     ^^^^^ use of undeclared type or module serde
error: cannot determine resolution for the derive macro Serialize
--> src/main.rs:4:10
|
4 | #[derive(Serialize, Deserialize)]
|          ^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports
error: cannot determine resolution for the derive macro Deserialize
--> src/main.rs:4:21
|
4 | #[derive(Serialize, Deserialize)]
|                     ^^^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports
error[E0601]: main function not found in crate serde_examples
--> src/main.rs:1:1
|
1  | / use serde::{Deserialize, Serialize};
2  | | use serde_json::Result;
3  | |
4  | | #[derive(Serialize, Deserialize)]
...  |
23 | |     Ok(())
24 | | }
| |_^ consider adding a main function to src/main.rs
error[E0277]: the trait bound Address: serde::ser::Serialize is not satisfied
--> src/main.rs:18:35
|
18   |     let j = serde_json::to_string(&address)?;
|                                   ^^^^^^^^ the trait serde::ser::Serialize is not implemented for Address
|
::: /Users/b/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_json-1.0.59/src/ser.rs:2221:17
|
2221 |     T: ?Sized + Serialize,
|                 --------- required by this bound in serde_json::to_string
error: aborting due to 5 previous errors
Some errors have detailed explanations: E0277, E0432, E0601.
For more information about an error, try rustc --explain E0277.
error: could not compile serde_examples.
To learn more, run the command again with --verbose.
cargo build
Compiling serde_examples v0.1.0 (/Users/b/work/ntutree/tutree_jobs_v2_dev2/serde_examples)
error[E0432]: unresolved import serde
--> src/main.rs:1:5
|
1 | use serde::{Deserialize, Serialize};
|     ^^^^^ use of undeclared type or module serde
error: cannot determine resolution for the derive macro Serialize
--> src/main.rs:4:10
|
4 | #[derive(Serialize, Deserialize)]
|          ^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports
error: cannot determine resolution for the derive macro Deserialize
--> src/main.rs:4:21
|
4 | #[derive(Serialize, Deserialize)]
|                     ^^^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports
error[E0601]: main function not found in crate serde_examples
--> src/main.rs:1:1
|
1  | / use serde::{Deserialize, Serialize};
2  | | use serde_json::Result;
3  | |
4  | | #[derive(Serialize, Deserialize)]
...  |
23 | |     Ok(())
24 | | }
| |_^ consider adding a main function to src/main.rs
error[E0277]: the trait bound Address: serde::ser::Serialize is not satisfied
--> src/main.rs:18:35
|
18   |     let j = serde_json::to_string(&address)?;
|                                   ^^^^^^^^ the trait serde::ser::Serialize is not implemented for Address
|
::: /Users/b/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_json-1.0.59/src/ser.rs:2221:17
|
2221 |     T: ?Sized + Serialize,
|                 --------- required by this bound in serde_json::to_string
error: aborting due to 5 previous errors
Some errors have detailed explanations: E0277, E0432, E0601.
For more information about an error, try rustc --explain E0277.
error: could not compile serde_examples.

You need to add a dependency on serde in your Cargo.toml. Something like this should work.
serde = { version = "1.0", features = [ "derive" ] }

Second, you also need to have a main function, if you want to run the code. You can add
fn main() -> Result<()> {
    print_an_address()
}

to your main.rs file.

Hi, this is correct, and that was the solution.
Thank you for spending time debugging my issue.
now can somebody please add that critical information to the actual example, so new people don't trample on the same issue?


CMake option to use external qdldl

For packaging the osqp library in vcpkg/homebrew/apt it may be convenient to provide an option (by default set to off) to use an external qdldl (packaged in vcpkg/homebrew/apt as well) instead of the internal one of osqp, obtained using the git submodule.
This may be particularly important if another qdldl installation is already present in the system, as at the moment osqp installs its own internal qdldl version.
If osqp requires a specific recent version of qdldl, it should specify it in the find_package call to find qdldl, but before qdldl should be modified to export its own version using the write_basic_package_version_file CMake macro.
Would you be interested  in a PR providing this modifications?

Thank you Silvio for proposing the PR.
I think this procedure would make the installation and maintenance of OSQP unnecessary difficult for the following reasons:

We would like to keep a single interface to each linear system solver. Having multiple interfaces would create confusion. In particular, we would like to keep our linear system solvers inside OSQP and others (possibly commercial) loaded dynamically using a shared library.

OSQP performs code generation via the MATLAB and Python interfaces. They rely heavily on the fact that QDLDL is in the same folder as OSQP. I believe that having QDLDL separated would require lots of rewriting for the installation and usage of the code generation features.

QDLDL is a very small C library consisting of 2 files qdldl.c and qdldl.h. We made it into a separate project to let other people use it with a permissive license, but I do not believe it is such a large library to require separate packaging or a different OSQP installation method. That's why it should not be a problem to have it inside multiple solvers. That's what is already happening with SuiteSparseLDL inside ECOS and SCS (with a much worse license...).

Seen from your pull request https://github.com/robotology/robotology-superbuild/pull/87 I think it is a much simpler solution to use the GIT_SUBMODULES option in ExternalProject. However, please let me know if the OSQP installation still cases problems. In case we could look for a different solution.

Thanks @bstellato for the quick response. Indeed using an external qdldl is not a simple as I thought (especially for the code generation part), so I will  list the reason for which I was proposing it, and possible solutions for each of those problems. Most of those problems are not affecting us now, but they may be creating problems in the future, especially if more projects start using qdldl and/or osqp.  Just to clarify, avoiding sub-modules (as it may seems from https://github.com/robotology/robotology-superbuild/pull/87) was not one of those reasons. If you prefer, I can open a separate issue for each one of this problems.

Some distributions (Fedora [1], Debian [2]) explicitly disallow vendored/bundled libraries for a variety of reason. Permitting to use an external copy of  vendored libraries in the upstream build system would simplify the life of the distro packages. However, this is not a big problem until someone wants  to package osqp (or a project that depends on osqp) for Fedora/Debian official repos, and even in that case this logic can be implemented by the packager in distro-specific patches.

If another library (let's call it libfoo) uses qdldl using the $<TARGET_OBJECTS:qdldlobject> as done in osqp and an executable links both libfoo and osqp, then on ELF systems both libfoo and osqp will  call the QDLDL_ functions of the fist library passed to the linker. For example, if libfoo ships an old (or even works, locally patched) version of qdldl, osqp will silently use the libfoo's QDLDL_ functions instead  of its own. If both libfoo and osqp used an external copy of qdldl, osqp could decide at the configuration phase (based on the qdldl's version) if the qdldl version was suitable to be used with OSQP, or not. This can also be solved either by adding a prefix to QDLDL_ functions embeeded in osqp, or changing their visibility.  Both solutions can be implemented as custom options in the qdldl build system.

If in a given installation prefix I install a specific version of qdldl, and later I install osqp in the same prefix, my version of qdldl will be overwritten by the osqp-provided one. Given that the osqp's installed version of qdldl is not used at all by osqp (it is not used by any find_dependency in  osqp-config.cmake), I think that this problem could be solved by having an option (in osqp build system, that then is propagated to qdldl build system to disable installation) to disable installation of qdldl` files.

[1] : https://fedoraproject.org/wiki/Bundled_Libraries
[2] : https://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles

We could perhaps address this via cmake options.   When the QDLDL code is included as part of OSQP, we could build QDLDL such that all of the functions are named OSQP_QDLDL_ and use these function names internally in OSQP.   When QDLDL is built standalone or as part of any other application, the same functions could just be called QDLDL_.   Does that solve some or all of problem?

We could perhaps address this via cmake options. When the QDLDL code is included as part of OSQP, we could build QDLDL such that all of the functions are named OSQP_QDLDL_ and use these function names internally in OSQP. When QDLDL is built standalone or as part of any other application, the same functions could just be called QDLDL_. Does that solve some or all of problem?

Sorry @goulart-paul , for some reason I had missed your reply. This solution can indeed solve the problem raised in the second bullet point of https://github.com/oxfordcontrol/osqp/issues/85#issuecomment-416027228 , it cannot solve the problem at the first point (but that is not a problem until some distro tries to package osqp), and it can  affect the third problem depending on how the OSQP_QDLDL_ prefix is added in qdldl.

We could perhaps address this via cmake options. When the QDLDL code is included as part of OSQP, we could build QDLDL such that all of the functions are named OSQP_QDLDL_ and use these function names internally in OSQP. When QDLDL is built standalone or as part of any other application, the same functions could just be called QDLDL_. Does that solve some or all of problem?

Sorry @goulart-paul , for some reason I had missed your reply. This solution can indeed solve the problem raised in the second bullet point of #85 (comment) , it cannot solve the problem at the first point (but that is not a problem until some distro tries to package osqp), and it can affect the third problem depending on how the OSQP_QDLDL_ prefix is added in qdldl.

Hi, I'm trying to build osqp 0.6 via released tarballs but found it infeasible in the lack of qdldl_source. Could you please provide a release version with qdldl inside(e.g. osqp-0.6.0-qdldl.tar.gz)? Thanks.


go get giving errors about unknown gists

I am getting errors trying to go get this package. These come from glycerine/go-goon but I can't open issues against that...
go get github.com/glycerine/bambam
package github.com/shurcooL/go/gists/gist6418290: cannot find package "github.com/shurcooL/go/gists/gist6418290" in any of:
	/usr/local/go/src/github.com/shurcooL/go/gists/gist6418290 (from $GOROOT)
	/Users/justin/go/src/github.com/shurcooL/go/gists/gist6418290 (from $GOPATH)
package github.com/shurcooL/go/gists/gist6418462: cannot find package "github.com/shurcooL/go/gists/gist6418462" in any of:
	/usr/local/go/src/github.com/shurcooL/go/gists/gist6418462 (from $GOROOT)
	/Users/justin/go/src/github.com/shurcooL/go/gists/gist6418462 (from $GOPATH)

works for me. try with -u ?
$ go get -t -u -v github.com/glycerine/bambam
go get -t -u -v github.com/glycerine/bambam
github.com/glycerine/bambam (download)
github.com/glycerine/go-goon (download)
package github.com/shurcooL/go/gists/gist6418290: directory "/Users/jaten/src/github.com/shurcooL/\
go/gists/gist6418290" is not using a known version control system
package github.com/shurcooL/go/gists/gist6418462: directory "/Users/jaten/src/github.com/shurcooL/\
go/gists/gist6418462" is not using a known version control system
github.com/glycerine/goconvey (download)
github.com/jtolds/gls (download)

oh I see. Those gists went away, but I have them cached. hmm...

I pushed a change to refer to github.com/shurcooL/go-goon instead of my fork. lmk if it works for you now.

Yes thanks that is fixed now.


[Bug] Can't upload files to chat

Describe the bug
The APIs used to upload files to a chat are not fully implemented by this library. In particular, the FileConsentCardResponse and FileUploadInfo classes are not provided, and FileConsentCard is missing some functionality.
SDK Version
4.0.0-beta1
.Net Version
.NET Core 2.2
Expected behavior
When I call the ToAttachment extension method for FileConsentCard, the resulting attachment must have Name set. See here for reference. Failure to set this property results in cards that do not render on the client.
When a user consents to a FileConsentCard, a response is sent to the bot in the form of an "invoke" activity. I should be able to retrieve FileConsentCardResponse and FileUploadInfo instances from this response and use them to carry out the file upload.
Additional context
These types were provided by the previous (pre-v4) version of this library. In this version, it appears that FileConsentCardResponse and FileUploadInfo are simply missing from the Swagger API definition.
For reference, here is the section of TeamsAPI.json from the old version of this library where these types are defined.

This should be fixed in the latest release.


add guess checking details

Guesses aren't checked for being words due to the difficulty of this version of wordle due to the many unfamiliar words contained within the text file and how it's harder to remove what letters are what due to the formatting. I could make it so that guesses are matched against the list of words, but I feel that that would require me to overhaul some of the game's mechanic and rules.  Using settings might alleviate some of the issues in the future, but for now there are no definitive plans for including settings. Thank you for your advice.


Dynamic buttons do not trigger modal in Meetergo integration

The current implementation of the Meetergo integration script does not handle dynamically added buttons with the class meetergo-modal-button. Buttons added to the DOM after the script has initialized do not trigger the modal functionality because the necessary event listeners are not applied.

Implement global event listeners that listen for clicks on elements with the meetergo-modal-button class, regardless of when they are added to the DOM.
Provide a custom reinitialization method (e.g., Meetergo.init() or Meetergo.bind()) that developers can call to reapply the event listeners to newly added elements.

Hi! That’s a great observation—thank you for pointing it out. Adding a global event listener would definitely improve the flexibility of the script. If you’d like, feel free to submit a PR with your proposed solution.


ghprb not automatically setting webhooks with correct events

When ghprb automatically sets the webhooks, does it set the events parameter like so?
{...
    'events': ['issue_comment', 'pull_request'],
...}

I've been using the plugin for a while, but today I went to check the webhooks because they weren't triggering as expected (on comments), and I found that the events trigger was only set to push.
I thought this worked in the past, so I don't have an explanation for this behavior.

UPDATE:
This will probably help those who are manually configuring or find that they need to manually configure the webhooks.
https://github.com/blog/1778-webhooks-level-up

Just wanted to add, that if there is both a ghprbhook and an SCM on-push enabled (Github plugin), then the github plugin will work.
If there is only SCM on-push trigger, you will need to change the Github URL to /github-webhook


Panic when FairSharing is enabled without preemption

What happened:
When I enable FairSharing without preemption, I'm getting a Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference). This happens even when there are no Workloads that would match the configuration.  See included logs kueue-controller-manager.json This also happens on both images: gcr.io/k8s-staging-kueue/kueue:v20240619-v0.7.0-8-gaa682c90 and gcr.io/k8s-staging-kueue/kueue:v0.7.0
What you expected to happen:
kueue-controller-manager is not stuck in CrashLoopBackOff with a panic and new workloads are admitted.
How to reproduce it (as minimally and precisely as possible):
ConfigMap
data:
  controller_manager_config.yaml: |-
    apiVersion: config.kueue.x-k8s.io/v1beta1
    kind: Configuration
    fairSharing:
      enable: true
      preemptionStrategies: [LessThanOrEqualToFinalShare, LessThanInitialShare]
    health:
      healthProbeBindAddress: :8081
    metrics:
      bindAddress: :8080
    # enableClusterQueueResources: true
    webhook:
      port: 9443
    leaderElection:
      leaderElect: true
      resourceName: c1f6bfd2.kueue.x-k8s.io
    controller:
      groupKindConcurrency:
        Job.batch: 100
        Pod: 5
        Workload.kueue.x-k8s.io: 5
        LocalQueue.kueue.x-k8s.io: 1
        ClusterQueue.kueue.x-k8s.io: 1
        ResourceFlavor.kueue.x-k8s.io: 1
    clientConnection:
      qps: 100
      burst: 200
    #pprofBindAddress: :8082
    #waitForPodsReady:
    #  enable: true
    #manageJobsWithoutQueueName: true
    #internalCertManagement:
    #  enable: false
    #  webhookServiceName: ""
    #  webhookSecretName: ""
    integrations:
      frameworks:
      - "batch/job"
      - "pod"
      podOptions:
        namespaceSelector:
          matchExpressions:
            - key: kubernetes.io/metadata.name
              operator: NotIn
              values: [ "cattle-system", "calico-system", "cattle-monitoring-system", "cattle-logging-system", "cattle-provisioning-capi-system", "cattle-fleet-local-system", "cattle-fleet-system", "cattle-resources-system", "cattle", "calico", "nvidia", "tigera-operator", "label-studio", "postgres-ha", "minio-operator", "minio-tenant", "kube-system", "dlf", "directpv", "cert-manager", "longhorn-system", "postgresql-ha", "labelstudio", "coder", "harbor", "kueue-system", "kueue", "kyverno", "argocd" ]
        podSelector:
          matchExpressions:
          - key: app.kubernetes.io/name
            operator: In
            values: [ "coder-workspace" ]
kind: ConfigMap
metadata:
  creationTimestamp: "2024-06-17T09:26:13Z"
  labels:
    app.kubernetes.io/instance: kueue
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: kueue
    app.kubernetes.io/version: v0.7.0
    argocd.argoproj.io/instance: kueue
    control-plane: controller-manager
    helm.sh/chart: kueue-0.1.0
  name: kueue-manager-config
  namespace: kueue-system
  resourceVersion: "70144241"
  uid: d4b6de19-d38f-4a5c-9d49-c85d36b2b50f

ClusterQueues (other cq-X are the same as cq-liveness)
apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
  name: cq-shared
spec:
  cohort: rad
  flavorFungibility:
    whenCanBorrow: Borrow
    whenCanPreempt: TryNextFlavor
  namespaceSelector: {}
  preemption:
    borrowWithinCohort:
      policy: Never
    reclaimWithinCohort: Never
    withinClusterQueue: Never
  queueingStrategy: BestEffortFIFO
  resourceGroups:
  - coveredResources:
    - cpu
    - memory
    - ephemeral-storage
    - github.com/fuse
    - pods
    - inno.com/gpu
    flavors:
    - name: k8s-test-master0
      resources:
      - name: cpu
        nominalQuota: 3
      - name: memory
        nominalQuota: 2Gi
      - name: ephemeral-storage
        nominalQuota: 10Gi
      - name: github.com/fuse
        nominalQuota: 5k
      - name: pods
        nominalQuota: 110
      - name: inno.com/gpu
        nominalQuota: 8
    - name: k8s-test-master1
      resources:
      - name: cpu
        nominalQuota: 3
      - name: memory
        nominalQuota: 1Gi
      - name: ephemeral-storage
        nominalQuota: 10Gi
      - name: github.com/fuse
        nominalQuota: 5k
      - name: pods
        nominalQuota: 110
      - name: inno.com/gpu
        nominalQuota: 9
    - name: k8s-test-master2
      resources:
      - name: cpu
        nominalQuota: 3
      - name: memory
        nominalQuota: 1Gi
      - name: ephemeral-storage
        nominalQuota: 10Gi
      - name: github.com/fuse
        nominalQuota: 4
      - name: pods
        nominalQuota: 110
      - name: inno.com/gpu
        nominalQuota: 4
    - name: k8s-test-worker0
      resources:
      - name: cpu
        nominalQuota: 3
      - name: memory
        nominalQuota: 1Gi
      - name: ephemeral-storage
        nominalQuota: 10Gi
      - name: github.com/fuse
        nominalQuota: 5k
      - name: pods
        nominalQuota: 110
      - name: inno.com/gpu
        nominalQuota: 8

---
apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
  name: cq-liveness
spec:
  cohort: rad
  flavorFungibility:
    whenCanBorrow: Borrow
    whenCanPreempt: TryNextFlavor
  namespaceSelector: {}
  preemption:
    borrowWithinCohort:
      policy: Never
    reclaimWithinCohort: Never
    withinClusterQueue: Never
  queueingStrategy: StrictFIFO
  resourceGroups:
  - coveredResources:
    - cpu
    - memory
    - ephemeral-storage
    - github.com/fuse
    - pods
    - inno.com/gpu
    flavors:
    - name: k8s-test-master0
      resources:
      - name: cpu
        nominalQuota: 0
      - name: memory
        nominalQuota: 0
      - name: ephemeral-storage
        nominalQuota: 0
      - name: github.com/fuse
        nominalQuota: 0
      - name: pods
        nominalQuota: 0
      - name: inno.com/gpu
        nominalQuota: 0
    - name: k8s-test-master1
      resources:
      - name: cpu
        nominalQuota: 0
      - name: memory
        nominalQuota: 0
      - name: ephemeral-storage
        nominalQuota: 0
      - name: github.com/fuse
        nominalQuota: 0
      - name: pods
        nominalQuota: 0
      - name: inno.com/gpu
        nominalQuota: 0
    - name: k8s-test-master2
      resources:
      - name: cpu
        nominalQuota: 0
      - name: memory
        nominalQuota: 0
      - name: ephemeral-storage
        nominalQuota: 0
      - name: github.com/fuse
        nominalQuota: 0
      - name: pods
        nominalQuota: 0
      - name: inno.com/gpu
        nominalQuota: 0
    - name: k8s-test-worker0
      resources:
      - name: cpu
        nominalQuota: 0
      - name: memory
        nominalQuota: 0
      - name: ephemeral-storage
        nominalQuota: 0
      - name: github.com/fuse
        nominalQuota: 0
      - name: pods
        nominalQuota: 0
      - name: inno.com/gpu
        nominalQuota: 0

Anything else we need to know?:
Environment:

Kubernetes version (use kubectl version): v1.27.10+rke2r1
Kueue version (use git describe --tags --dirty --always): v0.7.0
Cloud provider or hardware configuration: onprem VMs
OS (e.g: cat /etc/os-release): Ubuntu 22.04.4 LTS
Kernel (e.g. uname -a): 5.15.0-97-generic
Install tools: ArgoCD
Others:

Looks like it was already fixed #2439.

yes, the build is from Friday, so it contains both fixes.

/close


In the scenario I currently face, I have added 1 columns block with 4 (the maximum) child column blocks.
If I add another top-level columns block, it already imposes the limit on adding more children (by graying out the button to add a column).

Hey @admench, yeah this behaviour is expected. I realise limiting block type counts per parent is more useful but I thought that kind of behaviour was not inline with what the setting described. There's also cases where you want to limit block types across the entire field too.
It's been suggested that there should be a "Max child blocks" setting per block type, but there's also a lot of other rule options that would be equally as useful. I don't want to pollute block types with many settings, but this one comes up a lot so I'll definitely add it in at some point soon.

Thanks for the explanation - I can give instructions to the content editor
for now, which is a workaround that I can manage easily. Great work with
the plugin thank you.
On Sunday, 24 July 2016, Benjamin Fleming<EMAIL_ADDRESS>wrote:

Hey @admench https://github.com/admench, yeah this behaviour is
expected. I realise limiting block type counts per parent is more useful
but I thought that kind of behaviour was not inline with what the setting
described. There's also cases where you want to limit block types across
the entire field too.
It's been suggested that there should be a "Max child blocks" setting per
block type, but there's also a lot of other rule options that would be
equally as useful. I don't want to pollute block types with many settings,
but this one comes up a lot so I'll definitely add it in at some point soon.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/benjamminf/craft-neo/issues/40#issuecomment-234749807,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AApElP-xtJTjpLmPnde1UjszUDRDFmRpks5qYrc1gaJpZM4JSmeq
.

Now implemented in 1.4.0 which is currently still in testing. If you're interested you can grab the early release from the master branch.

Thanks Ben!
On 30 October 2016 at 05:59, Benjamin Fleming<EMAIL_ADDRESS>wrote:

Closed #40 https://github.com/benjamminf/craft-neo/issues/40.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/benjamminf/craft-neo/issues/40#event-841090513, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AApElErVAmfrYjKM7f99tbMAkwMIEDFiks5q5DJJgaJpZM4JSmeq
.

Hi Ben,
I have upgraded to 1.4.1 which still exhibits the same issue, is this deliberate, did you stick to your thoughts that it is better to limit the number of child block types for the entire entry rather than per-parent?
Thanks again

Sorry, Ignore my last comment, I just noticed the new 'Max Child Blocks' field.
Thanks for your continued work on this!


Provide windows.vs2022preview.perlscouting.amd64[.open] queues

The Strawberry Perl version provided on Windows build agents has not changed lately. The main reason has been that release doing a poor job keeping up w/ https://www.perl.org/ (their upstream) releases. To ensure moving from Strawberry Perl v<IP_ADDRESS> to v5.38.0 (which isn't out yet), we should give the affected teams a scouting queue or perhaps a pair of scouting queues (one internal) to test against.

Release Note Category

[x] Feature changes/additions
[ ] Bug fixes
[ ] Internal Infrastructure Improvements

Release Note Description
Added a new windows.vs2022preview.perlscouting.amd64.open for testing Strawberry Perl v5.38.0 RC2. That release corresponds to v5.36.1 from https://perl.org. See https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/dev_5.38.0_RC2_20230626_gcc13 for their release notes.
We hope to delete this queue when updating the regular Windows queues to use the final Strawberry Perl v5.38.0 release.

This is an intermediate step toward completing #246.

https://dev.azure.com/dnceng/internal/_git/dotnet-helix-machines/pullrequest/32269 is up and building

Length restrictions made me change the queue name to windows.vs2022preview.scoutperl.amd64.open. I updated the issue title and description to reflect the new name.

Fix rolled out on 12 July 2023.


[Mixcloud] Unable to extract track url

Might be related: #7521 (Unable to extract preview url)
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'https://www.mixcloud.com/OstbahnhofTechnoMix/sechsunddreizig-36/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.11.24
[debug] Python version 3.5.0 - Linux-4.2.5-1-ARCH-x86_64-with-arch
[debug] exe versions: ffmpeg 2.8.2, ffprobe 2.8.2, rtmpdump 2.4
[debug] Proxy map: {}
[mixcloud] OstbahnhofTechnoMix-sechsunddreizig-36: Downloading webpage
[mixcloud] OstbahnhofTechnoMix-sechsunddreizig-36: Trying mp3 URL
[mixcloud] OstbahnhofTechnoMix-sechsunddreizig-36: Trying m4a URL
ERROR: Unable to extract track url; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 663, in extract_info
    ie_result = ie.extract(url)
  File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 290, in extract
    return self._real_extract(url)
  File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/mixcloud.py", line 71, in _real_extract
    raise ExtractorError('Unable to extract track url')
youtube_dl.utils.ExtractorError: Unable to extract track url; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

It's fixed in the last version, you have to update youtube-dl


AI API issue causing runtime error

Currently, when we send a prompt to the AI API, we are simply given a runtime error. However I think this can be remedied by fixing where our API key is stored.

Issue resolved. Added a protection method in order to keep the key from being accessible through the repository, so our calls are now able to made.


replace c:i/1 with c:i/3

I can't find documentation about c:i/1, so I assume otp made some changes.

Read the lfe(1) doc again, I found out the synax for i is (i [(list Pid ...)]), so I withdraw this pr


Allowing BridgeServerProfiles to be sent to plain peers, in case of snappystore.

Changes proposed in this pull request

Fix for SNAP-737. Allowing BridgeServerProfiles to be sent to plain peers, in case of snappystore.

Plain peers meaning those with no netservers, locators or admins running on them.

Partial fix for SNAP-652 (MemHeapScanController.java). Do not skip iterating over entries if the BucketRegion is unavailable, in case of snappystore. @suranjan  you too may want to take a look.

Patch testing

./gradlew precheckin

Other PRs

The rest of the fix for SNAP-652 is available here https://github.com/SnappyDataInc/snappydata/pull/230

General comment:

Fix for SNAP-737. Allowing BridgeServerProfiles to be sent to plain peers, in case of snappystore.
Plain peers meaning those with no netservers, locators or admins running on them.

Why can't we send to all the peers irrespective of types.

Why can't we send to all the peers irrespective of types.
By plain peers I meant all types of peers. And this usecase is specific to snappystore. In gemxd, we may not want to distribute this profile to all the members of DS but only to the ones needing it i.e. other netservers/locators.

Looks ok for merge.

@ashetkar How is this supposed to work properly with only adviseProfileRemove overridden?? Should also override adviseProfileExchange, adviseProfileUpdate. I think best option will be to override adviseGeneric in BridgeServerAdvisor.

@ashetkar Looking at the code further the place from where profiles will get updated is in GridAdvisor.tellLocalControllers which explicitly update the GfxdDistributionAdvisor.
For initial exchange this gets updated is in GfxdProfile.processIncoming which adds its own network servers in the replyProfiles. This only happens when exchangeProfiles is true which is during initialization phase so it will get the initial set of network servers.
Consequently you would not need to override adviseProfileExchange, and only adviseProfileUpdate/Remove.
Secondly I think there is no need to make the check snappy specific. It does no harm to update in all cases. The less snappy specific checks are in the code, the better. Our store precheckin and regression still works where snappyStore is false so more the deviations, more is the probability of it being broken with snappyStore=true without us being able to detect it in regression/precheckin.
@kneeraj On a related note, I think we should make the changes so that store precheckin and regression are run with snappyStore=true because that is what the end-user will be running (with or without "rowstore" enabled).

Intention was to have the fix as less-intrusive (to the GemXD flow) as possible.
Yes, from the logs of the test runs I could see that the external driver was able to see the initial set of network servers, but not the network servers which were 1. shut down or 2. added later.
Modifying adviseProfileRemove solved the former and the latter was taken care of in SparkShellRDDHelper where if no network-servers were found for a bucket, it would assign other buckets' net-servers to it.
I now see that we need to modify adviseProfileUpdate too, to fully cover case 2.


Partial Invoice feature

There should be a feature in which invoice can be multiple created for a particular stock.
Let me know if you have any questions regarding the task!

its okey

issue has been fixed


Crash on macOS

OS: macOS 11.2.3
Version: https://github.com/JetBrains/JWM/commit/56449f9f4b6c84334ee4c768cf6d4cf487660b1a
Steps to reproduce:

./script/run.py
Create multiple windows by cmd+n
Close some windows by cmd-w
hs_err_pid11437.log

Stack: [0x000000016d438000,0x000000016dc34000],  sp=0x000000016dc2ec90,  free space=8155k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libobjc.A.dylib+0x6254]  objc_msgSend+0x34
C  [CoreVideo+0x2860]  CVDisplayLinkStop+0x10
C  [libjwm_arm64.dylib+0xb9ac]  ___ZL19displayLinkCallbackP15__CVDisplayLinkPK11CVTimeStampS3_yPyPv_block_invoke+0x3c
C  [libdispatch.dylib+0x2128]  _dispatch_call_block_and_release+0x20
C  [libdispatch.dylib+0x3ec0]  _dispatch_client_callout+0x14
C  [libdispatch.dylib+0x12314]  _dispatch_main_queue_callback_4CF+0x374
C  [CoreFoundation+0xc4cd8]  __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__+0x10
C  [CoreFoundation+0x836ec]  __CFRunLoopRun+0x9dc
C  [CoreFoundation+0x82598]  CFRunLoopRunSpecific+0x258
C  [HIToolbox+0x30280]  RunCurrentEventLoopInMode+0x124
C  [HIToolbox+0x2fff4]  ReceiveNextEventCommon+0x228
C  [HIToolbox+0x2fdb4]  _BlockUntilNextEventMatchingListInModeWithFilter+0x48
C  [AppKit+0x41660]  _DPSNextEvent+0x344
C  [AppKit+0x40000]  -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]+0x50c
C  [AppKit+0x31e4c]  -[NSApplication run]+0x254
C  [libjwm_arm64.dylib+0x80b0]  Java_org_jetbrains_jwm_App__1nStart+0x20
j  org.jetbrains.jwm.App._nStart()I+0
j  org.jetbrains.jwm.App.start()I+20
j  org.jetbrains.jwm.examples.Example.main([Ljava/lang/String;)V+58

probably it was related with missing context switches

Some of it was, but I still have crashes, will investigate further


chore(deps): removing @angular/compiler

v13.0.0 has been released and contains a fix for the issue. Feel free to reopen the issue or to submit a new one if you meet any problems.


Missing an addHeaders in RequestBuilder, and "specified headers" override existing headers

When I use:
Given I specified the following request headers:
    | Authorization | Bearer test |
And I specified the following request headers:
    | Accept | text/html |
    | Another-Header | another_value |

I expect that all headers are set in request.
Actually, the first headers are overriden by the last, then I lost my Authorization header.
I know that I can specify all headers in one table.
But another fact is that if I create a custom phrase, like Given I am authenticated as user, which adds an authorization header, it is impossible to specify another headers like:
Given I am authenticated as user
And I specified the following request headers:
    | Accept | text/html |
    | Another-Header | another_value |

because it removes the authentication header.
What about an addHeaders method in request builder, and use it instead of setHeaders when I use the phrase Given I specified headers ?

no activity.


VK_ERROR_DEVICE_LOST - Crash when opening a 3d project

Godot version
v4.1.2.rc1
System information
Godot v4.1.2.rc1 - Windows 10.0.22621 - Vulkan (Forward+) - dedicated AMD Radeon RX 6600 (Advanced Micro Devices, Inc.; 31.0.21018.6011) - 12th Gen Intel(R) Core(TM) i3-12100F (8 Threads)
Issue description
Opening a 3d project (started fresh three times) after a few hours of 3d tinkering (adding meshes, lights, cameras, baking GI) creates a 100% crash for me, yielding this in the console:
Godot Engine v4.1.2.rc1.official.58f0cae4a - https://godotengine.org
OpenGL API 3.3.0 Core Profile Context <IP_ADDRESS>.230823 - Compatibility - Using Device: ATI Technologies Inc. - AMD R0

Editing project: C:/Users/DJWei/OneDrive/Documents/Test2
Godot Engine v4.1.2.rc1.official.58f0cae4a - https://godotengine.org
Vulkan API 1.3.250 - Forward+ - Using Vulkan Device #0: AMD - AMD Radeon RX 6600

WARNING: Blend file import is enabled in the project settings, but no Blender path is configured in the editor setting.
     at: _editor_init (modules/gltf/register_types.cpp:73)
ERROR: Vulkan: Cannot submit graphics queue. Error code: VK_ERROR_DEVICE_LOST
   at: (drivers/vulkan/vulkan_context.cpp:2360)

If I delete the .godot folder, I can open this new project exactly once. Then attempting to reopen it (even after doing nothing) gets me the vulkan error and the crash 100% of the time. I have attached the contents of a crashing project.
Steps to reproduce

paste the contents of VulkanBugProject.zip into a fresh project, overwriting any default files.
try to open the project from the project manager

Minimal reproduction project
On my system, I can open this project exactly once with a fresh .godot folder. I save, exit, and try to repopen, I get a 100% crash on opening.
VulkanBugProject.zip](https://github.com/godotengine/godot/files/12736840/VulkanBugProject.zip)

Thanks for the report! Consolidating in https://github.com/godotengine/godot/issues/71929.
In the meantime, you can test https://github.com/godotengine/godot/pull/80566 lmocally or use the Compatibility rendering method.


Add autolabeling of area/monitoring to PRs which change monitoring code

What this PR does / why we need it:
Some people have a special interst in monitoring. This PR restructures to code a little bit and adds OWNERS file which can identify based on the refactored code monitoring changes on PRs add add a area/monitoring label to it.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

/cc @sradco
/cc @erkanerol

/retest

@rmohr Thanks!
/lgtm

/retest
/approve


use different registry when in china, fixes #3700

@reigadegr can you give this a try?

Maybe we should just check is the env var REFLEX_NPM_REGISTRY is set.
If it is, we use the value set in there, if not we keep using the default like now.

It only adds a delay when initializing the web directory (once per init).

If it slow the process, maybe we could just check is an env var like REFLEX_NPM_REGISTRY is set. If it is, we use the value set in there, if not we keep using the default like now.

This could be a cool option but many might not find it and has to put up with worse experience without knowing how to fix it.

@FHU-yezi Would you be interested in testing this?

@adhami3310
Sorry，I am not able to compile the Python source code of reflex into an executable file.Could you teach me how to compile it, or send me the compiled file for testing?
I found a  method, which is to use the command
taskkill /F /IM bun.exe

to let reflex call npm for installation, which is quite fast. The reason is that the
bun install

command is very slow for me.

@FHU-yezi Would you be interested in testing this?
Let's wait to merge until someone can properly test and compare.

I had test "r.cnpmjs.org" by hand create .web\bunfig.toml;
yes, it improved the package download experience;


[PE-D][Tester C] Difficulty in seeing Priority of Task in GUI

It is quite difficult for users to see the Priority level of each Task due to the striking green colour of the block with the white colour of the font

As seen in the screenshot above, it takes some squinting to see the 'LOW' in the GUI

Labels: severity.VeryLow type.FeatureFlaw
original: soons1/ped#2

Addressed as a feature flaw in the 'Planned Enhancements' DG appendix.


Remove upper limit on Microsoft.AspNetCore.Component._ packages

Installing Mapsui.Blazor fails on Blazor 8 because the nuget excludes this. Our own samples already run it in Blazor 8 so it should be compatible.

This two commits fixes the build
https://github.com/Mapsui/Mapsui/pull/2635/commits/bda3ef7b47682098f89ddf7fb1c5005e6fd313c0
https://github.com/Mapsui/Mapsui/pull/2635/commits/eac7e3a4f2daa49f36fdd0c6bdf66775d28587d0


Tutorial adding command

This is just the tutorial

For some reason "Add EOF" commit was not reflected in GitHub


Update Weather example to Riverpod V2

I have just updated the Weather example to Riverpod v2. I want to update its title on the website as well.

Sounds good :)


Find an amazing name for the app

I think Memories is not a good name since  there are plenty of apps, songs, locals... named like that.
I would rather create a new word.
Any suggestion is Wellcome  🥰
For example picking the French words: memoir and  write its phonetics in Spanish Memuá
or focusing on other aspect of the app: write fast and idea sparkles

JoseRB (the best) has said that something related with Reminiscence...

If we want to remark that this is more than a reminiscence...
In hindi Sansmaran means reminiscence,  Maran means like doctor... what about Maran

Holismem mixing holism and memory :)

Coming from Anamnesis maybe:

Phaedo
Anapp

I have the feeling that think a short meaningful  name and search if it exists is not working so I am going to find some good sound short  meaningless free names

Instant Remis

SINOM

Regomello

I think  ✨✨✨✨Regomello✨✨✨ is the winner

Jose doesn't like Regomello
What about Sinapsis?


[libjpeg-turbo] Build error

Host Environment

OS: Windows
Compiler: revision

I have checked if this is caused by antivirus, it doesn't seems like it
To Reproduce
Steps to reproduce the behavior:
./vcpkg install libjpeg-turbo
Failure logs
Detecting compiler hash for triplet x64-windows...
The following packages will be built and installed:
  * libjpeg-turbo[core]:x64-windows -> 2.1.3#2 -- C:\Users\jules\AppData\Local\vcpkg\registries\git-trees\dd9bb6eb0d4e28d2b3ef0d83b6b9ef736555621d
  * tiff[core,jpeg,lzma,zip]:x64-windows -> 4.3.0#8 -- C:\Users\jules\AppData\Local\vcpkg\registries\git-trees\e2cafe3465d7c00233114c75abd86ed11538c186
    wxpython[core]:x64-windows -> 4.1.1#8 -- C:\Users\jules\AppData\Local\vcpkg\registries\git-trees\2de207d7c3cbd64076a7beef4710daebd7d63538
    wxwidgets[core]:x64-windows -> 3.1.6 -- C:\Users\jules\AppData\Local\vcpkg\registries\git-trees\77765432a1fa33536232367e2b4b61fdb94f653d
Additional packages (*) will be modified to complete this operation.
Restored 0 packages from C:\Users\jules\AppData\Local\vcpkg\archives in 778.4 us. Use --debug to see more details.
Installing 1/4 libjpeg-turbo:x64-windows...
Building libjpeg-turbo[core]:x64-windows...
-- Installing port from location: C:\Users\jules\AppData\Local\vcpkg\registries\git-trees\dd9bb6eb0d4e28d2b3ef0d83b6b9ef736555621d
-- Using cached libjpeg-turbo-libjpeg-turbo-c5f269eb9665435271c05fbcaf8721fa58e9eafa.tar.gz.
-- Cleaning sources at C:/Users/jules/Desktop/kicad-source/vcpkg/buildtrees/libjpeg-turbo/src/fa58e9eafa-51b986428d.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Users/jules/Desktop/kicad-source/vcpkg/downloads/libjpeg-turbo-libjpeg-turbo-c5f269eb9665435271c05fbcaf8721fa58e9eafa.tar.gz
-- Applying patch add-options-for-exes-docs-headers.patch
-- Applying patch workaround_cmake_system_processor.patch
-- Using source at C:/Users/jules/Desktop/kicad-source/vcpkg/buildtrees/libjpeg-turbo/src/fa58e9eafa-51b986428d.clean
-- Found external ninja('1.10.2').
-- Configuring x64-windows
-- Building x64-windows-dbg
-- Building x64-windows-rel
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:158 (message):
    Command failed: "C:/Program Files/CMake/bin/cmake.exe" --build . --config Release --target install -- -v -j17
    Working Directory: C:/Users/jules/Desktop/kicad-source/vcpkg/buildtrees/libjpeg-turbo/x64-windows-rel
    See logs for more information:
      C:\Users\jules\Desktop\kicad-source\vcpkg\buildtrees\libjpeg-turbo\install-x64-windows-rel-out.log

Call Stack (most recent call first):
  C:/Users/jules/Desktop/kicad-source/kicad/build/x64-Debug/vcpkg_installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake:112 (vcpkg_execute_build_process)
  C:/Users/jules/Desktop/kicad-source/kicad/build/x64-Debug/vcpkg_installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake:41 (vcpkg_cmake_build)
  C:/Users/jules/AppData/Local/vcpkg/registries/git-trees/dd9bb6eb0d4e28d2b3ef0d83b6b9ef736555621d/portfile.cmake:56 (vcpkg_cmake_install)
  scripts/ports.cmake:146 (include)

error: building libjpeg-turbo:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
    https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+libjpeg-turbo
You can submit a new issue at:
    https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[libjpeg-turbo]+Build+error
Include '[libjpeg-turbo] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above.
    vcpkg-tool version: 2022-05-05-67e17c1782801cf481be9ac0b3765dff3e4bdeb8
    vcpkg-scripts version: 314018fef 2022-05-20 (3 days ago)

Additional context
Add any other context about the problem here, such as what you have already tried to resolve the issue.
install-x64-windows-rel-out.log

Error message:
MT: command "C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\mt.exe /nologo /manifest md5\md5cmp.exe.manifest /outputresource:md5\md5cmp.exe;#1" failed (exit code 0x1f) with the following output:

mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "md5\md5cmp.exe". Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus.

please disable anti-virus software and try again.

@polymood Have you contacted us recently?
Just tried libjpeg-turbo on my box and no issues at all.
Which toolchain are you using this time?

We hope your question was answered to your satisfaction; if it wasn't, you can reopen with more info.


Korrel8r backend creation when the troubleshooting panel is deployed

Korrel8r backend deployments get created when the troubleshooting panel is created. Uses the same controller as the Troubleshooting panel to setup the backend Korrel8r components. Closing the previous draft PR in favor of this approach - https://github.com/rhobs/observability-operator/pull/474

@shwetaap would you mind rebasing this? thanks

/lgtm

/lgtm


Errors were encountered while processing:  nvidia-l4t-kernel-dtbs

I am trying to build on NX but build fails:
It appears an existing build exists in /tmp/build_opencv
Do you wish to remove temporary build files in /tmp/build_opencv ?
(Doing so may make running tests on the build later impossible)
Y/N Y
Installing build dependencies.
 Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up nvidia-l4t-kernel-dtbs (4.9.201-tegra-32.5.1-20210219084708) ...
Decompile /boot/dtb/kernel_tegra194-p3668-all-p3509-0000.dtb
tegra194-p3668-all-p3509-0000.dtb failed, quit.
dpkg: error processing package nvidia-l4t-kernel-dtbs (--configure):
 installed nvidia-l4t-kernel-dtbs package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 nvidia-l4t-kernel-dtbs
E: Sub-process /usr/bin/dpkg returned an error code (1)

Looks related to update and a driver package on your system, not the script. Try commenting out the apt-get update and apt-get upgrade lines of the script and it should work, but be aware, there's likely a separate problem with your system. Do you have some third party driver packages installed?

gonna close this (unless there's more to add?)


Accessors are not identified as an implementation of an interface property

Search terms
Inherit, inheritance, implementation, properties, computed properties, accessors
Expected Behavior
Typedoc correctly identifies computed properties (accessors) as implementations of interface properties.
Example:
export interface Foo {
	/** Some documentation. */
	readonly bar: number;
	readonly barProp: number;
	barMethod(): number;
}
export class FooClass implements Foo {
	/** @inheritdoc */
	get bar(): number { return 4; }
	barProp = 9;
	barMethod(): number { return 42; }
}

All elements in FooClass should have a note saying that they implement some property of Foo.
Actual Behavior
This:

Screenshot of the page of `FooClass`

FooClass.bar does not have a little note saying: "Implementation of Foo.bar". This is the case with and without @inheritdoc.
Steps to reproduce the bug
Minimal project.
Environment

Typedoc version: 0.20.22
TypeScript version: 4.1.3
Node.js version: v14.15.4
OS: Win10 x64 Version 10.0.19042.746

Looks like TypeDoc did correctly mark the accessor with implementationOf, but not the getSignature and/or setSignature property, so when rendering it wasn't picked up.


Having Issues with the example

When learning the example I had a major issue with Visual Studio. When you copy over the files from "Generated Files\sources\MainPage.cpp" and "MainPage.h" into the solution visual studio asks if you would like to overwrite them. If you say yes then the Xaml and the C++ code are no longer linked together. Therefore when compiling the solution the compiler spits out an error in "xamltypeinfo.g.cpp" that states it can't find "winrt::implementation::MainPage". I could not for the life of me get it to work without having to start the solution from scratch; and rather than overwrite the files just copy and paste the code from the generated files into the solution files. If there is a better way around this I would greatly appreciate figuring out what to do about it.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a4db0aab-b906-9dec-381c-ceccc1e90c45
Version Independent ID: 493a4c50-ffa1-5e32-c757-92306c952887
Content: XAML controls; bind to a C++/WinRT property - Windows UWP applications
Content Source: windows-apps-src/cpp-and-winrt-apis/binding-property.md
Product: uwp
GitHub Login: @stevewhims
Microsoft Alias: stwhi

Hi, @fearless40, note that in the topic we ask you to create BookSku.idl, then build, then copy the generated files across (you do the copy in File Explorer, of course). At that point, the files that you're copying have been created for the first time. So copying them, and then adding them to the project, is the right workflow. However, when you make changes to the IDL for a type that's already in your project, then copying files around isn't appropriate because you'll almost certainly overwrite some of your implementation. When you make changes to the IDL for a type that's already in your project, then the generated files contain stubs any new members you've added. Copy those stubs over into the corresponding file that's already in your project. It sounds like you're already doing that, since you say "rather than overwrite the files just copy and paste the code from the generated files into the solution files". That's right. You're essentially doing a merge at that point, which is necessary, since the generated files don't contain your implemented members, and your implementation doesn't contain the newly added members. There's another example of this in https://docs.microsoft.com/windows/uwp/cpp-and-winrt-apis/binding-collection, where the topic says, "Copy the accessor stubs from".
I hope this helps, and sorry about the confusion.
~Steve


Added Knative Monitoring

Hopefully you find this addition useful - I think many users will enjoy the Grafana dashboards.
Thanks for the awesome tutorial btw!

 Thanks @timidri!


duplicate keys

make sure dictionary keys are not overwritten by duplicates
example:
path = folder with two differently named zip-files (a.zip, b.zip)
containing one csv-file each with the same filename (data.csv)
=> dict = { 'data.csv' : pd.DataFrame }

also keep keys as short and simple as possible!
maybe check if new key in dict and enumerate equal keys (data.csv_0, data.csv_1 ...)

occurs in babynames example. preliminary fix: disabled shortening the key if only one element in path to the name of the element. instead the key is sourcefile_element.
in the above example, this would result in
=> dict = {'a.zip_data.csv': df1, 'b.zip_data.csv': df2}


Prometheus End Point Returns 401

After setting up the properties

management.endpoints.web.exposure.include: prometheus,info,health
spring.cloud.streamapp.security.enabled = false
management.metrics.export.prometheus.enabled = true
management.security.enabled = false

Whenever I try to access /actuator/prometheus gives 401 error and so far in only happens on the rabbit sink and source, any other starter reports to prometheus as intended.

@ZirNeo , could you please share the version of the rabbit app you test with?

@tzolov Yeah sure
rabbit-source-kafka:2.1.1.RELEASE

Thanks @ZirNeo
I reproduced the issue. It looks like a bug due to pom-plugin misconfigurations for the rabbit-source and rabbit-sink apps. Only the rabbit apps are affected.
The fix PR is coming shortly

Problem description:
To solve a issue with CF (https://github.com/spring-cloud-stream-app-starters/rabbit/commit/d921fbe8e01a6aed079186458310a29821c97876) and remove the connector dependencies the Rabbit apps override the default additionalGlobalDependencies definitions in the core.
The overridden additionalGlobalDependencies though is missing all metrics and security dependencies needed for the SCDF monitoring.


tf.compat.v2.summary.scalar  has no attribute 'experimental'

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): 16.04 LTS
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: NO
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.0.0-beta1
Python version: 2.7
Bazel version (if compiling from source): Build label: 0.24.1
GPU model and memory:  CPU

You can collect some of this information using our environment capture
script
Describe the current behavior
import tensorflow.compat.v2.summary as b
b.scalar

<function scalar at 0x7fbe6ed09050>
b.experimental

Traceback (most recent call last):
File "", line 1, in
AttributeError: 'module' object has no attribute 'experimental'
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
train_log_dir = "logs/scalars/"
self._train_summary_writer = tf.compat.v2.summary.create_file_writer(train_log_dir)
 def get_metrics(self,step):
    self._step= step
    loss=self.metrics.get("loss", None)
    accuracy = self.metrics.get("accuracy", None)
    with self._train_summary_writer.as_default():
      tf.compat.v2.summary.scalar('loss', loss,step=self._step)
      tf.compat.v2.summary.scalar('loss', accuracy,step=self._step )
      self._train_summary_writer.flush()
    return self.metrics

Other info / logs
Traceback (most recent call last):
File "/home/sendate/Desktop/TeamTrung/Bintu/Tensor/Agent.py", line 152, in
print('history dict:', agent.get_metrics(episode))
File "/home/sendate/Desktop/TeamTrung/Bintu/Tensor/Agent.py", line 83, in get_metrics
tf.compat.v2.summary.scalar('loss', loss,step=self._step)
File "/home/sendate/Desktop/TeamTrung/Bintu/Tensor/venv/local/lib/python2.7/site-packages/tensorboard/plugins/scalar/summary_v2.py", line 57, in scalar
getattr(tf.summary.experimental, 'summary_scope', None) or
File "/home/sendate/Desktop/TeamTrung/Bintu/Tensor/venv/local/lib/python2.7/site-packages/tensorflow/python/util/deprecation_wrapper.py", line 104, in getattr
attr = getattr(self._dw_wrapped_module, name)
AttributeError: 'module' object has no attribute 'experimental'

I am able to execute the code without any issues in 2.0.0-beta1. Please, find the screenshot.

If that was not the expected output ,please share the full code snippet to reproduce the issue.
Thanks!

Automatically closing this out since I understand it to be resolved, but please let me know if I'm mistaken.Thanks!


Regression: adds lots of new whitespace

This is a regression from yesterday.
tracing-appender/src/inner.rs
=============================

    1:  "use std::io::{BufWriter, Write};
"
        "use std::io::{BufWriter, Write};
"

    2:  "
"
        "
"

    3:  "
"
        "
"

    4:  "
"
        "
"

diff --git a/tracing-appender/src/inner.rs b/tracing-appender/src/inner.rs
index f1e0fe0..6ade116 100644
--- a/tracing-appender/src/inner.rs
+++ b/tracing-appender/src/inner.rs
@@ -1,96 +1,768 @@
 use std::io::{BufWriter, Write};
+
+
+
+
+
+
+

Oh. I must have missed a \n somewhere, I'll check

Ok, should be fixed with 3fe59eb:

If this is fixed on your side you can close :). Thanks for the report !

Deleted local link

Wait, why would that link be deleted? I want to keep those.

Oh because it would be the same after it was replaced :) Can you change the message to say that?


About the number of iterations in every epoch

Hello, I run your code on market1501. I set the batch size 64 and the number of the iterations should be 186. But each epoch training will stop at 183 or 184. I am so confused!
Thanks!
Epoch[6] Iteration[184/184] Loss: 6.502, Acc: 0.004, Base Lr: 1.77e-04:  99%|█████████▉| 184/186 [08:50<00:00,  2.19it/s]2021-04-17 13:55:08,833 reid_baseline.train INFO: Epoch 6 done. Time per batch: 88.538[s] Speed: 133.0[samples/s]

Epoch[7] Iteration[183/183] Loss: 6.501, Acc: 0.009, Base Lr: 2.11e-04:  98%|█████████▊| 183/186 [10:18<00:01,  2.24it/s]2021-04-17 13:56:37,045 reid_baseline.train INFO: Epoch 7 done. Time per batch: 87.494[s] Speed: 133.9[samples/s]

There are some minor bugs. You can try the latest version.
https://github.com/heshuting555/TransReID/blob/main/datasets/sampler.py


would not accept more than 16 digits (VISA DEBIT CASE)

in some cases like (VISA DEBIT) this will not accept more than 16 digits : EX :<PHONE_NUMBER>000000003

You can file issues/PRs for type detection here:
https://github.com/bendrucker/creditcards-types


Allow more data into decode and add filtering capabilities

Pre-this PR, version 0.3.0 had the capability to return
city, country
This PR makes updates to:

download_data to allow the full headers to the cities data to be retrieved
read_data reads in CSV data using CSV.read with DataFrame sink instead of CSV.File.

This allows native DataFrame filter operations to be included with the read_data function, allowing the reverse geocode to operate on a filtered subsets according to user's wishes

Geocoder constructor now has keyword argument filters
depending on header selection, the decode function now dispenses results containing other headers as well in addition to city, country. This all hinges on the constructor of the Geocoder object.

Hello @tlow22, what a pleasant surprise to come back to from a vacation, a first PR; thank you!  I didn't think anyone was using this 😄
I don't have time to catch up on my old code and your changes right now, but I will get into it on the weekend.
Could you let me know if you plan to update the README with the new usage options after you are done adding to this PR?
Thank you for taking the time to do this!

Oh man, I'm just glad you're still around, take your time! Yes more than willing to take time to update the README.
I did this in a rush for the work I do, so very open to feedback if the direction is too drastic

I reviewed the changes and have some comments in the files. Additionally, could you look into the following points?

the tests are now broken due to the use of custom types in the returned string, e.g., InlineStrings.String31. Is that an artifact of using DataFrames? A quick fix would be converting all returned values to regular Julia types, which may also be done inside the package. I am not sure about this; maybe it depends on how you use it.
Could you provide some small examples and test of filters in the tests?
Could you update the README with the new usage?

The errors in the tests got me thinking about the decode function. How do you use this package? Would adding a decode that takes and returns DataFrame make sense?
Also, I noticed the old version of the package would not even run with fresh Julia installed on my machine, so thanks for fixing that :-)

So CSV.read is now provided the types, allowing a hard typing to Strings for each column instead of the InlineStrings.String31. More CSV's fault than DataFrames.
I still have yet to add unit tests and examples, but those will come over the week. The previous unit tests broke because decode outputs a NamedTuple, the values were similar but the order and names weren't.
I started modifying the code because I wanted the decode to output admin1 to be eventually translated into US states. I actually like decode's behavior now as it's very straightforward to understand.

I reviewed the changes and have some comments in the files. Additionally, could you look into the following points?

the tests are now broken due to the use of custom types in the returned string, e.g., InlineStrings.String31. Is that an artifact of using DataFrames? A quick fix would be converting all returned values to regular Julia types, which may also be done inside the package. I am not sure about this; maybe it depends on how you use it.
Could you provide some small examples and test of filters in the tests?
Could you update the README with the new usage?

The errors in the tests got me thinking about the decode function. How do you use this package? Would adding a decode that takes and returns DataFrame make sense?
Also, I noticed the old version of the package would not even run with fresh Julia installed on my machine, so thanks for fixing that :-)

So CSV.read is now provided the types, allowing a hard typing to Strings for each column instead of the InlineStrings.String31. More CSV's fault than DataFrames.
I still have yet to add unit tests and examples, but those will come over the week. The previous unit tests broke because decode outputs a NamedTuple, the values were similar but the order and names weren't.
I started modifying the code because I wanted the decode to output admin1 to be eventually translated into US states. I actually like decode's behavior now as it's very straightforward to understand.

Ok, I will merge this once you are done then. Thank you for working on this!

I reviewed the changes and have some comments in the files. Additionally, could you look into the following points?

the tests are now broken due to the use of custom types in the returned string, e.g., InlineStrings.String31. Is that an artifact of using DataFrames? A quick fix would be converting all returned values to regular Julia types, which may also be done inside the package. I am not sure about this; maybe it depends on how you use it.
Could you provide some small examples and test of filters in the tests?
Could you update the README with the new usage?

The errors in the tests got me thinking about the decode function. How do you use this package? Would adding a decode that takes and returns DataFrame make sense?
Also, I noticed the old version of the package would not even run with fresh Julia installed on my machine, so thanks for fixing that :-)

So CSV.read is now provided the types, allowing a hard typing to Strings for each column instead of the InlineStrings.String31. More CSV's fault than DataFrames.
I still have yet to add unit tests and examples, but those will come over the week. The previous unit tests broke because decode outputs a NamedTuple, the values were similar but the order and names weren't.
I started modifying the code because I wanted the decode to output admin1 to be eventually translated into US states. I actually like decode's behavior now as it's very straightforward to understand.

Ok, I will merge this once you are done then. Thank you for working on this!

Alright, README + additional unit tests are in! There's other bonuses as well:

Added a small improvement to the Geocoder.country_codes field where the key is a Symbol instead of String
The ismissing confusion you had before? We don't need it anymore.

Thank you, this looks great, I will merge this now!


Some comments

Need to post here because shadowban on /r/vpn.
Original post on reddit:
Hi,
some comments:
Are you aware of TLS fingerprinting? Does your application protect against this ? See https://www.net.in.tum.de/fileadmin/TUM/NET/NET-2020-04-1/NET-2020-04-1_04.pdf for some small overview or take a look at https://github.com/p4gefau1t/trojan-go which is tunnel application that should not be (TLS) fingerprintable.
Relevant library is: https://github.com/refraction-networking/utls
From your website:

to hide the true destination of the traffic, but since domain fronting relied on an undocumented feature of major CDNs, it no longer works.

Domain fronting still does work for Azure and Cloudfront to some extend. The provider will know about it though and the question is if it if will still work in the future. It should probably be not relied upon too much.

This is accomplished by responding as a proxy if and only if a valid key is provided and falling back to some default behaviour otherwise.

What is default behavior? I guess, ideally it should look like one commonly used server e.g. nginx

There is a option to disable TLS 1.3 as it could be blocked by some nation-state firewalls.

afaik (as the website states) only with esni. TLS 1.3 alone is not a problem.

The server will automatically provision a TLS certificate from LetsEncrypt and the client pins LetsEncrypt’s root by default.

A self signed cert should also be an option.

The delta I measured between providing a 32 byte key and not providing a key is 29ns (on an AMD Ryzen 3700X). Since network requests have a latency in the milliseconds, I assume this attack is practically infeasible.

For a single measurement. But what about lots of measurements? Also, is providing a key itself visible from other patterns like traffic size?

A simpler attack is to look at the static files that the HTTPS server responds with. If the user does not replace the default files with their own, an easy distinguishing attack is possible.

That's difficult. The attacker in theory should not be able to enumerate all files/urls because they are encrypted. Even if he accesses the domain himself he just sees the main website but does not automatically know what other content is there. Providing your own files might make you more fingerprintable. Instead you could just keep the default ones of nginx.

The cover protocol uses the standard library implementation of HTTPS which should be widely used by many different applications in various contexts.

Still the handshake might look different than a common app like chrome.

To handle these attacks, the protocol could use some kind of random padding, limit the size and frequency of round trips, or replace the static decoy handler with a custom one that has different traffic characteristics.

I think, if you tunnel normal web browsing traffic through a tunnel going to some domain it should not look different to the same traffic without a tunnel. As long as you don't do special stuff which a normal browser - website connection does not do. If you tunnel all of your traffic through it it might be more suspicious. If some residential ip connects to some foreign IP and to nowhere else and uses a lot of traffic it might stick out. If you tunnel you will have some overhead. But as long as the adversary does not know the exact endpoints/urls he would not know if the client accessed some legitimate url or tunneled its way to the next hop which then fetches the real content.

Currently the client waits a random interval between 0 and 100ms before polling the server for data. This choice was made to minimise latency but it is not typical of an ordinary website.

Then why do this? You linked a paper for traffic analysis, but don't really tell what was the reason for that specific choice.
Maybe you already know about it: https://github.com/net4people/bbs/issues

Hey, thanks for the questions.

Are you aware of TLS fingerprinting? Does your application protect against this ?

Yes, the implementation uses the system library defaults for TLS configuration, so it will likely be fingerprinted as a Go http server and client. You can verify this with nmap.

Relevant library is: https://github.com/refraction-networking/utls

I was not aware of this project, thanks.

What is default behavior? I guess, ideally it should look like one commonly used server e.g. nginx

Currently it serves a local folder of static assets. Feasibly the request handler could be swapped out for anything else.

A self signed cert should also be an option.

When raw TLS support is added, self-signed certificates will be supported. I did not see the value in adding them for a server that is pretending to be a normal HTTPS website. These do not commonly use self-signed certificates.

For a single measurement. But what about lots of measurements? Also, is providing a key itself visible from other patterns like traffic size?

This value is an average of millions of measurements. Since the amount of data that the client sends is not predictable, it should not be possible to verify that a small, 32 byte value was sent alongside it. However, I do plan on adding random padding to the data that should make it impossible.

That's difficult. The attacker in theory should not be able to enumerate all files/urls because they are encrypted. Even if he accesses the domain himself he just sees the main website but does not automatically know what other content is there. Providing your own files might make you more fingerprintable. Instead you could just keep the default ones of nginx.

You're right about there being some kind of resistance to this attack based on unknown files or services that cannot be enumerated. Perhaps the server can just respond with a 404 page or redirect users elsewhere in this case too. If I was to replace the files with Apache or nginx, I would have to make the entire server look like an Apache or nginx server, including in the TLS fingerprint. I don't know if this is worth it over the current Go fingerprint.

Still the handshake might look different than a common app like chrome.

 The behaviour will be unique and this is what I'm most concerned about. WebSocket support may mitigate this.

As long as you don't do special stuff which a normal browser - website connection does not do.

This is the problem. Normal browsers don't make very fast and frequent requests and they usually have requests that are way smaller than responses. WebSockets again would be a better way of blending in, perhaps.

If some residential ip connects to some foreign IP and to nowhere else and uses a lot of traffic it might stick out.

You are right, but there's no way around this without having a CDN or many unpredictable IPs.

Currently the client waits a random interval between 0 and 100ms before polling the server for data. This choice was made to minimise latency but it is not typical of an ordinary website.

Then why do this? You linked a paper for traffic analysis, but don't really tell what was the reason for that specific choice.

I mention in the same sentence why this choice was made: to minimise latency. I am still thinking about an alternative that will trade off latency for blending in more, that can be turned on if needed.

Quick response :)

I did not see the value in adding them for a server that is pretending to be a normal HTTPS website. These do not commonly use self-signed certificates.

I did try to research something like that a while ago. I could not really find any statistics for this specific part. While most of the traffic is encrypted nowadays the question is how many servers using https are actually out there and what kind of certs they use. You probably could figures this out by some scan of the ipv4 range. I would *believe" someone providing a service on port 443 would use a cert signed by some official CA. However, just because I believe it, it doesn't automatically make it right.

This value is an average of millions of measurements. Since the amount of data that the client sends is not predictable, it should not be possible to verify that a small, 32 byte value was sent alongside it. However, I do plan on adding random padding to the data that should make it impossible.

Ah ok, I thought it was just for a single measurement. I don't know if padding itself could be fingerprinted. In  theory TLS 1.3 supports padding but I am not aware of anything actually uses this or if some TLS libraries support this out of the box. I guess, unless being made mandatory, few would use it because it just creates bandwidth overhead. If only few use it and it is detectable itself you might again stick out of the crowd.

If I was to replace the files with Apache or nginx, I would have to make the entire server look like an Apache or nginx server, including in the TLS fingerprint. I don't know if this is worth it over the current Go fingerprint.

I think caddy server uses go and while usage is increasing, overall caddy is barely used compared to nginx or apache. I don't know how hard it is to fake the server fingerprint and if your fingerprint will look like the one from caddy. Maybe utls can be used for this too. GFW is definitely fingerprinting servers and kills the connection if it suspects someone is circumventing the firewall. You can bet other scanners on the internet are doing that too (maybe not for direct blocking yet, but at least for gathering intel)  See here for the gfw detection https://gfw.report/talks/imc20/en/
I think in the last link from my first post you also find some more resources. The utls people also have a publication on a non fingerprintable server and trojan-go tries also to prevent fingerprinting.

 The behaviour will be unique and this is what I'm most concerned about. WebSocket support may mitigate this.

But how does a Go client look like? Is there only one standard handshake? Will the JA3/TLS fingerprint of a recent chrome browser look like the one from your client?
Regarding websockets: What I have been wondered for a while, since the parrot is dead, why not use a browser itself as a proxy.
I don't have a clue if this will work and obviously it would be quite big in size, resource  usage ... . But would it be possible for other applications to make use of the websocket created by a browser? So you kind of tunnel traffic through the browser while having the same fingerprint as a browser.

This is the problem. Normal browsers don't make very fast and frequent requests and they usually have requests that are way smaller than responses.

But how is this relevant for normal web browsing through the tunnel? Traffic patterns/sizes/timings should look similar. You only get some overhead from the external TLS. No? If you do torrenting or other stuff it might look odd if this comes from a browser.

I mention in the same sentence why this choice was made: to minimise latency. I am still thinking about an alternative that will trade off latency for blending in more, that can be turned on if needed.

I think I have some kind of misunderstanding. Where does this latency come from? You delay traffic to the server, but normal browser don't delay? Why use additional latency at all?

I did try to research something like that a while ago. I could not really find any statistics for this specific part.

Well, since a self-signed certificate would be rejected by all modern browsers, I think it's a safe assumption.

In theory TLS 1.3 supports padding

We don't need protocol support, the plaintext payload itself could be padded and unpadded at the application layer.

I think caddy server uses go and while usage is increasing, overall caddy is barely used compared to nginx or apache.

True, but Apache and nginx aren't the only webservers in existence. It's not feasible for a censor to go around blocking everything except those.

But how does a Go client look like? Is there only one standard handshake?

Like a Go client. It probably changes as the standard library is updated but I expect it to be fingerprintable as a Go stdlib client.

why not use a browser itself as a proxy

That's a possibility. There are the downsides you mentioned but this would only affect the actual fingerprint of the client and not the timing and behaviour.

But how is this relevant for normal web browsing through the tunnel? Traffic patterns/sizes/timings should look similar. You only get some overhead from the external TLS. No? If you do torrenting or other stuff it might look odd if this comes from a browser.

Ideally we want all kinds of traffic to be "safe".

I think I have some kind of misunderstanding. Where does this latency come from? You delay traffic to the server, but normal browser don't delay? Why use additional latency at all?

HTTP is a request-response protocol. The server cannot push data to the client without the client asking for it. Therefore the client has to make periodic pings to check if there is data, as well as continuously pushing data to the server. If the delay between pings is too high, there will be a higher average delay for a round trip to a remote server.

Well, since a self-signed certificate would be rejected by all modern browsers, I think it's a safe assumption.

Depends. If the service is intended for the average internet user, yes. But servers provide support for multiple domains or just access by ip+https. In a corporate environment and also others where you don't deal directly with the average user selfsigned certs and custom root CAs are not uncommon. Not everyone trusts PKI (for good reasons). If you have the option to disable official root CAs and your software/servers/whatever will still work (with your own CA) then you should do that.
I'm not 100% sure on the background but:
nslookup google.com gives <IP_ADDRESS> in my case
"openssl s_client -connect <IP_ADDRESS>:443 -showcerts -servername google.com" gives a cert signed by GlobalSign and Google
However,
"openssl s_client -connect <IP_ADDRESS>:443 -showcerts" just gives a self-signed cert. I don't know for sure but I am certain google owns these servers and it is not someone else cert. Apparently google owned stuff seems to make use of self signed certs and this is  not the only ip/domain. Dunno why they do it though or I am overlooking something. I also don't know how common this is in general, you'd need to scan the internet yourself or ask Cisco and friends which probably already have this kind of data.

True, but Apache and nginx aren't the only webservers in existence. It's not feasible for a censor to go around blocking everything except those.

That's true but they have the biggest market share. According to some stats I found Caddy seems to be <1% of market share.
By using it you would stand out of the crowd and a censor like China could maybe live with censoring that 1% or at least taking a closer look/tracking its users. I'm not sure how trojan-go does it. If they use go for the server hello (and it looks like some innocent server) then you maybe could just use the same code. But they also use nginx as kind of backend which maybe does the handshake and would probably use openssl as library.

Ideally we want all kinds of traffic to be "safe".

That would be great but I guess also hard to accomplish. You would need to mimic all kinds of protocols. Webbrowsing and in particular stuff like netflix, youtube ... are the biggest chunks of internet traffic. You can blend in best by looking like those.

Therefore the client has to make periodic pings to check if there is data, as well as continuously pushing data to the server. If the delay between pings is too high, there will be a higher average delay for a round trip to a remote server.

I don't get that. Rosen is a tunnel for arbitrary traffic. Correct? Similar to a proxy, VPN, Tor ... Most (I think) do not have such kind of a mechanism. You don't need to check the server for data. The rosen server is not the real endpoint you want to connect to, just an intermediate hop. With a VPN, the client connects to the server, but the server just forwards the request to the endpoint and then forwards fetched data back to the client. No reason for polling the server for data, it does not store it itself (usually) There might be some rekeying and maybe keep alive packets but nothing for specifically asking the rosen-server for new data.

Depends. If the service is intended for the average internet user, yes.

Sure. This is what the server is trying to pretend to be.

stuff like netflix, youtube ... are the biggest chunks of internet traffic. You can blend in best by looking like those.

That's a good idea, though bandwidth in these applications is dominated by downloads.

I don't get that. Rosen is a tunnel for arbitrary traffic. Correct? Similar to a proxy, VPN, Tor ... Most (I think) do not have such kind of a mechanism. You don't need to check the server for data.

I'm not sure I understand you. The client and the server have to exchange data. When we're talking about HTTP, the server must wait for a client request in order to respond with data.

I'm not sure I understand you. The client and the server have to exchange data. When we're talking about HTTP, the server must wait for a client request in order to respond with data.

Correct me if I am wrong, but currently I see rosen working like this:
local client (like browser) --> local rosen client --> TLS connection --> remote rosen server --> internet (websites etc)
You said the client needs to ping the server regularly in order to check for new data. Client and server in this case referred to rosen client and rosen server, correct? The rosen server just relays traffic it does not store it himself. Like a normal VPN server or proxy it forwards requests to the internet.  When a request from the client arrives it will just forward it to the intended destination. The website then sends its content back through the rosen server to the client.  Of course you need to make a request/connection to the rosen server if you want some data. But why would the rosen client regularly poll/ping the rosen server for new data? How would that look like? You ping the rosen server from the rosen client and the server then sends back what?

local client (like browser) --> local rosen client --> TLS connection --> remote rosen server --> internet (websites etc)

The TLS connection is really a HTTP connection over TLS: HTTPS.
The client cannot know if the server has received incoming data from the Internet. It must perform a request to allow the server to respond with any waiting data.

You ping the rosen server from the rosen client and the server then sends back what?

Waiting data.

 The behaviour will be unique and this is what I'm most concerned about. WebSocket support may mitigate this.

gRPC or h2 duplex streams can provide the same natural behavior.
also, I noticed that you are sending the payload as JSON. why not application/octet-stream? I assume that way you can treat the payload as raw bytes and you don't have to encode/decode anything anymore.

 The behaviour will be unique and this is what I'm most concerned about. WebSocket support may mitigate this.

gRPC or h2 duplex streams can provide the same natural behavior.
also, I noticed that you are sending the payload as JSON. why not application/octet-stream? I assume that way you can treat the payload as raw bytes and you don't have to encode/decode anything anymore.

I noticed that you are sending the payload as JSON. why not application/octet-stream? I assume that way you can treat the payload as raw bytes and you don't have to encode/decode anything anymore.

JSON provides a convenient way of serialising and deserialising objects. Without it we'd have to implement some custom encoder that may end up being faster, but JSON seems quite fast already from my testing.

I noticed that you are sending the payload as JSON. why not application/octet-stream? I assume that way you can treat the payload as raw bytes and you don't have to encode/decode anything anymore.

JSON provides a convenient way of serialising and deserialising objects. Without it we'd have to implement some custom encoder that may end up being faster, but JSON seems quite fast already from my testing.

I noticed that you are sending the payload as JSON. why not application/octet-stream? I assume that way you can treat the payload as raw bytes and you don't have to encode/decode anything anymore.

Rosen now supports transmitting raw bytes in the tcp protocol that was just merged. This relies on the newly added tunnel module that also encrypts and authenticates traffic, so bits on the wire appear to be random. The tcp cover protocol has much better bandwidth and latency characteristics than https.
The goal is for all cover protocols to use a tunnel eventually.


Add cursor to the search input

Also add navigation related to the cursor
Pull Request
Title
Add a cursor to the search bar
Type of Change

[x] New feature
[ ] Bug fix
[ ] Documentation Update
[ ] Refactoring
[ ] Hotfix
[ ] Security patch
[x] UI/UX improvement

Description
Add a cursor to the search bar when in focus.
Also allow the user to move forward, backward and to insert and delete on position.
Testing
Manual testing
Impact
Improve usability for end user.
Additional Information
https://github.com/user-attachments/assets/f105df19-55fe-403b-a4ba-805f2ba75a55
Checklist

[x] My code adheres to the coding and style guidelines of the project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no errors/warnings/merge conflicts.

Strings are UTF-8 encoded, and thus characters can differ in the amount of length they take up in the string (string length is measured in bytes, not human readable characters). Try inputting one special character which takes up more than 1 byte, then another character of any type. The program will immediately panic. That, in addition to the fact that you're using these iterators to remove singular characters, shows that Vec<char> would be a much better choice.
Take a look at https://github.com/lj3954/linutil/tree/pr_176, I've added 2 commits that would probably be helpful.

Thanks for the fix!
Will happily wait for the merge of #177