Air Purifier Support

Not sure how easy it is but could I ask if this is a possibility.
An example of the type of device Sharp KI-HS70
Thanks as always.

Do you already have the device in question?

Is it echonet compatible? If it is it depends on how it functions in practice and what the most appropriate home assistant entity would  be to model it.

I have the KI-HS70 and the KI-HS50 and would be happy to test.

Are you comfortable with using Python from the command line?
if you clone the 'pychonet' repo, update 'example_async.py' with your IP address details and run it with
python3 'example_async.py'
Also, you should be able to simply add your device now from the integrations menu, and then at the very least sensors will be created, then we can work out how we best model it.

Thanks as always will give it a try and let you know

Okay here is the data returned.
And both Air Purifiers can be added to Home Assistant.
ECHONET Instance 0x1-0x35-0x1 identification number discovered!
[{'eojcc': '0x35',
'eojci': '0x1',
'eojgc': '0x1',
'getmap': ['0x80',
'0xa0',
'0xc0',
'0xf0',
'0x81',
'0xf1',
'0x82',
'0xf2',
'0xf3',
'0x84',
'0x85',
'0x86',
'0x88',
'0x89',
'0x8a',
'0x8b',
'0x8c',
'0xfc',
'0x9d',
'0xfd',
'0x9e',
'0x9f'],
'host': '<IP_ADDRESS>',
'manufacturer': 'Sharp',
'setmap': ['0x80', '0x81', '0xa0', '0xf3'],
'uid': None}]

Is it showing the sensor data correctly?
Get Outlook for iOShttps://aka.ms/o0ukef

From: glockpete @.>
Sent: Sunday, September 26, 2021 6:01:12 PM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Comment @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
Okay here is the data returned.
And both Air Purifiers can be added to Home Assistant.
ECHONET Instance 0x1-0x35-0x1 identification number discovered!
[{'eojcc': '0x35',
'eojci': '0x1',
'eojgc': '0x1',
'getmap': ['0x80',
'0xa0',
'0xc0',
'0xf0',
'0x81',
'0xf1',
'0x82',
'0xf2',
'0xf3',
'0x84',
'0x85',
'0x86',
'0x88',
'0x89',
'0x8a',
'0x8b',
'0x8c',
'0xfc',
'0x9d',
'0xfd',
'0x9e',
'0x9f'],
'host': '<IP_ADDRESS>',
'manufacturer': 'Sharp',
'setmap': ['0x80', '0x81', '0xa0', '0xf3'],
'uid': None}]
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-927254075, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDCR6ZXM5772RLBXKATUD3HMRANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Nothing is created within HA but your integration accepts it.

So nothing gets configured at all under the integration menu? It should have at the very least created a bunch of sensor objects…
Is there any logs or error messages in the Home Assistant log?
Get Outlook for iOShttps://aka.ms/o0ukef

From: glockpete @.>
Sent: Sunday, September 26, 2021 6:04:59 PM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Comment @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
Nothing is created within HA but your integration accepts it.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-927254758, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDCXJBGX7SDFL6PAZ4LUD3H2XANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Here are the relevant logs
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] None is the UID..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] None is the UID in ECHONET connector..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] {'d00fa19d35e825ac53e5a1c59896d1ff': [], 'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7f00cdcf7670>} has already been setup..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] None is the UID..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] None is the UID in ECHONET connector..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] {'d00fa19d35e825ac53e5a1c59896d1ff': [], 'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7f00cdcf7670>, 'be45ea06d3abbc63f127e713c91571ba': []} has already been setup..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] None is the UID..
2021-09-26 16:42:34 DEBUG (MainThread) [custom_components.echonetlite] None is the UID in ECHONET connector..

Apologies...

Also can you run the 'example_async' against both air purifiers...

Okay have followed what you said. (I think)
LOG.txt
)

The re-run of 'example_async' returned the following:
<IP_ADDRESS> - ECHONET Instance 0x1-0x35-0x1 identification number discovered!
[{'eojcc': '0x35',
'eojci': '0x1',
'eojgc': '0x1',
'getmap': ['0x80',
'0xa0',
'0xc0',
'0xf0',
'0x81',
'0xf1',
'0x82',
'0xf2',
'0xf3',
'0x84',
'0x85',
'0x86',
'0x88',
'0x89',
'0x8a',
'0x8b',
'0x8c',
'0xfc',
'0x9d',
'0xfd',
'0x9e',
'0x9f'],
'host': '<IP_ADDRESS>',
'manufacturer': 'Sharp',
'setmap': ['0x80', '0x81', '0xa0', '0xf3'],
'uid': None}]

.175 is not working.
Get Outlook for iOShttps://aka.ms/o0ukef

From: glockpete @.>
Sent: Sunday, September 26, 2021 6:42:17 PM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Comment @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
Okay have followed what you said. (I think)
LOG.txthttps://github.com/scottyphillips/echonetlite_homeassistant/files/7231022/LOG.txt
)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-927261105, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDHBTBU74EHEEDWEFSDUD3MGTANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

So not working with .175??
Get Outlook for iOShttps://aka.ms/o0ukef

From: glockpete @.>
Sent: Sunday, September 26, 2021 6:49:04 PM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Comment @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
The re-run of 'example_async' returned the following:
<IP_ADDRESS> - ECHONET Instance 0x1-0x35-0x1 identification number discovered!
[{'eojcc': '0x35',
'eojci': '0x1',
'eojgc': '0x1',
'getmap': ['0x80',
'0xa0',
'0xc0',
'0xf0',
'0x81',
'0xf1',
'0x82',
'0xf2',
'0xf3',
'0x84',
'0x85',
'0x86',
'0x88',
'0x89',
'0x8a',
'0x8b',
'0x8c',
'0xfc',
'0x9d',
'0xfd',
'0x9e',
'0x9f'],
'host': '<IP_ADDRESS>',
'manufacturer': 'Sharp',
'setmap': ['0x80', '0x81', '0xa0', '0xf3'],
'uid': None}]
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-927262143, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDANYL4QHUV5CUW7MILUD3NABANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Also, is .75 creating anything on the integrations page as a Device?

.175 is not working. Its either not echonetlite compatible or a setting needs to be enabled..

Agreed its probably a problem my end as there are no instructions on how to enable echonet lite on them. but they are basically identical.

. Also, is .75 creating anything on the integrations page as a Device?
It appears on the integrations page but there is nothing added when click on the device.

so .75 doesn't show a device or install any entities? strange it should have configured sensors.
Can we forget about .175 for now and focus on .75 thanks, i will try to work out why the sensor creation is failing.

Can you delete .75 from your integrations reload home assistant and then re-add it?

Here is the log once removed and added back.
And the images are hopefully useful re no entities.
[LOG.txt](https://github.com/scottyphillips/echonetlite_homeassistant/files/7231066/LOG.txt

)

Can you please update the custom_component again with the very latest push thanks and then collect the logs again.

Updated, reloaded, re-added.
LOG.txt

Thanks I’m going to have to think about why this isn’t working. I don’t have a lot of time to spare either sorry so don’t expect anything overnight.
Get Outlook for iOShttps://aka.ms/o0ukef

From: glockpete @.>
Sent: Sunday, September 26, 2021 7:23:50 PM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Comment @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
Updated, reloaded, re-added.
LOG.txthttps://github.com/scottyphillips/echonetlite_homeassistant/files/7231084/LOG.txt
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-927267975, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDEDSCTQK7F766ORVGTUD3RCNANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

No problem, thanks so much for all your hard work! I really appreciate it.

I actually think that it has created some sensors as it is trying to poll the API against .75 in the logs. They might not be under the integrations menu however so can you peruse through your full list of entries and see if any related to your air purifier are under the entities register.
Get Outlook for iOShttps://aka.ms/o0ukef

From: glockpete @.>
Sent: Sunday, September 26, 2021 7:33:27 PM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Comment @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
No problem, thanks so much for all your hard work! I really appreciate it.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-927269645, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDA253Z3KWAZHGXOHEDUD3SGPANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@glockpete Did you figure this one out?

@glockpete Did you figure this one out?

Sadly not..

@scottyphillips
I have had another look, and in regards to the Air Purifier issue, I can see that after adding the device to the Echonet intergration, a entry is made in the "core.config_entries" BUT nothing is created in the "core.device_registry" and "core.entity_registry" as would have been expected. Not sure if that is of any use.
Thanks again

Sorry, i can’t really work this out without having access to a similar device to test frequently with….  I don’t really have the spare time either. 😞

Thanks to leonunix and his awesome contribution; he has coded the air purifier class into the pychonet library which I’ll be merging later today. I am going to assume he is also working on implementing the home assistant component 🥰 so possibly we may see this issue resolve in the near future..

Okay, I've made a tweak to the code to hopefully prevent non-standard ECHONET codes from trying to be created as sensors. Can you pull the latest version and try to add your air purifier again, and fetch me the log?

@leonunix were you interested in testing this as well, since you contributed code to the pychonet library?

@scottyphillips yes. I will do a test  with non-standard codes.

@leonunix thanks for your amazing effort. @glockpete can you update to latest and see if working.

Will have a look and let you know. Thanks so much to both of you!! @scottyphillips    @leonunix

Attached are the logs.
Appears to be a few issues.
Logs.txt

Have you rebooted home assistant a couple of times to confirm the error is consistent?

