Optimization: add prototype poly inline cache

Hi all,
It's openwebf team here. We noticed quickjs-ng/quickjs merge Self Poly Inline Cache from openwebf/quickjs(https://github.com/quickjs-ng/quickjs/issues/116). Previously, there was a memory leak in the Prototype Poly Inline Cache of openwebf/quickjs. However, we fixed this issue yesterday. Currently, both test262 and openwebf's unit and integration tests haven't encountered any related problems.
Based on the benchmark results, significant improvements have been observed in property access operations for heavy objects. The results are as follows:

Apple M1 Pro
macOS Monterey 12.2.1
Clang 13.0.0 arm64-apple-darwin21.3.0

openwebf/quickjs (6f54e7e)
quickjs-ng/quickjs (latest)
Improvement (%)

DeltaBlue
1382
1155
+19.6

RayTrace
1935
1136
+70.3

RegExp
353
262
+34.7

NavierStokes
2756
2783
-0.9

PdfJS
4934
4043
+22.0

Gameboy
9948
10704
-7.0

Box2D
5264
4943
+6.4

Typescript
19108
17301
+10.4

Total score
3262
2778
+17.4

But we are short-staffed (busy with work 😄), and I noticed there are quite many changes in quickjs-ng/quickjs. Submitting a pull request (PR) might take much time for us. If needed, feel free to merge this feature on your own, or wait a bit until we have time to submit the PR ourselves.

@saghul @littledivy

Thanks for the heads up. Is https://github.com/openwebf/quickjs/commit/079b090d032699a040823666fc466611912f19a9 the commit with the memory leak fix, or are there more?

@bnoordhuis yep, prototype poly inline cache and its memory leak bug fix.

@bnoordhuis or openwebf/webf pr: https://github.com/openwebf/webf/pull/341, i recommend that.

Thanks! I'll try to go over it sometime this week.

Thanks for the heads up!

I remember fixing a bunch of memory leaks (JSFunctionDef* was one) when porting the openwebf/quickjs implementation. I wonder if we already have the fixes.

@littledivy yes, inclued this bug.

@bnoordhuis @saghul @littledivy
We have merged the corresponding implementation into openwebf/webf, and based on our current online data, the first screen performance has seen significant improvements:
For a complex activity page:
Nodes: 590
DOM operations: 2300
First screen load time: Improved from 400ms to 300ms, a 25% enhancement.
For a chat room page:
Nodes: 1500
DOM operations: 5000
First screen load time: Improved from 1 second to 800ms, a 20% enhancement.
Additionally, I conducted a simple test comparing Hemres and the current QuickJS implementation, and the results are as follows:

@ErosZy  Adding this would be awesome but I noticed a big part of perf in webf fork comes from using mimalloc. https://github.com/quickjs-ng/quickjs/issues/142

@ammarahm-ed Not conflicting, the replacement of mimalloc is necessary, and it does bring a significant improvement. However, the enhancement from the prototype poly inline cache builds on the foundation of both self poly inline cache and mimalloc replacement, providing an additional improvement of approximately 10%. 😄

@ErosZy That's super amazing! Btw do you guys plan to use this fork instead in future. I do think it would be great for the community if we put all the workforce in the same place and work on a single quickjs fork. Fabrice Bellard has been backporting patches from this fork too into the main one.

@ammarahm-ed We primarily make modifications in our own repository because our project has its own specific goals. However, we make an effort to synchronize these changes with this repository as much as possible.

@ammarahm-ed without mimalloc, we benchmark again:

openwebf/quickjs (without mimalloc)
quickjs-ng/quickjs (latest)
Improvement (%)

Richards
1340
1220
+9.83

DeltaBlue
1210
1058
+14.36

Crypto
1341
1363
-1.61

RayTrace
1123
773
+45.27

EarleyBoyer
1717
1566
+9.64

RegExp
274
237
+15.61

Splay
1602
1358
+17.96

SplayLatency
6774
5789
+17.01

NavierStokes
2722
2778
-2.01

PdfJS
3963
3549
+11.66

Mandreel
1189
1328
-10.46

MandreelLatency
7485
9699
-22.82

Gameboy
9629
10463
-6.44

CodeLoad
12439
13576
-7.97

Box2D
4729
4643
+1.8

Typescript
16089
15136
+6.29

Score (version 9)
2753
2623
+4.95

That's great, do you mind running the benchmark with Hermes too for comparison? I would be surprised if QuickJS is faster than Hermes without mimalloc.

@ammarahm-ed Yep, but i don't record the benchmark result, In my impression, the difference between the two is not significant, even if Hermes has been optimized to the maximum. If you have time, you can give it a try. 😁

I remember fixing a bunch of memory leaks (JSFunctionDef* was one) when porting the openwebf/quickjs implementation. I wonder if we already have the fixes.

I think so. Quick visual inspection of the code doesn't show obvious memory leaks (I remember pointing out one or two during the first review round), the (A|M|UB)San buildbots are happy, and so is -DDUMP_LEAKS=1.

I remember fixing a bunch of memory leaks (JSFunctionDef* was one) when porting the openwebf/quickjs implementation. I wonder if we already have the fixes.

I think so. Quick visual inspection of the code doesn't show obvious memory leaks (I remember pointing out one or two during the first review round), the (A|M|UB)San buildbots are happy, and so is -DDUMP_LEAKS=1.

@bnoordhuis any reproducible cases?

Not sure what you mean. The ones I commented on during review?

@bnoordhuis I understand that you actually found some memory leaks that cannot be detected even after setting DUMP_LEAK=1, right? If there are such examples, I can see if they can be reproduced and resolved.

Ah, I think you misunderstand me. There were some memory leaks in the pull request that @littledivy opened. I pointed them out and he fixed them before the PR was merged. That is to say, the quickjs-ng master branch never had those memory leaks.

@bnoordhuis 😄 I see

@ErosZy That's great, do you mind running the benchmark with Hermes too for comparison? I would be surprised if QuickJS is faster than Hermes without mimalloc.

@ammarahm-ed From the results, it appears to be at the level of Hermes' -O0, with around a 30% difference compared to -O optimization:

openwebf/quickjs ( 6f54e7e without mimalloc)
hermes with -O
Hermes with -O0

Richards
824
1166(+41.5%)
718(-12.8%)

Crypto
722
1275(+76.5%)
773(+7.0%)

RayTrace
963
1262(+31.0%)
1035(+7.4%)

NavierStokes
1256
1428(+13.6%)
1038 (+21.0%)

DeltaBlue
827
1018 (+23.0%)
696( -18.8%)

Total Score
902
1222(+35.4%)
839(+7.5%)

@ammarahm-ed Yes! We already have improvement plans regarding the GC, but the implementation is expected to take quite some time. At the same time, there is still plenty of room for bytecode optimization in QuickJS. We can learn relevant backend optimizations from Hermes' LLVH. We believe that QuickJS's ultimate performance will approach that of V8 Jitless. 😄

@ErosZy I like the sound of that! But even now i am super happy with the performance. Btw @bnoordhuis was also working on quickjit, a fork with jit for quickjs by using tinycc. QuickJS is a true gem, lots of potential.

@ErosZy ,Hello, I haven't see any progression on octane when running on Windows platform while using ic without mimalloc, could you help me ?

@buddyliao what do you mean? Are you saying that you didn't get any output while running the latest version of quickjs-ng/quickjs on x64 Linux system for the octane benchmark?

@bnoordhuis @saghul @littledivy Sync up the progress: We have merged the corresponding implementation into openwebf/webf, and based on our current online data, the first screen performance has seen significant improvements:
For a complex landing page: DOM Nodes: 590+ DOM operations: 2300+ First screen load time: Improved from 400ms to 300ms, a 25% enhancement.
For a chat room page: DOM Nodes: 1500+ DOM operations: 5000+ First screen load time: Improved from 1 second to 800ms, a 20% enhancement.
Additionally, I conducted a simple test comparing Hemres and the current QuickJS implementation, and the results are as follows:

Looking forward to your merge and benchmark. 😄

Hey @ErosZy Can you provide the benchmark.js file you used to run these benchmarks by any chance?

@ammarahm-ed you can use this: https://raw.githubusercontent.com/sablejs/sablejs/master/benchmark/benchmark.js

@ErosZy I like the sound of that! But even now i am super happy with the performance. Btw @bnoordhuis was also working on quickjit, a fork with jit for quickjs by using tinycc. QuickJS is a true gem, lots of potential.

Super cool to see someone experimenting with JITing QJS. TinyCC only supports x86 and is not maintained anymore. I think https://asmjit.com/ would be a great alternative, have you looked into it @bnoordhuis?

I'm familiar with it but emitting machine code isn't the hard part of an optimizing compiler, code and data analysis is.

TinyCC only supports x86 and is not maintained anymore

It is, just not by Fabrice anymore: https://repo.or.cz/w/tinycc.git

I'm familiar with it but emitting machine code isn't the hard part of an optimizing compiler, code and data analysis is.

TinyCC only supports x86 and is not maintained anymore

It is, just not by Fabrice anymore: https://repo.or.cz/w/tinycc.git

Forgive my ignorance. It even supports arm now https://github.com/TinyCC/tinycc Fantastic!

Closing since there is no longer anything actionable here.


[PE-D][Tester E] Typo in page 8 of User Guide for "Use prefix c/." under "For filtering by Course"

Description:
In Page 8 of the User Guide, there is an extra fullstop for "Use prefix c/." which can be found under "For filtering by Course".

Steps to Reproduce:
Open the User Guide.
Go to page 8.
The typo can be found in bullet point "Use prefix c/."
Expected:
"Use prefix c/"
Actual:
"Use prefix c/."

Labels: severity.VeryLow type.DocumentationBug
original: suhayl13/ped#3

The full stop is found in bullet points for n/  and m/ , we can remove to prevent confusion

all explanations remove full stops for bullet points


Gulp tasks search for less files, but should look for scss files

Hi there Paul,
i did try to use your October CMS Theme. But when I invoke a Gulp Task, it is searching for less files to create the main.css. E.g. I do get such a error message:
partials/masthead.less' wasn't found.
There is a _masthead.scss file in the styles directory though. How can I change the Gulp Tasks to search for SCSS files instead of LESS files. Do you have any idea what might be wrong?
Cheers and thanks for your theme anyway!

Hey derhulm,
What version of Node are you using? I'm aware of a Node.js bug. You could try updating gulp-if (npm update gulp-if) or downgrading to Node.js 4.4.4, though that is not really a solution. Can you let me know if updating gulp-if fixes your issue?

Hey Paul,
my Node Version is 6.9.1
I did use the update command in the folder where your theme files are located. After hitting this if-command, nothing happend. So I guess there was nothing to update. (Just to be sure, the global gulp installation was just fresh, I extra installed gulp globally to work with your theme.)
So you think the only remaining option would be to downgrad my node?

