Add engagement guide and update roles pages

Description
This PR adds a new page describing our engagement channels and updates the content of both the Project Roles and Community Building Roles to point to the new content. This content supersedes parts of both reward and responsibility sections and some repetitive/redundant content will be deleted in the process.
Technical details
This is no longer a Google Docs file because a web of hyperlinks is super-important when building related content across pages. While Markdown is considerable harder to write, the resulting content is easier to understand.
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Requested a WIP review from @kgodey for validating the approach, the content is yet far from finalised.

@kgodey I addressed all your comments, please review.


Large loss of speed with sequential plotting

Speed issue when creating more than one plot at a time.
The first plot is created in about 30 minutes, subsequent plots are created much slower than the previous ones.
After a couple of hours, the plotter starts creating a plot for 4-5 hours.
But, if I indicate in the plotter the creation of only one plot and manually run them sequentially one after another, then everything is fine with speed.
PS,
When starting the program in a while, the plotter does not behave stably (bitfield error)
An example of creating two plots in sequence:
Multi-threaded pipelined Chia k32 plotter - [hide]
Final Directory: /HDD105/
Number of Plots: 20
Crafting plot 1 out of 20
Process ID: 3876
Number of Threads: 24
Number of Buckets P1:    2^8 (256)
Number of Buckets P3+P4: 2^8 (256)
Pool Public Key:   [PRIVATE]
Farmer Public Key: [PRIVATE]
Working Directory:   /NVME980PRO/
Working Directory 2: /NVME980PRO/
Plot Name: [PLOT]
[P1] Table 1 took 11.3781 sec
[P1] Table 2 took 87.5156 sec, found<PHONE_NUMBER> matches
[P1] Table 3 took 172.109 sec, found<PHONE_NUMBER> matches
[P1] Table 4 took 173.581 sec, found<PHONE_NUMBER> matches
[P1] Table 5 took 161.693 sec, found<PHONE_NUMBER> matches
[P1] Table 6 took 136.698 sec, found<PHONE_NUMBER> matches
[P1] Table 7 took 97.9706 sec, found<PHONE_NUMBER> matches
Phase 1 took 841.254 sec
[P2] max_table_size =<PHONE_NUMBER>
[P2] Table 7 scan took 8.25096 sec
[P2] Table 7 rewrite took 45.6669 sec, dropped 0 entries (0 %)
[P2] Table 6 scan took 29.0268 sec
[P2] Table 6 rewrite took 43.7142 sec, dropped 581391798 entries (13.5362 %)
[P2] Table 5 scan took 26.0034 sec
[P2] Table 5 rewrite took 42.0878 sec, dropped 761983876 entries (17.7411 %)
[P2] Table 4 scan took 25.4672 sec
[P2] Table 4 rewrite took 41.3989 sec, dropped 828836490 entries (19.2977 %)
[P2] Table 3 scan took 26.3934 sec
[P2] Table 3 rewrite took 41.0317 sec, dropped 855015925 entries (19.9074 %)
[P2] Table 2 scan took 27.4807 sec
[P2] Table 2 rewrite took 40.9675 sec, dropped 865561769 entries (20.1528 %)
Phase 2 took 405.389 sec
Wrote plot header with 268 bytes
[P3-1] Table 2 took 47.1309 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 2 took 30.8602 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 3 took 53.6269 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 3 took 32.5438 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 4 took 55.1271 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 4 took 34.7845 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 5 took 57.5313 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 5 took 38.269 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 6 took 62.5313 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 6 took 41.1008 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 7 took 86.6597 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 7 took 55.5494 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
Phase 3 took 598.012 sec, wrote<PHONE_NUMBER>8 entries to final plot
[P4] Starting to write C1 and C3 tables
[P4] Finished writing C1 and C3 tables
[P4] Writing C2 table
[P4] Finished writing C2 table
Phase 4 took 33.4826 sec, final plot size is<PHONE_NUMBER>58 bytes
Total plot creation time was 1878.18 sec (31.3031 min)
Started copy to /HDD105/[PLOT]
Crafting plot 2 out of 20
Process ID: 3876
Number of Threads: 24
Number of Buckets P1:    2^8 (256)
Number of Buckets P3+P4: 2^8 (256)
Pool Public Key:   [PRIVATE]
Farmer Public Key: [PRIVATE]
Working Directory:   /NVME980PRO/
Working Directory 2: /NVME980PRO/
Plot Name: [PLOT]
[P1] Table 1 took 31.1952 sec
[P1] Table 2 took 124.547 sec, found<PHONE_NUMBER> matches
[P1] Table 3 took 201.812 sec, found<PHONE_NUMBER> matches
[P1] Table 4 took 193.163 sec, found<PHONE_NUMBER> matches
[P1] Table 5 took 191.393 sec, found<PHONE_NUMBER> matches
[P1] Table 6 took 177.952 sec, found<PHONE_NUMBER> matches
[P1] Table 7 took 146.318 sec, found<PHONE_NUMBER> matches
Phase 1 took 1066.63 sec
[P2] max_table_size =<PHONE_NUMBER>
[P2] Table 7 scan took 33.0268 sec
[P2] Table 7 rewrite took 89.4004 sec, dropped 0 entries (0 %)
[P2] Table 6 scan took 34.304 sec
[P2] Table 6 rewrite took 81.0639 sec, dropped 581486169 entries (13.5441 %)
[P2] Table 5 scan took 33.398 sec
[P2] Table 5 rewrite took 75.7063 sec, dropped 762221169 entries (17.7505 %)
[P2] Table 4 scan took 34.1174 sec
[P2] Table 4 rewrite took 74.7649 sec, dropped 829020100 entries (19.3041 %)
[P2] Table 3 scan took 34.3403 sec
[P2] Table 3 rewrite took 71.1653 sec, dropped 855135850 entries (19.9114 %)
[P2] Table 2 scan took 34.1309 sec
[P2] Table 2 rewrite took 65.1987 sec, dropped 865636413 entries (20.1553 %)
Phase 2 took 668.726 sec
Wrote plot header with 268 bytes
[P3-1] Table 2 took 94.9269 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 2 took 95.735 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 3 took 123.91 sec, wrote<PHONE_NUMBER> right entries
Copy to /HDD105/[PLOT] finished, took 2112.06 >
[P3-2] Table 3 took 104.703 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 4 took 128.098 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 4 took 123.159 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 5 took 146.84 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 5 took 127.468 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 6 took 177.877 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 6 took 159.02 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
[P3-1] Table 7 took 220.342 sec, wrote<PHONE_NUMBER> right entries
[P3-2] Table 7 took 165.567 sec, wrote<PHONE_NUMBER> left entries,<PHONE_NUMBER> final
Phase 3 took 1670.64 sec, wrote<PHONE_NUMBER>7 entries to final plot
[P4] Starting to write C1 and C3 tables
[P4] Finished writing C1 and C3 tables
[P4] Writing C2 table
[P4] Finished writing C2 table
Phase 4 took 40.2463 sec, final plot size is<PHONE_NUMBER>00 bytes
Total plot creation time was 3446.28 sec (57.438 min)
TRIM every 10 minutes.
Hardware:
CPU: r9 5900x
RAM: 64gb 3200 G.Skill (CL18, overclock)
TMP dir: Samsung 980 pro (In PCI v3 mode)
Destination folder: simple hdd(~180-200mb/s)

Happened to me too... :(

The same here.

Wondering if this isn't the cause:
"Copy to /HDD105/[PLOT] finished, took 2112.06"
First plot, there's no copy from your NVME to your hard drive to slow things down.  Second and subsequent plots, your NVME is being frequently interrupted with the copy to your HD.  Consider having a stage folder on your NVME (or just don't specify a -d final directory and let the final destination be tmpdir), and see if a cron job handling the copy from your NVME to your HDD contends with the plotting less.
Trim every 10 minutes seems way too frequent IMO btw.  On my NVME's I notice no significant performance degration without TRIM for a good 6 hours at least.  And I only TRIM via fstrim in the cron, no discard mount option being used.

 Is it Network/external drive?
What is your Plotter version?

 Is it Network/external drive?
What is your Plotter version?

Version last. 50MB/s just with plotter. avg 180-200mb/s without plotter.

Me, I'm not staging plots within the plotter, I use the cron to move (confirm available drive space && rename .plot to .qwinn && move to HDD && rename back to .plot) them directly from the NVME plotting directories to internal HDDs on Ubuntu 20.04.  I do farm the plots with a Windows 10 GUI 1.0Ghz over an otherwise 2.5Ghz network running on all Cat8 cable.  64GB memory on all 3 plotting machines, no ramdisk use.  Getting ~31 minute plots with Madmax on all 3 machines with no real performance difference between 1 4TB enterprise insane TBW NVME vs 2 machines using two 2 TB consumer meh TBW NVMEs, so producing around 132 plots per day.  My prior best effort on other plotters was around 96 per day with ~10 plots in parallel using plotman and pechy's latest optimized chiapos.
Installed madmax plotter yesterday.

Just wondering if it is the  SSD having to recycle the used blocks...
When you first enter the plotter, the SSD has done most of the related housekeeping to cleaning blocks in the device
tidying/ compressing. etc
as you plot , the SSD MUST move shit about to free up blocks so they can be erased.

Then with MLC's there is a "cool down time", if you try to write to an MLC chip right after erase, it can shorten the life and don't even get started about writing pages next to each other on the chip.....
, so the flash controllers have all sorts of "special" tricks...
They may have what appears to be stellar transfer rates.. but if you catch the controller correctly you can bury those figures...

In my view, this has less to do with the plotter itself or an SSD and more with the file system.
I am having the same issue and I do not plot on an SSD but on an 8 disk raid0 ( initially a throughput of 600MB / sec ),
On the second plot it is getting slower and for third the speeds become abysmal.
My current solution is a rather kludgy one:
I have a script that loops for n interations and does the following:

mkfs.ext4 the raid 0
create exactly one plot
repeat
Now, while this is getting the job done, I would really like to know where the ext4 performance degredation is coming from ...

I am plotting to RAMDrive and alternating between 2 NVME, and using a script to copy the completed plots to HDD, after which, the drive is trimmed. Able to avoid the loss of speed with sequential plotting as encountered with sequential plotting on the same drive. Windows BTW.

In my view, this has less to do with the plotter itself or an SSD and more with the file system.
I am having the same issue and I do not plot on an SSD but on an 8 disk raid0 ( initially a throughput of 600MB / sec ),
On the second plot it is getting slower and for third the speeds become abysmal.
My current solution is a rather kludgy one:
I have a script that loops for n interations and does the following:

mkfs.ext4 the raid 0
create exactly one plot
repeat
Now, while this is getting the job done, I would really like to know where the ext4 performance degredation is coming from ...

When i use Madmax plotter in while(php/bash), i get error about bitfield. But my RAM work without error(Many hours of testing after overclocking).

Needs a staggered start option to mitigate this without having to code your own script.

I just checked the logs on my plotters and the speed loss due to transfer was really low (5 to 15 seconds). not sure if the loss of speed reported above is related to source/destination file system type or something else. These plotters have 16GB ram, 1TB Samsung consumer nvme for both temps, filesystem on nvme and hdds are XFS with CRC off and I don't use the discard option. OS is optimized Ubuntu server 21.04 minimal. I ran the plotter with "nice -10". Plot transfer is done by MadMax  to WD Gold 10TB HDD and the transfer speed reported by MadMax is ~225MB/s.


Merged #73

Originally posted by @bmoffatt in https://github.com/aws/aws-lambda-go/issues/44#issuecomment-388645457

