Fehler bei Kommunikation mit Google API(17)

I installed the app and tried to activate "Risiko-Ermittlung Aktivieren". But that throws an error:
Fehler bei Kommunikation mit Google API(17).
As it is not possible to select the error code, I took screenshots of the detailed error description:

My system: Android 9, ZTE Axon 9 Pro

Hi, i am facing the same error.
Using a Oneplus 7 Pro on Android 10 (OxygenOS 10.0.5) havily debloatet and rooted with Magisk.
I will have a look at how the app handles when I undebloat my device later in the day.
I tried with wifi and mobile internet. So it seems to be a client device problem.
Let me know if I can help troubleshooting.
Best regards

Hi, i am facing the same error.
Using a Oneplus 7 Pro on Android 10 (OxygenOS 10.0.5) havily debloatet and rooted with Magisk.
I will have a look at how the app handles when I undebloat my device later in the day.
I tried with wifi and mobile internet. So it seems to be a client device problem.
Let me know if I can help troubleshooting.
Best regards

I'm on the 7 Pro with stock OxygenOS 10, the app works fine for me.
Have you removed anything related to Google Play Services? Are you running the latest version of them?

I run into the same error with a Samsung J5 running android 7.1.1.
I also had to remove all cached data from google play services and update the version before installing since I got an "Authentifizierung erforderlich" error from google play.

Same error appears with Huawei p20 lite, Android 9, EMUI 9.1.0 ... updating google services didn't work. Let me know if I can provide more information.

Same problem here too:
OS: Android 8.0.0
Phone Model: LM-G710EM
Google Play Services: updated few minutes ago
I retried it several times. I restart my phone.  Every time the same error.

Same problem here too:
APP: Versio 1.0.0
OS: Android 7.0
Phone: m-net Power1
The second problem is that I can't take a screen shot
(e.g. adb shell screencap -p /sdcard/screen.png) from screens of the app!

The same 9002 Error with installed and activated NetGuard.
Perhaps an information in App "your are not connected to the internet... but contacts will be recorded" how ever the flow should look
Derselbe 9002 Fehler bei installiertem und aktiviertem NetGuard.
Vielleicht eine Information in der App "Sie sind nicht mit dem Internet verbunden... aber Kontakte werden aufgezeichnet", wie auch immer der Ablauf aussehen soll

Haha i have the same problem, I want to install the app via Android SDK, but later in the app error Google API (17).

Country-settings in your Google-Account have to match with corresponding Covid-App!
Change it or create a new one!
https://support.google.com/googleplay/answer/7431675?hl=de
https://support.google.com/googleplay/answer/7431675?hl=en

I want to install this app but not from google play, i want to install it from github.

I tried it with .apk too and it doesn't work until I set this alocation.

Sorry, my country is set to German since account creation. I think the app requires German, so I could not change anyrhing.byeSimonAm 16.06.2020 12:23 schrieb Kobold82<EMAIL_ADDRESS>I tried it with .apk too and it doesn't work until I set this alocation.
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

@simhey314
Check: Device settings >  Google services & settings > COVID-19 service
You should see the COVID-App installed. If you installed it from .apk uninstall it and reinstall it directly from Google PlayStore: https://play.google.com/store/apps/details?id=de.rki.coronawarnapp

Same here, Pixel 3a XL!

I dont wan to install it from play store
because I don't want them to have changed the code, so they can spy on me even more easily (I know I am a bit paranoid)

I can solve the error/problem:

uninstall the app
reinstall the app

I guess I it was a problem with an old google play service/update order.
I did:

install the corvid19 app
start it and get an error
update the google play service
start it, get the api(17) error

I simply reinstall the app and it works.

Hi! I have a Honor 9Lite, Android 9.1.0, all updated and reinstalled app several times, same error code!
So Kobold82 was right, I had to add Germany as my coutnry in the Google Play settings.  However Google didnt permit it unless I added a payment method that was based in Germany. So I added my paypal and only thereafter the country setting was approved to Germany. The corona app started working normally, no error codes no more.
Did someone else also have to add a payment method to get the country to Germany?

@Kobold82:
My Country is Germany &  my payment method is voucher.
My PlayStore is V20.4.18 & my Play-Services are V20.18.17.
But I got the API(17) error.

I currently experience the same problem! Huawei P20 Pro, Android 1 and Google Play services 20.18.17 and play store country set to Germany.
Even after reinstalling several times, clearing the cache of play services and play store, the same error message is created:
"Cause: 3
Something went wrong.
Error when communication with Google API (17)"
Thanks everyone for helping or fixing the bug :)

Same error:
Samsung Galaxy S10+
Android Version: 10
One UI-Version: 2.1
Kernel: 4.14.113-1873-1944 - Jun 3 2020
Clearing the cache did not solve the problem!
best regards
dirk

for me it was solved claering the google play services data. and reinstalling the corona warn app. I tried it 3 or 4 times in different orders until it worked.

Now I have solved:

clearing cache & data of Play-Store & Play-Services
turn on bluetooth manually
reboot the phone
stating the corona app

@Kobold82:
...
Under Settings > Google: Services: COVID-19 Exposure Notifications On/1app

I have the same problem and your last line could be a hint. I have two nearly identical Samsung Galaxy A70, both updated before installing the Corona Warn App and one works, the other has this issue. It seems the difference is, that under this setting (Google - Services) the one that works has a German entry called "Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten" and when clicking on the entry, you get to "Corona-Warn".
On the other device that's not working, the entry has the heading "COVID-19 Exposure Notifications" with a smaller sub title "On/1app". When you click it, you get to an empty page.
The language setting of the account was mentioned, but both devices use the same account, and it is set to "Deutschland" from the beginning.
Somehow it seems, one device got an English Notification API which is not compatible with the German app. How do I get rid of it, that is replace it with the German version? Clearing data and cache from Play Store and Play Services didn't help either. At first, the English service "COVID-19 Exposure Notifications" was gone, but came reappeared after some waiting.
Clearing the cache from Google Play Services, reinstalling Covid Warn App and rebooting several times did not help. Covid Warn App was installed from the play store.
In case it matters, one device identifies as SM-A705FN, the other as SM-A705FN/DS, both have Android 10, One UI 2.0, same kernel, same build number, same security patch level. Everything normal, not rooted, etc. There is only one difference: one device was switches off for a longer period of time (maybe 2 month), but I did all the updates before installing Corona Warn App.

Yes, you are right:
Not working if you see this:
Settings > Google: Services: "COVID-19 Exposure Notifications On/1app"
And working if you see this:
Settings > Google: Services: "Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten"
My language settings are:

phone: German, English (US), Czech
account: German
Try to clear cache & data of Play-Store & Play-Services,
turn on wifi & bluetooth, reboot, wait about 5 minutes and then start the corona app.