Hi derhulm,
Can you enter npm list gulp-if in your terminal and send me the result? It should return the current version of gulp-if if it's installed correctly.

Hey,
this is the result: `--<EMAIL_ADDRESS>while running this command, this shows: info using<EMAIL_ADDRESS>

All right, so gulp-if is installed correctly. Can you try replacing this line in package.json:
"gulp-if": "^1.2.5",
With this line:
"gulp-if": "^2.0.2",
And then running npm install when you've saved it. That should update gulp-if.

Hi Paul,
sorry for getting back so late to you. But yes - replacing the line in package.json did the trick. Now the Gulp Task runs without error and a main.css file is created - thank you very much :)

Good to hear that your issue is fixed! I'll update the package.json to make sure the correct version of gulp-if is installed.


Getting 'extras' working with the Ultrafine 4k over USB-C

I have recently acquired an Ultrafine 4k (24 in) and trying to us it with my Mac-Mini.  (HVK model.)
Display itself works fine - I get the right resolution, everything looks great!  But ...
What isn't working is the in built audio, the USB-C hub, and the integration with macOS for brightness (ambient and keyboard controls).  The 'extras'.
Now, I only have a USB-C cable so initially I thought that might be the cause and I should instead use a Thunderbolt cable, but I tried it on my MacBook with the same cable and everything worked as expected - so clearly it is possible to work over USB-C cable.  (I'd rather not have to buy a Thunderbolt cable as they are quite expensive at longer lengths.)
So given that I know it is possible - now of course I want to make it work!  Has anyone else got this model and the extras are working for them?  Are you using Thunderbolt or USB-C?
One thing I did see was that on my HaC-Mini it says that No Thunderbolt drivers are loaded, because I don't have any Thunderbolt devices, but on my MacBook it showed the Ultrafine on the Thunderbolt bus, even though I was using a USB-C cable.
So my current line of investigation is whether I am meant to use a Thunderbolt cable OR whether I need to/should run the Thunderbolt patcher and see if that works.  I don't have a Thunderbolt cable to test, and I can't work out the technical logic of why it appears on the Thunderbolt bus when using a USB-C cable, but it is a difference between the MacBook and the HaC-Mini.
My main question for now is that I'm happy to run the patcher as a test, but if it doesn't work I'd probably want to revert the Thunderbolt controller back to the normal/default state - is that possible?  (Given that I have no Thunderbolt devices I'd rather leave it as standard so I don't have to worry about it in the future if selling on to a Windows user.)
Thanks all.

You need to install hac mini with native thunderbolt and do the patching. Follow the guide.

Ok thanks - happy to do that but can I revert the patch later on?

Yes but if something goes wrong in the patching process you do need to use a flasher to recover.

Ok thanks will give it a shot.  Maybe I should have just asked whether the patch could be reverted rather than all the preamble! :)

I know this is an old Issue but I have an update, didn't want to start a new one unless there is a better place to post - please advise.
Anyway, I now have the 'extras' in this monitor working with the original Thunderbolt firmware.
I reverted the patch as I reboot into Windows more regularly now, and the 'black screen on boot' issue was getting frustrating.  During a Windows Update, it set the default boot drive back to Windows, but as the screen wouldn't come on I had no way of getting into F2 BIOS, F10 boot screen or OpenCore to set it back to boot to macOS.  The power off, remove power 'trick' didn't work either - I had to borrow an HDMI monitor to get it back to macOS where the monitor then sprung to life.
So went back to the stock TB firmware and so far the screen has come back on every reboot.  The monitor works fine in Windows and actually if you use the Thunderbolt Control Centre to 'approve' the device, then under Windows the speakers and hub will also work.  So I couldn't understand why they wouldn't in macOS - and as the monitor is also meant to work over USB-C (DP) (for iPad support), I thought that it should work irrespective of Thunderbolt - so I disabled the Thunderbolt controller in BIOS entirely and sure enough the screen continued to work as expected (over DP) - but still no extras.
Anyway frankly at this point I was being a terrible troubleshooter and just flicking options on and off here and there to see if I could get something to change - then all of a sudden they appeared in macOS! The speakers, the USB hub, the ambient light sensor - all working!  Yet System Info shows the Thunderbolt drivers not loaded - so I presume this is all over USB-C now (DP++)
In an effort to work out what change made it work, I started going backwards, until I had everything back to the defaults - default BIOS (including Unique ID in Thunderbolt security), default Mac-mini install - and the extras still appear.  And on every reboot so far the monitor has powered on.  Brilliant!
So, apologies but I don't really know what solved it - but I have a strong suspicion that it is related to booting into Windows and using Thunderbolt Control Centre to accept and initialise the monitor, then WARM booting back into macOS, so that authentication is still active on the Thunderbolt chipset so that macOS now sees it, albeit over USB-C somehow.
The reason I say that is because if I unplug the monitor in macOS and replug it - the extras disappear.  But if I then reboot to Windows so that the Windows Thunderbolt driver reinitialises the monitor (over Thunderbolt), then when I go back into macOS everything works fine.
So still a bit of a pain in that if the monitor gets disconnected it requires a trip via Windows to get it all working, but as I very rarely unplug my monitor (now that the boot screen is constantly working), this is a minor annoyance.
@osy86 out of interest, the way I reverted the patch was to use the Intel provided Thunderbolt Firmware updater rather than to run the patcher tool you provided.  Everything seems OK so is that considered a 'good' restore?  I tried to re-run the Intel tool to double check the version numbers, but for some reason it won't run again.


x/tools/cmd/godoc: link "package foo" and "foo package" in text when "foo" exists

It would be nice if godoc could automatically link text that refers to extant packages.

I think this specific feature request is "in the spirit of" the simple GoDoc style requirements in the same way that http:// links are. They are regular comments that make sense on their own.
My use case is to be able to have well-documented package overviews which then link off to sub-packages for further reading. There is a concern that this could feature-creep (e.g. linking to a specific definition in a given package) but the simple case of linking to a package only seems pretty uncontroversial to me.

documentation links are available for modern doc systems https://go.dev/doc/comment#links


Can a media-group message (photo gallery) have an inline keyboard attached?

This would cut down on the noise, if we could skip the "Which theme should we use?" message. At first glance, send_media_group doesn't accept a reply_markup parameter.

Well, the answer is no. Closing.


Issue #SB-9327 feat: Tenant specific Logo replacement

@bvinayakumar - Could you please merge this PR.


AMD sub-module no longer uses NDA s.d.k?

Not really an "issue" per se, but, the LiquidVR SDK from AMD is no longer protected under NDA. Given that being the case, the AMD submodule might not need to be kept private anymore.
https://github.com/GPUOpen-LibrariesAndSDKs/LiquidVR/
I had reached out to AMD about getting an NDA for contributing to the OSVR AMD source, and their response was more or less, "You don't need one".

Thanks for pointing this out!  We're looking into it!

Sorry to say this isn't what you think it is - if they've published the "Direct2Display" part of the LiquidVR API somewhere, that would be new, but I don't see an indication that this is that (and when I most recently asked for an updated version from my AMD contact, he didn't mention anything about it going non-NDA)


feat(web-index): allow HTML template imports

fix #1718
API example:
<!DOCTYPE html>

        <title>Example</title>
        <link rel="icon" href="$import('assets/favicon.png')" />
        $css

        $bundles

I reused the resolveCSSResource function for this which should be fine for now IMO. A unified way of handling assets/resources would be useful for this though.
I tested this feature in my own project and it ended up working quite nicely.

For sure :)

@nchanged am I right in saying that the hashes are generated based on the absolute path for all resources? I think the hashes of resources should be generated based on modified time or content for best results. Should I open an issue to track this?

The hashes are generated based of the abs path development yes, as for production they should be generated based of their content, but I think it's the same for production now

@nchanged I found a problem. When using runProd the resources are not copied. Do you know why?

@Teoxoy resources should be copied too.  webIndex is being executed there too. Try tracing it down there must be a switch that wouldn't let it go through.

After attaching the web index,
https://github.com/fuse-box/fuse-box/blob/249828fcb82fd5a78888b4df7130de49b0cbb94c/src/production/bundle_prod.ts#L32
perform needs to be called and awaited
https://github.com/fuse-box/fuse-box/blob/249828fcb82fd5a78888b4df7130de49b0cbb94c/src/core/ContextTaskManager.ts#L22

perform is usually called on complete and rebundle_complete
https://github.com/fuse-box/fuse-box/blob/249828fcb82fd5a78888b4df7130de49b0cbb94c/src/core/ContextTaskManager.ts#L8-L15
but for the production build, complete and rebundle_complete are called before the web index is attached
@nchanged what would be the best way to fix this?

well the task manager might be copying files, so we don't really need to wait on that. Do you think we can hook into something else? Or shuffle things around?

I think we can move this line:
https://github.com/fuse-box/fuse-box/blob/249828fcb82fd5a78888b4df7130de49b0cbb94c/src/production/main.ts#L63
after this one:
https://github.com/fuse-box/fuse-box/blob/249828fcb82fd5a78888b4df7130de49b0cbb94c/src/production/bundle_prod.ts#L32

@Teoxoy sounds good! Move it there and we can merge it


[Ranks] Items added to Beast-Master Rank and issues with the ones we obtained those ranks before the changes

Hi, I know you've missed me, but unfortunately im here to give u more bad news.
*Dream and Luxury rank already solved, so i've edit this to delete the stuff about it cause not have sense and for don't make another ticket. But they have some issues after the fixes.

In the Dream Rank Rewards appears "1x 1x Master ball". Don't affect to the master ball itself, just visual bug.

Specific issues. I don't think this affect to the rest of the players or will affect the ones who reach those rank after this changes. Is a issue specific the ones who obtained the those before the changes, so I'm gonna put it on falling order starting with Master Rank.

[MASTER RANk]

|New changes added to the Master Rank rewards| The master rank have new items as a rewards and other changes that collides with the lastest rewards, first of all I will start with the items that aren't on the previous rewards:

3 master ball instead of 2. So, the ones that we already have master rank, we didn't receive that extra master ball.
1 Ability Modifier
1 Dragon Skull
32 Rare Candies instead 12. So we didn't receive those extra 20 rare candies.
512 claim blocks. Before was 812 claim blocks.

|Old rewards| Rewards that we obtained before, so I case the actually master ranks we wanted to redeem something, I think is fair to return them (thats Staff decision for sure).

2 Specific Max Iv's modifier. Now is 1, so we obtained a extra one.
1 Strong HA lure. Deleted from the old reward.

[BEAST RANK]

|New changes added to the Beast Rank rewards|

3 Specific Max Ivs modifier instead of 1.
1 Elytra. it wasn't there before the changes.
1 Nature Modifier. it wasn't there before the changes.
16 Beast balls instead of 1.
64 Quick Balls Instead of 30.
24 thunderstones. it wasn't there before the changes.
2 Master balls instead of 1.
1 Tidal Bell. it wasn't there before the changes.
1 Clear ball. it wasn't there before the changes.
512 claim blocks instead of 812.
5 XL Exp. Candies. Before that was 10.

|Old rewards|

1 Amulet Coin. Deleted now.
1 Soothe Bell. Deleted now.
1 Netherite Pickaxe. Deteled now.
1 Destiny Knot. Deleted now.
1 Infuser. Deleted now.
24 Ultra Balls. Deleted now.

I reported this just for one reason: the new changes added to Beast and Master Rank gives u extra items more expensive than the previous one, specifically for Beast Rank, let us the one who redeem the old one with a worse reward, and being a one-time rewards is not fair, i mean, the new beast ranks will obtain a free lugia and ho-oh wih the bells (for example), why can't obtian it too? So this is my report, to fix this, cause being master rank obviously i want to obtain those items. I don't think some items like the balls (except mballs) are really important as a return, but other items more hard to find or with a really economic value are really important.
To solve this as better as possible, I will create a new comment here with the items (In case the staff redeem it to the beast and master ranks) with the new items added, so that will help to do it faster without thinking about it, cause this is hella confuse it sometimes.
In case is needed, i'm miguipkv, player of Atlas. My discord Id is Ezel#1229 in case someone of the staff needs to contact me in private for help or clarify something about all this chaos.

Now I will proceed with the second part, more focused in the possible ways to fix this (or the ways that i think could fix this), for the ones that we were beast and master rank before the changes and we can't obtain those items due to is one-time reward, and make the changes fair for all of us. The decision, whatever will end its a staff decision, for sure.
Due to those changes, i will make a list, in case the beast and master rank want to report it to obtain those new items added to the rewards, with the items tha the staff should give them who the ones that redeemed the rank before the changes.

[Master Rank]

List of the items that the staff should give to the master ranks who redeem the reward before the changes:

1 Masterball
1 Ability Modifier
1 Dragon Skull
20 Rare Candies

Items that the player should return in case the staff ask for them:

1 Specific Max Iv's modifier
1 Strong HA lure.
300 claim blocks (not sure if thats possible, i think a admin should do it manually).

Items that the player should return in case the staff ask for them:

1 Amulet Coin.
1 Soothe Bell.
1 Netherite Pickaxe
1 Destiny Knot
1 Infuser
24 Ultra Balls

The beast reward should be redeem to for the master ranks, not only for beast ball, cause affected them too. Exist other solution, easier than this but less fair, that is let the beast and master ranks that redeemd it again, bein less fair cause they will win extra items and stuff, but its easier for the statt to fix the issue.
The final solution its staff decision, like i said. Hope my reports are helping to fix this as far as possible cause i really want those new items added, and i think I wont be the only one. Good luck with all, great work with the ranks even with the issues, but well, beta versions are always a mess.

Hi, I'm here for Ras petition to put the date that I obtained Beast and Master Rank due to items changed issue.
I obtained Beast Rank 27/07/2022 and Master Rank 30/07/2022

Now I will proceed with the second part, more focused in the possible ways to fix this (or the ways that i think could fix this), for the ones that we were beast and master rank before the changes and we can't obtain those items due to is one-time reward, and make the changes fair for all of us. The decision, whatever will end its a staff decision, for sure.
Now I will proceed with the list of the items added and the ones should be returned, as apart of the first solution that i thought:
[Master Rank]
List of the items that the staff should give to the master ranks who redeem the reward before the changes:
1 Masterball
1 Ability Modifier
1 Dragon Skull
20 Rare Candies
Items that the player should return in case the staff ask for them:
1 Specific Max Iv's modifier
1 Strong HA lure.
300 claim blocks (not sure if thats possible, i think a admin should do it manually).

Items that the player should return in case the staff ask for them:
1 Amulet Coin.
1 Soothe Bell.
1 Netherite Pickaxe
1 Destiny Knot
1 Infuser
24 Ultra Balls
The final solution its staff decision, like i said. Hope my reports are helping to fix this as far as possible cause i really want those new items added, and i think I wont be the only one. Good luck with all, great work with the ranks even with the issues, but well, beta versions are always a mess.
Hi, I'm here for Ras petition to put the date that I obtained Beast and Master Rank due to items changed issue.
I obtained Beast Rank 27/07/2022 and Master Rank 30/07/2022

I believe all these issues are now resolved, @EzelBerbier

Resolved via Discord, thank you for the help :)


Bump pyyaml dependency from 5.3.1 to 5.4.1

This change also makes the absolute dependency on pyyaml a minimum
version constaint for better compatibility with other pip-packages.
fixes  spreaker/prometheus-pgbouncer-exporter#39

Ran unit tests:
$ docker-compose run dev
Creating network "prometheus-pgbouncer-exporter_default" with the default driver
/prometheus-pgbouncer-exporter # python -m unittest
................................
----------------------------------------------------------------------
Ran 32 tests in 8.162s

OK

pgbouncer:
# python -m prometheus_pgbouncer_exporter.cli --config ./config.yml
{"asctime": "2021-10-05 09:30:46", "levelname": "INFO", "message": "Exporter is starting up"}
{"asctime": "2021-10-05 09:30:46", "levelname": "INFO", "message": "Config file successfully read from ./config.yml"}
{"asctime": "2021-10-05 09:30:46", "levelname": "ERROR", "message": "Unable fetch metrics from postgresql://pgbouncer:***@localhost:6431/pgbouncer", "exception": "could not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (<IP_ADDRESS>) and accepting\n\tTCP/IP connections on port 6431?\ncould not connect to server: Address not available\n\tIs the server running on host \"localhost\" (::1) and accepting\n\tTCP/IP connections on port 6431?\n"}
{"asctime": "2021-10-05 09:30:46", "levelname": "ERROR", "message": "Unable fetch metrics from postgresql://pgbouncer:***@localhost:6432/pgbouncer", "exception": "could not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (<IP_ADDRESS>) and accepting\n\tTCP/IP connections on port 6432?\ncould not connect to server: Address not available\n\tIs the server running on host \"localhost\" (::1) and accepting\n\tTCP/IP connections on port 6432?\n"}
{"asctime": "2021-10-05 09:30:46", "levelname": "INFO", "message": "Exporter listening on <IP_ADDRESS>:9100"}
^C{"asctime": "2021-10-05 09:30:53", "levelname": "INFO", "message": "Exporter is shutting down"}
{"asctime": "2021-10-05 09:30:54", "levelname": "INFO", "message": "Exporter has shutdown"}

and pyformat:
/prometheus-pgbouncer-exporter # pycodestyle --max-line-length=300 prometheus_pgbouncer_exporter/*.py
/prometheus-pgbouncer-exporter #


Updated CTP 1.1 notes regarding filestream

Thank you @vin-yu  / @rothja can you please review.

Approved. Thanks, Vin. We might be removing all these CTP improvement notes from the past. We're in discussion with Jeff and Lee and Travis about that. But we should publish this in case that doesn't happen. Also, if you use sql-docs-pr to make your changes, you can just #sign-off directly without going through the public review process. Thanks! #sign-off


ZeroDivisionError

ZeroDivisionError                         Traceback (most recent call last)
 in
1 file = r"C:\Users\Sashankh\axaxaxax.txt"
----> 2 convert(file)
 in convert(fname, threshold)
11     fn = fname.split(".")
12     new_fname = fn[0] + "_clean." + fn[1]
---> 13     _generate_text(sentences, new_fname)
14
15 def _read_email(fname):
 in _generate_text(sentences, fname, threshold)
43     with open(fname, "w") as new_file:
44         for sentence in sentences:
---> 45             if _prob_block(sentence, tagger) < threshold:
46                 new_file.write(sentence)
47
 in prob_block(sentence, pos_tagger)
61     doc = pos_tagger(sentence)
62     verb_count = np.sum([token.pos != "VERB" for token in doc])
---> 63     return float(verb_count) / len(doc)
ZeroDivisionError: float division by zero

This is happening because the text you provided doesnt have a . in it jaja.
AS you see it is spliting the text so you can try/catch that and wen it fails catch it with new_frame = fn[0] + _clean
It works for me.

@mynameisvinn Would love to help fix this error, but don't have access. 😞
Need to add a try/except statement here to account for any "sentences" that don't contain words and get a length of zero:
I.e. -
    try:
        doc = pos_tagger(sentence)
        verb_count = np.sum([token.pos_ != "VERB" for token in doc])
        return float(verb_count) / len(doc)
    except Exception:
        return 0


Improve inertial scrolling

This post claims that in Apple's kinetic scrolling, "The velocity of the touch is measured at the exact moment that the finger is lifted."
I tried both this "final velocity" approach and the "max velocity" approach proposed in #2987. Both allow a stronger "fling" than the current "average velocity" approach, but "max velocity" can feel wrong if you slow down at the end of your swipe.
But because the "final velocity" approach uses just one data point it can be unstable, occasionally giving a too-large velocity from a small time delta.
Best is to stabilize that by averaging a few data points, so we're back to "average velocity" but using a shorter time period. Averaging over 50 ms instead of 100 ms gives good results, usually 4 data points on both my iPhone 4s and Chrome on my Windows laptop.
Another reason the current code has a weak fling is that the velocity was being calculated incorrectly. Because delay was added to the time delta, time was computed from n+1 points but distance from n points.
I also changed the default value of inertiaThreshold (intended to prevent unwanted additional movement if you stop dragging and then lift your finger) to Infinity, for two reasons:

A fling gesture often failed on my iPhone because the measured delay was higher than inertiaThreshold (current default 32), sometimes by hundreds of ms.
With the updated velocity code I don't see unwanted additional movement when I stop dragging and then lift my finger.

There is a remaining issue (with both the original and updated code). If you fling the map and try to fling it again before it stops moving, no drag events are generated for the second fling so it has no effect. I don't see this problem with e.g. Google or Apple maps. Entered as #3062.
Fixes #2987

OK, merged! Thanks everyone. I'll probably remove inertiaThreshold option for now.


add youtube live scammer stream

https://www.youtube.com/watch?v=XSeK2e6mYDw

if there's a mp3 stream that mpg123 can use, that could be used to play it


[BUG] Unable to attach or mount volumes after systemctl restart k3s

Describe the bug
Pods with mounted pvc get stuck and cant start after the kubelet is restarted and longhorn is helm chart v1.4.2 version.
Pods stuck in longhorn-system also:
share-manager-pvc

Can't update helm to 1.5.x because of this, probably
To Reproduce
systemctl restart k3s
try to restart start pod and mount a pvc
Expected behavior
Pod succesfully starts and pvc mounts
Support bundle for troubleshooting
Can't create support bundle since pod cant start longhorn-support-bundle-manager-support-bundle
Events:
  Type     Reason       Age                From               Message
  ----     ------       ----               ----               -------
  Normal   Scheduled    12m                default-scheduler  Successfully assigned longhorn-system/longhorn-support-bundle-manager-support-bundle-2024-05-31ts2vh5
  Warning  FailedMount  81s (x5 over 10m)  kubelet            Unable to attach or mount volumes: unmounted volumes=[kube-api-access-jnbv6], unattached volumes=[kube-api-access-jnbv6]: timed out waiting for the condition

Environment

Longhorn version: helm chart v1.4.2
Impacted volume (PV): unmounted volumes=[host-proc lib-modules kube-api-access-nh4h8 host-dev host-sys]
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: k3s v1.26.4+k3s1

Number of control plane nodes in the cluster: 1
Number of worker nodes in the cluster: 1 (same node as control)

Node config

OS type and version: Ubuntu 22.04.2 LTS (Jammy Jellyfish)
Kernel version: 5.15.0-71-generic #78-Ubuntu SMP Tue Apr 18 09:00:29 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
CPU per node: 32
Memory per node: 64Gb
Disk type (e.g. SSD/NVMe/HDD): SSD
Network bandwidth between the nodes (Gbps): 10Gbps

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): VMWare
Number of Longhorn volumes in the cluster: 13

A support bundle is appriciated.

@derekbit
Can't create support bundle since pod cant start longhorn-support-bundle-manager-support-bundle
Events:
  Type     Reason       Age                From               Message
  ----     ------       ----               ----               -------
  Normal   Scheduled    12m                default-scheduler  Successfully assigned longhorn-system/longhorn-support-bundle-manager-support-bundle-2024-05-31ts2vh5
  Warning  FailedMount  81s (x5 over 10m)  kubelet            Unable to attach or mount volumes: unmounted volumes=[kube-api-access-jnbv6], unattached volumes=[kube-api-access-jnbv6]: timed out waiting for the condition


reflect releases 2.2.3 and 2.1.10

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@a2f60a1). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #6529   +/-   ##
=========================================
  Coverage          ?   82.96%
  Complexity        ?    13116
=========================================
  Files             ?     1504
  Lines             ?    48766
  Branches          ?     5885
=========================================
  Hits              ?    40461
  Misses            ?     5531
  Partials          ?     2774

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 a2f60a1...26e63a1. Read the comment docs.


fix(query): enabled reactivity fix (new)

Status

READY
Description
Ensures that query enabled option is reactive (disabled when parameters are falsy).
Will fix #943
Related PRs
Based on https://github.com/anymaniax/orval/pull/944, @bengane my colleague agreed for me to take it over.
Todos

[x] Tests
[ ] Documentation
[ ] Changelog Entry (unreleased)

Steps to Test or Reproduce
Test included, to rebuild all and run all tests use this:
yarn && yarn build && yarn update-samples && yarn format && yarn test:ci && cd tests && yarn && yarn generate && yarn build && cd ..

When do you expect to ship 6.22.9? :)


Memory issue with bref/php-81-fpm-dev:2

Description:
There is a memory issue with the current image bref/php-81-fpm-dev:2 (digest b84118767b2174fc716ec1e1a2cf6bd4db4379e210909199e51735e443aea2ec)
Please see https://github.com/chrisjenkinson/bref-fpm-dev-image-issue/blob/main/.github/workflows/blank.yml which shows a GitHub workflow with the issue, using these images:

php:8.1.19
bref/php-80-fpm-dev:2
bref/php-81-fpm-dev:2
bref/php-82-fpm-dev:2

This is the result https://github.com/chrisjenkinson/bref-fpm-dev-image-issue/actions/runs/4965042554/jobs/8885601793
Fatal error: Allowed memory size of<PHONE_NUMBER> bytes exhausted (tried to allocate<PHONE_NUMBER> bytes) in phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/DependencyChecker.php on line 47

PHPStan process crashed because it reached configured PHP memory limit: 3008M
Increase your memory limit in php.ini or run PHPStan with --memory-limit CLI option.

Any reason to believe there is a bug in Bref images?
Judging from what you posted, what we could conclude is that your application is simply eating all the memory, no? Maybe we're missing some context.

The test runs using the standard symfony skeleton and phpstan on level 0. It passes on 3 of the 4 images I mention, other than bref/php-81-fpm-dev:2. It appears there are no other tags for v2 available, though I could try other images which helped triangulate.

oh ok sorry I'm just realizing your link is a custom repo that reproduces the issue. So many discussions to jump between that I overlooked that.
OK so just to clarify: here we have 1 GH Actions run that shows the issue. Is this reproduced every time? Specifically for PHP 8.1? (just want to make sure it's not a random failure, but I guess if you created a repo for that it's not)
I find it very weird that PHP 8.1 has an issue, the Dockerfiles are almost identical with 8.2 🤔 Do you know how much memory is used for 8.0 and 8.2? (or even outside of Docker?)

I have just retriggered it with debug mode and it says 64MB used for 8.2 and 68MB for 8.0.
Yes, I am having the same issue locally (on this custom repo and my project) and on a Gitlab workflow running on AWS.

I ran this again with the new image (from the 2.1.0 release I guess) and had no issues.
https://github.com/chrisjenkinson/bref-fpm-dev-image-issue/actions/runs/5017963235/jobs/8996755836

Awesome! Thank you for updating and following this problem, really appreciate it 🙌


control-service: fix oom tests

Why
In this PR I fix a very unstable oom test.
The test is very unstable for a number of reasons.

sometime the job actually succeeds, it seems to be able to compelte with in the memory limits after a number of retries.
We can put the memory requirement any lower to ensure an error because 6mi is the lower limit supported by k8s.
on of the assertions we were making is that the logs are there. However often if the jobs is killed at the very start there are no logs.

What
I fix it by using a cronjob template which doesn't let the job restart. This means if it fails once it will report as failed.
How has this been tested?
integration tests.

Good job!


Implementing custom cells with text fields and buttons

General information

Library version(s): 7
iOS version(s): 9.3

Custom Cells
I have read all the previous questions that are marked with the similar tags, but no success. I went through the FAQ readme where I got to know that I will have to create my own cell subclasses. So I am trying to do that.
I need very custom cells, and there will me may types of cells. Cells may even have forms embedded in them. How do I do this?
What I have tried is make my own custom cell xib and custom cell subclass. But i get the following error -
Could not cast value of type 'JSQMessagesCollectionViewCellOutgoing'  to 'chat.CustomOutgoingCell'
My CustomOutgoingCell is subclassing JSQMessagesCollectionViewCellOutgoing, but i still cannot downcast it.

Without your code I can guess you might miss some steps ;)
In my case, I did not create a xib for the whole cell but the content inside of the bubbles only. My custom message is written as a media one. But instead of returning normal mediaItem (JSQMediaItem), it returns my own subclass. The code looks like below:
`    class MyMediaItem : JSQMediaItem {
init(myMessage: ChatMessage) { // do whatever to init data
    super.init()
}
override init(maskAsOutgoing: Bool) {
    super.init(maskAsOutgoing: maskAsOutgoing)
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override func mediaView() -> UIView! {
    let myView = do whatever to create your view
    return myView
}

override func mediaViewDisplaySize() -> CGSize {
    return CGSizeMake(290, 170)
}

}
You may see that the function mediaView has just returned an UIView which you can create programmatically or load totally from xib. Similar to mediaViewDisplaySize(), just calculate and return what size you want.
Happy coding :)

