Integrate with HeadUnit Reloaded

Hi,
Thank you for the great work with this product :)
I was wondering if you ever considered merging/integration this code with HeadUnit Reloaded (https://forum.xda-developers.com/general/paid-software/android-4-1-headunit-reloaded-android-t3432348)
For me the main purpose of AndroidAutoIDrive is to provide Google Maps on my nbt evo Id4. Google Maps is running through your app but it is currently limited to only viewing the map (also makes sense reading the google maps api)
The most basic integration would be to just start HeadUnit Reloaded, take a screen capture and send it to the car (similar to https://github.com/hufman/IDriveConnectKitDemos/blob/master/screenmirroring/src/main/java/me/hufman/idriveconnectkitdemos/screenmirroring/ScreenMirroringThread.kt ?)
Before I go further, Im curious what your thought and experience on this is :)

Thank you for the suggestion! I have only briefly thought about emulating an Android Auto Headunit for the purposes of capturing the remote frame buffer, but felt it would be too big of a project to handle on my own :) Outright including an emulator's source code feels inelegant, and the phone might melt under the workload of Encoding AA Video Stream -> Decoding AA Video Stream -> Screenshotting virtual display -> Encoding to JPG.
Your idea of screenshotting the HeadUnit Reloaded app is a clever way to reuse their work, but I'm not sure how to launch their app within my virtual display. If I could figure that out, I was considering directly launching Android Auto compatible apps instead of running the full Android Auto display.
I did test out full screen mirroring, but it prompts the user each time the app starts capture, it requires that the screen stay on, and sending input to the foreground app is difficult to do.
I think my current approach will be trying to figure out how to launch apps on my virtual display, which should provide the best experience that can be expected for such a terrible hack :). I suspect there will need to be some trickery to get around the system privilege check for that, and only be available on rooted phones perhaps.
Of course, I may be missing some other way of doing it successfully! Please let me know your ideas! I have been focusing on the other components more, since the performance of image streaming over Bluetooth is not pleasing to me, so I apologize for the poor shape of the code in that area.

Thank you for the links and information. Running the Android Auto apps in your app would be the best but would be too complex for my development skills.
The workload is indeed far from ideal, however my plan was to run this on multiple devices(phones)

One device dedicated running to host Android Auto & feed video 2 connected apps (trunk)
The actual (personal) device which will cast to Android Auto

I did a quick test between 2 android devices and Android Auto was working great with HeadUnit Reloaded.
However, I think the screenshotting/encoding to jpg is indeed heavy. I read that GoPro use to have a ConnectedDrive app where you could live stream the camera. Could be of course that they were also snapshotting this but maybe there is another API call which accepts a video stream?
Have you investigated this? If not, could be useful if we can find the GoPro app with this videos stream functionality

Oh I hadn't thought of that! That would definitely alleviate some of the processing from the main phone, by running a secondary phone. That does get close to the existing Android Auto kits that are available, however. This project can't be as nicely integrated as a hardware mod, by being limited in the inputs it receives from the car: It only seems to receive button and list selection events, and does not receive more advanced inputs from the Idrive controller or any touch screen events.
The Go Pro app might indeed have some hints! I'll try to dig up an old version of the app, hopefully it still has the BMW resources in it. I think it was only released for iPhone, which is beyond my reverse engineering capabilities, but the resource files might still have some hints. I suspect it's just the regular Image widget, and they only supported versions of the car that connected directly via USB.

It seems that my old iOS6 device is unable to download an old version of GoPro, and the latest version does not include the BMW resources.

I managed to find an old iphone where i was able to load GoPro 2.12.1.
No clue if this has the ConnectedDrive functionality as all my data enabled 30-pin cables are either lost/broken. Will try to get a hold of one to test in my car.
I also read that the BMW Lap timer app (also iPhone) has the GoPro functionality. However, what i have seen on youtube so far it seems like this more likely to use screen capture instead of video stream.
Will keep you posted :)

If you are able to jailbreak your phone and extract the unencrypted IPAs, I'd love a copy to dig around in there for the BMW resources!

Made some steps :)
First tried if this app was compataible with bmw connected drive. However, BMW connecteddrive needs ios11 to run for which my iPhone 4 is too old.
However, I was able to transfer the ipa from the iPhone 4 and restore it on a newer iPhone with ios 13. This resulted in success and the GoPro app appeared in the BMW Connecteddrive menu.
The only thing, I dont have a GoPro... So I am asking friends if someone has an old which I can borrow and otherwise it doesnt seem too difficult to fake a gopro camera using a raspberry pi with an accesspoint and webserver.
I will keep you updated, if you would like to have a copy of the ipa please let me know.

Oh wow, very cool! I'd love a copy of the IPA, decrypted if possible! That looks so cool, thanks for trying it out!

We were able to emulate a GoPro camera so the app would startup, that is for the latest GoPro app however. The old one we cannot get working.
Decided to put the GoPro project in the fridge until I have a real gopro to test this with. I will continue to investigate how I can get Google Maps App/Android Auto to the BMW :)

I tried your suggestion to use the ScreenMirror test app from your repository. Unfortunately it doesn't work anymore. It keeps searching for Spotify and using an older version of Spotify I am getting a certificate expired/broken error.
I am now trying to build the screen mirror code into your current app but my coding is still a bit rusty so far. If you by any chance have an updated working screenmirror application, please let me know.

The ScreenMirror test app was built with the restriction that it couldn't include any of the car app resources in the app itself, because I'm not sure about the legality of them. Recent versions of Spotify no longer provide the ui_description.xml file, however the cert should still work. I'll try taking a peek when I can. As a workaround, you could include the CarAppAssetManager from this repo and drop the resources into the right place.

Hi Walter,
Thank you for all the directions :) Took some time to figure it all out but
we (a good friend of mine) managed to get the screen cap running on the
device. Very naste hacked code but the purpose was to have a prototype to
check if the ideas was to any use.
As a test I have installed the Android Auto interface on the phone which i
mirrored. In the video I control Android auto directly from the phone but
the next step would be to use the input from the car controller.
Do you have any ideas which input would be usable? If im not mistaken the
bmw touchpad cannot be used right? Alternatively the scroll and
navigational directions could be useful.
latency test: (I read from your comments 10fps should be visible so I think
we could do more)
https://photos.app.goo.gl/P2vGSZQtfKnivrSH7
Google maps/Spotify via Android Auto:
https://photos.app.goo.gl/3pesvZufKXsrdJ8q6
Thank you very much for all your support so far. So far it was a very
interesting experience :)
Regards,
Laurens
Op za 4 apr. 2020 om 23:54 schreef Walter Huf<EMAIL_ADDRESS>
The ScreenMirror test app was built with the restriction that it couldn't
include any of the car app resources in the app itself, because I'm not
sure about the legality of them. Recent versions of Spotify no longer
provide the ui_description.xml file, however the cert should still work.
I'll try taking a peek when I can. As a workaround, you could include the
CarAppAssetManager from this repo and drop the resources into the right
place.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hufman/AndroidAutoIdrive/issues/69#issuecomment-609094127,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA66TRFJZZE5IQTB5B5MIC3RK6UBDANCNFSM4LWADXAA
.

