Setting scrollLeft on Collection = no change??

Hi there,
I'm attempting to use the Collection container to create an IPG (Interactive Programming Guide) similar to what you'd see on DirectTV, etc.
I have a vertical list of channels on the left, and use the scrollTop variable to control jumping to / scrolling between rows. This works very well.
Next was to add the program list. This is a bit more complex as each "channel" is a row, that itself is a Collection of programs that belong in that row. Each program in that row has a completely unique width depending on the length of that program, etc. So the channel list would only ever be vertically scrolled, while the program list needs to scroll both vertical & horizontal.
On the program list, I can set the scrollTop to be in-sync with the channel list's scrollTop variable, and the 2 Collections stay in-sync nicely when vertically scrolling. Excellent.
However, when I try and set scrollLeft on the program list Collection, absolutely nothing changes at all (vertical scrolling with scrollTop still works, but no horizontal scrolling at all). I've tried passing it positive and negative values, and it never "scrolls" the content of the Collection horizontally at all.
The contents of my program list Collection are much wider than the defined width I set on it, so there should be plenty to scroll through.
Why would scrollTop work, but scrollLeft do nothing??
Actually, it sometimes does do something: Sometimes, when I set scrollLeft greater than 1200, suddenly all of the contents completely disappear. They contents stays hidden until I back the scrollLeft variable back down to under 1200. In this case, the contents never "Scroll" at all, they remain in place until scrollLeft exceeds 1200 and then they simply disappear and won't re-appear again until scrollLeft is back under 1200.
???
I can post some sample code if that is necessary, let me know. Thanks for any help on this, this has me completely stuck right now...
-Jason

Just to be clear: the ProgramList component I am using renders a Collection, where the cells being rendered are another component call ProgramRow. Each ProgramRow renders a Collection, where the cells being rendered are divs with text in there. So my ProgramList is a Collection that has other Collections inside of it. I was assuming I would need to do this so that we could scroll vertically & horizontally and have the virtualized component systems on render what is visible, etc. Maybe I shouldn't be nesting them like this? I could have ProgramList render each row and item in each row as a cell, eliminating the need for ProgramRow components?
FYI, I've also attached a screenshot of my layout for reference. The red highlight shows the ChannelList component, while the purple highlight shows the ProgramList component.

Also, I found that if I set scrollLeft on EVERY ProgramRow that I have instead of setting it on the parent ProgramList, that does appear to work. However, it is much slower as it is scrolling every single row at a time vs. just scrolling the parent container, which would be more ideal.

I'm traveling to Europe today so I'm not really going to be very available to help debug things. You should probably reach out in the Slack channel where others might have ideas.
I do have a quick questions for you though. The above layout looks pretty checkerboard. Why not just use a Grid (or maybe multiple Grids if you need to). Why use Collection?

Hey there! ah I wasn't aware there was a Slack channel. What is the URL for that Slack team?
I had looked at Grid, but my understanding with that was that it was more like a traditional table with statically sized columns and rows. In this layout, the rows are always the same height, but the "columns" can be literally any width at all.

Screenshot of what I was mentioning above about the "columns" not being consistently sized:

Slack: https://react-virtualized.now.sh/
Grid supports varying width columns. The thing it doesn't support is a given column being different widths in different rows. Put another way:
# This is supported
| 1A |   1B   |  1C  |
| 2A |   2B   |  2C  |

# This is note supported
|  1A  |   1B   | 1C |
|   2A   |  2B  | 2C |

Gotcha. Looks like that wouldn't work for a single Grid - unless the columns are few enough that you don't need to window in that direction?

I'm thinking of re-designing this now to have the Program List render every single unique cell, instead of having it render each row, which then in turn renders its own cells. I'm wondering if having Collection instances inside of a parent Collection instance is causing this. That would mean that ProgramList would render a ton of cells, both vertically and horizontally, but that should be fine since it is virtualized.  I'll give it a shot here and see how that behaves. Did join the Slack team as well, thanks for letting me know about that! :)

Ok, working much better now. It must have been something related to having nested Collection components. After having my main ProgramList component render all of the row/column cells individually, setting both scrollTop & scrollLeft work as expected. Seems like a possible issue though, that if you have nested Collections that scrolling left/right doesn't seem to work properly.

I don't see the benefit of nesting Collections to be honest. A Collection supports an arbitrary layout so...anything you can accomplish with nested Collections should be achievable with only 1- unless you want independent inner scrolling?
PS Just read your follow-up and it seems like you're having better luck with a single one.

I don't see the benefit of nesting Collections to be honest. A Collection supports an arbitrary layout so...anything you can accomplish with nested Collections should be achievable with only 1- unless you want independent inner scrolling?
PS Just read your follow-up and it seems like you're having better luck with a single one.


Decode a Morse code message

💻 Morse code decoder
Hi there 👋 ,
In this branch, My coding partner @Mekuseo and I made the following changes,

We setup the ruby linter
Added the Morse Table and the decode_char method to decode a single character
Then we added two more methods to decode words and sentences
Last but not least we edited the readme file and added the valid MIT license file to this project

Thanks for visiting this pull request. If you have any questions about these changes we made feel free to ask 👍

Hi @Davidosky007 ✋,  Thanks a lot for reviewing our project👍


[Feature]: export and/or import roles, groups and users

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
We would like to be able to export and/or import roles, groups and users. So that we can store this configuration data in a repository, security scans and also compare the ACTUAL and TARGET state.
Why should this be worked on?
With an import function, only individual components, we promise ourselves to be able to quickly build test environments without having to import a full backup each time.

Bumping this

@eric-spt I believe this is similar to #32298 we'll look into this but as I understand it, this shouldn't be a blocker for you to get started with Appsmith

@Nikhil-Nandagopal Appreciate the swift response! For context, I am working on an application with a multi instance setup for different environment (instead of the built in AppSmith environment). Due to this setup it makes it time consuming to sync roles across (and very human error prone). We are currently on Enterprise plan.
Will keep an eye out on #32298 . Thanks!

we are also in need of this - right now the OIDC okta integration doesnt allow assigning OIDC groups to specific roles at the instance level. we are manually assigning roles and users but it is not easily replicated across our instances (dev, stage, and prod) and having to manually do this is prone to error