Thanks @nguyenpham ! 😄

Thanks @nguyenpham, but where do I need to register the nib? In the mediaView() method or in the collectionView?

@mhx792 This might help http://stackoverflow.com/questions/38371995/jsqmessagesviewcontroller-send-text-message-with-attached-images-file/38414345#38414345


Lambda references are corrupted when script is modified while debugging

Godot version
v4.0.alpha.custom_build [83ad1231a]
System information
Arch on 5.18.9-arch1-1
Issue description
Code:
extends Node

func this_is_never_referenced1() -> void:
	print("This is never referenced1")

func this_is_never_referenced2() -> void:
	print("This is never referenced2")

func this_is_never_referenced3() -> void:
	print("This is never referenced3")

func this_is_never_referenced4() -> void:
	print("This is never referenced4")

var hello := func() -> void:
	print("Hi")

# This works fine:
#var hello := hellofunc
#func hellofunc():
#	print("Hi")

func _process(_delta: float) -> void:
	hello.call()

Output:
Hi
Hi
Hi
…
--- Script modified now ---
This is never referenced2
This is never referenced2
This is never referenced2
…

Note for testers: This is not an issue with GDScript member variables, since I discovered (and can reproduce) this issue with Performance.add_custom_monitor.
Steps to reproduce

Open MRP in editor
Run project
Modify script (e.g. add a single # to an empty line)

Minimal reproduction project
test4.zip

I confirm this issue on master (fcba87e).

CC @vnen

Why is this marked as low priority? This causes runtime crashes to me all the time when i try using Synchronize Script Changes feature. In 4.0 betas, 4.0-stable and 4.0.1-rc1, sometimes, it throws a totally random error like Cannot access member without instance, Bad index address, Invalid call: Nonexistent utility function '', or (most likely) just crashes the runtime making Synchronize Script Changes absolutely broken and unusable. Am I the only one having this issue?

Why is this marked as low priority? [...] Am I the only one having this issue?

I won't say you are the only one, but lambdas are new in Godot 4.0 which was released not long ago so there's not a lot of usage currently. This issue in particular didn't have any activity after the report, so it's natural to assume it's not hit often.
It also happens only when editing if the game is running. While annoying it's not the most critical issue since you can close the game (or it will crash, which is not much different) when editing the script. This is most a concern for @tool script since they run on the editor and may crash everything, but again it does not seem to happen often enough to have lots of reports.
Lastly, the "low priority" setting is for the roadmap project which was mostly used to filter issues for the 4.0 release. At that point this one didn't seem so important when compared to the other issues. The fact it was added to the project technically makes this higher priority than all the other issues that weren't added.

This still happens in v4.0.2.stable.official [7a0977ce2]

Tested this, the bug still seems reproducible in 4.1.1-stable and 4.2-dev (98b50eb3083094a352b36b184d7b60b77ad982fe), but in non deterministic ways.
So far I've seen:
With 4.1.1
In all cases modifying the script while it's running causes it to stop printing "Hi".

Sometimes it also causes a call error:

Invalid call to function '_process(lambda) (Callable)'. Expected 1 arguments.
0 - res://scene.gd:26 - at function: _process

(highlight the hello.call() - interesting how it refers to _process(lambda), it's getting references wrong?)

Or a crash (no debug symbols for 4.1.1)

There may be more scenarios, I then moved to testing in 4.2.
With 4.2-dev
In all cases modifying the script while it's running causes it to stop printing "Hi".

Sometimes it just stops printing, and nothing bad happens
Sometimes it also causes a call error:

Cannot access member without instance.
0 - res://scene.gd:15 - at function: @implicit_new
1 - res://scene.gd:24 - at function: _process

Sometimes it causes another call error:

Invalid call to function '_process(lambda) (Callable)'. Expected 1 arguments.
0 - res://scene.gd:25 - at function: _process

Or another error:

Invalid call. Nonexistent utility function ''.
0 - :17 - at function:
1 - res://scene.gd:26 - at function: _process

Plus these errors:
ERROR: Condition "path.is_empty()" is true.
   at: compute_checksums (./editor/debugger/debug_adapter/debug_adapter_types.h:70)
ERROR: Resource file not found: res:// (expected type: )
   at: _load (./core/io/resource_loader.cpp:279)

Or yet another error:

Internal script error! Opcode: 1 (please report).
0 - :16 - at function:
1 - res://scene.gd:26 - at function: _process

And finally, sometimes it crashes, with this stacktrace:

handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.2.dev.custom_build (98b50eb3083094a352b36b184d7b60b77ad982fe)
Dumping the backtrace. Please include this when reporting the bug to the project developer.

-- END OF BACKTRACE --

i ran into this problem so much, i got a fed up and fixed it myself, i have a working testable version here: https://github.com/rune-scape/godot/tree/rune-lambda-hotswap
it swaps out the function pointers used in LambdaCallables when a script is reloaded
if it cant find a good replacement it invalidates the callable, so no more 'Bad Address Index' and crashes, it tells you its called an invalid lambda
the logic it uses to swap lambdas is very simple right now, swapping only if the argument count vaguely matches, and no lambdas were added or removed, evaluated for each function the lambda was in
also should be safe across threads, because lambdas can be created on any thread. i took care to make sure it wouldnt slow lambda creation down, but wouldnt create any data shearing


fix yii migrate exit code not correct

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
✔

Tests pass?
✔

Fixed issues
#18339

@schmunk42 I'm not sure what you mean. It should not differ from other environments.

@schmunk42 I'm not sure what you mean. It should not differ from other environments.

I remember an issue, where a failed yii migrate would not return an error in production, but I'd need to look it up... Just thought you may have stumbled across that.
The rationale was, that you do not want the whole page offline, when a migration fails. On the other hand, it can be tricky to find that this was going wrong. CC: @samdark

Yes, let's not be hasty about that. I didn't experienced such case before but there should not be a problem with sneaky failures anymore, unless something we missed.

Response is changed. Although from nothing to something so let's call it soft BC break.

Thank you!


question about <IP_ADDRESS>

I had an issue with starting up the vagrant environment.
I followed these instructions:
https://github.com/oracle/vagrant-boxes/tree/master/OracleDatabase/<IP_ADDRESS>
C:\Repos\vagrant-boxes\OracleDatabase\<IP_ADDRESS> [master ≡]> vagrant up
Bringing machine 'oracle-12201-vagrant' up with 'virtualbox' provider...
==> oracle-12201-vagrant: Clearing any previously set forwarded ports...
==> oracle-12201-vagrant: Clearing any previously set network interfaces...
==> oracle-12201-vagrant: Preparing network interfaces based on configuration...
    oracle-12201-vagrant: Adapter 1: nat
==> oracle-12201-vagrant: Forwarding ports...
    oracle-12201-vagrant: 1521 (guest) => 1521 (host) (adapter 1)
    oracle-12201-vagrant: 5500 (guest) => 5500 (host) (adapter 1)
    oracle-12201-vagrant: 22 (guest) => 2222 (host) (adapter 1)
==> oracle-12201-vagrant: Running 'pre-boot' VM customizations...
==> oracle-12201-vagrant: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "f6b29f02-df8f-428e-9ba6-f7ce1eecd8bd", "--type", "headless"]

Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

Looks like this is an issue between VirtualBox and Vagrant:
Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

I looked around virtualbox and I did not see the vboxmanage.exe file.
I did see vboxheadless.
Version 5.2.20 r125813 (Qt5.6.2)

It was there, just missed it

@minoseah629, this error means that VirtualBox isn't able to use VT-x, which is a set of hardware extensions for CPUs running virtual machines. An online search for "VirtualBox VT-x is not available" gives a lot of results. (The one here is pretty helpful, in my opinion.)
Assuming that your CPU supports VT-x, which it probably does if it's fairly recent, the first thing to check is whether VT-x is enabled in your computer's BIOS. If it isn't, enable it. If that doesn't help, ensure that Hyper-V virtualization is disabled in Windows. The page I linked to above has instructions for that.
I hope this helps!

I think i forgot hyper v is on. ill let you know.

that was the problem. screenshot shows that i got passed boot vm in log. thanks @PaulNeumann.

Excellent! I'm glad it's working for you.


Environment differences with node apps in runme terminal

Getting the following strange error when trying to run in runme terminal, which I do not get in the normal terminal.

Are you using nvm or any other version manager, @mxsdev?


Ensures that missing keys from the config file are set in the internal config

If you would have a .fasterer.yml config with only the speedups key pronto would fail because it expects the exclude_path key to be there too. By merging the actual file in the default nil_config_file we ensure that all keys are set internally and default to an empty value for unset keys.

I didn't add tests because there were no config related tests yet and I am quite busy right now. Feel free to look into it. I'll try to do it myself if I find the time but I can't promise anything right now.

@jeroenj cool, thanks! :bow:

Released as v0.4.1.


Clock button is never disabled

Expected behavior
When we disable the item, the button to open the clock should be disabled as well
Actual behavior
Only the input field is disabled
Steps to reproduce the issue

Create a clock item on a page
Disable it with javascript
apex.item(id).disable

APEX version (4.2.6 / 5.0.3)
5.0.3
Used web server / version and platform (ORDS 3.0.3 / Tomcat 7 / Apache 2.4 / Linux x64)
Not relevant
Used web browser / version and platform (Chrome 48 Mac / Firefox 44 Windows)
Not relevant

Hi @Zdro
thanks for reporting this and also for providing nice a solution!
Atm I´m about to separate the PL/SQL and JavaScript parts of the plugin. This means all JavaScript logic will move to a separate file and the PL/SQL part only calls the main function from the file...
I think this would be a much nicer approach instead of the current one...
But this don´t have any effects on this topic, I will use your approach and will implement it in the JS file!
I hope I will manage to do it in the next 2 weeks...Next week is conference week and I don´t know if I can handle it until then...
Best wishes
Daniel


[Adaptive] [DCR] Update OutputFormat property on inputs to be an expression

Today we have a set of limited options for OutputFormat property on inputs. Given we have the full power of common expression language, we should just support expressions instead of limited set of options we support for output format.
microsoft/BotFramework-Composer/#1402

@vishwacsena , I have investigated on this and want to understand more about the requirements.
Currently only four inputs types supports outputFormat:
TextInput, supports trim, lowercase and uppercase.
NumberInput, supports float(default) and integer.
ChoiceInput, supports index and value(default).
AttachmentInput, supports all and first(default).
what is the exact scenario we want. Should we just support TextInput output as an expression? and keep others the same? I think we should at least keep the AttachmentInput as it is.
Thoughts?

@luhan2017 we should do the following -

For text, number input, make OutputFormat be an expression so user can format the captured input how so ever they wish.
For ChoiceInput, AttachmentInput - leave OutputFormat as is.
Add OutputFormat property to Confirm, datetime input as an expression

I related this issue to PR 3046 by mistake, PR 3069 is the real one to fix this

@luhan2017 pushing to R8.


Not getting status messages when sent commands.

Hi there, When I send some commands to the vehicle, like (Block engine), the command works ok, but I don't get notification if this was successfully or not. It only give me this:  "{ }" .
My tracker is  GT06.

Are you talking about commands API? Response code indicates success or failure.

I am saying that If I send an command to block the engine,  the traccar server can give me some notification that the command was succesfully or not ? Like Orange GPS trace, If you know that site offcourse,. Thanks

Traccar has notifications for command results.

Hi again,  I saw that the Traccar has web, mail and sms notification for commands results,  I have checked all, but when I send a command (block engine),  the car is blocked,  but I do not receive any messages (commands resulds)  on web or mail,    I use GT06 tracker,  and it is the alternative one.   Thank you

I guess that either device doesn't send response, or it's not decoded. Have you checked logs for the result message?

I think is the second so,  "not decoded",  because I have tested this tracker at orange server, and when I sent commands It gave me results like:

So, What do I need to do to get this commands results if it is decoded ?   the commands works ok, but I am not getting results of sucess or not.

As I said, you need to look at the longs and provide the result message (in HEX format).

I get the logs,  and I saw another strange warn,   Geocoding failed - Empty address,  but anyway,  see the logs please:
2017-06-08 14:09:18  WARN: Geocoding failed - Empty address - GeocoderException (JsonGeocoder:74 < ...)
2017-06-08 14:09:18  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, time: 2017-06-08 14:08:52, lat: -23.30228, lon: -51.18691, speed: 0.0, course: 172.0
2017-06-08 14:09:19  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, command type: engineStop sent
2017-06-08 14:09:19 DEBUG: [3091DAB9: 5023 > <IP_ADDRESS>] HEX: 787815800f000000004459442c313233343536230000755a0d0a
2017-06-08 14:09:22 DEBUG: [3091DAB9: 5023 < <IP_ADDRESS>] HEX: 78781f12110608110916c902800421057de3f90038ac02d4060413002c430008c36f0d0a
2017-06-08 14:09:22 DEBUG: [3091DAB9: 5023 > <IP_ADDRESS>] HEX:<PHONE_NUMBER>082eec0d0a
2017-06-08 14:09:22  WARN: Geocoding failed - Empty address - GeocoderException (JsonGeocoder:74 < ...)
2017-06-08 14:09:22  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, time: 2017-06-08 14:09:22, lat: -23.30228, lon: -51.18691, speed: 0.0, course: 172.0
2017-06-08 14:09:28  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, command type: engineResume sent
2017-06-08 14:09:28 DEBUG: [3091DAB9: 5023 > <IP_ADDRESS>] HEX:<PHONE_NUMBER>00000000484659442c313233343536230000e2920d0a
2017-06-08 14:09:34 DEBUG: [3091DAB9: 5023 < <IP_ADDRESS>] HEX:<PHONE_NUMBER>000000004459443d537563636573732100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010009e82b0d0a
2017-06-08 14:09:34 DEBUG: [3091DAB9: 5023 > <IP_ADDRESS>] HEX:<PHONE_NUMBER>09b3600d0a
2017-06-08 14:09:34  WARN: Geocoding failed - Empty address - GeocoderException (JsonGeocoder:74 < ...)
2017-06-08 14:09:34  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, time: 2017-06-08 14:09:22, lat: -23.30228, lon: -51.18691, speed: 0.0, course: 172.0
2017-06-08 14:09:35  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, command type: engineResume sent
2017-06-08 14:09:35 DEBUG: [3091DAB9: 5023 > <IP_ADDRESS>] HEX:<PHONE_NUMBER>00000000484659442c313233343536230000e2920d0a
2017-06-08 14:09:52 DEBUG: [3091DAB9: 5023 < <IP_ADDRESS>] HEX: 78781f12110608110934ca02800421057de3f90038ac02d4060413002c43000ab8290d0a
2017-06-08 14:09:52 DEBUG: [3091DAB9: 5023 > <IP_ADDRESS>] HEX:<PHONE_NUMBER>0a0dfe0d0a
2017-06-08 14:09:52  WARN: Geocoding failed - Empty address - GeocoderException (JsonGeocoder:74 < ...)
2017-06-08 14:09:52  INFO: [3091DAB9] id:<PHONE_NUMBER>10158, time: 2017-06-08 14:09:52, lat: -23.30228, lon: -51.18691, speed: 0.0, course: 172.0

Looks like your device responds, but the response is empty, so it's not shown in Traccar.

hum,   I don't know what to do,    why it get results in another server (orange).  The same tracker, the same commands,  or maybe the commands sent are not equal ?

Maybe another server considers empty result as a success.

maybe it is.  I am going to search about it,  thanks

Hi again,    I have found the protocol communication of this tracker gt06,  and I think the commands sent by the TRACCAR are not the same.    Am i right ?
disconnect oil and electricity online:
reception: 78 78 15 80 0F 00 01 A9 58 44 59 44 2C 30 30 30 30 30 30 23 00 A0 DC F1 0D 0A
transmission: 78 78 18 15 10 00 01 A9 58 44 59 44 3D 53 75 63 63 65 73 73 21 00 02 00 18 91 77 0D 0A
the server sending DYD,000000#
reply: DYD=Success!
Command sent during disconnection of oil and electricity:
reception: 78 78 15 80 0F 00 01 A9 61 44 59 44 2C 30 30 30 30 30 30 23 00 A0 3E 10 0D 0A
transmission: 78 78 53 15 4B 00 01 A9 61 41 6C 72 65 61 64 79 20 69 6E 20 74 68 65 20 73 74 61 74 65
20 6F 66 20 66 75 65 6C 20 73 75 70 70 6C 79 20 63 75 74 20 6F 66 66 2C 74 68 65 20 63 6F 6D 6D 61
6E 64 20 69 73 20 6E 6F 74 20 72 75 6E 6E 69 6E 67 21 00 02 00 1C F3 0D 0D 0A
the server sending DYD,000000#
reply: Already in the state of fuel supply cut off,the command is not running!
Connect oil and electricity online:
reception: 78 78 16 80 10 00 01 A9 63 48 46 59 44 2C 30 30 30 30 30 30 23 00 A0 7B DC 0D 0A
transmission: 78 78 19 15 11 00 01 A9 63 48 46 59 44 3D 53 75 63 63 65 73 73 21 00 02 00 1E F8 93 0D
0A
the server sending: HFYD,000000#
reply: HFYD=Success!
Command sent during connection of oil and electricity:
reception: 78 78 16 80 10 00 01 A9 64 48 46 59 44 2C 30 30 30 30 30 30 23 00 A0 8B 1B 0D 0A
transmission: 78 78 55 15 4D 00 01 A9 64 41 6C 72 65 61 64 79 20 69 6E 20 74 68 65 20 73 74 61 74 65
20 6F 66 20 66 75 65 6C 20 73 75 70 70 6C 79 20 74 6F 20 72 65 73 75 6D 65 2C 74 68 65 20 63 6F 6D
6D 61 6E 64 20 69 73 20 6E 6F 74 20 72 75 6E 6E 69 6E 67 21 00 02 00 1F DB BF 0D 0A
the server sending: HFYD,000000#
reply: Already in the state of fuel supply to resume,the command is not running!
http://www.stairbox.com/gpsdocs/GT06_GPS_Tracker_Communication_Protocol_v1.8.1.pdf

Yes, that's right, but this is what your device replies:
7878661500000000004459443d537563636573732100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010009e82b0d0a

so,   maybe this replies is this,  because the sent command is not equal the protocol that I have posted ?
Traccar sent:   engineStop sent  787815800f000000004459442c313233343536230000755a0d0a
And the protocol that I found is:<PHONE_NUMBER>0001A9584459443D53756363657373210002001891770D0A

No, you are comparing Traccar request with a reply from tracker. Please be more cereful.

Sorry, my mistake,    so, the traccar server is sending what ?
DYD,000000#   to stop engine
and
HFYD,000000# to resume engine.
sorry, but I dont understand why the other server give me command results and the traccar dont.

I think device doesn't respond with correct format. That's a very common issue with Chinese devices. Either format is wrong or documentation is wrong.

but I am using the same tracker to do the same thing on both servers.

I guess other server has a workaround for this issue.

yes,  maybe it is.   thank you very much for your time trying help.

sorry to bothering you again, but you have said me that the tracker response is empty, but I have converted the hex code and I got this:
"HFYD=Success!"
2017-06-08 16:33:15  INFO: [7D4081E7] id:<PHONE_NUMBER>10158, command type: engineResume sent
2017-06-08 16:33:15 DEBUG: [7D4081E7: 5023 > <IP_ADDRESS>] HEX:<PHONE_NUMBER>00000000484659442c313233343536230000e2920d0a
2017-06-08 16:33:17 DEBUG: [7D4081E7: 5023 < <IP_ADDRESS>] HEX:<PHONE_NUMBER>00000000484659443d53756363657373210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100d484fb0d0a
This:<PHONE_NUMBER>00000000484659443d53756363657373210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100d484fb0d0a
is:
xxfHFYD=Success!Ôû

Here is a breakdown of the message:
7878 - start bit
66 - packet length
15 - protocol number
00 - length of command
...

now I understand ,   the tracker is responding more codes than the traccar needs,  and the another server is filtering the entire code to get only the result.      thank you

78780d010393916023209192009dfb580d0a
this is the hexadecimal of my gps I have tried with the gt06 in the port 5023 also by a tk in the port 5002, and I do not see in line the equipment can help me someone>?


Fix symbol for reaction view example

The README has an example of using the reaction API of adding a :+1: , but the symbol has an underscore which blows up when you cut'n'paste it into your own code.

Thank you!


BREAKING(Ref): add support for forwardRef API

Fixes #3255.

This PR implements support of forwardRef API. This allows to implement more correct behavior and provides ability to careful control of refs.
Affects Modal, Popup and Sidebar components. If you're using components without forwardRef() nothing will change for you. Can be breaking in some cases, see details below.
const ExampleButton = React.forwardRef((props, ref) => (
  <div>
    <button {...props} ref={ref} />
  </div>
))
const buttonRef = React.createRef()

render(
  <Ref innerRef={buttonRef}>
    <ExampleButton>Example</ExampleButton>
  </Ref>
)

Before
buttonRef.current // will point to `div`

After
buttonRef.current // will point to `button`

Released in<EMAIL_ADDRESS>


added wamo

Please add my adapter „wamo” to the latest.

I’m aware about the “Timer” and “Timeout” problematic, but this should be under control in any circumstances.
I’m aware about the dynamic state handling, but this may be necessary in further releases anyway because I plan to make them selectable in adapter options in a further release.

The adapter is not mentioned in the ioBroker forum yet because it was never planed to have this adapter in the official list. All adapter users have reported their problems by e-mail and within Github issues.
But since the SYR company (builder of the hardware) contacted me and gave very positive feedback and also technical support, I thought it may be good to push this project a little bit further and try to get the adapter into the official list. Even if my time is verry limited and I’m really struggling with all the procedures to get the adapter in the official adapter list, I went this road in order to give something back to the SYR company.
Even if there are still a lot of cosmetical issues to address, the current version is running stable without any problems and device disconnections etc. are fully addressed and under control. The adapter is already running on several ioBroker systems and as you can see in Github issues, I have taken care of the problems.
Adapter Ceck on ioBroker.dev is showing an error ([E606] Current adapter version 0.2.5 not found in README.md) but I can’t really fix it because from my point of view everything is OK in README.md. Maybe you can tell me what’s wrong there.
So, thanks for your feedback and for listing the adapter in latest.
Thanks
Claus

RE-CHECK!

Automated adapter checker
ioBroker.wamo

:thumbsup: No errors found

[ ] :eyes: [W400] Cannot find "wamo" in latest repository

Add comment "RE-CHECK!" to start check anew

Anything I have to take care?

Yes me as soon as some time critical topics are solved

Yes me as soon as some time critical topics are solved

No rush, just thought I’m missing something I should have to do.
Thanks for your reply.

Hi,
Thank you for your adater submission. Here are my review comments:

Please remove the package-lock.json changes from this PR here.
Please also create a channel info for https://github.com/smarthausleben/ioBroker.wamo/blob/main/io-package.json#L177
Your logic in timerStarts uses sleep to wait 3s several times. But this gets problematic if the adapter gets unloaded in between. Please add a variable to remember that unload was called and make sure to stop and clear all stuff in such a case. Alternatively use "adapter.delay" and "adapter.setInterval" available since js-controller 4.0 because they are unload-safe
doing setObjectNotExists in every data update loop is not really a perfoermant approach ... consider creating objects once or remember which were already created.
please do not invent new roles (like https://github.com/smarthausleben/ioBroker.wamo/blob/main/lib/device-parameters.js#L458) ... please use the defined ones only https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.md

Thank you for checking and adjusting, just poke here again for a re-check
Ingo

Hello Ingo,
thanks for your review and your suggestions:
I fixed all your mentioned points except number 4

doing setObjectNotExists in every data update loop is not really a perfoermant approach ... consider creating objects once or remember which were already created.

To be honest, I really like the way I’m doing this because I’m somehow on the save site if a user deletes an object manually. But if this has such a big impact on the performance, I probably should use this method just once at startup and then I have to deal with errors from “setState” if I try to put a value into a not existing object.
Would this be a more preferred way to deal with “dynamic states”?
Or maybe there is a better way to do this I haven’t thought about yet?
Thanks for your support.
Claus

In fact it all depends on the number of objects we talk about and how often it is done. If this is done for each refresh then each object is checked for existence once before the state is written (what would do that again).
In my eyes: If an user deletes objects manually without restarting the adapter he is responsible for the effects ;-)ANd in fact a restar of the adapter will then automatically fix all these issues.... so it is self healing with a restart ...
but up to you: Doing it like this is not really a blocker for the repo acceptance, see it as review comment :-)
Ingo

