Optimize for updates and eviction

Improve metric updates benchmarks subtantially by using AtomicUsize counters
and gauges. Furthermore, each stat is now protected by its own mutex so that
the entire stat registry need not be locked for a simple measurement.
However, the use of atomics prevents gauges from being evicted from the
registry after a report. In order to fix this, each Counter, Gauge, & Stat now
maintains a Weak reference back to the entry in the central metrics registry.
This allows the Reporter to evict all metrics that are no longer referenced by
a receiver (including counters and stats) without losing values before they are
reported.  The Report type has been simplified so that reports hold a stable
copy of data (which is now necessary that each metric is its own reference).
Other improvements include:

removal of the twox hash, which negatively impacts performance of updates
metric and label keys now must be &'string str (label values may still be dynamic)

The goal of these changes is to prioritize value updates over metric creation
over reporting (which is typically performed in an auxiliary thread).
Comparing previous behavior, we take some penalty in metrics creation over a
substantial improvement in updates:
:; cargo benchcmp ver-benchmarks ver-optimize-updates-and-gc
 name                               ver-benchmarks ns/iter  ver-optimize-updates-and-gc ns/iter  diff ns/iter   diff %   speedup
 tests::bench_counter_create        72                      91                                             19   26.39%    x 0.79
 tests::bench_counter_create_x1000  120,375                 157,364                                    36,989   30.73%    x 0.76
 tests::bench_counter_update        70                      20                                            -50  -71.43%    x 3.50
 tests::bench_counter_update_x1000  106,813                 619                                      -106,194  -99.42%  x 172.56
 tests::bench_gauge_create          68                      86                                             18   26.47%    x 0.79
 tests::bench_gauge_create_x1000    118,357                 157,145                                    38,788   32.77%    x 0.75
 tests::bench_gauge_update          62                      16                                            -46  -74.19%    x 3.88
 tests::bench_gauge_update_x1000    107,805                 613                                      -107,192  -99.43%  x 175.86
 tests::bench_stat_add_x1000        68,425                  2,581                                     -65,844  -96.23%   x 26.51
 tests::bench_stat_create           67                      84                                             17   25.37%    x 0.80
 tests::bench_stat_create_x1000     117,878                 152,086                                    34,208   29.02%    x 0.78
 tests::bench_stat_update           71                      41                                            -30  -42.25%    x 1.73
 tests::bench_stat_update_x1000     129,666                 2,981                                    -126,685  -97.70%   x 43.50

counter "target/release/examples/multithread_${kind}"  0.75s user 0.00s system 195% cpu 0.389 total
gauge   "target/release/examples/multithread_${kind}"  0.74s user 0.00s system 196% cpu 0.380 total
stat    "target/release/examples/multithread_${kind}"  1.73s user 8.11s system 105% cpu 9.332 total

(down from 4-7s)
Based on https://github.com/linkerd/tacho/pull/17.  This will be rebased from master once that branch is merged.

With twox vs without:
:; cargo benchcmp ver-optimize-updates-and-gc{-twox,}
 name                               ver-optimize-updates-and-gc-twox ns/iter  ver-optimize-updates-and-gc ns/iter  diff ns/iter   diff %  speedup
 tests::bench_counter_create        101                                       91                                            -10   -9.90%   x 1.11
 tests::bench_counter_create_x1000  173,155                                   157,364                                   -15,791   -9.12%   x 1.10
 tests::bench_counter_update        20                                        20                                              0    0.00%   x 1.00
 tests::bench_counter_update_x1000  611                                       619                                             8    1.31%   x 0.99
 tests::bench_gauge_create          98                                        86                                            -12  -12.24%   x 1.14
 tests::bench_gauge_create_x1000    179,785                                   157,145                                   -22,640  -12.59%   x 1.14
 tests::bench_gauge_update          15                                        16                                              1    6.67%   x 0.94
 tests::bench_gauge_update_x1000    650                                       613                                           -37   -5.69%   x 1.06
 tests::bench_stat_add_x1000        2,687                                     2,581                                        -106   -3.94%   x 1.04
 tests::bench_stat_create           101                                       84                                            -17  -16.83%   x 1.20
 tests::bench_stat_create_x1000     173,609                                   152,086                                   -21,523  -12.40%   x 1.14
 tests::bench_stat_update           40                                        41                                              1    2.50%   x 0.98
 tests::bench_stat_update_x1000     3,101                                     2,981                                        -120   -3.87%   x 1.04

For the benchmark to be valid, it needs to ensure the key lengths are what we expect to see in production since hash functions are often very sensitive to key length; Do we plan to see our keys grow in size to be close to the size we get from a finagle process? I did benchmark xxHash with 32-byte keys and should have added that to the benchmarks in this suite. :-(

@stevej in our case, the key of the hash is an object and not a flat string -- i'll change the tests to use a somewhat longer stat name

Benchmarks
Creates metrics with keys like:
Key {
    name: "a_sufficiently_long_name",
    labels: {
        let mut labels = Labels::default(),
        labels.insert("test_name", "bench_some_test_name".into());
        labels.insert("total_iterations", "1000".into());
        labels.insert("iterations", "1".into());
        labels
    }
}

hashmap
test tests::bench_counter_create       ... bench:         106 ns/iter (+/- 32)
test tests::bench_counter_create_x1000 ... bench:     327,000 ns/iter (+/- 330,468)
test tests::bench_counter_update       ... bench:          20 ns/iter (+/- 8)
test tests::bench_counter_update_x1000 ... bench:         751 ns/iter (+/- 177)
test tests::bench_gauge_create         ... bench:          97 ns/iter (+/- 111)
test tests::bench_gauge_create_x1000   ... bench:     297,029 ns/iter (+/- 53,881)
test tests::bench_gauge_update         ... bench:          17 ns/iter (+/- 4)
test tests::bench_gauge_update_x1000   ... bench:         804 ns/iter (+/- 181)
test tests::bench_stat_add_x1000       ... bench:       2,680 ns/iter (+/- 1,470)
test tests::bench_stat_create          ... bench:         134 ns/iter (+/- 50)
test tests::bench_stat_create_x1000    ... bench:     387,322 ns/iter (+/- 736,194)
test tests::bench_stat_update          ... bench:          43 ns/iter (+/- 10)
test tests::bench_stat_update_x1000    ... bench:       3,506 ns/iter (+/- 948)

hashmap+twox
test tests::bench_counter_create       ... bench:          99 ns/iter (+/- 34)
test tests::bench_counter_create_x1000 ... bench:     345,992 ns/iter (+/- 314,778)
test tests::bench_counter_update       ... bench:          20 ns/iter (+/- 11)
test tests::bench_counter_update_x1000 ... bench:         744 ns/iter (+/- 181)
test tests::bench_gauge_create         ... bench:         102 ns/iter (+/- 25)
test tests::bench_gauge_create_x1000   ... bench:     333,148 ns/iter (+/- 61,754)
test tests::bench_gauge_update         ... bench:          15 ns/iter (+/- 2)
test tests::bench_gauge_update_x1000   ... bench:         704 ns/iter (+/- 128)
test tests::bench_stat_add_x1000       ... bench:       2,649 ns/iter (+/- 362)
test tests::bench_stat_create          ... bench:         105 ns/iter (+/- 75)
test tests::bench_stat_create_x1000    ... bench:     366,688 ns/iter (+/- 84,431)
test tests::bench_stat_update          ... bench:          41 ns/iter (+/- 12)
test tests::bench_stat_update_x1000    ... bench:       3,310 ns/iter (+/- 1,243)

ordermap
test tests::bench_counter_create       ... bench:         104 ns/iter (+/- 20)
test tests::bench_counter_create_x1000 ... bench:     319,984 ns/iter (+/- 97,608)
test tests::bench_counter_update       ... bench:          21 ns/iter (+/- 7)
test tests::bench_counter_update_x1000 ... bench:         741 ns/iter (+/- 173)
test tests::bench_gauge_create         ... bench:         106 ns/iter (+/- 21)
test tests::bench_gauge_create_x1000   ... bench:     322,976 ns/iter (+/- 172,652)
test tests::bench_gauge_update         ... bench:          16 ns/iter (+/- 6)
test tests::bench_gauge_update_x1000   ... bench:         739 ns/iter (+/- 176)
test tests::bench_stat_add_x1000       ... bench:       2,660 ns/iter (+/- 215)
test tests::bench_stat_create          ... bench:          94 ns/iter (+/- 75)
test tests::bench_stat_create_x1000    ... bench:     296,486 ns/iter (+/- 344,601)
test tests::bench_stat_update          ... bench:          45 ns/iter (+/- 8)
test tests::bench_stat_update_x1000    ... bench:       3,219 ns/iter (+/- 1,058)

ordermap+twox
test tests::bench_counter_create       ... bench:         120 ns/iter (+/- 29)
test tests::bench_counter_create_x1000 ... bench:     336,946 ns/iter (+/- 24,545)
test tests::bench_counter_update       ... bench:          20 ns/iter (+/- 8)
test tests::bench_counter_update_x1000 ... bench:         743 ns/iter (+/- 195)
test tests::bench_gauge_create         ... bench:         109 ns/iter (+/- 39)
test tests::bench_gauge_create_x1000   ... bench:     367,048 ns/iter (+/- 82,901)
test tests::bench_gauge_update         ... bench:          17 ns/iter (+/- 2)
test tests::bench_gauge_update_x1000   ... bench:         754 ns/iter (+/- 145)
test tests::bench_stat_add_x1000       ... bench:       2,849 ns/iter (+/- 503)
test tests::bench_stat_create          ... bench:         116 ns/iter (+/- 28)
test tests::bench_stat_create_x1000    ... bench:     363,529 ns/iter (+/- 78,625)
test tests::bench_stat_update          ... bench:          45 ns/iter (+/- 23)
test tests::bench_stat_update_x1000    ... bench:       3,409 ns/iter (+/- 1,907)

Comparisons
hashmap vs hashmap+twox
 name                               hashmap ns/iter  hashmap+twox ns/iter  diff ns/iter   diff %  speedup
 tests::bench_counter_create        106              99                              -7   -6.60%   x 1.07
 tests::bench_counter_create_x1000  327,000          345,992                     18,992    5.81%   x 0.95
 tests::bench_counter_update        20               20                               0    0.00%   x 1.00
 tests::bench_counter_update_x1000  751              744                             -7   -0.93%   x 1.01
 tests::bench_gauge_create          97               102                              5    5.15%   x 0.95
 tests::bench_gauge_create_x1000    297,029          333,148                     36,119   12.16%   x 0.89
 tests::bench_gauge_update          17               15                              -2  -11.76%   x 1.13
 tests::bench_gauge_update_x1000    804              704                           -100  -12.44%   x 1.14
 tests::bench_stat_add_x1000        2,680            2,649                          -31   -1.16%   x 1.01
 tests::bench_stat_create           134              105                            -29  -21.64%   x 1.28
 tests::bench_stat_create_x1000     387,322          366,688                    -20,634   -5.33%   x 1.06
 tests::bench_stat_update           43               41                              -2   -4.65%   x 1.05
 tests::bench_stat_update_x1000     3,506            3,310                         -196   -5.59%   x 1.06

hashmap vs ordermap
 name                               hashmap ns/iter  ordermap ns/iter  diff ns/iter   diff %  speedup
tests::bench_counter_create        106              104                         -2   -1.89%   x 1.02
tests::bench_counter_create_x1000  327,000          319,984                 -7,016   -2.15%   x 1.02
tests::bench_counter_update        20               21                           1    5.00%   x 0.95
tests::bench_counter_update_x1000  751              741                        -10   -1.33%   x 1.01
tests::bench_gauge_create          97               106                          9    9.28%   x 0.92
tests::bench_gauge_create_x1000    297,029          322,976                 25,947    8.74%   x 0.92
tests::bench_gauge_update          17               16                          -1   -5.88%   x 1.06
tests::bench_gauge_update_x1000    804              739                        -65   -8.08%   x 1.09
tests::bench_stat_add_x1000        2,680            2,660                      -20   -0.75%   x 1.01
tests::bench_stat_create           134              94                         -40  -29.85%   x 1.43
tests::bench_stat_create_x1000     387,322          296,486                -90,836  -23.45%   x 1.31
tests::bench_stat_update           43               45                           2    4.65%   x 0.96
tests::bench_stat_update_x1000     3,506            3,219                     -287   -8.19%   x 1.09

ordermap vs ordermap+twox
 name                               ordermap ns/iter  ordermap+twox ns/iter  diff ns/iter  diff %  speedup
 tests::bench_counter_create        104               120                              16  15.38%   x 0.87
 tests::bench_counter_create_x1000  319,984           336,946                      16,962   5.30%   x 0.95
 tests::bench_counter_update        21                20                               -1  -4.76%   x 1.05
 tests::bench_counter_update_x1000  741               743                               2   0.27%   x 1.00
 tests::bench_gauge_create          106               109                               3   2.83%   x 0.97
 tests::bench_gauge_create_x1000    322,976           367,048                      44,072  13.65%   x 0.88
 tests::bench_gauge_update          16                17                                1   6.25%   x 0.94
 tests::bench_gauge_update_x1000    739               754                              15   2.03%   x 0.98
 tests::bench_stat_add_x1000        2,660             2,849                           189   7.11%   x 0.93
 tests::bench_stat_create           94                116                              22  23.40%   x 0.81
 tests::bench_stat_create_x1000     296,486           363,529                      67,043  22.61%   x 0.82
 tests::bench_stat_update           45                45                                0   0.00%   x 1.00
 tests::bench_stat_update_x1000     3,219             3,409                           190   5.90%   x 0.94

hashmap+twox vs ordermap
 name                               hashmap+twox ns/iter  ordermap ns/iter  diff ns/iter   diff %  speedup
 tests::bench_counter_create        99                    104                          5    5.05%   x 0.95
 tests::bench_counter_create_x1000  345,992               319,984                -26,008   -7.52%   x 1.08
 tests::bench_counter_update        20                    21                           1    5.00%   x 0.95
 tests::bench_counter_update_x1000  744                   741                         -3   -0.40%   x 1.00
 tests::bench_gauge_create          102                   106                          4    3.92%   x 0.96
 tests::bench_gauge_create_x1000    333,148               322,976                -10,172   -3.05%   x 1.03
 tests::bench_gauge_update          15                    16                           1    6.67%   x 0.94
 tests::bench_gauge_update_x1000    704                   739                         35    4.97%   x 0.95
 tests::bench_stat_add_x1000        2,649                 2,660                       11    0.42%   x 1.00
 tests::bench_stat_create           105                   94                         -11  -10.48%   x 1.12
 tests::bench_stat_create_x1000     366,688               296,486                -70,202  -19.14%   x 1.24
 tests::bench_stat_update           41                    45                           4    9.76%   x 0.91
 tests::bench_stat_update_x1000     3,310                 3,219                      -91   -2.75%   x 1.03

Why not FNV? :)