The problem is fixed on my device. As I wrote earlier, I had deleted data and cache from Google Play and Google Play Services, then at first the service was gone, but then the English service reappeared after a couple of minutes and I still got the exception. Now I did nothing except wait for about an hour and now I have the German service and it works. I don't know what I did right :-).
By the way, issue #508 seems to be the same bug, but it is speculated that the problem occurs only with self-built versions of the app. This was not the case here. I never did compile the app, it came straight from the Play Store.
And an information for people who might fear, that deleting the data from Google Play might harm you (i.e. the phone might forget it's installed apps): this is not the case. So far I have not found any negative effects.

I can solve the error/problem:
1. uninstall the app

2. reinstall the app

I guess I it was a problem with an old google play service/update order.
I did:
1. install the corvid19 app

2. start it and get an error

3. update the google play service

4. start it, get the api(17) error

I simply reinstall the app and it works.

don't work...
after remove corona-app (and empty cache) and restart >
"Fehler bei Zugriff auf Google Play-Dienste
Please complete action required by Carrier Services"
So it's a Google-Problem?

Same issue here. Clearing Cache and rebooting does not help.

Same issue here:
Device: Sonx Xperia XA1+
Android: 8.0.0
No "COVID-19 Exposure Notifications" anywhere in the system setup available

Install Google Play Services v20.21.15 solve my problem. Everything looks fine.
best regards
dirk

Same error:
Samsung Galaxy S10+
Android Version: 10
One UI-Version: 2.1
Kernel: 4.14.113-1873-1944 - Jun 3 2020
Clearing the cache did not solve the problem!
best regards
dirk

Install Google Play Services v20.21.15 solve my problem. Everything looks fine.
best regards
dirk

Where do you get a new one? My "Google Play-Dienste" is 20.18.75 and there is no update available.

https://drive.google.com/file/d/1KCGH__aTH75nd3kK_1v83iiVFTcyKzuH/view?usp=drivesdk

https://drive.google.com/file/d/1KCGH__aTH75nd3kK_1v83iiVFTcyKzuH/view?usp=drivesdk

"Beim parsen des Pakets ist ein Problem aufgetreten"

https://drive.google.com/file/d/1KCGH__aTH75nd3kK_1v83iiVFTcyKzuH/view?usp=drivesdk

Any "official" place to get this from?

As I wrote earlier, I was able to solve the problem and I didn't have to install some obscure APK from a Google Drive (sorry traut21 :-). I still have version 20.18.17. I did follow more or less MaxPonozka's advice:
- clearing cache & data of Play-Store & Play-Services
- turn on wlan & bluetooth manually
- reboot the phone
- waiting 5 minutes
- starting the corona app

It didn't work after 5 minutes, but after about an hour, the English Notification Service under settings - google -  services changed to German and then the app works.
As it seems to be a Play Services issue, if you have time, I would first try to delete data & cache from Play Services only and wait for some time. Maybe it's not necessary to delete PlayStore data & cache.

Okay, I think I just found a fix (at least for me).

check in your Settings, if your Region and Language are set to German(y) before you install the App.
if you updated the Google Play Services after you changed you Region/Language, then repeat setting the Region/Language to German(y)

As I wrote earlier, I was able to solve the problem and I didn't have to install some obscure APK from a Google Drive (sorry dynamicduo4000 :-). I still have version 20.18.17. I did follow more or less MaxPonozka's advice:
- clearing cache & data of Play-Store & Play-Services
- turn on wlan & bluetooth manually
- reboot the phone
- waiting 5 minutes
- starting the corona app

It didn't work after 5 minutes, but after about an hour, the English Notification Service under settings - google -  services changed to German and then the app works.
As it seems to be a Play Services issue, if you have time, I would first try to delete data & cache from Play Services only and wait for some time. Maybe it's not necessary to delete PlayStore data & cache.

Clearing cache AND DATA, reboot, wait helped me. Thanks! Still on v20.18.17

It didn't work after 5 minutes, but after about an hour, the English Notification Service under settings - google -  services changed to German and then the app works.
As it seems to be a Play Services issue, if you have time, I would first try to delete data & cache from Play Services only and wait for some time. Maybe it's not necessary to delete PlayStore data & cache.

Clearing cache AND DATA, reboot, wait helped me. Thanks! Still on v20.18.17

Deleting the Play Services DATA and rebooting (finally) deleted the "COVID-19 Exposure Notifications On/1app" under Google Services. Updating Play Services from v20.18.17 to v20.21.17 added the German "Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten".
(Only problem left now, when I go to the CWA on the Play Store website and click on "install" the site DOES ask me to register/sign in to download the app. pas cool.  >:(  )

@littleboxis any news?
im also on the 7pro, but on a custom rom without any google. i cant use exposure logging and i get a noti saying i need to update play services:

Updating Play Services from v20.18.17 to v20.21.17 added the German "Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten".

Can confirm. After (manually) updating Play Services to v20.21.17, it's finally started working for me!

I can confirm the finding regarding the (really cumbersome and absolutely not straight-forward to resolve!) issue evolving around the language setting.
Having two (older) Huawei devices, both fully up to date and with a seemingly German system running, the one device worked as expected, the other one kept reminding me to update Google Play Services. However, the version of the play services (20.18.17) was the same on both devices. Seeing On/1app in the Play Services settings in comparison to the "right" stuff on the other device was the main difference. HOWEVER: even finding the Play Services settings is a pain. Clearing the cache and the data appears weird: cache is of course the first thing to try out, but clearing all the data without knowing what will actually be wiped is more severe (it claims that accounts and so fourth will be banned). Then I manually tried switching the locale in google play store (BTW: It was never supposed to be anything but the German version and I cannot tell, if it wasn't as there was no evidence, that it was not the German location already). Having to add (and then remove) a payment method is even more annoying plus it is only possible to switch the locale once a year.
In conclusion it appears that there is a language/region incompatibility issue that should be cleared out a.s.a.p. as it affects not just a handful of devices and not just everyday Joe users but also users that keep diving into the matter in order to resolve the issue. It must also be noted that a substantial amount of people from other countries (and I am not referring to refugees only but to many people that are working and living here) will have different locales and they should not be excluded from the usage of the app (which I suppose to happen seeing the reported issues). I spent several hours due to a high personal motivation of getting the thing going but actually most people will just uninstall after the first unsuccessful try, and then they will continue blaming the 20Mio € that went into it (though if the app helps saving a few weeks of intensive care, then this will already be made up for and the 20 Mio are ridiculous in comparison to the economic impact due to other, equally important measures).
Great to have the app (finally after a long journey), but having it work seemlessly across devices (including the use of the novel Huawei Mobile Services API a.s.a.p.) is crucial in order to actually have broad coverage.

So I had two Google Play Services updates show up. The second one however came in quite late. I assume that it was a fix in my case since after updating a second time the app startet to work (Oneplus 7 Pro, Magisk, debloat).
My language/region settings are english(Germany).

One thing to keep in mind: apparently you have to install the app in the main profile, in case you have multiple profiles.
I installed it in my "home" profile on my work mobile, and got the same error as in this report. The hint was that settings doesn't show the "Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten". I've now installed it in my main (work) profile, and it works there.
However, I wonder whether the app will be useful if I'm walking around while the secondary profile is active?

I had the same issue with a Samsung Galaxy J5 (2016, duos), Android 7.1.1,
steps I took to get it running:

removed the Corona warning app
cleared the cache of Google Play-Dienste (v20.21.17)
turned on manually Bluetooth and GPS (Standordtdienste)
reinstalled the Corona warning app and started
Everything works now fine.

Maybe the workarounds should get added more prominently somewhere under workarounds for known issues? FAQs? Or a special page with troubleshooting tips?

One thing to keep in mind: apparently you have to install the app in the main profile, in case you have multiple profiles.
I installed it in my "home" profile on my work mobile, and got the same error as in this report. The hint was that settings doesn't show the "Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten". I've now installed it in my main (work) profile, and it works there.
However, I wonder whether the app will be useful if I'm walking around while the secondary profile is active?

Similar behavior here. App was installed while second user/profile active. Not working. Checked the "main" user: working with no issue.
That should be fixed soon as maybe parents wants their kids phones have running the app while don't giving them full access to the phone - just one use case for the profiles. In my case, the 2nd user is only limited in the way that android is limiting it. I had no additional restrictions enabled when activating it.
Error persistent with app version 1.0.2. from play store.
Device Huawei P20 pro

Looks like everybody who still sees this issue needs to update Google Play Services to a version > 20.18.17. Unfortunately, Google Play Store does not yet distribute such a version for some affected platform variants, such as for my "100408".
I have therefore checked here: https://android-apk.org/com.google.android.gms/
what the most recent version for my platform variant is - for me, this is 20.21.15<PHONE_NUMBER>09149) and installed this version manually from APK.
After installing from APK, just to be on the safe side, reboot your device, and then start Corona-Warn-App once again - for me, it now started to work :-)
Question to the developers: Why don't you officially document this issue & the minimum version of Google Play Services that is needed to properly run the app for every platform variant?
This type of error is completely unresolvable for any Android newbie!!!
Hope this helps...
awl1

Looks like everybody who still sees this issue needs to update Google Play Services to a version > 20.18.17.
[...]
Hope this helps...
awl1

Not everybody.
In my case, the app works - just only in the main profile, so it's not only an issue caused by the play services version.
I've version 20.24.13<PHONE_NUMBER>77029) running.
But after all, you're right, no one that's just a user would be able to fix that even if it's solvable by clearing data, reinstall or similar steps.

A more user-friendly message is shown  with https://github.com/corona-warn-app/cwa-app-android/pull/648.
There are various reasons listed why this error occurs in https://www.coronawarn.app/de/faq/#cause_3

It still does not work even after completing all the steps mentioned above and installing the newest play services directly from google. Rebooted, cleared all data and still have no way to get it working. Can somebody from the dev team please help?? And it seems like I'm not the only one...

@kyleKuz Please verify whether any of these reasons explain the error, you might not be able to use the app.
Der Fehler bedeutet, dass Dein Gerät aus einem oder mehreren der folgenden Gründe die Risiko-Ermittlung nicht durchführen kann:
Deine Google Play-Dienste sind veraltet.
Deine Google Play-Landesversion ist nicht Deutschland.

Dein Gerät wurde modifiziert (z. B. gerooted).
Du hast mehrere Benutzerkonten auf Deinem Gerät, und die App wird für einen nicht-primären User (ohne Administrationsrechte) ausgeführt.

In my case, the app works. (...) I've version 20.24.13<PHONE_NUMBER>77029) running.

How did you get this version? AFAIK, this is a beta version, so you seem to also have installed it by hand. Seems like in the meantime, a non-beta release 20.21.17 is available, but even this is still NOT (at least not for me) auto-updateable via Google Play Store:
https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-20-21-17-release/google-play-services-20-21-17-100408-316502805-android-apk-download/

@kyleKuz Please verify whether any of these reasons explain the error, you might not be able to use the app.
Der Fehler bedeutet, dass Dein Gerät aus einem oder mehreren der folgenden Gründe die Risiko-Ermittlung nicht durchführen kann:
Deine Google Play-Dienste sind veraltet.
Deine Google Play-Landesversion ist nicht Deutschland.

Dein Gerät wurde modifiziert (z. B. gerooted).
Du hast mehrere Benutzerkonten auf Deinem Gerät, und die App wird für einen nicht-primären User (ohne Administrationsrechte) ausgeführt.

Google Play is updated to v 18.3.13
Location: Germany
Of course I installed over the play store
Phone is not rooted or anything like that.
Only one (admin) user on the phone.
Huawei phone was bought before the whole US-China trade war, so it has google play services.
 Therefore the list from @friedger is not complete. It seems that somehow an English version can get installed, even though the country was always Germany and the device is updated, not rooted, etc. But I was able to fix it.
You said you followed all the steps above, but which ones? Did you delete cache AND data from Google Play Services (and maybe Google Play)? I deleted cache AND data from both and after waiting for about an hour, suddenly it worked. No newer versions necessary.
As it seems to be a Google Play Services issue I think, deleting data AND cache from Google Play might not be necessary, but I had already done it. BTW, all deletions didn't have any negative effect so far (like one could think, the device forgets which apps are installed when deleting Google Play data).

@kyleKuz @friedger @Michael-635: To me, it seems as if Google Play Services versions <= 20.18.17 have an issue that - most probably under one or more additional conditions like the ones already discussed - make it impossible to get things resolved.
At least for me, everything only started working after upgrading Google Play Services to a more recent version (current release version: 20.21.17, although this still is not automatically distributed via Play Store)...
@kyleKuz: Try to manually upgrade Google Play Services to a newer release, and immediately after upgrading, reboot your phone. For me, the next attempt to start Corona-Warn-App after the reboot was successful :-)

Thank you all for your input. While we cannot solve this issue directly, the team implemented a more descriptive error description in the latest app version that also links to the FAQ which contain more information than could possible fit into a single mobile screen.

How did you get this version?

Installed via play store

Thank you all for your input. While we cannot solve this issue directly, the team implemented a more descriptive error description in the latest app version that also links to the FAQ which contain more information than could possible fit into a single mobile screen.

So is there still any interest to drive that issue? Or does that mean "tough luck" to all that want to have the devices used with restricted rights. Maybe for their kids?

I don't know what about which kids - but my Sony Xperia XA1 plus still does not work, while even a low budget Honor device within the family now does work.
So I guess it's now more up to Sony whether to fix their products.

Thank you all for your input. While we cannot solve this issue directly, the team implemented a more descriptive error description in the latest app version that also links to the FAQ which contain more information than could possible fit into a single mobile screen.

So is there still any interest to drive that issue? Or does that mean "tough luck" to all that want to have the devices used with restricted rights. Maybe for their kids?

Of course, we‘re interested in ensuring that the app works for as many people as possible. For this particular error 3 issue this is however not that trivial since many solutions are just updates and settings outside the application. That‘s why we expanded the FAQ and provided more descriptive error messages. If the problem still persists despite following the FAQ, it would be great to have a new dedicated issue for your specific problem since in this thread just mixed many different issues over time.

ok, so I'll move to he proper thread

I have seen this issue too and it got solved by updating to Google Play Services 20.21.17 and CWA 1.0.4.

Here I do not see "Google Play-Dienste" within the Google Play Store list of installed apps, but via Einstellungen > Apps & Benachrichtigungen > App-Info > Alle Apps. It there says Version 20.21.17<PHONE_NUMBER>02805), "App installiert vom Google Play Store". CWA 1.0.4 - never a success.

