EADDRNOTAVAIL

I'm trying your code to listen to events on a FS server on my network..
Code is on my PC...
If I try to connect from my PC via Putty to the FS server (<IP_ADDRESS> : 8021) I get:
Content-Type: auth/request
Which is fine..
from same PC, if I run nodejs project with :
server.listen(8021, '<IP_ADDRESS>');
I get :
Uncaught Error Error: listen EADDRNOTAVAIL: address not available <IP_ADDRESS>:8021
I checked firewall, etc .. but cant resolve ...

Hi @fdl333
You'll need to use the client mode if you want to connect to FreeSwitch the same way you do with Putty.
Server is refusing to start because FreeSwitch is already using the port :)

AH, ok ... but I dont understand: What I'm trying to do is write a node project that publishes freeswitch events to an MQTT broker... From what I see the client sends commands, but doesnt receive events ...
I suppose I'm confused between the use to client and server mode ...

In that case your best bet is to use reconnect() to start the connection as a long-term client, and send an event_json() command to FreeSwitch to have it route events through your application (for example event_json("ALL") would send you all events, but you probably shouldn't do that).
Note that mod_mosquitto can also be used to forward events to MQTT if the only thing you want to do is forward the events. (Look for PUBLISH an event to a topic on that page.)

Thank you so much .. yes I already use the mod_mosquitto, but it has to be a two-way connection: I want to publish all (or selected) events to mtqq and also subscribe in order to receive commands to send to freeswitch..
I'm not sure what you mean  by the reconnect() ... I dont see it as an available function in
va cli = esl.client()
cli.reconnect .... does not exist
by the way, where in the world are you? I'm in Italy!


Nothing appears on my hydra and nothing works.

Describe the bug
The games don't appear on my hydra, nothing appears in the catalog and I can't add download sources
Steps to Reproduce

open the hydra

Expected behavior
open and show the games and add the sources
Additional information and data

Operating System
Windows 10
Hydra Version
v2.1.7 ''Levicticus''
Before opening this Issue

[X] I have searched the issues of this repository and believe that this is not a duplicate.
[X] I am aware that Hydra team does not offer any support or help regarding the downloaded games.

I will ask you to follow a few steps:

Close Hydra completely
Open %appdata% and delete hydra and hydralauncher folders
Open Hydra again


Generate Service catalog metadata for APIs and Proxy services

Description:
In the Integration Studio, a metadata file will be created when an API or proxy service is created which is used to deploy the API or Proxy service to APIM Service catalog. Instead of creating the metadata file through VSCode plugin it was decided to generate it when creating the CAR file. To cater this requirement we need to do the following improvements,

[ ] #333
[ ] Currently, VSCode create the swagger file only if the user use the swagger view. But since we need the swagger for the service catalog functionality, we need to create the swagger file upon API creation.

After adding the feature to VS Code plugin add the relevant docs as mentioned in https://github.com/wso2/docs-mi/issues/515


Possible bug: restart keeps getting interrupted

As above... tried running with both 'stronghold' and 'sudo stronghold' and both have this problem. See what I'm getting below:
###########################
# FINAL CONFIGURATION STEPS
###########################

 -> Restart your Mac right now?
[?] This is necessary for some configuration changes to take effect.:  Yes
 >  Yes
    No

Configuration complete after restart!

Restarting in 5 seconds...
4...
3...
2...
1...
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...
WARNING: Configuration not complete! A full restart is necessary.

Filing this as a bug.
Will look into this soon.

Top man thanks for the update and thanks for the great work.

My pleasure!
How would you like to see this bug dealt with, assuming that I can't work out the sudo issue? I've poured way too many hours into this and (for the moment) am leaning towards the fix I suggested above.
Would that be an acceptable/desired fix, in your opinion?
@VanGTO

Just pushed a fix for this to master. Will go in the next Pypi release once I have time to work out the bug in #42.


Added integration test for telemetry Plugin

Description
[Describe what this change achieves]
Added an integration test to check if the cluster comes up healthy with both the telemetry and security plugin installed.
Issues Resolved
#3961
Is this a backport? If so, please add backport PR # and/or commits #
Testing
Both plugins were loaded into the local cluster and test succeeded
2024-01-30 17:17:25 SUITE-TelemetryPluginIntegrationTests-seed#[E0B6B58EF43BC0AC] INFO  PluginsService:233 - loaded plugin [org.opensearch.security.OpenSearchSecurityPlugin]
2024-01-30 17:17:25 SUITE-TelemetryPluginIntegrationTests-seed#[E0B6B58EF43BC0AC] INFO  PluginsService:233 - loaded plugin [org.opensearch.telemetry.OTelTelemetryPlugin]

Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hi @atharvasharma61, are there still plans to try to move forward with this change or is the Telemetry plugin heading in a different direction for testing with security?

@Gaganjuneja to take the call.

One thing needs to be clarified here is that there is no dependency between telemetry and security plugins. Telemetry plugin is an implementation of telemetry lib in the core. So once the telemetry feature is enabled through plugin we are instrumenting the network layer which creates some wrapper objects. So the ask here is to bring up the OpenSearch cluster with security plugin installed and telemetry feature enabled.
If we have a mechanism to enable the security plugin in the OpenSearch integ testcases then it can easily be tested there.

Thanks for following up @Gaganjuneja

Could you please run ./gradlew spotlessApply to fix hygiene check failures.
Could you add your comment on this thread: Added integration test for telemetry Plugin #4003 (comment)

Thanks, I will update on this.

If we are ok having it as a testImplementation dependency. We can cleanup this PR and bring it to the ready state for merge.

@reta, What do you suggest, should we hold on this till https://github.com/opensearch-project/security/issues/4010 or we can go ahead with adding the plugin dependency testImplementation?

@reta Did you have an update from conversations with the build team?

@reta Did you have an update from conversations with the build team?

Yes, I did actually! The good news - we could leverage the existing integTest scripts to run post distribution smoke tests,  I am learning the way it works now to open up the detailed issue against opensearch-build repo, just need a bit more time, thanks @peternied

This repository is not the best place to include these test cases, please work with the opensearch-build's test workflow [1] to create and onboard a telemetry plugin test suite.  Closing out this pull request.

[1] https://github.com/opensearch-project/opensearch-build/tree/main/src/test_workflow


danger-swift: TypeError: Cannot read property 'full_name' of null

Summary
While trying to set up danger-swift I ran
DEBUG="*" danger-swift pr https://github.com/danger/swift/pull/95

Which gave the following error
Error:  TypeError: Cannot read property 'full_name' of null
    at Object.utils [as default] (/snapshot/danger-js/distribution/platforms/github/GitHubUtils.js:66:77)
    at Object.exports.githubJSONToGitHubDSL (/snapshot/danger-js/distribution/platforms/GitHub.js:127:69)
    at Object.<anonymous> (/snapshot/danger-js/distribution/runner/jsonToDSL.js:76:49)
    at step (/snapshot/danger-js/distribution/runner/jsonToDSL.js:32:23)
    at Object.f [as next] (/snapshot/danger-js/distribution/runner/jsonToDSL.js:13:53)
    at __awaiter (/snapshot/danger-js/distribution/runner/jsonToDSL.js:7:71)
    at new Promise (<anonymous>)
    at __awaiter (/snapshot/danger-js/distribution/runner/jsonToDSL.js:3:12)
    at Object.exports.jsonToDSL (/snapshot/danger-js/distribution/runner/jsonToDSL.js:67:53)
    at Object.<anonymous> (/snapshot/danger-js/distribution/commands/utils/runDangerSubprocess.js:159:54)

Setup
brew install danger/tap/danger-swift

Dangerfile.swift
import Danger
let danger = Danger()

let editedFiles = danger.git.modifiedFiles + danger.git.createdFiles
message("These files have changed: \(editedFiles.joined())")

Full Debug Output
 $ DEBUG="*" danger-swift pr https://github.com/danger/swift/pull/95
Launching Danger Swift pr (v2.0.6)
Finding out where the danger executable is
Running: /usr/local/bin/danger pr --process danger-swift --passURLForDSL https://github.com/danger/swift/pull/95
Starting Danger PR on danger/swift#95
You don't have a DANGER_GITHUB_API_TOKEN set up, this is optional, but TBH, you want to do this
Check out: http://danger.systems/js/guides/the_dangerfile.html#working-on-your-dangerfile
  danger:GitHub::Checks Not using the checks API for GitHub +0ms
  danger:pr running process separated Danger +0ms
  danger:process_runner Debug mode on for Danger v9.1.5 +0ms
  danger:process_runner Starting sub-process run +0ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/pulls/95 { 'Content-Type': 'application/json',
  Accept: 'application/vnd.github.v3.diff' } +0ms
  danger:GitHubAPI getPullRequestCommits:: Sending pull request commit request for first page +598ms
  danger:GitHubAPI getPullRequestCommits:: Request url generated "repos/danger/swift/pulls/95/commits" +0ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/pulls/95/commits { 'Content-Type': 'application/json' } +0ms
  danger:GitHubAPI getNextPageFromLinkHeader:: Given response does not contain link header for pagination +402ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/pulls/95 { 'Content-Type': 'application/json' } +14ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/issues/95 { 'Content-Type': 'application/json' } +357ms
  danger:GitHubAPI getPullRequestCommits:: Sending pull request commit request for first page +352ms
  danger:GitHubAPI getPullRequestCommits:: Request url generated "repos/danger/swift/pulls/95/commits" +0ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/pulls/95/commits { 'Content-Type': 'application/json' } +0ms
  danger:GitHubAPI getNextPageFromLinkHeader:: Given response does not contain link header for pagination +790ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/pulls/95/reviews { 'Content-Type': 'application/json',
  Accept: 'application/vnd.github.v3+json' } +0ms
  danger:GitHubAPI Sending:  https://api.github.com/repos/danger/swift/pulls/95/requested_reviewers { 'Content-Type': 'application/json',
  Accept: 'application/vnd.github.v3+json' } +396ms
  danger:process_runner { dangerJSONDSL:
  danger:process_runner    { git:
  danger:process_runner       { modified_files: [Array],
  danger:process_runner         created_files: [Array],
  danger:process_runner         deleted_files: [],
  danger:process_runner         commits: [Array] },
  danger:process_runner      github:
  danger:process_runner       { issue: [Object],
  danger:process_runner         pr: [Object],
  danger:process_runner         commits: [Array],
  danger:process_runner         reviews: [Array],
  danger:process_runner         requested_reviewers: [Object],
  danger:process_runner         thisPR: [Object] },
  danger:process_runner      settings: { github: [Object], cliArgs: [Object] } } } +3s
  danger:process_runner Preparing to run: danger-swift +1ms
  danger:runDangerSubprocess Running sub-process: danger-swift -  +0ms
  danger:runDangerSubprocess Started passing in STDIN via the URL: danger://dsl//var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-dsl.json +7ms
  danger:runDangerSubprocess Passed DSL in via STDIN +0ms