[M] Update sub-area names under Cultus Lake Park

Change the name of 2 sub-areas under Cultus Lake Park.

Acceptance Criteria:
Given I am a A&R sysadmin (or user with Cultus lake and subarea role),
when I enter or view data under Cultus Lake
then I see that there are two sub areas called Honeymoon Bay Group and Westside Group, instead of Cultus East Group and Cultus West Group as this aligns with website and reservation system.
Dev Checklist:

Migration performed in PROD and DEV only, done in tandem with #311

Tested on PROD: Passed

Verified that as an Admin as well as Facility specific role, I see the updated sub areas on the A&R PROD.
Verified that exported report shows the updated sub area names.
Verified that the data is correctly displayed from DynamoDB.
Passing to PO review.

looks good in prod - moving to done


use of unstable library feature 'futures_api': futures in libcore are unstable

use of unstable library feature 'futures_api': futures in libcore are unstable

@Iokdo what is the output of rustc --version? The minimum required versions for the current futures-preview crates are rustc 1.36.0-beta.1 (3a5d62bd5 2019-05-22) or rustc 1.36.0-nightly (3f5152e20 2019-05-08), there are no stable releases that support it currently.


[marquee-anchors] enhancement - author-proof input, include link attributes.

As an author in Milo, I want the following features available to the marquee-anchor block so that I can have control over the user experience.

Authoring input sanitization for error prevention.
Authors & word will use uppercase labels so we lowercase() the label associations to prevent errors.
Add link target and tracking attributes.
These attributes get automatically included w/ any anchor-link creation so they behave as expected.

Resolves: MWPW-133742
Test URLs:

Before: https://main--milo--adobecom.hlx.page/drafts/rparrish/marquee-nav?martech=off
After: https://rparrish-marquee-anchors-fix--milo--adobecom.hlx.page/drafts/rparrish/marquee-nav?martech=off

Testing notes:

In looking at the document, you will see the uppercase being used on the #Marquee-block anchor link row.
The 2nd marquee example down, the Adobe.com external link should have a target="_blank" attribute.

@JasonHowellSlavin @overmyheadandbody  -  I made the updated you mentioned if you could give it a quick look.
Thanks


Is this fail function used or was it the start of an idea?

PLEASE DON'T FORGET TO "STAR" THIS REPOSITORY :)
If you rather keep your project secret, feel free
to email the author at<EMAIL_ADDRESS>any
private correspondence is treated as confidential.
When reporting a bug please include the following:
Version of Beast
You can find the version number in the file <boost/beast/version.hpp>,
or by using the command "git log -1" in the local Beast repository
directory.
Steps necessary to reproduce the problem
A small compiling program is the best. If your code is
public, you can provide a link to the repository.
All relevant compiler information
If you are unable to compile please include the type and
version of compiler you are using as well as all compiler
output including the error message, file, and line numbers
involved.
The more information you provide the sooner your issue
can get resolved!

What exactly is the issue you are reporting?

The fail function at https://github.com/boostorg/beast/blob/develop/example/http/client/awaitable/http_client_awaitable.cpp#L42  is a left-over that is a staple in many of the examples, but indeed not used in this particular example.

Apologize for fat fingering the title. I am having a typing issues. Thanks, understand it's just cruft. Was just wondering if I was missing something. Feel bad asking about something so trivial now.

Whoever ported this example did so incorrectly, because it uses exceptions rather than error codes. The fail function is used to report the failure from an error_code.

Feel bad asking about something so trivial now.

First of all its not trivial and second of all, congrats - you found an actionable defect :)


Track sts error: The POST operation agains Pod could not be completed at this time

Fixed by ignoring this error for StatefulSets: https://github.com/flant/kubedog/pull/135.


delete called on non-final 'CoordinateManager' that has virtual functions but non-virtual destructor

tt-mlir's latest uplift integration fails because of the following compile error:
/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85:2: error: delete called on non-final 'CoordinateManager' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-abstract-non-virtual-dtor]
   85 |         delete __ptr;
      |         ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:361:4: note: in instantiation of member function 'std::default_delete<CoordinateManager>::operator()' requested here
  361 |           get_deleter()(std::move(__ptr));
      |           ^
/__w/tt-mlir/tt-mlir/third_party/tt-metal/src/tt-metal/tt_metal/third_party/umd/device/tt_soc_descriptor.h:140:5: note: in instantiation of member function 'std::unique_ptr<CoordinateManager>::~unique_ptr' requested here
  140 |     tt_SocDescriptor(const tt_SocDescriptor& other) :

The fix should be to define a virtual destructor for class CoordinateManager.

fyi @pjanevskiTT

Looking at it

https://github.com/tenstorrent/tt-mlir/tree/pjanevski/fix_metal_uplift_build @nsmithtt let me know if the problem goes away

@pjanevskiTT, what is the uplift strategy when uplifting UMD into tt-metal?  We'd rather take vanilla main if we think tt-metal can adopt your fix in main.

Well we try to open the PR for every UMD change that requires API changes inside tt-metal, but merging that can sometimes take some time. Problems can occur with something like this that does not need to be uplifted in tt-metal, but you need the change. Do you have some suggestion on how we should do this?

Presumably UMD recently uplifted (within the past couple weeks) because we just started seeing this error.  Would it be possible to uplift again now?  Who can I contact regarding this process?
I think in this case we'll just be leaking memory.

I can uplift it. Let me create a branch with this commit included and run post-commit

That's ok with me, fyi @blozano-tt @afuller-TT @vtangTT @broskoTT

Closing the issue because it is fixed within umd, @nsmithtt I will tag all the people above in the tt-metal uplift


Implement iterable interface

Adds all iterator methods from the iterable interface:

forEach
keys
values
entries

If Symbol.iterator is available, the URLSearchParams object itself may be used in a for…of loop.
for (var entry of searchParams) {
  console.log(entry)
}

This matches the behavior of Chrome and Firefox.
https://url.spec.whatwg.org/#urlsearchparams
http://heycam.github.io/webidl/#idl-iterable
http://heycam.github.io/webidl/#es-iterable

thanks. going to fix travis and double check everything is fine before pushing to npm.
One comment about tests: if you write always the same message ... you can basically write no message at all and it would be the same :D