Thanks a lot for your merge!
However, shouldn't the CognitoEventUserPoolsPostConfirmationResponse contain an empty interface, so that it's possible to add fields to the struct?


Suggest DeriveAnyClass

We can write
data Foo = { x, y, z :: T }

instance C1 Foo

instance C2 Foo

as just
data Foo = { x, y, z :: T } deriving (C1, C2)

Could HLint suggest this?

I'm wary about doing so because the rules around DeriveAnyClass vs GeneralizedNewtypeDeriving have changed in recent history and the difference between instance C1 Foo and instance C1 Foo where is super subtle. The GHC semantics here are way too much like "implicit magic that can easily bite you in the ass", and when you take that and suggest transformations, I'm really worried about screwing up the code in subtle ways.

Is it more subtle than always suggesting deriving anytype rather than just deriving?

Suggesting deriving anytype would be a lot more obvious. But anytype is quite new, so not available as far back as the versions HLint would like to suggest valid Haskell for. I think adding DeriveAnyClass without making it require an explicit anytype was a bad idea, and using a derive any class without it scares me, but it will be a while before the old versions have gone and deriving strategies is universally adopted.

This is reasonable caution! But HLint can have stuff off by default, right - and people could opt in to this if they wanted? Suggesting deriving anytype would avoid introducing any broken code, providing that the code originally already used deriving strategies (which you could reach by enabling the 8.10 warning to warn on un-annotated deriving strategies).

Another option I'd be happy with is to only suggest this for types that can be found to be data, not newtype, which I think is much less risky. But maybe less tractable for HLint.

Sorry for derailing slightly but could I ask what the aforementioned difference is (no where vs having where)? I couldn't find it documented in ghc or by testing my first guess manually ;/
FWIW I agree with "anytype derivations should always have an explicit strategy"

@googleson78 I'm not sure. I think one is equivalent to not implementing any methods, and one to using generic instances? Maybe there isn't a difference anymore? It's certainly bit me in the past.
@ocharles figuring out data/newtype is easy in this instance - it had better be in the same module, and you'd better be able to find the definition, otherwise you can't make the suggestion. Usually it's hard for HLint, but this case is different. Suggesting it but off by default is fine - patch welcome - but those changes tend not to have much impact outside specific code bases.

Argh, I just realised it's even more complicated than just using derive anytype. That needs -XDeriveAnyType enabled, but that then overrides GND for any other newtype instance declarations. I'm not coming round to agreeing that maybe it's best we shelve this (close the issue). I'm unlikely to have the time to get into this as it's much harder than I thought (despite you clearly telling me!)

@ndmitchell
For aesons ToJSON, they seem to be the same:
Example
blademaster :: ~ » cat aeson.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}

import Data.Aeson
import GHC.Generics (Generic)

data Foo0 =
  Foo0
    { bar0 :: Int
    }
  deriving stock Generic

instance ToJSON Foo0

data Foo1 =
  Foo1
    { bar1 :: Int
    }
  deriving stock Generic

instance ToJSON Foo1 where

data Foo2 =
  Foo2
    { bar2 :: Int
    }
  deriving stock Generic
  deriving anyclass ToJSON
blademaster :: ~ » ghci aeson.hs
GHCi, version 8.6.5: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/googleson78/.ghci
[1 of 1] Compiling Main             ( aeson.hs, interpreted )
Ok, one module loaded.
> toJSON $ Foo0 42
Object (fromList [("bar0",Number 42.0)])
> toJSON $ Foo1 42
Object (fromList [("bar1",Number 42.0)])
> toJSON $ Foo2 42
Object (fromList [("bar2",Number 42.0)])

But I definitely agree that all the rules surrounding which deriving clause to use and such are too finicky to be left without an explicit strategy

You need to use newtype to witness the difference. anyclass ToJSON for newtype Foo2 will be different from newtype ToJSON Foo2.

I only wanted to show the difference (or lack thereof?) between instance X and instance X where. I shouldn't have included the derived version I guess.

I have no idea what the difference is, all I know is something hurt me in the past, and I think it was missing a where, but the details are hazy and the scars from instance declarations are real.


Switch should_sign to an output and add signing data

This serves multiple purpose. Using output instead of environment allows using the data in subsequence jobs as well as steps making it more flexible. The PR also gets the data necessary for signing from the builds.json so the file isn't needed in subsequent jobs.

Depends on https://github.com/docker-library/meta-scripts/pull/76

@tianon this is ready to go

Is there a way to add more to this so that it is all the workflow logic changes (jobs, steps, outputs, artifacts?, etc) but still without the signing changes? Right now, this PR feels like a producer without a consumer or an unused function; it removes the necessary permission while adding variables and an output that aren't used. (one output is used as it replaces a previous env var). And I'd rather that we keep a complete workflow where all things are used.
So, I think this PR should also have the Sign steps in their own job (one job with multiple steps or multiple jobs 🤷) so that we can have a complete change that exercises the GITHUB_ENV as well as the new GITHUB_OUTPUT. And, I guess, the changes to have the Sign and Push jobs consume the image as an artifact.  Maybe that's somewhere between this and #41?

All the changes are in place and shown to be working in the test repo, right? The idea was to provide multiple smaller PRs so things are easier to review. If you want to see them all together you can look in the testing repo.


something update

new function to set arrow drawable
now users can set custom arrow drawable in xml or in code.
override setEnabled
past versions the method setEnabled is no use.
now users can set false to hide the arrow drawable and spinner will do nothing when it was clicked.
if the code is useful, i hope it can be take in this project, thank you.

Hello, thanks for contributing! This has some conflicts now, I'll close the PR and integrate your changes in another branch. Feel free to review it again after I've merged into master.


[op] Minior fix in projected gradient methods.

Fixed issues:

Copy the resulted point at final iteration to the output param vec.
Remove unnecessary ClipGradient since it's a non-op in this case.

@xiaoyunwu We do ClipPoint at the very beginning.


Some questions about trajectory optimization

Hello hovren
I add a new sensor model (LiDAR model) to the Kontiki, and I also create a new measurement type of the LiDAR model(LiDARMeasurement).
The R3 spline trajectory is initialized by solving a linear problem(Ax=b) and the SO3 spline trajectory is initialized by the optimation method. I have checked out the initial result and it's correct enough for the next step.
So I add  AccelerometerMeasurement, GyroscopeMeasurement, LiDARMeasurement to the estimator.  However, the optimization result is not right, especially in the front part of the trajectory, which is very unstable as shown in this picture.

I have observed several things.

The optimization direction was wrong at the beginning. The terminal output during optimization is as follows. Note the first few iterations, the error is increasing
iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time
   0  3.082471e+10    0.00e+00    2.11e+09   0.00e+00   0.00e+00  1.00e+04        0    5.50e-02    6.00e-02
   1  5.499182e+11   -5.19e+11    0.00e+00   3.12e+01  -1.71e+01  5.00e+03        1    4.30e-02    1.03e-01
   2  6.604305e+11   -6.30e+11    0.00e+00   2.55e+01  -2.07e+01  1.25e+03        1    1.53e-02    1.18e-01
   3  6.878899e+10   -3.80e+10    0.00e+00   1.93e+01  -1.25e+00  1.56e+02        1    1.77e-02    1.36e-01
   4  1.021614e+10    2.06e+10    1.18e+09   1.30e+01   6.87e-01  1.65e+02        1    7.07e-02    2.07e-01
   5  3.401698e+09    6.81e+09    4.83e+08   6.37e+00   6.82e-01  1.73e+02        1    7.33e-02    2.80e-01
  ......
  28  8.597815e+08    6.39e+06    6.11e+07   6.52e-02   4.47e-01  9.30e-02        1    6.60e-02    1.52e+00
  29  8.494701e+08    1.03e+07    6.07e+07   9.56e-02   4.42e-01  9.29e-02        1    7.56e-02    1.60e+00
  30  8.439439e+08    5.53e+06    5.95e+07   6.33e-02   3.87e-01  9.18e-02        1    6.93e-02    1.67e+00

Solver Summary (v 1.14.0-eigen-(3.3.7)-lapack-suitesparse-(4.4.6)-cxsparse-(3.1.4)-eigensparse-openmp-no_tbb)

                                     Original                  Reduced
Parameter blocks                          372                      364
Parameters                               1296                     1274
Effective parameters                     1112                     1092
Residual blocks                          9904                     9904
Residuals                               24144                    24144

Minimizer                        TRUST_REGION

Sparse linear algebra library    SUITE_SPARSE
Trust region strategy     LEVENBERG_MARQUARDT

                                        Given                     Used
Linear solver          SPARSE_NORMAL_CHOLESKY   SPARSE_NORMAL_CHOLESKY
Threads                                     8                        8
Linear solver ordering              AUTOMATIC                      364

Cost:
Initial                          3.082471e+10
Final                            8.439439e+08
Change                           2.998077e+10

Minimizer iterations                       31
Successful steps                           21
Unsuccessful steps                         10

Time (in seconds):
Preprocessor                         0.004960

  Residual only evaluation           0.139199 (30)
  Jacobian & residual evaluation     1.119277 (21)
  Linear solver                      0.345781 (30)
Minimizer                            1.662274

Postprocessor                        0.000659
Total                                1.667893

Termination:                   NO_CONVERGENCE (Maximum number of iterations reached. Number of iterations: 30.)

Given the adjacent control points in the quaternion spline, the inner product of the first few konts is less than zero.
The inner product:
control point idx: 0; q1^T q2 = -0.956805
control point idx: 1; q1^T q2 = -0.999958
control point idx: 3; q1^T q2 = -0.455493
control point idx: 4; q1^T q2 = -0.84764

The first few control points:
 control point q0 = -0.653931 -0.364804 -0.263813  0.608026
 control point q1 =  0.722436  0.239671  0.010041 -0.648493
 control point q2 = -0.720838  -0.24549 -0.016903  0.647952
 control point q3 = -0.729814  0.407561   0.49898  0.228658
 control point q4 =   -0.1708 -0.588182  -0.76801  0.187164
 control point q5 =  0.517802  0.181479  0.770429 -0.324632
 control point q6 =   0.575074  -0.721305 -0.0431002  -0.383603

I am wondering how to keep the inner product of the adjacent control points large than zero during the optimation. Could you give me some suggestions?  Thank you a lot !

Hi!
Happy to hear that you are working on LIDAR measurements, and I would be very interested to hear about your future results!
Regarding the issue, it's hard to debug without seeing your code.
The issue where the cost function value increases is not necessarily a problem since Ceres-solver can be run in a mode where the cost is allowed to increase, at least for a while.
It does however indicate that your starting solution is not great.
I didn't quite understand how you initialized the SO(3) spline, but it is important that the control point sequence that you start with has a consistent sign (i.e. dot(q_i, q_(i+1)) > 0 for all i. It is sometimes sufficient to simply start with q_i = (1, 0, 0, 0). If you start with some other control point sequence, just multiply offending control points by -1 when necessary.
Obviously, the starting control point sequence must also be unitary, but this should already be enforced by kontiki when you add the control point.
That the control points switch sign during optimization is indeed troubling, but I am not sure there is much you can do here, apart from making sure that it starts in a consistent state. Most likely you have an issue with your measurements that makes this sign switch be the best solution.
Short list of things to check:

Does your Lidar and IMU measurements agree on the coordinate frame they are measuring in?
 Do you have a test suite with simulated data?
How are you weighting your measurements?
Did you select a knot spacing (spline dt) that is suitable? I have seen your first-iterations-are-bad issue when I have chosen a too dense (small dt).
Have you tried running without the IMU measurements?
What happens if you start the optimization at the ground truth (or very close to it)? Does it converge and stop, or does it diverge? Try with combinationatiosn of measurement classes to see when the error manifests itself.