Ok, I recheck the rest tomorrow. Yes this one topic is not a blocker

One last small thing: now with using "this.delay" you also need to increase the js-controller dep in https://github.com/smarthausleben/ioBroker.wamo/blob/main/io-package.json#L177 to >=4.0.0
Please one last "fix" and release .. then we are ok

brrrr... dependencies :-) I changed it to >=4.0.0 as you requested
Sorry it took a bit but I’m still fighting with my release-script process, Because since a while I’m getting strange answer on “executing "git push --tags"

* [new tag]         v0.2.12 -> v0.2.12
! [rejected]        v0.2.3 -> v0.2.3 (already exists)

and I have no clou why.
So I had to do it manually.
Thanks for your re-check

maybe you have a local tag which is ut of sync with github ... delete this local tag ...

Thanks for the hint. I deleted local tag v.0.2.3 ... I'm curious if it works next time.

Is there anything else I have to fix?
Could you already re-check the adapter?

I just released version 0.2.13 where I implemented your suggestion of “setObjectNotExistsAsync” improvement. Objects will now be checked/created during adapter startup only.
It would be great if you can re-check the adapter 😊
Maybe you can also tell me when I approximately can expect to see the adapter in the official list?
I highly appreciate your work here 👍 and many thanks for your answer.

Welcome in the repo