Whoa that's great! I also have some good news to share, which might be helpful.
I took some time to refactor the map module a lot, to hopefully be friendlier to general image mirroring like this effort. I haven't decided if it's fully generic enough to be merged yet, but it's available at https://github.com/hufman/AndroidAutoIdrive/tree/refactor_maps
I also had some partial success with my efforts at mirroring individual apps, which can be found at https://github.com/hufman/AndroidAutoIdrive/compare/refactor_maps...androidauto_apps It requires a rooted phone running the Xposed framework, but Android Auto Google Maps does run and appears functional. Waze doesn't seem to load the toolbar at the top, and CarStream crashes when it tries to load the audiomanager service.
Most relevant to you, though, it shows how I map the scroll events and the idrive click event to KeyEvents (tab, shift-tab, and enter) that I can send to the app. I'm not sure, off the top of my head, how you'd send them to the mirrored app, but it's surely possible.
Please try out the refactored code (there's further refinement in the second branch too, which I might pull into the main refactor) and let me know any places where I could make it more general. Feel free to reach out directly for faster back-and-forth discussion too, this is exciting :)

Hi Walter,
Cool stuff. The refactored code looks clear to me :)
I tried to load your individual apps version ("
https://github.com/hufman/AndroidAutoIdrive/tree/androidauto_apps" but
although it loads, I still see the same menu. Maybe I am doing something
wrong.
We had the same idea to use tab + shift-tab & enter for the navigation. I
think we ran into the same issue that with newer android versions you need
root to send keyevent to the OS (i have read about an adb localhost trick
but that is also not a very clean approach).
For what purpose do you need the xposed framework? isnt root enough to send
keystrokes?
It would be great if we could use the touch controller from the car. I
noticed in the debug reports that the car is reporting it has touch
capability but i never found a connecteddrive app utilizing it. Maybe the
left,right enter combo is enough however.
A lost resort could be to directly sniff the canbus and use this data to
get the touch events from the controller but that would make the whole
setup way more complex (currently we only need an android phone connected
through usb).
https://hackaday.com/2018/06/04/reverse-engineered-media-controller-from-car-is-best-friends-with-android/
I will try again to load your code and will let me know if it is working
(my phone is rooted now, just didnt install xposed yet)
regards,
Laurens
Op ma 20 apr. 2020 om 17:12 schreef Walter Huf<EMAIL_ADDRESS>
Whoa that's great! I also have some good news to share, which might be
helpful.
I took some time to refactor the map module a lot, to hopefully be
friendlier to general image mirroring like this effort. I haven't decided
if it's fully generic enough to be merged yet, but it's available at
https://github.com/hufman/AndroidAutoIdrive/tree/refactor_maps
I also had some partial success with my efforts at mirroring individual
apps, which can be found at refactor_maps...androidauto_apps
https://github.com/hufman/AndroidAutoIdrive/compare/refactor_maps...androidauto_apps
It requires a rooted phone running the Xposed framework, but Android Auto
Google Maps does run and appears functional. Waze doesn't seem to load the
toolbar at the top, and CarStream crashes when it tries to load the
audiomanager service.
Most relevant to you, though, it shows how I map
https://github.com/hufman/AndroidAutoIdrive/compare/refactor_maps...androidauto_apps#diff-e2385533483fbccc920f5ade826f6334R99
the scroll events and the idrive click event to KeyEvents (tab, shift-tab,
and enter) that I can send to the app. I'm not sure, off the top of my
head, how you'd send them to the mirrored app, but it's surely possible.
Please try out the refactored code (there's further refinement in the
second branch too, which I might pull into the main refactor) and let me
know any places where I could make it more general. Feel free to reach out
directly for faster back-and-forth discussion too, this is exciting :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hufman/AndroidAutoIdrive/issues/69#issuecomment-616617481,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA66TRHWYLOIY6D2WBW4GO3RNRQ5VANCNFSM4LWADXAA
.

For this attempt, I set it to create a duplicate icon from the Maps module, but it should have added some app icons in the Connected menu showing detected Android Auto apps. These app icons should show up just through PackageManager discovery, and don't test out any of the Android Auto connection code until you click them to try to start them. In this picture I have the Maps module disabled so it is just showing the Projection module and detected apps:

I'm loathe to support it officially, because of the difficulty in interfacing with an obfuscated API that is free to change all of its function signatures between versions :) Also, the performance feels really bad, it feels like there's a full second of delay between input and the screen updating, even over USB.
For the input for these Android Auto apps, the connection from the Android Auto host app to the projection app (like GMaps) has an API method for Android Auto to send a KeyEvent to the app directly. I am using the Xposed framework to add some hooks to bypass some authorization checks: The Android Auto SDK running in these apps verifies that the hosting app is signed by Google and has the CAPTURE_VIDEO_OUTPUT permission before actually displaying the app.
Android Auto has protocol support for a rotary controller, and GMaps and Waze show a nice highlight to show the active button that would be clicked.
As for BMW, I haven't seen any app examples of touch input or any more advanced input, like how the car's built-in Map can use the tilt of the knob to pan around the map, but I'd look forward to reverse engineering any examples that show up!

Hi,
Thats really cool that you were able to hook into the Android Auto api. Did
you found any public docs with reference we could study?
I have tried your carapps version in the car and indeed the android autos
apps are now popping up in the menu. Unfortunately when i clicked an app
there was no response (loading). I think its related to an error which I
already got when the app was started (see attached). I googled on the error
and read some messages to an unclean build.
I have a rooted phone (moto g5 plus) with xposed through magisk running.
Where do you think the second delay is coming from? From the api or
something else?
I did a small test with an onlick clock using the browser and the delay
seems around 0.3s. Quite doable I would say.
Is this similar to what you are experiencing?
Movie test:
https://photos.app.goo.gl/DkPrBXgERdoDGzQa8
Stopwatch test:
https://photos.app.goo.gl/4otCrYyUChuLHqrT7
Regards,
Laurens
Op do 23 apr. 2020 om 08:19 schreef Walter Huf<EMAIL_ADDRESS>
For this attempt, I set it to create a duplicate icon from the Maps
module, but it should have added some app icons in the Connected menu
showing detected Android Auto apps. These app icons should show up just
through PackageManager discovery, and don't test out any of the Android
Auto connection code until you click them to try to start them. In this
picture I have the Maps module disabled so it is just showing the
Projection module and detected apps:
[image: image]
https://user-images.githubusercontent.com/1592375/80063651-36375b80-84eb-11ea-971f-77a716971fcf.png
I'm loathe to support it officially, because of the difficulty in
interfacing with an obfuscated API that is free to change all of its
function signatures between versions :) Also, the performance feels really
bad, it feels like there's a full second of delay between input and the
screen updating, even over USB.
For the input for these Android Auto apps, the connection from the Android
Auto host app to the projection app (like GMaps) has an API method for
Android Auto to send a KeyEvent to the app directly. I am using the Xposed
framework to add some hooks
https://github.com/hufman/AndroidAutoIdrive/blob/androidauto_apps/app/src/main/java/me/hufman/carprojection/XposedHook.kt
to bypass some authorization checks: The Android Auto SDK running in these
apps verifies that the hosting app is signed by Google and has the
CAPTURE_VIDEO_OUTPUT permission before actually displaying the app.
Android Auto has protocol support for a rotary controller, and GMaps and
Waze show a nice highlight to show the active button that would be clicked.
As for BMW, I haven't seen any app examples of touch input or any more
advanced input, like how the car's built-in Map can use the tilt of the
knob to pan around the map, but I'd look forward to reverse engineering any
examples that show up!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hufman/AndroidAutoIdrive/issues/69#issuecomment-618202543,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA66TRHCAGEAKR7RQ5DWZV3RN7MXXANCNFSM4LWADXAA
.

I found some magic code online which seems to do something (but the
noclassdef error is still sometimes there):
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->

    def requested = details.requested

    if (requested.group == "com.android.support") {

        if (!requested.name.startsWith("multidex")) {

            details.useVersion "26.+"

        }

    }

}

}
After adding this i got an error android auto could not be found, which was
correct as it was not installed. After installed I am still receiving
errors when trying to start app. I do see some events of FakeCar in the
event log, could it be your dev code is still build on fakecar?
regards,
Op do 23 apr. 2020 om 22:02 schreef Laurens Koot<EMAIL_ADDRESS>
Hi,
Thats really cool that you were able to hook into the Android Auto api.
Did you found any public docs with reference we could study?
I have tried your carapps version in the car and indeed the android autos
apps are now popping up in the menu. Unfortunately when i clicked an app
there was no response (loading). I think its related to an error which I
already got when the app was started (see attached). I googled on the error
and read some messages to an unclean build.
I have a rooted phone (moto g5 plus) with xposed through magisk running.
Where do you think the second delay is coming from? From the api or
something else?
I did a small test with an onlick clock using the browser and the delay
seems around 0.3s. Quite doable I would say.
Is this similar to what you are experiencing?
Movie test:
https://photos.app.goo.gl/DkPrBXgERdoDGzQa8
Stopwatch test:
https://photos.app.goo.gl/4otCrYyUChuLHqrT7
Regards,
Laurens
Op do 23 apr. 2020 om 08:19 schreef Walter Huf<EMAIL_ADDRESS>
For this attempt, I set it to create a duplicate icon from the Maps
module, but it should have added some app icons in the Connected menu
showing detected Android Auto apps. These app icons should show up just
through PackageManager discovery, and don't test out any of the Android
Auto connection code until you click them to try to start them. In this
picture I have the Maps module disabled so it is just showing the
Projection module and detected apps:
[image: image]
https://user-images.githubusercontent.com/1592375/80063651-36375b80-84eb-11ea-971f-77a716971fcf.png
I'm loathe to support it officially, because of the difficulty in
interfacing with an obfuscated API that is free to change all of its
function signatures between versions :) Also, the performance feels really
bad, it feels like there's a full second of delay between input and the
screen updating, even over USB.
For the input for these Android Auto apps, the connection from the
Android Auto host app to the projection app (like GMaps) has an API method
for Android Auto to send a KeyEvent to the app directly. I am using the
Xposed framework to add some hooks
https://github.com/hufman/AndroidAutoIdrive/blob/androidauto_apps/app/src/main/java/me/hufman/carprojection/XposedHook.kt
to bypass some authorization checks: The Android Auto SDK running in these
apps verifies that the hosting app is signed by Google and has the
CAPTURE_VIDEO_OUTPUT permission before actually displaying the app.
Android Auto has protocol support for a rotary controller, and GMaps and
Waze show a nice highlight to show the active button that would be clicked.
As for BMW, I haven't seen any app examples of touch input or any more
advanced input, like how the car's built-in Map can use the tilt of the
knob to pan around the map, but I'd look forward to reverse engineering any
examples that show up!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hufman/AndroidAutoIdrive/issues/69#issuecomment-618202543,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA66TRHCAGEAKR7RQ5DWZV3RN7MXXANCNFSM4LWADXAA
.

Hello, I recently discovered how to use iOS app certificates, so I'm wondering if you were able to extract the GoPro IPA or any other IPA files for old BMW apps? I'd like to have a complete collection of all the known apps :)


[spike] Enodebd DP integration suggestion from Amar

On 14.07.2021 we discussed with Amar our idea about integration and extension of enodebd to integrate with DP.
Our spikes does point us to some direction, but during the call Amar suggested that he already has some idea on how this could be done.
This information is vital as Amar knows the endoebd/Magma code a lot better so his input in this topic will be very decisive in making further development.

https://github.com/magma/magma/pull/8197/commits/45eb211be17e4d57ed23672a5438e59efb2a5640

@xbend
Please review the proposal on github.

https://github.com/magma/magma/issues/8196


Errors under @Createloot trigger

Steps to reproduce: Use @Createloot instead of @NPCRestock in your monsters
Add any monster with the trigger on it, call guards.  It will give you template error because it can't create anything.
09:44:ERROR:(c_monster_classic.scp,2313)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2314)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2315)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2316)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2317)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2318)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2319)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2320)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2321)Undefined keyword 'ITEM'.
09:44:ERROR:(c_monster_classic.scp,2323)Undefined keyword 'ITEM'.

Good find! I had this error and did not know how reproduce.

Good find! I had this error and did not know how reproduce.

I can agree that is fixed with latest build.

I can agree that is fixed with latest build.

btw, small note, createloot should not make a noise when it adds loot to a monster IMO, it should just quietly place the items onto the monster. you never heard gold coins dropping into a monsters corpse on OSI when they died.

btw, small note, createloot should not make a noise when it adds loot to a monster IMO, it should just quietly place the items onto the monster. you never heard gold coins dropping into a monsters corpse on OSI when they died.

@soulless320 you remember diablo? When you have the sound of a ring falling on the ground. Ping! Sound was there:smile:

@soulless320 you remember diablo? When you have the sound of a ring falling on the ground. Ping! Sound was there:smile:


Add new item button on mobile

solves #161

issue #161 states

The add new Item Button is shown on every page containing the item grid view.

currently this is not the case on desktop
@KennethStar03 should this functionality exist on mobile regardless?


Move constants

Constants related to the Frame are under Scom, which means that an import inside a function is required to prevent circular imports.
Instead, moving this contants to Frame prevent this circular import.

🙏 @Adirio


python3Packages.pykoplenti: init at 1.0.0

Motivation for this change
Python REST client API for Kostal Plenticore Inverters
https://github.com/stegm/pykoplenti
This is a new Home Assistant dependency (> 2021.5.x). Home Assistant uses kostal-plenticore-0.2.0 but with 1.0.0 the module was renamed.
ToDo:

[ ] Update component-packages
[ ] Enable tests

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 121855 run on x86_64-linux 1

2 packages built:

python38Packages.pykoplenti
python39Packages.pykoplenti

Result of nixpkgs-review pr 121855 at 4af22585 run on aarch64-linux 1

2 packages built successfully:

python38Packages.pykoplenti
python39Packages.pykoplenti


upcoming: [M3-7726] - Assign Linodes to Placement Group Drawer

Description 📝
This PR brings the drawer to assign linodes to a PG (in the VPC subnet fashion) + improvements and naming convention updates
Changes  🔄