Ran with: /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/_tmp_dangerfile.swift /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-dsl.json /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-response.json
Decoding the DSL into Swift types
ERROR: Failed to parse JSON: valueNotFound(Swift.KeyedDecodingContainer<Danger.GitHub.Repo.CodingKeys>, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "danger", intValue: nil), CodingKeys(stringValue: "github", intValue: nil), CodingKeys(stringValue: "pr", intValue: nil), CodingKeys(stringValue: "head", intValue: nil), CodingKeys(stringValue: "repo", intValue: nil)], debugDescription: "Cannot get keyed decoding container -- found null value instead.", underlyingError: nil))

Got URL for JSON: /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-dsl.json
Created a temporary file for the Dangerfile DSL at: /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-dsl.json
Running Dangerfile at: Dangerfile.swift
Preparing to compile
Running: /usr/bin/swiftc --driver-mode=swift -L /usr/local/lib/danger -I /usr/local/lib/danger -lDanger /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/_tmp_dangerfile.swift /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-dsl.json /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-response.json
Completed evaluation
ERROR: Dangerfile eval failed at Dangerfile.swift
ERROR: Could not get the results JSON file at /var/folders/tw/mbrpz7ds19v8xy5qhqy27zzm0000gq/T/danger-response.json

  danger:runDangerSubprocess child process exited with code 1 +485ms
  danger:runDangerSubprocess Handling fail from subprocess +0ms
  danger:jsonToDSL Creating pr DSL from JSON +0ms
Error:  TypeError: Cannot read property 'full_name' of null
    at Object.utils [as default] (/snapshot/danger-js/distribution/platforms/github/GitHubUtils.js:66:77)
    at Object.exports.githubJSONToGitHubDSL (/snapshot/danger-js/distribution/platforms/GitHub.js:127:69)
    at Object.<anonymous> (/snapshot/danger-js/distribution/runner/jsonToDSL.js:76:49)
    at step (/snapshot/danger-js/distribution/runner/jsonToDSL.js:32:23)
    at Object.f [as next] (/snapshot/danger-js/distribution/runner/jsonToDSL.js:13:53)
    at __awaiter (/snapshot/danger-js/distribution/runner/jsonToDSL.js:7:71)
    at new Promise (<anonymous>)
    at __awaiter (/snapshot/danger-js/distribution/runner/jsonToDSL.js:3:12)
    at Object.exports.jsonToDSL (/snapshot/danger-js/distribution/runner/jsonToDSL.js:67:53)
    at Object.<anonymous> (/snapshot/danger-js/distribution/commands/utils/runDangerSubprocess.js:159:54)

This one is quite interesting, I think is more a danger-js bug, but the repo for that PR is nil
"repo": null

repo can be null!?

It shouldn't, but if you run danger pr https://github.com/danger/swift/pull/95 --json you get it, also, another interesting thing:
the repo inside PR is nil, but not the one inside base 🤔

Legit - probably a deleted repo

My gut says Danger JS should bail