Welcome in the repo

Good news 😃 Thanks a lot 🤗


Update kubernetes-aks-engine-custom-vnet.md

Adding address space considerations when creating a custom vnet for use in Kubernetes clusters.

@JesusAlvarezTorres : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@walterov FYI, please take a look at this change if possible.

@walterov #in-progress

#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Blog: SEO - schema.org

https://search.google.com/test/rich-results
https://schema.org/docs/full.html


Support Proxy protocol

This PR adds functionality to allow Gitea to sit behind an
HAProxy and Proxy protocolled connections directly.
Fix #7508
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

This PR is currently a WIP simply because I have not tested it with a HAProxy as yet and therefore it has not been tested.

PROXY Protocol is a standard that is also implemented by Nginx. I would not call it "HAProxy protcol" as that is just confusing.

Codecov Report

Merging #12527 into master will decrease coverage by 0.16%.
The diff coverage is 4.30%.

@@            Coverage Diff             @@
##           master   #12527      +/-   ##
==========================================
- Coverage   43.52%   43.36%   -0.17%
==========================================
  Files         642      646       +4
  Lines       71003    71270     +267
==========================================
+ Hits        30904    30905       +1
- Misses      35096    35357     +261
- Partials     5003     5008       +5

Impacted Files
Coverage Δ