Hi!
Finally, I got the right result ~~~ Thank you very much for your detailed suggestions ~
In LiDARMeasurement, I modify the AddToEstimator function from
  void AddToEstimator(kontiki::TrajectoryEstimator<TrajectoryModel>& estimator) {
       ......
      std::vector<entity::ParameterInfo<double>> parameters;

       ......

      static std::vector<double*> params entity::ParameterInfo<double>::ToParameterBlocks(parameters);
      estimator.problem().AddResidualBlock(cost_function, nullptr,  params);
  }

to
  void AddToEstimator(kontiki::TrajectoryEstimator<TrajectoryModel>& estimator) {
       ......
      std::vector<entity::ParameterInfo<double>> parameters;

         ......

      estimator.problem().AddResidualBlock(cost_function, nullptr,
                                           entity::ParameterInfo<double>::ToParameterBlocks(parameters));
  }

It's my typo,  I add an extra static declaration on the variable params. I have forgotten where this wrong code copied from. It's Ctrl+C and Ctrl+V that has wasted so much of my time. :sob:
The result is as follows

Thanks again for your excellent job.


Finish firing before end after pipe

When piping Busboy to Sharp for resizing, Busboy fires its "finish" handler prior to the "end" handler of the piped stream. Is there a way to prevent this or control emitting this "finish" handler manually?
Here's an example where "resizer" is nothing more than sharp().resize({ options }).webp({ options });
      buffers[field] = [] as Buffer[];

      file.pipe(resizer)

        .on('data', (data: Buffer) => {
          buffers[field].push(data);
        })

        .on('error', (err: Error) => {
          error = err;
        })

        .on('end', () => {
          files[info.filename] =
            { result: { ...result, file: Buffer.concat(buffers[field]) }, error };
        });

Kinda thought that figured I'd ask in case someone had tackled it already. if you can think of any suggestions appreciate it, otherwise we'll close this.


how can i export .psd file?

i want to modified .psd , and save as .psd?

I also have same question. Have u solve it yet ?

Judging from the code, there is no way of saving it back as svg.


Fix style nits in crl_set_issuers

This fixes some style nits in crl_set_issuers.
The first commit is from #18327
I'd like to do the style nits either only on master or on master / 3.0

This pull request is ready to merge

Merged to master as cb0c36d.  Thanks!


[TorchBench] Performance Signal Detected

TorchBench CI has detected a performance signal.
Affected Tests:

eval-cuda-fp32:

attention_is_all_you_need_pytorch[dynamo-blade (latency)] 6.6 -> 5.919, +10.3182%
attention_is_all_you_need_pytorch[dynamo-disc (latency)] 5.587 -> 4.908, +12.1532%
DALLE2_pytorch[disc (latency)] status changed, 90.621 -> OSError
DALLE2_pytorch[disc (compiled)] status changed, 22800.0 -> N/A
DALLE2_pytorch[disc (clusters)] status changed, 184.0 -> N/A
detectron2_fasterrcnn_r_101_c4[dynamo-blade (latency)] status changed, AssertionError -> 81.218
detectron2_fasterrcnn_r_101_c4[dynamo-disc (latency)] status changed, AssertionError -> 144.273
detectron2_fasterrcnn_r_101_c4[dynamo-disc (clusters)] status changed, N/A -> 15.0
detectron2_fasterrcnn_r_101_c4[dynamo-disc (compiled)] status changed, N/A -> 1445.0
detectron2_fasterrcnn_r_101_dc5[dynamo-blade (latency)] status changed, AssertionError -> 42.698
detectron2_fasterrcnn_r_101_dc5[dynamo-disc (latency)] status changed, AssertionError -> 53.583
detectron2_fasterrcnn_r_101_dc5[dynamo-disc (clusters)] status changed, N/A -> 14.0
detectron2_fasterrcnn_r_101_dc5[dynamo-disc (compiled)] status changed, N/A -> 1453.0
detectron2_fasterrcnn_r_101_fpn[dynamo-blade (latency)] status changed, AssertionError -> 31.027
detectron2_fasterrcnn_r_50_c4[dynamo-blade (latency)] status changed, AssertionError -> 76.368
detectron2_fasterrcnn_r_50_c4[dynamo-disc (latency)] status changed, AssertionError -> 33.85
detectron2_fasterrcnn_r_50_c4[dynamo-disc (clusters)] status changed, N/A -> 16.0
detectron2_fasterrcnn_r_50_c4[dynamo-disc (compiled)] status changed, N/A -> 958.0
detectron2_fasterrcnn_r_50_dc5[dynamo-blade (latency)] status changed, AssertionError -> 38.006
detectron2_fasterrcnn_r_50_fpn[dynamo-blade (latency)] status changed, AssertionError -> 25.141
detectron2_maskrcnn_r_101_c4[dynamo-blade (latency)] status changed, AssertionError -> 90.089
detectron2_maskrcnn_r_50_c4[dynamo-blade (latency)] status changed, AssertionError -> 84.22
detectron2_maskrcnn_r_50_fpn[dynamo-blade (latency)] status changed, AssertionError -> 29.704
dlrm[disc (latency)] 1.861 -> 2.125, -14.1859%
dlrm[blade (latency)] 1.681 -> 1.926, -14.5747%
dlrm[dynamo-blade (latency)] 1.784 -> 2.12, -18.8341%
dlrm[dynamo-disc (latency)] 1.9 -> 2.135, -12.3684%
drq[dynamo-blade (latency)] status changed, 1.4 -> UnserializableException
drq[dynamo-disc (latency)] status changed, 1.353 -> UnserializableException
drq[dynamo-disc (clusters)] status changed, 1.0 -> N/A
drq[dynamo-disc (compiled)] status changed, 84.0 -> N/A
fambench_xlmr[dynamo-blade (latency)] 247.478 -> 145.269, +41.3002%
fambench_xlmr[dynamo-disc (latency)] status changed, 174.359 -> OSError
fambench_xlmr[dynamo-disc (clusters)] status changed, 50.0 -> N/A
fambench_xlmr[dynamo-disc (compiled)] status changed, 2868.0 -> N/A
functorch_maml_omniglot[dynamo-disc (latency)] 0.663 -> 0.534, +19.457%
hf_Bart[dynamo-blade (latency)] 12.191 -> 9.748, +20.0394%
hf_Bart[dynamo-disc (latency)] 12.929 -> 10.224, +20.922%
hf_Bart[dynamo-disc (clusters)] 8 -> 1
hf_Bart[dynamo-disc (compiled)] 1414 -> 1426
hf_Bert[dynamo-blade (latency)] 8.03 -> 6.977, +13.1133%
hf_Bert[dynamo-disc (latency)] 8.199 -> 7.293, +11.0501%
hf_Bert_large[dynamo-blade (latency)] 19.724 -> 18.105, +8.2083%
hf_Bert_large[dynamo-disc (latency)] 21.283 -> 19.619, +7.8184%
hf_Bert_mini[blade (latency)] 0.653 -> 0.547, +16.2328%
hf_Bert_mini[dynamo-blade (latency)] 1.025 -> 0.575, +43.9024%
hf_Bert_mini[dynamo-disc (latency)] 1.566 -> 0.884, +43.5504%
hf_BigBird[disc (latency)] status changed, 160.796 -> RuntimeError
hf_BigBird[dynamo-blade (latency)] status changed, OSError -> 116.547
hf_BigBird[dynamo-disc (latency)] status changed, RuntimeError -> 113.666
hf_BigBird[disc (compiled)] status changed, 5007.0 -> N/A
hf_BigBird[disc (clusters)] status changed, 61.0 -> N/A
hf_BigBird[dynamo-disc (clusters)] status changed, N/A -> 135.0
hf_BigBird[dynamo-disc (compiled)] status changed, N/A -> 11446.0
hf_DistilBert[dynamo-blade (latency)] 4.095 -> 3.755, +8.3028%
hf_DistilBert[dynamo-disc (latency)] 4.298 -> 3.911, +9.0042%
hf_Longformer[disc (latency)] status changed, 137.037 -> RuntimeError
hf_Longformer[dynamo-disc (latency)] status changed, 119.214 -> RuntimeError
hf_Longformer[disc (compiled)] status changed, 9201.0 -> N/A
hf_Longformer[disc (clusters)] status changed, 169.0 -> N/A
hf_Longformer[dynamo-disc (clusters)] status changed, 172.0 -> N/A
hf_Longformer[dynamo-disc (compiled)] status changed, 6130.0 -> N/A
phlippe_densenet[dynamo-blade (latency)] 6.578 -> 6.187, +5.9441%
pyhpc_isoneutral_mixing[blade (latency)] 11.621 -> 10.666, +8.2179%
pyhpc_isoneutral_mixing[dynamo-blade (latency)] 10.665 -> 9.687, +9.1702%
pyhpc_turbulent_kinetic_energy[dynamo-blade (latency)] 10.589 -> 11.729, -10.7659%
resnet18[dynamo-blade (latency)] 2.185 -> 2.044, +6.4531%
timm_efficientdet[blade (latency)] status changed, 1055.4 -> RuntimeError
timm_vision_transformer[dynamo-disc (latency)] 7.076 -> 6.682, +5.5681%
timm_vovnet[dynamo-blade (latency)] 22.05 -> 20.386, +7.5465%
yolov3[dynamo-disc (latency)] status changed, 44.194 -> RuntimeError
yolov3[dynamo-disc (clusters)] status changed, 18.0 -> N/A
yolov3[dynamo-disc (compiled)] status changed, 141.0 -> N/A

eval-cuda-fp16:

attention_is_all_you_need_pytorch[dynamo-blade (latency)] 5.219 -> 4.503, +13.7191%
attention_is_all_you_need_pytorch[dynamo-disc (latency)] 3.67 -> 2.664, +27.4114%
detectron2_fasterrcnn_r_101_c4[dynamo-blade (latency)] status changed, AssertionError -> 49.041
detectron2_fasterrcnn_r_101_c4[dynamo-disc (latency)] status changed, AssertionError -> 58.52
detectron2_fasterrcnn_r_101_c4[dynamo-disc (clusters)] status changed, N/A -> 15.0
detectron2_fasterrcnn_r_101_c4[dynamo-disc (compiled)] status changed, N/A -> 1445.0
detectron2_fasterrcnn_r_101_dc5[dynamo-blade (latency)] status changed, AssertionError -> 27.249
detectron2_fasterrcnn_r_101_dc5[dynamo-disc (latency)] status changed, AssertionError -> 30.856
detectron2_fasterrcnn_r_101_dc5[dynamo-disc (clusters)] status changed, N/A -> 14.0
detectron2_fasterrcnn_r_101_dc5[dynamo-disc (compiled)] status changed, N/A -> 1453.0
detectron2_fasterrcnn_r_101_fpn[dynamo-blade (latency)] status changed, AssertionError -> 19.129
detectron2_fasterrcnn_r_50_c4[dynamo-blade (latency)] status changed, AssertionError -> 47.246
detectron2_fasterrcnn_r_50_c4[dynamo-disc (latency)] status changed, AssertionError -> 18.075
detectron2_fasterrcnn_r_50_c4[dynamo-disc (clusters)] status changed, N/A -> 16.0
detectron2_fasterrcnn_r_50_c4[dynamo-disc (compiled)] status changed, N/A -> 958.0
detectron2_fasterrcnn_r_50_dc5[dynamo-blade (latency)] status changed, AssertionError -> 24.531
detectron2_fasterrcnn_r_50_fpn[dynamo-blade (latency)] status changed, AssertionError -> 16.575
detectron2_maskrcnn_r_101_c4[dynamo-blade (latency)] status changed, AssertionError -> 53.017
detectron2_maskrcnn_r_50_c4[dynamo-blade (latency)] status changed, AssertionError -> 49.022
detectron2_maskrcnn_r_50_fpn[dynamo-blade (latency)] status changed, AssertionError -> 18.939
dlrm[disc (latency)] 1.132 -> 1.592, -40.636%
dlrm[blade (latency)] 1.144 -> 1.627, -42.2203%
dlrm[dynamo-blade (latency)] 1.22 -> 1.669, -36.8033%
dlrm[dynamo-disc (latency)] 1.225 -> 1.655, -35.102%
fambench_xlmr[dynamo-disc (latency)] status changed, 90.117 -> OSError
fambench_xlmr[dynamo-disc (clusters)] status changed, 50.0 -> N/A
fambench_xlmr[dynamo-disc (compiled)] status changed, 2868.0 -> N/A
functorch_dp_cifar10[disc (latency)] 1.704 -> 1.818, -6.6901%
hf_Bart[dynamo-disc (latency)] 7.154 -> 6.667, +6.8074%
hf_Bart[dynamo-disc (clusters)] 13 -> 7
hf_Bart[dynamo-disc (compiled)] 1397 -> 1403
hf_Bert[dynamo-blade (latency)] 4.5 -> 3.279, +27.1333%
hf_Bert[dynamo-disc (latency)] 4.563 -> 3.297, +27.7449%
hf_Bert_large[dynamo-blade (latency)] 10.575 -> 8.546, +19.1868%
hf_Bert_large[dynamo-disc (latency)] 10.625 -> 9.062, +14.7106%
hf_Bert_mini[dynamo-blade (latency)] 0.961 -> 0.504, +47.5546%
hf_Bert_mini[dynamo-disc (latency)] 1.374 -> 0.787, +42.722%
hf_BigBird[dynamo-disc (latency)] status changed, RuntimeError -> 67.807
hf_BigBird[dynamo-disc (clusters)] status changed, N/A -> 135.0
hf_BigBird[dynamo-disc (compiled)] status changed, N/A -> 11446.0
hf_DistilBert[disc (latency)] 2.592 -> 2.736, -5.5556%
hf_DistilBert[dynamo-blade (latency)] 3.234 -> 3.0, +7.2356%
hf_DistilBert[dynamo-disc (latency)] 2.936 -> 2.573, +12.3638%
hf_GPT2[dynamo-blade (latency)] 14.768 -> 13.706, +7.1912%
hf_GPT2[dynamo-disc (latency)] 11.466 -> 10.78, +5.9829%
hf_Longformer[disc (latency)] status changed, 85.172 -> RuntimeError
hf_Longformer[dynamo-blade (latency)] 88.71 -> 107.848, -21.5737%
hf_Longformer[dynamo-disc (latency)] status changed, 67.529 -> RuntimeError
hf_Longformer[disc (compiled)] status changed, 9201.0 -> N/A
hf_Longformer[disc (clusters)] status changed, 169.0 -> N/A
hf_Longformer[dynamo-disc (clusters)] status changed, 172.0 -> N/A
hf_Longformer[dynamo-disc (compiled)] status changed, 6130.0 -> N/A
hf_T5[dynamo-disc (latency)] status changed, 32.34 -> OSError
hf_T5[dynamo-disc (clusters)] status changed, 35.0 -> N/A
hf_T5[dynamo-disc (compiled)] status changed, 1775.0 -> N/A
hf_T5_base[dynamo-disc (latency)] status changed, 92.944 -> OSError
hf_T5_base[dynamo-disc (clusters)] status changed, 65.0 -> N/A
hf_T5_base[dynamo-disc (compiled)] status changed, 3431.0 -> N/A
hf_T5_large[dynamo-blade (latency)] 67.117 -> 58.449, +12.9148%
hf_T5_large[dynamo-disc (latency)] status changed, 61.988 -> OSError
hf_T5_large[dynamo-disc (clusters)] status changed, 125.0 -> N/A
hf_T5_large[dynamo-disc (compiled)] status changed, 6743.0 -> N/A
maml_omniglot[blade (latency)] 0.274 -> 0.293, -6.9343%
maml_omniglot[dynamo-disc (latency)] 0.645 -> 0.513, +20.4651%
mnasnet1_0[dynamo-blade (latency)] 2.78 -> 2.61, +6.1151%
mnasnet1_0[dynamo-disc (latency)] 4.175 -> 3.872, +7.2575%
mobilenet_v3_large[dynamo-blade (latency)] 3.87 -> 3.563, +7.9328%
phlippe_densenet[dynamo-blade (latency)] 4.085 -> 3.736, +8.5435%
phlippe_densenet[dynamo-disc (latency)] 5.089 -> 4.767, +6.3274%
pyhpc_equation_of_state[disc (latency)] 1.893 -> 2.01, -6.1807%
pyhpc_isoneutral_mixing[blade (latency)] 7.07 -> 7.534, -6.5629%
pyhpc_isoneutral_mixing[dynamo-blade (latency)] 6.201 -> 6.655, -7.3214%
pyhpc_turbulent_kinetic_energy[blade (latency)] 5.746 -> 6.059, -5.4473%
pyhpc_turbulent_kinetic_energy[dynamo-blade (latency)] 5.872 -> 6.222, -5.9605%
pytorch_stargan[blade (latency)] 9.462 -> 26.297, -177.9222%
resnet18[dynamo-blade (latency)] 0.993 -> 0.92, +7.3515%
resnet18[dynamo-disc (latency)] 1.459 -> 1.368, +6.2371%
resnext50_32x4d[dynamo-blade (latency)] 2.405 -> 2.283, +5.0728%
squeezenet1_1[dynamo-blade (latency)] 0.977 -> 0.908, +7.0624%
timm_efficientnet[dynamo-blade (latency)] 11.535 -> 10.802, +6.3546%
timm_vision_transformer[dynamo-disc (latency)] 3.77 -> 3.424, +9.1777%
timm_vovnet[dynamo-blade (latency)] 10.484 -> 9.135, +12.8672%
timm_vovnet[dynamo-disc (latency)] 16.368 -> 15.307, +6.4822%
yolov3[dynamo-disc (latency)] status changed, 27.479 -> RuntimeError
yolov3[dynamo-disc (clusters)] status changed, 18.0 -> N/A
yolov3[dynamo-disc (compiled)] status changed, 141.0 -> N/A

detail data can be seen in oss://bladedisc-ci/TorchBench/gpu/full/20230609-15
created by TorchBench CI automatically

duplicated to https://github.com/alibaba/BladeDISC/issues/1180


Add ThreadFactories for each thread in MediaDriver to support program…

Adds configurations to MediaDriver Context to pass in ThreadFactories for each of the threads spun up by the MediaDriver.  Will allow users to easily create ThreadFactories that pin indivudal MediaDriver threads to cores.  (Dependent on Agrona PR https://github.com/real-logic/Agrona/pull/69)

How about adding the thread factories to the context like you suggest and then pass them appropriately to startOnThread rather than hold a reference in the AgentRunner?

I agree with @mjpt777 .

No longer dependent on any changes to Agrona

Thanks!


[DEV] Can't find many Pokemon and Pokestops.

Expected Behavior
Find more Pokemons and stop by more Pokestops. Yesterday I find a lot more Pokemon and Pokestops on the exact same spot.
Actual Behavior
The bot just walks past a lot of nearby Pokestops and I don't find many Pokemon. I live in a dense city and I find around 5 pokemons in 0.5 hour. Could it have something to do with new range of detecting Pokemons of 70 meters instead of 100?
Steps to Reproduce
config.json file:
"auth_service": "google",
"username": "realusername",
"password": "realpassword",
"location": "reallocation",
"gmapkey": "realkey",
"max_steps": 10,
"catch_pokemon": true,
"forts": {
"spin": true,
"avoid_circles":true,
"max_circle_size": 50
},
"websocket_server": false,
"walk": 7.6,
"action_wait_min": 1,
"action_wait_max": 4,
"debug": false,
"test": false,
"health_record": true,
"location_cache": false,
"distance_unit": "km",
"reconnecting_timeout": 15,
"item_filter": {
"1": { "keep" : 100 },
"101": { "keep" : 0 },
"102": { "keep" : 0 },
"103": { "keep" : 60 },
"201": { "keep" : 0 },
"701": { "keep" : 40 }
},
"evolve_all": "NONE",
"evolve_speed": 20,
"cp_min": 300,
"use_lucky_egg": false,
"hatch_eggs": true,
"longer_eggs_first": true,
"evolve_captured": false,
"release_pokemon": true,
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"}
},
Other Information
OS: OS X El Capitan
Git Commit: 79152bc65f8194ee9eb591fa657b99423771409e

I'm expiriencing the same issue

Can you try lowering you max circle size to something like 15 and tell me if you experience the same issue?

Same here. Bot is in central park and only caught 2 Pokemon in the last 30 mins. Used to be at least 1 per minute.

@Viper896 I have avoid_circles:true so it should not matter which max_circle_size I have. I tried it nonetheless and nothing changed. I don't know what explains that the bot doesn't go by the Pokestops, but I think the lack of Pokemon has to do something with the change in radius from 100m to 70m that happened overnight.

please come to the slack chat #help and ask someone to review your config files.
use dev version its much better


It would be delightful to use cellular as a backup to Ethernet

At present, cellular takes priority over Ethernet: if cellular is up then Ethernet gets clobbered. (It might still be working, but everything gets routed to the cellular connection).
It would be nice to have a configuration where cellular is used only if Ethernet is not available. Maybe all we have to do is set a clever route metric? But anyway, if Ethernet is attached, we would want that to be preferred over cellular (and maybe not even bring cellular up). States would be:

Ethernet
Cellular
Action

no
no
bring up PPP

no
yes
use PPP

yes
no
do nothing (use Ethernet, and keep PPP out of the modem so we can diagnose)

yes
yes
bring down PPP.

For field service, this would be ideal: if the modem isn't working in practice, plug in an Ethernet hotspot, look around, and then unplug to force a retest.

We could do this with defaultroute-metric in /etc/ppp/peers/CONF.  Except that was introduced in 2.4.8 and mLinux 5.3.31 has 2.4.7.
Checking and 6.0.1 is also at that version.
We may be able to do something with post-processing.


Improve intersections with adjacent surfaces

Currently, if two surfaces are very close to each other, PathTracer may register intersection only once. This is okay for surface rendring, but can lead to bad results when two volumetric objects are stacked together (because some enter/leave events are missing and media list of ShadingRay contains incorrect media).

This is interesting.
Our handling of intersection precision has historically been very robust. What we cannot guarantee though is to detect intersections with two coincident surfaces. Nested/overlapping volumes should have clearly distinct surfaces.

I apologise if I posted this issue too early. It might be a problem behind the logic of adding/removing media, so it need to be investigated thoroughly.

No problem!

False alarm!
I assumed that if you place three cubes of height 0.333 in coordinates 0.333, 0.666 and 1.000, they will always have a gap of at least 0.001 between them. I was terribly wrong...
Closed in shame.

No worries :)


Build fails with the latest gazelle (0.37.0)