So I used that PR (https://github.com/danger/swift/pull/95) since that was the once mentioned in the getting started guide.  It was a merged PR so I thought it might be weird but that maybe it could still work.
I tried danger-swift pr https://github.com/danger/swift/pull/275 which is a currently open PR and it seems to work as expected.
Apologies for the confusion.

Totally fine, I'm moving this over to the danger-js repo because we should at least have it error out at that level with a good message. Danger's normally built for active PRs, but danger pr is super useful for working against older PRs. If the PR is totally outside of the normal experience then it's not worth adding nullability for.


Qemu Windows 10 Host BlueScreen by Memory Management

Describe the Bug

Summary:
Host Environment

HAXM version: 7.7.1

Host OS version: Windows 10 Pro version 1809, 19042.1288, 20H2

Host OS architecture: x86_64

Host CPU model: Intel Core i7-8550H

Host RAM size: 64

(Optional) Host computer model: Dell prescicion 5530

Guest Environment

Android Emulator or QEMU version: QEMU emulator version 7.0.0 (v7.0.0-11902-g1d935f4a02-dirty)

Guest OS version: Ubuntu 20.4 TLS Server Edition

Guest OS architecture: x86_64.

To Reproduce

Steps to reproduce the behavior:

after shutting down qemu VM box and open some system programs on Host System, getting Bluescreen
with following issue - Memory Manangement or shutting down you Host system, getting bluescreen.
Only after stoppingh using qemu vm reboot system.
Starting Qemu vm in the background, do some Windows Host operations, like IE Surfing, or check System requierements

Expected Behavior

Expectation: Fixing Memory Management issue by windows
Reproducibility

Issue can be 100% reproduced
Diagnostic Information

Host crash dump:

HAXM log:

Android Emulator or QEMU log:

Screenshots:
Additional context

None

Attach a crash dump. If your windows host does not generate crash dumps, enable this option, reproduce the crash and attach it.


Encode signing output correctly

Description
Fix encoding in signing output.
Testing instructions
Run swift tests in XCode
Types of changes

Bug fix (non-breaking change which fixes an issue)

Checklist

[ X ] Prefix PR title with [WIP] if necessary.
[ X ] Add tests to cover changes as needed.
[ X ] Update documentation as needed.

I did go through Tezos OperationList, Signer and Transaction class.
It looks we convert from binary data (bytes) to hex string back and fourth a few times.
It should be more efficient to just return bytes in all forge functions
@keefertaylor and I think that's what @alejandro-isaza meant

I'm seeing a lot of changes that are already on master, can you please rebase.


npm ERR! missing script: virot

Hey, this looks cool!
I am getting an error after following README:
npm ERR! missing script: virot

@pabshazon
Thanks contact.
Sorry,.
There was an error in README.md.
I think you can run it by the following method.
npx virot ./src/main.tsx


CRYPTOCURRENCY FRAUD RECOVERY HACKER FOR HIRE> LEE ULTIMATE HACKER

Contact info:
LEEULTIMATEHACKER@ AOL. COM
Support @ leeultimatehacker .com
telegram:LEEULTIMATE
wh@tsapp +1  (715) 314  -  9248
https://leeultimatehacker.com
In the bustling metropolis of New York, amid the endless rush and ceaseless motion, lies a tale of resilience and redemption. I am Miss Jason Tootle, a 50-year-old medical-surgical nurse hailing from London, United Kingdom, now residing in the heart of New York City with my two beloved children. Our journey took an unexpected turn when we fell victim to a nefarious cryptocurrency investment fraud, a sinister scheme that stripped us of $117,000 in both USD and Bitcoins, leaving us in a state of profound despair and financial turmoil. However, amidst the darkness, a glimmer of hope emerged in the form of Lee Ultimate Hacker, a beacon of light in our darkest hour. Lee Ultimate Hacker is not just an organization but a lifeline for those ensnared in the treacherous web of cryptocurrency scams. With their unparalleled expertise in cybersecurity and unwavering commitment to justice, they embarked on a mission to reclaim what was rightfully ours. From the moment we reached out to Lee Ultimate Hacker, we were met with compassion, and a steadfast determination to right the wrongs perpetrated against us. Their team of experts worked tirelessly, leveraging their extensive knowledge of digital forensics and cutting-edge technology to trace the elusive trail of our stolen funds. What truly sets Lee Ultimate Hacker apart is its technical prowess and unwavering dedication to its clients’ well-being. Throughout the recovery process, they provided us with regular updates, guiding us with patience and empathy through the complexities of cryptocurrency retrieval. They understood not only the financial ramifications of our loss but also the emotional toll it had taken on our family. In a testament to their integrity and commitment to justice, Lee Ultimate Hacker recovered all of our lost funds and ensured that those responsible for perpetrating the fraudulent scheme were held accountable. They meticulously gathered evidence and collaborated with the appropriate authorities, ensuring that justice was served and preventing others from falling victim to similar scams in the future. The impact of Lee Ultimate Hacker’s intervention extends far beyond the realm of financial restitution; it restored our faith in humanity and reaffirmed that, even in the face of adversity, some will stand by your side and fight for what is right. They didn’t just recover our cryptocurrency; they restored our hope for a brighter tomorrow. To anyone who finds themselves entangled in the complex world of cryptocurrency fraud, I wholeheartedly recommend Lee Ultimate Hacker. Their unwavering dedication, unparalleled expertise, and genuine compassion make them a beacon of hope for those in need. Trust in Lee Ultimate Hacker, and let them guide you on the path to redemption. In a world fraught with uncertainty, they are the steadfast ally you need by your side.

Beware of online scammers lurking behind fake websites, ready to pounce on unsuspecting victims. My name is Hack Buster Recovery, and I learned this harsh lesson when my cryptocurrency wallet fell prey to hackers. It was a gut-wrenching blow, especially considering the wallet contained a substantial sum — a whopping $250,000 worth of Bitcoin assets. Feeling utterly helpless and desperate, I knew I needed expert assistance to reclaim what was rightfully mine.That's when I turned to Hack Buster Recovery, a service recommended by fellow members of a Facebook forum I joined for cryptocurrency traders. From the moment I reached out to them, their team exuded professionalism and expertise. They immediately grasped the gravity of my situation and reassured me that they possessed the skills to assist.With unwavering determination, Hack Buster Recovery's experts embarked on a meticulous investigation into the hack. They navigated through the labyrinth of digital footprints left by the cybercriminals, undeterred by the complex layers of encryption shielding my stolen assets.Their perseverance paid off handsomely. In what felt like a blink of an eye, they successfully recovered my entire wallet, with every precious Bitcoin intact. The flood of relief and gratitude that washed over me was immeasurable. Not only did they restore my financial stability, but they also imparted invaluable advice on fortifying the security of my digital assets to thwart future breaches.But Hack Buster Recovery's support extended far beyond mere financial recovery. They understood the emotional toll of such a violation and provided compassionate assistance every step of the way. Their blend of professionalism, expertise, and empathy truly sets them apart as industry leaders in the realm of digital recovery.I wholeheartedly recommend Hack Buster Recovery to anyone facing a similar nightmare. Their unwavering dedication and proven track record make them invaluable allies in the fight against online fraud and cybercrime. Thanks to their expertise, I emerged from this ordeal stronger and more resilient than ever. Thank you, Hack Buster Recovery, for restoring my faith in online security and helping me reclaim what was rightfully mine.
EMAIL: hackbusterrecovery(@)webname. com
WHATSAPP: +1<PHONE_NUMBER>
WEBSITE: hackbursterrecovery.pro/index. html

If the process is too good to be true, it’s probably a phoney crypto recovery expert. I have been scammed by so many recovery companies, and I can tell, it’s almost not possible to recover stolen or crypto sent to the wrong address. It’s rare to find a legit recovery company without getting scammed believe it or not. I’m saying from experience and i can<EMAIL_ADDRESS>reliable, not 100% but will never leave you stranded.


Enhancement: Expose proxy to server ctx to access client address

Our project needs to know the client address (the outbound address) when bytesSentToServer. In this PR, I am exposing the ChannelHandlerContext so that we can get the client information

asolntsev Can you please review?

Thank you, can you please tell me when version 2.3.2 is going to be released so that we can plan adopting it?

Sure, can release today.

@teodorakostova LittleProxy 2.3.2 has been released, please try.
https://github.com/LittleProxy/LittleProxy/releases/tag/v2.3.2


Identify mass action rate laws in reactions with reactant stoichiometry of 2 or higher in models with stochastic description

What we currently do to identify mass action kinetics is that we divide the kinetic law by the product of the reactants to the power of their stoichiometries. And if all that is left is an expression of parameters and Real numbers, we say it is a mass action rate law. For mass action rate laws we use_only_rate=false.
But for a stochastic rate law in the form of k*P*(P-1)/2! we would not detect that it is mass action and use_only_rate=true. @isaacsas pointed out that

combinatoric_ratelaws doesn't matter in that case, as it is ignored with only_use_rate=true. Unfortunately, it would also be less performant if the user was trying to simulate a jump model since it means using ConstantRateJumps instead of MassActionJumps to represent the reaction for DiffEqJump.

and suggested to

trying to divide by the stochastic rate law term if dividing by the ODE rate law doesn't give a species-independent expression, and only if both those fail going with only_use_rate=true.

Relevant sections from the SBML specs:

One of the purposes of SBO annotations (Section 5 on p. 91) is to enable such interpretation without the need for deduction. However, the interpretation of the model is essentially the same irrespective of whether the model is to be simulated in a deterministic or stochastic manner

Taking the first reaction as an example, the rate law is c1P(P − 1)/2 reaction events per second. In the continuous deterministic case, the interpretation of this is that the extent of the reaction in time dt is [c1P(P − 1)/2]dt (and this leads naturally to the usual ODE formulation of the model). In the stochastic case, the interpretation is that the propensity (or rate, or hazard) of the reaction is c1P(P − 1)/2.


Globals "page" and "browser" are both undefined when using Jest 21

I just tried adding jest-puppeteer to an existing project and I was getting page is undefined when running my tests, even though the preset: 'jest-puppeteer' was set and Jest was launching without any errors.
After a while I tried upgrading Jest from 21 to 22, and it solved the problem. So it seems jest-puppeteer peer-depends on jest >= 22. If so, it would be good to mention this in the readme and/or officially add it to peerDependencies.
Thanks for making this great project btw!

Thanks for spotting it, I prefer to not add Jest in peer dependencies. Jest 22 has been released 5 months ago. I think we don't have to mention it. Your issue will be the answer.

I'm not sure if 5 months is a long time at all. I'm sure a lot of slow-moving corporate codebases are still on Jest 21 or older. Would it be a problem to add the words "Requires Jest 22 or higher" in the readme (maybe in the same blockquote that recommends additional typescript-related packages)? That would have saved me a few hours yesterday.

You are right, done!

@callumlocke Can you please share the configuration that you made to work jest with puppetter ?

I've setup my environment according to the documentation available here: https://jestjs.io/docs/en/puppeteer but faced the problem.
After trying some things I discovered that actually, nowadays, the right way to setup is to use jest-environment-puppeteer as described here:
https://github.com/smooth-code/jest-puppeteer/tree/master/packages/jest-environment-puppeteer
and created a PR https://github.com/facebook/jest/pull/8882

For me, standard jest-puppeteer is working fine.
In case, when somebody still have this issue, here is a general advice.
Verify, whether a configuration file jest.config.js (or whatever name) is actually get's executed. Just make intentionaly some syntax error in this file and take look at the console output, when staring jest.
So, if everything looks, like config file is not get's executed, check, whether it's name is passed in starting command, like this:
jest integration --config=jest.config.js

I fixed that by reading again the DOC

NOTE: Be sure to remove any existing testEnvironment option from your Jest configuration. The jest-puppeteer preset needs to manage that option itself.


[gitlab][gopkg] fix gopkg lock generation + android build

What does this PR do?
Because we’re having to resort to: DEPPROJECTROOT="/src/github.com/DataDog/datadog-agent" in the containers for dep to work properly due to the weird GOPATH, the github.com/DataDog/datadog-agent pkg is getting vendored too, which is weird. This doesn't appear to happen when you locally inv deps (and DEPPROJECTROOT is not set).
We maybe should update the GOPATH stuff in the builders, to avoid having it in /, but until then this manual cleanup allows for a successful build.
Motivation

Undefined builds (using vendored datadog-agent pkg 🙈)
Broken android gitlab build.

Gitlab is 💚 - merging!


feat(step-ui-plugin): disable step buttons during execution

As of 75896a966673f5928521910f96deeef45d1ba58f, a user may click on a step button while a protocol is executing.  However, it is not clear what the behaviour should be when one does so.
Proposed fix
Disable step buttons during execution to avoid any confusion.

38dea97f7142f7d84db2875e48ba55f85340308b


cant vagrant up a4

repo is on master branch
DCOS1.7
dcos-vagrant box 0.6.3
MacBookPro 15inch with 16GB memory
OSX 10.11.5
vagrant 1.8.1
virtualbox 5.0.20
m1 a1 p1 boot is ok
then vagrant up a2 a3 a4
a2 a3 is ok, but a4 failed.
Same error multiple times.
console output:
......
==> a4: Checking Docker is configured with a production storage driver:
==> a4: WARNING: bridge-nf-call-iptables is disabled
==> a4: WARNING: bridge-nf-call-ip6tables is disabled
==> a4: PASS (overlay)
==> a4: Creating directories under /etc/mesosphere
==> a4: Creating role file for slave
==> a4: Configuring DC/OS
==> a4: Setting and starting DC/OS
==> a4: Created symlink from /etc/systemd/system/multi-user.target.wants/dcos-setup.service to /etc/systemd/system/dcos-setup.service.
==> a4: >>> Executing DC/OS Postflight
==> a4: /tmp/vagrant-shell: line 18: DCOS_TASK_MEMORY: unbound variable
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

at https://github.com/dcos/dcos-vagrant/blob/master/VagrantConfig.yaml.example : 38
missing line
memory-reserved: 512

good catch. it should still work, but it seems the if statement here isn't doing what I expect:
https://github.com/dcos/dcos-vagrant/blob/master/Vagrantfile#L85

Ah, never mind. That ruby is correct. The problem is in bash. There's an if statement for DCOS_TASK_MEMORY but it fails due to nounset.
https://github.com/dcos/dcos-vagrant/blob/master/provision/bin/type-agent-private.sh#L18

And of course, this code is only triggered when you add nodes to an existing cluster and you only get to a4 if you have a lot of ram available on your host!
Fixed: https://github.com/dcos/dcos-vagrant/commit/f15ec906ecf7fa7b03fe00aabed1616fb608107e

Thank you for the details! This project is very helpful.


Proposal: Improve SignInAsync

Is your feature request related to a problem? Please describe.
Currently IdentityServer4 requires applications use AuthenticationManagerExtensions::SignInAsync in order to complete the user authentication process when using grants and flows that use a browser-based login form presented using ASP.NET Core MVC.
This is a problem because ASP.NET Core comes with its own methods also named SignInAsync and to a software developer new to IdentityServer (e.g. myself, 3 months ago) it's unclear that the IdentityServer extension methods must be called instead of ASP.NET Core's own built-in methods. This is further confounded by the fact that IdentityServer4's extension methods are declared in the Microsoft.AspNetCore.Http namespace (something I personally disagree with, but nvm) - as visible in this file: https://github.com/IdentityServer/IdentityServer4/blob/e14a1e9b2dfd4173bedb3e570ac5c888927ccb22/src/Extensions/HttpContextAuthenticationExtensions.cs
This also introduces a possible future bug because C#s extension methods are always ranked lower in method overload selection compared to actual type members - so if a future ASP.NET Core update introduces SignInAsync methods with matching method signature types it would break IdentityServer4-based projects.
A second, albeit minor, problem exists with the String name parameter of IdentityServer4's SignInAsync method. The method's XML documentation does not make it clear what String name is supposed to refer to: a user's globally-distinct "user name" (login name) claim or their non-distinct "display name" claim - or something else. After some research i saw that IdentityServer4's SignInAsync method actually copies String name into IdentityServerUser.DisplayName, so given that I would expect the method parameter name to be String displayName instead. Ideally, source code should abstain from ambiguous public member and parameter names, especially names like Name without explicit further context.
Describe the solution you'd like

Rename all of IdentityServer4's SignInAsync extension methods to something that makes it explicitly clear it's calling into IdentityServer, e.g. IdentityServerSignInAsync or SignInToIdentityServerAsync

And also move the AuthenticationManagerExtensions class back into an IdentityServer-owned namespace. I'm of the opinion that extension methods must always be opt-in, and that shared libraries should not declare types in namespaces they don't own (like Microsoft.AspNetCore.Http) - by using common non-owned namespaces it makes it impossible to opt-out of using certain extension methods.

Rename the String name parameter of SignInAsync to String displayName to make it clear which JWT Claim the parameter argument value is being assigned to.

Audit the project's codebase to rectify the use of any semantically ambiguous identifiers like "name".

Improve the project's documentation to make it clear the relationship between login-names, user-names, display-names, and JWT Claims like name, preferred_username, sub, given_name, etc.

Describe alternatives you've considered

Not applicable - or maybe IdentityServer could add an MSBuild task to verify that IdentityServer's own SignInAsync is called at least once instead of ASP.NET Core's method.

Additional context

Not applicable.

Thanks - there are some valid points. We will discuss.

"IdentityServer extension methods must be called instead of ASP.NET Core's own built-in methods" Is this true? I have been using the Microsoft.AspNetCore.Authentication extension methods and it seems to be working.
        var scheme = await _authenticationSchemeProvider.GetDefaultAuthenticateSchemeAsync();
        await _httpContextAccessor.HttpContext.SignInAsync(scheme.Name, principal);

I switched over to using the IdSrv extension method and don't notice any difference but I am very new to this. I agree with the suggestions, I am just trying to understand if I am doing something wrong.

@jamieide I think it's because you're explicitly providing the correct scheme name (GetDefaultAuthenticateSchemeAsync) - whereas in my project my default authentication scheme was not the same scheme as IdentityServer scheme name.

I just encountered this as well. What could also be an idea, is to provide a signinmanager. Just like asnet identity does. Or simply creating a derived class, as only idp, sub and auth_mr claims are added on the principal. That's what I did in the end. I added identitycore, and added a custom signinmanager, adding idp and auth_mr claims. As sub claim is already added. Just my 2c a slightly different angle.

done


tag 'dataencryption' not found in include file: /home/travis/build/jitwei98/main/docs/UserGuide.adoc

We should remove this because we're not planning to implement data encryption


Decreasing month energy value

Hi, my Tapo p110 month energy entity is decreasing - always at the midnight jumps down (see the image below).

Version of the custom_component
v1.2.10
Debug log
No logs found about this integration.

Hi,
I looked at the source code a bit and I think I know the reason for the problem. Tapo p110 month energy entity using today_energy property of plugp100 package. And this package returns this value for the sum of energy for the last 30 days, not for the current month (starting from the first day of the current month), so that explains this decrease (e.g.: when I consume less energy for the last days). And Home assistant Energy dashboard can not work correctly with such entity. We can fix it by using data for the current month (starting from the first day of the current month) - I will try to send pull request to both plugp100 and this repository.

Hi, many thanks for your contribution. I will start the release process for plugp100 and for this integration


Fix for provisioned shoot DNS

Description
The value domains.include in DNS config should contain only one value with the full shoot domain name
Related issue(s)

/test pre-control-plane-components-provisioner


Request: Add the ability to export our Quest Facts.

Pretty much says it all in the title. It would be immensely helpful if we could export our entire Quest Facts list to a .csv file. This would expediate comparing the Quest Facts of different save files.

This feature has been added to release v0.02a

This feature has been added to release v0.02a


Fix for algo-executor not passing node specific datasets

Changelog:

Fix for algorithm executor not passing node specific datasets in create_data_model_view. Jira
Single node execution test changed to work without the node_registry.
(Important) Fix for monetdb transactions remaining open and causing IntegrityError.
Updated MonetDB version to latest released.
Small fixes on tests and fixtures.

Some tests were not cleaning up the dbs they were using.
mipdb init/load-data fixture fixes: a) If an error occurs it's thrown, not silently ignored, b) If the db is already inited or loaded the fixture is skipped.