cmd/web.go
0.00% <0.00%> (ø)

cmd/web_graceful.go
0.00% <0.00%> (ø)

modules/graceful/server_http.go
0.00% <0.00%> (ø)

modules/haproxy/conn.go
0.00% <0.00%> (ø)

modules/haproxy/errors.go
0.00% <0.00%> (ø)

modules/haproxy/listener.go
0.00% <0.00%> (ø)

modules/haproxy/util.go
0.00% <0.00%> (ø)

modules/private/internal.go
35.89% <4.54%> (-29.11%)
:arrow_down:

modules/graceful/server.go
42.10% <15.38%> (-5.31%)
:arrow_down:

modules/setting/setting.go
46.54% <100.00%> (+0.74%)
:arrow_up:

... and 18 more

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 e14f608...dd337e1. Read the comment docs.

Fine. I've renamed and relabelled everything to make it clear it is the PROXY protocol. I'm sorry if it was unclear before.

Any specific reason to not use one of these?

https://github.com/armon/go-proxyproto
https://github.com/pires/go-proxyproto

Also I'm wondering why this needs so much configuration. I thought proxy protocol is pretty much zero-conf as it's detectable by the static byte signature.

https://github.com/armon/go-proxyproto was the only one I found and hitching our stars to a proxy v1 version seems silly.
I didn't find the https://github.com/pires/go-proxyproto one.