I can replicate that error, but it only occurs when the HVAC in question is not able to be reached by Home Assistant. So please verify IP network connectivity for both of your offline systems and let me know.
Otherwise I have just validated that the latest code has no dramas with multiple HVAC systems and to be honest I would have expected other people would have complained by now.
From: glockpete @.>
Reply-To: scottyphillips/echonetlite_homeassistant @.>
Date: Saturday, 15 January 2022 at 1:12 am
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>, Mention @.***>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Air Purifier Support (#48)
Attached are the logs.
Appears to be a few issues.
Logs.txthttps://github.com/scottyphillips/echonetlite_homeassistant/files/7870832/Logs.txt
[Image removed by sender. Screenshot]https://user-images.githubusercontent.com/52880723/149528770-d54e97a3-e698-4d3f-b2fb-d26fd1d6c177.png
—
Reply to this email directly, view it on GitHubhttps://github.com/scottyphillips/echonetlite_homeassistant/issues/48#issuecomment-1013150499, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGHQNDCXOQVBY6RRIYMM2OLUWAVK5ANCNFSM5ED7PI7Q.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>

I have updated the code so the devices will be polled even if offline but will report 'unavailable'. The KeyError will no longer appear. As mentioned can you please download latest code, verify network connectivity for your two offline HVAC devices and try again.
Also; I am assuming your devices have a static IP address assigned?


Adding block of code in main content panel

First off, thanks for providing this awesome template!
I saw that you can do inline code. But how do you create a text block of code?
I am working on including JSON response samples in the main content panel.
Thanks!!

+1 here.
I'm also trying to drop a simple code block in what would be the middle section, when I have no_example: true enabled in index.html.md.
Adding code blocks puts them on the right side anyway, without a panel there. Is this type of code block supported?

One workaround is that could mangle the styling of blockquote to look like, and function as, an inline code block.
For better or worse, we globally switched off Slate's right column and imposed a 2-column layout. So all our code examples are inline. We did this by changing this statement in layout.erb:
<body class="<%= page_classes %>" data-languages="<%=h language_tabs.map{ |lang| lang.is_a?(Hash) ? lang.keys.first : lang }.to_json %>">
...to:
    <a href="#" id="nav-button">```

Then we named the result `twocolumn.erb` and referenced that in our `index.html.md`.

Yup, @SethSanchez is correct, this is not supported! See #406.

@vuskeedoo you ever find a decent work-around for this?

Hi there!
I've posted a small hack in #855 which allows you to do this. Hope it helps!


Aggregate problems

Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle help

Currently, the following commands are supported:
@bot-gradle test <BuildTrigger1> <BuildTrigger2> ... <BuildTriggerN> [without PTS]
Add without PTS to run the build with full test coverage.

A trigger is a special build for this PR on TeamCity, common triggers are:

SanityCheck/CompileAll/QuickFeedbackLinux/QuickFeedback/PullRequestFeedback/ReadyForNightly/ReadyForRelease
Shortcuts: SC/CA/QFL/QF/PRF/RFN/RFR
Specific builds:

BD: BuildDistributions/BuildDocs so that you can preview the generated docs/distribution.
PT: PerformanceTest, all performance tests for Ready For Nightly stage.
APT: AllPerformanceTest, all performance tests, including slow performance tests.
AST: AllSmokeTestsPullRequestFeedback
AFT: AllFunctionalTestsPullRequestFeedback
ASB: AllSpecificBuildsPullRequestFeedback
ACC: AllConfigCacheTestsPullRequestFeedback
ACT: AllCrossVersionTestsReadyForNightly
AFTN: AllFunctionalTestsReadyForNightly
ACTR: AllCrossVersionTestsReadyForRelease
AFTR: AllFunctionalTestsReadyForRelease

@bot-gradle merge

queues this PR for testing and merges if all tests pass by:

Creating a merge commit from your PR branch HEAD and the target branch
Running a ReadyForNightly build against the merge commit
When it passes, fast-forward the target branch to this merge commit (i.e. merge the PR)

The merge commit is called a pre-tested commit, which means that it fully tests the integration
of your branch HEAD and latest master, instead of only testing your branch HEAD.
@bot-gradle squash

Squash the current pull request into a single commit. The squash message will come from the pull request body, with:

All Signed-off-by: lines kept.
All authors being Co-Authored-By:.

@bot-gradle cherrypick to <branch>

Cherrypicks the current PR to another branch.
A new PR will be created and a build will triggered automatically if there is no conflict.

@bot-gradle cancel

cancel a running pre-tested commit build or remove it from queue

@bot-gradle clean

clear the conversation history

@bot-gradle help

display this message

To run a command, simply submit a comment.  For detailed instructions see here.

@bot-gradle test ACT

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

@donat @reinsch82 In CC report we want to have/reuse your dedup mechanism as well. Do you have any plans for exposing such an API?

Just to be clear, we are not deduping here anything. We simply built a cache to collect identical events that are sent at the end of the build. We send the first one immediately, but if we see an very similar one, we simply cache it in memory and send it at the end of the build. This prevents the TAPI client to get flooded with problem events.
The next iteration will be about Problems API adoption. I think cc  should be using this functionality. Let's discuss this in a dedicated session.

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

@bot-gradle merge

WARN: This is a feature pull request but no changes to release note found.

Your PR is queued. See the queue page for details.

I've triggered a build for you. Click here to see all failures if there's any.


No search results found for any music

No search results found for any music when I use the play command.

Me too

I third this

Updating the pom.xml file to use a newer version of larval-layer 1.3.50 then compile, worked for myself

Updating the pom.xml file to use a newer version of lavaplayer 1.3.50 then compile, worked for myself

could you explain this? or give me the finished java file? I am not so tech experienced to do it myself

Building JMusicbot yourself is not supported. Always use the official releases on github.
This issue also is a duplicate of #443.

Duplicate of #443


Clicking into the range edit box should select that attribute of the item and let you manually type in a number

0.5.17 - https://i.imgur.com/31eT7B9.png - the white bordered  box

Duplicate of #152


Can I enqueue job at sub second level?

To enqueue job you should run the code
scheduler.enqueue_at(datetime(2020, 1, 1), func)
What if I want to run the job after 0.012345 seconds? Can I do something like
scheduler.enqueue_at(datetime(2020, 1, 1) + timedelta(microseconds=12345), func) ?

Trigger times are stored with second resolution:
https://github.com/ui/rq-scheduler/blob/master/rq_scheduler/utils.py#L10-L13
>>> calendar.timegm(datetime.datetime.now().utctimetuple())
1428411143

The latency of redis calls over the network is probably greater than 0.012345 seconds, so I don't think rq-scheduler is the right solution if you need subsecond accuracy. What is your use case for this?

My case is online game, I need to handle jobs with 0.2 seconds.
So you say, that rq-scheduler has a restriction and I can't succeed?

Possibly, you'd be fighting two things:

Those from_unix / to_unix functions internal to rq-scheduler would need to be modified to return a floating point number, which may be a breaking change for current users, not sure.

Network round trip times for enqueuing and dequeueing a job could potentially be in the hundreds of milliseconds. I've even seen multi-second response times for simple redis operations when using AWS (Elasticache Redis). It depends how you're running redis. If you can run the redis server locally along with the rq processes that would give you better performance (and once you do that you can get another improvement by using a unix domain socket instead of TCP), but then you lose the ability to run workers on multiple machines.

So it may be a little tricky to use rq-scheduler for something like an online game. It's more often used for slow operations like sending emails, resizing images, making API calls, etc. in the background of a web application.
Is your game played in real-time? From what I've seen, real-time game servers hold a lot of connections open (e.g. using tornado, twisted, etc.) and do as much as they can in-process and in-memory. Using tornado or twisted you could get the subsecond responses via the event loop. See callLater in twisted and call_later in tornado.

The included rqscheduler script already supports floating point intervals so I'm open to adding floating point intervals to interval argument to schedule(). So if what you want to schedule a job that runs every 0.2 seconds, you would be able to do:
scheduler.schedule(
    scheduled_time,
    my_function,
    repeat=5,
    interval=0.2
)

The above snippet should schedule the my_function to run 5 times at 0.2 seconds interval.


Discuss what are the mandatory/required fields

Currently we added this just to represent the idea https://github.com/nodeshift/oratrix/blob/master/src/util/fields.json.

So discussing with @lholmquist I think we are good on this. And we can move one for now.

Definitely license information should be mandatory.

@dhladky Thanks we are going to add that :+1:

https://github.com/nodeshift/oratrix/issues/10


Enable encryption of the sns topic created by lift construct

Hi,
While using the lift construct to create sqs queues and worker lambdas, an sns topic is created when alarm is specified. Could you please have serverside encryption enabled for this sns topic?

Hi @alanjoseuk and thanks for requesting this improvement.
As of today, you can rely on the extension feature to enable SSE on the SNS topic. Here is an exemple service file definition to achieve this:
constructs:
    my-queue:
        type: queue
        worker:
            handler: src/worker.handler
        alarm<EMAIL_ADDRESS>        extensions:
            alarm:
                Properties:
                    KmsMasterKeyId: "myKmsKeyId"

There is some dedicated configuration existing on the Queue construct to provide your own KMS key without relying on extensions for the SQS queue itself (see https://github.com/getlift/lift/blob/master/docs/queue.md#encryption). When a user specify SSE with a customer-owned KMS key, this configuration could be used as well for SNS if any alarm is configured as well. WDYT ? Would you be up to draft a PR to implement such functionality ?


[HDInsight] Added support for ESP with AAD-DS

Description
We made a change to the Swagger spec to add two new parameters in SecurityProfile for cluster creation. This PR contains the regenerated SDK (which was regenerated with a new API version), and re-recorded all tests. There were quite a few minor changes to the SDK due to the API version bump, but I expect this to contain breaking changes.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] Please add REST spec PR link to the SDK PR
[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

I can squash my commits if everything else looks good.

Apologies, I'm going to add one more commit, where I regenerate with these Swagger changes: https://github.com/Azure/azure-rest-api-specs/pull/4163
I missed these changes earlier, and these changes need to go together with this PR.


#133 press down is treated as multiple press and release in linux

Description
Fix linux treating key held as multiple press and release
I need some advice for adding test for this, I am not sure how to simulate this yet
Type of change

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

References
https://github.com/napari/napari/issues/133
How has this been tested?

manually tested on linux

Final checklist:

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

@sofroniewn Tested on Windows, works great and closes #1143 for me!

Great work @ziyangczi

Given this line in
https://github.com/napari/napari/blob/765349053f33f1537e345982cf804bc2a40199f6/napari/_qt/qt_viewer.py#L570
have you checked that things still work fine if someone presses and holds the up / down / left / right keys? i.e. things pressing and holding continues re-triggering events and say the slider keeps moving to the left?

the change should only change key release behavior, when key is held or pressed there should be no effect

the change should only change key release behavior, when key is held or pressed there should be no effect

Perfect, makes sense. Looks like this is the fix!!

NO WAY! What a holiday gift!!! 🎉 🎉 🎉  🙏 🙏 🙏 @ziyangczi!


Try to drink a potion on route 1

Bot started
Starting new quest: Viridian School: from Route 1 to Route 2
System: The Server is currently full.HP

Route 1 with a full-health Squirtle.
Don't mind the error message, it looks weird because of a bug in PROShine.
The original message is Your Pokemon already has full HP!.
Probably comes from this piece of code:
function ViridianSchoolQuest:Route1()
	if self:needPokecenter() then
		if useItemOnPokemon("Potion", 1) then
			return true
		end
	end
	return moveToMap("Route 1 Stop House")
end

Thank you.
Fixed in commit 126c8da8f9a853a9d8ddb95d730e35436c83f55c


set read type when response to client

Disable Chat in line setting:
Response settings =>
Toggle responses =>
Chat
https://manager.line.biz/account/@673ejfey/setting/response


Use ChiselVerify for Verilog and VHDL projects

This is a proposal: let us make ChiselVerify a more generic testing tool also for Verilog and VHDL designs. Something like, but better than, cocotb.

This is really easy to do using Chisel blackboxes, which is in a way similar to how it feels in cocotb. The main issue is that our tool is reliant on ChiselTest which is no longer supported in modern versions of Chisel, so a solution would be to separate ChiselVerify from ChiselTest by implementing our own peek poke style tester. This is actually not particularly different and only requires adding a couple of small instrumentation passes to CIRCT to enable it.

From what I can tell by the releases of ChiselTest, there is technically support for Chisel 6: https://github.com/ucb-bar/chiseltest/releases/tag/v6.0.0
In any case, I suspect that a rebuild of ChiselVerify into the more recent versions of Chisel(Test) would take quite some efforts and time. I would argue that fixing the inconsistent elements of the current library (read, the tests that intermittently fail) is a more important first step.

What I meant is that we mostly depend on very few features from ChiselTest, i.e. the peekpoke interface. If we were to implement that ourselves, we wouldn't be dependent on it at all. From what I hear, Kevin will no longer be maintaining ChiselTest in the very near future, so it's not really sustainable to depend on that for the survival of ChiselVerify.


Identified gaps in persist annotation validations

Description:
Following scenarios are not properly validated,

[ ] Duplicated fields in both Key and uniqueConstraints on Entity annotation
[ ] Empty values for fields in both Key and uniqueConstraints on Entity annotation mixed with valid ones
[ ] Empty unique constraints values are not validated, [], [[]]
[ ] Add validations for simple type fields defined as non mandatory field
[ ] Referred record w/o an entity:Relation
[ ] Validate persist:Relation is attached to valid entity. (ln: 528)

@niveathika Skipped empty list validation of key and unique constraints as a table may not contain any keys. Should we check this?

For key shouldn't it be an error? -> At this point we are not supporting tables w/o primary key.
Unique Constraint: If there is no constraint user need not add the field. If they add it we have to assume there will be a constraint.


tests: Disable installing googletest & googlemock

With version 1.8, googletest and googlemock gained support for CMake install rules, which causes MoCOCrW to install /usr/lib/libgtest.a when not explicitly disabled.
Since we only need this library for testing, disable the installation.

It seems this doesn't work yet, so please don't merge as-is.


Can you share the camera poses for render_images used by rubble scene？

I have created a series of cameras for Rubble scene based the code of Nerf , but the result is not good .
Can you share the camera poses for render_images used by rubble scene？
Thanks a lot
qc

I have created a series of cameras for Rubble scene based the code of Nerf , but the result is not good .
Can you share the camera poses for render_images used by rubble scene？
Thanks a lot qc

You may generate the poses backward from metadata, that are contained in .pt files with filename corresponding to image filename.
After you download the Rubble dataset you can find for example rubble-pixsfm/train/metadata/000001.pt, then if you open it with torch.load you can read filed "c2w" but this pose is scaled so that the shole datset within [0;1]. So you have to scale this pose with parameter read from field "pose_scale_factor" from torch file rubble-pixsfm/coordinates.pt. Also you have to change frame for the poses, remember that poses in DRB frame as the author mentioned in Readme.md. Also look at https://github.com/cmusatyalab/mega-nerf/blob/main/scripts/colmap_to_mega_nerf.py#L408-L409
I'm not the developer or author of the repository so I don't know manipulation with poses, how are they were generated originally.


vdist returns incorrect answer when Lat1 and Lat2 are both zero or close to zero

When checking a distance along the equator, vdist will return an incorrect result. By adjusting the latitudes so they are close to zero, vdist will correct this behavior.
The following code illustrates the issue:
from pymap3d.vincenty import vdist
print(0, '\t', vdist(0, 0, 0, 1)[0])
for i in range(16, -1, -1):
  try:
    print(1*10**-i, '\t', vdist(1*10**-i, 0, 1*10**-i, 1)[0])
  except ValueError as e:
    print(1*10**-i, '\t', f'Failed: {e.args}')

This code prints the following:
0<PHONE_NUMBER>7670657
1e-16<PHONE_NUMBER>7670657
1e-15<PHONE_NUMBER>7670657
1e-14<PHONE_NUMBER>7670657
1e-13<PHONE_NUMBER>7670657
1e-12<PHONE_NUMBER>7670657
1e-11<PHONE_NUMBER>7670657
1e-10<PHONE_NUMBER>7670657
1e-09<PHONE_NUMBER>7670657
1e-08<PHONE_NUMBER>7670657
1e-07<PHONE_NUMBER>7670657
1e-06 	 Failed: ('math domain error',)
1e-05<PHONE_NUMBER>932247
0.0001<PHONE_NUMBER>9305801
0.001<PHONE_NUMBER>7638453
0.01<PHONE_NUMBER>0904085
0.1<PHONE_NUMBER>7470953
1<PHONE_NUMBER>3938583

The values for 1e-05 and greater appear to be correct, and agree with the output from the Matlab distance function. The values for 0 and from 1e-16 through 1e-07 are all off by about the same amount, and 1e-06 produces a math domain error.

 I need to apply such checks to each function. I checked this vs. Matlab with https://github.com/scivision/pymap3d/blob/master/examples/vdist_stability.py


Update changelog for v0.4

I think it's good time to publish next version with new cool features.

bors r+


[AIRFLOW-56] Airflow's scheduler can "lose" queued tasks

When Scheduler is run with —num-runs, there can be multiple
Schedulers and Executors all trying to run tasks. For queued tasks,
Scheduler was previously only trying to run tasks that it itself had
queued — but that doesn’t work if the Scheduler is restarting. This PR
reverts that behavior and adds two types of “best effort” executions —
before running a TI, executors check if it is already running, and
before ending executors call sync() one last time
Closes https://issues.apache.org/jira/browse/AIRFLOW-56

@abridgett please give this a shot regarding #1342
@syvineckruyk it's very important for you to have a look at this -- I had to partially undo one of the fixes that kept SchedulerJob from preying on BackfillJob's queued tasks. That fix made it so SchedulerJob only dealt with its own tasks, but when SchedulerJob runs with num-runs, it keeps restarting and the new scheduler was ignoring tasks queued by the old one.

Coverage decreased (-0.02%) to 67.979% when pulling 8fa7fd487c59673c1163dee1b0631f4d49c6809e on jlowin:queued-tasks into 5d15d6849ab8de5b835330a1ffced0690ee1a867 on airbnb:master.

It seems to have worked today, will keep an eye on it - many many thanks @jlowin

worked today as well FYI (last time it was updated in the middle of a run effectively so this was the first real test)

Great. @syvineckruyk any luck?

@jlowin I won't be able to test until tomorrow. Sorry for that .. I have bunch of test dags ready to go so testing will be quick when I start.
The sample dags from #1350 and #1225 should be a good start though.

No rush, just wanted to make sure you had seen the issue.

@syvineckruyk just want to ping you on this, we may need to merge it to master shortly

Coverage decreased (-0.03%) to 66.996% when pulling f592c65fb6b8d974ddb1ce477cb7aefc5c0fff5b on jlowin:queued-tasks into c1f485f8475300d5fd26a02af751f376ad21909b on airbnb:master.

@jlowin gotcha ... starting to test now.

@jlowin so I am running your "queued-tasks" branch ... and seeing some weird issues around dag runs. don't have an extact handle on it yet... failed dag runs are getting created ... and I am now seeing dag runs created for 5 days prior to the start date.

I think the 5 day before thing is a known issue with the scheduler logic -- basically if you have a non-scheduled execution, the scheduler picks up 5 days before it. We will have to deal with that separately.

@jlowin  cool. I found the cause of the failing dag runs .. it was an unrelated issue. continuing to run this version today ... so far so good.

@jlowin so far on this branch I have found a couple of issues. Depends on past does not appear to be respected. At least on SDOs ... don't know about other tasks. I have SDOs in a failed state... at the next interval the following task instance of the failed SDO is launched.
This may be helpful ... the job was behaving as expected. A few minutes ago when we crossed over to April 24th UTC... that is when the task-instances that should not have been kicked off began running. The schedule of those tasks was not midnight ... it was actually for 12 hours from then at 12pm. So something about the new UTC day seems to be involved.
I have also observed several instances of subtasks completing in success.... but SDO never notices and stays in a running state indefinitely.

@jlowin still trying to create a generic DAG to expose these bugs ... but wanted to let you know that it appears that the SDO operators that do not get updated do so when another task in the dag run has failed.

Task Fails
Dag Run Fails
Subtasks complete
Status of SDOs remains running

Excellent, thanks so much for the feedback @syvineckruyk. I'm trying to figure out what in this code could have led to that behavior. I think it might be the extra sync() command I gave each executor. The idea was to avoid orphaned tasks by waiting for all tasks to complete -- but maybe there's a situation where the parent DAG has already quit before the orphaned tasks do... thinking further.

@jlowin just a question when I was running the last version you gave me.... things were running well ... what was the issue that required this area to need more work ?
commit fd9388c0c27c2e469f4eb0362800323a08b76d68
Merge: 58abca2 b2844af
Author: bolkedebruin<EMAIL_ADDRESS>Date:   Tue Apr 5 22:24:15 2016 +0200

    Merge pull request #1290 from jlowin/subdag-backfill-status

    Make sure backfill deadlocks raise errors

commit b2844af020cb5a470bd83ead09ddb121923084ca
Author: jlowin<EMAIL_ADDRESS>Date:   Mon Apr 4 18:59:13 2016 -0400

    Fix infinite retries with pools, with test

    Addresses the issue raised in #1299

The issue you were experiencing was because Scheduler and Backfill were both trying to queue your SubDag tasks. The fix I put in place was that Scheduler kept track of tasks it submitted to the executor, and only tried to run those tasks if they became queued. That way, the queued subdag tasks were left alone and Backfill handled them without interference. The problem is that folks often run Scheduler with the --num_runs parameters, which makes Scheduler restart periodically. When Scheduler restarts, it has no way to know what tasks it submitted before it quit, and so those tasks remain queued forever. The bug could occur less commonly if Scheduler were to quit for any other reason while tasks were queued.

Coverage decreased (-0.2%) to 66.856% when pulling 88a211d66894b8d02b8923378a97a3e5cce50373 on jlowin:queued-tasks into c1f485f8475300d5fd26a02af751f376ad21909b on airbnb:master.

@jlowin were you able to identify any of the issue I referred to above ?
Thanks

@syvineckruyk not directly but I removed some of the code that I suspect is causing it

As a matter of fact it looks like now Travis is failing with queued tasks -- so I think I need to leave that code in. More thinking...

Coverage increased (+0.0003%) to 67.029% when pulling 12b7b6a116a0eadcf3101b636ffbec6239437870 on jlowin:queued-tasks into c1f485f8475300d5fd26a02af751f376ad21909b on airbnb:master.

I think that here: https://github.com/jlowin/airflow/blob/queued-tasks/airflow/jobs.py#L650 we need an extra session.commit() after the delete.

+1!

LGTM

We have been blocked on this issue in 1.7.0.
Do you have some suggestions for fix it? Hot patch to 1.7.0 or upgrade to 1.7.1? Is 1.7.1 stable enough?
The 1.6.2 seem has the issue same. ;(
Thank you very much

1.7.1 is in much better condition than 1.7.0. So I would definitely use that one.

To be clear, <IP_ADDRESS> is the version you should be using. This version is quite stable.

I have tested <IP_ADDRESS>.
It seems there still are many issues on SubDag with pool, and the SubDags also waste many resources on celery.

@griffinqiu can you open up JIRAs for the known issues?


Add Hash#store and optimize Set#add?

Right now Set#add? is implemented doing:
if includes?(object)
  false
else
  add(object)
  true
end

That's a bit inefficient because there's a double hash lookup.
It would be cool to be be able to insert a key-value pair in a Hash and know if that was a new value or not (well, what Set#add? does) but that method doesn't exist. So here we introduce it as Hash#store.
Then we rewrite Set#add? using that new method.
Benchmark code:
require "benchmark"

set = Set{0}
1000.times do |i|
  set.add?(i)
end

Benchmark.ips do |x|
  x.report("add?") do
    set.clear
    1000.times do |i|
      set.add?(i)
    end
  end
end

Results:
old: 66.60k ( 15.01µs) (± 2.27%)
new: 99.17k ( 10.08µs) (± 4.75%)

Not a big difference but I still think it's bad if this can't be implemented efficiently, and I also think Hash#store might be a generally useful method because you can't do that efficiently right now.

I think the most common name for the "insert into map" operation is put. We could even do put(key, value) #=> old_value besides put(key) { value } #=> old_value and let '[]=beput(key, value); value. This also brings me to the somewhat weird behavior of storereturning the old value in case of an existing value and the new value in case of an updated value, I think it might be more consistent to return the default value in the latter case, or just alwaysnil`  (again,  in the no existing value case) even.

I think I wouldn't mind put's return value being V? and ignoring the default value, that's already the case for []?.

Looks like everyone's agreed on put, this can probably be moved forward.

Renamed! If we merge we can squash the commits or I can rewrite the history, but maybe it's not bad to keep the commit about the decision to rename store to put.

I'm having second thoughts about this, since I was confused by the name and thought this was a "put this value if it doesn't exist, else do nothing" call, which Hash is missing (but seems useful).
This method should probably be #replace, and have a version without the block which always returns the previous value, in addition to the current version.

Java has Map.put(key, value) (equal to Hash#[]=) and HashMap.putIfAbsent(key, value) which only stores if the key does not exist. The counterpart Map.replace(key, value) only stores if the key exists. There is also an overload Map.replace(key, old_value, new_value) which only stores if the key is set to old_value.


Pin version of serialize-error to 2.1.0

Summary
Put serialize-error back to version 2.1.0. It's a node library and later versions use node packages (e.g. util).
Ticket Link
Fixes #983
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit tests passed

Test Information
This PR was tested on: iPhone X (simulator)

We've had to do this once before in https://github.com/mattermost/mattermost-redux/pull/822 , but this new attempt is a tiny bit more involved because of type checking rules. The PR does introduce an explicit any usage, which compiles down to the correct serializeError.ErrorObject type.

Closing, since it's already handled by https://github.com/mattermost/mattermost-mobile/pull/3553


Dep versions

Found the dependencies could be brought up to latest with minimal effort.
If you accept these, assume you will use squash. If you want any changes or me to resubmit with a squashed version, that's no problem.

From this, I have also got a version that compiles against the wasmtime* 20.0.0 versions and the wit* 0.205.0 versions, but the changes necessary were a little more than trivial so  the current commits could be reviewed first (if the repo is even meant to keep up).

Was waiting for my other PR to be merged before merging from main and then pushing the wasmtime 20 support changes.

@FrankReh I apologize for letting this sit for so long. I've opened and merged https://github.com/rylev/wepl/pull/24 which updates to wasmtime 22. I'm going to close this issue. I appreciate your help here though!


Add Reformationstag to more german states

The Reformationstag has been added as a holiday to several german states since 2018, see here

Hi, thank you for your work.
Please apply fixes to pass checks in order to have it merged.
Thank you very much!

Pull Request Test Coverage Report for Build 365

12 of 12 (100.0%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-100.0%) to 0.0%

Files with Coverage Reduction
New Missed Lines
%

holidays.py
1
99.95%

Totals

Change from base Build 362:
-100.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls

Done. Sorry, forgot to run the tests on the first submit.

Great.. really fast! :)
I've just merged your fixes on a new branch ("beta"): I will push everything to master too when I build a complete new version for PyPi (it will happen when I stack a reasonable number of new features).
Thanks again!


artifactory_item_properties delete not handled correctly

Describe the bug
Deleting an artifactory_item_properties resource does not delete the property correctly in Artifactory.

Create a repository and property:

resource "artifactory_local_generic_repository" "test" {
  key         = "property-test"
}

resource "artifactory_item_properties" "test" {
  repo_key = artifactory_local_generic_repository.test.key
  properties = {
    "key1": ["value1"],
  }
  is_recursive = false
}

Apply output
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # artifactory_item_properties.test will be created
  + resource "artifactory_item_properties" "test" {
      + is_recursive = false
      + properties   = {
          + "key1" = [
              + "value1",
            ]
        }
      + repo_key     = "property-test"
    }

  # artifactory_local_generic_repository.test will be created
  + resource "artifactory_local_generic_repository" "test" {
      + blacked_out          = false
      + cdn_redirect         = false
      + id                   = (known after apply)
      + includes_pattern     = "**/*"
      + key                  = "property-test"
      + package_type         = (known after apply)
      + priority_resolution  = false
      + project_environments = (known after apply)
      + repo_layout_ref      = "simple-default"
      + xray_index           = false
    }

Plan: 2 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

artifactory_local_generic_repository.test: Creating...
artifactory_local_generic_repository.test: Creation complete after 0s [id=property-test]
artifactory_item_properties.test: Creating...
artifactory_item_properties.test: Creation complete after 0s

Delete the artifactory_item_properties resource and apply again:

Apply output
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  - destroy

Terraform will perform the following actions:

  # artifactory_item_properties.test will be destroyed
  # (because artifactory_item_properties.test is not in configuration)
  - resource "artifactory_item_properties" "test" {
      - is_recursive = false -> null
      - properties   = {
          - "key1" = [
              - "value1",
            ]
        } -> null
      - repo_key     = "property-test" -> null
    }

Plan: 0 to add, 0 to change, 1 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

artifactory_item_properties.test: Destroying...
artifactory_item_properties.test: Destruction complete after 0s

Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

Property has not been deleted from repository. Subsequent terraform plan commands show no changes.

Issue occurs regardless of is_recursive value, and when setting properties on files with item_path.

Artifactory version 7.84.10
Terraform version 1.5.7
Provider version 11.5.0

Requirements for and issue

[X] A description of the bug
[X] A fully functioning terraform snippet that can be copy&pasted (no outside files or ENV vars unless that's part of the issue). If this is not supplied, this issue will likely be closed without any effort expended.
[X] Your version of artifactory (you can curl it at $host/artifactory/api/system/version
[X] Your version of terraform
[X] Your version of terraform provider

Expected behavior
Repository property is deleted when artifactory_item_properties is deleted.
Additional context
Add any other context about the problem here.

@critchtionary Thanks for the report! I'll investigate.


Choose a custom color

Just a question about custom colors...
I see choosing them does not appear to be implemented but, is it implemented in pywizlight either? Experimenting with the color gradient chooser in the WiZ app, the colors don't appear to be "really", in that the app has predefined "color names" for pretty much every position on the gradient (i.e.: Dark Red, Navy Blue, Harlequin, etc.)... so, when one adds a "custom color", is that just giving it a predefined scene_id maybe? ...or maybe those are just color nick-names Philips hard-coded in their iOS app? Just wondering if those colors might be setable by the scene_id parameter after added (if the scene_id param could go above 32)... ?

It works beautifully! I'm testing this with a fun script that sets the lamp color to a gradient hue based on the outside temperature every 10 mins or so. :)
Here's my bulb info:
A Phillips Full Color WiZ bulb
Model: A21, Colors
Current FW Version (is this updateable?): 1.24.0
Model ID: B23078

Testing the RGB parameter with my bulb above, it's kind of interesting. It seems as though the bulb does not display as many minor color changes and hues but, the predefined scene colors are much more noticeable. It's like Phillips figured out what colors the bulb was best at displaying and assigned those to scene IDs. :)

Glad it's working for you. I'm not sure the firmware is updateable, I don't see any way of doing so in the WiZ app. Sure share your temp bash script, I'm curious.

My hacked-together script uploaded (weather_bulb.txt -> change extension to .sh). You can kinda see what I'm trying to do... Scenes vs RGB colors are an interesting comparison in the actual bulb settings. I have this running on a crontab every 10 mins or so.
weather_bulb.txt

Thanks for sharing. I'm not sure if the Wiz bulbs have the same color support as the Hue bulbs. I've seen in the product pages of Hue bulbs advertise support for 16 million colors, while on Wiz bulbs it just says millions of colors. Still those are nice color charts you linked that should serve well as quick references.

Ho to wizcon team.
Thank you so much for this beautiful python script. I installed this on my Raspberry Py and use it with my Domoticz server.
Use just one C37 Wiz Bulb and wizcon can perfectly change every scene number without problem.
But color seems to not work with every rgb code. Tested some rgb based on @djacobson link :

Blue/Gree/Red with only one "255" works
Aqua (0,255,255) work
Yellow (255,255,0) work
Magenta (255,0,255) work
Black (0,0,0) not work and put light to similar "warm white" scene
Chartreuse (128,255,0) seems to made a green color but it's not noticeable , same happened whit Crimson (213,0,53)
Regards

Hello @pierre-guillot thanks for your input.
I think there is something wrong with colors in pywizlight  which is the library that wizcon uses for controlling Wiz bulbs. I know they have recently made a number of changes to handling colors.
Here is my experience from testing with pywizlight 0.3.4, then updating to pywizlight 0.4.16:
Black RGB(0,0,0) did nothing, no color change
Chartreuse (128,255,0) seems ok to me, color is mellow lime green.
(213,0,53) looked more like hot pink magenta.
Crimson (220,20,60) looked more like pink, was expecting closer to red.

Updated to pywizlight 0.4.16

Black RGB(0,0,0) went to bright harsh white, like Cool white scene.
Chartreuse (128,255,0) produced much lighter whitish-green. Seemed more accurate before in pywizlight 0.3.4.
(213,0,53) now very white washed, very little pink or red color. Seemed more accurate before in pywizlight 0.3.4.
Crimson (220,20,60) was nearly the same as (213,0,53), no noticeable difference. Way worse now than in pywizlight 0.3.4.

wizcon 0.3.0
pywizlight 0.3.4 -> 0.4.16
Bulb:
Model	Model ID	Firmware
A19 (RGB)	1.24.0	23007

There is currently an open issue which may be related to this behavior: Three channel RGB not displaying correctly. The developer of pywizlight @sbidy said this would be corrected in the next release.

Good news thank you for your replay!
I'll waiting the new version of pywizlight and test again.
Ask me if you want more test or informations :)
regards


feat(performance-metrics): system resource tracker configuration

Overview
Adds the ability to configure the behavior of the system resource tracker monitoring script through environment variables.
Closes EXEC-597
Test Plan

[ ] Pull this branch
[ ] Go to performance-metrics project
[ ] Run make teardown && make setup to ensure python env is up to date
[ ] Ensure performance metrics ff is enabled by running make set-performance-metrics-ff host=<robot_ip>
[ ] Push changes to Flex or Dev Kit by running  make setup-remote-flex host=<IP_ADDRESS> ssh_key=~/.ssh/flex_ssh_key
[ ] ssh to the robot
[ ] Wipe any existing performance metrics data rm -fr /data/performance_metrics_data
[ ] Go to /opt/opentrons-robot-server
[ ] Run python3 -m performance-metrics.system_resource_tracker

[ ] Verify you get a log message that looks like the following

2024-07-09 14:31:40,347 - __main__ - main() - INFO - Running with the following configuration:
enabled=False
process_filters=('/opt/opentrons*', 'python3*')
refresh_interval=10.0
storage_dir=/data/performance_metrics_data
logging_level=INFO

[ ] Kill the process with CTRL + C
[ ] Ensure that system resources are captured by looking at system_resource_tracker files in /data/performance_metrics
[ ] Run OT_SYSTEM_RESOURCE_TRACKER_REFRESH_INTERVAL=15.0 OT_SYSTEM_RESOURCE_TRACKER_LOGGING_LEVEL=DEBUG python3 -m performance-metrics.system_resource_tracker

[ ] Verify the initial log message about the configuration has changed to something like:

2024-07-09 14:31:40,347 - __main__ - main() - INFO - Running with the following configuration:
enabled=False
process_filters=('/opt/opentrons*', 'python3*')
refresh_interval=15.0
storage_dir=/data/performance_metrics_data
logging_level=DEBUG

[ ] Verify you are now getting a ton more log messages but less frequently
[ ] Kill the process with CTRL + C
[ ] Ensure that more system resources captures have been added by looking at system_resource_tracker files in /data/performance_metrics

Changelog

Add make targets to assist in setting up performance-metrics on robot
Add performance_metrics.system_resource_tracker._config containing SystemResourceTrackerConfiguration class which has all values that can be configured for the SystemResourceTracker
Update SystemResourceTracker to use SystemResourceTrackerConfiguration
Add pulling config from environment variables and using it in main.py
Add logging for debugging purposes
Add tests

Review requests
I configured all the performance metrics loggers to use the same name so I can update the log level of all of them inside of main. Is this the correct way to ensure all of them get updated? Or is there a better way
Risk assessment
Low

@skowalski08, can you verify this on one of our Flexes please? I verified on my dev kit but a second set of eyes would be useful.

After running rm -f /data/performance_metrics_data/, I got: rm: cannot remove '/data/performance_metrics_data/': Is a directory
I checked and it does appear that the performance_metrics_data directory is empty. However, when I continued with the above mentioned steps I got:
root@FLXA0220230428012:/opt/opentrons-robot-server# python3 -m performance-metrics.system_resource_tracker /usr/bin/python3: Error while finding module specification for 'performance-metrics.system_resource_tracker' (ModuleNotFoundError: No module named 'performance-metrics')

Well that is because I have multiple typos...

Should be rm -rf not rm -r
Should be python3 -m performance_metrics.system_resource_tra cker instead of performance-metrics

my bad


API stack cors options removal causes error

const api = new Api(stack, "Api", {
    cors: {
      allowCredentials: true,
      allowHeaders: [
        "Content-Type",
        "Access-Control-Allow-Credentials",
        "Access-Control-Allow-Origin",
        "Authorization",
        "Accept"
      ],
      allowOrigins: ["http://localhost:3000"],
      allowMethods: ["ANY"]
    }, ...)

Upon removing this configuration following error is thrown

Fixed in 1.9.4


Main test caddy build here for reproducible go.mod

Currently this workflow fails with a go.mod error indicating some dependency conflicts. Since issuing several go get commands inline on CI, it is unpredictable what happens to go.mod and we may run into that. Instead it simplifies things to keep the main.go here with a go.mod to avoid non-deterministic go get on CI

Thank you for contributing to Coraza WAF, your effort is greatly appreciated
Before submitting check if what you want to add to coraza list meets quality standards before sending pull request. Thanks!

Note: that go.mod and go.sum can only be modified for tested dependency updates or justified new features.
Make sure that you've checked the boxes below before you submit PR:

[X] My code includes positive and negative tests.
[X] I have an appropriate description with correct grammar.
[X] I have read Contribution guidelines, maintainers note and Quality standard.

Thanks for your PR :heart:

Replaced with https://github.com/corazawaf/coraza/pull/322, we shouldn't store main files for connectors in the core repository.
Thank you for your contribution, it was used to build the #322 PR!


[Develop 3.3.0] fix(master): for data partition view cache of follower master, cancel metrics and warn log when volume is deleted

What this PR does / why we need it:
fix(master): for data partition view cache of follower master, cancel metrics and warn log when volume is deleted
this bug is introduced when developing br develop-3.3.0  previousely

LGTM


Microsoft .iso URL returns 502

My team is getting a 502 response when attempting to build the Windows 10 Enterprise 64 bit image from this URL: https://github.com/boxcutter/windows/blob/e7eef54f8dc6318bd1cc1a57562cad0a548e5434/eval-win10x64-enterprise.json#L183
The problem occurs on and off of our company network, and for teams in Melbourne, AU and Phoenix, AZ. The issue can be replicated with a curl request:
curl -IXGET http://care.dlservice.microsoft.com/dl/download/6/5/D/65D18931-F626-4A35-AD5B-F5DA41FE6B76/16299.15.170928-1534.rs3_release_CLIENTENTERPRISEEVAL_OEMRET_x64FRE_en-us.iso

Have the care.dlservice.microsoft.com servers been deprecated or the .iso path changed? Is there a new substitute URL we can use, something like https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise ?

Fascinating, wget succeeds for me too. It appears Packer is using Golang's net/http package: https://github.com/hashicorp/packer/blob/dcb870bcbf856bbc9eb68b864415049c27d994b5/common/download.go. I wonder if curl and the Packer implementation have some common issue occurring with this specific request? Maybe this should be directed to an issue in packer?

I‘ve updated the links in https://github.com/StefanScherer/packer-windows/pull/100/files and https://github.com/StefanScherer/packer-windows/pull/113/files

Awesome, those links are working for us. Thanks!

Hi @tobinquadros, I believe that with PR#158 merged this issue can now be marked closed. How's it look to you?

👍


Generic modules: is_a? returns incorrect value

https://carc.in/#/r/1uz9
module A
end

module B(T)
  include A
end

class C
  include B(Int32)
end

class D
  getter c : A

  def initialize(@c : A)
  end
end

d = D.new(C.new)

puts d.c.is_a?(C) # => false
puts d.c.class == C # => true

crystal -v: Crystal 0.21.1 [3c6c75e] (2017-03-06) LLVM 3.5.0
Both expressions at the bottom should return true. Removing the type parameter lets it return the correct values. Is this related to #2665 ?

Reduced
https://carc.in/#/r/2wv5
module B(T)
end

class C
  include B(Int32)
end

class D
  getter c : B(Int32)

  def initialize(@c : B(Int32))
  end
end

d = D.new(C.new)

puts d.c.is_a?(C)     # => false
puts d.c.class == C  # => true

Reduced
https://carc.in/#/r/2wv9
module B(T)
end

class C
  include B(Int32)
end

class D
  getter c : B(Int32)

  def initialize(@c : B(Int32))
  end
end

d = D.new(C.new)

puts d.c.is_a?(C)
puts d.c.class == C

Reduced:
module A
end

module B(T)
  include A
end

class C
  include B(Int32)
end

c = C.new.as(A)
p c.is_a?(C) # => false (but should be true)

I bumped into this bug myself recently using Crystal 0.23.1 [e2a1389] (2017-07-13) LLVM 3.8.1.
Reduced:
module B(T)
end

class C
  include B(Int32)
end

c = C.new.as(B(Int32))
p c.is_a?(C) # => false (but should be true)

#codetriage This still appears today with 0.26.1 https://carc.in/#/r/589h


Add participants sids to syncstate

When a client resumes after a (signal only) reconnect, the client could have missed updates for participants that connected (without publishing) while the signal connection was severed.
By adding participant_sids to the sync state we allow the server to reason about whether or not a participant update needs to be sent down to the client.

yeah, it would. main questions for me are:

does every sync state request potentially trigger a participant update to be sent down (then this addition isn't even needed)
does the server reconcile whether the participant_sids are different to the one's in the room and only send an update in case they differ (then this PR would be needed)

because of current efforts to minimize participant updates, I thought it would be better to let the server decide

I forget the details now. @cnderrauber did some careful updating. He will know what exactly happens.

@lukasIO When client resume connection, the server side will send participant updates for all participants, do you observe a case that a update that should be sent down is missed?
This line will sent all participants to client
https://github.com/livekit/cloud/blob/d76a0a58c953c7fde33646cc5ecac54caab3be15/pkg/rtc/room_local.go#L269
This PR(#1495) will send disconnected participant during reconnecting to the client

I think even knowing the sids the client has access to, the server would still need to send updates to the client because updates could be:

tracks added
track muted/unmuted
metadata changed
It seems that these won't be easy to track based on sid alone.

Perhaps it's possible to use versions and/or delivery sequence numbers to indicate what the client knows about.. For example, if every update is stamped with a delivery sequence, we could then allow the server to buffer some number of messages.. and then decide if it should resend everything, or only send missed messages in the buffer.

Yeah, a sequence number of timed version would be more generic. Server can maintain a queue and replay missed messages.

the server side will send participant updates for all participants, do you observe a case that a update that should be sent down is missed?
@cnderrauber yeah, I'll ping you with details!

previous comment was incorrect, participant updates do come in, just client state doesn't trigger events for it, will fix this on the client side by caching participant sids during signal reconnect!


Search broken after introducing latest changes

Expected Behavior
Deploying Amundsen locally from latest main is broken - search service is not compatible with frontend service.
Current Behavior
While searching 405 error is returned.

Possible Solution

Steps to Reproduce

docker-compose -f docker-compose-local.yml build --no-cache
docker-compose -f docker-compose-local.yml up -d
load sample data (sample_data_loader for neo4j)
go to incognito mode
search in UI

Screenshots (if appropriate)
Context
Your Environment

Amunsen version used: latest main
Data warehouse stores:
Deployment (k8s or native): local
Link to your fork or repository:

cc @allisonsuarez @dkunitsk

Latest version of FE is compatible with the new search, this is the latest release for FE that works with the latest search https://github.com/amundsen-io/amundsen/releases/tag/frontend-4.0.0

Hi @mgorsk1 @allisonsuarez
I tried with frontend image - 4.0.0 and search image 3.0.0. And searching is broke. I think it's compatibility issue.

I am having this issue also. I have built frontend and search images from the same (latest) distribution.  I am getting the following error from the frontend:

[DEBUG] connectionpool._make_request:465 (9:MainThread) - http://amundsensearch:5000 "POST /v2/search HTTP/1.1" 200 3
[INFO] v1._search_resources:132 (9:MainThread) - {}
[ERROR] v1._search_resources:155 (9:MainThread) - Encountered exception: {'status_code': ['Missing data for required field.'], 'page_index': ['Missing data for required field.'], 'msg': ['Missing data for required field.'], 'results_per_page': ['Missing data for required field.'], 'results': ['Missing data for required field.']}

It looks like the request to the Search service comes back successfully (code 200) but the results payload is empty.

for me no, what helped was cloning Amundsen repo again

Well it looks like I may not have the same issue that Mariusz was having. I tried re-cloning the repo and I still get the same behaviour. I've rebuilt from various releases and can see my problem is introduced exactly at the frontend-4.0.0/search-3.0.0 release. Before that it works fine. Afterwards I get the issue.
I'm thinking it may be related to the elasticsearch service we are using - OpenSearch on AWS. If I run with the docker-compose-local.yml (using elasticsearch:7.13.3) and load the sample data then everything seems to work fine. But when I point it at our datastore - nope.
The only things that are different are the elasticsearch version and our actual data.

@zjph90 are you also getting a 405?

oh hold up, "missing data for required field" is a marshmallow issue, do you also have the latest version of amundsen-common?

Do you have any configuration that is setting the ES client to be something other than ELASTICSEARCH_V2? https://github.com/amundsen-io/amundsen/blob/main/search/search_service/config.py#L18

Also what happens if you hit search with a request directly?

Hi @allisonsuarez  - apologies for this. My bad. I did indeed have custom config which did not have the correct proxy client. We had implemented our own AWS connection and I see we now have AwsSearchConfig. I was able to point to this and now search works fine. Thanks for your time.


Update coredns configmap reconciler to use forward instead of proxy

Describe the bug
The operator attempts to reconcile the coredns configmap in kube-system and overwrites the global section of it.  As of version 1.5.0 coredns (see https://github.com/coredns/coredns/issues/1443. or https://github.com/Azure/AKS/issues/1304) has deprecated the use of proxy in favour of th newer froward plugin and as such the reconcilliation causes coredns to fail and therefore the cluster to become unstable/unusable.
Steps to reproduce the issue:

Deploy coredns 1.5.0+
Deploy the coredns configmap with the gloabl:53 blokc using forward instead of proxy
Deploy the operator
The reconciliation will modify the configmap to replace the global:53 block with the proxy version
Coredns crashes,  related pods crash/fail on error

Expected behavior
The block that is being injected/changed should be updated to use forward instead of proxy when coredns version is 1.5.0+ (direct replacement of plugin/keyword is all that is required)
Additional context
istio-operator: release 1.4
coredns: 1.5.0 or above

Block in coredns.go that handles the reconcilliation/overwrite:

Updated configmap with forward plugin:

@jhynds-reward,
thanks for reporting this!

This bug is pretty critical...it literally breaks coredns and starts a cascade of failures through EKS/kubernetes
This results in us having to rebuild the cluster...done it twice today :/

@jhynds-reward and @bmacauley-reward, this should be fixed in 0.4.11 Docker image for Istio 1.4.x versions and in 0.5.1 for Istio 1.5.x.


ros melodic: catkin: command not found

When I run catkin_make from terminal everything works fine, but when I use the catkin release or debug tasks I get  bash: catkin: command not found
ros gets sourced in my .bashrc.
An suggestions?

Looks like the extension is trying to use catkin tools, not catkin_make. Try installing those.

Thanks!


Remove error code 38 and update error code 39

Information

QPPCT-827

Changes proposed in this PR:

Removes error code 38 due to duplicate error messages
Updates error code 39 with better messaging.

Checklist

[x] All JUnit tests pass (mvn clean verify).
[x] New unit tests written to cover new functionality.
[x] Added and updated JavaDocs for non-test classes and methods.
[x] No local design debt. Do you feel that something is "ugly" after your changes?
[x] Updated documentation (README.md, etc.) depending if the changes require it.

SonarQube analysis reported 3 issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 ErrorCode.java#L69: Is //NOSONAR used to exclude false-positive or to hide real quality flaw ?
 ErrorCode.java#L72: Is //NOSONAR used to exclude false-positive or to hide real quality flaw ?
 ErrorCode.java#L75: Is //NOSONAR used to exclude false-positive or to hide real quality flaw ?


RLMRealm instance was deallocated during a write transaction

So my realm has has been crashing randomly and i've been having trouble tracking it down.  My device wasn't leaving crash logs but when running attached to Xcode i finally got this error in the console:

Mar  8 13:26:49 Black-Taco gaard2[1370] : WARNING: An RLMRealm instance was deallocated during a write transaction and all pending changes have been rolled back. Make sure to retain a reference to the RLMRealm for the duration of the write transaction.
Mar  8 13:26:49 Black-Taco gaard2[1370] : WARNING: An RLMRealm instance was deallocated during a write transaction and all pending changes have been rolled back. Make sure to retain a reference to the RLMRealm for the duration of the write transaction.
Mar  8 13:26:49 Black-Taco gaard2[1370] : WARNING: An RLMRealm instance was deallocated during a write transaction and all pending changes have been rolled back. Make sure to retain a reference to the RLMRealm for the duration of the write transaction.
Mar  8 13:26:49 Black-Taco gaard2[1370] : WARNING: An RLMRealm instance was deallocated during a write transaction and all pending changes have been rolled back. Make sure to retain a reference to the RLMRealm for the duration of the write transaction.
Mar  8 13:26:50 Black-Taco gaard2[1370] : WARNING: An RLMRealm instance was deallocated during a write transaction and all pending changes have been rolled back. Make sure to retain a reference to the RLMRealm for the duration of the write transaction.

So as far as I can tell i'm using the following code block - but i'm confused as to why this can happen:
dispatch_async(realmQueue) {
            autoreleasepool{

                let newConfig = Realm.Configuration(path: config?.path, objectTypes: config?.objectTypes)

                do {

                    let rlm = try Realm(configuration: newConfig)
                    let ml = rlm.objectForPrimaryKey(MessageList.self, key: 0)

                    rlm.beginWrite()
                    for msg in messages {

                        switch (msg) {

                        case _ where msg is dmLocationMessage:
                            let dmsg : dmLocationMessage = msg as! dmLocationMessage
                            let locMsg = LocationMessage(locMsg: dmsg)
                            ml?.locationMessages.append(locMsg)

                        case _ where msg is dmStatusMessage:
                            let dmsg : dmStatusMessage = msg as! dmStatusMessage
                            let statMsg = StatusMessage(statusMsg: dmsg)
                            ml?.statusMessages.append(statMsg)

                        case _ where msg is dmAHRSMessage:
                            let dmsg : dmAHRSMessage = msg as! dmAHRSMessage
                            let ahrsMsg = AHRSMessage(ahrsMsg: dmsg)
                            ml?.ahrsMessages.append(ahrsMsg)

                        case _ where msg is dmTrafficMessage:
                            let dmsg : dmTrafficMessage = msg as! dmTrafficMessage
                            let tfcMsg = TrafficMessage(trafficMsg: dmsg)
                            ml?.trafficMessages.append(tfcMsg)

                        default:
                            Log.dm.warning("Unrecognized Type: \(msg)")
                            break;
                        } // end switch
                    } // end for

                    try rlm.commitWrite()
                    Log.dm.debug("Wrote to \(rlm.path)")

                } catch let error as NSError {
                    Log.dm.error("Data Writing Error \(error)")
                }

                self.delegate?.didRecordDataManagerData(msg, wasWritten: true)
            } // end autopool
        } // end dispatch async

It "looks" like i'm just creating a realm on a background queue INSIDE of an autorelease block - so maybe its not here?  Is there an easy way to track this error down?

Yeah, this looks like your RLMRealm instance wouldn't be deallocated in the provided code sample within the write transaction.
For further tracking this down, I'd recommend setting a breakpoint on the line which logs the warning (RLMRealm.mm:587 on master), if you integrate Realm from source compiled yourself in a manual integration or via CocoaPods. If you use prebuilt binaries, then you could set a symbol breakpoint on [RLMRealm dealloc]. When you hit this breakpoint, the entries further down on the stack trace should give you some hint where this happens.

The posted code does not appear to be safe in the face of errors. It will leave the transaction uncommitted in that case. Using Realm.write(_:) rather than beginWrite() / commitWrite() would fix that issue with the code.

Oh, absolutely! How could I have missed that. Mark is right on that. :+1:

@bdash I'm sorry to re-open this issue; but I'm failing to see where the transaction would be left uncomitted... 😶
Also; say (in the above context) I wanted to save/update multiple objects (~100), is it more efficient to do this in beginWrite()/commitWrite() blocks or is it "ok" to do this in a for loop with Realm.write(_:) blocks?

Realm.write(_:)'s implementation looks like so:
public func write(_ block: (() throws -> Void)) throws {
    beginWrite()
     do {
          try block()
    } catch let error {
          if isInWriteTransaction { cancelWrite() }
          throw error
    }
    if isInWriteTransaction { try commitWrite() }
}

The relevant portion is the call to cancelWrite() in the catch block if the Realm was still in a write transaction.
If you're going to update multiple objects, it's preferable to do so within a single transaction. Whether you create the transaction using Realm.write(_:) or Realm.beginWrite() doesn't affect performance, only the number of transactions you create and commit.

Ah I see, thanks for elaborating on this! I think I understand it a little more now (I just started with Realm a few hours ago).
So if I'm following you right:
// Assuming a realm was created in the current thread and the write won't fail
try! realm.write {
    // #1 One can perform updates/insertions here? E.g.
    realm.add(someThing, update: true)
    realm.add(someOtherThing, update: true)

    // #2 What about 'for'-loops here?
    for thing in allTheThings {
        realm.add(thing, update: true)
    }
}

In the above context; would that write transaction follow through correctly?

Sorry if I'm asking too much

I'm not sure quite what you're asking there. The code you've provided looks sensible though.

Ah, never mind. I think I got it now, I misunderstood the write block.


Add a notable features to the readme

Proposed changes
Add a notable features to the readme.
Readiness checklist
In order to have this pull request merged, complete the following tasks.
Pull request author tasks

[x] I included all the needed documentation for this change.
[x] I provided the necessary tests.
[x] I squashed all the commits into a single commit.
[x] I followed the Conventional Commit v1.0.0 spec.
[x] I wrote the necessary upgrade instructions in the upgrade guide.
[x] If this pull request is about and existing issue,
I added the Fix #ISSUE_NUMBER label to the description of the pull request.

Super-linter maintainer tasks

[x] Label as breaking if this change breaks compatibility with the previous released version.
[x] Label as either: automation, bug, documentation, enhancement, infrastructure.

I like the added documentation, but would suggest positioning it more as: Here's some facts about the project, rather than a comparison.
Speaking to what we're proud of, seems more tasteful than implying anything about what others might be doing.

@Hanse00 thanks for the review. Makes sense. Done.


fix "assignment count mismatch: 3 = 2"

This fixes the "Assignment count mismatch: 3 = 2" compilation error introduced in 368fb46cb7fec929d69b5c865baa81b5598b3966
Now the situation is back to what it was before that pull-request: the zip file does not get closed, but at least it compiles.
Would you want me to create a wercker CI configuration so that the code is compiled and tested after each commit to master?

Thanks for noticing this!
Apparently I made a mistake when testing the change on compilation errors, I think I failed to pull the latest code from that branch...
I think a build check is very welcome. Wercker does about the same as Travic-CI? Should I register at wercker?

I would like it if PR's also get built+tested...

Hi, I created a second PR with the wercker config and the answer to your questions: https://github.com/GeertJohan/go.rice/pull/41

yeah, sorry folks.. I had applied this patch to github.com/daaku/go.zipexe without noticing, thinking it was inside go.rice. Maybe we can vendor in zipexe .. it's a single 135 lines file.

Maybe first ask if @daaku is interested in adding a new constructor, e.g. OpenCloser(..)..?
If not, we might add just this constructor to go.rice, it uses the method NewReader which is exported.

Sure that seems reasonable.

whoops, I created a PR vendoring in zipexe here https://github.com/GeertJohan/go.rice/pull/42 ... it changes a bit of the semantics, but seems slightly cleaner.
What do you think ?

That makes Open unrelated to zipexe. Your suggested change above is what I was expecting so it's possible to close the underlying file once we're done with it and the associated *zip.Reader.

Yeah, I prefer adding a new constructor in daaku/zipexe instead of vendoring zipexe to this repo.
Ofcourse combining the reader with the closer is cleaner, but that would break the existing API.

+1 @GeertJohan - add zipexe.OpenCloser and make it like https://github.com/GeertJohan/go.rice/pull/40#issuecomment-72476849

Fine, but Open() is still in a broken state.. since leaking open files is obviously a bug.
So I'll write OpenCloser() to fix my immediate needs, and I closed that other PR.

Yeah Open is broken, though it wasn't terrible since usually it was used to open the running binary itself and needed to survive until the binary exited anyways.


Wrong blueprints are being checked when spawning data boxes

I found that the Water Filtration Suit and Cyclops Docking Bay Repair Upgrade were AWOL in my save, even after triple-checking every wreck, lifepod, and Degasi habitat. I opened the spoiler log and found data box coordinates for both, but using the warp command teleported me to five spots that very definitely lacked data boxes.
A vanilla Subnautica mechanic is that data boxes will not spawn if, upon loading the area for the first time, the player already has the blueprint it contains. So I did some testing. One of the coordinates given for the Docking Bay Repair Upgrade was [-1206, -225, 4], which is inside one of the Dunes wrecks. The data box at those coordinates normally contains the Reinforced Dive Suit blueprint.

I started a new game and immediately used the warp command to go to those coordinates. A data box spawned there, containing the Repair Upgrade.
I started a new game again, used the unlock command to unlock the Repair Upgrade, then used the warp command again. A data box spawned, containing the Repair Upgrade, even though I already had that blueprint.
I started a new game again, used the unlock command to unlock the Reinforced Dive Suit, then used the warp command again. No data box spawned!

The game appears to still be checking for a data box's vanilla blueprint, instead of the randomized blueprint, when deciding whether to spawn that data box. As I experienced in my save, this can cause perfectly-obtainable blueprints to become unobtainable mid-run through pure bad luck.

Thanks for the detailed report. That's a regression, probably stemming from the new patch method for databoxes. I'm a bit confused on why it's occurring though, since the patch should happen before the duplicate check.


refactor: extract the public code

Thanks for your contribition. Closing for now due to the conflicts.


Support Apple Metal

I saw @ninehills forked the repo to improve metal support.
I think we could add a metal device here.
https://github.com/michaelfeil/infinity/blob/7556042a2763cff9b3a5795c8350bb2ca6afbcb9/libs/infinity_emb/infinity_emb/primitives.py#L13-L16
@ninehills As I am on WSL, do you want to open a PR from your fork and cotribute your MIT-licenced code? If you allow edits I can take it from there.

I am currently evaluating options on self hosted embeddings servers on Mac OS. Is this all that is needed to make it work on Apple Silicone?

I will open a PR to add the MPS backend as quickly as possible.
Michael Feil @.***>于2024年1月7日 周日19:12写道：

I saw @ninehills https://github.com/ninehills forked the repo to
improve metal support.
I think we could add a metal device here.
https://github.com/michaelfeil/infinity/blob/7556042a2763cff9b3a5795c8350bb2ca6afbcb9/libs/infinity_emb/infinity_emb/primitives.py#L13-L16
@ninehills https://github.com/ninehills As I am on WSL, do you want to
open a PR from your fork and cotribute your MIT-licenced code? If you allow
edits I can take it from there.
—
Reply to this email directly, view it on GitHub
https://github.com/michaelfeil/infinity/issues/55, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACB7WSQ5CL3Z7EL7XNEM6DYNJ7IRAVCNFSM6AAAAABBQH3KA6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGA3DSMBYG43TKMA
.
You are receiving this because you were mentioned.Message ID:
@.***>

see: https://github.com/michaelfeil/infinity/pull/59

Thanks, looks solid. Lets close this issue then.


feature-discussion:router.remove() , view.remove()

This is a (multiple allowed):

[ ] bug
[ ] enhancement
[x] feature-discussion (RFC)
Framework7 Version: 1.4.2.
Platform and Target:ALL

What you did
Demand product development process product.
Expected Behavior
Hoping to remove the specified page and rearrange pushState
e.g
myApp.mainView.router.remove(options)

We want to increase the removal of view API
e.g
myApp.otherView.remove()

when the view is removed, the pages in view also trigger remove event

Issue is closed because of outdated/irrelevant/not actual
If this issue is still actual and reproducible for latest version of Framework7, please create new issue and fill the issue template correctly:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.
Provide live link or JSFiddle/Codepen or website with issue


[FLINK-12348][table-planner-blink]Use TableConfig in api module to replace TableConfig in blink-planner module.

What is the purpose of the change
Since TableConfig already moved to API module in FLINK-11067, TableConfig in blink-planner-module should not exist anymore.  The pr aims to remove TableConfig in blink-planner module, use TableConfig in api module instead.
Brief change log

Remove TableConfig in blink-planner module.
Add a field to TableConfig in Api module to stores key-value parameters. And provides relative getter/setter methods.
Update CalciteConfig in blink-planner module to extends PlannerConfig .
Move utility methods in removed TableConfig to TableConfigUtils.

Verifying this change
This change is already covered by existing tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)

TableConfigOptions should also exist in API module. But TableConfigOptions now only works for Blink table planner and Blink table runtime, we need to discuss it in more detail.
And If TableConfigOptions moved  in API module, PlannerConfigOptions  has no need to exits any more, all it's configuration keys should be moved in  TableConfigOptions.

BTW, i think this needs some more explainations about what's final design of the table config for multiple planners. Maybe also think about the design after current planner is deprecated.

@KurtYoung , after discussed with @hequn8128 offline,  final TableConfig has two level configuration (BTW, there is a unused field userDefinedConfig in current TableConfig, @hequn8128 will delete it soon):

common configuration among multiple planners.
configuration for  each specified planner, which implements interface PlannerConfig. For example, introduce PlannerConfigImpl in Blink planner module for Blink planner.

Each planner may have different ConfigOptions, which could exist in API package of each planner module when multiple planner exist at same time.
After current planner is deprecated, only one planner is retained, we could move it's PlannerConfig implementation and it's ConfigOptions to API module.

Hi @beyond1920 , do you have an example, how users can set a bunch of parameters (say stored in a Map<String, String>) to the environment?

How about changing addParameters to addConfigs ?  Maybe config is more appropriate than parameter here.

travis passed here: https://travis-ci.org/beyond1920/flink/builds/557128403

merging this...


gradients and viz make for futureSuitability

@lindsaycarr can you review? I made a few changes to #44


Migrate to a MaterialComponents Theme

Using the Material Components Library you shouldn't use an AppCompat Theme.

Doing an app-wide migration by changing your app theme to inherit from a Material Components theme is the recommended approach. However, be sure to test thoroughly afterwards, as components in existing layouts may change their looks and behavior.
Note: If you can't change your theme, you can do one of the following:

Inherit from one of our Material Components Bridge themes. See the Bridge Themes section for more details.
Continue to inherit from an AppCompat theme and add some new theme attributes to your theme. See the App Compat Themes section for more details.

#199

#199

hi bae

thanks for this information.

This is closed by #157 right?


Explore Recognition with an example PoC

Create some experiments/tests/validations with "Recognition" service.

Added PoC for rekognition with these commits:

a9c189218a42771d3a995e4aa035855e80913cb6
67ca0f7ff243646cb329781679cbf20788eecb05
0193983e03990428580541a86b6a396aedfb51d1