@apmariglis Some additional fixes were made in this PR due to important bugs found while improving the standalone tests and their fixtures.


maintainers/scripts/update.nix for packages does not work

Issue description
$ nix-shell maintainers/scripts/update.nix --argstr package firefox-devedition-bin --show-trace
error: while evaluating the attribute ‘shellHook’ of the derivation ‘nixpkgs-update-script’ at /media/OldRoot/home/jtojnar/projects/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:85:11:
while evaluating anonymous function at /media/OldRoot/home/jtojnar/projects/nixpkgs/maintainers/scripts/update.nix:116:50, called from undefined position:
while evaluating ‘packageByName’ at /media/OldRoot/home/jtojnar/projects/nixpkgs/maintainers/scripts/update.nix:50:19, called from /media/OldRoot/home/jtojnar/projects/nixpkgs/maintainers/scripts/update.nix:63:10:
Package with an attribute name `firefox-devedition-bin` does have an `passthru.updateScript` defined.

When trying to update packages by maintainer’s name, it fails for a different reason: #28876
Technical details

System: NixOS 18.03.git.7913ba8
Nix version: 1.11.14
Nixpkgs version: 86e6e8016d0f9280167745c19d394311be0f9002
Sandboxing enabled: yes

Okay, the problem was that the package with updateScript is firefox-devedition-bin-unwrapped, not firefox-devedition-bin. It was confusing because the error message was saying “does have” instead of “does not have”; I fixed that in 9b94dd099913ff0b881a9b7c2f17d0956222cf35.


Python support seems broken in 0.9.2

Tested in Max 2015. The maxscript listener is blocked when evaluating a python file in sublime. Pressing escape in the listener brings it back. Maybe related to the carriage return added some time ago.

Fixed with: https://github.com/cb109/sublime3dsmax/commit/9b79598ed1322994db2581cbb9d38c7f6c21c429


Fix missing quotes

Description

Added missing double quotes in the documentation.

https://pinterest.github.io/ktlint/rules/experimental/#unnecessary-parenthesis-before-trailing-lambda
Checklist

[x] PR description added
[ ] tests are added
[ ] KtLint has been applied on source code itself and violations are fixed
[x] documentation is updated
[ ] CHANGELOG.md is updated

In case of adding a new rule:

[ ] Rule is added to rules documentation

Tnx for fixing.


buttons and search / sort drop downs too close to nav when a notification is present

Currently with notification:

Without notification:

Space between nav / sort options should always be the space shown in the second screenshot.

I think I applied the necessary styling everywhere. Should definitely be fixed on the list pages, and is still working on the detail pages as far as I've seen.

@kelseyscherer can you please review this/close if good?


hdfs启动kerberos后,transfer设置integrity，byconity不能使用

目前修改HADOOP集群改成dfs.data.transfer.protection=authentication,byconity可以使用，当hdfs集群改成dfs.data.transfer.protection=integrity后，无法实现kerberos认证。
2023.08.17 18:20:46.509870 [ 21571 ] {} <Trace> HDFS3: [SLOW NODE] Node [slave134] is in slow node store, will attempt to avoid.
2023.08.17 18:20:46.509875 [ 21571 ] {} <Trace> HDFS3: [SLOW NODE] Node [slave133] is in slow node store, will attempt to avoid.
2023.08.17 18:20:46.509879 [ 21571 ] {} <Trace> HDFS3: No known good/slow nodes to use, resorting to known failed nodes.
2023.08.17 18:20:46.509959 [ 21571 ] {} <Trace> ReadBufferFromByteHDFS: get event 6 & 56029
2023.08.17 18:20:46.509974 [ 21571 ] {} <Trace> HDFS3: Hdfs opertaion dn.connect.timecost takes 0 ms
2023.08.17 18:20:46.511320 [ 21571 ] {} <Trace> ReadBufferFromByteHDFS: get event 4 & 1419156
2023.08.17 18:20:46.511360 [ 21571 ] {} <Trace> HDFS3: cannot setup block reader for Block: [block pool ID: BP-1504379878-<IP_ADDRESS>-1658999507639 block pufs name  block ID<PHONE_NUMBER>_6291
4] file /user/clickhouse/ab8230d7-a9d7-4d31-8aad-3886ee681c7c/1672502400_443617802232528898_443617802232528898_0_443617802232528896_0/data on Datanode: slave134(<IP_ADDRESS>) retry another n
ode

@Clark0 Can I get your help to look into this?

In my test，we only support authentication. Maybe we need  https://github.com/ClickHouse/libhdfs3/pull/21 to support integrity

Currently not supported. Will plan an enhancement in the future. Close this issue first


Add Text layer

Description
As discussed in #593, this PR adds a layer type for adding text to the viewer. To do so, I implemented a vispy Text visual. As suggested by @sofroniewn, the data are provided as a (coords, text) tuple where coords is a (NxD) array of N, D-dimensional coordinates for text positions and text is a list of strings to display.
From my read of the vispy docs and some experimentation, it looks like the Text.font_size and Text.rotation only take scalars, so adding per-text-element sizing and rotation doesn't look super straightforward.
For a demo, see /examples/add_text.py.
To do:

[x] Update the "hit box" for selecting text elements
[x] Either include a way to add text from the UI or remove the add mode

Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

References
This PR closes #593.
How has this been tested?

[x] example: the test suite for my feature covers cases x, y, and z
[x] tests: /napari/layers/text/tests/test_text.py

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works

Some open questions about the API and UI:

The "hitbox" for selecting points is currently just an constant radius from the centroid. I couldn't find an easy way to retrieve the size of the text element. In the absence of that, my plan is to approximate the extent based on some function of the font size and string length, as suggested by @sofroniewn.
Initially, I had an offset parameter that offsets the text location from the assigned coordinate. This was nice at the time because I had included markers to denote where the text referred to, but now that we have eliminated the markers, I am not sure how useful it is. Thus, I have removed the offset parameter. Thoughts?
Adding annotations would be super nice, but the UI could be a little challenging. One idea would be a little text edit box that pops up where you click for specifying the text. Alternatively, there could be a text box in the controls that becomes visible in adding mode (and maybe selecting mode?). As discussed in #593, it may be best to push forward without the ability to add/edit text for this PR and revisit the feature later.

Coming along nicely - as to the selection box, yeah it's not clear to be if there's a way to grab the size of the text from vispy - there might be, and if you look at by rescaling comment above it might make it easier if the text does rescale, but otherwise estimating is probably fine.
I had kinda liked the offsets - but maybe it's more complicated than needed and pretty redundant. i think @jni didn't think it was needed, so fine to drop
for editing / adding new text, ideally we'd be able to type in the text box over the canvas, like illustrator, but that will require additionally rendering a line for where the typing is happening and updating everything really fast. Maybe for now add an edit box in the bottom of the layer controls panel, which when nothing is selected is empty, when one text box is selected has the text of that box in it, and if you type in that box it then updates the text over the visual - it's not quite as perfect, but that should be much easier to implement. Then you can keep the add button which will just add new text with an empty string. If multiple text boxes are selected then show the text if they all have the same label, or show empty if they have different (same as we do for colors) and then if you start editing then change all text labels - this would allow you to relabel many points
Have you tried sending lists of colors / lists of font sizes, sometimes they are supported by vispy even if the docs don't say so. I don't think we need to support rotated text at this point.
Can you also add an n-D example nD_text.py where we can see the behaviour both with slicing and 3D rendering