Maybe this will help someone. I used Smart Switch to transfer data to a new Samsung mobile. On the new mobile I couldn't get the warn app to work. I had to delete play store data and cache. Once I had done that I saw the covid service in the Google settings. And when I reinstalled the warn app it finally worked.


help please i don have control withn my pc

[Enter feedback here]

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

ID: 9f784502-84dc-1122-eab4-1eeeb08da046
Version Independent ID: 21f210a7-4c38-8f62-0226-121562617fef
Content: Memory integrity - Windows security
Content Source: windows/security/threat-protection/device-guard/memory-integrity.md
Product: m365-security
Technology: mde
GitHub Login: @levinec
Microsoft Alias: ellevin

@alexaguilar89 .
The intention of this repository is to improve on the existing documentation by providing the users a way to report factual errors, improvement suggestions and request updates for new versions.
you can get all help from answers.microsoft.com

@alexaguilar89 .
The intention of this repository is to improve on the existing documentation by providing the users a way to report factual errors, improvement suggestions and request updates for new versions.
you can get all help from answers.microsoft.com

#please-close

#please-close


Modify deploy.yml to use GH Personal Authentication Token

(also add workflow_dispatch as a trigger)

Let's try this and see if it works.
Per: https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication
"At the start of each workflow job, GitHub automatically creates a unique GITHUB_TOKEN secret to use in your workflow. You can use the GITHUB_TOKEN to authenticate in the workflow job."


Reproducing your results

First of all, thank you very much for your great paper. You found a very good approach for monocular semi-supervised learning!
I am currently trying to build on your work. At the moment I cannot reproduce your results. For example I have done extensive experiments for the supervised case with 50% of the training data. I started multiple training runs. Here the results. I did probably at least 5-10 more runs that aren't even shown below (but in all these additional runs, I did not exceed the bold line in terms of 3D score).
R11-3D Car 0.7:

3d   AP:17.6358, 14.6280, 13.2558
3d   AP:21.2645, 17.1680, 15.4836
3d   AP:22.0260, 17.4701, 15.5975
3d   AP:18.1203, 14.6309, 12.8549
3d   AP:20.9224, 17.4083, 15.9189
3d   AP:22.4899, 17.7239, 16.0286
3d   AP:24.6505, 18.3884, 16.8328
3d   AP:21.3495, 17.6654, 16.0097

R40-BEV Car 0.7:

bev  AP:26.0643, 19.0210, 16.8850
bev  AP:24.7957, 18.5760, 15.5776
bev  AP:26.6068, 19.3674, 16.4070
bev  AP:23.2912, 17.7347, 15.9953
bev  AP:24.9442, 18.3572, 16.3626
bev  AP:27.0781, 19.8280, 16.7158
bev  AP:28.6742, 20.2341, 17.1477
bev  AP:25.7267, 19.8133, 16.9592

R40-3D Car 0.7:

3d   AP:16.4562, 12.0196, 10.4153
3d   AP:15.7405, 11.8362, 9.5583
3d   AP:17.3220, 11.8199, 9.9591
3d   AP:16.1307, 11.5719, 9.9839
3d   AP:16.0885, 11.7437, 10.1636
3d   AP:17.7728, 12.2514, 10.3096
3d   AP:19.4858, 13.3419, 10.9816
3d   AP:16.2777, 12.0919, 10.3341

In your paper you mention for R40 Car 0.7:

3d: 21.91, 15.43, 13.09
bev: 28.24 20.51 18.37