Notable TODO I've seen.

I think @silverwind is right. You can not configure that. i.e. gitea.com have a geo domain system. Some locations you will visit the servers directly, other locations, you will visit the haproxy machines. So how to config that?

@lunny In that case you can't use the PROXY protocol. The protocol is pretty strict the PROXY header must always be there -  allowing direct access allows spoofing of PROXY headers and hence IP addresses.
If you want to allow direct communication to the Gitea server you cannot use the PROXY protocol. Any server that is running the PROXY protocol must be behind a proxy all the time.
@silverwind go-proxyproto doesn't handle unix addresses - which should be fine as you wouldn't really want to proxy unix addresses like this - but AFAICS doesn't properly handle reject on missing PROXY header. The protocol is very strict - if you expect a PROXY header it must be there. go-proxyproto allows you to set Require and will error on the first read if it doesn't happen but doesn't close the connection and relies on the upstream user to do this. Similarly AFAICS the PROXY protocol says you must read the header before you send data - which this doesn't appear to do.

So if I understand that protocol correctly, we need to check the first bytes of the request for those static proxy protocol strings and if present, strip the header from the request. This type of checking will incur a performance penalty for non-proxy protocol users, so it'd be best to have it behind a preference. As for the other 5 options this PR adds, I'm not sure they are warranted, thought.
Regarding unix sockets: It'd certainly be possible to combine unix sockets with proxy protocol but it's a rather obscure combination, so I'm happy if we don't support that initially.

The protocol is very clear:
The receiver MUST NOT start processing the connection before it receives a
complete and valid PROXY protocol header. This is particularly important for
protocols where the receiver is expected to speak first (eg: SMTP, FTP or SSH).
The receiver may apply a short timeout and decide to abort the connection if
the protocol header is not seen within a few seconds (at least 3 seconds to
cover a TCP retransmit).

The receiver MUST be configured to only receive the protocol described in this
specification and MUST not try to guess whether the protocol header is present
or not. This means that the protocol explicitly prevents port sharing between
public and private access. Otherwise it would open a major security breach by
allowing untrusted parties to spoof their connection addresses. The receiver
SHOULD ensure proper access filtering so that only trusted proxies are allowed
to use this protocol.

I've implemented the unix sockets already.
The options are the absolute minimum required for this to work. We listen in 3 places:

Main socket (HTTP/HTTPS/Unix)
HTTP Redirector
SSH

Any solution that does not allow you to choose to place which ones behind the Proxy will end up having to implement that in future.
For HTTPS the question is whether the PROXY protocol occurs before or after TLS negotiation - therefore that needs an option (AFAIU there is no equivalent of TLS bridging for SSH as it doesn't make sense IMO)
There's an option to provide the timeout for the header - I can't understand why that is not a reasonable thing.
There's an option whether to accept UNKNOWN headers - which is explicitly recommended in the Spec.
Finally there is an option regarding whether when gitea speaks to itself "internally" it needs to use the PROXY protocol. It is not hard to imagine a situation whereby the locally running gitea manager/gitea serv/gitea hook might need to be redirected through the proxy rather than going directly - this option provides a way to do that.

I think we should move this to 1.14 unless there's definitely someone who really wants it in 1.13

I plan to test this against Nginx's PROXY protocol implementation later.

@zeripath can you resolve conflicts?

I think I'm happy for this to be mothballed unless there actual call for this to be merged. It may simply be a feature too far.

Conflicts fixed

@6543 closed on purpose?

yes question was for some time ago if it is still desired and there was no real consensus despide: the question if we should close it
what I have done now :)

I have a feeling that closing this might be the wrong thing as without HA proxy support there's no way to correctly handle loading bearing for the internal SSH.

I agree with @zeripath

well let it open then until next disscusion

Please resolve the conflicts.

CI failure is related.

OK another release and another review...
I think we do actually need this as we cannot do load bearing for the inbuilt SSH without this.

Is it possible to simplify the PROXY protocol usage?
IMO:

If a user uses HTTP protocol, then he could set X-Real-IP.
If a user uses TLS termination or TLS bridging, he could also set X-Real-IP.
The only usage for PROXY protocol is that the user uses TLS passthrough or SSH protocol.

And some questions .... I read the code many times to get to know what the options really mean .... I believe most users will have difficulty to understand them and set these options correctly ....

If users set wrong options (eg: XXX_USE_PROXY_PROTOCOL=true), it would be very difficult for them to debug the problem.

Put these options in a separate document for advanced users only?
Print enough logs during startup?
How to debug problem if something goes wrong, otherwise there would be helpless issues for such problems.

The option USE_PROXY_PROTOCOL seems to control all PROXY protocols on/off, however, it doesn't. There is a separate SSH_SERVER_USE_PROXY_PROTOCOL. Should USE_PROXY_PROTOCOL be called WEB_SERVER_USE_PROXY_PROTOCOL instead? Or should we only support TLS passthrough (as above)?
LOCAL_USE_PROXY_PROTOCOL seems like SSH_SERVER_USE_PROXY_PROTOCOL, but they are totally different, one is a client option, the other is a server option. Maybe INTERNAL_SEND_PROXY_PROTOCOL, we already have the concept InternalToken.

And I have an idea about how to reduce possible errors. PROXY protocol is different from other protocols. We can make a MuxListener to parse first serveral bytes to guess what protocol is it. Then we can use one port for all HTTP/HTTPS/SSH/PROXY protocols.
Then, we only need 2 options:

PROXY_PROTOCOL_ENABLED=true
PROXY_PROTOCOL_TRUESTD_IP=<IP_ADDRESS>/8

All of the options are needed.

See https://github.com/go-gitea/gitea/pull/12527#issuecomment-676204103

All of the options are needed.
See #12527 (comment)

Why not internal SSH only? HTTP/HTTPS can use X-Real-IP header, that's more straight, and all reverse-proxies support it (including haproxy). And I read the issue #7508 again, the author also said that they can handle HTTP/HTTPS, the only need is internal SSH server. Usually no HTTP/HTTPS server is running behind a PROXY protocol.
I can not imagine a real use case where the users must use PROXY protocol for the HTTP/HTTPS server. It's easy to add code in the code base but it's hard to remove them, so maybe we can be more careful about adding new features (especially for rare cases). We can only make internal SSH support PROXY protocol and it does resolve #7508 . If there is really further requirements for HTTP/HTTPS, we can evaluate why X-Real-IP can not be used and then make another PR.

I would love to see at least PROXY protocol v1 support for the internal SSH server added soon. Many hosting configurations (including in k8s) make the use of a LB essential even if only running one app server instance. This means that without such support all incoming connections appear to come from the same LB IPs which is far from ideal.

Needs a rebase.

conflicts resolved.
Should be re-reviewed prior to merging though.

OK I think I've fixed the mismerges.


PerFormer Restart if setting a Tracklayout to MIDI/CV