@sofroniewn, thanks for the feedback! In terms of adding/editing, I'd like to try adding the text box to the controls for editing/adding text just to see how it feels.
I have tried sending lists of font sizes and unfortunately, vispy expects a scalar value. I can try colors as well, but it be the case the we can only set those parameters on a per-layer basis.
I've been digging through vispy to see the best way to determine the size of the hitbox for selecting the text elements.

@sofroniewn , thanks again for the feedback. I've added text editing and the ability to add new next. I will work on scaling the hitbox next. Let me know what you think!

Current editing behavior:

Current new text behavior:

editing is looking great @kevinyamauchi!!

@kevinyamauchi I just saw the last commit is "remove ndim", I havn't looked at the code, but I'm not sure we want to drop that functionality, just thinking about the points layer it's maybe nice to have the ability to turn it on so that when you slice through layers text appears not only on that exact slice but the neighboring ones above and bellow. Could be a little weird if you have volumetric timeseries data. I'm not 100% we need to keep it, but curious you rational for removing it if that's what the commit did

I have a first pass at the hitbox scaling working. I think to be robust, I will have to get the viewer DPI since the point -> px conversion relies on that.
Hitbox scales with zoom and font size:

Hitbox expands/contracts with the text:

@sofroniewn, regarding the ndimoption, I removed it because to me, the advantage of the ndim option in the points layer is that we can scale the point size along an axis. It didn't seem like we would want to do that with text and if the user wants the text in adjacent slices, they can just have data for each index the text should appear at. To me, that seemed more intuitive than a "size-like" parameter that describes the extent of the text in out-of-plane axes. Thoughts?

Yeah - fair enough @kevinyamauchi it will simplify things, fine to drop - we can always add back in after using it we really miss it.

love the hitbox scaling. the px / dpi conversion factors might be available in the Qt stuff somewhere, not quite sure, but I think we looked into it a while back in #367

A couple of updates:

I've added a DPI property to the base layer, so we now use that to estimate the size of the text elements.
I've added copy/paste to the text elements. Currently, when pasting, the pasted items have the same coords as their source and are highlighed. I believe this is how pasting works in other layers. Is this the desired pattern? Would it be better if they were pasted wherever the mouse is when the past command is issued? This would be convenient in some ways, but potentially problematic if the paste function were ever called programatically. Thoughts @sofroniewn ?

Hmm I'd leave the paste to be where the current is for now, can always revisit across all layer types in the future, but I don't have super strong opinions

I think this PR is mostly there. The linux and OS X tests are passing. Strangely, black is showing that /napari/tests/test_viewer_layer_parity.py needs to be reformatted, even though this PR doesn't touch that file and it is passing the check on my local machine. Any thoughts @sofroniewn, @jni, or @AhmetCanSolak ?

@kevinyamauchi annoyingly, black just released a new version and "changed its mind" about certain syntax. :man_facepalming: see #619. And the change is dubious at best.
Anyway, once #619 gets merged you can merge master and black will be happy again. You will need to python -m pip install -U black to get the latest version on your machine.

Ah got it. Thanks for the quick response, @jni!

Sorry for the delay. I think it is finally ready for initial review!

@sofroniewn , thanks for the review! I am heading out of town, but I will address your comments this weekend.

Here is how the 3D rendering currently works. The text elements maintain their orientation relative to the viewer as the volume is rotated.

@sofroniewn , I think I have addressed your review points and this is ready for re-review!
Selection outline and hitbox rotation:

The new text adding behavior (saving last new text):

Good morning! I just merged master and the Windows and OS X tests are still failing because numcodecs won't install. Is anybody else having this issue (cc @sofroniewn , @tlambert03, @jni )?

yes, the CI issues are being discussed in #665

yes, the CI issues are being discussed in #665
Ah just saw that.

The tests are passing in Linux, so I think this PR is ready for re-review!

Looks awesome @kevinyamauchi !

LMAO I was playing around with the layer options and I almost spit my coffee out when I set the blending to "opaque":

😂
I'm noticing that the text looks much smoother when the mode is set to "additive". On translucent, I see weird and ugly fringes around the text. Should we maybe set additive as the default for this layer? I'm not entirely sure of all the consequences, though...
Full review in progress...

Ok so let me comment here on my API proposal for points/annotations. I think the ideas below will work with both points and higher-dimensional (lines, shapes, volumes?) layers.
Ignore my names for the variables here, they can be debated later. Just the concepts.
(1) Points are required to have a data point, coords=, that is conceptually an npoints x ndim array.
(2) They can also have other properties, including color, size, marker, and annotations. These properties are per-point, and they can be straight up lists: add_points(coords, color=colorlist, size=sizelist, annotations=strlist).
(3) They can, however, also be columns in an dataframe (or dataframe-like object), and they can then be addressed by column name. We can call the dataframe properties. Let's say properties has column names 'annotation', 'vesicle density', 'pre/post-synaptic', 'neurotransmitter'. Then you could call add_points(coords, properties=props, size='vesicle density', marker='pre/post-synaptic', color='neurotransmitter'). The properties would then be mapped appropriately using color cycles and shape cycles, just like matplotlib/seaborn do.
(4) annotations by default would be centered on their point, but we can add an offset= argument that contains individual offsets, and the argument could also be set to "auto" to do something like ggrepel.
As mentioned, the above paradigm could also be used to annotate lines, shapes, etc, and take the handling of mapping data properties to visuals away from users and into our layers, which, as the various declarative data visualization libraries have shown, is a honking good idea. All of the mappings would of course be configurable, but they would remain automatic, and the list input will always remain an option for everyone who likes doing stuff by hand.
I hope the above clarifies my thinking on this!

@jni those points make sense - and I think are more towards the approach 2 described here https://github.com/napari/napari/issues/651#issuecomment-552056627. Looking at the issue, I think the last post from @kevinyamauchi was leaning more towards approach 1 where there is still an explicit Text layer and add_text method, so I'm curious what he makes of this and the following.
Maybe I'm coming around to the @jni viewpoint here, this would be very clean from an API standpoint in certain ways and make us conform with the next generation of plotting libraries (this is really a scatter plot method in many ways), but @kevinyamauchi raised some good concerns about the API from other perspectives - we'd now have edge_color, face_color, text_color, size, and text_size etc. - which is maybe ok, but also maybe bloated. We could though reduce some of the UI complexity by having the concept of selecting the marker and text be one by default (i.e. you couldn't independently drag them by default, but maybe only from a special mode).
I'm also reconsidering my previous statements around text being part of Shapes too. I think this new layer would be the only way to add text and you could easily do with with / without a marker present symbol=None say.
I don't want to rat hole on names, but maybe we'd drop the name Points and we'd rename it Annotations, which makes it much more clear on how we view this layer and what it will be used for. If you want to have an image and some text you'd need to have an Image layer and an Annotations layer, which I think is better than say just having an Image layer with Annotations baked in. If you wanted to have shapes with text labels you'd have to have a Shapes layer and an Annotations layer too, which keeps those concepts nicely separable. If you just want some points and text you'd only need an Annotations layer.
I guess the main issue right now for this PR is that we still havn't resolved the question of if there will ever be a viewer.add_text method. If not, than I guess I have some concern about merging this PR and adding one, only to take it away shortly. I think these are the types of breaking changes people find very confusing. I know though that @kevinyamauchi put a lot of work into this PR and it has been sitting here for a while though so I want to be respectful of that. I think a lot of the concepts though would be reused in the Annotations layer.
I also worry though the longer we wait to decide the more it holds up changes in other parts of the repo. For example #686, #782, #772, and #694.
In summary, I guess my current thoughts are that I lean towards a single add_annotations method which has both a Markers and Text visual (symbol=None and/or text=None we allow you to use one without the other) and that should ultimately not merge this PR which adds an add_text method. I think we should get #694, #782, #686 and #772 done first - #772 has the possibility to dramatically simplify the new layer by moving a lot of the interactivity (like bounding box drawing, highlighting etc. to the base layer) and then we embark on this.
@jni does this capture how you feel too? What are your thoughts on all this @kevinyamauchi?

Thanks for the comments @jni and @sofroniewn ! I haven't had a chance to review them yet and probably won't until this weekend. I just wanted to drop by to quickly mention that if we decide a different configuration/API is preferred (e.g., no standalone Text layer and/or viewer.add_text()), I don't mind and do not consider this wasted work. I think it's totally fine to take what we learned here and implement it in a way that makes the most sense.

Hi all,
I was getting excited when I saw this PR as I've been wishing to be able to add text to a label layer (particularly useful for 2-D time series tracking/curation).
I was wondering if there's been any progress on this?
Unfortunately, I couldn't find the mentioned /examples/add_text.py...
Is there an easy/straightforward-ish way to add text to a labels layer? I just want to be able to see the cells' 'names' 😆
FYI I know the label ID can be checked by hovering over the region/mask of interest (I don't know what I'd do without the bottom left info panel!), but having text is much more efficient in my opinion when it comes to looking for a particular label ID

Hey @pablooriol2 ! Funny timing - I was just thinking about this PR earlier today. In working on this PR, we realized that we needed to do some work refactoring the data model for our points layer. Unfortunately, I haven't been able to push this any farther. However, that refactor is nearly complete, so I will be ready to get back to this in the coming weeks.

Is there an easy/straightforward-ish way to add text to a labels layer? I just want to be able to see the cells' 'names' 😆

There isn't an easy to way to add text at the moment, but you may be interested in this PR, which was recently merged that adds properties to labels #1281 .
If there are specific features you would like or ideas you have, we would love it if you opened an issue describing it!

Hi @kevinyamauchi ,
Thanks for getting back so quickly.
Ooh looks like it might be a feature for the 0.3.3 release? In any case, I'm really looking forward to it!
No specific features in mind, just being able to display the label's ID as text. Just as this example taken from quantumjot's napari tracking plugin.

Thanks for getting back so quickly.

No problem!

Ooh looks like it might be a feature for the 0.3.3 release? In any case, I'm really looking forward to it!

I think it is unlikely to make it into 0.3.3, but I will likely start working on it next week. Hopefully all goes smooth :)