That is why I am wondering have you accidently reported R11 results? At least for the 3D case?
Also, the results show that Monoflex is a highly volatile model. They mention on their github page: "Note: we observe an obvious variation of the performance for different runs and we are still investigating possible solutions to stablize the results, though it may inevitably due to the utilized uncertainties." (https://github.com/zhangyp15/MonoFlex). How would deal with that in a follow-up paper? E.g. do you think it may be better to report mean and standard deviation instead of just reporting a single number in a table like your Table 1?
And thank you very much again for your paper.

For the sake of reproducing the performance with 50% of the training data. I guess if it is how to select 50% from 3712 samples matters,  You can try different random splits.

We follow the same pattern as most related papers that  just reporting a single number.

It is more significant to reproduce the results using 100% training data.

So from what I am seeing there is no randomness involved when deciding on the subset of data: https://github.com/yanglei18/Mix-Teaching/blob/main/MonoFlex/data/datasets/aug_dataset.py#L58

Can you share the kitti_infos_train.pkl that you have used?

Sorry for failing to access the old  kitti_infos_train.pkl. Besides, random.choice is necessary.

I compared the current code of Monoflex with your Monoflex code. I've got a few questions from that:

You are using these merged heads. This impacts the first layers of the head. Why are you doing that?
You don't perform horizontal flipping in case of bcp. Why is that?
You have increased the number of epochs from 100 to 300. From my training runs I don't see a lot of value from that in the first supervised training phase. So, why are you doing that? Is it because in later training stages it is necessary to properly make use of all the pseudo labels? If so, could we also increase it in stages to save training time?
How many epochs have you trained on wth GUPNet?

Two more questions:

As far as I understood you always take the best model weights of the previous run and reinitialize in the next phase with those weights. In case that you train on trainval and submit to the test server, how do you know which of the 5 models to use? Do you use the 3D IoU during training?

- And if so, with what batch size? E.g. the standard Monoflex implementation uses a batch size of 8. But if you use multiple GPUs, then you can easily increase the batch size. E.g. I was able to train with a batch size of 8 on a single 12 GB GPU.
- If you used a single GPU only, then I wonder why you have integrated SyncBatchNorm. They haven't been there in the original implementation

Que: You have increased the number of epochs from 100 to 300. From my training runs I don't see a lot of value from that in the first supervised training phase. So, why are you doing that? Is it because in later training stages it is necessary to properly make use of all the pseudo labels? If so, could we also increase it in stages to save training time?
Rep: Exactly, 300 epoches is only necessary in semi-supervised training stages.

**Que: ** As far as I understood you always take the best model weights of the previous run and reinitialize in the next phase with those weights. In case that you train on trainval and submit to the test server, how do you know which of the 5 models to use?
**Rep: ** During the evaluation of test set,  we choose the best model on val set, which may be not a good strategy.

**Que: ** Do you use the 3D IoU during training?
**Rep: **  Yes,  we use the 3D IoU in geometry uncertainty.

**Que: **  If you used a single GPU only, then I wonder why you have integrated SyncBatchNorm. They haven't been there in the original implementation
**Rep: **  We use a single GPU only, which is enough for small-scale KITTI dataset.

Sorry for failing to access the old kitti_infos_train.pkl. Besides, random.choice is necessary.
Where and how should this random.choice be integrated?

Firstly, load the kitti_infos_train.pkl and get the list containing 3712 samples, then select 1856 samples with random.choice from the above-loaded list.

@yanglei18 Did you apply the random.choice here? https://github.com/yanglei18/Mix-Teaching/blob/main/MonoFlex/data/datasets/aug_dataset.py#L58

Three more questions came up. It would be great if you could help me with them:

You told me that you train 5 models and use the weights of the best model to initialize the weights in the next phase. I performed multiple experiments. In some cases I initialized with ImageNet pretrained weights the next phase. In other cases I used the weights of the best model. I used the checkpoint model_moderate_best_soft. To my surprise results were noticeable better when I initialized again with ImageNet pretrained weights (e.g. on AP40 IoU 0.7 Easy by +2.0). What's your take on that?
You report for Monoflex 100% training data the results from the Monoflex paper (23.64, 29.86, 17.51, 23.05, 14.83, 20.68). I tried many trainings with 100% training data and results are very volatile. I never achieved the 23.64. I guess you need a portion of luck to get those numbers. But what I notice is that the original Monoflex implementation uses this as prediction heads: https://github.com/zhangyp15/MonoFlex/blob/main/runs/monoflex.yaml#L27, while you use these merge heads: https://github.com/yanglei18/Mix-Teaching/blob/main/MonoFlex/runs/monoflex.yaml#L35. It doesn't make a difference for the final prediction layer, but it does make a difference for penultimate layer. So I wonder, have you changed to merged heads on purpose or is this just an old Monoflex code? Which one would you recommend to use? To what extent do you think it could impact results?
It is not possible to load the publicly available Monoflex checkpoint at the moment, because it doesn't use these merged heads. So, how could you initialize the weights of the next training phase when it is impossible to load, because of shape differences on the weights?


Time going backwards

Godot version:

3.1 beta2
Issue description:

See the screenshot attached.

@hedin-hiervard do you get any error in the console? Something like:
OS CLOCK IS NOT WORKING
or
ret != 0
What version of OSX are you running?

@hedin-hiervard also, does it happens immediately, or after some time it's running?

Refs: #26887 -- seems to happen on Windows as well.

To anyone that can reproduce the original issue
can you try this branch?
https://github.com/Faless/godot/tree/spike/clock_info
Is it still happening there?
The patch just tries to avoid some unnecessary math, limiting potential overflows and hopefully minimizing numerical errors:
https://github.com/godotengine/godot/compare/master...Faless:spike/clock_info
(there is also a 3.1 version of this patch: https://github.com/Faless/godot/tree/spike/clock_info_3.1 )

Can anyone still reproduce this bug in Godot 3.2.3 or any later release?
If yes, please ensure that an up-to-date Minimal Reproduction Project (MRP) is included in this report (a MRP is a zipped Godot project with the minimal elements necessary to reliably trigger the bug). You can upload ZIP files in an issue comment with a drag and drop.


Better JavaScript Math

Is your feature request related to a problem? Please describe.
Math in JavaScript is ROUGH!
We should do something about it, here are some resources to look into when it becomes reasonable/feasible.
Describe the solution you'd like
The following to work:
let a = 5e99999999999999999999
let b = 6e99999999999999999999

console.log(b + a);
// 1.1e100000000000000000000

console.log(b - a);
// 1e99999999999999999999

console.log(b / a);
// 1.2

console.log(b * a);
// 3e199999999999999999999

console.log(a ** b);
// 2.40991986510288411774075003471250893643100495450989797183029997715880385286026103747568159769541507890413437232881251245786062698499310658150630375520148676422261432642980111817620148509750699179521061129088262039468860187717113426538722624125242817558170728987527810212206878714628778492966112675136318016269789099936564394678967195831125061835763510325843423304911856806746609828417948762080413871444761753082275390625e1649

console.log(b > a);
// true

console.log(b < a);
// false

console.log(b === a);
// false

Describe alternatives you've considered

...pretty much everything

[ ] (website): http://mathjs.org
[ ] (package): https://www.npmjs.com/package/big-integer (454,689 weekly downloads)
[ ] (package): https://www.npmjs.com/package/biginteger (419 weekly downloads)
[ ] (package): https://www.npmjs.com/package/biginteger.js (12 weekly downloads)
[ ] (package): https://www.npmjs.com/package/big-number (80,904 weekly downloads)
[ ] (package): https://www.npmjs.com/package/bigi (22,553 weekly downloads)
[ ] (package): https://www.npmjs.com/package/bignumber (1,606 weekly downloads)
[ ] (package): https://www.npmjs.com/package/bignumber.js (1,157,019 weekly downloads)
[ ] (package): https://www.npmjs.com/package/big.js (5,187,802 weekly downloads)
[ ] (package): https://www.npmjs.com/package/bn.js (3,965,929 weekly downloads)
[ ] (package): https://www.npmjs.com/package/bignum (10,709 weekly downloads)
[ ] (package): https://www.npmjs.com/package/bigint (132 weekly downloads)
[ ] (package): https://www.npmjs.com/package/js-big-integer ( weekly downloads)
[ ] (package): https://www.npmjs.com/package/node-biginteger ( weekly downloads)
[ ] (package): https://www.npmjs.com/package/number-crunch ( weekly downloads)
[ ] (package): https://www.npmjs.com/package/javascript-biginteger ( weekly downloads)
[ ] (source code): http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js
[ ] (source code): http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn2.js
[ ] (article): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
[ ] (article): https://developers.google.com/web/updates/2018/05/bigint
[ ] (article): http://2ality.com/2012/07/large-integers.html
[ ] (article): http://2ality.com/2012/04/number-encoding.html
[ ] (article): https://medium.com/@oprearocks/reading-bigint-in-chrome-how-to-handle-big-numbers-in-javascript-css-architecture-b922de7d0c36
[ ] (article): https://www.freecodecamp.org/forum/t/js-programs-for-big-numbers/158746/20
[ ] (article): https://stackoverflow.com/questions/30678303/extremely-large-numbers-in-javascript

Additional context
...we could augment the V8 Engine...?

@christianechevarria We might be able to use Web Assembly to import a C/C++ add-on with the library browser side

"Fixed-ish" with better implementation - going to close for now; but will keep an eye on this.


Garden-runc support

Hello,
When deploying CF on bosh lite using garden-runc, we discovered a problem with the router job.
/var/vcap/jobs/gorouter/bin/gorouter_ctl: line 35:
/proc/sys/net/ipv4/tcp_fin_timeout: No such file or directory

It seems the start script for the router is not detecting that it is running in the container and failing to write a proc file. The helper script to find out if you're running in a container src/routing_utils/pidutils.sh exposes a function which doesn't support detecting garden-runc container names.
This is what /proc/self/cgroups looks like in garden-linux
/:~$ cat /proc/self/cgroup
12:pids:/
11:hugetlb:/
10:net_prio:/
9:perf_event:/
8:net_cls:/
7:freezer:/
6:devices:/instance-3g3mjd8vjti
5:memory:/instance-3g3mjd8vjti
4:blkio:/
3:cpuacct:/instance-3g3mjd8vjti
2:cpu:/instance-3g3mjd8vjti
1:cpuset:/instance-3g3mjd8vjti

This is what /proc/self/cgroups looks like in garden-runc
/:~$ cat /proc/self/cgroup
12:pids:/c2014f15-e490-4124-75e4-e5b5a08ca89f
11:hugetlb:/c2014f15-e490-4124-75e4-e5b5a08ca89f
10:net_prio:/c2014f15-e490-4124-75e4-e5b5a08ca89f
9:perf_event:/c2014f15-e490-4124-75e4-e5b5a08ca89f
8:net_cls:/c2014f15-e490-4124-75e4-e5b5a08ca89f
7:freezer:/c2014f15-e490-4124-75e4-e5b5a08ca89f
6:devices:/c2014f15-e490-4124-75e4-e5b5a08ca89f
5:memory:/c2014f15-e490-4124-75e4-e5b5a08ca89f
4:blkio:/c2014f15-e490-4124-75e4-e5b5a08ca89f
3:cpuacct:/c2014f15-e490-4124-75e4-e5b5a08ca89f
2:cpu:/c2014f15-e490-4124-75e4-e5b5a08ca89f
1:cpuset:/c2014f15-e490-4124-75e4-e5b5a08ca89f

Is support for garden-runc on the roadmap for this release?
Regards
Alex and @Samze
CC: @teddyking

Prioritized for eng review

Hi @ablease:
Thank you for raising this issue.
From my experience every containerization(eg: docker/warden) provides different ways to recognize it is a container. I do not have knowledge about garden-runc so it would take us some time to prioritize this but if this of any urgency we are happy to take a PR.
Regards
Shash
CF Routing team

Hi @ablease
Are you working on converting bosh-lite to use garden-runc containers vs. garden-linux containers for CF deployments?
If so, this pattern of "running in container" detection, will likely affect more than just the gorouter
mark at evilcorp ~/workspace/cf-release $ ag "running_in_container\(\)" -A3
src/capi-release/src/capi_utils/container_utils.sh
3:running_in_container() {
4-  grep -q -E '/instance|/docker/' /proc/self/cgroup
5-}

src/common/utils.sh
86:running_in_container() {
87-  grep -q -E '/instance|/docker/' /proc/self/cgroup
88-}

src/loggregator/src/common/utils.sh
86:running_in_container() {
87-  grep -q '/instance' /proc/self/cgroup
88-}

src/nats-release/src/nats-common/utils.sh
90:running_in_container() {
91-  grep -q -E '/instance|/docker/' /proc/self/cgroup
92-}

src/postgres-release/src/postgres-common/utils.sh
80:running_in_container() {
81-  grep -q -E '/instance|/docker/' /proc/self/cgroup
82-}

src/routing-release/src/routing_utils/pid_utils.sh
123:running_in_container() {
124-  grep -q -E '/instance|/docker/' /proc/self/cgroup
125-}

mark at evilcorp ~/workspace/diego-release $ ag "running_in_container\(\)" -A3
src/pid_utils.sh
184:running_in_container() {
185-  grep -q -E '/instance|/docker/' /proc/self/cgroup
186-}

cc @shashwathi

Odd, I have garden-runc 1.0.4 and if I create a container /proc/self/cgroup does seem to have the instance- prefix..
Maybe the garden team can clarify.
mark at evilcorp ~ $ gaol -t <IP_ADDRESS>:7777 create -n foo
foo
mark at evilcorp ~ $ gaol -t <IP_ADDRESS>:7777 run --attach foo -c "cat /proc/self/cgroup" | grep -q -E "/instance|/docker"
mark at evilcorp ~ $ echo $?
0
mark at evilcorp ~ $ gaol -t <IP_ADDRESS>:7777 run --attach foo -c "cat /proc/self/cgroup"
12:hugetlb:/foo
11:net_prio:/foo
10:perf_event:/foo
9:net_cls:/foo
8:freezer:/foo
7:devices:/instance-3v1t31b79a3/foo
6:memory:/instance-3v1t31b79a3/foo
5:blkio:/foo
4:cpuacct:/instance-3v1t31b79a3/foo
3:cpu:/instance-3v1t31b79a3/foo
2:cpuset:/instance-3v1t31b79a3/foo
1:name=systemd:/

@ablease echoing @markstgodard 's comment, could you please provide us with context as to why you are attempting to run Gorouter in garden-runc?
Thank you

Like @markstgodard  mentioned earlier Diego and lot of other release within CF use the similar function to detect whether it is running in container. I will be surprised ifgorouter is the only component which fails to run in garden-runc.
Regards
Shash

To address @markstgodard's and @shalako comment about the context. We were creating a brand new CF deployment on bosh-lite using garden-runc. We previously did this using garden linux and our assumption is that we should be able to use garden-runc.
Thanks to @teddyking we realized that actually, bosh lite does not support garden runc at the moment!  Our bad on that one :)
However the problem still stands that the current running_in_container function may break when bosh-lite versions, backed by garden-runc are out there.
Currently the garden team detect if they are running in a container using a different method. Perhaps @teddyking can shed light on a better approach.
For the releases that @markstgodard posted, yes they may contain the running_in_container function, but for example in the loggregator or nats releases, the function is never actually called. https://github.com/cloudfoundry/loggregator/search?utf8=✓&q=running_in_container
We appreciate that this isn't limited to a routing release issue so thanks for taking the time to look into it.
Cheers,
Alex and @Samze

Hello @ablease,
I'm assuming this isn't a default BOSH Lite configuration, or we would have run into it.
We can't prioritize this now as we have more urgent commitments, but as @shashwathi mentioned we would welcome a PR.
Best,
Shannon

The Buildpacks team recently ran into this as well when we were trying to switch our BOSH Lites over from garden-linux to garden-runc.
We are hoping that this will make running CATS against CF + Diego deployed to these BOSH Lites more reliable on GCP (we're currently encountering a lot of flakiness in tests and this is a problem for open source CF component teams looking to migrate their CI + BOSH Lites to GCP).

@RochesterinNYC  @ablease :
There are couple of things to note based on your comment

Currently there is no support for running CF on bosh lite using garden-runc.
The usual way to run bosh lite would be using vagrant which explains why we have not run into this issue on our CI. Typically we use bosh-lite as a dev/testing tool. What are you using bosh-lite for? This can help us understand your use case for running bosh-lite and wanting to use garden-runc vs. garden-linux.  Thanks for providing the blog post, that gives us a better understanding of what you are attempting. Another question we have is what versions of releases (cf-release, bosh-lite repo, bosh-lite stemcell) are you using?
Another thing to note is that network flakiness is known to occur in GCP.
This issue is being addressed by Release Integration team( https://github.com/cloudfoundry/cf-deployment/issues/27 )

cc @dsabeti
Regards
Shash && @swetharepakula

@shashwathi Sure, we're the Cloud Foundry buildpacks team and in our CI, our buildpack test suites must run against LTS and Edge CF versions. LTS is using the following versions:
cf-version: 225
diego-version: 0.1441.0
garden-linux-version: 0.327.0
etcd-version: 18

Edge is using the latest releases from the last released version of cf-release, so:
cf-version: 249
diego-version: 1.2.0
garden-runc-version: 1.0.4
cflinuxfs2-rootfs-version: 1.41.0

We use the latest version (commit) of the bosh-lite repo for generating the cf and diego manifests and use 3312.9 of BOSH Lite warden.
We're having issues with getting CATS to pass on BOSH Lites on GCP that are running the edge versions. Network issues might be one cause, but we're also seeing unusually high disk usage on the BOSH Lites (~25% CPU wait caused by waiting for IO). We were hoping that switching from garden-linux to garden-runc for the BOSH Lites would cause some improvement here.

@RochesterinNYC :
Thank you for taking to time to answer my questions in detail and I apologize for delayed reply.
We could try to adopt the equivalent function of running_in_container function from garden-runc-release to verify this fix works.
Regards
Shash

Closing issue.

I saw this issue today on CF v235 on bosh-lite running bosh/260.3 & garden-runc/1.0.0 (which is the latest garden-runc http://bosh.io/releases/github.com/cloudfoundry-incubator/garden-runc-release?all=1)
Is this issue closed because there is a fix on garden-runc edge? Or is there a workaround/fix I can apply to my bosh-lite?

@drnic.
The fix is in the most recent Routing Release v0.144.0. It should be in the next CF Release.
There is no workaround for older versions. The change is in on our control scripts (https://github.com/cloudfoundry-incubator/routing-release/commit/e8bfa3b78e9f02f1990a7dbcbde38c8896fde33b). You would have to manually make this change for it to work on CF v235.

Also, @drnic, garden-runc-release has moved to the cloudfoundry org, so check https://bosh.io/releases/github.com/cloudfoundry/garden-runc-release?all=1 instead.

@shashwathi  my old v235 deployment didn't include an explicit routing-release usage (it has been working fine so I just keep using it for integration testing). If v235 keeps failing after upgrading bosh-lite's garden-runc, I'll abandon it and deploy newer cf.

@drnic you'll have the same problem with GRR 1.1.1, since it uses the same cgroups hierarchy.

Ok, replacing cf-250's router with explicit routing-release v0.144 works, thanks.


iOS Not working on latest Xamarin Forms

Bug
Version Number of Xamarin Forms: <IP_ADDRESS>-pre6
Version Number of Plugin: <IP_ADDRESS>-beta
Device Tested On: iPhone 6 Plus 10.2.1
Simulator Tested On: iPhone 6 10.2
Expected Behavior
When I click my Button to take a photo I expect the photo controller to be displayed so I can take a picture.
When I Click my button to choose a photo I expect the photo library to open to choose my photo.
Actual Behavior
Nothing Happens, no logs, no xamarin logs no exceptions. I cannot figure out what the issues is with it. It is not a permissions thing since it is asking for permission correctly. After I grant permission nothing happens. I even walked through the code and everything is running just fine with no issues.
Steps to reproduce the Behavior
Create a project update to latest xamarin forms, install the media plugin, and add permissions. Try to take a picture.
Notes:
If you downgrade to xamarin <IP_ADDRESS> it works fine. Not sure if it is an xamarin issue or not.

Having the same issue after upgrading to Xamarin Forms 2.3.4

Unable to repo on my test project.
Please share a small repo project so I can reproduce.

I was able to replicate it again on a brand new project using Xamarin.Forms 2.3.4
https://github.com/eopeter/MediaTest
Thanks

what if you change this: MainPage = new testPage();
to MainPage = new NavigationPage(new testPage());

Still does not work after changing how I set the MainPage using NavigationPage. If I try to pick a photo or start the camera, nothing happens; I try again and then crashes with following error: "Only one operation can be active at at time". Tried on Simulator and same result

Ya I get the same as above.

Duplicate of: https://github.com/jamesmontemagno/MediaPlugin/issues/186


feat: specify mis-matched fields on expectEmit fails

Component
Forge
Describe the feature you would like
Using the expectEmit function from the vm cheats foundry provides for testing, failures don't provide much information about what was mismatched.
Example:
% forge test -vvvv
compiling...
success.
Running 1 test for RepsTest.json:RepsTest
[FAIL. Reason: Log != expected log] testNewRep():(uint256) (gas: 5917)
Traces:
  [3840356] RepsTest::setUp()
    ├─ → new WETH@0xce71…c246
    │   └─ ← 3486 bytes of code
    ├─ → new Reps@0x185a…1aea
    │   └─ ← 7706 bytes of code
    ├─ [1305] Reps::name()
    │   └─ ← "Test"
    ├─ [1305] Reps::symbol()
    │   └─ ← "TST"
    ├─ [306] Reps::weth()
    │   └─ ← 0xce71065d4017f316ec606fe4422e11eb2c47c246
    ├─ → new CentralizedArbitrator@0xefc5…b132
    │   └─ ← 6101 bytes of code
    └─ ← ()
  [5917] RepsTest::testNewRep()
    ├─ [0] VM::expectEmit(true, true, true, true)
    │   └─ ← ()
    ├─ [2363] Reps::repCount()
    │   └─ ← 0
    └─ ← "Log != expected log"

Failed tests:
[FAIL. Reason: Log != expected log] testNewRep():(uint256) (gas: 5917)

It would be great to get more details about which fields were mismatched in this situation.
Additional context
No response

Closing this in favor of the more generic https://github.com/foundry-rs/foundry/issues/928

@Evalir reopened this as I think it’s a good solution to keeping the current behavior, while also solving https://github.com/foundry-rs/foundry/issues/5117#issuecomment-1599680238, without having to implement broader improvements/refactors as mentioned in #928

@zerosnacks @klkvr I'm looking into implementing this and am curious what the intended behavior would be for situations where multiple instances of the same event are emitted in a given tx, but none match. Should the params of the events that were emitted but don't quite match be highlighted red?
I think highlighting params of events that match the expected topic 0 but fail another topic or data equivalence check is the way to go, just want to see if there are better alternatives.

Additionally, based on my understanding of the interface smart contract interfaces, we wouldn't be able to individually highlight data (unindexed) params, right? We'd have to parse and compare the abi-encoded bytestrings to determine which params don't match as well.

Hi @topocount, great!

Should the params of the events that were emitted but don't quite match be highlighted red?

That would make sense to me, though limited to the mismatch to avoid warning / error fatigue

Additionally, based on my understanding of the smart contract interfaces, we wouldn't be able to individually highlight data (unindexed) params, right? We'd have to parse and compare the abi-encoded bytestrings to determine which params don't match as well.

I believe that to be correct, worst case you could diff the bytestring and just display that


Proof read

Ran out of time for now but will pick it up later today.

I'll merge it now, as the fixes are good. Happy to get the second part of fixes in a later PR!


About the training script.

Hi, thanks for your great work! I'm very interested in your work. Will the training code of GyroFlowPlus be available soon?

Thanks your word, we could consider release the training script in december.


Modern PHPUnit support

Kevin,
This looks like a great package.  But has not been updated in 5 years and is no longer compatible with the later versions of PHPUnit.
I would be happy to submit a PR for this to update it.  What are your thoughts on this?  Open for an update?  Best way to approach this?  Think support for multiple versions of PHPUnit would be best.  Maybe separate branches?
Thoughts?
Thanks.
PS. This is exactly the package I was looking for, as I am doing a library that completely eliminates the need to write html by hand, but would be nice to have it do basic unit test on valid html.

I wrote my own extension for PHPUnit 7 and higher.  So this is no longer relevant.

https://github.com/phpfui/HTMLUnitTester


Include generated test cfg files in repo

Include cfg files created by utils.py in the repository, to serve as examples for users. Note that these will have user-specific paths.

Resolved by #375, #376, #377.


Revisit Presence sample

We need to revisit the Presence sample. We're making things internal and they are things the sample uses to construct the Hub in order to call OnUsersJoined/OnUsersLeft

Let's just delete the sample.


RoR group project: day 0

[x] Rails installation.
[x] Set up the devise gem.
[x] Build all the schemas for models Recipe and Food with a many-to-many association via model RecipeFood.

[[# STATUS: APPROVED :green_circle: :clap:
Hello @khanh-devos    ,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:  .
Congratulations! 🎉  Keep up the Awesome work 🥂  Keep Rocking 🥇
HIGHLIGHTS:

[x]  Your repo is professional  😎
[x] Descriptive P.R 💯
[x] Professional README file

Now you can merge this branch and move on :1st_place_medal:
Happy Coding cheers 🥇 💯

Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.]]


Misc small fixes

I found a bug in the qiita-rc (and live system) in which not all validators contain the parameter "analysis" and not all calls were passing this value. This generated several problem in different parts of the system. Not sure why the error didn't show up earlier. I've modified the current patch to make sure that all Validate commands have that command. All new commands have that parameter already added, so it is just for backwards compatibility.
The default active tab in the prep information is now the processing.
A border has been added to the inactive pills - so you can clearly see that are clickable:

The buttons for show/hide the graph and to run the workflow are now align:

Changed "Update information" to "Update prep information"
By luck I found the source of the issue for the navigation buttons, so fixes #2231. Note: since now this works as expected, you actually have to click on the graph to enable interaction, and click outside the graph to disable interaction. Thus, the button is no longer need (and I removed) and I have not found a way of changing this behavior.

Finally, I've improved the uploads page. When the file is in the system, a tick appears next to the file. If the file is being uploaded, a blinking upload icon is next to the file name.

Codecov Report

Merging #2436 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #2436   +/-   ##
=======================================
  Coverage   94.06%   94.06%
=======================================
  Files         163      163
  Lines       19347    19347
=======================================
  Hits        18199    18199
  Misses       1148     1148

Impacted Files
Coverage Δ

qiita_pet/handlers/api_proxy/artifact.py
99.19% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


t2t_decoder not working for model trained with bfloat16

I trained a transformer model with bfloat16 (weights and activations). when i try to decode from file I am getting type mismatch errors in various places. the same procedure works fine for a float32 model.
t2t-decoder --data_dir=$DATA_DIR --problem=translate_ende_wmt32k --model=transformer --hparams_set=transformer_tpu --output_dir=$OUT_DIR --decode_hparams="beam_size=$BEAM_SIZE,alpha=$ALPHA" --decode_from_file=text.en --decode_to_file=translation.de

i got the decoder working by using for the decoder:
hparams.activation_dtype = "float32"
hparams.weight_dtype = "bfloat16"

on wmt14 en-de i can use batches as large as 18432

Ah, gotcha, don't think WMT eval sets are that large, so that's during training right?
Have you tried measuring the speedup before and after using t2t-decoder for, say, batch size 32?

i was referring to training

have you measured any stats while decoding? How does performance and inference speed compare to float32?


CodeComplation stays in TestComplete

I write
VideoRecorder.Start().
It invokes CodeCompletion and empty CodeCompletion stays in the top right corner

Check if Log is undefined


Note on Xcode 12 and iOS 14 is outdated

The note on Xcode 12 and iOS 14 are available now! seems outdated or obsolete. I think it should state that Xcode 13 and iOS 15 are available now.

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

ID: c68ff8e7-e2ab-9335-6cc1-68d1d3765d6e
Version Independent ID: a087c437-3e69-d420-a6e4-6fffa7611882
Content: Preparing XCUITest Tests for Upload - Visual Studio App Center
Content Source: docs/test-cloud/frameworks/xcuitest/index.md
Service: vs-appcenter
Sub-service: app-center-test
GitHub Login: @lucen-ms
Microsoft Alias: lucen

The mentioned Note was removed. Closing.


GlobalSession has concurrency problem in cluster mode?

Why you need it?
Is it possible that more than one servers currently changing globalSession's status in cluster mode? If this situation happened, local ReentrantLock can not keep globalSession status changing procedure thread safe. Is it correct?
e.g., server A is commiting a transaction, meanwhile server B's timeout checking thread is trying to start a rollback. Is this a problem?
How it could be?
Is optimistic locking on global_table a possible solution?

For the same distributed transaction, it is considered serial.

Thanks for your reply. I understand this, because only one tm controls transaction start, commit and rollback, and async procedure is not supported, just like normal transaction, so it's considered serial. My question is whether or not this situation will happen? Once it happened, is it a problem? e.g., server A is commiting a transaction, meanwhile server B find this transaction is timeout and start a rollback.

@slievrly I checked some seata-client, seata-discovery and seata-server code (e.g., DefaultCoordinator.java, DefaultCore.java, ...), did not find any clue to make sure transaction status changing is serial in cluster mode. Any suggestion? Thanks.

@ggndnn In fact, in file mode, we support concurrent transactions in a single transaction, that is, you can do transactions asynchronously within the method. In the code you will see something like globalSession.lockAndExcute. But this is just a single JVM lock.
There is indeed a situation you said about db mode. One is executing the branch and the other is doing the timeout rollback. The data here is shared by db, so it can use for update to do data lock operation.

@slievrly Thanks for your patience. Yes, I think everything is fine in file mode. I also noticed 'for update' data lock, indeed this lock can make sure branch commit and rollback running correctly, but I think there is problem between global commit and rollback. Part of the undo log is consumed by rollback operation (one branch's undo records at a time) and the other part is consumed by global commit operation (a batch of undo records at a time). Is it correct?
Suppose there is no concurrency issue here, is it better to make global session status changing serial in db mode, just like file mode? It's a little confused that, e.g., one global session is in 'commiting' status but actually rollbacking. This code is more or less 'error-prone'.
I think this is a bug issue, what's your opinion?

@slievrly Some code snippet:
Global rollback, one branch after another:
public final class UndoLogManager {
...
    private static String SELECT_UNDO_LOG_SQL = "SELECT * FROM " + UNDO_LOG_TABLE_NAME
        " WHERE branch_id = ? AND xid = ? FOR UPDATE";
...
    public static void undo(DataSourceProxy dataSourceProxy, String xid, long branchId) throws TransactionException {
        assertDbSupport(dataSourceProxy.getDbType());

        Connection conn = null;
        ResultSet rs = null;
        PreparedStatement selectPST = null;

        for (; ; ) {
            try {
                conn = dataSourceProxy.getPlainConnection();

                // The entire undo process should run in a local transaction.
                conn.setAutoCommit(false);

                // Find UNDO LOG
                selectPST = conn.prepareStatement(SELECT_UNDO_LOG_SQL);
                selectPST.setLong(1, branchId);
                selectPST.setString(2, xid);
                rs = selectPST.executeQuery();

                boolean exists = false;
                while (rs.next()) {
                    exists = true;
                    int state = rs.getInt("log_status");
                    if (!canUndo(state)) {
                        if (LOGGER.isInfoEnabled()) {
                            LOGGER.info("xid {} branch {}, ignore {} undo_log",
                                xid, branchId, state);
                        }
                        return;
                    }
                    String contextString = rs.getString("context");
                    Map<String, String> context = parseContext(contextString);
                    Blob b = rs.getBlob("rollback_info");
                    byte[] rollbackInfo = BlobUtils.blob2Bytes(b);

                    String serializer = context == null ? null : context.get(UndoLogConstants.SERIALIZER_KEY);
                    UndoLogParser parser = serializer == null ? UndoLogParserFactory.getInstance() :
                        UndoLogParserFactory.getInstance(serializer);
                    BranchUndoLog branchUndoLog = parser.decode(rollbackInfo);

                    try {
                        // put serializer name to local
                        SERIALIZER_LOCAL.set(parser.getName());
                        List<SQLUndoLog> sqlUndoLogs = branchUndoLog.getSqlUndoLogs();
                        if (sqlUndoLogs.size() > 1) {
                            Collections.reverse(sqlUndoLogs);
                        }
                        for (SQLUndoLog sqlUndoLog : sqlUndoLogs) {
                            TableMeta tableMeta = TableMetaCache.getTableMeta(dataSourceProxy, sqlUndoLog.getTableName());
                            sqlUndoLog.setTableMeta(tableMeta);
                            AbstractUndoExecutor undoExecutor = UndoExecutorFactory.getUndoExecutor(
                                    dataSourceProxy.getDbType(),
                                    sqlUndoLog);
                            undoExecutor.executeOn(conn);
                        }
                    } finally {
                        // remove serializer name
                        SERIALIZER_LOCAL.remove();
                    }
                }
                if (exists) {
                    deleteUndoLog(xid, branchId, conn);
                    conn.commit();
                    if (LOGGER.isInfoEnabled()) {
                        LOGGER.info("xid {} branch {}, undo_log deleted with {}",
                            xid, branchId, State.GlobalFinished.name());
                    }
                } else {
                    insertUndoLogWithGlobalFinished(xid, branchId, UndoLogParserFactory.getInstance(), conn);
                    conn.commit();
                    if (LOGGER.isInfoEnabled()) {
                        LOGGER.info("xid {} branch {}, undo_log added with {}",
                            xid, branchId, State.GlobalFinished.name());
                    }
                }
                return;
            } catch (SQLIntegrityConstraintViolationException e) {
            } catch (Throwable e) {
            } finally {
            }
        }
    }
...
}

Async commit, a batch of undo logs deleted at a time:
public class AsyncWorker implements ResourceManagerInbound {
...
    private void doBranchCommits() {
        if (ASYNC_COMMIT_BUFFER.size() == 0) {
            return;
        }

        Map<String, List<Phase2Context>> mappedContexts = new HashMap<>(DEFAULT_RESOURCE_SIZE);
        while (!ASYNC_COMMIT_BUFFER.isEmpty()) {
            Phase2Context commitContext = ASYNC_COMMIT_BUFFER.poll();
            List<Phase2Context> contextsGroupedByResourceId = mappedContexts.get(commitContext.resourceId);
            if (contextsGroupedByResourceId == null) {
                contextsGroupedByResourceId = new ArrayList<>();
                mappedContexts.put(commitContext.resourceId, contextsGroupedByResourceId);
            }
            contextsGroupedByResourceId.add(commitContext);

        }

        for (Map.Entry<String, List<Phase2Context>> entry : mappedContexts.entrySet()) {
            Connection conn = null;
            DataSourceProxy dataSourceProxy;
            try {
                try {
                    DataSourceManager resourceManager = (DataSourceManager) DefaultResourceManager.get().getResourceManager(BranchType.AT);
                    dataSourceProxy = resourceManager.get(entry.getKey());
                    if (dataSourceProxy == null) {
                        throw new ShouldNeverHappenException("Failed to find resource on " + entry.getKey());
                    }
                    conn = dataSourceProxy.getPlainConnection();
                } catch (SQLException sqle) {
                    LOGGER.warn("Failed to get connection for async committing on " + entry.getKey(), sqle);
                    continue;
                }
                List<Phase2Context> contextsGroupedByResourceId = entry.getValue();
                Set<String> xids = new LinkedHashSet<>(UNDOLOG_DELETE_LIMIT_SIZE);
                Set<Long> branchIds = new LinkedHashSet<>(UNDOLOG_DELETE_LIMIT_SIZE);
                for (Phase2Context commitContext : contextsGroupedByResourceId) {
                    xids.add(commitContext.xid);
                    branchIds.add(commitContext.branchId);
                    int maxSize = xids.size() > branchIds.size() ? xids.size() : branchIds.size();
                    if(maxSize == UNDOLOG_DELETE_LIMIT_SIZE){
                        try {
                            if(JdbcConstants.ORACLE.equalsIgnoreCase(dataSourceProxy.getDbType())) {
                                UndoLogManagerOracle.batchDeleteUndoLog(xids, branchIds, conn);
                            } else {
                                UndoLogManager.batchDeleteUndoLog(xids, branchIds, conn);
                            }
                        } catch (Exception ex) {
                            LOGGER.warn("Failed to batch delete undo log [" + branchIds + "/" + xids + "]", ex);
                        }
                        xids.clear();
                        branchIds.clear();
                    }
                }

                if (CollectionUtils.isEmpty(xids) || CollectionUtils.isEmpty(branchIds)) {
                    return;
                }

                try {
                    if(JdbcConstants.ORACLE.equalsIgnoreCase(dataSourceProxy.getDbType())) {
                        UndoLogManagerOracle.batchDeleteUndoLog(xids, branchIds, conn);
                    } else {
                        UndoLogManager.batchDeleteUndoLog(xids, branchIds, conn);
                    }
                }catch (Exception ex) {
                    LOGGER.warn("Failed to batch delete undo log [" + branchIds + "/" + xids + "]", ex);
                }

            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException closeEx) {
                        LOGGER.warn("Failed to close JDBC resource while deleting undo_log ", closeEx);
                    }
                }
            }
        }
    }
...
}

So, part of branches rollbacked and part commited?

@ggndnn I will review your code and give some comments later.

@slievrly Thank you.

@slievrly Could you review #1390?


Rename package com.baeldung.scope.singletone to com.baeldung.scope.singleton

Package com.baeldung.scope.singletone should be renamed to
     com.baeldung.scope.singleton

Hey, @pfurbacher.
Thanks for the feedback. This issue will remain open until we look into this.

Thanks @pfurbacher - the typo in package name is fixed now.


Refactor unwind generation in Cranelift.

This PR makes the following changes to unwind information generation in
Cranelift:

Remove frame layout change implementation in favor of processing the prologue
and epilogue instructions when unwind information is requested.  This also
means this work is no longer performed for Windows, which didn't utilize it.
It also helps simplify the prologue and epilogue generation code.

Remove the unwind sink implementation that required each unwind information
to be represented in final form. For FDEs, this meant writing a
complete frame table per function, which wastes 20 bytes or so for each
function with duplicate CIEs.  This also enables Cranelift users to collect the
unwind information and write it as a single frame table.

For System V calling convention in Wasmtime, the unwind information is no longer stored
in code memory (it's only a requirement for Windows ABI to do so).  This allows
for more compact code memory for modules with a lot of functions.

Deletes some duplicate code relating to frame table generation.  Users can
now simply use gimli to create a frame table from each function's unwind
information.

Fixes #1181.

Let me fix the lightbeam build failure.

Refactoring to fix the arm64 build error in the file test utility.

As this will conflict with #1216 (it adds additional unwind information on Windows for FPR restores), this will need to wait until #1216 goes in then I'll merge the changes.

This will need some additional changes with recently merged PRs to get working again.  I'll see to it on Monday.

This should now be ready for review again after merging in the FPR changes for Windows unwind information.

I'll see about implementing __register_frame_table on platforms where it can be used so we only call it once.  On platforms where we can't use it, we'll walk the table registering each entry like we're doing now.

(Redirecting to @yurydelendik who seemed to have a first look already; please let me know if I need to look at this as well!)

@yurydelendik is it required around __deregister_frame though? In the non-macOS case, we only register the entire frame table once and deregister once because only one element was added to the registrations vec.

@yurydelendik is it required around __deregister_frame though?

Good question. I would expect the api the by "symmetrical", means that if whatever is fed to __register_frame shall be passed to __deregister_frame. (FWIW this hole API and confusing)
Is it possible to check if 1) the current __deregister_frame code de-registers FDEs; 2) does not add addition O(n^2) complexity for gcc unwind ?

I agree that the underlying API here is a mess.  The code I have now should cause symmetrical invocations of __register_frame and __deregister_frame, but in the case of libgcc, only one invocation of each per code memory entry.
From what I can decipher of the registration code in libgcc, __register_frame will walk all of the FDEs from the given "base entry" (skipping over CIEs), but it only stores the "base entry" address internally for deregistration and therefore only needs the single matching __deregister_frame call.  It appears that __register_frame effectively accepts what we (and gimli) call a frame table.
What libgcc is calling a "frame table" for use with __register_frame_table seems to be an array of pointers to those "base entries", allowing you to register frames from multiple "translation units" with a single call.  To put it another way, this function would be used if we wanted to register multiple frame tables from our perspective.  Technically we could use __register_frame_table to register the frame tables for all code memory entries in a single call, but I think that would require a bit of refactoring to make work.

_register_frame will walk all of the FDEs from the given "base entry" (skipping over CIEs)

Yeah, that's confirms my analysis as well. Thanks. I guess we good to go. 👍


W18: Invalid character in group name (vim)

Description
When starting vim/gvim with nightfox theme enabled, since yesterday I get this error repeated a few dozen times:
Error detected while processing nightfox.vim line 9:
W18: Invalid character in group name
I'm on vim 9.0.0626-1 on debian.

I just ran into this after reinstalling my plugins with neovim

This is due to commit 6585499. This change uses the current highlight groups. Can you execute NightfoxCompile and see if that solves your issue.

I can confirm that NightfoxCompile fixed this on my end. Thanks @EdenEast!

@EdenEast the issue remains in vim/gvim (even if I do the NightfoxCompile in neovim first)

For vim could you try:
require("nightfox").setup({
  options = {
    modules = {
      native_lsp = {
        enable = false,
      },
      treesitter = false,
    },
  },
})

This would disable neovim specific modules.

Could we disable incompatible modules by default?

If this did solve the issue I would set these modules to be enabled only if neovim. Still unsure about the precompiled files. These are only used if there is now setup function called and the user has not compiled themselves.

I don't know what the best solution is, but in the current state nightfox unfortuntely isn't really compatible with vanilla vim any longer.

On win 11, upgrading Neovim from 0.7.2 to 0.8.0 fixed the issue.
Used the command: winget upgrade Neovim

'NightfoxCompile' throw an error: nightfox/lua/nightfox/lib/color.lua:105: attempt to index a nil value (upvalue 'bitopt')
Vim 9.0.800

NightfoxCompile also fails for me with the same error message (Vim 9.0.844).  I was going to try disabling the neovim modules as suggested in https://github.com/EdenEast/nightfox.nvim/issues/218#issuecomment-1285666881, but I just can't figure out where to put the config snippet.  I'm sure I'm overlooking something obvious, but nothing I've tried has worked.  The closest I got was putting it in a
lua << END
...
END

block but that throws an error that "module nightfox not found".  I'd really appreciate any pointers anyone can give.

@zb140, the updated version sets those values to whatever boolean util.is_nvim holds (I'd assume false if using vim), so you could modify the file (lua/nightfox/config.lua) directly and set it to false. Having done that myself, it makes no difference, NightfoxCompile still failing with:
lua/nightfox/lib/color.lua:206: bad argument #1 to 'lshift' (number has no integer representation)

Which is this line:
local bitopt = util.is_nvim and bit or bit32 or bit

Depending on whether I set this to bit or bit32, I either get the same error as above or the one mentioned by this comment.
I thought it had something to do with there being no Lua bitop library installed on my system (AFAIU, if you have vim compiled against LuaJIT, bitop should be included by default), but installing bitop didn't fix it either, and that may be because bitop is not compatible with Lua 5.3, which my binary happens to be compiled against.
Not sure what the solution is.

Thanks @xuoe!  That's actually given me enough to work with that I've actually got it working.  There seems to be a couple of issues at play here:

In order to be able to do bitwise math, some versions of Lua need bitop, some versions need bit32, and some versions (notably 5.3+) support bitwise operators natively.
Color:to_hex() tries to perform bitwise math numbers that are not necessarily integers.  Specifically, the individual color components are floats, and to_hex() just multiplies them by 0xff and passes them straight to lshift

I worked around these issues by replacing line 26 in color.lua with this code:
local function get_bitopt(op)
    return function(a,b)
        a = util.round(a)
        b = util.round(b)
        return op(a,b)
    end
end

local native_bitopt = {
    lshift = get_bitopt(function(a,b) return a << b end),
    rshift = get_bitopt(function(a,b) return a >> b end),
    band   = get_bitopt(function(a,b) return a & b end),
    bor    = get_bitopt(function(a,b) return a | b end),
}

local bitopt = util.is_nvim and bit or bit32 or bit or native_bitopt

Now :NightfoxCompile works fine, and I can use the color schemes without issue in Vim 9 😄

Thanks to everyone for looking into this. I am thinking of using the solution @zb140 commented as a fallback if it cant find the neovim luajit is not found. That should handle different lua versions for the color lib.

I tried to have this working but you cant have 5.2 and 5.3 in the same file. There is no way to guard the >>.

Depending on your appetite for dirty hacks, you might be able to get away with something like this:
local function get_bitopt(op)
    return function(a,b)
        a = util.round(a)
        b = util.round(b)
        return load("return " .. op)()(a,b)
    end
end

local native_bitopt = {
    lshift = get_bitopt("function(a,b) return a << b end"),
    rshift = get_bitopt("function(a,b) return a >> b end"),
    band   = get_bitopt("function(a,b) return a & b end"),
    bor    = get_bitopt("function(a,b) return a | b end"),
}

But everything I know about Lua I learned in the last 12 hours, so there may be good reasons to avoid it, even over and above the standard "eval is evil" arguments...

@EdenEast, what about exporting bitop from two different files, one for Lua 5.3 (which exports @zb140's native bitop wrappers) and one for earlier versions (which exports either bit or bit32, as before), and then requireing one or the other in color.lua based on the value of _VERSION?

For others that were having issues with the compile file in vim could I get some help testing this pr #241 which makes the compiler automatic. This change should support vim better and be overall much faster.
I tested it with my nix-shell version of vim but testing on more setups would help.

Tested on
vim --version

VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Jan 01 1980 00:00:00)
Included patches: 1-609
Compiled by nixbld
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       -tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
+balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
+browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     -perl              +title
+channel           +ipv6              +persistent_undo   +toolbar
+cindent           +job               +popupwin          +user_commands
+clientserver      +jumplist          +postscript        +vartabs
+clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           +python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          +ruby              +wildignore
+cursorbind        +lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con_gui    +mksession         +smartindent       +writebackup
+diff              +modify_fname      -sodium            +X11
+digraphs          +mouse             -sound             -xfontset
+dnd               +mouseshape        +spell             +xim
-ebcdic            +mouse_dec         +startuptime       +xpm
+emacs_tags        -mouse_gpm         +statusline        -xsmp
+eval              -mouse_jsbterm     -sun_workshop      +xterm_clipboard
+ex_extra          +mouse_netterm     +syntax            -xterm_save
+extra_search      +mouse_sgr         +tag_binary
-farsi             -mouse_sysmouse    -tag_old_static
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "
/nix/store/rll1dln5lml9bayj6b0kkk50cbg7sklg-vim_configurable-9.0.0609/share/vim
"
Compilation: see nix-store --read-log /nix/store/rll1dln5lml9bayj6b0kkk50cbg7sklg-vim_configurable-9.0.0609
Linking: see nix-store --read-log /nix/store/rll1dln5lml9bayj6b0kkk50cbg7sklg-vim_configurable-9.0.0609

lua -v
LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/

I have tested on feat/auto-compile branch. However, I still have the same issue.
[error][nightfox]: Unable to find lua library `bit` or `bit32`. Please make sure lua vesion is 5.1 or 5.2
/Users/xxxx/yyyy/vim/vimrc の処理中にエラーが検出されました:
行  179:
...m/pack/jetpack/opt/nightfox.nvim/lua/nightfox/config.lua:107: attempt to call a nil value (field 'hash')

:version

:version
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Sep 15 2022 18:56:17)
macOS 版 - x86_64
適用済パッチ: 1-472
Compiled by Homebrew
Huge 版 with MacVim GUI.   I have added a native bit file for 5.3 like the suggestion from @xuoe. Let me know it this solves your issue.

Thank you for updating. I guess that you forgot to add bxor in native_bitops.lua

Resolved with #241


Are there plans to support routing folder

folder
└─docs
    └─f
       └─index.md

it('should request /docs/f/ ok', function (done) {
    request(app)
    .get('/docs/f/')
    .expect('Content-Type', 'text/html; charset=utf-8')
    .expect(200, done);
  });

i'm not sure what you mean. but PR's welcome!


Feature: Insert a string to another by rune index.

See String#insert in ruby. Implementation in Go will be a bit different. Index is counted by rune instead of byte.

New api: Insert


fix the docker-compose so it can run without issues

getting this error for postgres image
'The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 14.5.'

error:  Error: getaddrinfo ENOTFOUND postgres2
2023-05-18 16:19:21     at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
2023-05-18 16:19:21   errno: -3008,
2023-05-18 16:19:21   code: 'ENOTFOUND',
2023-05-18 16:19:21   syscall: 'getaddrinfo',
2023-05-18 16:19:21   hostname: 'postgres2'
2023-05-18 16:19:21 }


feat: support array_reverse

Which issue does this PR close?

Closes #9021
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Thanks again @Weijun-H


AUTHOR (non-POST related)

[ ] As an author, I want a consistent identity per server
[ ] As an author, I want to pull in my github activity to my “stream”
[ ] As an author, I want to befriend local authors
[ ] As an author, I want to befriend remote authors
[ ] As an author, I want un-befriend local and remote authors
[ ] As an author, I want to be able to use my web-browser to manage my profile
[ ] As an author, When I befriend someone (they accept my friend request) I follow them, only when the other author befriends me do I count as a real friend – a bi-directional follow is a true friend.
[ ] As an author, I want to know if I have friend requests.


THRIFT-5828: reduce over-allocation in Go binary protocol

Due to a subtle caveat in buffer.Bytes the Go binary protocol method ReadBinary() always over-allocated.
We now allocate the asked size directly up to 10 MiB, and then maintain the malformed message protection by using a 10 MiB buffer for larger asks.
The existing benchmarks show that we reduce allocations for small payloads, and keep the edge case on a reasonable level at about 10MiB.
Ran the existing benchmarks in lib/go/thrift with and without this change:
% go test -run X -bench . -benchmem > <file>

% benchcmp -changed old.txt new.txt
[...]
benchmark                                   old allocs     new allocs     delta
BenchmarkSafeReadBytes/normal-20            5              2              -60.00%
BenchmarkSafeReadBytes/max-askedSize-20     8              3              -62.50%
BenchmarkBinaryBinary_0-20                  4              1              -75.00%
BenchmarkBinaryBinary_1-20                  4              1              -75.00%
BenchmarkBinaryBinary_2-20                  5              2              -60.00%
BenchmarkCompactBinary0-20                  4              1              -75.00%
BenchmarkCompactBinary1-20                  4              1              -75.00%
BenchmarkCompactBinary2-20                  5              2              -60.00%
BenchmarkSerializer/baseline-20             8              5              -37.50%
BenchmarkSerializer/plain-20                20             17             -15.00%
BenchmarkSerializer/pool-20                 8              5              -37.50%

benchmark                                   old bytes     new bytes     delta
BenchmarkSafeReadBytes/normal-20            1656          160           -90.34%
BenchmarkSafeReadBytes/max-askedSize-20     15992         10489910      +65494.73%
BenchmarkBinaryBinary_0-20                  1608          160           -90.05%
BenchmarkBinaryBinary_1-20                  1608          160           -90.05%
BenchmarkBinaryBinary_2-20                  1634          184           -88.74%
BenchmarkCompactBinary0-20                  1608          160           -90.05%
BenchmarkCompactBinary1-20                  1608          160           -90.05%
BenchmarkCompactBinary2-20                  1634          184           -88.74%
BenchmarkSerializer/baseline-20             1000          416           -58.40%
BenchmarkSerializer/plain-20                3640          3056          -16.04%
BenchmarkSerializer/pool-20                 1002          417           -58.38%

[x] Did you create an Apache Jira ticket?  (Request account here, not required for trivial changes)
[x] If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
[x] Did you squash your changes to a single commit?  (not required, but preferred)
[x] Did you do your best to avoid breaking changes?  If one was needed, did you label the Jira ticket with "Breaking-Change"?
[ ] If your change does not involve any code, include [skip ci] anywhere in the commit message to free up build resources.

The current state looks good to me, but I'm tagging @dcelasun, @jpkrohling, @yurishkuro who are involved in the discussion and review of the original issue of https://issues.apache.org/jira/browse/THRIFT-5828 and https://github.com/apache/thrift/pull/2292 to take a look.
My one (minor) concern is the hardcoded 10MiB limit. For malformed size > 10MiB we are falling back to the current approach which protects against over allocation, but if we have a malformed size that's < 10MiB but close, we are still doing the allocation up front. Does anyone use thrift go in a tight environment that will be a problem? I don't know.
And if we do think that's a problem, what should we do to make it configurable? Add it as a new API to TConfiguration? or maybe make it something like "always 1/10 of MaxMessageSize configured via TConfiguration"?

Actually, reading https://nvd.nist.gov/vuln/detail/CVE-2019-11939 again, I think this implement is sill vulnerable to a very similar attack: bad actor can construct a very small message with a size of 10MiB-1, and the server will still be tricked to do those large allocations, and spamming those malicious messages can still result in denial of service.
To mitigate against this attack, we need to make the read limit configurable. There are 3 ways to do it:

Add a new config to TConfiguration for this
Just reuse the current MaxMessageSize configurable (which would mean that we can mostly revert https://github.com/apache/thrift/pull/2292 I think?)
Define the read limit as something like 1/10 of configured MaxMessageSize, and that 1/10 can be either hardcoded or configurable (but if it's configurable that's mostly just 1).

Thanks for investigating. I agree, in the THRIFT-5828 I wrote:

Ideally we would use TConfiguration that was added after PR2292 (in PR #2296), there is already a default max message size at 100MB for example. The max message size is already checked before reading so ReadBinary could be changed back to always allocating the full size.

But to be more specific I'd prefer option 1 over the others. Reason being that the relation to MaxMessageSize looks arbitrary to me (apart from the fact that MaxMessageSize will block it first if that value is lower).

+1 for a new entry in TConfiguration.

WDYT @jpkrohling, @yurishkuro?

+1 to expose a config parameter for (1) max safe limit and (2) max unconditional alloc.


WIP: Add support for Team creation

If this looks good to you guys I'll be following up with some team management capabilities as well in another PR.

What's the best way to go about testing these teams? It seems to me that you are doing everything against an Org that you actually plan to use. Do you have a test organization setup?

It looks like you are using the github-api-tests org for testing this repo. In order to facilitate some better tests for Teams can you add either:

add a team "Fixed Test Team" with the test user mikedeboertest
add me to that Organization so I can set that up myself

Well that's frustrating, Lint only fails on CI but passes locally.... I'll get through it, just frustrating. Any thoughts on why that is? I'm running npm run lint locally.

Have you guys reduced the number of allowed concurrent builds in Travis? Only one job runs at a time and it's really slow to get through CI if there's issues to resolve.

I think OSS only gets one concurrent build.

Note that I added two other dev time features. I changed Travis to use container based infrastructure which should improve travis worker startup by about 20 seconds per job. I also added an ESLint plugin for mocha to ensure things like it.only or describe.only are not forgotten when committing.

https://blog.travis-ci.com/2014-07-18-per-repository-concurrency-setting/
I can't see what settings you have applied, but on a Saturday when OSS seems to slow down Travis should be allowing more concurrent jobs. Other OSS projects I've worked on have run concurrently.

I'll investigate. Don't think we've done anything special.

Either way I think everything should be wrapped up for this PR unless you guys see anything I may have missed.

As it happens we did limit concurrent jobs to 1. I've removed that setting

I've made suggestions for some different method names, and will try and get a hold of the person who created the github-api-tests org to see about adding teams/some committers here as admins.

I'm going to remove the removeMembership method. When trying to add a test for it I keep getting nothing but a 405 Not Allowed error code. I'm not sure about the root cause of this, so I'm going to pull it out for now.

Well, I wonder if the membership removal is related to the current spikes happening within GitHub right now: https://status.github.com/

I rebased this on the latest changes from master this morning, but for some reason Travis is not getting kicked off...

@mtscout6 Not to concerned, I assume they pass locally.

@mtscout6 v2.1 should be going out now

Thanks!


ide-helper always generate id types of int even if string.

Versions:

ide-helper Version:  2.10.0
Laravel Version: 8.7
PHP Version: 8

Description:
My "users" table has string('id') as primary key but ide-helper always generate id types of int.
Steps To Reproduce:

Change "user" table id from id to string
Use ide-helper:models

Me also the same, +1

I also managed to reproduce this problem. Generally there is no problem, it's expected behavior for Laravel. The Model abstract class defined primary key type as int:
/**
 * The "type" of the primary key ID.
 *
 * @var string
 */
protected $keyType = 'int';

Source: https://github.com/illuminate/database/blob/master/Eloquent/Model.php#L63
As it's written in Laravel documentation, if you use other type for id you should redefine $keyType property on your model, like this:
protected $keyType = 'string';

Source: https://laravel.com/docs/8.x/eloquent#primary-keys
I think this issue can be closed.

I think this issue can be closed.

Following the suggestion as OP hasn't come back in a month


Implement a strict Joy mode

Rejoice will differ from Joy in many ways, but I'd like there to be a way to run existing Joy programs.
I think this will manifest as a command-line flag such as --mode joy which will load all the builtin Joy operators, combinators, and macros. By default --mode rejoice is implied. In Joy mode, it will support loading Joy libraries with --load inilib.joy.

This was completed with 7a2ca2acf45c829c03306b82d692006fcffe96e1.


wasm support?

Is it possible to port it to run on the wasm platform?
wasm in browser don't support Instant::now().
If this interface is defined, it will be able to run on the wasm platform
https://github.com/maxwase/button-driver/issues/2#issue-1740520887

That's an interesting question, I didn't consider WASM as a platform for this crate, however it seems that it is possible, so why not 😄
As you have already spotted, there is an issue for an external timer trait, honestly, I don't have good ideas on how to define one straight away, however I didn't think about it much.
Could you please share an example on how you would like to use this crate on WASM platform and how you would implement Instant on it if it misses one? That would help to consider needed aspects for the trait.

That's an interesting question, I didn't consider WASM as a platform for this crate, however it seems that it is possible, so why not 😄
As you have already spotted, there is an issue for an external timer trait, honestly, I don't have good ideas on how to define one straight away, however I didn't think about it much.
Could you please share an example on how you would like to use this crate on WASM platform and how you would implement Instant on it if it misses one? That would help to consider needed aspects for the trait.

Actually, we don't rely on absolute time, we only need to rely on the relative time since the Button was new, so we can actually just use core::time::Duration instead of Instant.

I tried to file a draft PR to change this, but noticed that the State enum and raw_state function are public, which means some incompatible changes have occurred to the external API.
https://github.com/maxwase/button-driver/pull/9/files

It would be great if you could try to implement your use case using #10

Yes, now it works for my use case, and I added an example running on the browser wasm.
https://github.com/maxwase/button-driver/pull/16