Add new drawer and tests
Connect drawer to flow
Update utils and function names to use "linode" instead of "vm"
Small (non breaking) updates to the RemovableSelectionList to allow for extra styling and accessibility improvements

Preview 📷

How to test 🧪
Prerequisites

Turn on both the "Placement Groups" feature flag and MSW

Verification steps

Navigate to /placement-groups/1/linodes
Click on "Add Linode to Placement Group"
Confirm

overall form behavior
adding/removing a linode from the list (and invalidation)

NOTE:  due to limitations in using MSW, we can only really see adding/removing ONE linode at a time (subsequent tries won't be reflected in the UI)
As an Author I have considered 🤔
Check all that apply

[x] 👀 Doing a self review
[ ] ❔ Our contribution guidelines
[x] 🤏 Splitting feature into small PRs
[x] ➕ Adding a changeset
[x] 🧪 Providing/Improving test coverage
[ ] 🔐 Removing all sensitive information from the code and PR description
[x] 🚩 Using a feature flag to protect the release
[x] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[x] 📱 Providing mobile support
[x] ♿  Providing accessibility support

@jaalah-akamai yes the banner is expected - i intentionally made it appear with our mocks upon reaching the 10 limit in the drawer

Also, will this have it's own permissions/grant like add_placement_groups or something?

So the permissions are the same as the Linode permissions per the API specs. Not sure what the approach should be


Manual cherry-pick of #33 (Implement syncing for ConstraintTemplates)

Manual cherry-pick of:

https://github.com/open-cluster-management-io/governance-policy-framework-addon/pull/33

Closes #40

Blocked by:

https://github.com/stolostron/cert-policy-controller/pull/201
https://github.com/stolostron/iam-policy-controller/pull/165


improvement use new way for decimal arithmetic precision promotion(#27787)

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

run buildall

run buildall

run p0

this improvement will sync to 2.1 branch?

@jacktengg this improvement will sync to 2.1 branch?


Array of values

I have a subscription to an instance of a Matrikom UA Gateway server. For each Node they have set up a array of values. Looks like this is not supported? I dot get anything - but I don't get any errors - just no messages.

It works ...


Presentation Only/Camera Only Streams

This is a draft for now. I will update this section.

@joschahenningsen I changed how the camera presets are chosen quite a bit. I hope I only enhanced the functionality and didn't actually break anything. The UI is much more intuitive now to say the least. I would appreciate it if you could take a look at how the Camera Presets section is looking now. I hope the idea is that the user can only choose one camera preset per lecture hall per course (I have pretty much excluded any option to do that by modfying the UI). I'm awaiting your feedback!

I still need to modify watch.gohtml and then hopefully it will be done :)

I think the implementation is complete, but I need to test it further on the test server. Feedback is appreciated!


folder not opening

ive done everything and the dist file doesnt open

Do you have python installed? Replace exit with pause in run.bat file and see if there are any errors.

i have pyhton, what exit and pause

open run.bat file in the data folder using notepad. Remove every word "cls" and replace every word "exit" with "pause". It will pause the compilation of the program if some error happens
Also if possible. Can you record your screen for me to check what happened.

idk it didnt work for my friend either but like we reinstalled 3 times and now it works so i think its okay now thanks


Don't use resource uid as cluster_id

Using uid causes new Azimuth restore functionality to break since the restored resource has a different uid so the terraform state is not correctly re-adopted.

Lets close this, we found a different approach.


Update Webpack to the latest stable version (4.29.6)

/botio test

/botio-linux preview

Thank you!


Support for logging Altair plots

Is there any chance that Altair plots will be supported for logging with wandb?

Hey @itssimon we do support rendering Vega, but haven't added formal support Altair.  Can you tell us a little more about what you're wanting to log specifically and give us an example usecase?

I would like to add some charts to wandb showing things like model calibration. I have an existing library that produces these sorts of charts for a fitted model in Altair. Being able to simply write them to the wandb summary would be fantastic.
If rendering Vega is already supported it sounds like adding Altair support should be fairly straightforward. Given Altair's rise in popularity this would probably be of interest to many users.

@shawnlewis could you comment? It looks like Altair is built on top of Vega: https://altair-viz.github.io/

Hi, we are refining our Vega feature now. You're right, supporting Altair plots should be straightforward. I'll post an update later this week about the Vega feature.

@shawnlewis any update on this?

While the official Altair support is still in development, are you guys able to guide me on how to use the existing Vega feature? I can't find anything in the docs.

Just got flagged on this one! Here's the documentation on Custom Charts: https://docs.wandb.ai/app/features/custom-charts
Here's a live example in a hosted notebook →

Altair is definitely more readable than vega json spec :-)
import altair as alt

# load a simple dataset as a pandas DataFrame
from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
)


Release v1.20.0 (simplex)

Thanks @mosadialiou.
We should get the CI working as a check for merging.

Thanks @mosadialiou.
We should get the CI working as a check for merging.

Yes the ci branch is already ready. We will merge it later after we merge this one.

@kcw-grunt please merge this PR ASAP. thanks!

@kcw-grunt please merge this PR ASAP. thanks!


Reporting a vulnerability

Hello!
I hope you are doing well!
We are a security research team. Our tool automatically detected a vulnerability in this repository. We want to disclose it responsibly. GitHub has a feature called Private vulnerability reporting, which enables security research to privately disclose a vulnerability. Unfortunately, it is not enabled for this repository.
Can you enable it, so that we can report it?
Thanks in advance!
PS: you can read about how to enable private vulnerability reporting here: https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository

Thank you for your contribution.
Unfortunately, we are archiving this repository as a part of napari-hub plugin previews deprecation. We will no longer continue to work on this repository. Therefore, all issues and pull requests are being closed.


PRIORITY: Cost-Benefit

As a [description of user]?
member of the general public in BC,
I want to [functionality]
access the cost-benefit analysis of a policy or program decision,
So that [benefit]
understand the research and rationale behind this policy or program and see that the government is being transparent.
Additional context
Relevant summary: see that government has addressed the risks and drawbacks of its climate plans
Acceptance Criteria
Agreed-upon confirmation of the requirements when done can be deemed as complete

This is a dupe of issue #53, closing


add more data in the autocompletes

currently it is hard to decide from the autocompletes whether you found the correct entity. We will need to add more context information to the autocompletes.
In relation to #319

Added DB and LOD-IDs to Stanbol autocompletes; reformatted autocompletes; removed score from autocompletes. Also reformatted the result string for readability and uniform styling.
Closed for now with commit Merge branch 'release/v0.17.12'


Disable deadlines for ami tests

These tests fails occasionally in CI due to timeouts so lets drop these

Bors merge


Fix typo in version

Summary
Followup on https://github.com/mattermost/actions-workflows/pull/31
Ticket Link
None

2nd try...


Potential scenarios where you could unintentionally share your location to rtirl

Hello! I believe there are some potential scenarios where a user could leak their location on rtirl by mistake:
When one starts a stream with rtirl and location enabled and then perform one or many of the actions listed below, the /stop endpoint of rtirl is not called, and as such you potentially still appear in the public map.

Disable location.
Disable rtirl.
Add a privacy zone that overlaps with the current location?

Calling stop in these scenarios would help the streamer not have to stop streaming and be able to not show in rtirl map. (Maybe for the privazy zone case there could be other alternatives...)
Thanks!

Will have a look at it.

Should be fixed in 0.273.0. Thanks for reporting.

Should be fixed in 0.273.0. Thanks for reporting.
Let me know if it works as expected once the fix is available in TestFlight.

Yeah, that seems to work! Thanks for the help!


EXEC_BAD_ACCESS when trying to delete message using custom menu actions

I'm getting EXEC_BAD_ACCESS when trying to delete a message using custom menu actions.
After enabling Zombie Objects, this is the error I see:

JSQMessages[27654:181624] *** -[JSQMessagesCollectionViewCellIncoming release]: message sent to deallocated instance 0x7ff9cb107d50

I was able to reproduce this with the demo app.
Steps to reproduce:

Add this to [DemoMessagesViewController customAction]:

- (void)customAction:(id)sender
{
    NSLog(@"Custom action received! Sender: %@", sender);

        JSQMessagesCollectionViewCell *cell = sender;
        NSIndexPath *indexPath = [self.collectionView indexPathForCell:cell];
        [self.demoData.messages removeObjectAtIndex:indexPath.item];
        [self.collectionView deleteItemsAtIndexPaths:@[indexPath]];
}

Run the demo app. Push via storyboard -> delete any message -> back.

Is there something wrong with my code or is this a bug?

Related to #1026 .
Apologies for not having gone through earlier issues thoroughly before opening this one.
I'm using the 'develop' branch now, waiting for v7.1.2. :)

:+1: will be fixed in 7.1.2


have more copy-buttons around code snippets

maybe longer triple backquote bash snippets could all have copy buttons?

doh already there


Add Course MySQL Free

What does this PR do?
Add resource(s)
For resources
Courses
Why is this valuable (or not)?
The course shows in an informative way the first steps and peculiarities of MySQL
How do we know it's really free?
Yes, It is available for free
For book lists, is it a book? For course lists, is it a course? etc.
Courses
Checklist:

[X] Read our contributing guidelines.
[X] Search for duplicates.
[X] Include author(s) and platform where appropriate.
[X] Put lists in alphabetical order, correct spacing.
[X] Add needed indications (PDF, access notes, under construction).
[X] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

please move this to the interactive tutorials list

added in #9203


Throw errors instead of string literals

Throwing literals can mess up the stack trace and produce weird bugs. I forgot to add an unique key and redbox got messed up and was quite hard to find the actual error.
http://eslint.org/docs/rules/no-throw-literal
http://www.devthought.com/2011/12/22/a-string-is-not-an-error/

@maaaikoool, sorry for lately reply and thanks your contributions :)


VM list items are cropped visually

Describe the issue
I have one VM in my UTM app and the item for that VM looks visually cropped in the sidebar.
Configuration

UTM Version: 2.0.28 (28)
OS Version: 11.3.1 (20E241)
Intel or Apple Silicon? Intel

Duplicate of #2335


flux: fix mpibind plugin in nested Flux jobs