No specific features in mind, just being able to display the label's ID as text. Just as this example taken from quantumjot's napari tracking plugin.

Okay, well don't hesitate to drop an issue if anything comes up! By the way, @quantumjot's tracking plugin looks awesome!

I think it is unlikely to make it into 0.3.3, but I will likely start working on it next week. Hopefully all goes smooth :)

Finger crossed!

Okay, well don't hesitate to drop an issue if anything comes up! By the way, @quantumjot's tracking plugin looks awesome!

Yes, indeed it does! Very pumped for that plugin to be fully implemented & functional 😃

FYI @pablooriol2 , I have picked up adding text in #1374 . Feel free to chime in if you have any comments and/or suggestions!


"Segmentation fault (core dumped)" when working on multiple directories concurrently

This is starting to bug me a bit too much, so I start praying the gods of gulp-responsive, hoping in a solution that can perhaps solve this issue.
I have a (probably) complex situation, and I've detailed it in a post on Stack Overflow.
I've now tried a much simpler approach (at least from a programmatic perspective), with a task that is defined as follows:
function buildPreviews () {
  const folders = ['/photo', '/vector', '/illustration', '/pixelart'];

  const tasks = folders.map((folder) => {
    const imagesFolder = path.join(paths.images.src, folder, `/preview/*.png`);

    return gulp.src(imagesFolder)
      .pipe(responsive({
        '*.png': [ {
          width: 120,
          rename: {
            dirname: 'preview/half'
          }
        } ]
      }, {
        progressive: true,
        withMetadata: false,
        errorOnEnlargement: false,
        errorOnUnusedConfig: false,
        errorOnUnusedImage: false
      }))
      .pipe(gulp.dest(path.join(paths.images.dest, folder)));
  });

  return merge(tasks);
}

When passing just one directory, everything works fine, as soon as I raise the bar, everything crashes randomly with the following error:
[snip]
(node:21002) DeprecationWarning: quality: use jpeg({ quality: ... }), webp({ quality: ... }) and/or tiff({ quality: ... }) instead
(node:21002) DeprecationWarning: progressive: use jpeg({ progressive: ... }) and/or png({ progressive: ... }) instead
(node:21002) DeprecationWarning: withoutChromaSubsampling: use jpeg({ chromaSubsampling: "4:4:4" }) instead
(node:21002) DeprecationWarning: compressionLevel: use png({ compressionLevel: ... }) instead
[22:53:19] gulp-responsive: 2004-09-27-HCS-logo.png -> preview/half/2004-09-27-HCS-logo.png
[22:53:19] gulp-responsive: Scan-130504-0003.png -> preview/half/Scan-130504-0003.png
[22:53:19] gulp-responsive: 2010-12-13-mother-cry.png -> preview/half/2010-12-13-mother-cry.png
[22:53:19] gulp-responsive: 2009-04-11-moai.png -> preview/half/2009-04-11-moai.png
[22:53:19] gulp-responsive: 2004-11-18-G-logo.png -> preview/half/2004-11-18-G-logo.png
[22:53:19] gulp-responsive: 2011-02-19-chameleon.png -> preview/half/2011-02-19-chameleon.png
[22:53:19] gulp-responsive: Scan-130527-0002.png -> preview/half/Scan-130527-0002.png
[22:53:20] gulp-responsive: 2009-05-08-angkor_wat.png -> preview/half/2009-05-08-angkor_wat.png
[22:53:20] gulp-responsive: 2011-02-football-player.png -> preview/half/2011-02-football-player.png
[22:53:20] gulp-responsive: 2004-11-23-larry_the_cow-head.png -> preview/half/2004-11-23-larry_the_cow-head.png
[22:53:20] gulp-responsive: Scan-140223-0008.png -> preview/half/Scan-140223-0008.png
[22:53:20] gulp-responsive: 2009-05-11-circleskate.png -> preview/half/2009-05-11-circleskate.png
[22:53:20] gulp-responsive: 2011-02-mario.png -> preview/half/2011-02-mario.png
[22:53:20] gulp-responsive: 2004-12-09-larry_the_cow-full.png -> preview/half/2004-12-09-larry_the_cow-full.png
[22:53:20] gulp-responsive: 2009-05-21-employee.png -> preview/half/2009-05-21-employee.png
[22:53:20] gulp-responsive: Scan-140223-0010.png -> preview/half/Scan-140223-0010.png
[22:53:20] gulp-responsive: 2011-03-15-the_plague.png -> preview/half/2011-03-15-the_plague.png
[22:53:20] gulp-responsive: 2005-05-25-gentoo-abducted_1280x800.png -> preview/half/2005-05-25-gentoo-abducted_1280x800.png
[22:53:20] gulp-responsive: 2009-06-14-hobo_heaven.png -> preview/half/2009-06-14-hobo_heaven.png
[22:53:20] gulp-responsive: Scan-140226-0005.png -> preview/half/Scan-140226-0005.png
[22:53:20] 'buildPreviews' errored after 683 ms
[22:53:20] Error: ENOENT: no such file or directory, open '/home/peach/public_html/portfolio.smartart.it/dist/images/illustration/preview/half/2011-03-15-the_plague.png'
[22:53:20] 'build' errored after 753 ms
[22:53:20] 'default' errored after 754 ms
[22:53:20] The following tasks did not complete: styles, metalsmith
[22:53:20] Did you forget to signal async completion?

(sharp:21002): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(sharp:21002): GLib-CRITICAL **: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed

(sharp:21002): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed
Segmentation fault (core dumped)

The file the error is triggered from seems to vary.

I thought of writing a single config, but then I don't know how to allow gulp-responsive to write in the right directory...

I don't know if it fixes your problem, but you can certainly simplify your task as follows:
gulp.task('buildPreviews', function() {
  const folders = ['photo', 'vector', 'illustration', 'pixelart'];
  const glob = `${paths.images.src}/{${folders.join(',')}}/preview/*.png`

  return gulp.src(glob)
    .pipe(responsive(
        {
          '**/*.png': [
            {
              width: 120,
              rename: {
                prefix: 'half/'
              }
            }
          ]
        },
        {
          progressive: true,
          withMetadata: false,
          errorOnEnlargement: false,
          errorOnUnusedConfig: false,
          errorOnUnusedImage: false
        }
      )
    )
    .pipe(gulp.dest(paths.images.dest));
});

thanks @TheDancingCode, your code works without crashing, but unfortunately it doesn't adapt to my situation, as I would need to save the images in different subfolders: in your case I would get all the processed images in the same folder.

Also, please note that before upgrading to gulp4 I had no problems running multiple instances of gulp-responsive. Whether that's a problem specific to gulp4 or to a recent upgrade of gulp-responsive, I have no idea. I'll try to do a bit of regression testing as soon as I have some time.
In the meantime any help is greatly appreciated.

Did I understand correctly that you're trying to go from a folder structure like this one:
src/
  + images/
    + illustration/
    | + previews/
    |   + img1.png
    + photos/
    | + previews/
    |   + img2.png
    + gifs/
    | + previews/
    |   + img3.png
    + vector/
      + previews/
        + img4.png

to one that looks like this?:
dist/
  + images/
    + illustration/
    | + previews/
    |   + half/
    |     + img1.png
    + photos/
    | + previews/
    |   + half/
    |     + img2.png
    + gifs/
    | + previews/
    |   + half/
    |     + img3.png
    + vector/
      + previews/
        + half/
          + img4.png

Because that works over here. What's your paths.images.src and paths.images.dest?

currently they're set to src/images/ and dist/images/ respectively

I don't get it then. This works perfectly here, which is essentially the same as what I posted earlier:
gulp.task('buildPreviews', function() {
  return gulp.src('src/images/{photo,vector,illustration,pixelart}/preview/*.png')
    .pipe(
      responsive(
        {
          '**/*.png': [
            {
              width: 120,
              rename: {
                prefix: 'half/'
              }
            }
          ]
        },
        {
          progressive: true,
          withMetadata: false,
          errorOnEnlargement: false,
          errorOnUnusedConfig: false,
          errorOnUnusedImage: false
        }
      )
    )
    .pipe(gulp.dest('dist/images/'));
});

@TheDancingCode interesting! just tried on another machine, and it works as expected.
Now I've modified another task (there's another task that does something similar but with a completely different configuration, see below) and it's not working:
function buildImages () {
  const folders = ['photo', 'vector', 'illustration'];
  const glob = `${paths.images.src}/{${folders.join(',')}}/*.{png,jpg}`;

  return gulp.src(glob)
    .pipe(cache('responsive'))
    .pipe(responsive({
      '**/*': [ {
        width: 320,
        rename: {
          dirname: 'small',
          extname: '.jpg'
        },
        format: 'jpeg'
      }, {
        width: 768,
        rename: {
          dirname: 'medium'
        },
        withoutEnlargement: true
      }, {
        width: 1200,
        rename: {
          dirname: 'large'
        },
        withoutEnlargement: true
      } ]
    }, {
      quality: 85,
      progressive: true,
      withMetadata: false,
      errorOnEnlargement: false,
      errorOnUnusedConfig: false,
      errorOnUnusedImage: false
    }
    ))
    .pipe(gulp.dest(paths.images.dest));
}

(consider that this task has to avoid picking up anything that is not jpg or png, so I hope the combination of the glob together with the responsive config works.)

And you would like the new task to output like this?
illustration/2011-02-football-player.png -> illustration/small/2011-02-football-player.jpg
illustration/2011-02-football-player.png -> illustration/medium/2011-02-football-player.png
illustration/2011-02-football-player.png -> illustration/large/2011-02-football-player.png

oooooooh!!!! now I see it! I completely overlooked that! 🤦♂

OK, then this is totally my fault, every time the task was moving images it was renaming the folder and killing the following copy. Dang. I'm going to close this one!


Error for edit disk for virtual machines

Can not get rid of the the error messages upon click edit for virtual machine disk capacity increase
"Couldn't save the disks settings for 'RemoteException: A parameter cannot be found that matches parameter name 'f'.'. Error: '{1}' windows admin center"

I'm seeing the same thing. This only occurs if the virtual machine has a virtual DVD drive attached.
One workaround is to remove the DVD drive and then resize the disk. This leads to another bug in the WAC web console where the DVD drive removal task says it's successful for DVD drive's attached on the IDE bus, however the VM needs to be powered off before that change can actually be applied.
Another workaround is to resize the disk using Windows Failover Cluster Manager.

