chore: replaced kin-openapi library with libopenapi

deck file openapi2kong command uses kin-openapi
for all its OpenAPI requirements. This library
does not support OpenAPI 3.1, which is a
requirement from the users.
Thus, this change updates the library to libopenapi which can help us to adopt OpenAPI 3.1
For APIOps #1324
https://github.com/Kong/deck/issues/1324

I didn't add much code refactoring in this PR for the aid of the review. I will take that up in a different PR.

Codecov Report
Attention: Patch coverage is 74.26710% with 79 lines in your changes missing coverage. Please review.

Project coverage is 68.04%. Comparing base (e464df7) to head (fcd8764).

Files
Patch %
Lines

openapi2kong/openapi2kong.go
68.53%
30 Missing and 26 partials :warning:

openapi2kong/jsonschema.go
67.64%
5 Missing and 6 partials :warning:

openapi2kong/utils.go
82.75%
8 Missing and 2 partials :warning:

openapi2kong/validator.go
92.85%
1 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #194      +/-   ##
==========================================
+ Coverage   67.86%   68.04%   +0.18%
==========================================
  Files          23       24       +1
  Lines        2505     2557      +52
==========================================
+ Hits         1700     1740      +40
- Misses        644      648       +4
- Partials      161      169       +8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

nice work @Prashansa-K !! Added some minor comments. Note that I don't know this go-apiops library so I think this work seems safe if the test suite and coverage are good.

Thank you! I will also test this out with some more examples to be thorough.


Directly allow strings for margin and size, too?

Should we use the approach for color props from #448 for margin and size props, too? I.e. have modules Margin and Size with "safe" helper functions, but Margin.t = Size.t = string?
Would make things easier for people coming from React Native JS.
@MoOx @sgny

I am more than ok with this change.

Hmmm, compared to Color, the problem with margin and size is that these accept either floats or strings.

This is because in JS "1" == 1...
Should we accept string only for unsafe usage & have method sending float as unitless value (pt) or string for %?

I think it's a good idea too, we should find the good compromise 🤔
We have to deal with Pt(), Float(), Float this is pretty confusing for beginners
Actually :
fontSize(Float(12.))
margin(Pt(12.))
borderRadius(4.)

String should be an escape hatch I think

Float won't be a thing in new bindings, that said, we still try to add a safety layer to avoid accepting anything that won't work anyway...

was wondering about a thing that bother me a little (but not too much :D ).  We recently moved some submodules from Style, like Margin, Size etc, but I was wondering if that's a good idea to have so much "generic names" taken as soon as you open ReactNative.
I remember in the past being unhappy because bs-rn had generic names like "Types" taken by the open... And I just saw that in some projects (some personals & some for clients), I have a Color module, as well as a Font one & sometimes a Style one too.
So I was asking myself if we shouldn't keep Margin & Friend in Style, even if that's require 2 () when you want to use those, to avoid this kind if "issues".
Thoughts?

@MoOx I see your point. On the other hand, that's what happens when you open modules. 😉 I am currently working on a GIS application where I have a Map module, so when I open Belt I get a warning because of Belt.Map...
Anyway, I am not opposed to moving Margin and Size back into Style because they are only referenced from Style. We should have types/Style_Margin.re and types/Style_Size.re then and alias these in Style.
Color should remain outside of Style though as it is used outside of Style (directly in the props of many different components).

+1 with @cknitt ; Margin & Size should be part of Style 😃

@DCKT we discussed about that in private & are going to remove those 2 in favor of simpler function directly inside Style module (less safe but way more accessible)

Strings are not feasible because we need to pass floats for pt values.
We found another simplification so, see #478.


Add a code of conduct for the project

About this change - What it does
Add the code of conduct (https://www.contributor-covenant.org/ v2.1) with Aiven's contact details to the project. Added the badge to the readme (and updated the copyright year while I was there)
I suggest we review and discuss here, but leave open for any community comments or feedback for a couple of weeks before merging.

BTW, the linter complaints about a missing empty line at EOF.


Preview scroll beyond last line

Please select if your request is either something new or an enhancement

[ ] Enhancement of an existing Feature.
[x] Request of a new feature.

Please select the area your request applies to. (Multiple selections are Possible. You can leave blank if you're not sure.)

[ ] Workspace - VSCode workspace, vaults, Intellisense/autocomplete, Dendron settings
[ ] Lookup - Dendron's Lookup Command
[x] Views - Dendron Preview, Tree View, Side Panels in the UI
[ ] Schema - Dendron Schemas
[ ] Pod - Data import from / export to Dendron
[ ] Publish - External Site Publish
[ ] Markdown - Markdown features, such as syntax support and features

Is your feature request related to a problem? Please describe
When i am taking notes, I would like to have my markdown active line and the preview alligned in the middle of my screen. However, only the .md editor can scroll further than the last line number. The last line of the preview is stuck at the bottom of the screen.
Describe the solution you'd like
I would like to be able to scroll just until the last preview text is at the top of the screen (like the editor itself).
Describe alternatives you've considered
Currently I am adding pipe symbols and whitelines to fill a portion of the bottom with whitespace.

Seems to be working now. Thank you!


Error in the "Control Flow" section of Noir documentation

Aim
While starting to learn how to use Noir language and Nargo, i noticed there is an error the  "Control Flow" section of Noir documentation :
https://noir-lang.org/language_concepts/control_flow
The first ''Loop'' section says :
The index for loops is of type u64.
After a few tests, i confirm the index of a loop is of type field.
Expected Behavior
The documentation should be modified to replace u64 by field .
Bug
This compiles well :
    for i in 0..8 {
        for j in 0..8 {
             if (i as u32) + (j as u32) < 8) {
             ...
             }
        }
    }

whereas this will throw an error :
    for i in 0..8 {
        for j in 0..8 {
             if  i + j < 8) {
             ...
             }
        }
    }

 AssertionError: error: Comparisons are invalid on Field types. Try casting the operands to a sized integer type first
Installation Method
Noirup
Nargo Version
nargo 0.15.0 , nargo 0.17.0, nargo 0.10.5
Would you like to submit a PR for this Issue?
Yes

@kevaundray  should i propose a PR for this ? i'm willing to contribute to Noir ecosystem but i didn't get any answer for a month. Thank you!


Some clarification of the role of FltVetoBypassIo might help

Lori, Ted,
It might be nice if you mentioned that the whole reason that FltVetoBypassIo exists is to setup the FS_BPIO_OUTPUT buffer for your (or such is my observation by nature study).
If this is wrong then  it would be helpful to be more concrete about what the call does do and what is left for you to do.
Thanks, take care
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 9dd321d8-dd23-8f32-3763-9b43fa484259
Version Independent ID: 9dd321d8-dd23-8f32-3763-9b43fa484259
Content: Supporting BypassIO operations - Windows drivers
Content Source: windows-driver-docs-pr/ifs/bypassio-operations.md
Product: windows-hardware
Technology: ifs
GitHub Login: @lorihollasch
Microsoft Alias: loriwhip

@rodwiddowson, great call out, and on further investigation it turns out that the docs didn't match the code. I've updated this page accordingly for FltVetoBypassIo's role during ENABLE (and QUERY). Thanks for reporting this!

@rodwiddowson, I forgot to mention that I also updated FltVetoBypassIo accordingly.


Release through pypi; Fix api-server regexp.

@rombie @sanabby Please review.