This PR fixes an issue that causes the mpibind flux plugin to assign invalid cores when run within a nested Flux instance.
The problem can be demonstrated by running a flux mini alloc (which launches a new flux instance) on a subset of the cores of a node, then running job within that instance. As we can see below, mpibind is confused in the child job because the job shell reports it has been assigned core "1", but this really should be a virtual core within the core set assigned to the job (OS cores 46-47)
When run with the Flux builtin affinity plugin, the affinity is properly set for the child job, because the affinity plugin is fetching the instance local hwloc XML which has been restricted to only the resources available to the job:
f(s=1,d=0) grondo@corona211:~/git/mpibind/flux$ flux mini alloc -n2 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run grep Cpus_allowed_list /proc/self/status'
Cpus_allowed_list:	46-47
Cpus_allowed_list:	1
[detached: session exiting]
f(s=1,d=0) grondo@corona211:~/git/mpibind/flux$ flux mini alloc -n2 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run -o mpibind=off grep Cpus_allowed_list /proc/self/status'
Cpus_allowed_list:	46-47
Cpus_allowed_list:	47
[detached: session exiting]

This PR (after making some whitespace fixes), makes two changes to fix this issue in two different scenarios:

If MPIBIND_TOPOFILE is not set, then fetch the hwloc XML from the job shell. This fixes the issue since the XML is already restricted as noted above. It will also be much more efficient than rescanning the entire topology in the mpibind plugin.
Otherwise, restrict the hwloc topology to the cpu affinity mask of the current process before going on to assign cores

This should allow the mpibind plugin to work in either scenario, e.g.:
f(s=1,d=0) grondo@corona211:~/git/mpibind/flux$ flux mini alloc -n2 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run -o initrc=mpibind-flux.lua  grep Cpus_allowed_list /proc/self/status'
Cpus_allowed_list:	46-47
Cpus_allowed_list:	47
[detached: session exiting]
f(s=1,d=0) grondo@corona211:~/git/mpibind/flux$ flux mini alloc -n2 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run --env=-MPIBIND* -o initrc=mpibind-flux.lua  grep Cpus_allowed_list /proc/self/status'
Cpus_allowed_list:	46-47
Cpus_allowed_list:	47
[detached: session exiting]

As a side effect, it is no longer necessary to have a MPIBIND_TOPOFILE setting on Flux clusters using mpibind, since the plugin can now fetch the XML directly from the job shell instead of a file. However, it won't hurt to continue running with that environment variable set.

Just pushed to fix up a conflict. Any chance this an get a review @eleon?

Thanks so much, @grondo . Sorry for the delay, I am hoping to get to this soon. In the time being, the launch command in the description above seems to be missing for the first part of the second code block.

In the time being, the launch command in the description above seems to be missing for the first part of the second code block.

Thanks! Fixed. (The command was accidentally joined with the preceeding triple backtick)

Nice work @grondo . A couple of questions/concerns:

Does the Flux XML topology include AMD GPUs as OpenCL devices (in addition to RSMI)? Before AMD tagged the GPUs as RSMI, there was only OpenCL. Thus, mpibind relies on OpenCL to discover the AMD GPUs.
Before calling the mpibind plugin, Flux binds all of the processes to the same CPU set, correct? In other words, Flux binds the job to the set of assigned resources, rather than each process to a subset of these resources, right?

Re flux_shell_get_hwloc_xml: Does the Flux XML topology include AMD GPUs as OpenCL devices (in addition to RSMI)? Before AMD tagged the GPUs as RSMI, there was only OpenCL. Thus, mpibind relies on OpenCL tags to discover the AMD GPUs.

Good question. Flux loads the hwloc dynamically at startup, so whether the GPUs are present as OpenCL vs RSMI  will depend on the system version of libhwloc I suppose. I'm not familiar enough with hwloc to answer definitively now, but we could try starting Flux on various systems and check the result.
Note that this change only pulls hwloc from Flux if MPIBIND_TOPOFILE is not set, so I assume the resulting hwloc topology would be the same either way.

Re topo_restrict: The resulting cpu set is the set of all CPUs assigned to the job, right? Rather than the cpu set of an individual process (unless all of the processes are assigned to the job CPUs)?

Yes, since this function runs in the shell.init callback, the shell's affinity plugin will have set the CPU affinity mask to the cores in the job. Even if the affinity plugin is set to per-task, this adjustment of the CPU affinity does not occur until the task.init callback, so this does not affect mpibind's topo_restrict().

Somehow, I cannot reproduce the tests above:
leon@corona211:affinity$ flux mini alloc -n2 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run grep Cpus_allowed_list /proc/self/status'
flux-job: fnseKD5zJNs started                                           00:00:02
Cpus_allowed_list:	0-95
Cpus_allowed_list:	47,95
[detached: session exiting]

Any thoughts?

More examples:
leon@corona211:affinity$ flux mini alloc -N1 -n1 -c4 sh -c 'grep Cpus_allowed_list /proc/self/status'
flux-job: fnshmAM6DMZ started                                           00:00:02
Cpus_allowed_list:	0-95
[detached: session exiting]

leon@corona211:affinity$ flux mini alloc -N1 -n1 -c4 -o mpibind=off sh -c 'grep Cpus_allowed_list /proc/self/status'
flux-job: fnsi8F39uL3 started                                           00:00:02
Cpus_allowed_list:	0-95
[detached: session exiting]

Sorry, I should have mentioned that on corona, top level jobs are always allocated whole nodes exclusively. Therefore, this issue does not affect jobs at the top level. Instead, it only becomes an issue at a depth > 1. In my examples above, I have already run one level of flux mini alloc, then run a second alloc within that instance of depth=1.
This simulates a batch job which submits more batch jobs, or Flux running on a system where exclusive nodes is not the default.

Re flux_shell_get_hwloc_xml: Does the Flux XML topology include AMD GPUs as OpenCL devices (in addition to RSMI)? Before AMD tagged the GPUs as RSMI, there was only OpenCL. Thus, mpibind relies on OpenCL tags to discover the AMD GPUs.

Good question. Flux loads the hwloc dynamically at startup, so whether the GPUs are present as OpenCL vs RSMI will depend on the system version of libhwloc I suppose. I'm not familiar enough with hwloc to answer definitively now, but we could try starting Flux on various systems and check the result.
Note that this change only pulls hwloc from Flux if MPIBIND_TOPOFILE is not set, so I assume the resulting hwloc topology would be the same either way.

The default hwloc on Corona does not show the GPUs as OpenCL devices, unless you load the rocm library:
leon@corona174:~$ lstopo-no-graphics -p | grep -i opencl
leon@corona174:~$

leon@corona174:~$ lstopo-no-graphics -p | grep -i rsmi
              GPU(RSMI) "rsmi2"
              GPU(RSMI) "rsmi3"
              GPU(RSMI) "rsmi1"
              GPU(RSMI) "rsmi0"
              GPU(RSMI) "rsmi6"
              GPU(RSMI) "rsmi7"
              GPU(RSMI) "rsmi5"
              GPU(RSMI) "rsmi4"

leon@corona174:~$ module load rocm

leon@corona174:~$ lstopo-no-graphics -p | grep -i opencl
              CoProc(OpenCL) "opencl0d2"
              CoProc(OpenCL) "opencl0d3"
              CoProc(OpenCL) "opencl0d1"
              CoProc(OpenCL) "opencl0d0"
              CoProc(OpenCL) "opencl0d6"
              CoProc(OpenCL) "opencl0d7"
              CoProc(OpenCL) "opencl0d5"
              CoProc(OpenCL) "opencl0d4"

As a result, the Flux XML topology does not show the GPUs as OpenCL devices:
# Example 1: Use the system-wide topology file
leon@corona211:affinity$ env | grep TOPO
MPIBIND_TOPOFILE=/usr/tce/packages/mpibind/lstopo.corona.xml

leon@corona211:affinity$ flux mini alloc -N1 -n1 -c5 -o initrc=../flux/mpibind-flux-test.lua bash -c 'env | grep ROC'
flux-job: fnssaF6LgYw started                                           00:00:02
OMP_PROC_BIND=spread
ROCR_VISIBLE_DEVICES=2,3,1,0,6,7,5,4
[detached: session exiting]

# Example 2: Use the Flux topology
leon@corona211:affinity$ flux mini alloc --env=-MPIBIND* -N1 -n1 -c5 -o initrc=../flux/mpibind-flux-test.lua bash -c 'env | grep ROC'
flux-job: fnssSnKNLGf started                                           00:00:02
OMP_PROC_BIND=spread
[detached: session exiting]

But, like you said, the resulting topology would be the same whether is coming from Flux or from the system directly.
I need to open an issue so that mpibind drops OpenCL in favor of RSMI for AMD GPUs.

Yes, since this function runs in the shell.init callback, the shell's affinity plugin will have set the CPU affinity mask to the cores in the job. Even if the affinity plugin is set to per-task, this adjustment of the CPU affinity does not occur until the task.init callback, so this does not affect mpibind's topo_restrict().

Great.
Unfortunately, as shown above, I cannot test nested Flux jobs in a similar fashion as @grondo . To avoid delaying this issue any longer and since the code looks good, I will accept the changes :)

For now, the topology provided by Flux is not used when MPIBIND_TOPOFILE is set in the environment, so one approach might be to continue to use provided system-wide topofile until issues with AMD GPUs are fully resolved. The topo_restrict function should work whether using the Flux or topofile topology.
If a topofile is not available, the benefit to fetching the topology from Flux is that loading topology from the system is very slow, especially when many jobs are starting concurrently (probably you already knew this). So the change might be a net win since without the topofile the mpibind plugin would be loading the same topology which can already be provided by Flux.

Unfortunately, as shown above, I cannot test nested Flux jobs in a similar fashion as @grondo .

@eleon - In case my other comment got lost above, the difference in my testing environment is that I was launching mini alloc under another mini alloc. At the top level, all jobs on corona are allocated whole nodes exclusively, so the cpu affinity mask always includes all cores. You have to launch another Flux instance on a subset of these resources to reprocude the problem.

Thank you, again, @grondo

@eleon - In case my other comment got lost above, the difference in my testing environment is that I was launching mini alloc under another mini alloc. At the top level, all jobs on corona are allocated whole nodes exclusively, so the cpu affinity mask always includes all cores. You have to launch another Flux instance on a subset of these resources to reproduce the problem.

Yes, it makes sense!

@grondo , I can reproduce the desired behavior above :) However, I am running into an issue when modifying the example slightly: Allocate 4 cores, then launch a job with 2 processes and 2 cores each. This is a valid example, right?
# Example 1: Can reproduce desired behavior
leon@corona171:affinity$ flux mini alloc -n1 -c4 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run -n2 -c1 -o initrc=../flux/mpibind-flux-test.lua  grep Cpus_allowed_list /proc/self/status'
Cpus_allowed_list:	44-47,92-95
Cpus_allowed_list:	47
Cpus_allowed_list:	46
[detached: session exiting]