this was all rolled into #20


TypeScript Error on application.start({ moduleName: "main-page" });

After cloning and running through the install instructions, the CLI is throwing the error...
/Users/burkeholland/dev/nativescript/template-hello-world-ng/app/app.ts(2,1): error TS2346: Supplied parameters do not match any signature of call target.

Steps to reproduce...

Clone template-hello-world-ng into a new directory
cd into that directory
npm install
tns platform add ios
tns run ios --emulator

+1 too

@burkeholland @aderbas Can you try again. @hdeshev just pushed an update to Angular beta 1 and things are working for me.

Not seeing this error anymore. Got new ones. :)


[Idea] Register monsters models

I assume that the monsters have the same hierarchy as the player controller when it comes to the body
So It would be easy, create a list of RegisteredMonsterModels
Create a RegisterMonsterModel that takes the type of the monster and the type of the model
And voila

Actually It may take more code, looking into EnemyAI, there is an array of skinned mesh renderer
Maybe we can get the component like with the player ?

It's true that almost everything we do in the regular body replacement applies to all model replacements in general, and if you've noticed, PlayerControllerB is used almost exclusively for first person changes and LODS, which aren't necessary for monsters.
The issue is that monsters aren't necessarily humanoid, and we will need to find a generalized way to encode armatures to and from the monster armatures.
The way we achieve this with players is with the humanoid avatar. It's possible that we can achieve some kind of jank with humanoid avatars to achieve similar results, but the number of monster specific patches we would need is a workload I can't do right now.
If you want to try this yourself, I can give you a few guidelines to work with from my own ruminations on the topic.

At least we can replace the coil-head and the bracken as they are humanoid, right?

I don't have the time to work on that right now, but you or anyone else are more than free to.

After working out masked, I realized there were already lots of enemy replacement mods out there, so an API isn't really needed.


can i use winndows 11?

What is your question?
can i

si

no you have to use windows 14

No, you have to use PlayStation 1

idk but maybe yes

so was the answer ever yes or...

so was the answer ever yes or...

You won't be able to believe it and you will be in a complete state of shock that your chair or armchair will shake, but yes... You can use windows 11

so was the answer ever yes or...

You won't be able to believe it and you will be in a complete state of shock that your chair or armchair will shake, but yes... You can use windows 11

my god! YAY

so was the answer ever yes or...

You won't be able to believe it and you will be in a complete state of shock that your chair or armchair will shake, but yes... You can use windows 11

MY CHAIR IS SHAKING RIUGHT NOW

so was the answer ever yes or...

You won't be able to believe it and you will be in a complete state of shock that your chair or armchair will shake, but yes... You can use windows 11

MY CHAIR IS SHAKING RIUGHT NOW

holy fuck... Scotch tape will help you
you need to stick with tape your chair to the floor! It helped me

so was the answer ever yes or...

You won't be able to believe it and you will be in a complete state of shock that your chair or armchair will shake, but yes... You can use windows 11

my god! YAY

ohh.. this bro is so happy, as if it is his the best day ever


Backward node

I've made a loop in my system:

But it's not pretty, especially the connections. I wonder, will there be a backward node so that I can make the connection circle around back to the beginning of the loop?

I've found a nice example:
https://github.com/rgthree/rgthree-comfy?tab=readme-ov-file#reroute

I hope I can use these kind of extension in LiteGraph...

https://github.com/rgthree/rgthree-comfy/blob/37d8759dbff2c7bb1d252c3881eeb34ffd00f288/src_web/comfyui/utils.ts#L231


IOS error Unexpected CFBundleExecutable Key

Thanks for this nice plugin. The Application Loader from Apple returns this error.
"Unexpected CFBundleExecutable Key. The bundle at 'Payload/Test.app/iSpeechSDK.bundle' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist using a CFBundlePackageType of BNOL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue."

thanks for reporting, I'll check if there is a new iSpeech SDK available and will update the plugin

Thanks you so much!!

I've just updated iSpeech SDK, let me know if it fixed your issue

Thank you so much!!!!! It works now!

I just tried to submit my app and got the same error, how did you fix it.

Hi, I use Appery to build my apps, so I don't know much of what happens in the background. I just loaded the updated plugin and the error on submission went away.
I would not make any changes to configuration files (info.plist), others had reported this error for other plugins. The error has to do with changes recently implemented by Apple and it can be solved by some changes in the plugin itself

Hi, i have the same error. Somebody help me fix it. Thanks

I've removed the CFBundleExecutable key from the iSpeechSDK.bundle Info.plist to
allow submissions to apple store.

Im unfortunately encountering this same issue now.. latest of cordova, xcode and your plugin... any thoughts?  Same issue and checked bundle info.plist file and theres no key by that name... am I possibly looking in the wrong place?

And quick note, I am able to test the application using xcode when I run test, but when I try to validate or upload to apple to get in my test environment, I get the error mentioned above, preventing me from upload.  Desperately in need of help! :) Please please!
And GREAT GREAT PLUGIN!!! on contrary to what others might think, you've saved my project!

I updated the SDK and forgot to check if iSpeech had already deleted that key, and they haven't...
I have contacted them and also removed the key for now. Thanks!


Document expected behavior of tests locally

Some of the tests (especially Chemistry test) are expected to fail locally. We should document this, such that new contributors, who runs the test locally, do not worry about failing test that are suppose to fail.

Thanks for raising the issue, @SorenFrohlich! Please go ahead and tackle it! :smile:

Maybe as a second step, it might be worth adding logic to skip these tests programmatically in the context you don't expect them to be working.

Closed by #193.


Try multiple URLs at once, this is awful

Relates to #65

Codecov Report

Merging #66 (f122265) into master (1b3f4f4) will decrease coverage by 0.09%.
The diff coverage is 60.34%.

@@            Coverage Diff             @@
##           master      #66      +/-   ##
==========================================
- Coverage   61.53%   61.43%   -0.10%
==========================================
  Files          25       25
  Lines        2033     2077      +44
==========================================
+ Hits         1251     1276      +25
- Misses        521      537      +16
- Partials      261      264       +3

Impacted Files
Coverage Δ