getInitialAppLink on Android, does not work correctly.

I have an app that can be started from a link on iOS and Android.
When the app is minimized, i can start it with a link, and the getLatestAppLink catch the link correctly.
Problem:
When the app is closed (aka not minimized) on Android the getInitialAppLink does not return the link.  This problem is only on Android. On iOS it works.

There's debug logs available in logcat adb logcat.
To know if the intent has been triggered on Android you can look for 'com.llfbandit.app_links' tag.
You should see something like:
handleIntent: (Action) ...
handleIntent: (Data) ...

I'm unable to reproduce it, is it still relevant on your side?

Can you provide a reproducer? I use the package for my own needs and myself or my clients don't see any issue on such scenario.

Same for me - if the app is completely closed then the initial link is always null. Can't get logs because I have to close the app first to be able to open it like this.

The project has been refreshed. Re-run the example on Android emulator and it works fine.


Add more details about catching bootlegs

ebay is dangerous
things coming from China tend to be more likely to be bootlegs
watch out for sellers with random numbers in their name

^^^^^^^^^^^^^^^

There is already an FAQ for this

China sockpuppet in Asia marketplace


Package doesn't follow ESLint naming convention

ESLint shareable configuration packages names require a 'eslint-config-' prefix.
Therefore this repository was renamed from 'eslint-base-config' to 'eslint-config-base'.
See also: https://github.com/solid/eslint-config-base/commit/9a20aa939b9e060eb357e3ecda379d72f34c60d2#commitcomment-45287438
We need to delete the first published package that ESLint fails to see and manually publish a first version of 'eslint-config-base'.

Done: https://www.npmjs.com/package/@solid/eslint-config-base


Slot API names have changed

Hi there,
I noticed that the names of the slots have changed meaning the example in the README is outdated. It says slot name is "browse" when it is now "browse-btn". Would be nice to have an example for the other slots as well.
Thank you!

I have documented these now in dd0d415
The Demo.vue component shows an example of using the extra slot.


Trigger navigation on fourth and fifth mouse buttons

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
Currently it is common behavior of many desktop applications (especially browsers and file managers) to navigate forwards and backwards when the user presses the 4th and 5th mouse buttons (usually the buttons on the left side of an 'advanced' mouse) respectively. Unfortunately Flutter seems to be completely void of such support.
This issue specializes in the use case mentioned in: https://github.com/flutter/flutter/issues/115641
Proposal
There are two approaches I could imagine happening:

Map 'mouse 4' to 'browser navigate forwards' and 'mouse 5' to 'browser navigate backwards'
Invoke corresponding intents directly on matching mouse button up events

I noticed there isn't any 'pop intent' happening by default when pressing Esc (worth another issue?). The only exception is the DismissIntent on dialogs. But even in this case, it doesn't support mouse buttons.
As far as I am concerned, I'm not aware of any defaults for mapping navigating backwards and forwards to shortcuts/intents, likewise for treating mouse buttons similar to keyboard keys.

I am also looking for a way to navigate with mouse4 and mouse5 in a desktop environment (windows).
Similar to the web-behaviour where mouse4 is back and mouse5 is forward.


Log function working wrong

Godot version
4.1
System information
Windows 10
Issue description

I printed log(9) but it result seems like 2.192
Steps to reproduce
var digitCount : int = int(log(9))
print(digitCount)
Minimal reproduction project
I don't have a .godot file for this

Yes, it's in base e, the documentation says this

it's in base e, the documentation says this

tbh, while the description does say it's not base 10, it only says "natural logarithm" and not everyone knows it's base e.

True, my bad, though not sure what the documentation should say if it doesn't assume that knowledge


Unable to create pods on K8

K8 Version: 1.3
CoreOS: 1153.0.0
Calico/Calico-IPAM: 1.3.1 (also tried the latest stable)
Calicoctl: latest
Network-Plugin: CNI
ENV: USE_CALICO=true
I have calico running on K8 and flannel disabled. I can confirm that calico networking is working, but all my pods are failing. The kubelet logs show the following error:
Aug 30 15:03:26 kube1.test.domain kubelet[1195]: E0830 15:03:26.711514    1195 cni.go:166] Error adding network: fork/exec /opt/cni/bin/calico: exec format error Aug 30 15:03:26 kube1.test.domain kubelet[1195]: E0830 15:03:26.714975    1195 cni.go:123] Error while adding to cni network: fork/exec /opt/cni/bin/calico: exec format error Aug 30 15:03:26 kube1.test.domain kubelet[1195]: E0830 15:03:26.716667    1195 docker_manager.go:1968] Failed to setup network for pod "hosta-271156220-5lej1_default(4221270c-6eb7-11e6-926b-f24da5b3a7fe)" using network plugins "cni": fork/exec /opt/cni/bin/calico: exec format error; Skipping pod
I've gone through all the troubleshooting/configuration steps and cannot find a solution. Any assistance would be greatly appreciated.

The calico and calico-ipam binaries were incorrect.


WIP feat(*): switch to Debian Jessie-Slim

This switches the base image to Debian Jessie as an experiment to work around Alpine DNS issues.

DO NOT MERGE. This is largely experimental at this point, and it comes at the cost of adding 50M per image.


How to avoid  entity framework  generate  sub query's T-SQL

in my project，i found entity framework is not necessary that sometimes generate T-SQL contain  sub query, but generate T-SQL contain many  sub query. so,i want to know that  how to avoid  entity framework  generate  sub query?

EF Team Triage: This issue is lacking enough information for us to be able to effectively triage it. For a guide on submitting good bug reports, read_ Painless Bug Tracking. The most important elements to help us act on a bug report are example code/steps that reproduce the issue, the outcome/results you are expecting, and the results or error message that you are receiving. Following are a few questions to help us understand this bug report, for future issues please try to include this info in the initial report.
Could you share your model and the LINQ query in question along with the SQL being generated and what you would like to see improved in the SQL.


Broken on node v6.0?