@rombie Modified the code to use the kubelet API. Requires recent version of kubelet (https://github.com/kubernetes/kubernetes/commit/bf170a688ca51b9bc011760ba1ca59aae6d1e838).

Changes look good. Will wait to merge as travis CI build has failed

@rombie Please take a look.


Menu not aligned properly with search box

feel free to fix the small ones. you dont have to assign every ui issue to me :laughing:

ROFL

fixed with 43ecce4213d1c816e621af164b2792c004863f36


Adds partial trace to linalg

This will be used in making measurements for general channels that have keys (Best to take partial trace, then compute probabilities, then apply relevant single krauss operator instead of applying all possible single krauss operator calculating probabilities and then selecting one).  Also useful in general.  Will be also useful for density_matrix class in case of dense representations.


Copy-DBADatabase Performance

If a Copy-DBADatabase command is called on a instance with many databases, then it doesn't perform well.  I've included the section that causes the most grief at the bottom.
It first creates a temp table with one row per database/backup type combo.  On my largest instance this is over 6000 rows.  It then uses that table in a series of inline select statements.  It consistently runs over 30 seconds just for this one step.
My application of the cmdlet is to copy 2000+ databases one at a time to another instance so that I can do a remote CheckDB command so I'm paying this 30+ second penalty thousands of times.
I see 2 possible solutions.

Can we calculate and store the DB_ID on the temp table then index the temp table on that column?  In my environment this dropped the query from 35 seconds to 1 second.

create table #tempbackup (database_name nvarchar(128), **dbid int**, [type] char(1), backup_finish_date datetime)
        insert into #tempbackup select database_name, **db_id(database_name)**, [type], max(backup_finish_date) from msdb..backupset where [type] = ''D'' or [type] = ''L'' or [type]=''I'' group by database_name, [type]

**create index sdfasdf on  #tempbackup (dbid, type) include (backup_finish_date)**

(select backup_finish_date from #tempbackup where type = @_msparam_0 and **dbid = dtb.database_id)** AS [LastBackupDate],
(select backup_finish_date from #tempbackup where type = @_msparam_1 and **dbid = dtb.database_id)** AS [LastDifferentialBackupDate],
(select backup_finish_date from #tempbackup where type = @_msparam_2 and **dbid = dtb.database_id)** AS [LastLogBackupDate],

Option 2:
When we are doing a subset of DBs, can we calculate a smaller amount of dates?  I was able to get sub-second response time when I ran it this way.
    insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where ([type] = ''D'' or [type] = ''L'' or [type]=''I'') **and database_name = ''_Eric''** group by database_name, [type]

ORIGINAL:
exec sp_executesql N'
        create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime)
        insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = ''D'' or [type] = ''L'' or [type]=''I'' group by database_name, [type]

SELECT
dtb.name AS [Name],
dtb.collation_name AS [Collation],
dtb.compatibility_level AS [CompatibilityLevel],
dtb.create_date AS [CreateDate],
dtb.database_id AS [ID],
CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible],
dtb.is_fulltext_enabled AS [IsFullTextEnabled],
CAST(case when dtb.name in (''master'',''model'',''msdb'',''tempdb'') then 1 else dtb.is_distributor end AS bit) AS [IsSystemObject],
CAST(( case LOWER(convert( nvarchar(128), DATABASEPROPERTYEX(dtb.name, ''Updateability''))) when ''read_write'' then 1 else 0 end) AS bit) AS [IsUpdateable],
(select backup_finish_date from #tempbackup where type = @_msparam_0 and db_id(database_name) = dtb.database_id) AS [LastBackupDate],
(select backup_finish_date from #tempbackup where type = @_msparam_1 and db_id(database_name) = dtb.database_id) AS [LastDifferentialBackupDate],
(select backup_finish_date from #tempbackup where type = @_msparam_2 and db_id(database_name) = dtb.database_id) AS [LastLogBackupDate],
ISNULL(suser_sname(dtb.owner_sid),'''') AS [Owner],
dtb.is_read_only AS [ReadOnly],
dtb.recovery_model AS [RecoveryModel],
(dtb.is_published*1+dtb.is_subscribed*2+dtb.is_merge_published*4) AS [ReplicationOptions],

        case
        when dtb.collation_name is null then 0x200
        else 0
        end |
        case
        when 1 = dtb.is_in_standby then 0x40
        else 0
        end |
        case dtb.state
        when 1 then 0x2
        when 2 then 0x8
        when 3 then 0x4
        when 4 then 0x10
        when 5 then 0x100
        when 6 then 0x20
        else 1
        end
       AS [Status],
CAST(DATABASEPROPERTYEX(dtb.name, ''Version'') AS int) AS [Version],
dtb.is_broker_enabled AS [BrokerEnabled],
ISNULL(DB_NAME(dtb.source_database_id), N'''') AS [DatabaseSnapshotBaseName],
CAST(case when dmi.mirroring_partner_name is null then 0 else 1 end AS bit) AS [IsMirroringEnabled],
dtb.is_trustworthy_on AS [Trustworthy],
dtb.name AS [DatabaseName2]
FROM
master.sys.databases AS dtb
LEFT OUTER JOIN sys.database_mirroring AS dmi ON dmi.database_id = dtb.database_id
WHERE
(
        case
        when dtb.collation_name is null then 0x200
        else 0
        end |
        case
        when 1 = dtb.is_in_standby then 0x40
        else 0
        end |
        case dtb.state
        when 1 then 0x2
        when 2 then 0x8
        when 3 then 0x4
        when 4 then 0x10
        when 5 then 0x100
        when 6 then 0x20
        else 1
        end
      =@_msparam_3)
ORDER BY
[Name] ASC

        drop table #tempbackup

',N'@_msparam_0 nvarchar(4000),@_msparam_1 nvarchar(4000),@_msparam_2 nvarchar(4000),@_msparam_3 nvarchar(4000)',@_msparam_0=N'D',@_msparam_1=N'I',@_msparam_2=N'L',@_msparam_3=N'1'

What command did you pull that T-SQL from?

Appreciate the detailed information however our module does not explicitly execute the T-SQL shown. This is code that is being generated by SMO under the covers, and not something we can control. I will say the performance the module has around instances with database count over 1k can be extreme. In those situations we have no real control and it is something you would have to work around with your own query.
I've had clients with database counts in the 4k on instances and in those environments use of SMO was not worth the effort. I moved to just using my own T-SQL calls with Invoke-DbaQuery to manipulate and get things done. Just a nature of the beast.
Calls to things like $server.Databases in our module is where you will see a hit of performance because of the enumeration that is done in SMO. A few releases they have tried to fix this but instances that have large amount of databases will still see large performance issues.
You might consider submitting this information to microsoft/sqltoolsservice as this is where nuget package for SMO is hosted.

That is a bummer.  I appreciate your effort in looking at the issue for me.

Just know some of us feel your pain 😁 ....


Freezes window scroll on touch

I am unable to window scroll when dragging on the list on a touch screen. The window scroll event is swallowed and all I can do is reorder. If I move the list to a div that scrolls, it works fine.

You shouldn't be able to scroll while dragging an item. Scrolling is implemented so that when you drag an item near the bottom / top of the list it'll scroll automatically.
Imagine you're trying to drag an item from the center of the list to the top. If scrolling was also allowed then you would end up scrolling down the page, and you'd never be able to place the item at the top.
Make sure the list container is scrollable & it should work fine. :)

@JakeSidSmith Thanks for the quick response! It does work fine in a list container. But I don't want to constrain it to a list container. I want to have normal window, with a list that disappears off the page. I want to both be able to scroll the page to see the rest of this list (by touch/dragging the list), and to reorder the items. Does that make sense?

Ahh, I think I see what you mean. Even while not dragging an item you cannot scroll past the reorderable list?

On a touch screen, I cannot scroll the page when I touch-drag on the list. The page scroll event seems to be swallowed. I can still scroll the page when I touch-drag elements outside of the list, and I can reorder the items I can see in the list.

Kk. Well, this'll definitely need a fair bit of work. This component was designed to work like a native Android / iOS listview, and they don't tend to have other scrollable content around them.
I'll have a quick look now. :)

Thanks!
You can see this in your demo if you:

disable the overflow:auto on the container div (or remove the list from any otherwise constrained container div)
create enough list items that they disappear off the end of the page
use the chrome iPad emulator to try to scroll.

I've stayed up way too late working on this, but I'm very close to a breakthrough. Will hopefully have the solution tomorrow. Gonna sleep on it. :)


Tests rely on w3c.org and jigsaw.org not redirecting to https

Just to point out that there are tests in t/getstore.t t/get-w3-latin1-utf8.t that will fail if http://w3c.org ever start redirecting to https: and the optional IO::Socket::SSL module is not installed.
Likewise, get-w3-redirect.t relies on a non https redirection from http://jigsaw.w3.org/HTTP/300/301.html.
Is this safe? Is there a better solution?

Yep, that happens pretty much everywhere... I don't think there's a better solution, unless you suggest one.

I could look at updating them to use my test http server.

@Scimon that might be a good and maybe permanent solution :-)


Misleading error on invalid meshconfig

Signed-off-by: manikmmalhotra<EMAIL_ADDRESS>Description
If I have an ill-formatted config.yaml inside .meshery directory and I try to execute any mesheryctl command, it results in the misleading error, fixed it by 'Invalid meshconfig'
This PR fixes #5752

Notes for Reviewers
Always open for suggestions and improvements. Please point me out if anything should be added/corrected.
Signed commits

[ ] Yes, I signed my commits.

@Revolyssup need your reviews here.

Codecov Report

Merging #5854 (c2e0639) into master (25ff1d7) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##           master   #5854      +/-   ##
=========================================
- Coverage    6.01%   5.97%   -0.05%
=========================================
  Files         107     107
  Lines        9851    9924      +73
=========================================
  Hits          593     593
- Misses       9101    9174      +73
  Partials      157     157

Flag
Coverage Δ

gointegrationtests
5.97% <0.00%> (-0.05%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

handlers/meshery_application_handler.go
0.00% <0.00%> (ø)

mesheryctl/internal/cli/root/config/config.go
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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

Thanks, @manikmmalhotra. I don't know that this reformatted error message offers any more clarity.


Use bitwise or operator to merge ColumnSchemas

This makes merging two column schemas easier by using the bitwise OR operator ( | ).

@jperez999 @oliverholworthy I'm good with either decision we could make about precedence, but matching the PEP-584 order seems like it could be good. I'll defer to the two of you to reach an agreement on which way to do it.


change arrow shaft xp rate to per unit xp for unit produced

This is my first ever open source commit. Let me know if I need to improve anywhere.

This would cause the actions field to display a wildly inaccurate value since these can only be made in batches of 15.  I believe a better fix for the use case in which the issue of opened for would be to add additional fields that are the full exp value for fletching ammo from scratch.

@Alexsuperfly From the thread the request came in on, the ask was for the actions to be basically a units count due to how other fletching items are calculated.
But with my merge another issue would be the xp. This is only 0.33 to fit the formatting of the other json items, so the total units per 5 xp would only be 14.95 instead of 15. I don't know if the client rounds up units or allows for partials.


new output

The new output ignores the to_dump list and dumps all fields every time (sorry, I can't have checked this very thoroughly @wence-)

Oops, I think that fixes it.


Complete BinaryStream

The following methods need to be fully implemented:

read_signed_var_int
read_var_long
read_signed_var_long
read_triad
read_triad_le

The following methods need to be checked:

read_int
read_short
read_signed_short
read_int_le

All of these methods also apply with write_x


Add support for Ciseco / Wireless Things sensors

Description:
These sensors were made by now defunct Ciseco / Wireless Things company, but may still be used by some people.
The implementation is currently, somewhat, suboptimal. In the sense that every sensor creates it's own UDP listener. I plan to reduce this to one listener per port when I have some spare time.
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#2052
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: llap
    sensors:
      - name: "Room Temperature"
        id: RT
        prefix: "TEMP"
        unit_of_measurement: "°C"

Checklist:

[x] Documentation added/updated in home-assistant.github.io
[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New files were added to .coveragerc.

You'll need to move the UDP listening and parsing logic to an external library.

What is your plan on this PR?

Sorry for not replying. I'm quite busy IRL currently :-)
I'll try to move listening logic to an external library, as suggested. However, as I don't have any Python experience (I actually got familiar with Python while writing this component), this might take longer than expected.

There is a guide (kind of hard to find) linked from the starting with development page. It's a little long, but it should help guide you through getting a library published.
You can also of course ask for help in the dev chatroom if you have any questions.

Closing this. When you externalized the code you can create a new PR.


"Large velocity, reset IMU-preintegration!"

Hi @TixiaoShan,
Thanks for sharing your excellent work.

I am testing the lio-sam system but I got a warning for "Large velocity, reset IMU-preintegration!". And the trajectory result is very bad.

My IMU data is from INS570D and lidar data is from RS-LIDAR 16, the default coordinate of IMU is "x-forward, y-right, z-down" and the default coordinate of RS-LIDAR is "x-right, y-forward, z-up", i have changed both of them to "x-forward, y-left, z-up", but the result is still bad.

As shown in the two figures, I modified the code for IMU and LIDAR to complete coordinate transformation.
3.I used lidar_imu_calib to calib LIDAR and IMU. I did it in a small room, but when I put the extrinsicRot and extrinsicRPY into the yaml, the result did not change, still very bad.

I don't know which part I did wrong. I hope someone can give me some advice，such as whether I need to calibrate IMU with IMU_utils?

@heirenlop I ran into the same problem, did you solve it

@duanchengwen @heirenlop Hi guys, I am getting the same issue, any luck so far? Thanks

Thanks for the suggestion. I have tried that, but I think my issue with the imu plugin in gazebo since I am using a simulated environment to test the algorithm. For some reason the imu plugin is very noisy and the output data are all over the place even when the robot is stand still! I have set the Gaussian noise to 0, but that did not change anything!
This is the plugin configuration:

true

<always_on>true</always_on>
<update_rate>200</update_rate>
true
default_topic

imu_raw
${sensor_name}
200.0
0.0
0 0 0
0 0 0
$(arg tf_prefix)${sensor_name}
false

@bobusfil do you remember the output frequency of your IMU?

Hi guys, do you have any updates on this?

I also have this really strange behaviour when map is going up and down while robot is staying. I am working with turtlebot + velodyne VLP-16 simulator in gazebo simulation

you may need to check the imu frequency

    <gazebo reference="imu_link">         <gravity>true</gravity>         <sensor name="imu_sensor" type="imu">             <always_on>true</always_on>             <update_rate>1000</update_rate>             <visualize>true</visualize>             <topic>__default_topic__</topic>             <plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin">                 <topicName>trunk_imu</topicName>                 <bodyName>imu_link</bodyName>                 <updateRateHZ>1000.0</updateRateHZ>                 <gaussianNoise>0.0</gaussianNoise>                 <xyzOffset>0 0 0</xyzOffset>                 <rpyOffset>0 0 0</rpyOffset>                 <frameName>imu_link</frameName>             </plugin>             <pose>0 0 0 0 0 0</pose>         </sensor>     </gazebo>
Currently i have these settings for imu

I have encounter this issue before, so the was I solved it is to set the imu frequency into sensible range like 200Hz, then I increased the frequency of the simulator, I set it to 1k hz, so I would suggest to check your simulator update rate, here are my configuration as a reference:
    <physics name='default_physics' default='0' type='ode'>       <real_time_update_rate>1000</real_time_update_rate>       <real_time_factor>1</real_time_factor>       <max_step_size>0.001</max_step_size>     </physics>
Note: the update rate frequency must be at least x2 faster then your fastest signal in the simulation. https://en.wikipedia.org/wiki/Aliasing

After i changed the extrinsics and reduced the update_rate for imu to 200 it became slightly better(it does not start oscillating or falling down from the beginning), but it is still bad. It first starts drifting a little bit, but after some time it starts oscillating a lot even though my robot stays at the same place.

by the way, you could try FAST-LIO: https://github.com/hku-mars/FAST_LIO it did work much better for my use case

Here is the physics of the world i am currently using:
 <physics name='default_physics' default='0' type='ode'>       <max_step_size>0.001</max_step_size>       <real_time_factor>1</real_time_factor>       <real_time_update_rate>1000</real_time_update_rate>     </physics>
I will definitely check fast_lio, but at the same time i'd really like to know why is this problem happening, i am also facing same drift when i am trying to run it with turtlebot

I have encounter this issue before, so the was I solved it is to set the imu frequency into sensible range like 200Hz, then I increased the frequency of the simulator, I set it to 1k hz, so I would suggest to check your simulator update rate, here are my configuration as a reference: <physics name='default_physics' default='0' type='ode'> <real_time_update_rate>1000</real_time_update_rate> <real_time_factor>1</real_time_factor> <max_step_size>0.001</max_step_size> </physics> Note: the update rate frequency must be at least x2 faster then your fastest signal in the simulation. https://en.wikipedia.org/wiki/Aliasing

Hey there Ibrahim! I'm sorry but I did my own bag file using gazebo simulateur too and when i tried to launch lio sam, the map was overlapping like the previous guy. I changed my IMU to 200hz like you said, it did not work, i tried to uncomment the "extrinsic"", lio sam launch won't work anymore and it shows this:
RLException: error loading  tag:
file /home/houcem/catkin_ws/src/LIO-SAM/config/params.yaml contains invalid YAML:
while parsing a block mapping
in "", line 4, column 3:
pointCloudTopic: "points_raw"    ...
^
expected , but found ''
in "", line 49, column 4:
extrinsicRot: [1, 0, 0,
^
XML is
The traceback for the exception was written to the log file
Can you help? thanks!

Hi @houcemsaidani , this seems to be indentation issue, so please make sure the indents are correct. If you still facing issues with lio-sam I suggest this package: https://github.com/hku-mars/FAST_LIO .. thanks

@ibrahimhroob Were you able to deal with the flickering of your simulation's IMU in LIO-SAM?

@joao-aguizo yes I was long time ago, the issue was mainly with the sampling time of my simulator, so I set it to 1k Hz and set my IMU frequency to 200 Hz, with this configuration you can avoid sensor sampling aliasing.

Hi @joao-aguizo Can you tell me where did you set the IMU Frequency? exactly in which script f the package?

@harisbinyousaf24 At the time I was using the Husky model. Assuming that you are using it as well, you should take a look into this line, in case you wish to increase the frequency of the IMU plugin.

@joao-aguizo @ibrahimhroob Actually the thing is that my data is published by ros bag i have recorded data. My imu/data is publishing at 20Hz which is i know too low frequency as per requirement. Any solution regarding this? My output is same as @smileyenot983 Would highly appreciate help at this moment!

@harisbinyousaf24 20Hz is definitely really low for LIO-SAM... I would try to get a dataset with an higher frequency, I have worked in the past with an IMU@100Hz and it worked decently.
If the first suggestion is not an option for you, targeting the IMU@100Hz that I mentioned before, what I have seen in the past is that you could slow down the bag and re-record all the topics except the one from the IMU, the output dataset would then be 5 times slower in every topic except the latter, which would appear to be at a rate of 100Hz relative to the others. Be aware that with this approach you would lose part of your dataset.

@harisbinyousaf24 20Hz is definitely really low for LIO-SAM... I would try to get a dataset with an higher frequency, I have worked in the past with an IMU@100Hz and it worked decently.
If the first suggestion is not an option for you, targeting the IMU@100Hz that I mentioned before, what I have seen being done in the past involves re-recording a slowed versions of all the topics except the one from the IMU, the output dataset would then be 5 times slower in every topic except the latter, which would appear to be at a rate of 100Hz relative to the others. I would start by taking a look into ROS' topic_tools throttle.

@joao-aguizo Thank u for the suggestion! I probably would have considered that if recording data was in my hands. Actually the data that comes to me in the form of rosbag is from a different location.
Can you please give me any other suggestion in that respect? Also if i upsample the data coming from IMU at 200Hz and then publish it on some other topic and then replace that topic in the LIO-SAM launch file would that help?

@joao-aguizo Thank u for the suggestion! I probably would have considered that if recording data was in my hands. Actually the data that comes to me in the form of rosbag is from a different location. Can you please give me any other suggestion in that respect? Also if i upsample the data coming from IMU at 200Hz and then publish it on some other topic and then replace that topic in the LIO-SAM launch file would that help?

Hi have you solved the problem? I'm still not sure why the frequency of the IMU could be a problem...


Reuse the RFC7231InstantFormatter for all Netty Channels

Problem
A new DateTimeFormatter is created for each Netty Channel. In the HTTP/2 flow this can start to add up as each dispatch will get its own Channel.
Solution
Create it once in the object and share it. The DateTimeFormatter type is immutable and thread safe so there is no reason not to.

test failure is a flaky test. Not related to this change.

thanks

That's a nice name to see back at the top of the changelog!

That's a nice name to see back at the top of the changelog!

Haha, I couldn't help it: I love this stuff. Maybe the next one will be more exciting. Maybe not 😉.


3.1 fixes

Fixed for issues found in the 3.1 code review.
Major changes:

docs api should now build all modules, instead of just Project
changes made to the docker build of documentation_test so that it agrees with Pathlib
added Pathlib throughout the library.
changed the nomenclature for the thickness calculator
added plot hamersley test (tests with the right input, and tests also for wrong input:. currently test for wrong state, wrong config, wrong epsg)
added test for thickness calculator StructurePoint with loop3d server data
removed execution_times file

Did we loose the plot_hamersley example for the docs? I can't see the file when I checkout the branch

Did we loose the plot_hamersley example for the docs? I can't see the file when I checkout the branch

@lachlangrose
seems to be there:
https://github.com/Loop3D/map2loop/blob/3_1_fixes/docs/examples/plot_hamersley.py


RDCC-2077: Adding env variables and S2s authorised services.

JIRA link (if applicable)
Not Applicable
Change description
Adding env variables and S2s authorised services.
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

This PR is not required.


Make join-reordering configurable by setting

Problem Statement
CrateDB has multiple steps of join-reordering and it can produce a non-optimal join-order which leads to slow-running queries. For these cases, it is useful for the user to switch join reordering completely off to fixate the join order exactly as defined in the query.

Reordering hash-join/nested-loop joins is already configurable
There is another reordering step in  io.crate.planner.operators.JoinOrderingwhich can not be configured yet

Possible solutions

Move the logic from io.crate.planner.operators.JoinOrdering into a rule which then can be configured
Introduce a session setting which disables join-ordering in the JoinPlanBuilder

Resolved by https://github.com/crate/crate/issues/14240


Minimum version of Android and iOS for 5.x

Hi, what is the minimum version (API) for Android and iOS for 5.x ?

Nothing has changed


Use pod-template-hash label in addition to topology spread constraint matchLabels

Is your feature request related to a problem? Please describe.

Multiple deployments can exist with the same topology spread constraint match labels. This means that our topology spread constraint strategy may group multiple deployments and consider them as one.
Describe the solution you'd like

We should use the pod-template-hash ensure unique deployments are calculated separately.
Describe alternatives you've considered

None
What version of descheduler are you using?
descheduler version:
1.24
Additional context

Adding our discussion here as well for reference.
Given that https://github.com/kubernetes/kubernetes/pull/111441 has been merged, Descheduler could use the new MatchLabelKeys field similar to how Scheduler is using it today.
cc: @damemi for insights, given he created the Scheduler issue.

I saw the pr after i logged this issue. I agree i didn't realize only the deployment controller was using the pod hash. I can change the scope of the issue or close it out.


Outdated package version for destiny

The last published version of my package destiny’s docs is 2.0.4, while versions as high as 2.10 are already on Bioconductor.
Could you please look into why your crawler fails to parse my package?

hi! any news?


New to add usage block for TF

Add terraform usage block to readme for users to leverage

Branch usage-readme-updates to fix for this repo


ios - 'openSettings()' open general settings instead of app settings on the first time it is called

Bug summary
The first time that we call openSettingsit opens the general settings page instead of the current app settings. It takes some seconds the first time to navigate to the App settings.
On all the calls for openSettingsafter this, the current app settings open correctly.

You can found the sample code for the example above at this link
Library version
3.0.5
Environment info
System:
    OS: macOS 11.4
    CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
    Memory: 432.93 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.8.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.21.0 - /usr/local/bin/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.11.2 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
    Android SDK:
      API Levels: 28, 29, 30, 31
      Build Tools: 28.0.3, 29.0.2, 30.0.2, 31.0.0
      System Images: android-30 | Google APIs Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 4.2 AI-202.76<IP_ADDRESS>86908
    Xcode: 12.5.1/12E507 - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_292 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2
    react-native: 0.65.1 => 0.65.1
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to reproduce
Follow the steps on the gif below:

You can found the code to reproduce the scenario at this link
Reproducible sample code
import React, {useState} from 'react';
import {
  SafeAreaView,
  ScrollView,
  StatusBar,
  StyleSheet,
  Text,
  useColorScheme,
  View,
  TouchableOpacity,
} from 'react-native';

import {Colors} from 'react-native/Libraries/NewAppScreen';

import {
  request,
  PERMISSIONS,
  RESULTS,
  openSettings,
} from 'react-native-permissions';

const App = () => {
  const [permissionBlocked, setPermissionBlocked] = useState(false);

  const isDarkMode = useColorScheme() === 'dark';

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  const requestPermission = () => {
    request(PERMISSIONS.IOS.CAMERA).then(result => {
      if (permissionBlocked) {
        openSettings();
        return;
      }
      if (result === RESULTS.BLOCKED) {
        setPermissionBlocked(true);
      }
      if (result === RESULTS.GRANTED) {
        setPermissionBlocked(false);
      }
    });
  };

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        style={backgroundStyle}
        contentContainerStyle={styles.scrollView}>
        <View style={styles.view}>
          <TouchableOpacity onPress={requestPermission} style={styles.button}>
            {permissionBlocked ? (
              <Text style={styles.text}>Open Settings</Text>
            ) : (
              <Text style={styles.text}>Request Permission</Text>
            )}
          </TouchableOpacity>
        </View>
      </ScrollView>
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  scrollView: {
    justifyContent: 'center',
    alignItems: 'center',
    width: '100%',
    height: '100%',
  },
  view: {
    width: '100%',
    height: '100%',
    justifyContent: 'center',
    alignItems: 'center',
  },
  button: {
    backgroundColor: 'blue',
    width: '100%',
    maxWidth: 150,
    height: '100%',
    maxHeight: 50,
    justifyContent: 'center',
    alignItems: 'center',
    borderRadius: 8,
  },
  text: {
    color: 'white',
  },
});

export default App;

Did you tried on a real device or on a simulator?

Both. Real device and simulator.

This is a system thing as far as I can tell. Settings is an actual android app shipped by google and has nothing to do with your app running (which would imply the react-native-permissions module, inside your app). It seems like it just takes a while for the settings app to actually load up the settings for a specific app.
No idea what react-native-permissions can do about it, so even though I noticed this a long time ago I never thought to log it as an issue here - doesn't seem actionable

Sorry - realized you meant iOS, I did notice it there also, but came to the same conclusion - does not seem actionable

I once noticed that there is sometimes a bug when you develop on iOS: the app setting menu does not exists the first time you install it. This explain why it can't be opened.
(This issue does not happen on production)


Various API extensions

Just things which need to be added to the API at some point.

ILuaMachine should have a .injectDebug() method.
Move IComputerEnvironmentExtended to API

The former was implemented in fd9dbb59f9bff6dd08325cf8abbc9e65be5dd45b. I'm probably not going to do the latter: it isn't really needed for general use.


feat: [store] allow a function named 'initialState' to define the state

Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[x] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
When using the Vuex store in the modules mode, the changes in this PR will allow the state to be defined by a function named named 'initialState' instead of 'state' - this implements #3995.
The existing functionality stays unaltered: Nuxt will first search for a function named 'state', then, if not found, search for the new 'initialState'.
Checklist:

[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[x] I have added tests to cover my changes (if not applicable, please state why)
[x] All new and existing tests are passing.

@felubra I'm not sure I get this. What's the advantage over state and/or createStore?

What about case when there both state and initialState will be in code. It wouldnt be obvious which one is used. I think its will be fine to throw error in this case

@galvez read the linked issue https://github.com/nuxt/nuxt.js/issues/3995

Good point @aldarund!

@manniL @felubra @aldarund I see this as a matter of documentation. Introducing a new non-standard Vuex feature just to catch a programming mistake seems overkill to me.
Please comment @clarkdo @pi0 @Atinux :)

Codecov Report

Merging #4096 into dev will increase coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              dev    #4096      +/-   ##
==========================================
+ Coverage   97.32%   97.43%   +0.11%
==========================================
  Files          18       18
  Lines        1272     1249      -23
  Branches      351      345       -6
==========================================
- Hits         1238     1217      -21
+ Misses         33       31       -2
  Partials        1        1

Impacted Files
Coverage Δ

lib/common/options.js
97.08% <0%> (-0.03%)
:arrow_down:

lib/builder/builder.js
96.39% <0%> (-0.02%)
:arrow_down:

lib/core/renderer.js
100% <0%> (ø)
:arrow_up:

lib/common/utils.js
100% <0%> (ø)
:arrow_up:

lib/common/nuxt.config.js
100% <0%> (ø)
:arrow_up:

lib/builder/webpack/utils/postcss.js
100% <0%> (+4.65%)
:arrow_up:

Continue to review full report at Codecov.

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

Awaiting for you guys ✌

@felubra we discussed this in the core team channel and we agreed to open a nuxt/docs PR instead with a hint on how to avoid this error. Actually feel free to do so on our behalf and I'll get it approved right away. Adding this to our docs TODO for now. Thank you!


How to set output???

I want to change ouput path, but no way.I had read the API for long time but found nothing

Closing as a duplicate of #170


Updates from feature/wmputman/KM_v11_3_2_Moist_WMP as of 2023-11-21

Zero-diff results for stock configuration of GCM. However, the following restarts have changed:

moist_import_checkpoint was cleaned up to reduce the file size by removing the following variables:
DQVDTDYN, DTDTDYN, OMEGA, PHIS, PLE, PLE_DYN_IN, PREF, QV_DYN_IN, T, TAUOROX, TAUOROY, T_DYN_IN, U, U_DYN_IN, V, V_DYN_IN, W, ZLE
gocart_import_checkpoint fixed variable: QCTOT

2. gocart_import_checkpoint fixed variable: QCTOT

GEOS be weird. Change a line in Moist, affect a variable in GOCART! 😄


BVC-71 :: TOUTOC bug in new-key-claim endpoint

Similar problem to #140 but on new-key-claim path.
"
A solution to this vulnerability would be to check and add the one-time-code entry in a single SQL command. If the intented functionality of this endpoint is to ensure unique hash per one-time-code, developers may consider using the the sql REPLACE command for hashID requests."
Alternatively, it would probably make sense to have a unique constraint on the hashID field as well, which, would fix this, and any other potential bug we may have lurking.

Tried the UNIQUE constraint and realized NULL or "" has to be unique too ;)


Fixed Pager Crash, Removed unnecessary code

I removed all the Search and filter code from LatestUpdates as well as recycled some xml files.
item_latest_updates_grid, item_latest_updates_list, latest_updates_list
were all exact duplicates of the catalogue versions so they weren't needed

This is great! Thank you.


Include tmlanguage computed file in repo as we'll need it for github linguist

To register a tm language on github linguist we need to publish our grammar.
Instructions https://github.com/github-linguist/linguist/blob/master/CONTRIBUTING.md#adding-a-language

You can try these changes at https://cadlplayground.z22.web.core.windows.net/prs/2872/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/prs/2872/

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@typespec/compiler


Should table search filter also filter map features?

I suggest not, but in that case the feature click should handle the case of its table row being hidden.
For example, try search and then map-click at https://dev.whgazetteer.org/collections/7/browse_ds

After some thought, I've resolved this by clearing the search and redrawing the table whenever a map feature is clicked.
The only other sensible option seems to me to be to hide any map features that are not present in the filtered table, but the existing temporal filter would make that really complicated. Besides, I think it's quite useful to be able to see all the map features.


Trait function alias is not recognized

Larastan Version: 0.7.2
--level used: 5

Laravel code where the issue was found
class ...
{
    use HasFactory, HasMedia, Filterable {
        filters as defaultFilters;
    }

then static::defaultFilters() calls are unknown.
 ------ ---------------------------------------------
  Line   app/Models/Sheet.php
 ------ ---------------------------------------------
  81     Call to an undefined static method
         static(App\Models\Sheet)::defaultFilters().
 ------ ---------------------------------------------

If you write three use ...; lines it works!

Hi,
This most probably related to PHPStan itself. Static reflection for trait aliases might not be supported. Can you open an issue there?

Static reflection for trait aliases might not be supported.

@canvural Could it be that they are supported when writing them one per line?

If you write three use ...; lines it works!

Can you open an issue there?

Done.
https://github.com/phpstan/phpstan/issues/4886

I'm gonna close this as this appears to be indeed a bug in PHPStan.


mismatch of tensor sizes in the addition operation

Hello.
mismatch of tensor sizes in the addition operation in kaggle
What do I need to do to get rid of the problem?
Traceback (most recent call last):
  File "/kaggle/working/SegRNN/run_longExp.py", line 141, in <module>
    exp.train(setting)
  File "/kaggle/working/SegRNN/exp/exp_main.py", line 168, in train
    outputs = self.model(batch_x)
  File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/kaggle/working/SegRNN/models/SegRNN.py", line 133, in forward
    y = y.permute(0, 2, 1) + seq_last
RuntimeError: The size of tensor a (0) must match the size of tensor b (256) at non-singleton dimension 0
^C
Traceback (most recent call last):
  File "/kaggle/working/SegRNN/run_longExp.py", line 141, in <module>
    exp.train(setting)
  File "/kaggle/working/SegRNN/exp/exp_main.py", line 140, in train
    batch_x = batch_x.float().to(self.device)
KeyboardInterrupt

I've reviewed your modified code. I noticed that you're attempting a prediction with a horizon of 24, but the seg_len is still set to 48. It's important to note that seg_len should be set to the common factor of seq_len and horizon to ensure both input and output sequences can be properly segmented.
To address this, you can directly modify seg_len to 24 and see if it resolves the issue. Additionally, seg_len is a crucial hyperparameter that can affect the model's performance, so in practical applications, be sure to fine-tune this parameter carefully.

Thank you very much for the quick response.
It helped me


[BACKLOG-39432] Add the option to choose traditional Chinese language…

… in PDI and PUC

:white_check_mark: Build finished in 48m 5s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core

:ok_hand: All tests passed!
Tests run: 5331, Failures: 0, Skipped: 14    Test Results

:information_source:  This is an automatic message


Genesis setup for mainnet-release-test-1 network.

Setup accounts.toml for 4 genesis validating nodes and preloading bitgo's balance.
Changed finality_threshold_fraction to [1, 3] instead of [1, 10] to match the changes Andreas made to local.
Total supply: 10_000_000_000 . 000_000_000  CSPR
This will test first full release of the protocol version by CI.

bors r+

bors merge


[Nova] Clean commit for Enabling Nova Linux Wheels Workflows

Creating this fresh PR since we're reverting the older commit that removed build configs from the CircleCI file. This does not change the existing builds/uploads in CircleCI, and should not break any existing jobs/workflows. This is just to add back workflows to build the Linux Wheels with Nova, upload them to GH artifacts (NOT to the actual nightly channels), and ensure that they produce the same binaries as CircleCI. TO CLARIFY: this does not upload anything to nightly channels, so this PR has not effect on any existing jobs or distributed binaries.
We will create a workflow (most likely in test-infra) that does this comparison between the binaries to ensure there is parity between the binaries before we start uploading with Nova.
Successful Builds: https://github.com/pytorch/audio/actions/runs/3177751059

@hwangjeff would love a review on this.

gentle bump @mthrok @hwangjeff for a review on this :)


feat(container-stats): introduce container block I/O stats

Potentially closes #4260
Related to #4242
This PR is a minimal improvement over #4303

#4303 is an existing PR from @DarkAEther

/azp run


[RR Request]: lazytrivy v1.0.0

Open Source Project name
Lazytrivy
What is your project?
lazytrivy is a wrapper for Trivy (the vulnerability and misconfiguration scanner) that allows you to run Trivy without remembering the command arguments.
lazytrivy will run Trivy in a docker container and display the results in a terminal UI, the intention is that this will make it more stable across all platforms.

Version
v1.0.0
Date
21st September 2022
Description of breaking changes
nil
GitHub Repo
https://github.com/owenrumney/lazytrivy
Website
https://github.com/owenrumney/lazytrivy
Link to changelog
https://www.owenrumney.co.uk/lazy-trivy-introduction/
Social media
https://twitter.com/owenrum/status/1572536592270491649
Anything else to add?
No response

Congrats on being featured in the September 2022 Release Radar 🥳

Read the blog here
Check out our GitHub Tweet


Feature Request fix bind loss - rebinding both ways

Could you do the rebind fix for both ways when switching modes?

The same approach (setting pairing IDs manually) doesn't work for O3.

For the AU/Vista generation we got lucky as air side will adopt the Goggles pairing ID, therefor after a switch we can just set the pairing ID to the goggles relavant ID and any previously paired AU/Vista will just connect. O3 Air Units have a unique pairing ID of their own. All is not lost, we can read the pairing id out of memory when connected and store it for later use. However...
For O3 even restoring the pairing ID manually to the correct state (or all of nvram, where these things are stored) does establish a connection but we never get camera image, the screen stays black. There must be some other relavant state stored somewhere on the goggles that is additionally required.

Despite hours upon hours working on it I never figured out what that state is. Afraid I don't have time these days to resume the search.

Thanks for the good explanation. We have something at least. If I follow a O3 Air Unit first approach it does not impact me to badly at all. I can do the rebind at home, and not out on the field.
Out of curiosity ... Is there a way to read out all states of the O3 Air Unit? Like dump or diff all on the Betaflight CLI?
Without beeing involved into dji development for both of us the missing state could be anything. I personally would put something in there that would make sense in later use for the communication between Air unit and google, like area code of the googles, selected channel or other initial setting mybee transmitting power. But of course it could also be in a complete different direction, like the devs detecting that they forgot a madatory setting and with binding the google they put it into place with it's default value. Could even be trival then, something like aspect ratio or any other setting or state - if I correctly understood what you described.
But what does speculating help when try and error is so time intense here.
If could just help somehow ...

There's no real way to dump internal state from O3 nor do we have root for it. In any case the relavant state would be on the goggles side.
I suspect it's more something like an encryption key being stored somewhere but not sure, you could be right and it could also be a failure to auto negotiate camera settings.
You can read the pairing IDs while paired to O3 (with adb or the fpv.wtf CLI) using:
busybox devmem 0x0B52A004 32
busybox devmem 0x0B52A00C 32

You can set pairing IDs with:
busybox devmem 0x0B52A004 32 {insert_value_to_restore_here}
busybox devmem 0x0B52A00C 32 {insert_value_to_restore_here}
modem_info.sh reboot

modem_info.sh includes said addresses for reference.
This will get you to the same state I was in when I last worked on this, but I'm afraid I don't have any real tips other than that. One can use "adb logcat" to get internal logs from the goggles and try to search for relavant errors. From there though you'll need to actually reverse engineer the relavant binaries to figure out what's actually going on.


Game crashes on startup.

I'm using version <IP_ADDRESS> of Desolation. I tried disabling Sodium but it still crashes on startup.
Crashlog:
crash-2021-02-10_20.48.16-client.txt

Thanks for the report, should be fixed in <IP_ADDRESS>!


fix characterMapping for azerty keyboards (require SHIFT key to be pr…

…essed) #3
Allow azerty keyboards to use the 1.  and * sequence properly.

@Grsmto Hah, that was hard :) Thanks for the PR, I’ll merge and cut a release later today.

@grsmto Merged and released. Thanks again!


How do you save a self-hosted Freeboard?

So, i've exported a json backup from my old hosted freeboard.io board and have installed the self-hosted version on my server. I can then import this json file however, re-loading the page just empties the view again and doesn't retain the imported json file.
How can I save my freeboard configuration between page refreshes / sessions like I did on the freeboard.io version?
Thanks for any help in advance.

I keep my dashboard.json file in my private Keybase share, and load it when I need to.

Save the dashboard.json to the same folder as your freeboard is hosted.
Then use url like http://domain.com/freeboard/index.html#source=dashboard.json

Thanks @VitaZalud, that works.
Problem still is that it doesn't 'remember' what type the feeds are. Mine are all json and looking at the exported dashboard.json file it all looks correct but it doesn't set the type properly on dashboard load or import.

I have the same issue as @jackmcconnell , however, when creating a dashboard.json on the local server, save, and use the same json file with #source=dashboard.json  it seems to "remember" the type of feed. Took me a while to figure this out, might be a security issue of some sort, hope this helps someone.

Why don't we add the @VitaZalud comment in documentation? I figured how to do by reading the code but I think it could help people to integrates freeboard better.


Unsupport statement in flux.py

I tried to install psi-j-python by running make install and got the error below. I suggest upgrading to python 3.7 or removing the future statement
creating`` /gpfs/fs1/home/wilke/anaconda3/envs/psi-j/lib/python3.6/site-packages/psi_j_python-0.1-py3.6.egg Extracting psi_j_python-0.1-py3.6.egg to /gpfs/fs1/home/wilke/anaconda3/envs/psi-j/lib/python3.6/site-packages   File "/gpfs/fs1/home/wilke/anaconda3/envs/psi-j/lib/python3.6/site-packages/psi_j_python-0.1-py3.6.egg/psij/executors/flux.py", line 3     from __future__ import annotations                                      ^ SyntaxError: future feature annotations is not defined

A bit of a side note. annotations from future was introduced in 3.7. It's my understanding that it is used to declare types of variables in the following form: <name>: <type> = <value>. However, it is still possible to achieve the same goal with <name> = <value>  # type: <type>. While the former syntax appears more appropriate, it may not be sufficient of a reason to require 3.7 instead of 3.6.

Python 3.6 reached its EOL at the end of 2021, so I think we can safely upgrade to 3.7.

It may have reached EOL, but that doesn't mean it's not used. See, e.g., https://pypistats.org/packages/all, https://w3techs.com/technologies/details/pl-python/3.
I think it would be reasonable to bump the minimum version if we were quite sure it is not used any more and/or the cost of maintaining compatibility was high. But I don't think either of those things are true here.


css->scss: editor page

closes #831

- I have participated in GSSOC and CrossWoC

@anushbhatia @smaranjitghose , my other 2 prs are dependent on the code written in this pr. please consider reviewing


10.2,10.3

10.2，10.3节

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.安祺 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Print warning when VFS retention is used on Windows 7/8

We are currently running builds with Windows 7 and Windows 10 CI agents, but we'll soon upgrade everything to Windows 10. That will make it hard to test our file watching on Windows 7, and we never planned to test it on Windows 8. We should probably display a warning that file watching is not supported on these operating systems. Another option is to disable the feature altogether.

cc: @gradle/build-cache

We decided that we'll rely on the community to report problems with Windows 7/8 as they arise. We'll mention that the feature is only tested on Windows 10 for now.


generate PennCNV PFB file

Write code using the script "compile_pfb.pl", that comes with PennCNV, to generate a PFB file.
PennCNV is installed on our NCI cluster (CCAD/cgemsiii), so it's probably easiest to just run these tests there.  On the cluster this is how you can see the help page for this script:
module load PennCNV/2015-v1.0.3
compile_pfb.pl -h
Please put working code for generating a PFB file in a .sh file in the "scripts" directory in this repo.  i.e. test the code by submitting the bash script to the cluster using qsub.  Point us to the .sh file and close this ticket once you are confident that this code works.
You'll need a number of PennCNV input txt files for this.  I'll start a separate ticket for generating these txt file for testing.  "scripts/gtc2PennCNV.py" can take gtc files and generate these txt files.  I can point you to some gtc files on our NCI cluster if it's easier to keep everything there instead of dealing with data transfer in multiple places.  For testing you probably can just use a small number of txt files (~10-100).

Having difficulty with the script.
I am unfamiliar with the commands to make sure all of the other data isn't being added to the txt file.
IE:<PHONE_NUMBER>  323 drwxr-sr-x   2 karlinser ncicgr_bioinformatics    27456 Mar 21 17:47 /CGF/Bioinformatics/Production/Eric/Projects/NcbiHackathonMar2017/SnakeTest2/PennCnvIn
5981439282 45842 -rw-r--r--

I generated a PFB file, "files/TestPFB.pfb".
Code to generate it was implemented in "scripts/Snakefile_ref_files".  I needed to change the code in "scripts/gtc2PennCNV.py" to alter the header line of hte txt file this script outputs to get this working.


Press page turn to open next comic does not work anymore (comic view)

When you press page turn at the end of a comic Bubble asks if it should open the previous comic not the next. Swipe page turn at the end works correctly as does press page turn in manga view.

Sorry, my bad. The bug has already been fixed, will work properly in the next release.

fixed in v1.4.0


Issue with first Example

The first example uses the wrong switch for the vnet
az network vnet subnet list -g MyResourceGroup --vnet-name MyVNet
this should be
az network vnet subnet list -g MyResourceGroup -n MyVNet

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 385e420c-4bd0-3ddd-d9cd-a9a411ec1f7b
Version Independent ID: 65172372-f485-3d2b-64aa-57c38ac11538
Content: az network vnet subnet
Content Source: src/command_modules/azure-cli-network/azure/cli/command_modules/network/_help.py
Service: virtual-network
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

No, the example is correct.  It should be --vnet-name not -n

Actually, it's the other way around. The example uses -n but should use --vnet-name

This change will be reflect in next month's release.


CkArray: Remove duplicate array message delivery path

There currently exist two delivery paths for array messages. One was intended as an optimization, but with the new refactor of array message delivery, it is no longer needed, and now only adds complication as the two paths had diverged.

Still in progress, but I put it here to get input from @nitbhat since the primary thing it affects is some ZC stuff.
The main question I have is w.r.t. the zero copy message buffering. Is that something that has to happen per location, or per array element? The distinction only matters in cases where you have multiple arrays bound together. If a particular index has a buffered rget message, do all elements for that index need to buffer all incoming communication, or does just that specific array element? I also have some other questions that I'll inline directly in the code.

{
  // Call ckJustMigrated
  CkLocRec* myLocRec = elementNrec(id);
  callMethod(myLocRec, &CkMigratable::ckJustMigrated);

  // Call ResumeFromSync on elements that were waiting for rgets
  auto iter2 = toBeResumeFromSynced.find(id);
  if (iter2 != toBeResumeFromSynced.end())
  {
    iter2->second->ResumeFromSync();
    toBeResumeFromSynced.erase(iter2);
  }

  // Deliver buffered messages to the elements that were waiting on rgets
  auto iter = bufferedActiveRgetMsgs.find(id);
  if (iter != bufferedActiveRgetMsgs.end())
  {
    std::vector<CkArrayMessage*> bufferedMsgs = iter->second;
    bufferedActiveRgetMsgs.erase(iter);
    for (auto msg : bufferedMsgs)
    {
      CmiHandleMessage(UsrToEnv(msg));
    }
  }
}```

Ok, so I can't comment on unchanged files, but this function is where most of my questions lie.

1. Why is ckJustMigrated called here? And on all chares?
2. The resume from sync stuff seems to imply that maybe this is in fact a property of the location not the element.
3. Is there a reason to use CmiHandleMessage to go all the way back through the queue? My thought was to treat this message buffering like any other message buffering, and just call `CkArray::recvMsg` (or something similar) rather than going all the way back through Cmi message handling. But I wasn't sure if there was a specific reason for that.

The resume from sync stuff seems to imply that maybe this is in fact a property of the location not the element.

I think I put this code in CkLogMgr because the older location management code was in here. But, in theory, a zc pup based rget is only array element dependent and the reason I buffer messages for that array element is that the element's data is not safe to be operated upon by executing entry methods until the rgets are complete. A bound array element bound to this element should not be impacted by active rgets.

I'm not sure about this. A defining quality of bound array elements is that they migrate together. I think in AMPI we rely on the ordering of packing/unpacking bound array elements being consistent, so that we can get pointers into data owned by the "parent" AMPI chare array when PUPing the "child" AMPI chare array.  I think if we allow migration to finish in one array element independent of another bound array which has active rgets, then the first may end up trying to get a pointer to some data that hasn't yet been transferred via rget in the second.


Support exposing ratelimit response headers

Please describe your use case / problem.
Users of our API would like to understand their current standing regarding our imposed ratelimits.
Describe the solution you'd like
I would like to be able to expose headers that describe the current ratelimit. For example, I'd like to be able to answer questions like: how many requests do I have remaining? what is the current limit? when does the limit reset?
Describe alternatives you've considered
I've looked into supporting enable_x_ratelimit_headers but ambassador seems to rely on the v2 API, so that doesn't seem to be possible today. Additionally returning headers from the ratelimit service directly was added in the v3  RLS api, but that also doesn't look to be supported either. I don't have another way to instrument this logic within ambassador as far as I can tell. If I missed something please let me know!
Additional context
N/A

We made an enhancement - can you check if this helps and reopen if the issue persists on v2.x?


Add support IndexIVFFlat

Hello.
faiss-sys supported IndexIVFFlat functions.

We can't cast type of Index.
They are different types.
here https://github.com/Enet4/faiss-rs/blob/master/faiss-sys/src/bindings.rs#L702
FaissIndexIVFFlat_H != FaissIndex_H
for IndexIVF
https://github.com/Enet4/faiss-rs/blob/master/faiss-sys/src/bindings.rs#L756
It is equal.
It supports for IndexIVF only.
https://github.com/facebookresearch/faiss/blob/master/c_api/IndexIVF_c.h#L39

We can add fixes
from
https://github.com/facebookresearch/faiss/pull/1764
to
https://github.com/Enet4/faiss/tree/c_api_head
or we are waiting a new version faiss?

Regarding the new version, it is mostly a matter of time until I finish reviewing #12 and #14, after which I will just release a new version of faiss-rs with the note that users should install a patched version of Faiss.
Until then, a PR to add this index type based on the current upstream would be welcome.

I am speaking only https://github.com/Enet4/faiss/tree/c_api_head
I would like dev impl IVFFlat.
I going to use  fork https://github.com/Enet4/faiss/tree/c_api_head for local development.


Add an estimate of the ISO final filesize in the project documentation

Everything is in the title! The script's explanation is top notch and few metrics added on top of that couldn't hurt!

Everything is in the title! The script's explanation is top notch and few metrics added on top of that couldn't hurt!

Beat me to it.  That's literally what I came here to ask.  :)

Estimated size of compiled binaries added.

Thanks!


Clearify the meaning of units in the case of string-type (0x0a) parameter

Maybe the maximum length of the sting parameter (when editied)?

That was an error. It is definitely the max length of the string. Documentation fixed, thanks!


Unable to use request body with lazy listener when socket mode is enabled

Reproducible in:
slack-bolt==1.11.0
slack-sdk==3.13.0
Python 3.8.8
ProductName:	macOS
ProductVersion:	12.0
BuildVersion:	21A5506j
Darwin Kernel Version 21.1.0: Thu Aug 19 02:54:44 PDT 2021; root:xnu-8019.40.29~26/RELEASE_ARM64_T8101
The slack_bolt version
slack-bolt==1.11.0
slack-sdk==3.13.0
Python runtime version
Python 3.8.8
OS info
ProductName:	macOS
ProductVersion:	12.0
BuildVersion:	21A5506j
Darwin Kernel Version 21.1.0: Thu Aug 19 02:54:44 PDT 2021; root:xnu-8019.40.29~26/RELEASE_ARM64_T8101
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., setup.py))

Begin with the starter project for bolt-python in socket mode
Enabling socket mode on the app
Add functionality for FaaS (or at least, mock it) following the documentation
Execute command /start-process sampletext

Expected result:
For the functions respond_to_slack_within_3_seconds and run_long_process to be called same with the body parameter for both calls.
Actual result:
The run_long_process body is empty ({}), and the respond_to_slack_within_3_seconds body is populated. This is evident as when I log the body on first execution of each call to both functions, the following is the output of the application (sensitive information redacted).
⚡ Bolt app is running!
{'token': '***REDACTED***', 'team_id': '***REDACTED***', 'team_domain': '***REDACTED***', 'channel_id': '***REDACTED***', 'channel_name': '***REDACTED***', 'user_id': '***REDACTED***', 'user_name': '***REDACTED***', 'command': '/start-process', 'text': 'test', 'api_app_id': '***REDACTED***', 'is_enterprise_install': '***REDACTED***', 'response_url': ***REDACTED***', 'trigger_id': '***REDACTED***'}
{}
Failed to run an internal function ('text')

I do receive an Accepted response from respond_to_slack_within_3_seconds as it completes successfully, but I do not receive any messages from the run_long_process call as it fails to complete due to the body being empty.
For futher information, the respond parameter in run_long_process is assigned. For example, I removed the {body['text']} interpolation and it worked, sending the message Completed! (task: ) (task empty as I removed the replacement).
When in HTTP mode, it works fine (when changing the SocketModeHandler(app, ...).start() to app.start(.....))
app.py to reproduce
import os
import time

from slack_bolt import App

from slack_bolt.adapter.socket_mode import SocketModeHandler

app = App(token=os.environ.get("SLACK_BOT_TOKEN"), process_before_response=True)

def respond_to_slack_within_3_seconds(body, ack):
    text = body.get("text")
    if text is None or len(text) == 0:
        ack(":x: Usage: /start-process (description here)")
    else:
        ack(f"Accepted! (task: {body['text']})")

def run_long_process(respond, body):
    time.sleep(5)  # longer than 3 seconds
    respond(f"Completed! (task: {body['text']})")

app.command("/start-process")(
    ack=respond_to_slack_within_3_seconds,  # responsible for calling `ack()`
    lazy=[run_long_process]  # unable to call `ack()` / can have multiple functions
)

if __name__ == "__main__":
    SocketModeHandler(app, os.environ["SLACK_APP_TOKEN"]).start()

Update
After some investigation, I have been able to determine the root cause of this.
The culprit of this is how we create request objects when in socket mode see slack_bolt/request/request.py:50. Currently, if the body is created as a dict instance, then we set the body to empty because we are unable to guarantee that order of the body will be perserved if we were to convert it to a str. As of Python 3.6+, dicts are ordered by insertion order. For Python versions below 3.6, maybe there should be a warning logged that there is missing support for that version. For Python 3.6 and above, we can use json.dumps as it will preserve order, and convert it to a string which will resolve the above described bug.

Hi @JordanGibson, thanks for taking the time to report this issue!
I've checked this in detail and figured out the issue is a regression bug caused by https://github.com/slackapi/bolt-python/pull/546 since v1.11.0 (the latest version). I will come up with a pull request to fix this and will release a patch version shortly.


💭 Figuring out dimensions in CodeScanner

Question
I am using the latest version of RN, expo and visions. But I am running into an issue trying to detect a barcode in a specific area of the screen.
My phones resolution: 926 x 428
Frame resolution: 1920 x 1080
My first thought was to simply take the ratio of the window and frame width and height, but it is not lining up 1:1 for what I am trying to do. Here is a sample of code: (please don't judge, just debugging a ton, lol)
const onCodeScanned = useCallback(async (codes: Code[], frame: CodeScannerFrame) => {
    // We should only have one QR code. If we have any value
    // other than one, exit out of this function.
    if (codes.length !== 1) {
        return;
    }
    // Setting the frame values depending how the framework
    // is rendering orientation. This should be able to
    // calculate it either way.
    const frameLongSide = Math.max(frame.width, frame.height);
    const frameShortSide = Math.min(frame.width, frame.height);

    // Grabbing the min and max values for the x and y
    // coordinates for the code corner values.
    const xValues = codes[0].corners?.map(p => p.x) || [];
    const yValues = codes[0].corners?.map(p => p.y) || [];
    const minX = Math.min(...xValues);
    const maxX = Math.max(...xValues);
    const minY = Math.min(...yValues);
    const maxY = Math.max(...yValues);

    // Setting the base window height and width values.
    const windowHeight = win.height;
    const windowWidth = win.width;

    // Setting the height and width ratios. Since we know the
    // app has to be in portrait mode, we know which values
    // to divide to get to the ratios.
    const heightRatio = windowHeight / frameLongSide;
    const widthRatio = windowWidth / frameShortSide;

    const scanAreaDifference = win.width * 0.1;
    const scanAreaXMin = windowWidth - (offsetWidth + scanAreaWidth);
    const scanAreaXMax = scanAreaXMin + scanAreaDifference;
    const scanAreaYMin = (offsetHeight + scanAreaHeight) - scanAreaDifference;
    const scanAreaYMax = (offsetHeight + scanAreaHeight);

    const calculatedXMin = (minY * widthRatio);
    const calculatedXMax = (maxY * widthRatio);
    const calculatedYMin = (minX * heightRatio);
    const calculatedYMax = (maxX * heightRatio);

    console.log(isCapturing);
    if (calculatedXMin > scanAreaXMin &&
        calculatedXMax < scanAreaXMax &&
        calculatedYMin > scanAreaYMin &&
        calculatedYMax < scanAreaYMax &&
        !isCapturing) {
        console.log('WE HAVE LIFT OFF!');

        setIsCapturing(true);
        setIsPhotoActive(true);
        console.log(isPhotoActive);
        // await takePhoto();
    }

    console.log(Dimensions.get('window').width, Dimensions.get('window').height);
    console.log('codes', JSON.stringify(codes));
    console.log('frame', JSON.stringify(frame));
    console.log(minX, maxX, minY, maxY);
    console.log('Scan Area Difference:', scanAreaDifference);
    console.log('Ratios:', heightRatio, widthRatio);
    console.log('Calculated X Min:', calculatedXMin);
    console.log('Calculated X Max:', calculatedXMax);
    console.log('Calculated Y Min:', calculatedYMin);
    console.log('Calculated Y Max:', calculatedYMax);
    console.log('Scan Area X Min:', scanAreaXMin);
    console.log('Scan Area X Max:', scanAreaXMax);
    console.log('Scan Area Y Min:', scanAreaYMin);
    console.log('Scan Area Y Max:', scanAreaYMax);
}, [
    offsetWidth,
    offsetHeight,
    scanAreaWidth,
    scanAreaHeight
]);

And here is the output in the console log:
LOG  428 926
LOG  codes [{"type":"qr","frame":{"x":1350.5323791503906,"height":75.73731601238251,"width":75.75244903564453,"y":199.54500496387482},"corners":[{"x":1351.094835691224,"y":275.2823113601515},{"x":1426.2848074981866,"y":273.77842710326416},{"x":1424.5970270713685,"y":199.5450096337763},{"x":1350.532352809027,"y":201.02617018822104}],"value":"239551 1"}]
LOG  frame {"width":1920,"height":1080}
LOG  1350.532352809027 1426.2848074981866<PHONE_NUMBER>337763<PHONE_NUMBER>601515
LOG  Scan Area Difference: 42.800000000000004
LOG  Ratios: 0.4822916666666667 0.3962962962962963
LOG  Calculated X Min: 79.07894826227431
LOG  Calculated X Max:<PHONE_NUMBER>2791189
LOG  Calculated Y Min:<PHONE_NUMBER>235204
LOG  Calculated Y Max:<PHONE_NUMBER>496463
LOG  Scan Area X Min: 30.33335304260254
LOG  Scan Area X Max: 73.13335304260255
LOG  Scan Area Y Min:<PHONE_NUMBER>294922
LOG  Scan Area Y Max:<PHONE_NUMBER>294922
The "calculated" values are from the barcode frame, and I just can not get them to line up with the scan area from one of the view elements. I feel like this is something simple that I am just missing, but can't seem to figure it out. Any help would be greatly appreciated. Thanks.
What I tried
No response
VisionCamera Version
3.8.2
Additional information

[X] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

Wow this looks complicated lol - hm are you sure the Code object doesn't have anything related in there?

I am facing the same difficulty; I want to draw the location of the QR Code on the screen as it appears, but there is this discrepancy with the size data of the frame and the screen.
Here is an example of Code:
{"corners": [{"x": 467, "y": 314}, {"x": 751, "y": 311}, {"x": 749, "y": 609}, {"x": 458, "y": 601}], "frame": {"height": 298, "width": 293, "x": 458, "y": 311}, "type": "qr", "value": "some_url"}

Here is my screen settings mobile Android:
width: 360
height: 740
scale: 3
fontScale: 1

I've already tried scaling division, attempted to come up with anything to make the Code data resemble the values of the device. However, without success. I have the same difficulty in IOS.
I can even draw the rectangle on the screen using scaling to try to match the frame dimensions with the screen dimensions. However, the rectangle always ends up out of position.

Did you take the sensor's natural orientation into account? device.sensorOrientation
Again, Orientation isn't implemented yet as it is tracked here: https://github.com/mrousavy/react-native-vision-camera/issues/1891
Once that is implemented, everything that should be in portrait will be in portrait and there's helpers to convert coordinates.

Ah, I apologize... I understood a bit better how it works and saw that it is something complex to resolve. I will try to implement this QR Code detection using the frameProcessor.

I also encountered this puzzling problem. I found that the data given by Codescanner throughout the afternoon and one night was very different from the thinking of conventional people. In the data given by CodeScanner, x is the distance from the top of the scanning box, and y is the distance from the right side of the scanning box
This design is very puzzling. In the thinking of a general front -end programmer, X should be a distance from the left, and Y should be the distance from the top
Similarly, I found that the length and width in the Result obtained by Oncodescanner seemed to be inconsistent with the length and width of the front -end programmer. When the style is long, the left and right are long, and the upper and lower are wide, which seems to cause misunderstandings
I hope to present this in the documentation
I used the code below, it works well
                <View className={"w-full h-full absolute left-0 top-0"}>
                    {toFocusingCodeScannerResult?.codes.map((code, index) => {
                        if (code.frame === undefined) return <></>
                        return <Text key={"scanner-focus-no" + index} style={{
                            left: `${100 - (code.frame.y + code.frame.width) / toFocusingCodeScannerResult?.frame.height * 100}%`,
                            top: `${(code.frame.x + code.frame.height / 2) / toFocusingCodeScannerResult?.frame.width * 100}%`,
                        }} className={"text-green-600 relative"}>[[+]]</Text>;
                    })}
                </View>

https://github.com/mrousavy/react-native-vision-camera/assets/110959752/1826d7ce-9076-432f-8353-5e89c0d9b1f8
@rveltonCL @brunoobatista Try this method? It works well

@brunoobatista I have a patch file for sensor orientation in CodeScannerPipeline for Android. If you are still interested I can post it here later today. Apart from that issue its really straightforward with the current API how to solve the scaling. I have a working example with an RN Skia view on top of the camera.

Nice work @RongDuJiKsp 👍

freecompress-Screenrecording_20240204_122414.mp4
@rveltonCL @brunoobatista Try this method? It works well

I'll need to digest your explanation; it left me a bit confused, haha. But I'll try to apply your advice to my situation and see how it goes. Thanks for your attention.

@brunoobatista I have a patch file for sensor orientation in CodeScannerPipeline for Android. If you are still interested I can post it here later today. Apart from that issue its really straightforward with the current API how to solve the scaling. I have a working example with an RN Skia view on top of the camera.

I would like to see your example, it would be of great help to me.

@brunoobatista Here is my patch file:
react-native-vision-camera+3.8.2.patch

@brunoobatista Also here is my complete component code:
import React, {
    forwardRef,
    useCallback,
    useEffect,
    useImperativeHandle,
    useMemo,
    useRef,
    useState,
} from 'react';
import {StyleSheet, Text, View} from 'react-native';
import {
    Camera,
    Code,
    CodeScannerFrame,
    useCameraDevice,
    useCodeScanner,
} from 'react-native-vision-camera';
import {useSharedValue, useWorklet, Worklets} from 'react-native-worklets-core';
import {
    createPicture,
    PaintStyle,
    Skia,
    SkiaPictureView,
    SkiaView,
    TileMode,
} from '@shopify/react-native-skia';

import {useAppStyles, useSkiaPaint} from '../utils/Hooks';

export type CodeChecker = (code: string) => boolean;

export function useCodeChecker(cb: CodeChecker, deps: React.DependencyList) {
    return useCallback(cb, [cb, ...deps]);
}

export type CodeProcessor = (code: string) => void;

export function useCodeProcessor(cb: CodeProcessor, deps: React.DependencyList) {
    return useCallback(cb, [cb, ...deps]);
}

export interface ScannedCode extends Code {
    success?: boolean;
    [key: string]: any;
}

export interface ScannerCameraProps {
    codeChecker?: CodeChecker;
    codeProcessor?: CodeProcessor;
    children?: React.ReactNode;
}

export interface ScannerCamera {
    stop(): void;
    resume(): void;
}

const cyan = Skia.Color(0xff00ffff);
const red = Skia.Color(0xffff0000);
const green = Skia.Color(0xff00ff00);

export const ScannerCamera = forwardRef<ScannerCamera, ScannerCameraProps>((props, ref) => {
    const camera = useRef<Camera>(null);
    const device = useCameraDevice('back');
    const styles = useAppStyles();

    const paint = useSkiaPaint();

    const [isActive, setActive] = useState(false);
    const [codes, setCodes] = useState<ScannedCode[]>([]);
    const scannerFrame = useSharedValue<CodeScannerFrame>(null);
    const successCode = useSharedValue<Code>(null);
    const setCodesJs = Worklets.createRunInJsFn(setCodes);

    const codeScanner = useCodeScanner({
        codeTypes: ['qr'],
        onCodeScanned: (scanned, frame) => {
            if (!isActive) {
                return;
            }
            setCodesJs(
                scanned.map(code => {
                    const success = props.codeChecker ? props.codeChecker(code.value) : null;
                    if (!successCode.value && success) {
                        successCode.value = code;
                    }
                    return {
                        success,
                        ...code,
                    };
                }),
            );
            scannerFrame.value = frame;
        },
    });
    const [rect, setRect] = useState(Skia.XYWHRect(0, 0, 100, 100));

    const picture = useMemo(() => {
        return createPicture(rect, canvas => {
            if (successCode.value) {
                const value = successCode.value.value;
                // Immediately stop the camera if we have a success code
                setActive(false);
                successCode.value = null;
                if (props.codeProcessor) {
                    // Call codeProcessor after a little timeout
                    setTimeout(() => {
                        props.codeProcessor(value);
                    }, 500);
                }
                return;
            }

            const frame = scannerFrame.value;

            if (!frame) {
                return;
            }

            const crx = rect.width / frame.width;
            const cry = rect.height / frame.height;
            const scale = Math.max(crx, cry);
            const tx = (rect.width - frame.width * scale) / 2;
            const ty = (rect.height - frame.height * scale) / 2;

            paint.setStyle(PaintStyle.Stroke);
            codes.map(code => {
                let color = cyan;

                if (typeof code.success === 'boolean') {
                    if (code.success) {
                        color = green;
                    } else {
                        color = red;
                    }
                }

                const corners = Object.values(code.corners);

                corners.forEach((corner: any, ix: any) => {
                    // Calculate the points of the line
                    const next = corners[(ix + 1) % 4];
                    const cx = corner.x * scale + tx;
                    const cy = corner.y * scale + ty;
                    const nx = next.x * scale + tx;
                    const ny = next.y * scale + ty;

                    paint.setColor(color);
                    paint.setStrokeWidth(2);
                    canvas.drawLine(cx, cy, nx, ny, paint);
                });
            });
        });
    }, [codes, paint, props, rect, scannerFrame.value, successCode]);

    useEffect(() => {
        Camera.requestCameraPermission().then(permission => {
            const res = permission as string;
            setActive(res === 'granted' || res === 'authorized');
        });
        return () => {
            setActive(false);
        };
    }, []);

    useImperativeHandle(ref, () => ({
        resume: () => {
            setActive(true);
        },
        stop: () => {
            setActive(false);
        },
    }));

    if (device == null) {
        return (
            <View style={styles.roundContainer}>
                <Text style={styles.screenTitle}>No camera available</Text>
            </View>
        );
    }

    return (
        <View style={styles.roundContainer}>
            <Camera
                ref={camera}
                style={StyleSheet.absoluteFill}
                device={device}
                isActive={isActive}
                enableZoomGesture={true}
                photo={true}
                codeScanner={codeScanner}
            />
            <SkiaPictureView
                onLayout={ev => {
                    const layout = ev.nativeEvent.layout;
                    setRect(Skia.XYWHRect(0, 0, layout.width, layout.height));
                }}
                style={StyleSheet.absoluteFill}
                pointerEvents='none'
                mode='continuous'
                picture={picture}
            />
            {props.children}
        </View>
    );
});

Is this really needed/expected? I thought the onCodeScanned callback was already in JS land?
const setCodesJs = Worklets.createRunInJsFn(setCodes);

Yes, @oscar-b you are right - CodeScanner is already in JS, there are no Worklets involved in the built-in CodeScanner.

@oscar-b Nice catch, I will improve that too.

Nice work @RongDuJiKsp 👍

shouldn't the lib provide this normalised already for the user?
The RN coordinate system is x,y being top/left and the Android Frame coordinates should match this and not put the burden on every single API user to convert the values (no docs provided!)

shouldn't the lib provide this normalised already for the user?

Yea agreed, I guess it should. If anyone wants to contribute and send a PR, I'd appreciate it. Otherwise I will add this when I have some free time (never)

Otherwise I will add this when I have some free time (never)

(just kidding, but it will take maybe in a month or so because of V4 and the 3D library rn)

Wanted to report the values for iOS are also off. The frame coordinates can not be used in the RN world to place content on the screen with absolute coordinates.

freecompress-Screenrecording_20240204_122414.mp4
@rveltonCL @brunoobatista Try this method? It works well

can you share the code of the scanning ?

@brunoobatista Here is my patch file: react-native-vision-camera+3.8.2.patch

can you share the ../utils/Hooks please?

@shacharcohen1997 Here is how the relevant hooks looks like:
export function useAppStyles(): AppStyles {
    return useAppThemeProp(theme => theme.styles);
}
export function useSkiaPaint(blendMode: BlendMode = BlendMode.SrcOver): SkPaint {
    return useMemo(() => {
        const paint = Skia.Paint();
        paint.setBlendMode(blendMode);
        return paint;
    }, [blendMode]);
}

The first one just returns a simple styles object is not rocket science. I wont share more. The second uses imports from "@shopify/react-native-skia"

I am trying to restrict scanning of QR codes to within a box I have placed on the screen, I have the x and y positions of the box along with the width and the height. I cannot make sense of the corners given by the code, the docs are most unhelpful here.
Am I correct in thinking that the corners are not the actual corners and are the distance from the left and right, almost like the middle of each? What order are the corners?
I simply want to write some code which says is the QR code within this box, if yes, scan it... Would anyone be able to guide me in a direction to look at? I have opened a thread on Discord support here (the discord for this package) and have had zero feedback or input. I believe @metrix-hu has this sussed out and perhaps a couple of others however nobody else has been as open with their solution.

I had this working a few months ago, but it stopped working in a release since then (center box shrunk & moved for some phones), so I've had it disabled. Not sure there is a solution that works on all phones right now.

I actually only need it to work on one specific device model, I will take a look at your code to see how you are achieving it, my issue is some of the corners have a negative position which given they are relative to the camera preview.... I am confused about. It would be really good to understand more about these corners in the docs and why they may be negative values.
Thx for the link 👍

VisionCamera exposes device.sensorOrientation, maybe you need to rotate by that.
Either way, I don't have the free time to fix this right now, maybe I'll look into this in the future, we'll see.

I actually realised this was fixed in a PR you merged which better tracked the location of the QR code, from this I was able to correctly track the QR code and its bounds on the screen. So I have been able to do what I needed to now after that update :).
Thank you.

Awesome! 👍


NeMo Curator ReadMe Updates

Looks good to me @jgerh, thanks for addressing all the comments.
@ayushdg Could you please review/approve? It seems I cannot resolve conversations.

Thanks for the ping. @jgerh Looks like the commits for the PR were not signed and signed off using the git commit -sS flags which is a requirement for curator. More info on signing commits.
Additionally the style check failures can be fixed with by running pre-commit locally.
pip install pre-commit && pre-commit install && pre-commit run --all

Closing in favor of #93


macos bug with the.ogg file

Error: scrcpy: SHA256 mismatch
Expected: 379071af4fa77bc7dacf892ad81d3f92040a628367d34a451a2cdcc997ef27b0
Actual: f57b56d8aae4c847cf01224fb45293610d801cfdac43d932b5eeab1cd318182a
File: /Users/bilalelhssaini/Library/Caches/Homebrew/downloads/e163886f3d57674f022eb584f07ef6d71dbbf58fb39c481a2c516ce6bfd4af18--Example.ogg

This is a homebrew error. This has nothing to do with scrcpy. Please report to them.


Data types change when using blaze.into()

I used blaze.into() to turn a blaze object into a pandas object [1] and the data types of some columns changes.
In [16]: recentUser.dshape
Out[16]: dshape("var * {_id: string, dateAdded: datetime, appID: string}")

In [17]: recentUserDF = bz.into(bz.DataFrame,recentUser)

In [18]: recentUserDF.dtypes
Out[18]:
_id                  object
dateAdded    datetime64[ns]
appID                object
dtype: object

I was expecting that the default behavior would be that _id and appID would be strings.
[1] this might be a dumb thing that no one should ever want to do. I needed to turn the blaze object into an iterable object such as a list, tuple or set so that I could use it as part of a subsequent .isin() query and this was the first thing that came to mind.

They are strings, it's just that pandas stores strings as numpy object arrays.

Well, no problem then.


Start process when the radar is not running. process exit directly

the process startup when the radar is not running, it will exit directly。
[sick_safetyscanners2_node-1] terminate called after throwing an instance of 'sick::runtime_error'
[sick_safetyscanners2_node-1]   what():  No route to host

Hi @puck-fzi
is there any experience of this situation we met?
thank you very much!

Dear all,
since your radar is not running, yes the driver will exit with the experienced error. This driver needs a running instance of the sensor to communicate to.
Currently there is no reconnect or multiple connecting tries implemented in the driver. Therefore, if no connection to the hardware is found the driver will exit.


ci-trigger: Launch virtual tests if PR author is authorized

If a pull request was created by an authorized user, launch tests for all virtual device types instead of waiting for the user to post /fptest virtual in a comment.  This mimics the previous Cloud Build native behavior where tests would automatically run when the PR was submitted by a contributor.

Pull Request Functional Test Report for #1818 / e3a09806e1a2af0f41726ffc6975adb7cc2c1945
No tests identified for validation.
Help