config/util.go
60.71% <0.00%> (-20.24%)
:arrow_down:

util/http.go
62.50% <25.00%> (-37.50%)
:arrow_down:

client/client.go
53.03% <40.00%> (-1.02%)
:arrow_down:

cmd/join.go
63.63% <88.23%> (+10.93%)
:arrow_up:

Continue to review full report at Codecov.

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


Unidict compatibility problems

Because crossroads gears are oredictionary, it causes the unidict mod from disabling all crossroads gear recipes and hiding them in NEI/JEI thus making rotary impossible since Crossroads doesn't work with other mods gears.

I see 3 solutions to this. Either I remove oreDict from the gears (Which I don't want to do, oreDict being an intended feature), the user configures unidict to allow Crossroads gears, or the UniDict dev does something on there end to make it possible to mark a recipe as crucial. As I'm not going to remove oreDict from the gears, that means there's nothing I can really do.

Just want to add in a note for whoever still has this issue:
UniDict uses a priority system in its config file. The higher the mod id is in its internal list, the higher priority it will be. Crossroads is not supported by Unidict, therefore it has no integrated priority. The user can just manually input the Crossroads on top of the priority list, and it should work fine.
This is also relevant when using Instantunify or other similar mods, since it pulls its settings directly from UniDict, literally disabling the use of Crossroad's regular gears. Toggle and Large Gears still work as intended.


Dom id functionality

Allow the user to specify the DOM id for the wrapper div of the wizard (Issue 121)

@ksidibe can you please open this PR on master branch. Develop branch was for experiments. Master branch is the source of truth for the package.

@cristijora, duly noted.
I just submitted a new PR against master.


feat(rdb): update GORM v2

What did you implement:
GORMv2 has been released, so update it.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
$ make clean-integration

$ git stash save
$ make build
$ mv ./go-cve-dictionary integration/go-cve.new
$ git checkout upstream/master
$ patch -p1 < for_master.patch
$ make build
$ mv ./go-cve-dictionary integration/go-cve.old
$ git reset --hard
$ git checkout update-gormv2
$ git stash apply stash@{0} && git stash drop stash@{0}

$ make fetch-rdb && make fetch-redis
$ make diff-server-rdb && make diff-server-redis && make diff-server-rdb-redis

for_master.patch

diff --git a/db/db.go b/db/db.go
index 28d32b5..9523ef5 100644
--- a/db/db.go
+++ b/db/db.go
@@ -364,7 +364,16 @@ func filterCVEDetailbyCPEURI(uri string, d *models.CveDetail) error {
 		for _, cpe := range nvd.Cpes {
 			matched, err := match(uri, cpe.CpeBase)
 			if err != nil {
-				return err
+				log.Debugf("Failed to match. err: %s, uri: %s, CpeBase: %#v", err, uri, cpe.CpeBase)
+
+				// Try to exact match by vendor, product and version if the version in CPE is not a semVer style.
+				ok, err := matchExactByAffects(uri, nvd.Affects)
+				if err != nil {
+					return err
+				}
+				if ok {
+					matched = true
+				}
 			}
 			if matched {
 				d.Nvd = append(d.Nvd, nvd)
@@ -379,7 +388,7 @@ func filterCVEDetailbyCPEURI(uri string, d *models.CveDetail) error {
 		for _, cpe := range jvn.Cpes {
 			matched, err := isSamePartVendorProduct(uri, cpe.URI)
 			if err != nil {
-				return err
+				continue
 			}
 			if matched {
 				d.Jvn = append(d.Jvn, jvn)

Checklist:
You don't have to satisfy all of the following.

[ ] Write tests
[ ] Write documentation
[x] Check that there aren't other open pull requests for the same issue/feature
[x] Format your source code by make fmt
[x] Pass the test by make test
[x] Provide verification config / commands
[x] Enable "Allow edits from maintainers" for this PR
[x] Update the messages below

Is this ready for review?: YES
Reference

I have run the Integration test and confirmed that there is no difference between the master and this pull request.


Do Dragonfly consider to use ipfs?

Why you need it?

Looks ipfs has better performance than P2P original.

How it could be?

Netflix use ipfs to distribute docker images https://blog.ipfs.io/2020-02-14-improved-bitswap-for-container-distribution/
Other related information

Refer https://blog.ipfs.io/2020-04-28-go-ipfs-0-5-0/

It looks good. We can create a workgroup for those who are interested to do investigation about IPFS.

It looks cool, I'm really into the subject.

I will create the workgroup about 'Dragonfly with IPFS' if anyone volunteers to take charge of it.


Remove srun from SLURM submission script?

The submission script we use currently has a line like
srun /some/python -m fractal_server.app.runner._slurm.remote /some/path/cfut.in.xxx.pickle

Some unexpected error appeared in the local CI (something related to runpy failing upon a certain import from sqlalchemy), which is unclear (since logging in into the container and importing that same module works). Removing srun from the sbatch script may actually solve this issue, since that one would be same command that works from the terminal from inside the container.
Besides, this raises a relevant question: is the srun part doing anything special there? I think it doesn't, since this is already part of a sbatch submission (and since we don't have to combine different commands, or to assign special slurm options). We can probably remove it, independently on the CI issue mentioned above.
(to be verified)

Since this turned out to not being the actual CI-failure reason, I am putting srun back as part of #475 (see bf83675ec32edbb2af6447bfc6045f9603f51c58).
This is likely not necessary, but it's just to avoid handling it at this point.


Running a non elixir task?

How do I run perform_async() for a task written in another language, e.g. python?

You should be able to do this is by sending the job to a queue the python client is pulling from.
Do you have an example of how you're trying this?

@swelham thanks for the reply! In my concrete example I'm trying to trigger an NLP python job on another server, but for simplicity let's assume I want to call this python function registered as "adder" (https://www.mikeperham.com/2019/01/08/using-faktory-with-python/):
def adder(x, y):
    logging.info("%d + %d = %d", x, y, x + y)

w = Worker(queues=['default'], concurrency=1)
w.register('adder', adder)
w.run()

BTW here is how the ruby lib handles this: https://github.com/contribsys/faktory/issues/259

Thanks for the clear example 🙂
I believe all we're missing here is the ability to override the jobtype sent to Faktory. I have opened a PR (#113) that fixes this and should solve your problem.
Once that's merged I will push up a new release.

Great, thanks a lot!


cannot get the urdf model of the given link

It seems that the link is dead. Could you share a new link?
Thanks

The links are fixed, sorry about that.


Advanced Search

It looks like this breaks some of our filterchain tests. We'll need to investigate and fix before further review.


Simplify RankEvalResponse output

https://www.elastic.co/guide/en/elasticsearch/reference/current/release-notes-6.2.0.html
Rank Evaluation: Simplify RankEvalResponse output - https://github.com/elastic/elasticsearch/pull/28266

Closing due to age/inactivity. Code-gen focus.


Progress monitoring

Hello I just want to ask if the following methods are blocking methods:
Pix tPix = PixConverter.ToPix(img);
Page tPage = engine.Process(tPix);
using (var iter = tPage.GetIterator())...
Because even if I put some codes between them to let the user know that the app is currently processing the image and not lagging (ex. progress bar) any updates are only applied after recognition of text.
Is there a way to implement this?
Just to be clear I am trying to show an Indeterminate progressbar before the methods stated above and to hide the progressbar once the text recognition is done.
Thanks

I am not 100% sure, but it seems that engine.Process does all recognition job and iterator only walks through the produced data structures (if I understood PageIterator correctly.
So you will probably want to wrap engine.Process(tPix) inside Task and show some kind of "please wait" indicator.
It seems like the actual OCR progress reporting functionality can be found in tesseract, but sources of this C# wrapper does not contain any entry of string "Progress", so it is probably not implemented.

No progress monitoring isn't currently supported. I believe there was a
pull request with an example implementation but I haven't got around to it
and the source has since changed due to other functionality.
On Thu., 16 Aug. 2018, 01:37 Georgii Pelageikin<EMAIL_ADDRESS>wrote:

I am not 100% sure, but it seems that engine.Process does all recognition
job and iterator only walks through the produced data structures (if I
understood PageIterator
https://github.com/tesseract-ocr/tesseract/blob/a80a8f17bb32be8bdd5124057219620b711491a7/src/ccmain/pageiterator.cpp
correctly).
So you will probably want to wrap engine.Process(tPix) inside Task and
show some kind of "please wait" indicator.
It seems like the actual OCR progress reporting functionality can be found
in tesseract, but sources of this C# wrapper does not contain any entry of
string "Progress", so it is probably not implemented.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/charlesw/tesseract/issues/430#issuecomment-413237018,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPzyD0DfH4jPT59SdzKKAqoBBVjCeOnks5uREAvgaJpZM4Vgjwj
.


Animate to and rotate around a point in lower half of the screen

Issue Type
[x] Question
[ ] Bug
[x] Improvement
[ ] Build system related
[ ] Performance
[ ] Documentation
I am trying animateTo to go to a point roughly 2/3 down the screen (rather than in the middle) to show more space in front of when map is rotated to the user's heading. It seems I need to override MapController but it there is no setter. Or maybe I am missing some obvious solution?

I found setExpectedCenter(lastLocation.toGeoPoint(), 0, 300) which (kind of) shifts the center, yet there is not equivalent animateTo (which looks more neat).
When I set mapOrientation <> 0 (rotate the map to compass) the point is shifted 300 points but not down the screen... and the rotation happens around the "middle of the screen" and not the "center" due to /2 hardcoded in:
	private void invalidateMapCoordinates(int left, int top, int right, int bottom, boolean post) {
		mInvalidateRect.set(left, top, right, bottom);

		final int centerX = getWidth() / 2;
		final int centerY = getHeight() / 2;

		if (this.getMapOrientation() != 0)
			GeometryMath.getBoundingBoxForRotatatedRectangle(mInvalidateRect, centerX, centerY,
					this.getMapOrientation() + 180, mInvalidateRect);

Clarification. The effect I am after is: the map (rotated to direction of vehicle's movement) would show more space in front of the vehicle.

there was an open branch on a feature related to this. Someone had opened a PR but never provide a demo or instructions on how to use it. I never got it to work correctly but maybe someone else can. I think it was called advanced navigation or something to that effect

@pasniak Let me rephrase your OP.
So far the most comprehensive version of MapController.animateTo has the following parameters, and its reference is the center of the MapView:
    final IGeoPoint point, final Double pZoom, final Long pSpeed,
    final Float pOrientation, final Boolean pClockwise

You'd like to add the following parameters:
    final int pOffsetX,
    final int pOffsetY

And have it work exactly the same, except that a pixel offset is applied to the MapView.
Working on it. It should be quick.

@pasniak Just PR'ed #1306.
Works OK with an orientation of 0, but I'm not sure if it suits your needs when the map is oriented.

The point of this humble request is for display work when map rotates to compass or direction of movemement (so more space ahead - in movement's direction - is visible).

@pasniak I'm not sure I can visualize exactly what you want.
What I did in the new "More Samples / Events / Animate To with Offsets" is something like that, with a (0, 200) pixel offset:

...with an orientation of 0, and the next one is with an orientation of -30°:

The red line goes from the center of the screen (previous animateTo target) to the GeoPoint we're animating to.
Do those screenshots suit you? Would you prefer the red line to have always the same orientation, meaning basically that regardless of the map orientation, the GeoPoint animated to will always be at the same pixel position on the screen?

Would you prefer the red line to have always the same orientation, meaning basically that regardless of the map orientation, the GeoPoint animated to will always be at the same pixel position on the screen?

Exactly yes!

@pasniak Something like that, then:

@pasniak Feel free to test my latest PR.

I played with animateTo with offset but I got close to the desired effect is by only overriding setExpectedCenter:
    override fun setExpectedCenter(pGeoPoint: IGeoPoint?) { // not needed?
        super.setExpectedCenter(pGeoPoint, 0, 500)
    }

    override fun setExpectedCenter(pGeoPoint: IGeoPoint?, pOffsetX: Long, pOffsetY: Long) {
        super.setExpectedCenter(pGeoPoint, pOffsetX, 500)
    }

Maybe I am doing sth wrong but my animateTos are strange...:

Debugging it is a bit tough. At first the maps seems scrolled twice offset then  the position is offset the right amount 500 or sth like that :)
I call animateTo from few locations in the app and overriding setExpectedCenter seemed today like good central place to try setting the map's center offset.

@pasniak Can we at least agree on the fact that the behavior of the "More Samples / Events / Animate To with Offsets" demo matches the expectations?

The reason I tried the above was the "Animate To with Offsets" works weirdly when I changed it to set map orientation the heading between the points; it does not move in straight lines but in curved circles between points....

I can explain the curve effect: in order to take into account the map orientation (when not 0), I apply a mix of the offset angle (in a vertical case 90 or -90) and the orientation, with cos and sin.
Besides the curve effect during the animation, is the Marker correctly positioned at the end of the animation?

Yes, the position is correct.
The curves are appearing when:
        final Float orientation = mIndex>0 ? (float) mList.get((mIndex - 1)%mList.size()).bearingTo(mList.get(mIndex%mList.size())) : null;

Maybe in the beginning I got fixated on animateTo because the positioning is there?
IMHO the offset seems map feature independent from position, just like orientation and better to set it along mapView.setMapOrientation, basically I'd want to set offset once and with every animateTo call. At least this is my use case (other use case where you'd want offset in animateTo is maybe leave space for the label)

If I understand well, it would be something like mapView.setMapCenterOffset(int pixelX, int pixelY):

the normal behavior of mapView.setExpectedCenter(GeoPoint) is to make that GeoPoint match the center of the screen
with the offsets, we can make it match any other pixel of the screen

Is that what you have in mind?
Btw I won't be able to work on it before June, next week I'm on the Way of Saint-James.

That is allright.  Here's how I would add it to my code:
        private val gpsListener = rxBusSubscribe<GPSEvent> {
...
                mapViewWrap.setOrientation(this.loc.bearing)
                mapViewWrap.setMapCenterOffset(0, 500) // most likely 1/3 of screen height or speed dependant
            }
        }

@pasniak Just PR'ed #1353 - feel free to test it.

Fixed by #1353


[WIP] don't Copy() Node

Part of #1730.

This reduces CPU usage by ~15% in my tests.
@2opremio This currently fails a couple of unit tests. Can't work out why. Mind taking a look?

This currently fails a couple of unit tests. Can't work out why. Mind taking a look?

Not an expert on the rendering pipeline, but I will take a look.

I see a very minor improvement in CPU consumption in the Scope App in dev-c4. Maybe I wasn't interacting with the details panel enough (it's hard to try to do it manually and spear usage fairly between tests).

I can no longer see any statistically significant improvement between this branch and master :(

I think we should merge it anyhow to remove unneeded uses of Copy() which prompt to abuse it.
@paulbellamy Any further comments?

Nope


test_tinyllama issue with LitData and iterate_over_all

Hi there 👋
Apparently there is an issue with tinyllama test and the newest version of LitData (0.2.6).
In the release notes one can see that iterate_over_all has just been added:

Add support for iterate_over_all for the CombinedDataset by @tchaton in https://github.com/Lightning-AI/litdata/pull/122

and that's why the issue didn't appear before.
Don't know whether this issue is on LitGPT or LitData side.
Maybe @awaelchli has any thoughts?

LitData made the decision to enforce iterate_over_all by default as a breaking change. LitGPT will have to set iterate_over_all=False explicitly now and require litdata>=0.2.6. The error message should be fixed though.

Yes, the default behaviour was confusing to some users. It felt more natural all the samples should be seen, especially when used for computing the validation metrics.
As @awaelchli shared, let's add iterate_over_all to LitGPT where needed.


[TACHYON-1342] Update javadoc of tachyon.conf.TachyonConf#TachyonConf…

…(boolean)

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/7592/
Test PASSed.

+1 LGTM. thanks for the improvement!


io.grpc.StatusRuntimeException: UNAVAILABLE: Network closed for unknown reason

Alluxio Version:
2.7.2
Describe the bug
grpc client is rejected with error: io.grpc.StatusRuntimeException: UNAVAILABLE: Network closed for unknown reason
To Reproduce

Using 'cp -r' command to copy an alluxio directory from an existing cluster to a newly created cluster.
modify conf files accroding to the new environment.
./bin/alluxio-start master
then master.log reports the error messages.
Expected behavior
master should successfully start.

Urgency
low
Are you planning to fix it
maybe
Additional context
If I  untar the tarball on the machine then apply the conf files changes. It works as expected.  I suspect alluxio or grpc leave some persisted data on the directory.

Hey @lynus , do you explain what is the meaning of step 1?

@lynus  what is the error message in your master.log?


Move period inside quotation marks in pushing-commits-to-a-remote-repository#remotes-and-forks

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#remotes-and-forks
What part(s) of the article would you like to see updated?

For more information on working with forks, see "Syncing a fork".

Move period inside quotation marks to maintain consistency with other docs (and style guide)
Additional information
No response

śr., 5 cze 2024, 01:56 użytkownik Alex Nguyen @.***>
napisał:

Code of Conduct

I have read and agree to the GitHub Docs project's Code of Conduct
https://github.com/github/docs/blob/main/.github/CODE_OF_CONDUCT.md

What article on docs.github.com is affected?
https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#remotes-and-forks
What part(s) of the article would you like to see updated?
For more information on working with forks, see "Syncing a fork
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork
".
Move period inside quotation marks to maintain consistency with other docs
(and style guide
https://docs.github.com/en/contributing/style-guide-and-content-model/style-guide
)
Additional information
No response
—
Reply to this email directly, view it on GitHub
https://github.com/github/docs/issues/33344, or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5WTGQX3KTV32AS74Z2PBZTZFZH2XAVCNFSM6AAAAABIZTMVUGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZTINJWGQYTONA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


get(Range rs, Range cs)

First, thanks for sharing this code. Second, a bug report:
I think this is essentially the same as issue #10. There appears to be a bug in FloatMatrix.get(Range rs, Range cs) (FloatMatrix.class:642) which currently looks like this:
    public FloatMatrix get(Range rs, Range cs) {
        rs.init(0, rows);
        cs.init(0, columns);
        FloatMatrix result = new FloatMatrix(rs.length(), cs.length());

        for (; rs.hasMore(); rs.next()) {
            for (; cs.hasMore(); cs.next()) {
                result.put(rs.index(), cs.index(), get(rs.value(), cs.value()));
            }
        }
        return result;
    }

The problem is that only first row is actually "got". I think this is because cs needs to be reset for each row. For instance:
    public FloatMatrix get(Range rs, Range cs) {
        rs.init(0, rows);
        cs.init(0, columns);
        FloatMatrix result = new FloatMatrix(rs.length(), cs.length());

        for (; rs.hasMore(); rs.next()) {
            for (; cs.hasMore(); cs.next()) {
                cs.init(0,columns) //<--------------- NOTE CHANGE -----
                result.put(rs.index(), cs.index(), get(rs.value(), cs.value()));
            }
        }

        return result;
    }

I didn't bother to check if the same is present in DoubleMatrix

It appears that my suggested fix is the same as the fix for issue #10, so perhaps this is an obvious quick fix.


Invalid totp passcode

Today I've upgrade my docker container and the Android app to latest versions.
Unfortunately the app stopped to ask me for my 2FA Token.
On the server log i see this error:
api_1       | 2023-05-09T23:52:07.096393391Z: WEB 	▶ X.X.X.X  GET 200 /api/v1/info 139.641µs - Dart/2.17 (dart:io)
api_1       | 2023-05-09T23:52:07.362107267Z: ERROR	▶ v1/Login 6b1 Invalid totp passcode
api_1       | 2023-05-09T23:52:07.362142707Z: WEB 	▶ X.X.X.X POST 412 /api/v1/login 131.460525ms - Dart/2.17 (dart:io)

In the app I see "Error on request: Invalid totp passcode"
The problem is, the app never asks me for the code, only for Username and Password, Remember me
Is this a known issue or what could cause the problem ?
FYI It started with v0.0.23-alpha and is still a problem in v0.0.25-alpha
Many thanks in advance

Did this work before?

It still work with v0.0.22-alpha for example
For all subsequent versions it does not work anymore

see here, it will be fixed in the next release.

This is fixed in the new release, let me know if it works for you @0xCCD.

works great, ty


Tool to fix translations

This tool should merge the translations.

Looks good to the eye, but without setup instructions to create the testing conditions, that's all I can say.

I exported all translations from crowdin and it creates a folder with each branch and then the directory structure underneath.  Ran it from that root.


302 lab 10 training the ai intermediate simulation

[ ] No discrepancies across browsers. Eg. chrome vs safari
[ ] Pages pass W3C Validation for HTML (https://validator.w3.org)
[ ] CSS (https://jigsaw.w3.org/css-validator/)
[ ] Google sign-in is operational
[ ] Accessibility functions
[ ] Pages can scale without distorting page
[ ] No dead links
[ ] Navbar is consistent across the site
[ ] Pages are screen-reader accessible
[ ] Contrast meets standards for accessibility
[ ] Pages are keyboard accessible
[ ] Passes WAVE Evaluation Tool chrome extension

PR into dev/Lab-7 ? doesn't make sense, closing this.


Remove oracledb dependecy in datadog-agent

What does this PR do?
This removes the manual installation of an oracledb dependency
Motivation
Python Oracle integration variant was remove in v7.58.0 so we no longer need to install this dep in our embedded pip environment.
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge


bug forget write date_liter expr code info

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Bug: sending wrong data to createFromKeyBundle makes app crash

Describe the bug
on iOS, I sent the wrong data (JSONified UInt Array) to createFromKeyBundle and it crashed (it expects the key base64 encoded but it should not crash)
Expected behavior
No response
Steps to reproduce the bug
No response

Fixed by https://github.com/xmtp/xmtp-react-native/pull/70


Upgrade to Asciidoctor 1.5.8 and remove asciidoctorj-diagram module

This PR bumps master to asciidoctor core 1.5.8.
Additionally I removed the asciidoctorj-diagram module because we have a new repo for this now at https://github.com/asciidoctor/asciidoctorj-diagram.

FYI @pepijnve.

I think it's time for a 1.6.0-RC.1!


Custom UIView injection

I would love to be able to have a delegate method to insert a custom UIView. Any hints on how I could go about doing this?

Please check at delegate, there's some delegate can create a custom UIView. At this time this is all for now. Thanks in advance!
https://github.com/suzuki-0000/SKPhotoBrowser/blob/master/SKPhotoBrowser/SKPhotoBrowserDelegate.swift


Unable to reproduce the scores from the paper using the scripts you provide.

Hello, I tried to run the results of StructLM-7B using the script you provided, but the results are clearly inconsistent with the data in the paper.

The reproduced log and the reproduced summary are as follows.
StructLM-7B-eval.log
summary.json
Additionally, the generated prediction file is too large, so it won't be uploaded here.

I'm using the same environment as stated in the readme, with an A800 graphics card. Why is there a significant discrepancy between my reproduced results and those reported in the paper?
Additionally, in order to better identify the cause, I am providing the hash values of the weights and data that I downloaded from Huggingface.

Thanks for your comment. Let me investigate this.

In addition, when I try structLM-13B, I find that loading will also appear error, please also help to take a look.

Hi, I'm able to load structLM-13B and begin the prediction process. Can you send me a log of your error?

@azhx I'm really sorry that it cannot be used because of environmental problems, but now it can be run.
If there is a huge discrepancy in the experimental results evaluated, I will still give feedback on this issue.
Thank you for your patient answer. By the way, have you found the reason for the inconsistent results of your Struct-7B?

For StructLM-13B, the scores evaluated by the breakpoint can all be correct, and there is no much difference. What I am curious about is that your average calculation is very different from the average in the paper. I suspect that there is a deviation between the calculation method and the calculation method of the average value in the code, remember to modify it. In addition, I would like to ask what problems exist in the effect of StructLM-7B again, and whether I need to provide the prediction file predictions_predict.json to you. Thank you for your patient answer and look forward to your reply again.

What I am curious about is that your average calculation is very different from the average in the paper

Hi, the average calculation in the paper is just over the data reported in the main table. As you can see here, there are more than one metric reported for a many datasets, and those are less important. We omit them from the average. The main table averages are calculated the same way, so they are comparable. The metrics that we use in the main table are specified there.

what problems exist in the effect of StructLM-7B

At this point i suspect there is an issue with the checkpoint that was uploaded. The resources are tight on our cluster and I'm waiting for it to be freed up soon. I hope to solve this issue asap. Thanks for your continued interest, and I'll update this thread as soon as I make a change

Thank you for your patient reply and look forward to the verification result of your 7B

Hi, the result of 34B is also out, which is completely consistent with that of the paper.
I suspect that the gap in the Struct-7B may be due to the original llamatrainer training.
Anyway, thanks for your patience and help.

In addition, I found a curious phenomenon. For example, in the spider dataset, the results of 13B and 34B were surprisingly consistent.
Normally, 34B should be more emergent than 13B, but the effectiveness of instruct does not seem to be improved.
I think this is a question worth thinking about. @azhx

Hi, thanks for indicating the issue is resolved, but I will continue to update this thread when I am able to address the 7B issue. Sorry about the delay on that and thanks for your patience.

For example, in the spider dataset, the results of 13B and 34B were surprisingly consistent.

Yes, my guess about this result is that data is more important than scaling model size for performance on this niche.

Hi @kanseaveg
We have a new 7B model trained on Mistral that perfoms better than the original 7B codellama model and reproduces. please see https://huggingface.co/TIGER-Lab/StructLM-7B-Mistral/.
Note that there is a different prompting format, so you should use the file at to run the evaluation
https://huggingface.co/datasets/TIGER-Lab/SKGInstruct/blob/main/skginstruct_test_file_mistral.json
let me know if you have any questions

Thank you for your contribution to the community~ @azhx
BTW. May I ask what is the difference between the instruct data of codellama and that of mistral?

The training data we used this time omits the slimorca, and it was trained with a different prompt format.


instructions unclear for step 5 of calorie counter project of new JS curriculumn

Describe the Issue
Instructions unclear on adding the word "Lunch" on the legend tag. instructions are give to add "lunch" on id but its unclear for the Lunch inside the legend tag.

Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-form-validation-by-building-a-calorie-counter/step-5
Your code
<fieldset id="lunch">
  <legend>Lunch</legend>

</fieldset>

Expected behavior
should have clear instructions on adding "Lunch" on the legend tag
Screenshots

System

Device: [e.g. iPhone 6, Laptop]
OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04]
Browser: [e.g. Chrome, Safari]
Version: [e.g. 22]

Additional context
No response

This is a great observation! I think we would also need to specify in the instruction that the div element should have a class of input-container because that only comes in the hint too.

We can just reuse the text from the previous step.
updated description for step 5
Next, create a `fieldset` element with the `id` set to `lunch`.

Within that element, create a `legend` element with the text `Lunch`, and an empty `div` with the `class` set to `input-container`.

Note to first timers
This has been opened for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors.
If you would like to contribute and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum
Files that need to be changed
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60821c855d01b1eda3c0b.md
Happy coding

@JoyShaheb @jdwilkin4 @Njong392 I have created a pull request that addresses this issue. Here is the link: https://github.com/freeCodeCamp/freeCodeCamp/compare/main...Mishra-Pravin:freeCodeCamp:patch-1


Could not retrieve gigya-android-sdk:sdk-core:core-v6.2.1

Hello,
On Android, when I want to run my application in debug mode, I have an error to retrieve sdk-core dependency for gigya-android-sdk.

Could not find com.github.SAP.gigya-android-sdk:sdk-core:core-v6.2.1.

When I go to https://jitpack.io/com/github/SAP/gigya-android-sdk/sdk-core/core-v6.2.1/sdk-core-core-v6.2.1.pom to see the dep. I have the following error :

Build failed. See the log at jitpack.io

On release mode, I have this issue :

Failed to transform sdk-core-core-v6.2.1.aar (com.github.SAP.gigya-android-sdk:sdk-core:core-v6.2.1) to match attributes {artifactType=android-aar-metadata, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
Could not find sdk-core-core-v6.2.1.aar (com.github.SAP.gigya-android-sdk:sdk-core:core-v6.2.1).
Searched in the following locations:
https://jitpack.io/com/github/SAP/gigya-android-sdk/sdk-core/core-v6.2.1/sdk-core-core-v6.2.1.aar

Thank you in advance for your support.

It's appear the dependency is up again.
That's very strange.

Github issue. Looking into it.

Hello @tal-mi ,
Do you have any update on this issue ?
Now I have this following error when I want to release my application :

Execution failed for task ':gigya_flutter_plugin:generateReleaseRFile'.
Could not resolve all files for configuration ':gigya_flutter_plugin:releaseCompileClasspath'.
Could not find com.github.SAP.gigya-android-sdk:sdk-core:core-v6.2.1.
Required by:
project :gigya_flutter_plugin

Working on it. Its high priority.

Issue resolved. Sorry for the delay.


Clear context when source revision changed (v5.3.x fix)

This PR fixes a bug in the Canvas TileLayer renderer. It targets the v5.3.x branch, as this bug does not exist in master.
Here is a codepen example demonstrating the problem: https://codepen.io/anon/pen/ROVpQe.

Click on the "Clear LAYERS" button
Now click on the "Add roads to LAYERS" button

You will see the topp:states layer by the time new tiles with just the sf:roads layer are loaded. This is the rendering bug fixed by this PR. When making the layer visible again the old canvas context is used without checking whether the source revision has changed, leading to visual artifacts.
This PR fixes the problem by making sure the canvas context is cleared when the source revision has changed.

I just published v5.3.2 to npm. I did not update the website (we also did not do that for v5.3.1).

I just published v5.3.2 to npm

Thank you @ahocevar!


[WIP] Add self_service bower_components and node_modules to Travis cache.

Trying this out.  I'm thinking this may speed up the overall time for the self_service UI specs.
cc @jrafanie @dclarizio @AllenBW

This is tricky because the cache payload changes between different spec runs causing a lot of cache misses.  Either we'd have to put the npm install into every test suite, or "pre upload it before Travis runs" somehow on the master branch.  I'm not entirely sure.  Closing for now.


Change powershell.execute to run file in PSIC

resolves https://github.com/yatli/coc-powershell/issues/50
Now it will run the file in the PowerShell Integrated Console (PSIC) using &. If there are single quotes in the file path, it will escape those.

Dirty files:

Untitled files:

💯


How to let agent walk along custom path?

Hi there,
Is it possible to let agent walk along a custom path?
the way points on the path are guaranteeded to be valid.
Currently i let the agent to go to first way point then go to 2nd way point (and so forth), but it looks bad because it shakes a lot and try to slow down to arrive intermediate way point.
thank you.

let the  agent overrun each intemediate way point a little (for example, 1 radius farther (because agent will slowdown when it is 2 radius away from target point, found in source code)), will solve the shake and slowdown problem.


stone_module

Checks

[ ] Your YAML file has required fields as listed in Specs
[ ] All checks have passed yaml-lint passed
[ ] You agree to contribute your work under MIT license

achieved, but PR dirty


CSS for table page

I just changed the header locally (copy/paste from index).  Will upload just now.


MassTransit.TestFramework - System.TypeLoadException

Is this a bug report?
Yes, I have just updated all MassTransitv 5.1.4
I am using MassTransit.TestFramework v4.0.0 and am now getting an exception when I run my unit tests against consumers.
To note:
I am using the TestConsumeContext<T> which seems to be the source of the issue according to the attached exception.
E.g test call.
await consumer.Consume(new TestConsumeContext<OpportunityCreated>(new OpportunityCreated { Postcode = "e84dt" }));

I see the error when running with nunit.
System.TypeLoadException : Method 'get_SentTime' in type 'MassTransit.TestFramework.TestConsumeContext`1' from assembly 'MassTransit.TestFramework, Version=<IP_ADDRESS>1, Culture=neutral, PublicKeyToken=b8e0e9f2f1e657fa' does not have an implementation.    at Boom.MarketData.Specs.Consumers.Events.FetchAskingPricesMarketDataConsumerSpecs.<Should_SetAskingPrices>d__6.MoveNext()    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)    at Boom.MarketData.Specs.Consumers.Events.FetchAskingPricesMarketDataConsumerSpecs.Should_SetAskingPrices()
My consumer is pretty standard and looks like
public async Task Consume(ConsumeContext<OpportunityCreated> context)
{
	await DoStuff();
}

Can you also reproduce the problem with the lastest version?
Yes, with the latest framework version but it seems the test framework is still on version 4.0.0
Environment
Windows 10
VS 2017 professional
Dontnet core 2.0
Steps to Reproduce
Run unit test against consumer using TestConsumeContext<T>
Expected Behavior
Previous to the update all tests passed successfully
Actual Behavior
Above exception
Reproducible Demo
I can look at getting you something across if need be bt wanted to first see if there was anything obvious as I'm about to run out for the weekend.

Why didn't you update your TestFramework to the latest version as well?
https://www.nuget.org/packages/MassTransit.TestFramework/5.1.4

That is a very good point. It seems the latest version did not show up when I checked in VS for whatever reason so I assumed the latest was still 4.0.0.
I have now updated and it has resolved my issue. Sorry, and thanks for the help and a great framework.


Resource matching URI "http://api.fsm.lan/v1/user/password/reset" not found

I am having trouble getting tonic to work in my app.
in my resource file I have
/**
 * API to manage user data
 *
 * @uri /v1/user/password/reset
 *
 */

As you can see in the screenshot. I am getting a $request->getUri() of http://api.fsm.lan/v1/user/password/reset and the $uriRegex is |^/v1/user/password/reset$|
However when it runs the preg_match it does not find a match. if you go here https://regex101.com/r/kB9aN9/1 you can see that there are several problems with the regex.
So why is tonic building a regex that will not match? Am I doing something wrong with the setup?

The url should work for you, it's most likely something else wrong with your server configuration.
You can see how the regex matches here https://regex101.com/r/kB9aN9/2
A quick explanation:

Tonic matches against the URL path, not the full URL, this is to allow resources to be portable between hostnames, protocol, etc.
Tonic does not use the / delimiter for regex as URLs by design have many forward slashes in them, so instead we use the | pipe. You can use any character as the delimiter, as long as it doesn't appear unescaped within the regex, avoiding the / means we can avoid having to escape them all.

Hope this makes sense.
Check what $request->getUri() is returning, you'll probably find that something in your server setup is meaning the request URL is not ending up as you'd expect.

"Check what $request->getUri() is returning, you'll probably find that something in your server setup is meaning the request URL is not ending up as you'd expect."
Yeah, I already mentioned in the first post that $request->getUri() is returning the full path http://api.fsm.lan/v1/user/password/reset, so what setting in apache or PHP would cause it to return a full path instead of a partial?

Look inside the $_SERVER superglobal and see which is variable is the URL path in your setup, Tonic tries to have a good default but it differs between setups. Once you find it you can pass it to the Request object when you instantiate it like this:
$request = new Request(array(
  'uri' => $_SERVER['REQUEST_URI']
));


Sort popular collection alphabetically

Once done

#5384

added in this commit https://github.com/kodadot/nft-gallery/pull/5654/commits/5c663ea78d5fb4c2a49ce17e247960c2c5c35276

closed by #5654


feat: Improve highlights

This PR does a few things, each commit can be reviewed separately:

Refactor out the (expr) in favor of more explicit names
Run make generate to render the src/ files
Expand highlights queries and add folds and locals queries

Please let me know what you make of it.

lgtm

Thanks, looks great!


Replication gets stuck

What can cause replication to get stuck?
I have 3 couch instances:
couchdb: couch 1.7
couchdb1: couch 3.1.1
couchdb2: couch 3.1.1
The replicators run in the couch 3.1.1 instances (see screenshots)

I've tried restarting the couch instances several times in the past few days but can't seem to get it to make progress.

See if there are any errors in the logs or in the _scheduler/jobs for those replications
If replications use a filter and it's fairly restrictive, there could be a large number of pending changes and very few writes.
Another reason could be a validate doc update (VDU) function which is restricting writes.
Without a more details job history and/or logs it's a bit hard to tell why state looks like that


[Bug]: Citizen Sentinel Enemies dont take damage

Is there an existing issue for this?

[X] I have searched the existing issues

Have you tried to reproduce this without OP?

[X] I have tested without OP

Current Behavior
Any Sentinel doesnt take damage even if it attacks you.
Expected Behavior
Have Sentinels take spell/skill damage
Steps To Reproduce
No response
Environment
- Server Software:
- ProSkillAPI Version:
- ProMCCore Version:
- Plugins:

latest.log
No response
Anything else?
No response

This has been reported as an enhancement, #117. Though no resolution has been made as of yet. It appears that some people are able to damage Sentinels with skills without issue. What kind of skills are you using?

area of effect single damage target damage on hit nothing works vs them only meele damage with weapons

Are you in any specific non-pvp zones or anything?

no i tested this with specific pvp worlds(entire world enabled), with pvp regions. in generell it doesnt work.

Hmm. This is just an interesting one to try to tackle. I don't use Sentinels, nor am I aware of how to use it. But to debug and figure out what's going on, I'd have to set some things up and run through some tests.
Are you sure that the targeting itself is working?

Yes i have 2 mc accounts for testing and my alt got hit by every effect. so targeting for the skill itself(outside sentinel) seems to work.

targeting for the skill itself(outside sentinel) seems to work.

What do you mean by this? Could you set up a skill that launches targets in the air and make sure the Sentinel is being targeted?

i can test it on weekend, half my colleges called in sick so i got 5x 16 hour shifts this week.

@Svastojed I'm just wondering if you have any more information on this?


Missing document reference

Documentation is missing important reference to downloadable files. This is in the QuickStart part .

Thanks for letting us know. The docs are improved now.


BugFix issue #2791

Description (required)
DeleteTask (An Async task) used to be invoked on onSuccess of some other RX function, without checking the fragments current state, leading to NullPointerExceptions and possible memory leaks.
Fixes #2791 NullPointerException in MediaDetailFragment while deleting a media
What changes did you make and why?

null checks on activity before starting DeleteTask
Cancel the DeleteTask onDestroyView
Tests performed (required)

Tested {build variant. ProdDebug} on {Pixel2r} with API level {29}.

Codecov Report

Merging #2792 into 2.10-release will decrease coverage by <.01%.
The diff coverage is 0%.

@@               Coverage Diff               @@
##           2.10-release   #2792      +/-   ##
===============================================
- Coverage          5.79%   5.79%   -0.01%
===============================================
  Files               256     256
  Lines             12250   12254       +4
  Branches           1102    1103       +1
===============================================
  Hits                710     710
- Misses            11483   11487       +4
  Partials             57      57

Impacted Files
Coverage Δ

...fr/free/nrw/commons/media/MediaDetailFragment.java
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks for sharing the logs @domdomegg. I have updated the code

Tested 2.10.2-debug-bugfix/npeinmediadetailsfragment~343965336. Fixes the bug, however if the user clicks off the screen the deletion nomination is cancelled. This is better than just crashing though so I'll merge this. However might be an idea to submit an enhancement that it continues to nominate for deletion once it leaves the activity, and protects from NPEs by checking only when interacting with views.


fontMatrix parsing fix, setFont() supports negative sizes

Fixes PDF in #1049
Required lots of intermediate fixes/improvements (such as better error/message handling), but the critical ones are:

translateFont() in evaluator.js
setFont() in canvas.js
handling of spaces when reading font matrix stream in fonts.js

Interestingly these are all unrelated, but equally critical for #1049...

@pdfjsbot test

@pdfjsbot test

These are probably those intermittent Chrome errors.
@pdfjsbot test

Likely #1043

Looks good to go except for the one little error and maybe the close comments?

Fixing git-rotten branch. Should be good to merge.

@pdfjsbot makeref


OpenAI response error

I keep getting this error whenever I evaluate to a specific sample.
INFO:openai:error_code=None error_message='OpenAI response error' error_param=prompt error_type=invalid_request_error message='OpenAI API error received' stream_error=False WARNING:root:OpenAIError: OpenAI response error.
I don't know how to fix it.

is that the same as https://github.com/tatsu-lab/alpaca_eval/issues/162 ? The error message seems different, can you send me a minimal reproducible example? also pleasure update pip install -U alpaca_eval

is that the same as #162 ? The error message seems different, can you send me a minimal reproducible example? also pleasure update pip install -U alpaca_eval

Yes, it is the same issue. It's different because of my old version of alpaca_eval and openai.
Thank you for your reply.

ok then it should be solved


Display more Exception detail.

This help me tracking issue a lot.

I can't understand Chinese. Can you try in English instead?

@aquadrehz Could you elaborate a little more how it helped you?

@ur5us
I just use e to print the error traceback detail and fix the issue 2 years ago.
It's been a while so I can't remember the detail.
I would recommend merging it if it's ok.
Rejecting it would be fine as well.
I just don't want to leave it open forever, ya

@aquadrehz Allow me to rephrase my question: how did it help you to solve your problem? What information does the exception carry that helped you resolve your issue? I’m not completely opposed to merging the PR if it adds valuable detail. However, without further detail it’s hard for me to understand the value add. @chenqiongqiong kindly reviewed your code. While I can’t read (presumably) Mandarin I think what @chenqiongqiong suggested is to extend the same logic to all other exceptions. However, based on our own “wrappers” for these exception types the intention is to reduce noise. Thus, I’m curious how added that helped you? Rails itself will blow up with same exception if it can’t connect to the database.

That time I use the printed warning to check that the DB configuration is correct.

@aquadrehz Sorry for the late reply. Could you please elaborate on the following:

If not use this gem the exception would be obvious and failed tom start to app at all.

I think this is the important bit but I’m not sure I understand the issue 100% yet. How would the exception be (more) obvious if this gem wasn’t used?

@aquadrehz Could you provide a bit more info as requested in my previous comment?

Closing this PR due to lack of further communication and not clearly explaining how this PR solves problems when the database server is not running. Rails will usually handle such errors with enough warnings and errors just fine, so not sure what the problem is.


Update the gutter with validation errors

I want to get hold of YAML lint errors and perform some action based on it.
Hence i have below code.
var codeMirrorOptions = {
lineNumbers: true,
mode: 'text/x-yaml', // we are using the yaml editor
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter", "CodeMirror-lint-markers"],
foldGutter: {
rangeFinder: new CodeMirror.fold.combine(CodeMirror.fold.indent, CodeMirror.fold.comment)
},
"lint": {
"getAnnotations": checkYAMLForErrors
}
};
function checkYAMLForErrors(cm, updateLinting, options) {
var errors = CodeMirror.lint.yaml(cm);
};
The linting happens now, but the error is not shown in the gutter.
How to achieve this?

You need to add the CodeMirror-lint-markers gutter, as seen in the demo.

I have added it as seen above.
if i just have  'lint: true', i see the gutter getting updated, but with the above code it is not being shown


add require publisher authentication

add a middleware that checks whether a use has the publisher role
user role is added to user struct
require-publisher flag used to toggle feature

The role will actually be called MetricsPublisher to avoid confusion, also api keys with that role should not be able to issue queries.

@DanCech @woodsaj this should be ready to merge if you have a chance to review


crypto/x509: TestSystemVerify consistently failing

#!watchflakes
post <- goos == "windows" && pkg == "crypto/x509" && test == "TestSystemVerify"

https://build.golang.org/log/97b5cac923dc9079392efd9637b9fffa8b9f7592:
--- FAIL: TestSystemVerify (1.59s)
    --- FAIL: TestSystemVerify/Valid (0.10s)
        verify_test.go:479: unexpected error: x509: certificate signed by unknown authority
    --- FAIL: TestSystemVerify/MixedCase (0.00s)
        verify_test.go:479: unexpected error: x509: certificate signed by unknown authority
    --- FAIL: TestSystemVerify/HostnameMismatch (0.00s)
        verify_test.go:378: error was not a HostnameError: x509: certificate signed by unknown authority
    --- FAIL: TestSystemVerify/IPMissing (0.00s)
        verify_test.go:378: error was not a HostnameError: x509: certificate signed by unknown authority
    --- FAIL: TestSystemVerify/Expired (0.00s)
        verify_test.go:388: error was not Expired: x509: certificate signed by unknown authority
    --- FAIL: TestSystemVerify/RootInIntermediates (0.00s)
        verify_test.go:479: unexpected error: x509: certificate signed by unknown authority
    --- FAIL: TestSystemVerify/SHA-384 (0.02s)
        verify_test.go:514: Got 0 matches instead of 1 for expected chain [api.moip.com.br COMODO RSA Extended Validation Secure Server CA COMODO RSA Certification Authority AddTrust External CA Root]
FAIL
FAIL	crypto/x509	2.845s

(attn @golang/security @dmitshur)

I think this is something to do with an expiration — all of the builders started failing at once, even on TryBots at older base CLs (https://storage.googleapis.com/go-build-log/cd3d6904/windows-386-2016_967987aa.log).

@gopherbot Please backport at minimum the Windows text fix aspect of this issue.
This is needed to fix failing tests on release branches.

Thanks watchflakes, but commit 600d37 is before the fix in commit 21e451e.

These all appear old.


String.charCodeAt() must have a parameter

Bug Report
🔎 Search Terms
charCodeAt, string, method
⏯ Playground Link
Playground link with relevant code
💻 Code
'a'.charCodeAt() // error
//  ~~~~~~~~~ An argument for 'index' was not provided.

🙁 Actual behavior
The parameter of String.prototype.charCodeAt written in mdn can be omitted, and the default is 0.
Or is this deliberately designed like this?
🙂 Expected behavior
'a'.charCodeAt() // return 97

What I'm not sure about is, deliberately designed like this?
So I create this issue.

The parameter of String.prototype.charCodeAt written in mdn can be omitted, and the default is 0.

Well, technically they don't write that it can be omitted, but that it defaults to 0 if it's not a number:

If index is not a number, it defaults to 0.

Also note that the parameter is not marked as optional (neither in the syntax, nor in the parameters list). Compare it to the MDN entry for parseInt where radix is an optional parameter.

The parameter of String.prototype.charCodeAt written in mdn can be omitted, and the default is 0.

Well, technically they don't write that it can be omitted, but that it defaults to 0 if it's not a number:

If index is not a number, it defaults to 0.

Also note that the parameter is not marked as optional (neither in the syntax, nor in the parameters list). Compare it to the MDN entry for parseInt where radix is an optional parameter.

Thanks i got it.


Allow missing href for a tag

Thanks for this GitHub action. It is really useful.
I am wondering if it is possible to add allow_missing_href parameter available in HTMLProofer. In my case, the workflow returns lots of  "a tag is missing a reference" errors which actually can be ignored.

Done! 786bab9af8983219684cd48d573922de73faf4df


Delete v1beta3 package from api package and update code base accordingly

Description
NOTE: This is another PR from a series of PRs that deal with removing v1beta3 from operator version 1.3
This should be the last PR.

I removed v1beta3
I changed storage version to v1beta2
Fixed codebase

https://dt-rnd.atlassian.net/browse/K8S-11056

How can this be tested?
Deploy operator, test it as good as you can

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 64.26%. Comparing base (8d61dc3) to head (0746910).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@               Coverage Diff               @@
##           release-1.3    #3703      +/-   ##
===============================================
+ Coverage        63.89%   64.26%   +0.36%
===============================================
  Files              374      351      -23
  Lines            20382    18963    -1419
===============================================
- Hits             13024    12186     -838
+ Misses            6055     5524     -531
+ Partials          1303     1253      -50

Flag
Coverage Δ

unittests
64.26% <100.00%> (+0.36%)
:arrow_up:

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

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

Working on my cluster, but I triggered E2E to double check

seems okey:

LGTM, deployed to my cluster.


Reorder Tab should show indicator as to where the tab goes

VSCode Version: 1.5.2
OS Version: OS X 10.11.6

Atom:

https://github.com/Microsoft/vscode/issues/8544


Package marked as deprecated in homebrew

That package is marked as deprecated in latest version of macOS via homebrew . Do you have plan to update that to make still alive?

I dont know who submitted the homebrew one so i dont think i can update it


Starting with an invalid config should throw an error

Rasa Core version:  0.12.3
Python version: 3.6
Issue: Was accidentally starting core in interactive training mode with an invalid configuration file (the nlu config). Instead of it throwing in error it seemed to even train using the stories and domain file. It crashes only once you sent a first message and it tries to predict a next action.
This is related and shows the error: https://stackoverflow.com/questions/53301685/attributeerror-nonetype-object-has-no-attribute-index-using-rasa

Thanks for raising this issue, @wochinge  will get back to you about it soon.

@twerkmeister

Was accidentally starting core in interactive training mode with an invalid configuration file (the nlu config).

I assume you mean the policy configuration, right?
What kind of error did you put into your configuration file?


Connect Shutdown Handler Raises an Exception

Connect's shutdown handler, likely the NATS handler, throws an exception which prevents connect from closing when ctrl+c/SIGINT is sent.
I updated the uvicorn startup params in main.py to include the lifespan setting to provide a better error message:
    uvicorn_params = {
        "app": settings.uvicorn_app,
        "host": settings.uvicorn_host,
        "lifespan": "on",
        "log_config": None,

After starting connect, hit ctrl+c and the following exception appears
2021-09-01 22:02:35,935 - connect.clients.nats - DEBUG - Subscribed tls://localhost:4222 to NATS subject EVENTS.retransmit
2021-09-01 22:02:35,949 - connect.clients.kafka - DEBUG - create_topics: created topic = LFH_SYNC
2021-09-01 22:02:35,950 - uvicorn.error - INFO - Application startup complete.
^C2021-09-01 22:05:37,899 - uvicorn.error - INFO - Shutting down
2021-09-01 22:05:38,003 - uvicorn.error - INFO - Finished server process [86433]
2021-09-01 22:05:38,003 - uvicorn.error - ERROR - Exception in 'lifespan' protocol
Traceback (most recent call last):
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/uvicorn/lifespan/on.py", line 84, in main
    await app(scope, self.receive, self.send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/uvicorn/middleware/message_logger.py", line 82, in __call__
    raise exc from None
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/uvicorn/middleware/message_logger.py", line 78, in __call__
    await self.app(scope, inner_receive, inner_send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/fastapi/applications.py", line 208, in __call__
    await super().__call__(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/middleware/errors.py", line 146, in __call__
    await self.app(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/middleware/base.py", line 21, in __call__
    await self.app(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/middleware/httpsredirect.py", line 19, in __call__
    await self.app(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/exceptions.py", line 58, in __call__
    await self.app(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/routing.py", line 569, in __call__
    await self.lifespan(scope, receive, send)
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/starlette/routing.py", line 544, in lifespan
    await receive()
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/uvicorn/middleware/message_logger.py", line 58, in inner_receive
    message = await receive()
  File "/Users/tdw/.local/share/virtualenvs/connect-PVFbLzYT/lib/python3.8/site-packages/uvicorn/lifespan/on.py", line 135, in receive
    return await self.receive_queue.get()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/asyncio/queues.py", line 163, in get
    await getter
asyncio.exceptions.CancelledError

I'm currently seeing the CancelledError with "lifespan": "on" when running from the command line.  In this case, the close_internal_clients() shutdown method is never called.  Reopening this issue to investigate.


Discussion: Fine-graining the Documentation Accessibility description.

This issue tracks discussions related to the Description section of the Documentation Accessibility draft.

Description
Documentation accessibility contains issues of technical accessibility as well as readability issues with the goal to foster understanding for the widest audience of potential contributors to the project. Users of documentation have different abilities, ways of accessing or consuming documentation, requiring it to be offered in different formats that would be equally empowering these different users’ points of view. Accessibility of documentation is critical due to the role documentation plays in open source projects. Documentation is codified knowledge across various dimensions of an open source project.
Documentation on the processes and practices of the community empowers participants to contribute with certainty for how and why things are happening. It may also be on the artifacts produced by the community and as such empower participants to know where to contribute and what kind of contributions further the goals of the community.

Documentation accessibility contains issues of technical accessibility as well as readability issues with the goal to foster understanding for the widest audience of potential contributors to the project¹, without disproportionately contributing to or offsetting artificial debts on certain segments of its intended audience², without disproportionately creating or perpetuating artificial debts on certain segments of its intended audiences³. Users of documentation have different abilities, ways of accessing or consuming documentation, requiring it to be offered in different formats that would be equally empowering these different users’ points of view⁴. Accessibility of documentation is critical due to the role documentation plays in open source projects. Documentation is codified knowledge across various dimensions of an open source project.

for the widest audience of potential contributors to the project

Note — This is very common verbiage for most projects today.

, without disproportionately contributing to or offsetting artificial debts on certain segments of its intended audience

@jlovejoy:
I'd keep positive framing for this thing - it's more salient that way.

@SMotaal:
Unfortunately my problem has been positive framing === systematic filtering, can we please find a way to not delete this.

@jlovejoy:
I think my issue was with the use of "contributing" - it is correct, but I want to save it for "contributing to the project" type references!

, without disproportionately creating or perpetuating artificial debts on certain segments of its intended audiences

Note — This is the often glossed over reality that becomes immutable when someone tries to point out why documentation is actually "disabling" that way… most sadly resign to giving up, and we end up we folks thinking that they are accessible and it was just individual incompetence validated by opting for self-exclusion (ie retreat).

. Users of documentation have different abilities, ways of accessing or consuming documentation, requiring it to be offered in different formats that would be equally empowering these different users’ points of view

@GeorgLink:
this attempts to clarify that documentation needs to be tailored to the specific needs of different types of users.

Google Document

I think we may have mostly resolved this in the doc??

I believe we resolved it today.

Aside — Can we leave at least 24 hours open in the future (re dwelling thoughts please).

So let's see a real-world example about accessibility, but please, do not just take a glance, this does not work if you do not try to operate with the urgency and sense of despair one might feel if they cannot play because they got the broken controller!
I've spent a very long time slowly figuring out how to GitHub is positioning its accessibility runaround… and decided they are publically disclosing their commitments and obligations so I decided based on our meeting yesterday to start another one of those inhumane and offensive efforts to try to remember that people are nice, even when the world is telling me but not to someone like me… https://github.com/SMotaal/a11y/issues/7


light-demo has slow memory leak (CON-817)

I boot light demo let it stabilize with a wildcard report monitoring it.
Totals:
    free 81128 allocated 148396 min_free 63104 largest_free_block 65536

then five minutes later
  Totals:
    free 81132 allocated 148392 min_free 63104 largest_free_block 65536

i took the wifi router up and down
  Totals:
    free 81528 allocated 148028 min_free 63104 largest_free_block 65536

then I let it sit for two days. During those two days the monitoring wild card lost contact and then reestablished it several times. The wildcard app is on my phone, so when I went out of range of the router it lost contact.
  Totals:
    free 76084 allocated 153076 min_free 18780 largest_free_block 65536

It is slowly allocating more and more memory so something is leaking. I went from 148396 to 153076 over the course of two days. So I have lost 4680 bytes of memory. I think this is behind the packet buffer allocation failures.
I attached the change I made to light demo and the sdkconfig.
sdkconfig.txt
light.diff.txt
esp-matter 1cacb8b2fcd42c465e38317d3a63d0169460b397
I am using an esp32 dev board with PSRAM
esp-idf e088c3766ba440e72268b458a68f27b6e7d63986

In another experiment I turned on the leak tracking support in the IDF. I could not figure out how to get useful data out of it because I don't have a good place to start/stop the data collection.
leak.txt
That trace is from my code which also has BT turned on. The start/stop was done about three hours apart.
You can see what the problem is. I can't tell allocations which are two hours old from transient allocations which will be less than a second old.  Many of those entries are not leaks, they are transient allocations coming from other tasks in the system like wifi. Those transient allocations just happened to be active when I did STOP on the leak detector.  The dump info needs to include the age of the allocation. Once you have the age, the oldest ones will be the likely leaks. A two hour age will be a leak, a 1 second age transient.

BTW, I don't think (not 100% sure) it leaks just sitting there. The leaks appear to be something either with the router disconnect/reconnect or the wild card monitor disconnect/reconnect.

This could be a potential leak source: https://github.com/espressif/esp-matter/issues/656
I have not added enough debug tracking to know.

I had light example running again for 3.9 days. I need to reboot it to change config. I am running light example using common ESP32 dev boards since I have a lot of those.
Start 146,852 allocated
End 153,924 allocated
7,024 lost. For sure there is noise in these numbers due to wifi activity. Previous run lost 7,952 in 3.6 days. Previous run was likely interrupted when it had some wifi activity going on.  But there is a definite trend line due to leaks which keeps going up.
Using...
commit c707e6680ac39df56b50addfe6792d49a60f2f90 (origin/main, origin/HEAD, main)
Merge: bbdf797 9e53da8
Author: Shu Chen<EMAIL_ADDRESS>Date:   Wed Oct 18 16:10:33 2023 +0800

@jonsmirl  We are narrowing down the source of the leak

I am not seeing leaks in esp-matter anymore.


null-Facts suppress rule-execution

Hey there!
First of all: Just discovered RuleBook and I like the concept pretty much.
I'm just creating a small test-project to see what's possible and stumbled over a small uncovinient/unexpected behaviour.
I created some POJO-rules and want to execute them with
rulebook.run(facts);
The facts I create via:
NameValueReferableMap facts = new FactMap();
facts.setValue("oneFact",  "first");
facts.setValue("anotherFact", someObject);

Everything works fine so far, my rules are behaving like expected, but not when someObject is null.
Then nothing happens, no rule is triggered.
Is this intended behaviour?
I was expecting to be able to check facts to be null inside the rules themselves, but now I never get there.
Is there a different way to create the fact-map, so it works with null-values?
I helped myself now by sub-classing the FactMap like this:
private static class NullSafeFactMap extends FactMap {
    @Override
    public void setValue(String name, Object value) {
        if (value != null) {
            super.setValue(name, value);
        }
    }
}

That works for me, but I was wondering if I really need something like that.
Curious for your answers!

``

It should work with null Facts. But if you are seeing something different then I'll check it out. It's possible this could be a bug. Thanks for raising this issue.

Thanks!
Do you need a more detailed example?

If you have a complete example, that would be helpful. Thanks.

All right, here's qhat I got, I put it in a simple test-scenario:
Her the simple Rule I have. As you see it should always be executed:
package nullproblem;

import com.deliveredtechnologies.rulebook.RuleState;
import com.deliveredtechnologies.rulebook.annotation.*;

@Rule( name = "SimpleRule")
public class SimpleRule {
    @Given("status")
    private int status;
    @Given("object")
    private Object object;
    @Result
    private String result;

    @When
    public boolean when() {
        return true;
    }

    @Then
    public RuleState then() {
        result = "Rule was triggered with status=" + status + " and object=" + object;
        return  RuleState.NEXT;
    }
}

And here the corresponding tests:
package nullproblem;

import com.deliveredtechnologies.rulebook.FactMap;
import com.deliveredtechnologies.rulebook.NameValueReferableMap;
import com.deliveredtechnologies.rulebook.model.Auditor;
import com.deliveredtechnologies.rulebook.model.RuleStatus;
import com.deliveredtechnologies.rulebook.model.runner.RuleBookRunner;
import org.junit.Test;

import java.util.Map;

import static junit.framework.TestCase.assertEquals;

public class ShowNullProblemTest {
    @Test
    public void runWithNotNull() {
        RuleBookRunner ruleBook = new RuleBookRunner("nullproblem");
        NameValueReferableMap facts = new FactMap();
        facts.setValue("status", 1);
        facts.setValue("object", "A String");
        ruleBook.run(facts);
        Auditor auditor = (Auditor) ruleBook;
        Map<String, RuleStatus> auditMap = auditor.getRuleStatusMap();
        assertEquals(auditor.getRuleStatus("SimpleRule"), RuleStatus.EXECUTED);
        ruleBook.getResult().ifPresent(System.out::println);;
    }

    @Test
    public void runWithNull() {
        RuleBookRunner ruleBook = new RuleBookRunner("nullproblem");
        NameValueReferableMap facts = new FactMap();
        facts.setValue("status", 1);
        facts.setValue("object", null);
        ruleBook.run(facts);
        Auditor auditor = (Auditor) ruleBook;
        assertEquals(auditor.getRuleStatus("SimpleRule"), RuleStatus.EXECUTED);
        ruleBook.getResult().ifPresent(System.out::println);;
    }
}

When I execute the tests the "runWithNull"-tests fails, because the auditor says the rule was not executed, giving back RuleStatus.SKIPPED.
Here the result:
junit.framework.AssertionFailedError:
Expected :SKIPPED
Actual   :EXECUTED

Just let me know if you need futher information.
Regards,
Peter

Thanks for the detail. I see there is a problem with the facts filter in the rule implementation. It should be corrected by the end of this weekend.
Thanks for raising this!

This is fixed in 0.9.1-SNAPSHOT

Cool, seems to work.
Thanks alot!
When will you release 0.9.1 ?

This week. Possibly tonight.

I had to go out to a client site this week and I did not have my deployment keys with me. So, I will be deploying tonight.

v0.9.1 was released to maven central.

Cool, thanks alot! I will give it a try within the next couple of days.

Closed due to fix released in v0.9.1.


Modify MicroProfile Metrics to limit to the current application

The spec largely assumes that a server houses a single app, but provides some guidance for supporting multiple ones:
https://download.eclipse.org/microprofile/microprofile-metrics-2.3/microprofile-metrics-spec-2.3.html#app-servers
Implementing some of the suggested default behavior will require setting MP Config properties.

It's possible that SmallRye Metrics doesn't support this - though the spec suggests setting mp.metrics.appName as a Config property, I don't see that value referenced at all in the API or implementation packages. This may be something that will have to wait for Java 11: MP Metrics 5.0 is a large revamp with incompatible changes, and implementations may work differently in this way then.

In the mean time, I made a forked version of the JAX-RS filter to add the _app tag. The metrics themselves are still server-wide, but the tag would allow a processor to filter as desired.

I dealt with this by forking the exporter classes from the SmallRye implementation and adding filters. Since it's likely that the implementation will change wholesale in the future, this shouldn't be too much of a maintenance burden.


Still pointing some error refer attached screenshots

The X and Y attributes can only be numeric. You attribute you are passing seems to be a String.