# Example 2: Can't use all 4 cores over 2 tasks:
leon@corona171:affinity$ flux mini alloc -n1 -c4 sh -c 'grep Cpus_allowed_list /proc/self/status; flux mini run -n2 -c2 -o initrc=../flux/mpibind-flux-test.lua  grep Cpus_allowed_list /proc/self/status'
Cpus_allowed_list:	44-47,92-95
0.055s: flux-shell[0]: stderr: flux-shell: topology.c:4186: restrict_object_by_cpuset: Assertion `!hwloc_bitmap_intersects(obj->complete_nodeset, droppednodeset) || hwloc_bitmap_iszero(obj->complete_cpuset)' failed.
flux-job: task(s) Aborted
2023-03-19T01:13:01.999415Z broker.err[0]: rc2.0: sh -c grep Cpus_allowed_list /proc/self/status; flux mini run -n2 -c2 -o initrc=../flux/mpibind-flux-test.lua  grep Cpus_allowed_list /proc/self/status Exited (rc=134) 0.4s
[detached: session exiting]

Hm, that does seem like it should work. I haven't seen that HELOC assertion before.   Let me take a look at that when I get back to a computer.

Thank you, @grondo

@eleon: I'm looking into this, though I haven't gotten much of anywhere yet. I can't reproduce the issue with the builtin flux-shell affinity plugin, which should be doing almost the exact same thing.
Would you like a separate issue open on this so we can track finding there?

@eleon: I'm looking into this, though I haven't gotten much of anywhere yet. I can't reproduce the issue with the builtin flux-shell affinity plugin, which should be doing almost the exact same thing.
Would you like a separate issue open on this so we can track finding there?

Yes, that'd be great, @grondo !


Send notification after combat ends

https://github.com/Gogo1951/GogoWatch/issues/16
In-combat whispers could be buried during combat or be seen as annoying rather than helpful.

Will be live in 1.2.0


Segmentation fault (core dumped) while getting the node attributes from the TF Graphdef

Hi armnn team,
Thanks for your amazing work.
I was trying to use the TF Parser code (https://github.com/ARM-software/armnn/blob/branches/armnn_20_08/src/armnnTfParser/TfParser.cpp) for deserializing the Frozen graph.
    FILE* fd = fopen("model.pb", "rb");
    if (fd == nullptr)
    {
        std::cout<<"*******there is no graph file found**********"<<std::endl;

    }
    GraphDef graphDef;

     std::cout<<"right after ReadBinaryProto"<<std::endl;
    google::protobuf::io::FileInputStream  inStream(fileno(fd));
    google::protobuf::io::CodedInputStream codedStream(&inStream);
    codedStream.SetTotalBytesLimit(INT_MAX, INT_MAX);
    bool success = graphDef.ParseFromCodedStream(&codedStream);
    fclose(fd);

The above code works correctly, but while I am trying to get the node attributes from the Graphdef, I am getting Segmentation fault (core dumped).
    for (int i = 0; i < graphDef.node_size(); ++i)
    {

            const NodeDef& node = graphDef.node(i);
            DataType type = tensorflow::DT_FLOAT;
    	    //auto node = graphDef.node(i);
    	    auto attr = node.attr().at("T");
            type = attr.type();
}

I am not sure whether it is a Model issue or a Deserialisation code issue. It would be of great help if anyone can help me to understand and resolve the issue.
Thanks and Regards

HI @Darshvino,
Support for TensorFlow was removed in 21.05 but I see you back in 20.08.
"graphDef" has at least been partially populated in your code as graphDef.node_size() > 0. Is the segmentation fault happening when you access "node" or "attr"?
Colm.

Hi @Colm-in-Arm,
Thanks for your reply. The segmentation fault is happening while I access "attr".
Not Sure about the exact issue. I had also tried with TF 21.05.
Looking forward to your reply.
Thanks,
Darshan C G

Hi Darshan C G,
If I look at the Tf documentation: this code "auto attr = node.attr().at("T");" should result in either attr being set or an std::out_of_range exception. However, I wonder if the de-serialization is getting in the way a bit. Have you tried examining or iterating the node.attr() map to see if there are any attributes there at all?
Colm.

Hi @Colm-in-Arm,
I am able to print the Graphdef content and all seems to be right. I am able to get the correct graph.
    for (int i = 0; i < graph_Def.node_size(); i++)
    {
            graph_Def.node(i).PrintDebugString();

    }

But not sure how do I get the attributes and the weights from the graphDef?

Hi @Darshvino ,
This StackOverflow question may help you with getting the weights from the GraphDef, you may need to refer to TensorFlow's documentation also. If you still have issues you should get more helpful information by opening an issue with TensorFlow.
Since this issue appears to be an environment issue and affects the TF Parser which is now removed from Arm NN in release 21.05, I think this ticket can be closed. Please feel free to re-open if this is not the case.
Thanks,
James

From Arm NN 21.05 release onwards, we recommend using our TF Lite parser instead of the removed TF Parser. Please refer to TensorFlow's documentation for help with converting TF models to TF Lite format: https://www.tensorflow.org/lite/convert


Metrics improvements

Description
Our Metrics needs some tuning to ensure a scalable index size and minimise overhead:
AC:

[ ] (Most important) enable Instant options for existing graphs for KIM metrics to speed up how fast the dashboards are loaded and limit the chances that too big load will be generated for Victoria metrics
[ ] usability of Plutono dashboard would increase if it would be possible to choose a selector (like shootName) and narrow the graphs and tables to metrics only concerning that single cluster

Attachments

prometheus best practices

Appendix
Other options we found as improvements:

Consider creation of a counter that would depict how many clusters are in the "gray area" meaning that according to the configuration the rotation should already happen while it did not. This could be also a graph that would show got this gray area (sum of such clusters) is changing over time.
renaming metrics so they will be following the prometheus best practices to increase the ease of maintenance

Relates to #113

@Disper : do we still need this issue?

Yes, the metrics related to kubeconfig rotation were not changed with the latest addition of Runtime CR metrics


Run grpc_android job under docker for better maintainability.

otherwise android SDK and NDK needs to be installed on the kokoro workers, which requires non-trivial maintenance and makes it hard to upgrade VM images.

CC @ralphchung

The "Android" test is green, so this should be good to merge: https://source.cloud.google.com/results/invocations/83e1f048-4962-4f66-91cc-ead2c9ace402


TS-5253: update taosadapter service description

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 69.70%. Comparing base (935629e) to head (d84580c).

Additional details and impacted files
@@            Coverage Diff             @@
##              3.1     #334      +/-   ##
==========================================
- Coverage   69.71%   69.70%   -0.01%
==========================================
  Files          87       87
  Lines       10127    10127
==========================================
- Hits         7060     7059       -1
- Misses       2369     2370       +1
  Partials      698      698

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


[Feature] Does Dubbo support obtaining matedata data for protobuf? No cases found

Pre-check

[X] I am sure that all the content I provide is in English.

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Apache Dubbo Component
Java SDK (apache/dubbo)
Descriptions

Related issues
No response
Are you willing to submit a pull request to fix on your own?

[X] Yes I am willing to submit a pull request on my own!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@heliang666s PTAL

Whether metadata can be found should be independent of the serialization method, and any serialization can be found.@KongZouXiang

@heliang666s Is there a protobuf matedata case，Thank you.

Have you obtained the matedata for protobuf，Thank you. @heliang666s

Sorry not yet, but I'll add this case to dubbo-sample as soon as possible, so stay tuned.@KongZouXiang

Thank you very much. Please let me know after the increase

May I ask if there are any other plans or alternative options available


Setup ux-dev browser/portal to UCSC AWS dev env

Configure so the catalog chooser is visible.

Potentially override defaultCatalog on staging to point to "preview".

Complete


Add 3 bottle boxes to nanomed plus

About the PR
Adds three boxes of bottles to the nanomed plus
18 bottles in total
Why / Balance
I kinda don't like that medical is entirely crippled the moment someone bombs the chem locker. If doctors are better encouraged to carry small amounts of medicine on them then at least the department can function for a bit for chem to restock or evac to arrive.
Media

Requirements

[X] I have read and am following the Pull Request and Changelog Guidelines.
[X] I have added media to this PR or it does not require an ingame showcase.

Changelog
:cl:

add: Added three bottle boxes to the nanomed plus inventory for doctors to carry small amounts of chemicals on their person

blessed be

I'd argue for two bottle boxes (12 bottles in total), but at least it saves me from stockpiling syringes

3 boxes is just about what you need per one doctor, even if we just split bottles for just the brutes, bloodloss, crit and derma thats already 6 bottles per doctor.

If there would be only 30 ointments for whole medbay one doctor having them would not be hoarding either, it would be medbay being undersupplied, just like with bottles right now.

i think 1 box per nanomed is better considering there are several in med usually


Respect OS for performance test history and flakiness handling

Since we now have operating system specific channels for the performance history and flakiness detection, we should use them when querying as well.

@bot-gradle merge

☝ Trying to merge that now, since we only see the results about the history on the merge build.

The merge queue build has started. Click here to see all failures if any.

Much better:
Before

After

All the previous builds were from Linux before this change, and only the last one was on macos.


feat: strip out unnecessary GNOME applications from @Workstation group

This removes alllll of the GUI applications we get by installing @Workstation.
It also removes packagekit, rsyslog and cockpit from the base.
Fixes: #5

can we make it a different image? I'd like newcomers to FROM main and get what they are expecting

We should build Achillobator from it to to test

can we make it a different image? I'd like newcomers to FROM main and get what they are expecting

To be honest, I think this image shouldnt even have GNOME in it. We should put this stuff on Achillobator directly and not have anything here...
If we still want GNOME to be here I think this should be best. Removing the packages after the fact is much worse than just installing whatever applications

There currently is no centos stream workstation base image, so this one should just stay vanilla gnome imo.


Backend/bug/coordinate wrapping

Closes #835
When entering a geometry point with create_coordinate, it is now cast to geography type and back to ensure longitude wrapping.
If a latitude is given outside of the valid range [-90, 90], create_coordinate will instead throw a ValueError. This was done as PostGIS wraps latitude wackily, e.g. (40, 95) -> (40, 85) instead of (-120, 85).
Added a test case in test_api.py and a migration script that does the above mentioned back-and-forth casting.

Note: We still have issues in the Frontend if somebody wants to set their location to e.g. the North or South Pole. The displaced longitude for a latitude of 90 or -90 will be infinitely large. And in general the calculated randomized location and circle points can again have invalid coordinates for a valid starting point. Maybe it makes sense to implement a guard here.

Just doing the cast seems to work for me? This is from postgres:
postgres=# select st_asewkt(st_makepoint(0, 95)::geography::geometry);
NOTICE:  Coordinate values were coerced into range [-180 -90, 180 90] for GEOGRAPHY
       st_asewkt
-----------------------
 SRID=4326;POINT(0 85)
(1 row)

I think this is fine: if someone does put "North Pole", at least this will be close? Or am I missing something?
Also, please add full regression tests by just creating a list of pairs of ((inpux_lat, input_lng),(output_lat,output_lng)) and running them all through the database directly to double check the output is correct for a set of inputs!

The cast works fine as a guard, but the result for latitude wrapping were a bit counter-intuitive to me. If I would go further North and cross the North Pole, I would expect to at some point be on the other half of the globe in terms of longitude. But it is probably right that this should be enough and close enough to the real location in most situations. I'll remove the check for a ValueError then.
And I can add the regression tests, no problem. Is there a convention where I should insert them? Into a test_utils.py, test_coords.py or do they fit in any of the existing test sets?

Yeah, test_db.py is good. You need to use create_coordinate which creates SQL so you need to run it through the database

Removed the Exception throw and added regression tests. One weird thing that PostGIS does is that it generally won't wrap a longitude of -180, but will wrap it to 180 if there is a latitude overflow.


Add and configure test tools

We agreed on using:

jasmine for unit tests
protractor for e2e tests
karma as a test runner

These tools need to be added to the project and configured.
We'll also need some documentation added to the wiki on how to use them (e.g. create a my.component.spec file in the same directory as the component for jasmine, put your e2e tests in that folder, that sort of thing…)

Hello!
I need some hints to decide how to proceed and I'm sure that someone of you has more experience than me with the 'package.json'.
Protractor needs to be installed as global. Should I put it into the 'global' script? Or we should create a 'global-test' or something like that?
Moreover, Protractor has Selenium server as dependency that can be installed with the following shell command:
webdriver-manager update
In this case where I can put that command (must be executed after the Protractor installation)?
For a more clean install I should check the presence of a Java SDK because it's needed by Selenium.
Maybe all these operations need a separated shell script?
Thanks

angular-cli uses these exact same tools for testing. If I were you, I'd set up a new angular-cli project, and take a look at the code it generates: which relevant libraries are added to package.json, what the config files for these tools look like, etc. It should give you a good starting point.
Looking at a local angular-cli project, it would indeed seem that protractor is a global dependency, and should therefore be added to the global script. And that they add a e2e npm script that runs protractor, and a pree2e script (meaning it will trigger automatically before every run of e2e) that runs "webdriver-manager update"

@artlowel good advice
For a more complete setup for testing I would check out this starter project. It is not using Angular Universal, but that should not play a role on the testing strategy or setup.
https://github.com/AngularClass/angular2-webpack-starter

Thanks!


The file name called ‘frozenAccount’  may be shielded

This issue tracker is a tool to address bugs in Flask itself.
Please use the #pocoo IRC channel on freenode or Stack Overflow for general
questions about using Flask or issues not related to Flask.
If you'd like to report a bug in Flask, fill out the template below. Provide
any any extra information that may be useful / related to your problem.
Ideally, create an MCVE, which helps us
understand the problem and helps check that it is not caused by something in
your code.

Expected Behavior
Create a file called frozenAccount.py to import the file and call the same name function defined in the file.
AttributeError: 'function' object has no attribute'frozenAccount'.
Replace the file name with others, and the program can be executed normally. So why can't this name be?
Or because it's a reserved word？
Actual Behavior
Tell us what happens instead.
Paste the full traceback if there was an exception.

Environment

Python version:2.7.13
Flask version:0.12.2
Werkzeug version:0.14.1

That sounds like a problem with your code, nothing related to Flask. Please post on Stack Overflow but make sure yo include your actual code!


Android and iOS issues

Hi @nick92 thanks for the plugin! Simple and effective!
iOS is building, but there seem to be an issue with Mapbox autorization as _controller and other variables are null. See below.
Would you fix it please?
<<
if (!_poisShowing) {
_controller!.setPOI(...

Exception has occurred.
_TypeError (Null check operator used on a null value)
In XCode
[Info, common]: Using Mapbox Common SDK v23.8.3(f7a9d8586)
[Info, maps-core]: Using Mapbox Core Maps SDK v10.16.1(4703e9fa8c)
[VERBOSE-2:FlutterDarwinContextMetalImpeller.mm(37)] Using the Impeller rendering backend.
flutter: The Dart VM service is listening on http://<IP_ADDRESS>:49173/QPbFPEdUarM=/
This method can cause UI unresponsiveness if invoked on the main thread. Instead, consider waiting for the -locationManagerDidChangeAuthorization: callback and checking authorizationStatus first.
Flutter Call stack
_SampleNavigationAppState.build. (/Users/./Development/mapbox_nav_blehud/lib/map.dart:192)
_InkResponseState.handleTap (/Users/./Development/flutter/packages/flutter/lib/src/material/ink_well.dart:1154)
GestureRecognizer.invokeCallback (/Users/./Development/flutter/packages/flutter/lib/src/gestures/recognizer.dart:275)
TapGestureRecognizer.handleTapUp (/Users/./Development/flutter/packages/flutter/lib/src/gestures/tap.dart:654)
BaseTapGestureRecognizer._checkUp (/Users/./Development/flutter/packages/flutter/lib/src/gestures/tap.dart:311)
BaseTapGestureRecognizer.handlePrimaryPointer (/Users/./Development/flutter/packages/flutter/lib/src/gestures/tap.dart:244)
PrimaryPointerGestureRecognizer.handleEvent (/Users/./Development/flutter/packages/flutter/lib/src/gestures/recognizer.dart:630)
PointerRouter._dispatch (/Users/./Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:98)
PointerRouter._dispatchEventToRoutes. (/Users/./Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:143)
_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:625)
PointerRouter._dispatchEventToRoutes (/Users/./Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:141)
PointerRouter.route (/Users/./Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:127)
GestureBinding.handleEvent (/Users/./Development/flutter/packages/flutter/lib/src/gestures/binding.dart:488)
GestureBinding.dispatchEvent (/Users/./Development/flutter/packages/flutter/lib/src/gestures/binding.dart:468)
RendererBinding.dispatchEvent (/Users/./Development/flutter/packages/flutter/lib/src/rendering/binding.dart:333)
GestureBinding._handlePointerEventImmediately (/Users/./Development/flutter/packages/flutter/lib/src/gestures/binding.dart:413)
GestureBinding.handlePointerEvent (/Users/./Development/flutter/packages/flutter/lib/src/gestures/binding.dart:376)
GestureBinding._flushPointerEventQueue (/Users/./Development/flutter/packages/flutter/lib/src/gestures/binding.dart:323)
GestureBinding._handlePointerDataPacket (/Users/./Development/flutter/packages/flutter/lib/src/gestures/binding.dart:292)
_invoke1 (/Users/./Development/flutter/bin/cache/pkg/sky_engine/lib/ui/hooks.dart:186)

is this code from the example map.dart file or have you amended it in some way?
The _controller variable should be initialised on load if options are set on initialisation, so at the point of pressing the 'add poi' button the map should be loaded, are you seeing this or is the map blank?

The exact code of map.dart. The map is blank on iOS (On the Android build, the map shows up from the start with no button pressed)

To improve the feedback.
I've download the current main branch and run the example on both Android and iOS devices.
In Android the app builds from the start, with just one deprecation warning from FlutterLocation.java.
Clear route does not alternate to Build route and it causes this behavior 48571 W/Mapbox  (30290): [maps-android\Mbgl-RenderThread]: Non-render event could not be run, retrying in 50 ms...Sometimes I got message instructionIndex is Null
In iOS builds after adjustments below but results in map blank and pressing any button results in Exception has occurred. _TypeError (Null check operator used on a null value)
iOS Detail
[!] Unable to find a target named RunnerTests in project Runner.xcodeproj, did find Runner.
-> Commented this part in Podfile (later we can recreate iOS folder)
target 'RunnerTests' do
inherit! :search_paths
end
Thread 1: "To use location in iOS8 and above you need to define either NSLocationWhenInUseUsageDescription or NSLocationAlwaysUsageDescription in the app bundle's Info.plist file"
-> Added this NSLocationAlwaysUsageDescription to Info.plist
No such module 'Flutter'
This method can cause UI unresponsiveness if invoked on the main thread. Instead, consider waiting for the -locationManagerDidChangeAuthorization: callback and checking authorizationStatus first.
Type: Fault | Timestamp: 2023-11-08 15:10:54.668787-03:00 | Library: CoreLocation | Subsystem: com.apple.runtime-issues | Category: CoreLocation | TID: 0x23c631

Hi @nick92 have you checked the issue? Thanks

It's odd that the map isn't loading as expected, have you gone through the installation process for mapbox on iOS?
https://docs.mapbox.com/ios/navigation/guides/get-started/install/

@nick92
What could be triggering so many map_position_changed events, without even changing or not lat/long?
Thanks

That event is fired when the map is idle i.e. moved and then stropped again, and returns the center lat/long of the map


Fixed querying tables with schema prefixes

Unless the table name is quoted, postgrex will fail with an undefined_table error
I have a prefixed schema: "structured.companies" (create table("structured.companies") do ..., schema "structured.companies" do ...).
Upon application startup, the current Honeydew code fails with:
08:29:13.753 [warn]  [Honeydew] Ecto queue ':collate' couldn't poll for jobs because
%Postgrex.Error{connection_id: 9492, message: nil, postgres: %{code: :undefined_table,
file: "parse_relation.c", line: "1159", message: "relation \"structured.companies\" does not exist",
pg_code: "42P01", position: "8", routine: "parserOpenTable", severity: "ERROR", unknown:
"ERROR"}, query: "UPDATE structured.companies\n      SET honeydew_collate_lock =
(CAST(EXTRACT(epoch from NOW()) * 1000 AS BIGINT)) + 300000\n      WHERE ROW(id) = (\n
     SELECT id\n        FROM structured.companies\n        WHERE honeydew_collate_lock
BETWEEN 0 AND (CAST(EXTRACT(epoch from NOW()) * 1000 AS BIGINT)) -
(CAST(EXTRACT(epoch from timestamp '1994-03-26 04:20:00') * 1000 AS BIGINT)) \n
ORDER BY honeydew_collate_lock\n        LIMIT 1\n        FOR UPDATE SKIP LOCKED\n      )\n
    RETURNING honeydew_collate_private, id"}

Reproduction in iex:
iex> q = "UPDATE structured.companies SET honeydew_collate_lock = (CAST(EXTRACT(epoch
from NOW()) * 1000 AS BIGINT)) + 300000 WHERE ROW(id) = (\n        SELECT id\n        FROM
structured.companies WHERE honeydew_collate_lock BETWEEN 0 AND (CAST(EXTRACT(epoch
from NOW()) * 1000 AS BIGINT)) - (CAST(EXTRACT(epoch from timestamp '1994-03-26 04:20:00') *
1000 AS BIGINT)) ORDER BY honeydew_collate_lock LIMIT 1 FOR UPDATE SKIP LOCKED )
RETURNING honeydew_collate_private, id"

iex> Ecto.Adapters.SQL.query!(Repo, q)

** (Postgrex.Error) ERROR 42P01 (undefined_table) relation "structured.companies" does not exist

    query: UPDATE structured.companies SET honeydew_collate_lock = (CAST(EXTRACT(epoch
from NOW()) * 1000 AS BIGINT)) + 300000 WHERE ROW(id) = (
        SELECT id
        FROM structured.companies WHERE honeydew_collate_lock BETWEEN 0 AND
(CAST(EXTRACT(epoch from NOW()) * 1000 AS BIGINT)) - (CAST(EXTRACT(epoch from
timestamp '1994-03-26 04:20:00') * 1000 AS BIGINT)) ORDER BY honeydew_collate_lock LIMIT 1
FOR UPDATE SKIP LOCKED ) RETURNING honeydew_collate_private, id
    (ecto_sql) lib/ecto/adapters/sql.ex:621: Ecto.Adapters.SQL.raise_sql_call_error/1

Same query, with quoted table name:
iex> q_fixed = "UPDATE \"structured.companies\" SET honeydew_collate_lock =
(CAST(EXTRACT(epoch from NOW()) * 1000 AS BIGINT)) + 300000 WHERE ROW(id) = (\n
     SELECT id\n        FROM \"structured.companies\" WHERE honeydew_collate_lock BETWEEN 0
AND (CAST(EXTRACT(epoch from NOW()) * 1000 AS BIGINT)) - (CAST(EXTRACT(epoch from
timestamp '1994-03-26 04:20:00') * 1000 AS BIGINT)) ORDER BY honeydew_collate_lock LIMIT 1
FOR UPDATE SKIP LOCKED ) RETURNING honeydew_collate_private, id"

iex> Ecto.Adapters.SQL.query!(Repo, q_fixed)

%Postgrex.Result{
  columns: ["honeydew_collate_private", "id"],
  command: :update,
  connection_id: 11121,
  messages: [],
  num_rows: 1,
  rows: [[nil, 1]]
}

Testing
I'm not sure how to proceed to add a regression test for this (assuming this is indeed a proper fix).
Running the current test suite yields 5 failures, but those failures are also present without the above code change (i.e. they don't seem related to the patch).

Hey @davidsulc,
I believe the proper way to use a schema prefix is to use the @schema_prefix attribute in your schema/2 definition.
I suspect the way you're doing it now is creating a table with a literal "dot" in its name.
Happy to dig in more if I'm mistaken. :)

Oops, it appears you're right. In addition, the migration needs to specify the prefix as a separate argument to create_table. No idea how I missed this...
Nonetheless, it may be worth taking a look at the proposed change, since Honeydew wasn't working as expected even though Ecto itself within the project had no issues with the peculiar table naming. But I expect fixing my DB schemas will indeed resolve the specific issue I was facing.

Apologies: I was indeed mistaken in how to handle Postgres schemas via Ecto, and am closing this.


Commands for testing

Would be really nice to have commands for testing mob captains to make sure they are interacting with other mods properly and for testing loot tables.

To test stuff out, you can call function ps-mob:convert/<RARITY> as any mob.
So to convert the nearest mob that can become a captain to a legendary captain, run the following command while next to it:
execute as @e[type=#ps-mob:captains,limit=1,sort=nearest] run function ps-mob:convert/legendary

If you only want to test out the loot tables you can just give yourself the loot with one of the following commands:
loot give @s loot ps-mob:base/<RARITY>
loot give @s loot ps-mob:captain/<RARITY>

Make sure to replace <RARITY> with one of the rarities
The base loot tables are only items of that rarity but as captains can (with a lower probability) drop items of other rarities, the captain loot tables are what the captains of that rarity will actually drop

I turned myself into a legendary mob while fooling around with the commands.  I tried the same command to common (and others), and I still have all the extra buffs.  How can I remove the extra buffs?
I mean, it's not like I don't want to keep them, but I might have to give the same buffs to the other people on my server and they already think things are pretty complicated lololol

Hey, to undo that, you can run the following commands one-by-one
/attribute @s generic.max_health modifier remove 15213119-2-2-2-2
/attribute @s generic.armor modifier remove 15213119-2-2-2-2
/attribute @s generic.movement_speed modifier remove 15213119-2-2-2-2
/attribute @s generic.attack_damage modifier remove 15213119-2-2-2-2
/attribute @s generic.knockback_resistance modifier remove 15213119-2-2-2-2
/tag @s remove smithed.entity
/tag @s remove ps-mob
/tag @s remove ps-mob.captain
/tag @s remove ps-mob.legendary
/tag @s remove ps-mob.rare
/tag @s remove ps-mob.uncommon
/tag @s remove ps-mob.common

No, that's a little more complicated - if you would want to give these attributes to a player you can look at the functions at /data/ps-mob/functions/convert/<rarity> and /data/ps-mob/functions/convert/captain
The convert/captain functions gets run for captains of any difficulty and the convert/<rarity> functions only get run for a mob captain of that rarity


backup compression

I'm trying to implement #341 based mostly on https://github.com/mariadb-operator/mariadb-operator/issues/341#issuecomment-1913116742
Feel free to edit or reuse any part of this contribution in another PR

Thanks @mmontes11 for the detailed review, this PR improved a lot!
I'll try to add some integration tests soon.

@vixns wow, this is looking great! congratulations, it is exactly what I had in mind! 🚀
Left another suggestion regarding adding an enum to the OpenAPI spec.
This way, it will be validated by the Kubernetes apiserver and we don't need to add anything extra to the validation webhook.

Sadly i can't run the integration tests on my local computers, they are sloooow ( 20 minutes for 30 tests before i stop them) and many timeouts makes random tests failing.
I can't develop and test any integration test in these conditions, is there a way to run a solo test ? @mmontes11

I can't develop and test any integration test in these conditions, is there a way to run a solo test ? @mmontes11

Hey @vixns ! Sorry to see you struggling. Yes, you can add a ginkgo Focus decorator:

https://onsi.github.io/ginkgo/#focused-specs

I hope this helps, let me know otherwise so I can figure out something else.

Hey @vixns ! I will have some spare time soon, planning to port this code to another PR and add you as a contributor in the commit to give you credit. I hope this is fine with you.
I have plans to add:

The missing integration tests
Replace zlib with bzip2 leveraging https://github.com/dsnet/compress/tree/master/bzip2. zlib is not really used for backups and bzip2 offers a better compression ratio than gzip

@mmontes11 just added bzip2, still no tests

Thanks @vixns ! bzip2 changes LGTM as well! Marked as done

LGTM! 🚀 Thanks for the great work @vixns !
We can merge once we have integration tests!

Just added some tests, I could not run them on my machine :crossed_fingers:


documentation updates for issue #9

ready for mvp launch - just pypi testing

Codecov Report

Merging #12 (79af5bb) into main (f1b35ce) will decrease coverage by 2.88%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #12      +/-   ##
==========================================
- Coverage   73.74%   70.85%   -2.89%
==========================================
  Files           9        9
  Lines         796      796
==========================================
- Hits          587      564      -23
- Misses        209      232      +23

Impacted Files
Coverage Δ

src/cowpatch/__init__.py
100.00% <ø> (ø)

src/cowpatch/base_elements.py
78.46% <100.00%> (+0.11%)
:arrow_up:

src/cowpatch/config.py
100.00% <100.00%> (ø)

src/cowpatch/layout_elements.py
91.23% <100.00%> (ø)

src/cowpatch/wrappers.py
0.00% <0.00%> (-56.53%)
:arrow_down:

src/cowpatch/text_elements.py
0.00% <0.00%> (-9.01%)
:arrow_down:

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 f1b35ce...79af5bb. Read the comment docs.


Benchmark vs. React

Hi,
I am trying to figure out if I can do a beanchmark of Domafic to compare performance with React in case of a huge amount of items.
Before I dive into the code, it would only make sense to compare apples to apples, so I'd like to know:

Does Domafic do dom diffing and reconciliation like React?
Does it do caching based on the input for component (does it even have components?) like React?

I could make the React app not do any caching, but it wouldn't be a very reasonable comparison since in production you want as much caching as possible.

Domafic does do DOM diffing, but it does not have any caching based on input. The equivalent to a React component is either a DomNode or a function that produces a DomNode, depending on how you look at it. It would certainly be possible to implement some kind of caching, but I haven't done so personally.
Let me know what you discover-- I wouldn't be surprised if React is faster to start out with, but it'd be interesting to see which sorts of UI changes React handles better, since that'd tell us specifically what areas we need to optimize.


Escape forward slashes in rule metadata

Escape / to \/ in metadata regex expressions so they can be both stored and parsed

Broken test is a known issue (soon to be fixed elsewhere).


RSA Enhancements

I made a higher level top bloq with the phase estimation for shors for RSA. I also moved the bloqs to an rsa/ directory and moved the MeasureQFT shim to the factoring/ directory. Last, I made the ModExp bloq take an (n_exponent,) shaped QBit() register because the controls are used in the plus state in the phase estimation circuit so it can't be of type QUint (I think).

I think we discussed offline, but +1 to the top-level bloq. This should be set up as "phase estimation of the modular multiply operation". -1 to the signature change of ModExp, but maybe we don't include modexp as part of the decomposition if we frame the overall algorithm as phase estimation of modmul


0 ksol hashrate

wrong calculation i guess, see screenshot

I rewrote the calculation.. can you give it a try? Thanks!
https://github.com/joshuayabut/z-nomp/commit/03e8e3af1d9be51a2405fbcd6e9789b4f2d8f0ed

will do, gimme sec

seems to work on graph's , only on mainpage and worker stats it gives other values

Ok can you try doing:
git reset HEAD~1
git pull
npm start

Thanks!

Works fine as of https://github.com/joshuayabut/z-nomp/commit/c83ed0704940b9e712eef1deaff7108c1444e864

after git pull i get:
Unpacking objects: 100% (7/7), done.
From https://github.com/joshuayabut/node-open-mining-portal

03e8e3a...c83ed07 master     -> origin/master  (forced update)
0dfd16a...7b840b2 movrcx-hp  -> origin/movrcx-hp  (forced update)
Updating c640b4f..c83ed07
error: Your local changes to the following files would be overwritten by merge:
libs/stats.js
website/static/stats.js
Please, commit your changes or stash them before you can merge.

stash??

edit: removed the files and pulled it from git again

can be closed, works now!


Add darwin availability annotations for new Occupancy Sensing enums/bitmaps.

These were added in https://github.com/project-chip/connectedhomeip/pull/24363

Fast-tracking platform-specific fix with platform owner review.


Add "skip to content" links to the homepage and the 404 page; fix footer role

Fixes

Related to #2174 by @obulat
Fixes #2179 by @obulat
Description

This PR refactors the default layout to extract footer from the main element, and also adds the "skip to content" links to the pages that use the default layout (homepage and 404 page).
It also sets the content width on 404 page on mobile screens to match the header and footer.
Testing Instructions

Check that the homepage and 404 pages have a "Skip to content" link as the first element of the page.
Check that screenreader announces that the footer is there (and it has "contentinfo" role).

Checklist

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

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

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

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

Developer's Certificate of Origin 1.1

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

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

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

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

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

The Oops in the background has moved, but that is an improvement imo. LGTM!

I couldn't find the up-to-date versions of the 404 mockups to check the Oops position, but couldn't. We could probably adjust them later if needed.


x/text/unicode/norm: tests run over 10 minutes and time out on js/wasm

What's so hard about x/text/unicode/norm that makes it kill js/wasm?
https://build.golang.org/log/275a5abfdca723fd4574927bd1e076ee93e04ee8
...
ok  	golang.org/x/text/search	7.146s
?   	golang.org/x/text/secure	[no test files]
ok  	golang.org/x/text/secure/bidirule	11.127s
ok  	golang.org/x/text/secure/precis	13.066s
ok  	golang.org/x/text/transform	13.374s
?   	golang.org/x/text/unicode	[no test files]
ok  	golang.org/x/text/unicode/bidi	10.438s
ok  	golang.org/x/text/unicode/cldr	11.382s
*** Test killed with quit: ran too long (10m0s).
FAIL	golang.org/x/text/unicode/norm	600.299s
ok  	golang.org/x/text/unicode/rangetable	32.598s
ok  	golang.org/x/text/unicode/runenames	11.347s
ok  	golang.org/x/text/width	9.961s

/cc @neelance @cherrymui @mpvl

One of the tests downloads data, but that should be disabled either way, and doubly so because the --short flag is used.
It runs in a few seconds on my laptop.  I had performance issues with this package before a long time ago, but that was at compile/link time. The package has some fairly large tables included in the tests, which may be an issue (see data<Unicode_version>_test.go).

Yeah, I only see 1.9 seconds on Linux too. Must be the tables.

I can reproduce the js/wasm slowness locally with nodejs 8.11.1.
perf top says it's all spent in v8::internal::compiler::UsePosition::HintRegister. Generally pinned at 99%, sometimes dropping to 95%. I don't know how to interpret that.

And notably, I never see any output even with go test -v:
bradfitz@go:~/src/golang.org/x/text/unicode/norm$ GOOS=js GOARCH=wasm go test -v -short
^Csignal: interrupt
FAIL    golang.org/x/text/unicode/norm  19.709s

And if I add a TestMain func to just skip all tests on js/wasm, I still see it spin 100% CPU ~forever:
bradfitz@go:~/src/golang.org/x/text/unicode/norm$ git dic
diff --git a/unicode/norm/main_test.go b/unicode/norm/main_test.go
new file mode 100644
index 0000000..a7ede11
--- /dev/null
+++ b/unicode/norm/main_test.go
@@ -0,0 +1,16 @@
+package norm
+
+import (
+       "fmt"
+       "os"
+       "runtime"
+       "testing"
+)
+
+func TestMain(m *testing.M) {
+       if runtime.GOOS == "js" {
+               fmt.Fprintf(os.Stderr, "skipping on wasm\n")
+               os.Exit(0)
+       }
+       os.Exit(m.Run())
+}
bradfitz@go:~/src/golang.org/x/text/unicode/norm$ go test -short
PASS
ok      golang.org/x/text/unicode/norm  1.885s
bradfitz@go:~/src/golang.org/x/text/unicode/norm$ GOOS=js GOARCH=wasm go test -v -short
^Csignal: interrupt
FAIL    golang.org/x/text/unicode/norm  12.068s

I guess that means the Go code hasn't started to run -- all the time spent in V8 trying to compile the Wasm bytecode to machine code?

@cherrymui, oh, I hadn't thought of that. I assumed it was stuck in Go init funcs before TestMain.

For me, the WebAssembly.instantiate call in wasm_exec.js does not return in a reasonable amount of time on Node.js v11.12.0 and Chrome. It initializes quickly on Firefox, so the issue seems to be specific to V8.

Here's the wasm module if others are interested at debugging: norm.test.gz

Ben Titzer (V8 team) said we should use V8 7.4+. (so min Node.js 12.x.)
I'll update our builders.

The upgrade to Node 12 didn't fix it. It's at least completing and passing on the dashboard (sometimes?) now, but it's super slow. Logs show a median of 833 seconds over the past week for running go test -short golang.org/x/text/... on js-wasm (which is Node 12).
And I can reproduce locally on my dev machines:
$ node --version
v12.2.0
$ PATH=$GOROOT/misc/wasm:$PATH GOOS=js GOARCH=wasm time go test -v -short golang.org/x/text/unicode/norm
...
(node CPU at 100% for 10+ minutes)

It is indeed the tables, but now when I run it in Chrome 75 (linux/amd64), the tests start to run immediately. So I think it's a matter of time before NodeJS catches up to the latest.

11m0s on the js-wasm builder: https://build.golang.org/log/6d190f86ce19b77eb063a09f946512ed24959ef8

Still timing out: https://build.golang.org/log/f335ee54a276e1b0a34bfaf31336aab8ec397348

@titzer, we're using NodeJS 13 now (V8 7.8.279.17) and this is still failing for us.
Could you take a look? Or should we file a V8 bug?

Still failing. Some examples (a complete list is hard to obtain due to #35515):

https://build.golang.org/log/6b6f0c11e803678da054521b504f56604794fbc8
https://build.golang.org/log/559f2171428abf0ccd9b68f0486bba15d476005d
https://build.golang.org/log/274439343dc0f008ef923098d6f7efbecbba2e92
https://build.golang.org/log/a4c9d7d49ff43c183d8c7c55ce91818f381d66db
https://build.golang.org/log/eb3f7151fecf4193e99f40dfb8348ec4f06cfe2f
https://build.golang.org/log/c03f4d12e772d09112d8cfa7723b2e5f07bad96f

It's not at all clear to me why the builders are not producing at least some output for the stuck test (CC @andybons).

The latest nightly of Node.js still fails to instantiate the WebAssembly module in a reasonable amount of time. It reports the following V8 version:
> node --version
v14.0.0-nightly202004175a4f24e7e1
> node -p process.versions.v8
8.1.307.26-node.12

However, Chrome 80.0.3987.163 with V8 8.0.426.30 is able to instantiate the module in a few seconds.
Node.js is using the newer V8 version, so I guess the issue is on Node.js' side, not V8's.


Not working on mobile

I have question related to jQuery Terminal

Hi,
I am not sure if this the correct place to place this, but i have been reading the documentation, asked around on IRC, tried the chat on the website however couldn't get any answer.
according to the documentation Here it should work on mobile out of the box, but seems it is not to be happening, as i am not really a web developer i can't really understand why therefore i am asking fore some help here.
My website generates html code with python and jinja2, and has the most recent jquery and jquery.terminal
All the code is opensource here https://github.com/4s3ti/terminalCV
and you can see it working here: https://cv.4s3ti.net
Any hints and help would be appreciated,
Thanks in advance.

The problem is:
        onBlur: function() {
            return false;
        }

Remove it, it was old solution to fill screen issue, right now there are better ones with just CSS. It prevent keyboard to open because on mobile the terminal can't be enabled by default and this will disable this. When you remove this, you will have disable terminal on init, and you will need to tap to enable virtual keyboard (that's requirement by mobile platform that keyboard can't be open on initialization).
There is even issue to document this properly everywere, so people will find it #555

Thanks a log @jcubic That made the trick!!
As I said this is kinda out of my area of comfort so was kinda confused what could that be.
Thanks a lot for amazing project!
Going to close this as its resolved now.


The table batch entity response returned in Azurite doesn't have the property rowkey

Error Description:
The table batch entity response returned in Azurite doesn't have the property rowkey.
To Reproduce:
The demo code is shown as following:
import { TableClient, TablesSharedKeyCredential } from "@azure/data-tables"
import * as assert from "assert"

const partitionKey = "batchTest";
const testEntities = [
  { partitionKey, rowKey: "1", name: "first" },
  { partitionKey, rowKey: "2", name: "second" },
  { partitionKey, rowKey: "3", name: "third" }
];

async function main() {
  const tableClient = new TableClient(
    "<Azurite-table-endpoint>",
    "<table-name>",
    new TablesSharedKeyCredential("<Azurite-account-name>", "<Azurite-account-key>")
  );
  await tableClient.create();
  const batch = tableClient.createBatch(partitionKey);
  await batch.createEntities(testEntities);
  const result = await batch.submitBatch();
  assert.ok(result.subResponses[0].rowKey);
  await tableClient.delete();
}

main().catch((err) => {
  console.log(err);
});

Error Track:
The rowkey of table batch entity response returned in Azurite can't be handled by Azure SDK.
The table batch entity response use %27 instead of ' to wrap the rowkey, then the Azure SDK can't handle this. So the response dealt with by Azure SDK doesn't have property rowkey.
The code about table batch entity response  use %27 to wrap the rowkey in Azurite is here

The code about response process code in Azure SDK is here

Expected Behavior:
The table batch entity response returned in Azurite have the property rowkey.
@jongio for notification.

need to add tests that also use @azure\data-tables

azsdk-azurite


wip - publish to sonatype

So far, just resolves the scala-multihash dependency from sonatype instead of using a git project dependency.  I figured that'd be a better project for "learning the ropes" for this crazy publication workflow.
Next up:

[x] Add publication metadata to base settings
[x] Publish protocol and transactor projects to sonatype
[ ] figure out how to automate deployment in travis CI

Need to update https://github.com/mediachain/mediachain/blob/ebfd6328ba2b5202d9a4a83d3709e7c48204f6fc/provisioning/playbooks/roles/transactor_server/files/transactor-svc to remove version, what else?

Oh, I updated that in the last commit: https://github.com/mediachain/mediachain/commit/6fce5e0222057ca0e8bf95055ac691ed75b8cf86
Now it always generates transactor-assembly.jar and the provisioning script uses it without the version number

Oh oops didn't see the second file in that commit, are we good to merge this now then?

I think so, yeah.  It shouldn't break anything :)  We'll circle around to automated snapshot deployment when we figure out the e2e testing next week