What version of gRPC and what language are you using?
1.54.1 (but on the latest 1.64.0 is still present)
What operating system (Linux, Windows,...) and version?
Linux and MacOs
What runtime / compiler are you using (e.g. python version or version of gcc)
bazel 6.4.0
What did you do?
I updated to gazelle 0.37.0
What did you expect to see?
Build with no errors
What did you see instead?
Builds started to fail with
failed to build tools: # github.com/bazelbuild/bazel-gazelle/cmd/fetch_repo
src/github.com/bazelbuild/bazel-gazelle/cmd/fetch_repo/go_mod_download.go:64:17: undefined: errors.Join

This happens because errors.Join was introduced in go 1.20 (link), but grpc/grpc has hard-coded go 1.18 (link).
I tried to specify the version in my WORKSPACE file
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains")
go_register_toolchains(version = "1.20")

but it conflicts with the version specified in grpc
    grpc_extra_deps()
File ".../external/com_github_grpc_grpc/bazel/grpc_extra_deps.bzl", line 56, column 27, in grpc_extra_deps
    go_register_toolchains(version = "1.18")
File ".../external/io_bazel_rules_go/go/private/sdk.bzl", line 713, column 13, in go_register_toolchains
    fail("go_register_toolchains: version set after go sdk rule declared ({})".format(", ".join([r["name"] for r in sdk_rules])))
Error in fail: go_register_toolchains: version set after go sdk rule declared (go_sdk)

Could you please update the go version and/or make non hard-coded, so grpc can be used with the latest gazelle?
Anything else we should know about your project / environment?

I've updated our dependencies and backported the change to 1.64, it should be out in a 1.64.1 patch release ~soon.


Aux window: do not render URL bar below title

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.85.1
OS Version: MacOS 13.4 (22F66)

Steps to Reproduce:

Chrome Browser, open vscode.dev
Install PWA
Open a file, right click in Tab Title Menu: Move into new Window
The Opened floating window shown extra blank title area.

This is something Chrome seems to be adding, when not using PWA you can see its this:

And it seems to be the same in PWA, even though not rendering the same:

If someone knows how to disable this, please chime in.

@bpasero I can't find the exact source for this, but for security reasons the url bar will always be shown unless the site has a valid SSL certificate. I can see that the popup window is opened with about:blank here: https://github.com/microsoft/vscode/blob/6d6bb5889a1eed4afb4d9bfec9cbda6720a189d9/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.ts#L264
But I don't know how you would change that to be e.g. https://vscode.dev instead. auxiliaryWindow.history.replaceState may or may not work.


[Feature Request] SignalWithStart for external workflows

Currently we have SignalWithStartWorkflow (Go SDK) via client api.
Feature request is to add
"SignalWithStartExternalWorkflow" (name tbd) which can be called in workflow code. Would behave same as SignalWithStartWorkflow.

Moving to server.


AxeLive.run() does not exported as part of the library

Hi @MattCheely ,
run method does not exist on the exported library, not sure if this is intentionally removed?

Oh, yes. I did remove that during a recent major refactor. IIRC it was because watch now allows you to pause automatic change checking, and I think the intent was that I'd add an option to start with the changes disabled, but I never got to that part. It's been a while since I looked at that. I will see about fixing it and updating the docs. Can you try with watch and let me know if it works for you in the meantime?

Oh, yes. I did remove that during a recent major refactor. IIRC it was because watch now allows you to pause automatic change checking, and I think the intent was that I'd add an option to start with watching for changes disabled, but I never got to that part. It's been a while since I looked at that. I will see about fixing it and updating the docs. Can you try with watch and let me know if it works for you in the meantime?

Yes, watch works.
A small suggestion, If there are no violations on the page user is not informed about the completion of the test run.
A toast message may be helpful.
May be a feature request :-)

@AThiyagarajan I just released 1.0.0 with a new API and some UX improvements. I think it should resolve all of your issues. The main API is back to run() and change watching is an option now, along with some other items. Check out the README for details.


xr.open_mfdataset(): unexpected wildcard behavior

Code Sample
import xarray as xr
import numpy as np

# create test data
x = np.ones((3,3))
y = np.ones((3,3))
z = np.ones((3,3))

x = xr.DataArray(x,name='var1')
y = xr.DataArray(y,name='var2')
z = xr.DataArray(z,name='var3')

x.to_netcdf('test_output_1.nc')
y.to_netcdf('test_output_2.nc')
z.to_netcdf('file_to_ignore.nc') # we don't want this file in this dataset

ds = xr.open_mfdataset('./test_output_*.nc')

This dataset includes the unwanted file ('file_to_ignore.nc'):
<xarray.Dataset>
Dimensions:  (dim_0: 3, dim_1: 3)
Dimensions without coordinates: dim_0, dim_1
Data variables:
    var1     (dim_0, dim_1) float64 dask.array<shape=(3, 3), chunksize=(3, 3)>
    var2     (dim_0, dim_1) float64 dask.array<shape=(3, 3), chunksize=(3, 3)>
    var3     (dim_0, dim_1) float64 dask.array<shape=(3, 3), chunksize=(3, 3)>

Problem description
If I use the star wildcard, open_mfdataset() will add all netCDF files in the directory to the dataset, no matter where I place the wildcard. This results in files being included in the dataset, that should have been excluded. This is an issue I would be happy help to resolve!

So I just tried your example on my machine and got the expected output... I can't seem to replicate your bug!
I'm not using all the same library versions as you but I'm not sure why this would be inconsistent between environments...
open_mfdataset() is just using glob.glob under the hood, I assume you've tried just globbing the wildcard in your environment? i.e.
from glob import glob
print(glob('./test_output_*.nc'))

Oof this is embarassing, there's no bug here! When I was coding up the test I wrote that last file as "test_output_3.nc", and then forgot it was in that directory. Turns out the original code that motivated me to submit this issue wasn't working because of a filename. Lesson learned, using wildcards can be risky


Package concluded license: Allow using "NONE"?!

@sschuberth @tsteenbe @mnonnenmacher : Shall we file a ticket for making "NONE" a valid value for the package concluded license in ORT?
Note that for license finding curations we already do allow that.
Originally posted by @fviernau in https://github.com/oss-review-toolkit/ort/pull/3117#discussion_r494196928
I'm a bit undecided. On the one hand it would be consistent to align on SPDX expressions for "everything about licenses". On the other hand, checking for (not) null is much more convenient than checking for isPresent() / isNotPresent(). My hunch is that we should still align on SPDX expression, but I'd like to also hear @mnonnenmacher opinion on that once he's back.
Originally posted by @sschuberth in https://github.com/oss-review-toolkit/ort/pull/3117#discussion_r494258854

@fviernau  I prefer to follow SPDX see https://spdx.github.io/spdx-spec/3-package-information/#313-concluded-license: Data Format:  | NONE | NOASSERTION

Very much related to https://github.com/oss-review-toolkit/ort/issues/2852 for declared licenses.


SXSSFSheet AutoSizeColumn only considering last lines, missing call in SXSSFRow?

Hi, I have code that works with XSSF and properly auto resizes columns. I moved on to SXSSFSheet to be able to handle bigger datasets and I can't make auto resize work.
I'm generating a sheet with 45 columns and around 250 rows. NuGet package 2.5.3. I do the following:

Create the sheet
Call TrackColumnForAutoSizing for all columns (or TrackAllColumns, doesn't matter)
Fill everything and set styles as needed (but the issue is independent from styles)
Call AutoSizeColumn on each column

The output is somehow auto sized, but it seems to only consider the last row or rows (maybe the window size). If I reorder the rows when I prepare the file, so that the widest values stays at the bottom, the columns are resized correctly.
I checked the code and I see that for SXSSFSheet the width is calculated as max between the width in the current window and the one from the already flushed rows.
I noticed that in commit 2df83be4ced6271be3bd423bde7ceb0c6f75f945 a call to _autoSizeColumnTracker.UpdateColumnWidths() was removed from SXSSFRow.flushOneRow(). In the same commit I can't see anything replacing that.
I'm looking at this source code for the first time so I might be wrong, but it seems to me that call was needed. I will try to compile and test but I'd like some comments to understand if I'm dead wrong.

I've uncomment the code
https://github.com/nissl-lab/npoi/blob/980aa54834902b7a4837cedd92d1c026c992ac17/ooxml/XSSF/Streaming/SXSSFSheet.cs#L1379


Fe homework 6

Drift video :
Getting all users :

Getting by id :

Adding new user :

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
0

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Node modules pushed


Fixing an admit and adding a new SMT option

This PR fixes an admit in FStar.UInt128

The admit involves some bitvector reasoning, which Z3 can prove, but only if smt.case_split=1. By default, F* uses smt.case_split=3, which is recorded in the .smt2 file that F* generates. It's not possible to override this option using z3cliopt, so this PR adds a new option --z3smtopt to allow the user to inject new (set-option ...) style directives in the header of the SMT2 file. You can see a usage in FStar.UInt128.

Additionally, the admit involves reasoning about bvult, the unsigned less-than bitvector operation, and somehow this had been excluded from the bitvector encoding. I re-enabled it.

Also, along the way, I removed two admitted but unused lemmas in FStar.ModifiesGen

The main thing worth checking in this PR is that I handled the new option correctly, in terms of the logic around embedding them, checking if the config changed etc. Basically, I handled the new option identically to z3cliopt.

I also got an everest green with this after an unrelated patch to a brittle HACL* proof


CHEBI roles

I am checking the exposure-chebi.tsv file for the patterns.
Should we make a separate file for the eo/peco classes that map to a chebi role? and have separate yaml file for those with a nested definition or something like that?
@austinmeier @cmungall @cooperl09

Yes, roles are potentially problematic. How many are there?
On 6 Jun 2017, at 10:34, Marie-Angélique Laporte wrote:

I am checking the exposure-chebi.tsv file for the patterns.
Should we make a separate file for the eo/peco classes that map to a
chebi role? and have separate yaml file for those with a nested
definition or something like that?
@austinmeier @cmungall @cooperl09
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/Planteome/plant-environment-ontology/issues/98

Only a few.
10 to be exact. Here the list:

http://purl.obolibrary.org/obo/CHEBI_27027=micronutrient,
http://purl.obolibrary.org/obo/CHEBI_33281=antimicrobial agent, http://purl.obolibrary.org/obo/CHEBI_25944=pesticide, http://purl.obolibrary.org/obo/CHEBI_37845=growth hormone, http://purl.obolibrary.org/obo/CHEBI_24527=herbicide, http://purl.obolibrary.org/obo/CHEBI_24127=fungicide, http://purl.obolibrary.org/obo/CHEBI_33287=fertilizer, http://purl.obolibrary.org/obo/CHEBI_22676=auxin, http://purl.obolibrary.org/obo/CHEBI_23530=cytokinin, http://purl.obolibrary.org/obo/CHEBI_24852=insecticide

@cmungall shall we make a DP for them ?
Something like for the fertilizer:
'plant treatment'
  and 'has exposure stimulus'
    some ('chemical entity' and 'has role' some 'fertilizer')

Perfect. In GO we precoordinated classes like this, as we couldn't handle the nesting. Here it's OK (but may be a bit before we can handle in AmiGO).
Be careful with the nutrient branch of CHEBI, it's human-specific. You may get odd inferences for micronutrient.
I think we need our own mini plant nutrient role ontology (or chemical-with-nutrient-role ontology)

was this fixed?


Inference on a remote server  / models and streaming assets -- resources on a remote server

Plugin Version or Commit ID
v10.1
Unity Version
2021.3.27
Your Host OS
Windows
Target Platform
Android, iOS
Description
hi @homuler Is there a way to put the streaming assets / resources on a remote server so that the process can be handled there?
basically what i am aiming is to have inference on a remote server, is that even possible?
the reason is i am trying to train my own models and have them on a remote server.
if it is possible can you please tell me how?
is there a way to have the streaming assets and resources run from a server? how?
Thanks
Code to Reproduce the issue
No response
Additional Context
No response

Thanks for the response @homuler , I am not running it on a server, i was asking the question of how and if that is possible!
because i am making some gamified stuff with Mediapipe, but honestly I have no idea how to run it on a remote server, but want to go down that road, so if there is a guideline, please shed some light on my path.
on the other hand, is there a way to load the StreamingAssets from a remote location, I have watched a youtube video where someone ran a quick python server and everything was on the python side and it was connected to the unity editor and they could communicate to each other and it was fast (i mean it was a local server anyhow).
I was wondering if that can be the case with this plugin.
Thanks

I am not running it on a server

I wrote If you're running it on a remote server to mean if you intend to run it on a server.
If that's the case, instead of using this plugin, you should run MediaPipe itself on the server. If you're unsure about how to do that, please ask elsewhere for guidance.

on the other hand, is there a way to load the StreamingAssets from a remote location

Of course, you can read the required resources from the remote server (though we don't call them StreamingAssets).
Just to clarify, the need for downloading resources is only applicable when you want to run MediaPipe locally. If you are running a Python server, there is no need for it, since the client don't need to read the model file.

I was wondering if that can be the case with this plugin.

In conclusion, this plugin is intended for running MediaPipe on the client-side, and there is no need to use it if you are running it on the server-side.


Allow pruning script to prune with float32 instead if float16

Currently your pruning script reduce the model size to 2GB at the cost of converting it to half precision. You should add an option to keep it full precision.

I would also like this!

From my experiments, there's no difference in quality from 2GB to 4GB.  If I prune a normal SD model from SAI/Compvis/Runyway, they produce the same output.  Are you finding otherwise?

Looks like you issued a PR for this so no reason not to allow it if you want.

@victorchall In my experience, the overall image generally remains the same when using half precision, however some key details will differ. With half precision, these differences generally result in worse outputs than with the full precision version.


Add a filter flag in i3-container-commander.py

if you want to run it for a specific application:
i3-container-commander.py --filter qutebrowser

--filter seems a bit ambiguous to me since there are potentially a few things that could be being filtered. Can you change it to --filter-group or something more specific?

Updated it, I use the script with rofi rather than with dmenu but I guess it would be easier for me to generate a rofi wrapper called "dmenu" :)

You can either create a symlink in your path with basename dmenu or use the new flag --menu rofi to make this work with rofi.


Conform to ros conventions regarding frame id's and coordinate frames

This PR makes the advanced navigation driver conform to ROS conventions:

REP103 [1] (ENU coordinate system)
REP145 [2] (IMU frame conventions)

This work is partially created using the fork of @kylerlaird [3]
In addition, the DiagnosticStatus message is replaced by a DiagnosticArray message, to allow the use of a Diagnostic Analyzer.
[1] http://www.ros.org/reps/rep-0103.html
[2] http://www.ros.org/reps/rep-0145.html
[3] https://github.com/kylerlaird/advanced_navigation_driver
[4] http://wiki.ros.org/diagnostics/Tutorials/Creating a Diagnostic Analyzer

@an-scott: what would be needed to get this PR merged? I realise it could break setups of users that are using the current version of the driver, but adherence to REP-103 and REP-145 seems of critical importance to IMU / INS drivers.
#5 by @kylerlaird that this is based on has been around for a bit as well, so it would be really nice if we could get this all merged.

This work is based on Pull Request (PR) #5, which has conflicts with master branch. Therefore, I had to resolve merge conflicts for this PR (#9). Please review to make sure that you agree with the merge, to make sure that nothing is lost that should be kept.

btw, did you leave 'imu_msg.linear_acceleration' and 'imu_msg.angular_velocity' as REP145 on purpose?

@edoreshef I think I don't understand your question. The goal is to make it conform to REP145 indeed. Is there something with imu_msg.linear_acceleration and imu_msg.angular_velocity that is not?

@RonaldEnsing, you are right, I got confused there :)