Your latest version prints this error and a very long stack trace
(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated

Think the makers of leveldown already fixed this but somehow, due to your package.json config, their update isn't fetched.

Outdated by now; the upcoming release drops support of node < 8.


Moved GraphQL TypeScript to graphql

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#588  👈
#586
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @CatChen and the rest of your teammates on  Graphite


[Bug Report] When I set BUILD_OBJECT_DETERIORATION_DAMAGE_RATE, the PalAutoHpRegeneRateInSleep value is set the same value.

Have you read the Important information text above

[x] Yes i did

Current behavior
When I set BUILD_OBJECT_DETERIORATION_DAMAGE_RATE, the PalAutoHpRegeneRateInSleep value is set to the same value.
PAL_AUTO_HP_REGENE_RATE_IN_SLEEP=5.000000
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=0.000000
in defualt.env.
But in PalWorldSettings.ini
PalAutoHpRegeneRateInSleep=0.000000,BuildObjectDamageRate=0.000000,
Desired behavior
Other env values set well.
only PAL_AUTO_HP_REGENE_RATE_IN_SLEEP value follow BUILD_OBJECT_DETERIORATION_DAMAGE_RATE value.
Links to screenshots
No response
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Software setup

OS: Ubuntu 20.04
Docker: Docker Compose version v2.24.3

Hardware setup

vCPU: AMD Ryzen Threadripper 3990X
RAM: 252GB
Disk:

Additional context
No response

The error was fixed, you should re-pull the latest image.
https://github.com/jammsen/docker-palworld-dedicated-server/issues/116
https://github.com/jammsen/docker-palworld-dedicated-server/pull/137

Hey @Deeeeepsleep - @tipanic is right, please update your image and docker-compose default.env - We upgraded quite a lot yesterday to make it easier.
Im closing this issue as resolved, feel free to reach out again if you need help.
If you like this project, please consider giving this repo and the docker-hub-repo a Star.


Add options to resume screenshot downloads and uploads

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
When downloading or uploading large amounts of screenshots, it is beneficial to have an option to 'resume' said download or upload, for example if your network connection is unreliable or if iTunes Connect suffers from stability problems. A particular use case in which I needed this (and added it ad hoc to my installed ruby gem) was when I was uploading over 600 screenshots and iTunes Connect was having stability problems. Using the proposed resume upload feature, I was able to skip all languages that were already successfully uploaded.
Important aspects of this feature:

Must be configurable using command line options
Not supplying any of the new options must result in unchanged behavior
Use separate options for skipping downloaded screenshots and skipping of finished screenshot uploads

I will submit a pull request with a proposed implementation

@jfresen we ve implemented syncing of the screenshots some days ago: see #3755

@jfresen did you by any chance have a look at #3755 ? Is this something you would find useful ?

Hi, thx for reminding me. #3755 certainly looks useful. If I understand correctly, it will check for each screenshot to be uploaded if it is not already on that position in ITC, and will not upload it if the check passes. That means that if I would upload, say, 500 new screenshots and 8 of them fail (e.g., due to connection problems), the next time I run deliver, it will only upload only the remaining 8, right?
I would still like to have add the --skip_downloaded option though, or implement a similar sync mechanism for screenshot downloads. The last option sounds better, and looking at your commits I think that is not so hard to accomplish now you laid out the basics. Do you think you have time to implement this download sync?

@jfresen Thanks for following up. We are going to track this over at #3755. Please feel free to update that ticket with details :+1:
FR: Skip screenshot download


Multiple Multi select Datepicker on same page

What changes do i need to make if I want to have multiple multi-select date picker on the same page?

Just assign the second datepicker's ngModel and selectedDates attributes to different variables than the first.

Could be related to #14.


traversing the rows and cols by axis merged cells seem to return the same data

The purpose of my app is to convert an XLSX file to a CSV or TSV. As I looped through the rows and columns I was able to GetCellValue() ... but if a set of cells were merged then any axis that overlapped that cell returned the same data resulting in many duplicated cells in the output. ALSO because the spreadsheet is a form... there is some parsing going on to determine where the data is.
Is there a sensible way to create a TSV?

All cells value will be same in a merged range, this is by design. You can get merged range by GetMergeCells, and skip duplicate value in the same range as your need.

The GetMergeCells() returns an array of merged cell definitions.... So while I am trying to convert from xlsx to tsv... scanning all rows and columns... I have to pull the list of merged cells and determine if [a] it's the first cell in the merge [b] it's not the first cell in the merge.... and since I need to convert my cell's axis position to something that can be compared to the mergecell start/end axis position... some efficient helper functions would be great.
If that's not ok then closing the ticket is ok. Tanks

There are some coordinates parse functions in the lib.go, I wish it will be helpful for you.


Allow change of baud rate and release of Serial

also remove the peripheral bus clock on release
usage shown in example.

I tested it with a logic analyser, I see the 'X' at 9600bps and the 'Y' at 19200.

Thanks for the PR, I like the idea, but I'm not suer if its necessary to add the ReleaseToken, TX and RX are unique as it is, right?

Rx or Tx would have to carry the type of the pins if they were the release token.

I still think it would be preferable to implement Read and Write on the serial port itself. This would not only allow one to use the U(S)ART without splitting if it's not actually required for some reason but also to easily free it, and change the baudrate on the fly.
The release token has a bit of yuck factor attached to it and it is also a breaking API change which we should try to reduce to a minimum, especially when done spuriously.

I don't see how you can do long running DMA with Read and Write on the serial port itself.

@nraynaud That's fine, you can still split (or do other fancy advanced stuff). My understanding is you'd like to do Rx/Tx to discover usable baudrates and my suggestion would cater for that. On the other hand I'm not sure how you would safely ensure that nothing is using your DMA setup at the time you're freeing your USART so not allowing to free a split serial port could actually be construed as a safety feature.

what would the split() function return?
The way it works (in my working copy), is that the DMA system takes ownership of the Rx or Tx while a transaction is running and it give it back at the end. No Rx or Tx-> impossible to release. That's why release() take both as an argument.

split() would stay exactly the same as it is now. I'm not worried about release() not working on split pins, if we allow that we need to ensure that nothing is still using the USART, including your DMA, and I don't see how ReleaseToken would address that.

I am a bit confused, unless I am mistaken, it's impossible to release an UART that is in use with the code I propose. If it's in use you can't have ownership of Rx or Tx, and the ReleaseToken.release() waits for TC (Transmission Complete).

As you know DMA works independently of the ALU so even if you have ownership of the Rx/Tx, it doesn't mean that the DMA engine has stopped accessing the registers. I think the only way to guarantee this would be to integrate DMA support directly in the driver.
But again, I'd like to hear a good reason/usecase why we should break compatibility to allow releasing a split' U(S)ART.

This discussion is going nowhere. The DMA as it is now has its safety ensured by the type system, there are wait time and checks that ensure that the hardware is in the state reflected in the type of the objects.
If the compatibility is an issue (spoiler: it's not; the DMA will come back, and it won't look exactly the same, and it will break everything, and it's not a big deal), I can create a second split() function that returns a ReleaseToken.

This discussion is going nowhere.

You're absolutely right, also because I still haven't heard a reason why we need the ReleaseToken abomination...

The release token serves to release the serial object after it's been split(). This is currently impossible to do.

And the motivation/use case why we need to have this is...?

scanning for / configuring the baud rate of hayes command devices?

And would prevent you from doing that on the unsplit serial if we implemented Read/Write as suggested earlier?

The fact that the DMA will enter in concurrence with the read/write operations on the serial.

Can we merge it now?

I agree with @therealprof, the release token is a somewhat ugly breaking change that we should try to avoid. I'm not familiar with how DMA works so I can't comment on the safety and or unsafety of using DMA on a non-split serial.
However, do you need DMA for detecting baud rate? If we impl Read and Write on the non-split serial object, you can use that to detect the baud rate. Once the baud rate is detected, you can split it into tx and rx to do your high speed DMA supported transfers. Or do you have a use case where that doesn't work?
Also, there is a merge conflict in the examples/serial.rs file

Reading the serial byte by byte from the core is a bit complicated, you have to create some kind of block!() with a timeout, you need to keep track of you local buffer, etc.
I just put a DMA reader on the serial, I wait a bit and I check the buffer, if it's still empty I consider that the remote device has not answered on time and I test the next frequency.
I have spent hours trying to avoid the release token (not just "thinking its ugly", I put the work), and I couldn't, and it's inherent to the way the peripherals are wrapped in rust. It's either explicit like I did or Rx or Tx could be the release token (but their type will change).
I'll handle the merge conflict.

This PR has been dormant for a while, sorry about that. I had an excues to look at the DMA implementation recently, and I agree with what @nraynaud is saying. The DMA transfer takes ownership of the tx and/or rx types, does the transfer and only gives them back when the DMA is finished.
In the case of SPI, I think the device might still be active with the last byte after DMA relase, but that can easily be checked by the busy flag.
Regarding the release token, I still don't really see the point. Can't we just add a release function to Tx or Rx which takes the other as an argument, i.e. Tx::release(self, Rx)?

Since this PR has been inactive, i'll go ahead and close it, feel free to re-open it if something changes


Default error message

Summary
Adding a default error message for the error boundary when there is none provided

Deployment Link

https://terra-applic-default-er-qucogs.herokuapp.com/tests/terra-application/application-error-boundary/error-boundary-test
Testing

Additional Details

Thank you for contributing to Terra.
@cerner/terra

@ryanthemanuel: Discussed with the UXFoundations group, and there are potentially two versions depending on the use case I'll detail out below.  Our traditional messaging when errors are present is to state what the issue is and how to resolve it. Typically and whenever possible, we would offer actions to the user to retry, log a ticket, or when no action is available to contact their system admin/IT support. Based on my conversations with Ryan this situation will only occur in non-prod environments where only an engineer or developer would encounter them, not a user (ie: clinician, revcycle staff, etc.) If this is the case where the user would know by using the error tracing what to correct. Our proposal is outlined below. please let me know if any assumptions are incorrect.
Scenario 1: Error messaging is short & concise, less than 2 lines of text.

Status View Type: Error
Icon: Error
Title: Error (centered under error icon)
Message: The system encountered an error: [insert error string here]. (left-aligned)

Scenario 2: Error messaging is long & has lots of coding jargon.

Status View Type: Error
Icon: Error
Title: Error (centered under error icon)
Message: The system encountered an error. (center-aligned)
Display Show/Hide component centered below messaging. "Show [error log/string/tracking]" (or whatever appropriate description of what will be shown when selected.
Display full error string when the user selects "Show [error string/log/tracking]". Text should be left aligned. When error string is displayed, "Show [error log/string/tracking]" is replaced with "Hide"

cc: @neilpfeiffer @jeremyfuksa

@jmsv6d let's go with scenario 1 here for now.  I've logged https://github.com/cerner/terra-core/issues/3000 to let us explore doing something more along the lines of scenario 2 with the status view.

Since you added the new issue, can we remove the UX review label on this one?


Is that true nodeos process can only consume single CPU?

Is that true "nodeos" process can only consume single CPU?
When we do the performance benchmark, we saw that the CPU% for the "nodeos" process is up to 100%.
If that is ture, there is no need to assign more CPU to the Super Node?   Any performance tips regarding cpu utilization? Thanks.

Correct. nodeos is currently single threaded.

when multiple threads?


Fix rendering of errors during Facebook login attempt

We want to send the error message directly to the browser, we don’t have a specific error view for this case (that was from the 1.x version)

+1


The Website don't have any Favicon

There is no favicon on the website, so can I use the logo of moody-website and make a favicon and put it on the website? Under Hacktoberfest 2022

I want to Contribute in this Project for Hacktoberfest, If you Have any Issue then you can suggest me. I want to give my best.

Can you assign this to me please @MohitNamdev22 ?

I want to Contribute in this Project for Hacktoberfest, If you Have any Issue then you can suggest me. I want to give my best.

Hey 👋, you can contribute to the project by finding issues on the project and creating the issue. Sorry guys but I'm also a contributor, and I want to work on this. You may find some different issue 👍

Its Ok

@MohitNamdev22 Go ahead


camera IMU calibration

Hi,
Is it possible to provide a calibration between camera and IMU (extrinsics and timeoffset)?
I have tried download the calibration files. However, I cannot transfer them into bags and use them for the Kalibr.

Hi,
I'm having the same issue, I cannot find the camera-imu extrinsics specified anywhere.
There is a camera-imu rigid transform specified in the .csv file here. But I don't know for which camera it is and it also does not match the frame placements in Fig 1 of the IJRR paper.
And is there no time offset?
@Winter-Guerra

I understand the issue is that the Kalibr cannot be rerun since the calibration sequences are not running through ROS. I will try and figure out why this is. This is the last transform I have from the drone:
Transformation (cam0):
T_ci: (imu0 to cam0):
[[ 0.99493398 0.09971765 -0.01275796 -0.0000312 ]
[ 0.01377151 -0.00948238 0.99986021 -0.00002641] [ 0.09958273 -0.99497059 -0.01080761 0.0000356 ] [ 0. 0. 0. 1. ]]
T_ic: (cam0 to imu0):
[[ 0.99493398 0.01377151 0.09958273 0.00002786]
[ 0.09971765 -0.00948238 -0.99497059 0.00003829] [-0.01275796 0.99986021 -0.01080761 0.0000264 ] [ 0. 0. 0. 1. ]]
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift) 0.0
Note, this calibration was performed in monocular setup (assuming camera is in the center) so a transformation needs to be applied to get the appropriate transform for left and right camera.

So the above transformation is for left camera only?
On Wed, Aug 26, 2020 at 3:06 PM varunmurali1<EMAIL_ADDRESS>wrote:

I understand the issue is that the Kalibr cannot be rerun since the
calibration sequences are not running through ROS. I will try and figure
out why this is. This is the last transform I have from the drone:
Transformation (cam0):
T_ci: (imu0 to cam0):
[[ 0.99493398 0.09971765 -0.01275796 -0.0000312 ]
[ 0.01377151 -0.00948238 0.99986021 -0.00002641] [ 0.09958273 -0.99497059
-0.01080761 0.0000356 ] [ 0. 0. 0. 1. ]]
T_ic: (cam0 to imu0):
[[ 0.99493398 0.01377151 0.09958273 0.00002786]
[ 0.09971765 -0.00948238 -0.99497059 0.00003829] [-0.01275796 0.99986021
-0.01080761 0.0000264 ] [ 0. 0. 0. 1. ]]
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift) 0.0
Note, this calibration was performed in monocular setup (assuming camera
is in the center) so a transformation needs to be applied to get the
appropriate transform for left and right camera.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mit-fast/Blackbird-Dataset/issues/12#issuecomment-681067088,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADJAQCADMEN7MLDPPXPCXCLSCVMJ3ANCNFSM4P673FPA
.

--
With Best Regards,
Linde Yang / Yulin Yang / 杨玉林
UNIVERSITY of DELAWARE
PhD Candidate of Mechanical Engineering
328 Spencer Lab, Newark, DE, USA, 19716-3140
Mobile: +(01)<PHONE_NUMBER>
mailto<EMAIL_ADDRESS><EMAIL_ADDRESS>Web: http://udel.edu/~yuyang/ http://udel.edu/~yuyang/

No this is the transformation from imu to the center of the stereo pair.

Do you have any idea about the baseline of the stereo pair?
From the configure file, I can only find extrinsics for left camera:
[image: image.png]
On Wed, Aug 26, 2020 at 7:06 PM varunmurali1<EMAIL_ADDRESS>wrote:

No this is the transformation from imu to the center of the stereo pair.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mit-fast/Blackbird-Dataset/issues/12#issuecomment-681168593,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADJAQCHDBYUZW46RAJMYQLTSCWIRBANCNFSM4P673FPA
.

--
With Best Regards,
Linde Yang / Yulin Yang / 杨玉林
UNIVERSITY of DELAWARE
PhD Candidate of Mechanical Engineering
328 Spencer Lab, Newark, DE, USA, 19716-3140
Mobile: +(01)<PHONE_NUMBER>
mailto<EMAIL_ADDRESS><EMAIL_ADDRESS>Web: http://udel.edu/~yuyang/ http://udel.edu/~yuyang/

The baseline is 10 cm.

Hi @Winter-Guerra, I would really like to use this dataset for VIO evaluation, but I haven't been able to get a good value for the camera-IMU extrinsics.
I have run Kalibr on the cameraCalibration sequence, however, it was only able to extract corners for 145/3301 images (I down-sampled the image rate to 20 Hz). I think this might be because the AprilGrid doesn't have a border.
I've also tried the TF tree, but the values I get don't seem to be correct either.
Would you be able to post the camera-IMU transforms used during rendering?
Sorry if I have missed something obvious.


test: updated couchbase tests to run on node.js v18 and above

Discovered that the latest Couchbase silently dropped support for v16. Their official documentation states:

The Couchbase Node.js Client will run on any supported LTS version of Node.js.

They are using node-addon-api as a dependency, and in couchbase version 4.4.0, it was updated to 8.0.0, which dropped support for v16. This change causes our v16 tests to fail.

https://github.com/couchbase/couchnode/commit/ab478ed2019501cdbb94992fb3aee6f15c83b6ef
https://docs.couchbase.com/nodejs-sdk/current/project-docs/compatibility.html#node-js-version-compatibility


[Codespaces] debugging results in prelaunch task 'build' error

Environment data
dotnet --info output:
.NET Core SDK (reflecting any global.json):
Version:   3.1.400-preview-015178
Commit:    60cb58d3b1
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19041
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\3.1.400-preview-015178\
Host (useful for support):
Version: 3.1.5
Commit:  65cd789777
.NET Core SDKs installed:
2.1.807 [C:\Program Files\dotnet\sdk]
3.1.301 [C:\Program Files\dotnet\sdk]
3.1.400-preview-015178 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.19 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.19 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.19 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
VS Code version: Version: 1.45.1
C# Extension version:1.22.1
OmniSharp log
Starting OmniSharp server at 6/25/2020, 7:31:41 PM
Target: c:\workspace\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode.sln
OmniSharp server started.
Path: C:\Users\vsonline.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1.omnisharp\1.35.3\OmniSharp.exe
PID: 5992
    Starting OmniSharp on Windows 6.2.9200.0 (x64)

    DotNetPath set to dotnet

    Located 1 MSBuild instance(s)
        1: StandAlone 16.4 - "C:\Users\vsonline\.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1\.omnisharp\1.35.3\.msbuild\Current\Bin"

    MSBUILD_EXE_PATH environment variable set to 'C:\Users\vsonline\.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1\.omnisharp\1.35.3\.msbuild\Current\Bin\MSBuild.exe'

    Registered MSBuild instance: StandAlone 16.4 - "C:\Users\vsonline\.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1\.omnisharp\1.35.3\.msbuild\Current\Bin"
        CscToolExe = csc.exe
        CscToolPath = C:\Users\vsonline\.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1\.omnisharp\1.35.3\.msbuild\Current\Bin\Roslyn
        MSBuildExtensionsPath = C:\Users\vsonline\.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1\.omnisharp\1.35.3\.msbuild
        MSBuildToolsPath = C:\Users\vsonline\.vscode-remote\extensions\ms-dotnettools.csharp-1.22.1\.omnisharp\1.35.3\.msbuild\Current\Bin

    Detecting Cake files in 'c:\workspace\TestCodespacesWindowsAndVSCode'.

    Could not find any Cake files

    Detecting projects in 'c:\workspace\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode.sln'.

    Queue project update for 'c:\workspace\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode.csproj'

    Detecting CSX files in 'c:\workspace\TestCodespacesWindowsAndVSCode'.

    Could not find any CSX files

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0

    Loading project: c:\workspace\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode.csproj

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140

    Configuration finished.

    Omnisharp server running using Stdio at location 'c:\workspace\TestCodespacesWindowsAndVSCode' on host 11656.

    Successfully loaded project file 'c:\workspace\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode.csproj'.

    Adding project 'c:\workspace\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode\TestCodespacesWindowsAndVSCode.csproj'

    Update project: TestCodespacesWindowsAndVSCode

Steps to reproduce

Create a VSCode Codespaces instance with default .NET Core console app template
Open with "Connect" option to open with VSCode in the web browser
Accept pop-up to load debug assets

Attempt to debug results in error

"Debug anyway" option will successfully debug.

Expected  behavior
No error window
Actual behavior

@kendrahavens what is output to your Terminal output pane?
Note that this is unlikely to be a problem with this extension - unless we are providing the wrong dotnet build command line this is either a .NET CLI problem, or it is a VS Code problem.

Right, feel free to route as needed. I suspect it's a VS Codespaces issue. I'm on the windows preview codespaces environment as opposed to the linux. (I should test it out in linux and see if it repros.)
Terminal output

Executing task: C:\workspace\dotnet build C:\workspace/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode.csproj /property:GenerateFullPaths=true /consoleloggerparameters:NoSummary <

The terminal shell path "C:\workspace\dotnet" does not exist
Terminal will be reused by tasks, press any key to close it.

I can confirm, no error appears when using the same solution on the linux codespace. Looks like a windows codespace specific issue.

Well the problem is that something has decided that dotnet.exe is in c:\workspace. What does your tasks.json look like?

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "publish",
            "command": "dotnet",
            "type": "process",
            "args": [
                "publish",
                "${workspaceFolder}/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "run",
                "${workspaceFolder}/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode/TestCodespacesWindowsAndVSCode.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}


Additional Information Request - Shopping/Life Tap Wands

Hi,
could you please add up more informations about the possible skill lvl of the life tap wand (charges).
Lvl 3 charges -> on char lvl 52+
Lvl 4 charges -> on char lvl 65+
Lvl 5 charges -> on char lvl 78+
Lvl 6 charges -> on char lvl 91+
Thank you and cheers,
e-soni@d2jsp

Lower Resist charges would also be useful.


JwksSecretsManager creation stuck

Hi, first congratulations for the initiative.
I followed carefully all the README.md instructions, almost the steps were done with success, although, the cdk stack creation stucks at 58/60 step, where JwksSecretsManager is planned to be created.

I filled all the required environment variables to make it work:
[OTHER PREVIOUS VARIABLES]
...
JWKS_URI=https://cognito-idp.{my_region}.amazonaws.com/{my_userPoolId}/.well-known/jwks.json
SM_JMKS_SECRET_NAME=staging/OpenBankingBrazil/Auth/OIDC_JWKS

Could you help me with this problem?

Solved.
Just need to hold JWKS_URI to /jwks
Point R53_ZONE_NAME, R53_HOSTED_ZONE_ID with valid and existing values.


Sorry - wrong branch & repository.


initial review comments and edits

Review Branch
This PR and branch are a result of @fivetran-joemarkiewicz review of the package.
Review notes
See below for details
Intention of the PR
This PR is intended to be merged directly to main once any questions are addressed.

@fivetran-jamie this looks good to merge!


why do u use Akka

Hi, can u tell me why u choose Akka, why don't you choose project loom for Actor(like light thread), or other Reactive Programming libraries, thank you

Ok, so:

"Why did you create a project that supports akka - whereas it would be better idea to create a project that supports some other Actor framework - like 'project loom' or something else?"

Answer: this project was created to support akka serialization, as akka is a widely-used popular framework used in many projects. akka-serialization-helper was created in order to provide new compilation functionalities that would help other projects get rid of unexpected runtime errors. Akka serialization might fail in runtime for several reasons - even if such issues were not detected during compilation. For more details - see README

"Why are you using akka in the source code of akka-serialization-helper? Why don't you use some other actor-based framework in your source code?"

Answer: The only module of akka-serialization-helper that uses akka is the Circe Akka Serializer - custom Akka Serializer based on Circe. It is an implementation of Akka Serializer (specifically: it extends SerializerWithStringManifest). In order to create an Akka serializer we had to use akka - not any other actor-based framework.

Hope it helps :)


benchmarks do not work

Opening benchmark/ in a browser, I get the following error:

404 Not Found: http://localhost:8080/tests/tests.php

To reproduce:

start php server in project root directory with php -S localhost:8080
open http://localhost:8080/benchmark/ in a browser

This seems to be fixable by:

copy tests/ dir from https://github.com/andrejpavlovic/xpathjs
copy build/enketo-xpathjs.min.js to build/xpathjs.min.js

Also seem to be able to start the server with grunt, but the result is the same.

Ah yes, thanks. I should remove the benchmarks. They have no value, because they refer to native when available and don't include the custom functions I added.


fix: get relationships in locale of i18n language setting

Description
Relationship labels with titles should take into account the admin user's i18n language setting.
From discord:
https://discord.com/channels/967097582721572934/1049367843495481464

[x] I have read and understand the CONTRIBUTING.md document in this repository

Type of change

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

Checklist:

[ ] I have added tests that prove my fix is effective or that my feature works
[x] Existing test suite passes locally with my changes
[ ] I have made corresponding changes to the documentation

These are the collections I used during testing:
export default buildConfig({
  localization: {
    defaultLocale: 'pl',
    locales: ['en', 'pl'],
    fallback: true,
  },
  collections: [
    {
      slug: 'posts',
      fields: [
        {
          name: 'category',
          type: 'relationship',
          relationTo: 'categories',
        },
      ],
    },
    {
      slug: 'categories',
      admin: {
        useAsTitle: 'name',
      },
      fields: [
        {
          name: 'name',
          type: 'text',
          localized: true,
        },
      ],
    },
});

Thanks for the quick fix! I've edited my local payload files and checked it with the buildConfig you provided. Here is my test case:
Intro:

Account view language: en
Content language: en

Steps:

Create 'category number 1' with pl translation 'kategoria numer 1'
Create 'category number 2' with pl translation 'kategoria numer 2'
Go to Posts collection and click the 'Create new Post' button
Select 'category number 1' and press the 'Save' button

Result:
Payload should redirect you automatically to the post edit view and here the default value for category is 'kategoria numer 1' instead of 'category number 1' (account view language is still set to en).

Is this something you can reproduce in your environment?


Add license

Hi @vzinche, @pejmanrasti et al,
that's a fantastic repository! I was just wondering under which conditions one could reuse the code and materials provided here. Would you mind adding a license file? If you're new to licensing and/or wonder which license to use, you can read more in this blob post: https://focalplane.biologists.com/2023/05/06/if-you-license-it-itll-be-harder-to-steal-it-why-we-should-license-our-work/
Thanks!
Best,
Robert

Hi Robert, my bad, fixed it

Amazing, thanks for the light speed response!


More traits and missing functions

Suggestion
Many types have an is_invalid() method. Wouldn't this justify a trait like Validatable/Validate? I became aware of this while writing a helper that needed Validatable as a trait bound. In the end, that particular helper didn't seem warranted to me, but wouldn't this still be a better crate structure?
Then there could also be a trait like Null, which would require the functions null() and is_null(), like they're implemented for PWSTR etc. HWND, e.g., could use some more methods like this. It has neither is_invalid() nor is_null() nor null(), although NULL HWNDs aren't that rare. (Can HWNDs be invalid in the sense of -1?)

Using a trait does add complexity and shouldn't be done too lightly. Traits are useful when the user wants to abstract over similar types, not just because the types happen to have similar methods.
In any case, I think adding such "helper" traits to windows-rs would need a strong motivating example where it would be useful in practice. And even then I'd be minded to say it would be better off in a utility crate.

In any case, I think adding such "helper" traits to windows-rs would need a strong motivating example where it would be useful in practice.

I just wrote ResGuard with functions like with_mut_acq_and_local_free(). First, as I proposed here, PWSTR should implement CanInto<HLOCAL>. Then, PWSTR could either implement Default or all handle types could implement the new Null. I would change the trait bound for the mut-variable initialization from R: Default to R: Null, if needed, and then you would be able to write the code:
let string_sid = unsafe {
    ResGuard::with_mut_acq_and_local_free(|pwstr|
        ConvertSidToStringSidW(
            (&*sid_and_attrs_buffer.as_ptr().cast::<SID_AND_ATTRIBUTES>()).Sid,
            pwstr,
        )
    )?
    .to_string()?
};

I'd say, because of the drop semantics, this is rustier and a pattern generally more adverse against changes than:
let mut pwstr_sid = PWSTR::null();
unsafe {
    ConvertSidToStringSidW(
        (&*sid_and_attrs_buffer.as_ptr().cast::<SID_AND_ATTRIBUTES>()).Sid,
        &mut pwstr_sid,
    )?
};
let string_sid = unsafe { pwstr_sid.to_string()? };
let _ = unsafe { LocalFree(HLOCAL(pwstr_sid.0.cast())) };

CanInto<HLOCAL> for PWSTR has a fundamental flaw: It attributes the allocator to a type (PWSTR) when it really is a property of the specific API (ConvertSidToStringSidW) producing the value.
Implementing this trait makes writing correct code more convenient, and it makes writing incorrect code equally convenient. It particularly causes code to become less resilient under change. Let's not do that.

I'm not in favor of implicit conversions in general. I think that windows-rs overuses them as it is. There are legitimate cases for such conversions, particularly in COM and WinRT, but convertible handles are pretty dangerous as knowing their correctness requires a great deal of knowledge of the specific API calls that you're making.
I'm going to close this issue, but feel free to keep chatting.

There's inconsistency in the API, though: HANDLE defines impl From<HWND> for HANDLE. This seems to be an outlier.
And shouldn't HWND get a verification method like almost 200 other handle types? But is_invalid() or is_null()? May an HWND be -1?
HWND::null() (like PWSTR::null()) would also be useful. Say, e.g., for calling CreateWindowExW(), which also accepts C's NULL for two other handle types.

There's inconsistency in the API, though: HANDLE defines impl From<HWND> for HANDLE. This seems to be an outlier.

See https://github.com/microsoft/win32metadata/issues/1660 for context; this is set in upstream metadata resulting in that From trait implementation.
[AlsoUsableFor("HANDLE")]
[NativeTypedef]
public struct HWND
{
	public IntPtr Value;
}

It's probably not quite right, given the invalid values for each type don't match. But we're not going to solve that here today. Handles are an on-going pain point that we're actively working on, in both projects.


fix fetchEmails

fetchEmails() was completely broken;
before:

after

Please make a new release after merge! Thank you!

i'll make a patch 2.0.1 for this today


Remove video clip after frame extraction

Modified the download_video_clip_and_extract_frames function in mqtt_client.py to delete the downloaded video clip after the frames have been extracted. This change helps to manage disk space by removing unnecessary files after they have been processed.

temp files should get cleaned up automatically.

... on system reboot :)

temp files should get cleaned up automatically.

... on system reboot :)

I thought it is once exiting the with context?
"On completion of the context or destruction of the temporary directory object, the newly created temporary directory and all its contents are removed from the filesystem."