Hi Simon,
first thanx for your incredible work. Performer is such a great Seq. Interactive BOM and Build guide made it an easy "gothrough". the
Right now i´m trying to explore midifunctions.
my mididevice is an Arturia MiniBrute or an Korg R3. both working both ways. MidiJack und USB midi.
midi is received at the moment when i´m connecting the device no need to set a track to MIDI/CV. i can record midi notes to track which is selected.
but if a track is set to MIDI/CV and PerFormer is receiving a MIDI signal the module reboots.
i tried both midi options. USB and MidiJack. both devices same behavior.
did i miss something or is this NOT the way it should work.
Kind regards. Manuel

Does this happen with both the R3 and minibrute?

Yes with both. On both ways USB and midijack.
---- Simon Kallweit schrieb ----

Does this happen with both the R3 and minibrute?
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/westlicht/performer/issues/134#issuecomment-533780036

With newest firmware and without loading a project first?

Yepp. Latest Firmware. No project loaded.
---- Simon Kallweit schrieb ----

With newest firmware and without loading a project first?
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/westlicht/performer/issues/134#issuecomment-533780980

That is rather strange. I will try to reproduce. But if you can give the extract instructions of how to reproduce this, I can probably reproduce it on my end.

I'll make a video tomorrow with exact instruction and behavior.
---- Simon Kallweit schrieb ----

That is rather strange. I will try to reproduce. But if you can give the extract instructions of how to reproduce this, I can probably reproduce it on my end.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/westlicht/performer/issues/134#issuecomment-533799763

Hi Simon, hope this helps. Midi is coming from MiniBrute. Same behavior with Korg R3. Selected track receives Midi and sends it to dedicated output (CV and Gate). Track is in Note Layout. When track is set to Midi/CV Layout and Midi Source is selected the module resets.
https://youtu.be/YZ0zmu0Djco
https://youtu.be/HDBm29e2tt4
---- Simon Kallweit schrieb ----

That is rather strange. I will try to reproduce. But if you can give the extract instructions of how to reproduce this, I can probably reproduce it on my end.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/westlicht/performer/issues/134#issuecomment-533799763

Thanks for the detailed bug report. Will try to reproduce this evening.

@smootmather I just tried to reproduce the bug but had no luck. I actually have a MiniBrute too so the test settings were pretty much equal. Can you retry without the SDCard in the slot (also on startup) to make sure you have the default init settings. If the reset does not happen with the SDCard out, it's related to something stored in your patch. Then please attach that patch by copying it from the SDCard.

@smootmather also you are running the latest 0.1.31 release, right?

Restarted it without SD Card. Same behavior. Could it be an Hardwareproblem. something soldered not probably...should i try to reflash the stm?
---- Simon Kallweit schrieb ----

@smootmather I just tried to reproduce the bug but had no luck. I actually have a MiniBrute too so the test settings were pretty much equal. Can you retry without the SDCard in the slot (also on startup) to make sure you have the default init settings. If the reset does not happen with the SDCard out, it's related to something stored in your patch. Then please attach that patch by copying it from the SDCard.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/westlicht/performer/issues/134#issuecomment-533912298

Because it happens both with USB and MIDI I didn't think it's a hardware issue, at least not an obvious one. I'm a bit in the dark here unfortunately.

Hey Simon, i reprogrammed the STM and everything works as it should. Sorry for wasting your time. Thanx again for this incredible sequencer.

Glad to hear that!


Vector flag

vector url argument for new editor, embed and map. If it's true, add vector: true to the vizjson, vector: false otherwise.

cc @alonsogarciapablo

:+1:


Content author group cannot upload files or change page permissions by default

Affected Version
4.4.0+ (probably earlier than this too)
Description
A user belonging only to the default Content Author group is unable to upload files, or change page permissions
If you tick the check-boxes in the Security > Groups > Content Authors

Edit any file
Edit any page
Then you can upload files and/or edit page permissions.  However, this is probably a bad idea for other security related reasons.

You can also grant the equivalent permissions in Group::requireDefaultRecords()
Permission::grant($authorGroup->ID, 'FILE_EDIT_ALL');
Permission::grant($authorGroup->ID, 'SITETREE_EDIT_ALL');

Steps to Reproduce
Create a new user, add them to the Content Author group, login as that user in a different browser.  Attempt to upload a file (upload icon is greyed out) or change view/edit permissions on Page (fields are disabled)

It seems that one of the existing issues here is that there's no better permissions to grant a 'Content Author' without stepping on the toes of security.
I believe granting a group the following permissions will override any permissions to lock down a certain file/folder or page to specific groups:

Edit any file
Edit any page

Now, it would be worth reassessing how these default groups are being used now, but there's is functionality to support the current way things are set up:
0. Assess what areas of the CMS should be editable by different users

Assign users to the Content Author group
Use the Access tab in site settings to set page edit permissions across the site (to this or another group, or 'logged-in users')
Set access permissions in the Files area to parent folders (to this or another group, or 'logged-in users')

I'm not actually sure this is a problem. I don't ever recall shipping a project where "Content Authors" was actively use as-is:

Either the project was small and only had 2-3 editors who trusted each other and were all administrators
Or the project had more complex ACL requirements that went beyond a simple "Administrator/Content-Author" dynamic.

In the second case you would have to spend some time figuring what level of access the actual editors needed and sorting out what permission they should have on files would be part of it.
My thought here, is let's go talk to a few bespoke teams and see how they go around addressing this problem and see who is actually shipping a plain "Administrator/Content-Author" set up.
What if we decide it's problem
If we decide it's a problem. There's a two ways we could address it:

You grant the "Edit any file" permission to "Content Authors"
You set the CanEdit permission on folders to be "Member of the Content Authors Group"

"Edit any file" is a blunt tool. It will bypass whatever Edit permission you set on a file, so it precludes you from having a folder that content authors can't access. It's also buggy:

It doesn't grant the right to see files. So you end up in the paradoxical situation of having edit permission on stuff you can't actually see.
It doesn't grant you permission to see Groups, so you can change permission on a file, but you won't view any groups in the dropdown.
https://www.youtube.com/watch?v=NMa8kyrgyM0&feature=youtu.be

On the second possible solution, permissions can not be applied to the root folder, because it's not an actual folder. You could apply it by default to the Uploads folder, but you would still be preventing Content Authors from creating new top level Folders.
So neither of those scenarios look super helpful at this stage. Even if we made them less buggy, it's not clear that either of them is the obvious default. I could image that some project would want would  to grant all permission to all files to content authors. Other projects might want to grant them access on a per folder basis. Other project might actually be perfectly fine with giving them read-only access to files.


Updated Qobo cakephp/utils plugin to v11 (task #8712)

Codecov Report

Merging #734 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #734   +/-   ##
=========================================
  Coverage     38.04%   38.04%
  Complexity     1189     1189
=========================================
  Files           106      106
  Lines          3951     3951
=========================================
  Hits           1503     1503
  Misses         2448     2448

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 fd47b1e...884de2b. Read the comment docs.


Usage instruction

Hey, how to use this thing? I would like to know. I'm gonna use it to download Jam tracks

hey mate i just built the executable but cant figure out how to use it. would've thought i would just have to drag the json file onto the exe but no luck. sorry to bother

Did you get it workin?

Did you get it workin?

Nope, but I found this Telegram group, where you can easily find all multitracks https://t.me/FortniteFestivalStems


Address GDPR compliance requirements

I'd suggest implementing this using a bottom offcanvas modal dialog from Bootstrap 5.2+. If we go this route, we might want to wait for Docsy to migrate. In the meantime, maybe we can use a plain Bootstrap 4 modal dialog (4.x)?
Resources:

CNCF: https://github.com/cncf/cncf.io/blob/main/web/wp-content/themes/cncf-twenty-two/components/cookie-banner.php

Tasks:

[ ] Add cookie- / privacy-consent dialog
[ ] Address CDN issues -- some countries have regulations relative to the use of resources outside of the host domain.

@svrnm @cartermp - how about something like this as a starting point?

I'm linking to the Linux Foundation Cookie policy, which covers the websites of all its projects.
/cc @caniszczyk

I'll reply to https://github.com/open-telemetry/opentelemetry.io/pull/1653#issuecomment-1223879691 here.
If I understand correctly, you (@svrnm) would be ok with the following:

Assume opt-in, like cncf.io does
Support do-not-track for GA and OTel
Have the dialog be non-modal and a bit more discrete, like cncf.io

Is that right?

Assume opt-in, like cncf.io does

cncf.io neither provides an Opt-In, nor an Opt-Out, it implicitly sets the cookies and only provides an "Accept" button to acknowledge the cookies & tracking. Per my understanding, the following is required:

Do not set (non-functional) cookies or enable any tracking without the consent of the user (which is equivalent to the user clicking on decline)
There needs to be an "accept" and a "decline" button
If and only if the user clicks on accept the tracking & setting the non-functional cookies is allowed
If the user clicks "decline", it's okay to set a cookie that stores that information, since this can be declared as a functional cookie.

I have no legal expertise on that, so please do not assume that this is correct.

Support do-not-track for GA and OTel

As "nice to have", yes.

Have the dialog be non-modal and a bit more discrete, like cncf.io

As "nice to have, yes

FYI, @caniszczyk confirmed on 08/24 that we have a thumbs-up to go with the cncf.io approach for now. So I'll codify that as a first step and we can take it from there.

Hmmmm. What if we just didn't use google analytics? I don't personally feel I'll ever need it for the site (users by geo-region doesn't change things, user journeys are nice in theory but I never look at 'em, etc.) And we already capture anonymized requests by http route which is a more accurate count (even if it's a blunt instrument that can be spoofed).

LF/CNCF requires access to analytics, and GA is it for now.

aha, gotcha. Bummer!

Reference from @svrnm: https://edpb.europa.eu/system/files/2023-01/edpb_20230118_report_cookie_banner_taskforce_en.pdf


Improve module sizing

As MagicMirror lets modules overflow their space, this module, when configured in other places different that the top and bottom bars, overflowed everywhere, causing a chaos :)
Changes

This module's max-width will never be greater than the maximum one designated for each region. This is scalable to whatever resolution the user is using
If no size is specified, the module will use the medium size,as it makles sense as it's somehow the same size that most modules use

Screenshots
Here are some screenshots from the module positioned in top_right
XSmall

Small

Medium

Large

As you can see, the sizes are very similar to the previous sizes, but they are scaled properly.
Before this PR
Screenshot in ``top_right```and without a size specified and without other modules:

Same as above but with a module in top_left. Notice how the top_left module is completely covered by this one:

Thank you for doing this!

Code looks clean. I’m going to merge it.

@arthurgarzajr Thank you very much for your module and for merging this.
Btw, I merged #11 in my own translation-test branch after testing the size changes because I liked that now the books appeared translated as well. It's a good change so I ping you to consider it and rebase it in your master branch, as you won't need to maintain translations anymore with it :)