:bellhop_bell:

An update, in the end I found that REP103 conversions to be more accurate in this branch https://github.com/lbl-anp/advanced_navigation_driver/commit/f594142841a1e1d8d889a6fa51a98908e956d6bb

Hi @RonaldEnsing I am interested in using this driver with ROS and was directed to the fork of @kylerlaird. Upon seeing this PR I would like to get confirmation that this fork conforms to REP-103 and REP-145

I created this PR to make the driver conform to REP-103 and REP-145, because there was no REP-103 and REP145 compatible driver as far as I know.

Note: This repository is abandoned by Advanced Navigation Support<EMAIL_ADDRESS>When asking them about this, they pointed me to:

https://github.com/advanced-navigation/ros1-driver
https://github.com/advanced-navigation/ros2-driver


The specifier “pbf” was a bare specifier, but was not remapped to anything

When I either use a local copy of OL or the CDN and import the module MVT, I run into the import error:
Uncaught TypeError: The specifier “pbf” was a bare specifier, but was not remapped to anything. Relative module specifiers must start with “./”, “../” or “/”.
It is caused from the line 11 in the module MVT.js
import PBF from 'pbf';

I tried to solve it with an importmap,
    <script type="importmap">
        {
            "imports": {
                "pbf": "./node_modules/pbf/index.js",
                "rbush": "./node_modules/rbush/index.js",
                "quickselect": "./node_modules/quickselect/index.js"
            }
        }
    </script>

but then I run into the next error:
Uncaught SyntaxError: ambiguous indirect export: default

I don't think pbf is compatible with browser imports, because it is published as CommonJS module. You'll have to use a bundler.

I guess you are right, thanks  for the info.


[BUG] SLO-Controller calculation batch-cpu fluctuates frequently

What happened:
The BE Resource is calculated by the formula Node.Total - Node.Reserved - System.Used - Pod(non-BE).Used, where System.Used = Node.Used - Pod(All).Used. However, the System.Used calculation implementation has some problems, as follows:

At time t1, NodeMetric is updated; at time t2, the controller calculates NodeResource based on the update of NodeMetric.
Pod-B ends at time t2, and the controller regards the usage of Pod-B as System.Used

component
t1
t2
t3

koordlet
node usage：2.5 core  BE Pod-A: 1 core  BE Pod-B: 1 core  update NodeMetrics
node usage：1.5 core  BE Pod-A: 1 core  BE Pod-B: terminated  update NodeMetrics

slo-controller

node usage：2.5 core  BE Pod-A: 1 core  BE Pod-B: terminated  calculate node resource
node usage：1.5 core  BE Pod-A: 1 core  BE Pod-B: terminated  calculate node resource

Calculated according to the code of https://github.com/koordinator-sh/koordinator/blob/v1.2.0/pkg/slo-controller/noderesource/plugins/batchresource/plugin.go#L82

t1
t2
t3

System.Used：0.5 core  Batch-CPU: x core
System.Used：1.5 core  Batch-CPU: x-1 core
System.Used：0.5 core  Batch-CPU: x core

What you expected to happen:
Expecting time t2, the controller calculates System.Used = 0.5 core
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Node.Used uses the average value of the last 60 seconds, and Pod(All).Used uses the current value, which also causes the System.Used value to be inaccurate.

same with #991

/area koord-manager

@tzzcfrank Thanks for your feedback. As mentioned above, this problem can be fixed by adding a SystemUsage in #991. Moreover, we can alleviate the lagging of the resource ledger by updating the NodeMetric earlier when the calculated metrics differ too much from the last update.


basicQos only works before basicConsume is invoked?  Needs clarification in docs?

Hi.
This post is follow-up of sorts to another guy's post 3 years ago ( https://github.com/streadway/amqp/issues/236 ).  He asks about basicQos after basicConsume and was directed to the documentation, but the documentation doesn't indicate that basicQos is, apparently, silently ignored after basicConsume is active.
I do note, however, that in all the doc examples, basicQos is called before basicConsume.
FWIW, I'm using the java client.

I’m not sure why you are bringing this up here if you use the Java client. In any case, RabbitMQ doc guide on confirms and another one on Consumer prefetch do mention this. They also mention how the “global” flag (PSA: it will be a no-op in a future RabbitMQ release, so I’m only mentioning it for completeness’ sake) alters basic.qos behavior in a way that seems relevant here.
This is open source software, so you are welcome to contribute a PR that mentions that basic.qos won’t have any effect on existing consumers.

I am even more confused now because my response in #236 does refer to the RabbitMQ doc guides, not any particular doc comment specific to this client library. In any case, a PR for the Java client that perhaps updates Channel#basicQos JavaDoc would be considered.


Table rename does not include existing index (RenameTable & DropIndex)

After upgrading from EF5.0.0 to EF6.1.3, I had to add a migration, because EF apparently decided it should swap the naming convention for more-to-more table relations.
Below you can see a part of the generated code of the Code-First Migration:
        public override void Up()
        {
            RenameTable(name: "dbo.JobSites", newName: "SiteJobs");
            DropIndex("dbo.JobSites", new[] { "Job_Id" });
            DropIndex("dbo.JobSites", new[] { "Site_Id" });
            DropPrimaryKey("dbo.SiteJobs");
            AddPrimaryKey("dbo.SiteJobs", new[] { "Site_Id", "Job_Id" });
            CreateIndex("dbo.SiteJobs", "Site_Id");
            CreateIndex("dbo.SiteJobs", "Job_Id");
        }

        public override void Down()
        {
            DropIndex("dbo.SiteJobs", new[] { "Job_Id" });
            DropIndex("dbo.SiteJobs", new[] { "Site_Id" });
            DropPrimaryKey("dbo.SiteJobs");
            AddPrimaryKey("dbo.SiteJobs", new[] { "Job_Id", "Site_Id" });
            CreateIndex("dbo.JobSites", "Site_Id");
            CreateIndex("dbo.JobSites", "Job_Id");
            RenameTable(name: "dbo.SiteJobs", newName: "JobSites");
        }

Note however, that the rename happens before existing Indexes are dropped.
The problem can be resolved by either placing the rename after the index drops, or renaming the table used in the index drop.
I also wonder why the rename is necessary in the first place? Because it's a more-to-more relation, I'd say the left and right name should be decided on alphabetical order (what it was).

@bgever Notice that the issues here are for EF7, for EF6, go to http://entityframework.codeplex.com/workitem/list/basic

@ErikEJ Thanks for pointing that out, sorry I was unaware. Found the issue to be considered of low importance to the EF team: https://entityframework.codeplex.com/workitem/759
I haven't been able to test with EF7, but if the issue is still present, it would be great if it could be addressed.

It should be fixed. Renames are always the last thing to happen. See ModelDiffer.cs line 218.

We aren't going to address this for EF6, manually editing the scaffolded code is the correct thing to do. As @bricelam mentioned, this is already addressed in EF7.

Thanks for confirming @bricelam and @rowanmiller, nice to know it works in EF7.
The workaround works for me in EF6, having it mentioned in this issue should help others.


Add references to hosts file for isolated VNET

Add information on how to use the hosts file when there is no DNS server in the VNET.

@EvanBasalik : Thanks for your contribution! The author, @ccompy, has been notified to review your proposed change.

@ccompy Please verify change(s) and address merge conflicts.

@EvanBasalik 	Hi Evan, I made a number of changes so that this cannot be merged but I will  take the spirit of what you are looking for and add it to the doc.  I need to make some changes there to reflect recent UI changes also so it works out.  Thanks for the contribution and if you want, you can leave this open until the update goes out.

Thanks for taking the feedback. Let's leave this open and then I can sanity check the new text against what I was trying to express before we close it.