Thank you for reply. Ok I will try again with removing the DVD drive for disk resize.


Modifications to RT2.13- Weighted-ECMP for IS-IS

Agg4 IPv6 address is changed as the current dutIPv6 address 2001:db8::14 is a network ip.
ATE loopback reachability is now via static route. Isis weighted ecmp feature is tested here, hence modified code to advertise loopbacks via isis.
Added isis adjacency check and bgp route check.
For better load balancing, added more flows.
Added deviation, ISISLevelEnabled.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 55.5%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1983

Relevant Lines:
3573

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 55.5%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1983

Relevant Lines:
3573

💛  - Coveralls

/gcbrun


Unintuitive behavior with useValidate() hook and built-in input validations

Current behavior
When using the useValidate() hook from useFormStore(), user-defined error messages do not always apply when used in conjunction with the built-in input validation attributes such as the required attribute. This is due both to the hierarchy of the component tree imposing a specific execution order on when errors are set, and because these errors are set asynchronously inside of the useFormField() hook, which causes these values to be updated as a side-effect outside of React's render loop.
I believe I've narrowed this down to this section of the code: https://github.com/ariakit/ariakit/blob/c54e8e6335a063d23ec168a155b5806b9082953a/packages/ariakit-react-core/src/form/form-field.ts#L91-L99
Because this hook calls useValidate() inside the FormField component (or custom implementation with useFormField()), this effect will fire after any user-defined call of useValidate() either defined at the parent Form level, or at the custom Field component level depending on the specific implementation and ordering of hooks, in addition to whether the callback is asynchronous or not.
Because the implementation inside of useFormField() is asynchronous, this means that unless the user is also using an asyc callback, the useFormField() internals will apply last, overriding any user-defined custom error messages. Even then, other factors such as race conditions may apply.
This results in a very unintuitive behavior for how user-defined custom error messages are defined for custom form fields.
Steps to reproduce the bug
Behavior can be observed in this CodeSandbox or this Replay
Once the page has loaded:

Click the Name field, observe that the default browser required error is displayed
Click the Favorite Fruit select drop-down menu, but don't select an item, observe that the Name field's error has changed to the custom error message defined in the useValidation() hook

Expected behavior
I would expect that errors for form inputs would be applied in this order:

The default browser error message is gathered from the Constraint Validation API
Then, any user defined custom errors that are defined at the parent Form level are applied
Finally, any user defined custom errors that are defined at the component level are applied

Workaround
No response
Possible solutions
Presently I'm not sure what the best solution here is, but I think it needs to involve some way to override the internal behavior of the useFormField() hook at the lines linked to above.
One idea that came to mind was an API for the user to provide an "error map" that would facilitate defining custom errors for the common ValidityState types from the Constraint Validation API before falling back to whatever message is set by default from the browser on these lines: https://github.com/ariakit/ariakit/blob/c54e8e6335a063d23ec168a155b5806b9082953a/packages/ariakit-react-core/src/form/form-field.ts#L96-L98
Another possible solution would be the addition of a useStore() hook returned in useFormField()''s props, or via a callback added to FormFieldOptions that would allow the user to hook into the store obtained automatically from context to modify the form store after all of useFormField()'s internals have executed. This would also help to satisfy some ugly workarounds I've had to write that necessitated passing in the form state as a store prop on a custom field component when I'd rather just have all of my custom inputs automatically obtain the form store via context. This would help to eliminate scenarios such as:
function MyForm() {
  const form = useFormStore({ defaultValue: { name: "" } });
  return (
    <Form store={form}>
      <NameInput store={form} name={form.names.name} />
    </Form>
  );
}

function NameInput({ store, name, ...props }) {
  store.useValidate(() => {
    const value = store.getValue(name);
    if (value.length < 3) {
      store.setError(name, "Name must be at least 3 characters long");
    }
  });
  return <FormInput name={name} {...props} />;
}

Which comes from the Form Custom Validation Docs whereby NameInput requires that the store prop is passed in for its internal custom validation to work.
I would also like to see better documentation and examples of how to define custom errors for forms. I ran into this problem just following along with the existing example and not understanding why my custom message wasn't being applied to the text input. This wasn't an issue I had observed in previous versions of Ariakit before the state refactor discussed in #1875

We can potentially use setCustomValidity internally to make the error messages consistent.

This would also help to satisfy some ugly workarounds I've had to write that necessitated passing in the form state as a store prop on a custom field component when I'd rather just have all of my custom inputs automatically obtain the form store via context.

Could you elaborate more on that?
This is how you'd pass the form store to your components via context:
const FormContext = React.createContext<Ariakit.FormStore | null>(null);

function Form() {
  const form = Ariakit.useFormStore();
  return (
    <FormContext.Provider value={form}>
      <Ariakit.Form store={form}>
        <MyField />
      </Ariakit.Form>
    </FormContext.Provider>
  );
}

function MyField() {
  const form = React.useContext(FormContext);
  ...
}

This is how you'd pass the form store to your components via context:

Hadn't seen this documented anywhere, so hadn't tried it yet. I've only seen examples like the one I linked whereby the store is passed explicitly to the component.

Yeah, there are many things to document yet, and especially Form should have more examples. I hadn't thought about an example using React Context, though. So thank you for the feedback. Maybe we can include it in the Component stores guide since all modules could benefit from this.
However, for this particular case using React Context, the approach with the form store and the old form state remains pretty much the same.

I'm still thinking of a workaround for this, but the best thing I can think of is not to combine browser validation with custom validation. That is, remove the required attribute (you can still set aria-required for announcements, though). Does that fix the issue?

Still feels unintuitive to me. Like the expectation here is that you can use the native validation options like required, but use Ariakit to customize the messages thrown. Hence why I'm thinking something like an error map would help bridge the gap. For reference, I'm trying to throw together an example using Zod for form validation for my company, and it has a similar concept for its own internal error types.
I can see your point about a workaround, I just don't like the either/or scenario. Like, I think perhaps an api like you mentioned with setCustomValidity() would be nice, whereby useValidate() could pass it's callback extra metadata about the connected form fields, such as a method like:
form.useValidate(() => {
    form.getFieldValidity(form.names.fieldName, (element) => {
        if (element.validity.typeMismatch) {
            form.setError(form.names.fieldName, "Wrong data type!"));
        }
    });
});

Does this make sense? And then setError() calls setCustomValidity() under the hood.
A simplified, component prop API might be like:
<MyField
    required
    errorMap={{
        valueMissing: `This field is required!`
    }}
/>

With that you can just override the validation API defaults with minimal boilerplate. The values for each key of the map could either be a string or a callback in perhaps the signature of (event: ValidationEvent) => string (guessing on what type event would be).

The errorMap prop would help with the issue of useValidate() being called insde the component itself, which occurs after the parent form runs it's call of that hook. That issue with calling useValidate() at the parent level would still exist though, as subsequent calls are what are overriding the error messages currently.

Further going down that route, could have one of the properties of errorMap be customError. Using the callback signature I mentioned above, then that field can use the field's value to do custom validation. The downside is now custom errors would be set per-component, rather than whole form, which is where parsing form values against like a Zod schema is convenient.

While reading this thread I was thinking if these component would be compatible with React Router's Form component?

While reading this thread I was thinking if these component would be compatible with React Router's Form component?

My guess would be no, as to my understanding it uses the native form submission methods to kick off a request to the server to submit the form data.
But,, you can try and wire it up with the useForm() hook in some manner.

Still feels unintuitive to me. Like the expectation here is that you can use the native validation options like required, but use Ariakit to customize the messages thrown. Hence why I'm thinking something like an error map would help bridge the gap. For reference, I'm trying to throw together an example using Zod for form validation for my company, and it has a similar concept for its own internal error types.

I agree that's not the ideal solution. But I just want to confirm that the proposed workaround (using either custom validation or built-in validation) gets rid of the bug you reported so we can mark this issue as has workaround and proceed to work on a proper solution (see https://github.com/ariakit/ariakit/issues/1564#issuecomment-1170091992).

I would expect that errors for form inputs would be applied in this order:

The default browser error message is gathered from the Constraint Validation API
Then, any user-defined custom errors that are defined at the parent Form level are applied
Finally, any user-defined custom errors that are defined at the component level are applied

I agree that the built-in validation should run first (1), but the field-level custom validation (3) should run before the form-level custom validation (2):

Built-in validation
Field-level validation
Form-level validation

The main reason is that that's the order in which React effects run, and we don't have a good reason to write a custom logic here (that would even require some hacks, I suppose).
Another reason is that that's the order that goes from the most abstract component, where you'll want to make things more generic and extensible, to the most concrete component, where you have more information and may want to override some defaults.
As an example, consider a generic RequiredInput component that adds a general error message when the field is empty:
function RequiredInput({ store, ...props }) {
  store.useValidate(() => {
    // We may use store.getError(props.name) here to get the built-in validation message
    if (!store.getValue(props.name)) {
      store.setError(props.name, "Please fill in this field.");
    }
  });
  return <Ariakit.FormInput required {...props} />
}

You could override this logic in a more concrete form component:
function Form() {
  const store = Ariakit.useFormStore({ defaultValues: { name: "" } });
  store.useValidate(() => {
    // We may also retrieve the field-level error message with store.getError(store.names.name)
    if (!store.getValue(store.names.name)) {
      store.setError(store.names.name, "Name is required.");
    }
  });
  return (
    <Ariakit.Form store={store}>
      <RequiredInput store={store} name={store.names.name} />
    </Ariakit.Form>
  );
}

What do you think?


2Q9D

Use the preview tab to see the example given below. Edit the relevant information and preview the changes before submitting. You may delete these instructions.

Key
Value

ID
2Q9D

Source
Vaaran Bhai Gurdas Ji

Page
20

Line
BMBl BUsy Kwie, n mnu BrmwieAw [

Correction
THIS ≠ THAT

PROOF (EDITION)
Image:

Correction:
BMBl BUsy ≠ BMBlBUsy
Proof:
Vaaran Bhai Gurdaas Ji | November 2011 | Shamsher Singh Ashok | SGPC, Sri Amritsar
Image:


Don't remove dead arguments from grid launch functions

When a grid launch function is marked as static, dead argument elimination would remove the grid launch parameter (before wrapper gen) and other unreferenced kernel args.  This patch prevents DAE from changing the kernel signature even though some of the kernel args appeared to be dead.

@whchung could you review this?

@scchan looks good to me.


[BUG] Warning: Cannot update a component (ForwardRef(BaseNavigationContainer)) while rendering a different component (SwipeCards).

I tried ti ran following code
        <SwipeCards
          ref={sheetRef}
          cards={cards}
          renderCard={(cardData) => <Card data={cardData.text} />}
          keyExtractor={(cardData) => String(cardData.text)}
          renderNoMoreCards={() => {
            navigation.navigate("CardsPage");
          }}
          actions={{
            nope: { onAction: handleNope, text: "Не" },
            yup: { onAction: handleYup, text: "Да" },
          }}
          hasMaybeAction={false}
          // If you want a stack of cards instead of one-per-one view, activate stack mode
          // stackDepth={3}
        />

But i got error
Warning: Cannot update a component (ForwardRef(BaseNavigationContainer)) while rendering a different component (SwipeCards). To locate the bad setState() call inside SwipeCards, follow the stack trace as described in https://reactjs.org/link/setstate-in-render
It is happened when i use navigation.navigate in renderNoMoreCards.  How can i fix that? Or i cant use navigate like that?

renderNoMoreCards expects a react view to render whenever the cards are empty.
Currently there is no event handler for empty cards, but you can implement a custom component for renderNoMoreCards and put the navigate side effect on useEffect.
This could work.


Custom colouring of tones in card's HTML format

Some users may find it beneficial to choose the colours used for pinyin and characters. At the moment, this can be done by going into the card's formatting and changing the HTML.
If we can find how to create a complete .apkg file, then it may be possible to add a colour-selection element to a GUI - where the user could define the colours they'd like to use for each of the tones.

We could also include some predefined colour sets, for example, Pleco default colour scheme.

Adds complexity to UI and isn't a super important feature. nice to have, can add when requested


CrewAI is failing when I use agentops

🐛 Bug Report
🔎 Describe the Bug
When I am using agentops, CrewAI Crew.kickoff returns None
🔄 Reproduction Steps
import os
from dotenv import load_dotenv
assert load_dotenv()
import agentops
agentops.init(os.environ["AGENTOPS_API_KEY"])

...
crew.kickoff()

Output
> Entering new CrewAgentExecutor chain...
> Finished chain.
 Error parsing JSON: Expecting value: line 1 column 1 (char 0). Attempting to handle partial JSON.
 Failed to convert text into JSON, error: 'NoneType' object is not callable. Using raw output instead.
 [2024-09-06 17:44:26][DEBUG]: == [Agent Name] Task output: Agent stopped due to iteration limit or time limit.

When I remove the agentops lines from the code, it starts working.

Never import agentops before importing crewai classes.
Inside crewai crew.py, agent.py, tool_usage.py, etc, they are importing autogen by checking the variable:
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
    try:
        import agentops
    except ImportError:
        pass

If you import autogen and do autogen.init() before importing any of crewAI's Crew, Agent, Tool class, your agentops variable will reset and the agentops.init() session will be lost. The system then fails silently and you are left scratching your head why your LLM is not responding.


[bug]is the judgement true:max_vote->sequence > vote_a->sequence? then it may be a replay, not a vote

https://github.com/nanocurrency/raiblocks/blob/ef86a5e4c5d5d8225c648934ef1abc6033c418f2/rai/node/node.cpp#L1224

Yeah, though this shouldn't matter since the last vote should be active.

Created #964 to flip this


Dictionary binding

Hello,
I have an error when post the following data to server
WorkerTypesCounts[ARCHIVE]:111
WorkerTypesCounts[CORRELATION]:222
WorkerTypesCounts[INDEX]:333

The error is
 System.ArgumentNullException: Value cannot be null.
Parameter name: key
   at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
   at System.Collections.Generic.Dictionary`2.System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Add(KeyValuePair`2 keyValuePair)
   at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder`1.CopyToModel(Object target, IEnumerable`1 sourceCollection)
   at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder`1.<BindModelAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder`2.<BindModelAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.<BindModelCoreAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.<BindModelAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeFilterPipelineAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()

But when I rename "INDEX" to "INDEX2" everything works fine
WorkerTypesCounts[ARCHIVE]:111
WorkerTypesCounts[CORRELATION]:222
WorkerTypesCounts[INDEX2]:333

@dougbu any idea on this? Is index some kind of reserved term?

Is index some kind of reserved term?

Shouldn't be.
@pelhu do you have a small sample e.g. a project in a GitHub repo that I could clone then debug?

@pelhu do you have a small sample e.g. a project in a GitHub repo that I could clone then debug?

@dougbu sorry, it is in my enterprise project. But if you want i can prepare small project for debug.

But if you want i can prepare small project for debug.

That would be great @pelhu!

That would be great @pelhu!

Hi @dougbu here is project https://github.com/pelhu/MvcIssue7091

Thanks for the project @pelhu!
:ok: this bug (and it is a bug) is due to the CollectionModelBinder's workarounds for binding collections containing gaps or a subset of a submitted collection. The "index" key is interpreted as the collection of keys that should be bound.
In this case, model binding creates an interim List<KeyValuePair<string, int?>> and adds a KeyValuePair<string, int?> with Key==null and Value==null to that. The element binder failed but the collection binder added the "invalid" (for the dictionary case) element to fill an expected gap in the collection and allow the binder to find later errors. The ArgumentNullException occurs shortly after, while attempting to convert the list to the requested dictionary.
Possible fixes:

Use "index" only when binding collections of simple types e.g. not when binding IEnumerable<KeyValuePair<string, int?>>. This breaks down when the submitted values have names like Dict[0].Key, Dict[1].Value, … and you do want to skip some indices for some reason.
Use "index" unless binding a Dictionary<TKey, TValue>. This again breaks the Dict[0].Key, Dict[1].Value, … case
Attempt to use "index" all the time but don't add anything to the collection when the element binder fails in the first iteration. If this check fails, the collection should be empty anyhow.
a. Could limit this further and only skip the addition when the "index" appears to contain only one value.
Always stop binding collection elements on the first failure. This is the case already when not using "index". However, doing this misses errors in the submitted "index" value.
Subset the CompositeValueProvider to remove the JQueryFormValueProvider while getting the "index" value. This would mean Dict.index (if submitted) would be used for index names but Dict[index] (what's submitted in this case) would not.
Add a try block in DictionaryModelBinder either around the collection.ToDictionary(...) call or the base.BindModelAync(...) call. The binder could then continue with its fallback binding approach. This may be useful in general when TKey is string but could also hide errors in the submitted data e.g. Dict[0].Key=&Dict[0].Value=23.

I lean toward (4) because it only restricts syntax, doesn't remove or narrow any features. I'm thinking (5) may also help but only to prevent the Exception for Dict[0].Key=&Dict[0].Value=23 leaking out of the model binding system. (That's really a separate bug.)
@Eilon, @rynowak your thoughts?

Admittedly the choice of "index" for this special case isn't the best. The name needs to be relatively sensible but shouldn't have been such a common word. Even "$index" or similar would have been better. But, changing this now would be a significant breaking change.

My counts were off. I've updated the references in my last paragraph before the break.
I've also prototyped (5) and found no tests at all fail with that in place. Not ready for a PR (need tests) but at least we know that option avoids this problem.

@mkArtakMSFT cost takes into account work I've already done on this issue

390ebbb258 in release/2.1
1aeaf69f87 merges this to dev


Fix Drag and Drop on mobile devices

This is done by adding a multi-backend DnD provider and a html5 to touch pipeline package. Both are used in the App.tsx. The result was tested in normal chrome, the chrome mobile mode, on an android smartphone on chrome and in Safari on both an iPhone and an iPad.

PR Checklist

[x] Link to the respective task if one exists: COM-860
[x] Provide screenshots/screencasts if the change contains visual changes

Screenshots/screencasts

Desktop
https://github.com/vivid-planet/comet/assets/56400587/353547ae-9029-4f62-9063-5b0ad7422bd6
Mobile (iPad)
https://github.com/vivid-planet/comet/assets/56400587/66dcba21-39cd-4b6d-af05-bd3b7f322883

Why doesn't this PR target main? And we also need this in Starter.
@nsams what do you think about moving the DndProvider to the library and wrap the areas where it's needed (e.g., page tree). Would this even work?

but then we need to add the provider also eg. where we have forms with blocks. (blog ordering is also done using react-dnd, right?)

but then we need to add the provider also eg. where we have forms with blocks. (blog ordering is also done using react-dnd, right?)

Yes, but we could wrap the BlocksBlock, ListBlock etc. with the dnd provider. No need to wrap the complete application

Does this work and is this recommended? I mean why does this provider even exist?

They recommend putting it next to the app root: https://arc.net/l/quote/kiozvjus


XCode14 新增了一些宏，导致ps 、 pa等快捷键不能第一时间打出对应的代码块

您好，邮件已收到。

Thank you. Your email is received and will be handled as soon as possible.

80%的快捷方式都失效了

关注

Thank you. Your email is received and will be handled as soon as possible.

加下前缀吧

Thank you. Your email is received and will be handled as soon as possible.

I fixed it with in qmui snippets add a prefix, such as 'q'
Onlyone @.***> 于2023年4月27日周四 12:14写道：

Thank you. Your email is received and will be handled as soon as possible.
—
Reply to this email directly, view it on GitHub
https://github.com/QMUI/QMUI_iOS_CodeSnippets/issues/11#issuecomment-1524671083,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANQESJPQI3PBUOAQCMBMPTXDHXBJANCNFSM6AAAAAARSUQQ2M
.
You are receiving this because you commented.Message ID:
@.***>


training dataset example

any dataset example?

image_crop is original image?
image_crop_mask is black bg with white area?


bpftrace vs systemtap?

What's the difference? How to choose?

That's a good question for, say, a bay area meetup where I have half an hour or so to accurately answer it, and my employer has already agreed that I can take the time to answer such questions. Answering it here would take hours.

@V0idk: this answers your question I hope https://lwn.net/Articles/852112/


Support multiple searchPaths while preserving case-sensitive feature …

…(by using Array syntax). Fixes #2335

Docs: https://github.com/knex/documentation/pull/69