@EvanBasalik - The article has been updated. Shall we close this pull request? Thanks, and thank you for  your contribution.

Just reviewed the new article and the hosts file comment isn't present, but is still relevant. I'll close this PR and do a new one to add the comment to the current doc.


change to API URL?

I have been getting this error since earlier today:
Jul 08 18:37:20 odroid gw2pvo[7181]: WARNING  HTTPSConnectionPool(host='globalapi.sems.com.cn', port=443): Max retries exceeded with url: /api/v1/PowerStation/GetMonitorDetailByPowerstationId (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0xb5c95a10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) Jul 08 18:37:47 odroid gw2pvo[7181]: ERROR    Failed to call GoodWe API Jul 08 18:37:47 odroid gw2pvo[7181]: ERROR    'inverter'
It looks like globalapi.sems.com.cn is not reachable anymore. Has goodwe maybe changed or removed that URL? I can see all my stats just fine on semsportal.

Same-ish- here: Jul  8 13:29:04 host gw2pvo[12799]: WARNING  HTTPSConnectionPool(host='globalapi.sems.com.cn', port=443): Max retries exceeded with url: /api/v1/PowerStation/GetMonitorDetailByPowerstationId (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f1fe99c58d0>: Failed to establish a new connection: [Errno -2] Name or service not known'))

Same here:
INFO     Starting new HTTPS connection (1): globalapi.sems.com.cn
WARNING  ('Connection aborted.', gaierror(-2, 'Name or service not known'))

Yeah, DNS is not resolving.

New server name is https://euapi.sems.com.cn/api/

verified, globalapi.sems.com.cn working fine again.
euapi doesn't resolve for me.


Add a TMUX layer

Add a layer for TMUX. Keys should do the same thing that they do in the vim layer.
Just to clarify, the only keys that matter are the movement and resizing keys. Register and other vim-specific functionality shouldn't be replicated, for obvious reasons.

Fixed by a86feb6cb7fc0fede1624b70f99a0d78108bd816


fix deployment operator helm template

BOT NOTES:
resolves https://github.com/solo-io/skv2/issues/236

btw i have this fixed in https://github.com/solo-io/skv2/pull/248


Field ignored if name is "id" and is a PK regardless of auto_increment

I'm facing an issue with the bulk insert for this struct:
type GeoObject struct {
	ID               uint32  `json:"-" gorm:"column:id;primary_key;auto_increment:false"`
	CountryCode      string  `json:"countryCode" gorm:"type:varchar(2);column:country_code"`
	PostalCode       string  `json:"postalCode" gorm:"type:varchar(10);column:postal_code"`
	Latitude         float32 `json:"latitude" gorm:"column:latitude"`
	Longitude        float32 `json:"longitude" gorm:"column:longitude"`
...
}

The field ID is defined as the primary key but with an explicit auto_increment:false as the app sets it by itself based on another counter.
Even with valid entries like
{ID:7 CountryCode:cn PostalCode:510000 Latitude:23.12472 Longitude:113.23861... the insert fails with MySQL returning the error: Insert failed Error 1364: Field 'id' doesn't have a default value.
Looking at the code, I see that fields with the name id and set as a PK are ignored by extractMapValue, regardless if the column has an auto_increment or not.
It is nonetheless a valid definition to have a table with a column id set as a PK with no auto_increment.

@iBeb
Thank you for the report. The following commits addressed the problem.
https://github.com/t-tiger/gorm-bulk-insert/commit/7b3d108c15e2e107b8790a5ebceafbf74f8a7685
As a result, primary_key which is not auto_increment will use the set value.


Daemon connection breaks because of a trailing "<"

When trying
let daemon = monerojs.connectToDaemonRpc("http://localhost:18081", "username", "password");
let height = await daemon.getHeight();

the console logs an error:
SyntaxError: Unexpected token '<'
I am sure it has nothing to do with my code, it only appears when pasting in the monero lib code.

Unrelated, but it may be worth investigating
Needs multisig export info from more participants
when syncing a 2/3 multisig wallet with just one msInfo, requesting to have the export ms data from both users when you actually just need one msInfo to perform the operation.

https://github.com/monero-ecosystem/monero-javascript/commit/1bff0aa2e97e33fc9f06f14bda883a915e8c7f8b should resolve the unexpected token issue.
Regarding multisig, the library should be consistent with monero-wallet-rpc which gives the error Needs multisig export info from more participants if the number of imported peer multisig hexes is less than threshold - 1.
I observe importing 1 peer multisig hex at a time to a 2/3 wallet later gives the error "-35: Failed to sign multisig tx: This signature was made with stale data: export fresh multisig data, which other participants must then use." when signing a tx, which may be an issue in monero-wallet-rpc.  These should be tracked separately and with monero-project.

I tried to step in with a debugger, the daemon object is successfully created (more info as follows) while the error SyntaxError: Unexpected token '<' seems to appear when calling getHeight()
Print of the daemon var:
_proxyPromise: : Promise
      status: "pending"

config: Object
     password: "password"
     pollInterval: 5000
     proxyToWorker: true
     rejectUnauthorized: undefined
     uri: "http://localhost:18081"
     username: "username"

Regarding the question about multisig import, considering the case of 2/3 wallets, it is expected that two signers (thus N-1) can exchange info and complete the sync procedure. The stale data error happens with signing and submitting the transaction and isn't involved in the sync procedure (export from A then import from B, then viceversa) while the error Needs multisig export info from more participants shouldn't be raised by a 2/3 wallet as long as the import function argument is not null.
This is my current test setup:
let hex = '40324...'; // taken from RPC function export_multisig_info()
walletRpc.importMultisigHex(hex);

Ok I solved the problem of the trailing < by enabling cors on the daemon

This allowed the library to successfully connect from a browser.  https://github.com/monero-ecosystem/monero-javascript/commit/1bff0aa2e97e33fc9f06f14bda883a915e8c7f8b makes it so an informative error is given if it can't connect instead of the reported unexpected token.

and by disabling the webWorker that was somehow blocking the call

The web worker runs local daemon and wallet operations off the main thread so the browser doesn't block.  If you elaborate on this issue I can look into it further.

the error Needs multisig export info from more participants shouldn't be raised by a 2/3 wallet as long as the import function argument is not null.

This was the result of the library expecting a string[] passed to importMultisigHex().  https://github.com/monero-ecosystem/monero-javascript/commit/b20ae82a7c20a9c6c5c043164d068ff5fee83861 adds support for passing a single string.

The stale data error happens with signing and submitting the transaction

This behavior should now be consistent with monero-wallet-rpc if there is an issue here.

Can't you just use an async callback to connect to the daemon, similarly to the wallet RPC? Apparently the webWorker blocks the execution or returns an invalid handle, raising the error.
Regarding the importMultisigHex() I still get the same error. I think you need to stick to the curl example here

for a single key

curl http://localhost:18082/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"import_multisig_info","params":{"info":["...multisig_info..."]}}' -H 'Content-Type: application/json'

for multiple keys

curl http://localhost:18082/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"import_multisig_info","params":{"info":["...multisig_info...", "...multisig_info..."]}}' -H 'Content-Type: application/json'
The info parameter needs to have an array, despite having just a single element.

The info parameter needs to have an array, despite having just a single element.

I reverted importMultisigHex() back to expect string[], throwing an error if not given. https://github.com/monero-ecosystem/monero-javascript/commit/5c3878df84070e28d202e52a0adac81ec5f16c77
I don't get the error Needs multisig export info from more participants with this change in the RPC or WASM wallets.
Please let me know if you see any behavior different from monero-wallet-rpc.

I still see a wrong RPC command being sent to monero-wallet-rpc
Request: 'import_multisig_info' with params: {"info":"4d6f6e65726f206d756c7469736967206578706f727401d2cb3c8b50d5534bca0ad37756cc0067602ec3b668147..."}
Whereas it should be
{"info":["4d6f6e65726f206d756c7469736967206578706f727401d2cb3c8b50d5534bca0ad37756cc0067602ec3b668147..."]}
Probably for a faster debugging we can chat somewhere in real time and test it?

https://github.com/monero-ecosystem/monero-javascript/commit/5c3878df84070e28d202e52a0adac81ec5f16c77 should enforce passing an array.  The input type is documented here.

When calling sweepUnlocked() or createTxs(), how can I get the txKey to sign and submit the transfer?

The transaction key can be retrieved with tx.getKey().
To get unsigned tx hex for signing and submitting transactions created with createTxs() or sweepUnlock() from view-only and offline wallets:
let txs = await viewOnlyWallet.createTxs(...);
let unsignedTxHex = txs[0].getTxSet().getUnsignedTxHex()
let signedTxHex = await offlineWallet.signTxs(unsignedTxHex)
let submittedTxHashes = await offlineWallet.submitTxs(signedTxHex).

More documentation on view-only and offline wallets here.
Or of course you can call createTxs() or sweepUnlock() with relay: false and relay the returned txs later.

Sorry that's not possible.
TypeError: tx.getKey is not a function. (In 'tx.getKey()', 'tx.getKey' is undefined)
sweepUnlocked() returns an instance of MoneroTxWallet but the method getKey is missing

getKey() is a function on the type MoneroTxWallet.  createTxs() and sweepUnlocked() return  MoneroTxWallet[] so the tx key can be retrieved with:
let txs = await wallet.createTxs(...);
let txKey = txs[0].getKey()

But this is different from tx hex to sign and submit.
If the wallet is a normal, non-view-only, non-offline, non-multisig wallet, you can call createTxs() or sweepUnlocked() with relay: false then call txs[0].getMetadata() to get a string which can be relayed with relayTx() to submit the tx.
If the wallet is view-only, you can get the common tx set shared among txs to get the unsigned tx hex to sign and submit:
let txs = await viewOnlyWallet.createTxs(...);
let unsignedTxHex = txs[0].getTxSet().getUnsignedTxHex();
let signedTxHex = await offlineWallet.signTxs(unsignedTxHex);
let submittedTxHashes = await offlineWallet.submitTxs(signedTxHex);

If the wallet is multisig, you can get the common tx set shared among txs to get the multisig tx hex to sign among participants:
let txs = await multisigWallet.createTxs(...);
let multisigTxHex = txs[0].getTxSet().getMultisigTxHex();

There are tests I can point you to for usage examples if needed.

Have you tested the multisig signing process?
I struggle to get a valid txSet.
let tx = await walletRpc.sweepUnlocked({ address:'4x35...', relay: true});
console.log( tx[0].getTxSet().getMultisigTxHex() )

when sending the key to sign and submit the transaction I get an invalid multisig_txset error, something that has never happened when using monero C++ library.

Have you tested the multisig signing process?

Yes, sweepUnlocked() is tested with a multisig wallet here.

Have you tested the multisig signing process?

Yes, sweepUnlocked() is tested with a multisig wallet here.

Closing this since the original issue is resolved.  Please open another issue if further help is needed.


Document the topical facet type

Add documentation to the type section and add sections for open_value and closed_value.
This functionality was added for the topical events finder: https://www.gov.uk/government/topical-events
Rendered markdown:
https://github.com/alphagov/finder-frontend/blob/4716d57bc69d48a3ea77ba7db9ff5d7881cdbe7c/docs/finder-content-item.md

The structure of the docs make it hard to follow (was like this before). Maybe we could add an examples to the facets chapter?
https://github.com/alphagov/finder-frontend/blob/4716d57bc69d48a3ea77ba7db9ff5d7881cdbe7c/docs/finder-content-item.md#facets

@tijmenb I've rewritten this. What do you think? https://github.com/alphagov/finder-frontend/blob/65ab57a34d9599dba18d42095147b2c11e9cbe89/docs/finder-content-item.md#facets
Will swash the commits before merging.

Awesome!

Have squashed all the commits.


Plugin class_name type hints and singleton dependency loop

Describe the bug
When you have a class in a plugin that depends on a Singleton loaded by that plugin (with add_autoload_singleton) you can end up in a dependency loop very easily.
See: https://github.com/godotengine/godot/issues/42651
To Reproduce
Steps to reproduce the behavior:

Create a plugin.
Use add_autoload_singleton in the class to load a singleton.
Create a class that depends on the singleton.
Use that class as a type hint in the plugin script.

Minimal reproduction project:
plugin_class_singleton_dep_loop.zip

https://github.com/awkwardpolygons/cartographer/issues/2
https://github.com/awkwardpolygons/cartographer/issues/5
https://github.com/awkwardpolygons/cartographer/issues/7


[Notebook] Inconsistencies with notebook URI handling.

The .NET Interactive extension provides notebook support for Azure Data Studio and in that extension we use the notebook's URI to differentiate between the various open notebooks.
So far we've found three separate values being returned by the notebook's URI .toString() method:

From vscode.workspace.onDidOpenNotebookDocument the value notebook.uri.toString() returns "untitled:Notebook-1" which is as expected.  Similarly vscode.window.activeNotebookEditor.document.uri.toString().
Cell execution through the interface method azdata.nb.IKernel.requestExecute the value cell.notebook.uri.toString() returns "[object Object]" which is unexpected.
From languages services, e.g., through vscode.HoverProvider.provideHover the value document.notebook is returning null which is unexpected so we're forced to fall back to the cell's URI (e.g., "untitled:notebook-editor-0") which isn't what we want.  We expect document.notebook.uri.toString() to behave like example 1.

Looks like item 2 was conveniently fixed by my commit earlier today: https://github.com/microsoft/azuredatastudio/commit/d98a42103576df5125934cc4a14dbdb15261cf2a
I'll look into item 3.


Compose attachments

Hi,
I was wondering if there was a way for me to get the attachments of a compose object when I forward an email?

Something like this?
gmail.observe.on("compose", function(compose, type) {
       compose.attachments;
});

Thank you.

The best way to "discover" what APIs are available is using a language like TypeScript.
gmail.js has almost full type-definitions for all APIs, so at any point in your code you will get correct auto-completions and can use them to navigate the API-space your are currently working with. It's really nice :smile:
With that said, as you will discover if you do as I suggest, is that currently there is no support for any attachment-related functionality in the DOM compose API.
PRs welcome.

Thank you.


Add more common var operations

Currently we only support a very limited set of var operations: https://reflex.dev/docs/api-reference/var
We should support all the common javascript functions. For example it should be possible to do something like
rx.cond(State.my_list.contains("value"), "a", "b")

In the docs at https://reflex.dev/docs/state/vars/, there is a broken link: https://reflex.dev/docs/state/docs/api-reference/var/

In the future we will allow user-defined custom var operations instead.


some small open issues

:tada: This PR is included in version 3.4.6 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Capture geometry (waypoint) to support the creation of an observation/treatment

As a general user I want to be able to capture a geometry type (specifically a waypoint path) and have that geometry reflected as in the observation/treatment record.
Additional Context
•	This collection methods to be made available in the mobile field collection application

[x]	An initial anchor point for the observation is required
[x]	The user is required to enter a sequence of points from the anchor along a linear path. (This can be specified using the stylus as POC. Using the device GPS is secondary requirement)
[x] 	The minimum number of points is 2 (the anchor plus 1)
[ ]          Max 20 total points.
[ ] 	As each point is captured, the distance to the previous point should be greater than 1 meter for that point to be retained
[x] 	The user is prompted to enter an offset distance that provides width to the path (Minimum of 1 meter to a maximum of 10 meters.) "the user can provide 1 metre (default) to up to 10m total (so 0.5 m to 5m for either side"
[x] 	A polygon is generated about that waypoint path using that offset to both sides of the path and an area calculated
[ ] 	the resulting anchor point and polygon appear on the map. The user can accept or reject the geometry, if there is the ability to edit the buffer and the actual line this is desirable.

Acceptance Criteria

[x] Given the anchor point, When confirmed, Then the user is prompted to record the waypoints via on screen capture or stylus
[x] Once the path is complete, the user is prompted for an offset
[x] With the offset, calculate the resultant polygon and calculate the area

nice to have for this ticket or can be done in another:

[ ] The anchor point and polygon are draw accordingly. The user can accept or re-type in a new offset value.

@mikeshasko Given the line turns into a polygon, the number of (and length between) points is mute.  Given we have one geometry per record, you aren't going to see the anchor point displayed along with the polygon.  Can you confirm that the boxes checked cover off what we can call v1 of waypoint?


Uncaught ImportError in _multiarray_umath.py line 44

Aider version: 0.62.1
Python version: 3.12.4
Platform: Linux-6.8.0-48-generic-x86_64-with-glibc2.35
Python implementation: CPython
Virtual environment: No
OS: Linux 6.8.0-48-generic (64bit)
Git version: git version 2.34.1
An uncaught exception occurred:
Traceback (most recent call last):
  File "_multiarray_umath.py", line 44, in __getattr__
    raise ImportError(msg)
ImportError:
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.2 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Thanks for trying aider and filing this issue.
How did you install aider? What environment are you using? It looks like you don't have the correct set of dependencies installed. This doc may be helpful:
https://aider.chat/docs/troubleshooting/imports.html
I'm going to close this issue for now, but feel free to add a comment here and I will re-open. Or feel free to file a new issue any time.


docker updates

add Redis and ImageMagick to the backend Docker container

be aware the caching just stringifies the JSON so I think we have to be careful with certain types like bools


Cant authenticate domain as Super Admin

I have used this module successfully for 4 google domains. I have a 5th domain that I am trying to get setup now. All 5 domains have provided me with a super admin account and they are all Google Education domains. Like I said before I have this module working perfectly for 4 out of 5 domains. When I setup my 5th domain I click for click go through the exact same process but cant get authenticated. Error: "Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested." I have full control of the domain and have re done the setup almost 10 times now. I have contacted google and made sure every setting needed is enabled. I am at a loss for what to do moving forward.
I decided to try the second authentication method using OAuth instead of a service account. I created a project with all of the APIs enabled like the first step for super admins, however, instead of creating the service account I started following the steps for using a client ID. I get that working, however, it doesnt allow me to use the Admin SDK which I believe is the API I need to manage user accounts. (my end goal) I enabled all of the scopes in the list. I set the consent screen to internal as well which seemed to fix some warning signs on the page. I still get an error saying: "Insufficient Permission: request had insufficient authentication scopes."
I know this is a long shot but do you have any advice on how to move forward? I have set this tool up with no issue so many times before and I even re setup a known good domain to make sure I wasn't missing a step. It worked fine, however, this new one still wont. Is there some hidden setting I might be missing? Is there some way to make OAuth work for Admin SDK? Any advice would be life saving. I already wrote a 1k+ line script for this domain using my testing domain to build it. Now all of that is useless if I cant get authenticated...

Hey @Chris4678 - occasionally, new project permissions don't propagate immediately, leading to those erroneous errors. As you discovered, going the Client ID route is intended for non-admins or free Gmail users, so the Admin SDK isn't available that way.
I have seen it take up to a day for a new account + new project to start working correctly. Given that you've set this up successfully multiple times already, I don't doubt that there was any issue on your end with the configuration, just need to give it a little time before Google propagates the changes.

Alright I let one project sit overnight to see if that helped but nothing yet. I will re set one up and leave it over the weekend. Hopefully something magical happens :/

Keeping open until we know you're sorted!

Does the module actually connect to google to generate the config? So after waiting a while should I just use the config I generated today, or would I want to re generate the config?

The config itself (AdminEmail, P12KeyPath, etc), does not connect to Google
at all unless you're running one of the commands that call the Google SDKs.
You should just see the config start working after propagation if all was
set up as needed
On Fri, Aug 30, 2019 at 9:41 AM Chris4678<EMAIL_ADDRESS>wrote:

Does the module actually connect to google to generate the config? So
after waiting a while should I just use the config I generated today, or
would I want to re generate the config?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/scrthq/PSGSuite/issues/228?email_source=notifications&email_token=ADBCRXOMZIOABYPFQ2A6PU3QHEWP5A5CNFSM4ISNTEMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5R3G4Q#issuecomment-526627698,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADBCRXKOTBMYS6GU57BK57TQHEWP5ANCNFSM4ISNTEMA
.

--
Thank you for your time, Nate Ferrell (SCRT HQ)

I somehow managed to get a rep from the Google API team on the phone and he spent a long time going over my domain settings. It looks like something with my super admin account is broken. But the thing is I can setup the project and everything with that "broken" super admin account and then just use a different admin email in the config. Once we did this it started working. Neither I or the google tech could figure out what was different about the accounts but it is working now!

Awesome news, albeit a bit odd!! Any chance on resolving that particular account that would be useful information to pass along, @Chris4678 ?! Thank you for the updated!

I have no idea why that particular account was not working. We didn't end up changing anything about it. I just list a different admin email in the config setup and it worked. The google rep said the only thing that makes since is if I was spelling the name wrong somehow... but I copy and pasted it, checking and re checking so I don't think that was it. but who knows. If anyone else has the same issue just have them try putting a different super admin in for the admin email.

Got it! Thank you for the details!
On Fri, Aug 30, 2019 at 3:40 PM Chris4678<EMAIL_ADDRESS>wrote:

I have no idea why that particular account was not working. We didn't end
up changing anything about it. I just list a different admin email in the
config setup and it worked. The google rep said the only thing that makes
since is if I was spelling the name wrong somehow... but I copy and pasted
it, checking and re checking so I don't think that was it. but who knows.
If anyone else has the same issue just have them try putting a different
super admin in for the admin email.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/scrthq/PSGSuite/issues/228?email_source=notifications&email_token=ADBCRXP5RJ56GWWJGXZTDCTQHGAUDA5CNFSM4ISNTEMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5SXHKQ#issuecomment-526742442,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADBCRXOPOM5GSWHAWRN44HDQHGAUDANCNFSM4ISNTEMA
.

--
Thank you for your time, Nate Ferrell (SCRT HQ)


How to identify class in a multiclass problem

Hi!
I've been working in a multiclass problem but I don't know how to identify the class in the shap_values matrix. For instance, the next figure:

The plot shows class 0,1 and 2 but in the y_test I have 1, 2 and 3 instead. How can I identify the real class in the plot?
Thanks in advance!

Hey @franciscorodriguez92! If you create a list of your class names in the order that they're presented in your label/target vectors, then you can pass that list directly to the plotting function as a keyword argument.  For example, I did this recently:
class_names = ["Class A", "Class B", "Class C"]
shap.summary_plot(shap_values, features=features, feature_names=feature_names, class_names=class_names)
It worked quite nicely for me.

Hi @GarrettCGraham thanks for answering!
Do you think I could use the classes_ argument to make sure the class names are in the same order as their associate SHAP values? For example:
shap.summary_plot(shap_values, features=features, feature_names=feature_names, class_names=model.classes_)
Thanks for helping!

Sure thang!  I'm not sure which ML library you're using, but that looks like it'd work just fine! I'd just check your plot afterwards to make certain that at least a few things intuitively make sense.  If you notice that prominent features aren't explaining the classes you'd expect them to explain, that might mean your class labels were out of order.

Perfect! Thanks so much for your help!