Angular CLI installation fails on Ubuntu under Vagrant with killed

Having problems under osx with angular-cli I just thought trying it with vagrant and ubuntu.
Version
ubuntu-trusty-64
node v6.2.2
npm 3.10.2
Repro steps.
# ---- Vagrantfile ---
Vagrant.configure("2") do |config|
 #Use the Centos 6.5 image from the Vagrant cloud
 config.vm.box = "ubuntu/trusty64"
 config.vm.provider "virtualbox" do |v|
     v.memory = 1024
     v.cpus = 2
 end

 config.vm.provision "shell",
 path: "./vagrant/install-node.sh"

 config.vm.provision "shell",
 path: "./vagrant/install-angular2.sh"

 config.vm.provision "shell",
 path: "./vagrant/run-all.sh",
 run: "always"

 ###### Forward Ports
 config.vm.network "forwarded_port", host: 3000, guest: 3000, auto_correct: true    # Node
 config.vm.network "forwarded_port", guest: 6379, host: 6379, auto_correct: true    # Redis
 config.vm.network "forwarded_port", guest: 27019, host: 27019, auto_correct: true  # MongoDB
 config.vm.network "forwarded_port", host: 3306, guest: 3306, auto_correct: true    # MySQL
 config.vm.network "forwarded_port", host: 4200, guest: 4200, auto_correct: true    # angular server
 config.vm.network "forwarded_port", host: 49152, guest: 49152, auto_correct: true  # angular livereload server
 config.vm.network "forwarded_port", host: 35729, guest: 35729, auto_correct: true  # livereload server default port
end

# --- vagrant/install-node.sh ---
sudo -s
apt-get update
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
apt-get install -y nodejs
apt-get install -y build-essential
# apt-get install -y npm # needed to be seperatly installed with old version
npm install -g npm

# --- vagrant/install-angular2.sh ----
sudo -s
npm install -g angular-cli

log given by the failure
root@vagrant-ubuntu-trusty-64:~# npm install -g angular-cli
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
Killed        .....] - extract:angular-cli: sill doParallel extract 1380

no further error messages are available :(

Problem is caused by too less memory. Installation needs at least 1GB ram

@manuelfink do you have any advice on how to work with angular-cli deployment on AWS or other cloud instances where memory is limited? I would like to adhere to the structure of src / dist and having the app built from src when deploying to prod.
Is there a simple way to manage this with angular-cli or will I have to go back to custom build process with something like gulp?

@trickpattyFH20 You can add some swap on your constrained instances. I posted some links on #2630 if you still need it.


Bonds Module: Prevent Sending To Reserve Addresses

A possible solution to this is to have a single reserve module account and then have all bonds internally store the reserve balances, such that the reserve balances of all bonds will add up to the balance of the reserve module account.

there are bank.keeper and supply.keeper that have the same features

Definitely @jjhesk. We already make use of these modules. It's just a matter of preventing tokens from being sent to reserve addresses because this disrupts calculations.

Closed by #182


Debian 12

I'm going to do this for Debian 12 and Proxmox VE 8.2
If I'm successful, would you accept a PR? @AngeIo

Thank you for your interest in this project!
Yes, of course 🙂

Cool!
However, I just realized that it might not be feasible for me to do it.
tl;dr my Debian boot drive is encrypted using Luks and TPM, and as soon as I replace the kernel I'm going to get locked out by TPM.
Resealing the new kernel in TPM is non-trivial. :(


nixos/tests/keymap: wait for xdotool to succeed

Motivation for this change
After merging #39400 we hit another non-deterministic failure:  xdotool could fail when a new window was already created but not yet decorated by the window manager (thanks @srhb for catching on to this).
Fix this by waiting for xdotool to succeed. Also prevent a never observed but possible race condition elsewhere in the code.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
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 nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg test keymap.dvorak

@xeji Please PR adding yourself to this list: :smile: https://github.com/coreyoconnor/ofborg/blob/d3c21bd8a35e9b0736ec7476a9aefc2e15b15061/config.public.json

@GrahamcOfBorg test keymap.dvorak

Oh sorry, I see you're already in known users. I didn't see the eval start on the monitor. :-)

Failure on aarch64-linux (full log)
Attempted: tests.keymap.dvorak
Partial log (click to expand)
cannot build derivation '/nix/store/2ziylmi49xnl5aabqrkp4kb1r29m96jr-etc.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/kdg66d86l6nbswjblgydsb4h7c86dkrs-stage-1-init.sh.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/mz477nswb8ykyqxl8gmkd0jy59y58bn5-initrd.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/xppcvna7iwmy2f4wwxq2w5c022f2pfs1-nixos-system-machine-18.09.git.8f73b1f.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/1xxaix7d2rl2bv5f8445q70lrzihmm1z-closure-info.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/8vc9psm3m47dqphgki0nnw2ggbn0ckwp-run-nixos-vm.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/95l1bfy6chn28gm6h6cb2hyqyc6i68d8-nixos-vm.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/vy2fra8z4jik0cgc4j64dfwzhbkzdm4z-nixos-test-driver-keymap-dvorak.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/zd5hh8zis0kc40vwibrk0hk39d6sb19j-vm-test-run-keymap-dvorak.drv': 1 dependencies couldn't be built
error: build of '/nix/store/zd5hh8zis0kc40vwibrk0hk39d6sb19j-vm-test-run-keymap-dvorak.drv' failed

Looks unrelated. Are the tests supposed to work on aarch64 now? I've never seen one succeed.

No, I think that failure is fine.

Failure on aarch64-linux (full log)
Attempted: tests.keymap.dvorak
Partial log (click to expand)
cannot build derivation '/nix/store/g2psf8cpvdj7l15hxfgj5vd2gf145y08-etc.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/kdg66d86l6nbswjblgydsb4h7c86dkrs-stage-1-init.sh.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/mz477nswb8ykyqxl8gmkd0jy59y58bn5-initrd.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/i6w768pnyr6sx9v73v3wi5jlpbqh28jf-nixos-system-machine-18.09.git.f74e791.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/4blx75kgh8vngr3c5fy0lr6sxyigkfa6-closure-info.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/r2rl94j26plsm2xcwdza4xqdik7qw36c-run-nixos-vm.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/89yw8p3imnmqp8ny40ca22bh12sadalj-nixos-vm.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/a83h4j8szr4s55ynzlhxq66vjynzia49-nixos-test-driver-keymap-dvorak.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/k4rb353r4ddkjq66gvd5dns0ypsffzcg-vm-test-run-keymap-dvorak.drv': 1 dependencies couldn't be built
error: build of '/nix/store/k4rb353r4ddkjq66gvd5dns0ypsffzcg-vm-test-run-keymap-dvorak.drv' failed

ofborg dashboard says x86_64-linux builder is stalled, this may take a while or time out.

I built it locally just fine. How about I merge it to master and we track its progress on Hydra, reopen the ticket and track it for merging to release once we have confidence?

Success on x86_64-linux (full log)
Attempted: tests.keymap.dvorak
Partial log (click to expand)
syncing
machine: running command: sync
machine: exit status 0
2 out of 2 tests succeeded
test script finished in 25.02s
cleaning up
killing machine (pid 593)
vde_switch: EOF on stdin, cleaning up and exiting
vde_switch: Could not remove ctl dir '/build/vde1.ctl': Directory not empty
/nix/store/hjdlibmf773jhbx3sq18xk3b7n0ahiar-vm-test-run-keymap-dvorak

Success on x86_64-linux (full log)
Attempted: tests.keymap.dvorak
Partial log (click to expand)
/nix/store/hjdlibmf773jhbx3sq18xk3b7n0ahiar-vm-test-run-keymap-dvorak


Allow candidates names to be changed.

Both for general satisfaction and from an inclusivity point of view, we should allow candidates' names to be changed. This could either be through a committee action or the candidates themselves

The problem is that on an on-demand basis, the names are scraped from the guild website. I really didn't want any caching of members, because then there will be inevitable issues with people registering at the last minute.
I'll have a think, but it'll probably involve having a lookup/replace in get_members() into a dict (which would need to be cached to a file) of {:}. Then some command in order to set the preferred name. From an inclusivity point of view, being done by the candidate would be best, but from a moderation point of view a committee member doing it would be best. Therefore it might be that two commands are needed, one for a candidate to change it, and one for a committee member to undo the change (in case it's inappropriate).


PowerApps CICD Information

Hello,
Could you please share more info of the architecture that you guys propose to implement a CI/CD Pipeline for PowerApps, such as:
potential use cases, alternative services, implementation considerations, or pricing guidance
Thanks,

@vammatm
It would be great if you could add a link to the documentation you are following for these steps? This would help us redirect the issue to the appropriate team. Thanks!!

This is the link I was reading:
https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/azure-devops-continuous-integration-for-power-platform

Thank you for your feedback.  We have created internal ticket 84803 to track and investigate this issue.

#please-close


Improve the bot loading performance

Describe the bug
Composer is taking too much time to load a big bot. For example, in Calendar bot, it's taking up to 30-60s to see the first screen.
Version
Lastest main
Browser

[X] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] macOS
[X] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:

open a big bot
wait the design page to show up

Expected behavior
Expect the first screen will show up very soon, within a few second, even the bot is considered as big.
Additional context
We had a proposal for hot/cold splitting which we can leverage the idea to break down the processing when loading.

addressed in #5853


Fix tilesize

For context: https://discord.com/channels/844211600009199626/1073244711973834822/1073244872775049277

Merging now to fix the bug, in case people start using this. We can always move code around later :+1:


Fixes leak in test_cancel_after_client_done & cancel_after_accept

under high load, the op->data.recv_message of a GRPC_OP_RECV grpc_op may
not receive an instance of grpc_byte_buffer in time, staying NULL.
However, it's this client code that's responsible for destroying said
byte_buffer, which is allocated by surface/call.c
When a call is cancelled, the batch containing the GRPC_OP_RECV will
"succeed", meaning that the client code will proceed and go over
the grpc_byte_buffer_destroy it must perform over the call-provided byte
buffers. However, the actual reception of data inside call.c is still
ongoing even post-cancellation, the byte buffer getting created and
"propagated up" to the client code, but too late, as the execution flow
has already gone over grpc_byte_buffer_destroy. So it leaks.
This fix makes sure to check internally if the call has been cancelled
and frees the byte buffer accordingly.

Fixes #6593

#6614 is the right fix, disregard this PR.


fix(icon-wrapper): fix theme error

close #4768

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.02 :warning:

Comparison is base (3ca7a94) 62.50% compared to head (c524643) 62.48%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4795      +/-   ##
==========================================
- Coverage   62.50%   62.48%   -0.02%
==========================================
  Files        1071     1071
  Lines       22432    22432
  Branches     5883     5883
==========================================
- Hits        14020    14017       -3
  Misses       6884     6884
- Partials     1528     1531       +3

Impacted Files
Coverage Δ

src/icon-wrapper/src/IconWrapper.tsx
78.94% <100.00%> (ø)

... and 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Error importing packages that use pbr

When importing a package on the remote side that uses pbr, this error is raised:
Exception: Versioning for this project requires either an sdist tarball, or access to an upstream
git repository. It's also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name mock was given, but was not able to be found.

Tagging as a bug, but this is really just pbr being too clever for its own good.


Make tests for deserialization

Make a generic way to determine whether deserialization "worked" (that is, all JSON message fields were consumed to set a field) for all consul message. Brought up by @lockwobr in #23 .

Not going to do this just because of API compatibility concerns. Right now Consul can add fields and this would break tests if they added some.


If a tournament had 8 people in it making top 8 doesn't deserve a star or a number in a circle

We should make it contingent on tournament size how we decorate.

Also decks finish 6-8 in this tournament are NOT showing the circle for some reason. But 5th is.

When we scrape gatherling, we consolidate all TOP4=3, and TOP8=5.
elif img == TOP_4:
    d['finish'] = 3
elif img == TOP_8:
    d['finish'] = 5
else:
    d['finish'] = ranks.get(d['mtgo_username'], None)

In a regular tournament, it means we have 1,2,3,3,5,5,5,5,9,10,11,...
In a tournament where playoffs don't have a top 8, we have 1,2,3,3,5,6,7,....  This means the person who came naturally 5th gets the ⑧, while the people 6-8 won't.

This is frustratingly close to being right. I think I might just not care as it's a one-of that may never be repeated and the display is not too awful. Anyone should feel free to reopen if they feel strongly.


Python 3.8: replace @asyncio.coroutine/yield from with async/await #1182

Fixes #1182 .
Changes proposed in this pull request:

replaced @asyncio.coroutine and yield from with async and await respectively

Coverage increased (+0.2%) to 96.465% when pulling 42e78d1e44e25124d92bb2c22fab0e7ea9614853 on szborows:master into 96bdcb010a4e5180c2bce18295e7b576c9c1ef0f on zalando:master.

:+1:

:+1:

@hjacobs I think you need to use await instead of yield from

@hjacobs it's green except coverage. Please advise: what to do with this -0.005%?

:+1:


Update go_latest.sh

Update go_latest.sh to fix a error

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Build on clean Ubuntu 18.04 succeeds;device enumerates; however cannot start.

Describe the bug

Example applications can enumerate, but not start kinect device after successful setup &  build on fresh installation of Ubuntu 18.04 (x64)
Appears to be permission related on the USB port.  Is possible this is just an Udev rule?
*update: I lifted an example rules file from kinect2; modified it for the device IDs that the K4A uses.  this resolved the insufficient permissions when attempting to enumerate devices....
But the core issue still remains; which is that the device cannot be "started"
Rules file I created is here
To Reproduce
Steps to reproduce the behavior:

On vanilla Ubuntu 18.04 LTS (desktop) Host
Clone and setup build environment per official instructions page
used the scripts/bootstrap_ubuntu.sh shell file to prepare the environment
Build examples as instructed on ^ instructions page
Run (from build/bin) ./k4aviewer;  note that no usb devices are enumerate and console show permission warning

rosuser@vega:~/Downloads/Azure-Kinect-Sensor-SDK/build/bin$  ./k4aviewer
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/008: Permission denied
libusb: error [_get_usbfs_fd] libusb requires write access to USB device nodes.
[2019-07-02 14:57:52.405] [error] [t=12861] ../src/usbcommand/usbcommand.c (305): find_libusb_device(). Unable to open LIBUSB at index 0
[2019-07-02 14:57:52.405] [error] [t=12861] ../src/depth_mcu/depth_mcu.c (68): usb_cmd_create(USB_DEVICE_DEPTH_PROCESSOR, device_index, NULL, &depthmcu->usb_cmd) returned failure in depthmcu_create()
[2019-07-02 14:57:52.405] [error] [t=12861] ../src/sdk/k4a.c (129): depthmcu_create(index, &device->depthmcu) returned failure in k4a_device_open()

Run with elevated permissions

In a console enter: sudo ./k4aviewer
Select the device from available dropdown list, Click 'open device'
Select green 'Start' button
:(

Expected behavior
Expecting device to open device and stream!
Screenshots
when attempting to run  sample applications; they are not able to open the device, following dmesg output occurs

Desktop (please complete the following information):

OS with Version: Ubuntu 18.04 LTS
Linux vega 4.19.8-041908-generic #201812080831 SMP Sat Dec 8 13:34:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
SDK Version:
git commit 7153c3c0a66219a884feeb1c18c1d04b61cc6493
Firmware version:

Additional context
dmesg output starting from plug in.
[ 6180.353040] usb 2-2.1: new SuperSpeed Gen 1 USB device number 10 using xhci_hcd
[ 6180.376160] usb 2-2.1: New USB device found, idVendor=045e, idProduct=097a, bcdDevice= 1.27
[ 6180.376164] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6180.376167] usb 2-2.1: Product: 4-Port USB 3.0 Hub
[ 6180.376169] usb 2-2.1: Manufacturer: Generic
[ 6180.376171] usb 2-2.1: SerialNumber:<PHONE_NUMBER>12
[ 6180.398215] hub 2-2.1:1.0: USB hub found
[ 6180.398446] hub 2-2.1:1.0: 2 ports detected
[ 6180.452885] usb 1-2.1: new high-speed USB device number 18 using xhci_hcd
[ 6180.557603] usb 1-2.1: New USB device found, idVendor=045e, idProduct=097b, bcdDevice= 1.27
[ 6180.557607] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6180.557609] usb 1-2.1: Product: 4-Port USB 2.0 Hub
[ 6180.557611] usb 1-2.1: Manufacturer: Generic
[ 6180.557613] usb 1-2.1: SerialNumber:<PHONE_NUMBER>12
[ 6180.605718] hub 1-2.1:1.0: USB hub found
[ 6180.606037] hub 1-2.1:1.0: 4 ports detected
[ 6180.957014] usb 2-2.1.2: new SuperSpeed Gen 1 USB device number 11 using xhci_hcd
[ 6180.981720] usb 2-2.1.2: New USB device found, idVendor=045e, idProduct=097c, bcdDevice= 1.00
[ 6180.981724] usb 2-2.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6180.981727] usb 2-2.1.2: Product: Azure Kinect Depth Camera
[ 6180.981729] usb 2-2.1.2: Manufacturer: Microsoft
[ 6180.981730] usb 2-2.1.2: SerialNumber:<PHONE_NUMBER>12
[ 6181.060863] usb 1-2.1.3: new high-speed USB device number 19 using xhci_hcd
[ 6181.164116] usb 1-2.1.3: New USB device found, idVendor=045e, idProduct=097e, bcdDevice= 1.06
[ 6181.164120] usb 1-2.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6181.164122] usb 1-2.1.3: Product: Azure Kinect Microphone Array
[ 6181.164124] usb 1-2.1.3: Manufacturer: Microsoft Corporation.
[ 6181.164126] usb 1-2.1.3: SerialNumber:<PHONE_NUMBER>12
[ 6181.245518] usb 2-2.1.1: new SuperSpeed Gen 1 USB device number 12 using xhci_hcd
[ 6181.265466] usb 2-2.1.1: Isoc endpoint with wBytesPerInterval of 1024 in config 1 interface 1 altsetting 4 ep 129: setting to 944
[ 6181.265888] usb 2-2.1.1: New USB device found, idVendor=045e, idProduct=097d, bcdDevice= 0.0c
[ 6181.265890] usb 2-2.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6181.265893] usb 2-2.1.1: Product: Azure Kinect 4K Camera
[ 6181.265894] usb 2-2.1.1: Manufacturer: Microsoft
[ 6181.265896] usb 2-2.1.1: SerialNumber:<PHONE_NUMBER>12
[ 6181.309774] uvcvideo: Found UVC 1.00 device Azure Kinect 4K Camera (045e:097d)
[ 6181.342367] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[ 6181.343708] hid-generic 0003:045E:097E.0017: hiddev2,hidraw4: USB HID v1.11 Device [Microsoft Corporation. Azure Kinect Microphone Array] on usb-0000:05:00.3-2.1.3/input2
[ 6181.345475] uvcvideo 2-2.1.1:1.0: Entity type for entity Extension 2 was not initialized!
[ 6181.345478] uvcvideo 2-2.1.1:1.0: Entity type for entity Extension 6 was not initialized!
[ 6181.345480] uvcvideo 2-2.1.1:1.0: Entity type for entity Extension 5 was not initialized!
[ 6181.345482] uvcvideo 2-2.1.1:1.0: Entity type for entity Processing 3 was not initialized!
[ 6181.345484] uvcvideo 2-2.1.1:1.0: Entity type for entity Camera 1 was not initialized!
[ 6181.345583] input: Azure Kinect 4K Camera as /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb2/2-2/2-2.1/2-2.1.1/2-2.1.1:1.0/input/input35
[ 6245.485654] usb 2-2.1.1: usbfs: process 14656 (k4aviewer) did not claim interface 0 before use

This does sound like a udev issue. But our expectation is that su ./k4aviewer is enough for the viewer to run successfully.
Also make sure you are seeing a white LED on the back of the device to ensure you are properly connected to USB 3.0 and power.
We also have a sample udev, see https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/usage.md#linux-device-setup

Yes, I get the LED as expected.  Once you close the error dialog, I do see that audio data is flowing (graph), but no IMU or camera(s)
I'll take look at your udev file.

Something else to consider is if the PC USB Host controller is compatable. We know there are issues with Container ID's on Windows and certain USB 3.X controllers. We also know that some just fail after a few seconds of operation.
If you come up with a good way to list host controllers on Linux it would be great to share as the topic below is Windows focused.
https://docs.microsoft.com/en-us/azure/Kinect-dk/troubleshooting#usb3-host-controller-compatibility

There's no repro for this issue. Please provide more information and we will revisit this.

I have the same problem. Ubuntu 18.04 I have copied the 99-k4a.rules to /etc/udev/rules.d/ and I do get a solid white light in the back of the device. Have you found a solution for this problem?

Failing to start is usually caused by the depth engine but being installed

yes, if I disable the depth camera in the GUI I can see the color camera. do I need to install anything else besides k4a-tools?

You need the azure kinect sdk and the installation is described here:
https://docs.microsoft.com/en-us/azure/kinect-dk/sensor-sdk-download

I did follow that installation guide. I had also installed sudo apt install libk4a1.1-dev
yet I got the "failed to start device!" error.

Please share your logs and open a new issue. Are you trying to call start on a machine you have remoted to?

@martinakos I have had exactly the same problem on Ubuntu 18.04, and updating graphics driver helped. I used the standard system dialogue (Software & Updates -> Additional Drivers) and updated from nvidia-418 to nvidia-430, then made a reboot. Afterwards, depth camera in k4aviewer started working.

I tested on Ubuntu 20.04 with the bionic deb packages, and it works well by the command sudo k4aviewer.

Hello,

I have had exactly the same problem on Ubuntu 18.04, but the rgb cam don't work.
My graphic cards is RTX2080ti (drivers 455).
The log:
[2020-11-18 23:39:51.405] [error] [t=3038] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/capturesync/capturesync.c (144): replace_sample(). capturesync_drop, releasing capture early due to full queue TS:    684400 type:Depth
[2020-11-18 23:39:51.439] [error] [t=3038] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/capturesync/capturesync.c (144): replace_sample(). capturesync_drop, releasing capture early due to full queue TS:    717733 type:Depth
[2020-11-18 23:39:51.472] [error] [t=3038] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/capturesync/capturesync.c (144): replace_sample(). capturesync_drop, releasing capture early due to full queue TS:    751066 type:Depth
[2020-11-18 23:39:51.505] [error] [t=3038] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/capturesync/capturesync.c (144): replace_sample(). capturesync_drop, releasing capture early due to full queue TS:    784400 type:Depth
[2020-11-18 23:39:51.539] [error] [t=3038] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/capturesync/capturesync.c (144): replace_sample(). capturesync_drop, releasing capture early due to full queue TS:    817733 type:Depth
[2020-11-18 23:39:51.567] [error] [t=3042] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/sdk/k4a.c (269): capturesync_get_capture(device->capturesync, capture_handle, timeout_in_ms) returned failure in k4a_device_get_capture()


Convert Submission classes to Kotlin

PTAL @scolsen @gino-m

It looks like there's a test that's failing because the toString of the TextResponse changed from "updated response" to "TextResponse(text=updated response)"
Is it important that we preserve the Response toString methods? Or is the new Data Class default implementation sufficient? (In which case I would just update the test)

It looks like there's a test that's failing because the toString of the TextResponse changed from "updated response" to "TextResponse(text=updated response)"
Is it important that we preserve the Response toString methods? Or is the new Data Class default implementation sufficient? (In which case I would just update the test)

We chatted, ok to get rid of the custom toString!

Codecov Report

Merging #1218 (91f1a70) into master (29eb42e) will decrease coverage by 0.10%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1218      +/-   ##
============================================
- Coverage     28.93%   28.82%   -0.11%
  Complexity      777      777
============================================
  Files           290      290
  Lines          7392     7364      -28
  Branches        345      347       +2
============================================
- Hits           2139     2123      -16
+ Misses         5150     5142       -8
+ Partials        103       99       -4

Impacted Files
Coverage Δ

...ce/local/room/converter/ResponseDeltasConverter.kt
70.58% <0.00%> (-5.03%)
:arrow_down:

...ence/local/room/converter/ResponseJsonConverter.kt
40.00% <0.00%> (-1.67%)
:arrow_down:

...ersistence/local/room/entity/SubmissionEntity.java
93.18% <0.00%> (-0.57%)
:arrow_down:

...und/ui/editsubmission/EditSubmissionViewModel.java
0.00% <0.00%> (ø)

.../android/ground/model/submission/TextResponse.java

.../android/ground/model/submission/TimeResponse.java

...android/ground/model/submission/ResponseDelta.java

...ndroid/ground/model/submission/NumberResponse.java

...le/android/ground/model/submission/Submission.java

...ogle/android/ground/model/submission/Submission.kt
100.00% <0.00%> (ø)

... and 6 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


[labs/context] Expose a dependency less entry point so we can also use the module and implement on DOM directly

Should this be an RFC?

[X] This is not a substantial change

Which package is this a feature request for?
Context (@lit-labs/context)
Description
This is a follow up in some comments I've made bringing up the idea that one could import lit-labs/context and implement themselves directly on the DOM. (see comment)
Usage scenario: I'd like to use Context API directly on client side module over http (import from ...). I currently have a few custom elements exposed this way and I'd love to have this code not to depend on any framework (don't get me wrong, I love Lit!)
To start, I've been thinking of using jspm to import only what I need, but I would need more than one file: value-notifier, create-context, etc.
Otherwise I would have to copy paste and transpile code and expose over HTTP.  I'd like to avoid that.
I can provide an HTML file where I setup client-side only where I'm trying to implement my own DOM backed ContextProvider and ContextConsumer. But I need what's at the root of lib/ to start from.
Alternatives and Workarounds

add exports for what's in lib/*.js, that doesn't require lit (oh. Right.) add a publish step of the same, but without dependency
config to allow to ´import { createContext } from "...";´ from over https

This is a Lit-specific implementation of the context protocol, and uses Lit -specific APIs.
I'm not sure what it would mean to use this implementation without Lit, or what http has to do with it, but you can implement the context protocol yourself for your elements.

I'm aware it's lit specific. I'm suggesting to publish the typings and an abstract of context-root so one could use it on DOM.

Context is a light weight API already, I don't think we're interested in exposing a more light weight entrypoint.

I agree it's light. The neat bit where we can have a listener that keeps track of context request events even when the handler isn't loaded, and helps it catch up so to speak.  That neat bit is hooked on lit's event lifecycle convention.  It's most probable one could copy that and use native.   Would have been cool if that was something separate and available for non lit users.
Since I'm probably the only one who sees this, and it's just a hunch.  I'll try it someday and if it works, I'll do a PR here.


bug - Spark login is case insensitive

This is about the Spark Users module - I can login with<EMAIL_ADDRESS>although my profile is<EMAIL_ADDRESS>IMO, it's a security hazard (+ the JWT integration with external services, such as volunteers, is effected by that)
Steps to Reproduce
Assuming your profile email is<EMAIL_ADDRESS>try to login with<EMAIL_ADDRESS>(first letter in different case).
It should be allowed, because:

it can be a security hazard and services don't work this way
the JWT integration with external services, such as volunteers, is effected by that, because they look for the user/profile data by exact match of profile's email

Unsuccessful login with an email that isn't exact

@talbarda Well, generally, I agree, it shouldn't matter.
However, it might not be as simple as forcing the input into lower case.
Since Drupal is the real authenticator here, we fist need to make sure that it doesn't allow mixed-case emails, or else these users will not be able to login, which is even worse.
WDYT?

It's OK to allow mixed-case emails on registration, but after a successful
one, a login should be successful only with an exact match if the
registered email
On Mon, Feb 5, 2018, 12:26 AM Elad Lachmi<EMAIL_ADDRESS>wrote:

@talbarda https://github.com/talbarda Well, generally, I agree, it
shouldn't matter.
However, it might not be as simple as forcing the input into lower case.
Since Drupal is the real authenticator here, we fist need to make sure
that it doesn't allow mixed-case emails, or else these users will not be
able to login, which is even worse.
WDYT?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Midburn/spark/issues/606#issuecomment-362945490, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHPRHuSIZfcyfzJFZ0F-HuZsDlJH75P4ks5tRi59gaJpZM4R4v3e
.

--

This message was written through my phone; my apologies for any typos.
Regards,
Tal Barda

IMO this can be fixed on spark side, no need to make changes on drupal

@OriHoch It depends.
Since part of the authentication/authorization flow is verifying the user with Drupal (as far as I understand it, if you know otherwise, feel free to correct me), it might be a problem to just force the entered email into lower case.
For example, if Drupal is case sensitive on the username, a user can register with<EMAIL_ADDRESS>When they try to login to Spark they enter<EMAIL_ADDRESS>we send<EMAIL_ADDRESS>to Drupal and login fails.
So my point is that we need to verify the Drupal behaviour before implementing anything.
Most likely, Drupal forces everything into lower case anyway, and then I agree we can fix this on the Spark side.

we can keep authenticating to Drupal the same way we do today
after the authentication to Drupal, we store a user in spark DB, this user can be stored with case sensitive email (I think it already does so today)
so, after authentication to drupal we can ensure on spark side user logs in case-insensitively
hopefully, sometime soon the drupal code will be open source (here), and we will be able to fix on drupal side as well, or maybe spark will replce drupal... but until then, this might a good fix IMO

this bug is similar to #575 which is fixed in a similar way in #579
in this case, the plus sign makes problems to Drupal, so we send drupal the username without plus sign, but spark keeps the original username with plus sign (I think..)

need to consider that my suggested fix might introduce a problem, where a user can login to Drupal but fails to login to Spark - a bit confusing, but I blame Drupal for this!

That's exactly what I was saying.
I would rather check the Drupal side then have people not able to login to Spark.

@elad-lachmi @OriHoch  - BTW, the main side effect for the volunteers system is that that a user logins with a non-exact email (say first uppercase letter where the profile isn't), and then, it is passed on the jwt, and then, when the volunteers system ask spark for this profile's details (with its email), it throws an error
@shaytidhar - I guess you should know better how to explain it
cc @may-ben-arie

Just to add to the discussion, I know y'all would like to know what the standard has to say about this.
If we define an address as local-part@domain, then the domain part is subject to normal DNS rules, hence the domain is case insensitive.
The local-part however is interpreted and understood only by the assigned host and is permitted by the spec to be case sensitive.
However, in practice, no popular platform allows such folly so it is safe to assume that email addresses are case insensitive.
I would also argue that it is impractical to force the user to remember which case he used when he entered his email for the first time.

@amotenko - ok. So, what does the JWT contains? and why does the api of getting the profiles' details doesn't support that also?

I'm not sure, but if I understand you correctly the system at the moment works as expected?
That is, emails are case insensitive as far as authentication is concerned?
Correct me if I'm wrong :)

if you consider login that way (allowing non exact email) , so I guess it's a yes

I agree with @amotenko :open_mouth:
seems a bit harmful to the users to not allow login with any case..
but there is a problem with the difference between how username logic and spark and in drupal which is the root cause of this issue and the + sign issue (and possibly other, yet unknown issues..)

which is why I suggest to move to a logic which I suggested where first we authenticate with drupal - according to drupal logic (e.g. replace + sign with, handle case sensitivity etc..)
and on spark side store the user in correct way and make additional authentication on spark if needed - after drupal

issue documented and known. won't be fixed for now beyond what @OriHoch provided.


[CI] Enhance params env check script

[CI] let's run params-env workflow also on push
[CI] enhance the check-params-env.sh to also check uniqueness of values
[CI] check-params-env.sh prints also time of creation of the checked image

More info as description of each commit.
Description

How Has This Been Tested?
In the root of the repository, run:

./ci/check-params-env.sh
./ci/check-runtime-images.sh

We should backport this to relevant branches upstream and downstream.

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

This is expected - as it will be fixed by #565.

Technically this one is ready for review. I just need to think whether we shall squash it to a one commit for easier cherry-picking to other branches or not :upside_down_face: :slightly_smiling_face:

I wouldn't do this in bash... But it's already done in bash and it checks useful things.

What would you use instead of bash?

Python; I think there is enough "logic" in the script for that. But ad I said, since it's in bash already, I'm fine with it.

Since I don't change any functional code, for the record and as an exercise - review the test failures here:

ci/prow/images:

: Build image runtime-cuda-tensorflow-ubi8-python-3.8 from the repository
{  error occurred handling build runtime-cuda-tensorflow-ubi8-python-3.8-amd64: could not get build runtime-cuda-tensorflow-ubi8-python-3.8-amd64: builds.build.openshift.io "runtime-cuda-tensorflow-ubi8-python-3.8-amd64" not found}

In build log, see:
Pushing image image-registry.openshift-image-registry.svc:5000/ci-op-1ks48214/pipeline:runtime-cuda-tensorflow-ubi8-python-3.8-amd64 ...
Getting image source signatures
Copying blob sha256:7822e944d15c45e998e88e0638073a1974246aea8fd268a925948eb2e070e048
Copying blob sha256:b7029bcb1edaf3277934b59207226ddf843bfbb348a24e5c7e84080488fa35a7
Copying blob sha256:8756f22094d074e5ea7b13b5a7cb8c5132b61a8b39d550f58e6a6053e4b3530d
Copying blob sha256:bea2a0b08f4fd7df72285c8ccf71ff0e9b76c025a0bc4dc67a4f40695feb0eca
Copying blob sha256:b82ddf37e40febb44c258077df217aef2b72f65c2c190ecd3a165ae894256e11
Copying blob sha256:f534e68b04663ce568284dc947b748f2c1793baaecb9573fd8f51a5ae25f1b1b
Copying blob sha256:21c47f62671b8ef160e5748e575f9a5c4642c7b1225c67b9ea7fc0d3417d4747
Error: received unexpected terminate signal

So the build failed at the point when it was being pushed to the image registry.

ci/prow/notebooks-e2e-tests:

: Run multi-stage test notebooks-e2e-tests - notebooks-e2e-tests-jupyter-intel-tf-ubi9-python-3.9-test-e2e container test

In test build log:
bin/kubectl port-forward svc/jupyter-intel-tensorflow-ubi9-python-3-9-notebook 8888:8888 & curl --retry 5 --retry-delay 5 --retry-connrefused http://localhost:8888/notebook/opendatahub/jovyan/api ; EXIT_CODE=$?; echo && pkill --full "^bin/kubectl.*port-forward.*"; \

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: Transient problem: connection refused Will retry in 5 seconds. 5
Warning: retries left.
Forwarding from <IP_ADDRESS>:8888 -> 8888
Forwarding from [::1]:8888 -> 8888

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Handling connection for 8888
E0618 22:42:48.486331      84 portforward.go:406] an error occurred forwarding 8888 -> 8888: error forwarding port 8888 to pod ea2566031bc9bfff803ae4f828369012152c6baabd2e85b9b57d28ed32768bda, uid : port forward into network namespace "/var/run/netns/71e5135a-8375-4d71-ac48-bd1227bebf53": failed to connect to localhost:8888 inside namespace ea2566031bc9bfff803ae4f828369012152c6baabd2e85b9b57d28ed32768bda: dial tcp [::1]:8888: connect: connection refused

  0     0    0     0    0     0      0      0 --:E0618 22:42:48.486853      84 portforward.go:234] lost connection to pod
--:-- --:--:-- --:--:--     0
curl: (52) Empty reply from server

Looks like the expected service isn't listening on the image at expected URL and port.
: Run multi-stage test test phase

Two tests failed - one is same as above, the second one is related to the previous one:
{"component":"entrypoint","error":"wrapped process failed: exit status 2","file":"sigs.k8s.io/prow/pkg/entrypoint/run.go:84","func":"sigs.k8s.io/prow/pkg/entrypoint.Options.internalRun","level":"error","msg":"Error executing test process","severity":"error","time":"2024-06-18T22:42:48Z"}
error: failed to execute wrapped command: exit status 2

Python; I think there is enough "logic" in the script for that. But ad I said, since it's in bash already, I'm fine with it.

Yeah, truth is that this is still 100times better readable for me and easier to maintain than a Python script; but I agree, it's just my problem. We can rewrite this to Python someday if we feel so.

Nah, would not rewrite, not worth it.

I will override the tests since are not related with the pr content, to continue with the merging.
Thanks Jan for this work!
/override ci/prow/notebooks-e2e-tests
/override ci/prow/images

/cherrypick 2024a 2023b 2023a

/cherrypick 2023b 2023a

/cherrypick 2023a


prompt support for value type number

Permit to support x-prompt for a schematic parameter definition if its type is set to number.
Previously, if used with type 'number', the prompt was trap in a loop as input never was considered correct.
The part on the cli will also need to be reproduced on schematics-cli after #12814.
Related to #12163.
Root causes
angular-devkit/core & ajv
Type number wasn't set, and the value wasn't converted to a number if needed in the prompt validator.
angular-devkit/cli & inquirer
Inquirer doesn't convert it result to a number even if definition type is set to 'number' following https://github.com/SBoudrias/Inquirer.js/pull/663
Reproduction steps
You can reproduce the previous behavior by using the @angular-buddies/prettier@1.0.0-alpha.2:prettier-config schematic.
https://github.com/angular-buddies/angular-buddies/blob/v1.0.0-alpha.2/packages/prettier/src/config/schema.json#L14-L19

Closing as the CLI currently supports the use of a schema property's type when validating and returning the value from a prompt.  This includes both the number and integer types.
However, thank you for the contribution.

Closing as the CLI currently supports the use of a schema property's type when validating and returning the value from a prompt.  This includes both the number and integer types.
However, thank you for the contribution.


inspectIT Demo with Prometheus the config-se

If you use the docker-compose demo the config-server do not show all agent. only the last one with has connected.
My Setup is Fedora 31 with podman-compose.
Looks like, the config-server uses PID@HOSTNAME as unique ID, with is a problem with podman/docker. There is always  PID=1 and HOSTNAME=localhost


Use GCS object update time instead of creation time

This should achieve the same outcome and is easier to manipulate (it doesn't require object recreation) and so should make triggering a reimport of specific records a little more efficient (doesn't require downloading and reuploading the object to reset the creation time)
Tested in Staging:
Before:
$ gsutil stat gs://osv-test-cve-osv-conversion/osv-output/CVE-2024-7067.json
gs://osv-test-cve-osv-conversion/osv-output/CVE-2024-7067.json:
    Creation time:          Fri, 26 Jul 2024 16:53:59 GMT
    Update time:            Wed, 31 Jul 2024 03:52:06 GMT
    Storage class:          STANDARD
    Content-Length:         3073
    Content-Type:           application/json
    Metadata:
        goog-reserved-file-mtime:1722394200
    Hash (crc32c):          Lo3Xwg==
    Hash (md5):             rdI8478THJQOVCgblWW9UQ==
    ETag:                   COmK0tyVxYcDED4=
    Generation:<PHONE_NUMBER>216489
    Metageneration:         62

After:
$ gsutil stat gs://osv-test-cve-osv-conversion/osv-output/CVE-2024-7067.json
gs://osv-test-cve-osv-conversion/osv-output/CVE-2024-7067.json:
    Creation time:          Fri, 26 Jul 2024 16:53:59 GMT
    Update time:            Tue, 06 Aug 2024 07:07:12 GMT
    Storage class:          STANDARD
    Content-Length:         3073
    Content-Type:           application/json
    Metadata:
        goog-reserved-file-mtime:1722394200
    Hash (crc32c):          Lo3Xwg==
    Hash (md5):             rdI8478THJQOVCgblWW9UQ==
    ETag:                   COmK0tyVxYcDED8=
    Generation:<PHONE_NUMBER>216489
    Metageneration:         63

I have a sneaking suspicion this may facilitate the intentional reimporting of CVEs that get updated when one of their constituent parts changes (the fact that the original creation and update times were already divergent surprised me)

I recall that we previously encountered an issue where gcloud storage rsync --checksums-only was repeatedly updating the modified time on GCS objects (https://github.com/google/osv.dev/pull/2196). We are still using this command to write results to the osv-output folder. So I am wondering that our osv-output entries may always update their modification times even when there are no actual changes to the data. This may cause we re-import more times than we need if we switch checks from creation time to update time?

I recall that we previously encountered an issue where gcloud storage rsync --checksums-only was repeatedly updating the modified time on GCS objects (#2196)

Ah, if that's the (unfortunate) culprit (which I dare say it will be) we may need to also migrate that away from gcloud storage rsync in favour of gsutil rsync... That difference in behaviour continues to annoy me :-(

@hogo6002 if I followed #2611 correctly, it makes what's changing in this PR more viable?

@hogo6002 if I followed #2611 correctly, it makes what's changing in this PR more viable?

Yeah, I think as long as we use gsutil, it should be ok for us to merge this PR.


feat: add link code extension

sphinx link code extension

I'll try having a look throughout the morning =)

Merging! Thank you @jorgepiloto  and @RobPasMue


--manifest-path forces recompile when using vendoring

Problem

If vendoring dependencies instead of pulling from crates.io, then using --manifest-path will cause cargo to recompile whenever switching from inside the repo to outside.
Steps

I created a minimal repository to reproduce this: https://github.com/sebastianblunt/cargo-6999
cd into the repo and run cargo build
cd ..
cargo build --manifest-path example/Cargo.toml
Notice that it will recompile both the dependency and example.

If you go into the example repo and remove/rename the .cargo directory, thereby removing the vendoring, then cargo will not recompile when you do the above.
It does not seem to make any difference whether you use absolute or relative paths in the .cargo/config.
Possible Solution(s)

Notes
Output of cargo version: cargo 1.37.0-nightly (545f35425 2019-05-23)

Thanks for making the repro!  Cargo doesn't read the .cargo/config file when using --manifest-path (it uses the current working directory).  I believe this is a dupe of #2930.

Closing in favor of #2930.


Update README.md

修复钉钉群二维码不显示问题

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

thank you very much! Could you pr to the dev branch?  The master branch didn't accept pr.

Ok, I already do it.


INDI camera or mount can only be used when the device is already connected by another client

If the device is not already connected by the server, clicking on the PHD2 button causes the progress window to wait 30 second and then close, without the device being connected.
When the device is already connected to the server, the PHD2 connection succeeds.

The issue is caused by the CONNECTION property being set when the DRIVER_INFO property is enumerated, which is not guaranted to be after the CONNECTION property becomes available.
By the way, the method ConnectToDriver is now a dead code.
Fixed at [1aa79b17e353e9a1ea3b4345fb6c07f762225b90]
Moreover, when trying to connect, INDI does some nasty things with the sockets, which occsionally causes application crashes on SIGPIPE. PHD2 needs to protect from these crashes by ignoring SIGPIPE.
Fixed at [1d61d4046e2fc3a17d1b33907815feac70d5c36e]

And another... PHD2 saves the same INDI mount for both guider and aux mount ; i.e. we have an aux mount selected for guiding, which obviously does not work, or a guider selected as the aux mount, which does not work either, but at least it can guide 🙂
This is caused by scope_indi saving the last selected INDI mount in one profile setting, and use this one for guider and aux scopes lists.
All this is now fixed at [a25dfcab6a99ca2a44add95c2882c003038466eb] and [0cb0ead2e6d79117b13774d46da34ae94b66463f]


Send status message  (stories)

Hello
Please can anyone help me to send status message ?

Whatsapp web doesn't support that afair


python-black-org-mode-block doesn't respect org-src-preserve-indentation

If org-src-preserve-indentation is nil and org-edit-src-content-indentation is non-zero (both are by default), python-black-org-mode-block fails because of the indentation.
For example, with (setq-local org-src-preserve-indentation nil org-edit-src-content-indentation 2), this Org markup:
#+begin_src python
  x = 1
#+end_src

corresponds to this code:
x = 1

But, our function currently sees it with extra indentation:
  x = 1

org-edit-src-code is a user command for editing a source block in a different buffer, and it handles the indentation and de-indentation according to these settings. It also escapes certain characters, as #18 addressed. It does update the window configuration though, so we'd have to work around that if we were to use it.

good catch. i do not use org myself. patches welcome 🙃


Seller Auction Products Order Page

Auction Products Order Page
For members working with me, kindly use the design link I shared to see the design we are to implement for this page
For new member who wants to work on this, Kindly reach out to me to share the link for the design
Thanks for the understanding

will like to work on  this issue.

Okay My Super Man, you can start working on it Man....Thank you for all you do


Bug: Data Table component not working with AngularJS Advanced Tags

Overview
Data Table component not working with AngularJS Advanced Tag like ng-repeat-start / ng-repeat-start
I do see component working fine with standard tags like ng-repeat
Feature: Data Table component
  As a Developer
  I want to Use Data Table component with AngularJS
  So that I can populate the Table with  Dynamic table content

Data Table Html + Angular JS = Working
In Plunker, I implemented the use case.  Based on the Flag, I would like to use same HTML to have expandable and non expandable behavior.
Plunker link has Datable Html and Input structure as well.
http://plnkr.co/edit/3iu9f2HHO4sfiY5gFj1y?p=preview
Data Table Html + Angular JS + Carbon Design System Libraries - Not Working
When the same Datable Html  used along with Carbon Design System Libraries, it is not working.
Below is the output

I did try .refreshRows() but no luck

The screenshot shows that the Angular template is not property bound to the data model, where carbon-components does nothing. You may want to try removing carbon-components stuffs from your template/application and see what happens.

hi @asudoh
http://plnkr.co/edit/3iu9f2HHO4sfiY5gFj1y?p=preview
I have the Html in plunker to demonstrate the working Html.
Just with Carbon Components JS, same Html is not working.
Please let me know if you see any problem with html


HPA and VPA pod autoscaling documentation

This pull request should be used to add HPA and VPA pod autoscaling documentation from Tatsuya (@tmorik). To open this PR, I've just added a table of contents to the Application Resource Tuning page (d2c1729f40217d8e7ef821732b65fcf67aef1a99), where Shelly suggests this content should live. I'm including Tatsuya's AutoscalingDemo.md file contents in the code block below. This file lives in a private repository but can be included here. I've confirmed with him that this is the latest version:

# OpenShift Autoscaling Demo Steps on a LAB Cluster

## Horizontal Pod Autoscaler

### Prep for HPA Demo

1. Create a project or use empty project.

    Create a project;

    ```console
    $ oc new-project
    ```

    In this Demo, `tats-hpa-test` is created.

2. Deploy the example deployment.

    From `tats-hpa-test` project, Navigate to `Workloads` > `Deployment`, Click `Create Deployment`. Add resources and click `Create`.

    The resources you will add are like below:

    ```yaml
    <...>
    resources:
    limits:
      cpu: 100m
      memory: 512Mi
    requests:
      cpu: 50m
      memory: 70Mi
    <...>
    ```

    Note: These resource values are just demonstrations; you can try other values for them while playing with the HPA.

    If you prefer to to use CLI, use the deployment example yaml below;

    ```yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: example
      namespace:
    spec:
      selector:
        matchLabels:
          app: httpd
      replicas: 3
      template:
        metadata:
          labels:
            app: httpd
        spec:
          containers:
            - name: httpd
              image: >-
                image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest
              ports:
                - containerPort: 8080
              resources:
                limits:
                  cpu: 100m
                  memory: 512Mi
                requests:
                  cpu: 50m
                  memory: 70Mi
    ```

    save the yaml as `example-deployment` above and run the oc command;

    ```console
    $ oc create -f example-deployment.yaml
    deployment.apps/example created

    $ oc get deploy
    NAME      READY   UP-TO-DATE   AVAILABLE   AGE
    example   3/3     3            3           6s
    ```

3. Check if the example Deployment has been deployed and created 3 pods.

    ```console
    $ oc get pods
    NAME                      READY   STATUS    RESTARTS   AGE
    example-787f749bb-lt2sm   1/1     Running   0          11s
    example-787f749bb-qpkc6   1/1     Running   0          11s
    example-787f749bb-twjns   1/1     Running   0          11s

    ```

### HPA Demo

1. HPA yaml file

    From `tats-hpa-test` project, Navigate to Workloads > HorizontalPodAutoscalers, Click `Create HorizontalPodAutoscaler` to create the example HPA. (Change parameters as you test. eg, change averageUtilization etc)

    Or use the HPA example below:

    ```yaml
    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
      name: example-hpa
      namespace: tats-test3
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: example
      minReplicas: 2
      maxReplicas: 10
      metrics:
      - type: Resource
        resource:
          name: memory
          target:
            type: AverageValue
            averageValue: 35Mi
    ```

    Note: This yaml is using memory metrics for testing. The example that will be created by the console is using CPU, which is a bit difficult to test with. (you have to let CPU busy.)

2. Create an HPA object and check pods.

    ```console
    # Check original state of pods - 3 pods should be running by the example deployment.
    $ oc get pods
    NAME                       READY   STATUS    RESTARTS   AGE
    example-5697576c5f-p8qd5   1/1     Running   0          2m39s
    example-5697576c5f-pw92r   1/1     Running   0          2m39s
    example-5697576c5f-trxj2   1/1     Running   0          2m39s

    $ oc create -f example-hpa.yaml
    horizontalpodautoscaler.autoscaling/example-hpa created

    # Check if HPA is created and calculating the target:
    $ oc get hpa
    NAME          REFERENCE            TARGETS          MINPODS   MAXPODS   REPLICAS   AGE
    example-hpa   Deployment/example   /35Mi   1         10        0          9s

    # After a few seconds or so you should see the TARGET field:
    $ oc get hpa
    NAME          REFERENCE            TARGETS             MINPODS   MAXPODS   REPLICAS   AGE
    example-hpa   Deployment/example<PHONE_NUMBER>6m/35Mi   1         10        3          16s

    # After a minutes or so, Additional 7 pods has been spin up by the hpa.  This is because maxReplicas is set to 10, and current deployment's memory is not matched to the target memory resource.
    $ oc get pods
    NAME                       READY   STATUS    RESTARTS   AGE
    example-5697576c5f-4vlt2   1/1     Running   0          15s
    <...>
    example-5697576c5f-pw92r   1/1     Running   0          3m6s
    example-5697576c5f-trxj2   1/1     Running   0          3m6s

    # See what happened if the hpa is deleted and check pods.

    $ oc delete hpa example-hpa
    horizontalpodautoscaler.autoscaling "example-hpa" deleted

    # Added pods are still running.
    $ oc get pods
    NAME                       READY   STATUS    RESTARTS   AGE
    example-5697576c5f-4vlt2   1/1     Running   0          4m15s
    example-5697576c5f-9gnhk   1/1     Running   0          3m
    example-5697576c5f-dkrtc   1/1     Running   0          105s
    example-5697576c5f-h6lq2   1/1     Running   0          3m
    example-5697576c5f-hwb7b   1/1     Running   0          44s
    example-5697576c5f-jg5l7   1/1     Running   0          105s
    example-5697576c5f-p8qd5   1/1     Running   0          7m6s
    example-5697576c5f-pw92r   1/1     Running   0          7m6s
    example-5697576c5f-trxj2   1/1     Running   0          7m6s
    example-5697576c5f-xvb8x   1/1     Running   0          44s

    # delete all pods manually one by one and check pods

    $ oc delete pods example-5697576c5f-4vlt2 example-5697576c5f-9gnhk example-5697576c5f-dkrtc example-5697576c5f-h6lq2 example-5697576c5f-hwb7b example-5697576c5f-jg5l7 example-5697576c5f-p8qd5 example-5697576c5f-pw92r example-5697576c5f-trxj2 example-5697576c5f-xvb8x --grace-period=0 --force
    pod "example-5697576c5f-4vlt2" deleted
    <...>
    pod "example-5697576c5f-trxj2" deleted
    pod "example-5697576c5f-xvb8x" deleted

    # Still 10 pods will be running - This is because the deployment object had been over written by the hpa and it's still remained even though the hpa object is deleted.
    $ oc get pods
    NAME                       READY   STATUS    RESTARTS   AGE
    example-5697576c5f-5fnlg   1/1     Running   0          37s
    example-5697576c5f-8c8dl   1/1     Running   0          36s
    example-5697576c5f-bjj5n   1/1     Running   0          36s
    <...>
    example-5697576c5f-w2kk5   1/1     Running   0          37s
    example-5697576c5f-zhhbl   1/1     Running   0          37s

    # Check `example` deployment is still set to 10.
    $ oc get deployment example -o=jsonpath='{.status.replicas}' | jq
    10

    # Check event see what they say about hpa.
    $ oc get event
    <...>
    horizontalpodautoscaler/example-hpa   New size: 3; reason: Current number of replicas below Spec.MinReplicas
    16m         Warning   FailedGetResourceMetric        horizontalpodautoscaler/example-hpa   failed to get memory utilization: unable to get metrics for resource memory: no metrics returned from resource metrics API
    16m         Warning   FailedComputeMetricsReplicas   horizontalpodautoscaler/example-hpa   invalid metrics (1 invalid out of 1), first error is: failed to get memory utilization: unable to get metrics for resource memory: no metrics returned from resource metrics API
    22m         Normal    SuccessfulRescale              horizontalpodautoscaler/example-hpa   New size: 3; reason:
    12m         Normal    SuccessfulRescale              horizontalpodautoscaler/example-hpa   New size: 2; reason: All metrics below target
    2m7s        Normal    SuccessfulRescale              horizontalpodautoscaler/example-hpa   New size: 3; reason: memory resource above target
    52s         Normal    SuccessfulRescale              horizontalpodautoscaler/example-hpa   New size: 4; reason: memory resource above target
    26m         Normal    ScalingReplicaSet              deployment/example                    Scaled down replica set example-5697576c5f to 2
    26m         Normal    ScalingReplicaSet              deployment/example                    Scaled up replica set example-6f4ffd89c to 1
    26m         Normal    ScalingReplicaSet              deployment/example                    Scaled down replica set example-5697576c5f to 1
    <...>
    12m         Normal    ScalingReplicaSet              deployment/example                    (combined from similar events): Scaled down replica set example-69b64c8949 to 2
    3m47s       Normal    ScalingReplicaSet              deployment/example                    Scaled up replica set example-7cf7dbd7f6 to 2
    2m7s        Normal    ScalingReplicaSet              deployment/example                    Scaled up replica set example-7cf7dbd7f6 to 3
    52s         Normal    ScalingReplicaSet              deployment/example                    Scaled up replica set example-7cf7dbd7f6 to 4
    <...>

## Vertical Pod Autoscaler

### Prep for VPA

1. Create `tats-vpa-test` project:

    ```console
    $ oc new-project tats-vpa-test
    Now using project "tats-vpa-test" on server "https://api.klab.devops.gov.bc.ca:6443".
    ```

2. Deploy `example` deployment:

    ```yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: example
      namespace:
    spec:
      selector:
        matchLabels:
          app: httpd
      replicas: 2
      template:
        metadata:
          labels:
            app: httpd
        spec:
          containers:
            - name: httpd
              image: >-
                image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest
              ports:
                - containerPort: 8080
              resources:
                limits:
                  cpu: 100m
                  memory: 512Mi
                requests:
                  cpu: 5m
                  memory: 10Mi
    ```

    Note: In this Demo, `tats-vpa-test` is used. Also, CPU and Memory requests are set to be small on purpose.

### VPA Demo

1. Create `Off mode` vpa yaml:

    ```yaml
    apiVersion: autoscaling.k8s.io/v1beta2
    kind: VerticalPodAutoscaler
    metadata:
      name: example-vpa-recommender
    spec:
      targetRef:
        apiVersion: "apps/v1"
        kind: Deployment
        name: example
      updatePolicy:
        updateMode: "Off"
    ```

2. Deploy a VPA

    ```console
    $ oc create -f example-vpa-off.yaml
    verticalpodautoscaler.autoscaling.k8s.io/example-vpa-recommender created

    # After a minutes or so you should get CPU and MEM recommendation fields
    $ oc get vpa
    NAME                      MODE   CPU   MEM       PROVIDED   AGE
    example-vpa-recommender   Auto   25m   262144k   True       5s
    ```

3. Check recommendation

    Let it run for a while, and check if Recommendation has been calculated:

    ```console
    $ oc get vpa example-vpa-recommender -o=jsonpath='{.status.recommendation}' | jq
    ```

    ```json
    {
      "containerRecommendations": [
        {
          "containerName": "httpd",
          "lowerBound": {
            "cpu": "25m",
            "memory": "262144k"
          },
          "target": {
            "cpu": "25m",
            "memory": "262144k"
          },
          "uncappedTarget": {
            "cpu": "25m",
            "memory": "262144k"
          },
          "upperBound": {
            "cpu": "25m",
            "memory": "262144k"
          }
        }
      ]
    }
    ```

4. Turn on `Auto` mode:

    ```console
    $ oc edit vpa  example-vpa-recommender
    ```

    ```yaml
    <...>
      updatePolicy:
        updateMode: Off   # change this to Auto
    <...>
    ```

5. Run it for a while and Check status:

    ```console
    $ watch 'oc get pods -o wide && oc get pods  -o custom-columns="NAME:.metadata.name, VPA_UPDATES:.metadata.annotations.vpaUpdates" && oc get pods  -o custom-columns="NAME:.metadata.name, CPU_REQ:.spec.containers[*].resources.requests.cpu, MEM_REQ:.spec.containers[*].resources.requests.memory, CPU_LIM:.spec.containers[*].resources.limits.cpu, MEM_LIM:.spec.containers[*].resources.limits.memory " && echo "--" && oc get vpa && echo "--"&& oc get hpa'

    // VPA starts recreating pods one by one according to the recommendation -  CPU 25m, Memory 260 Mi:

    NAME                       READY   STATUS    RESTARTS   AGE     IP             NODE                  NOMINATED NODE   READINESS GATES
    example-74979bff7b-qp4cs   1/1     Running   0          12s     <IP_ADDRESS>   mcs-klab-app-02.dmz
    example-74979bff7b-sldt5   1/1     Running   0          2m53s   <IP_ADDRESS>   mcs-klab-app-04.dmz
    NAME                        VPA_UPDATES
    example-74979bff7b-qp4cs   Pod resources updated by example-vpa-recommender: container 0: memory request, cpu request, cpu limit, memory limit
    example-74979bff7b-sldt5
    NAME                        CPU_REQ    MEM_REQ    CPU_LIM    MEM_LIM
    example-74979bff7b-qp4cs   25m        262144k    500m       2500Mi
    example-74979bff7b-sldt5   5m         10Mi       100m       100Mi
    --
    NAME                      MODE   CPU   MEM       PROVIDED   AGE
    example-vpa-recommender   Auto   25m   262144k   True       2m22s
    --
    No resources found in tats-vpa-test namespace.
    ```

    ```console
    // both pods are updated:
    NAME                        CPU_REQ    MEM_REQ    CPU_LIM    MEM_LIM
    example-74979bff7b-hdh92   25m        262144k    500m       2500Mi
    example-74979bff7b-qp4cs   25m        262144k    500m       2500Mi
    ```

6. Delete the VPA object and pods

    ```console
    // Delete VPA
    $ oc delete vpa example-vpa-recommender
    verticalpodautoscaler.autoscaling.k8s.io "example-vpa-recommender" deleted

    $ oc get vpa
    No resources found in tats-vpa-test namespace.

    // Delete one of pod
    $ oc delete pod example-74979bff7b-hdh92 --grace-period=0 --force
    warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
    pod "example-74979bff7b-hdh92" force deleted

    // Pod will be recreated with the original CPU and Memory requests by the deployment:

    NAME                       READY   STATUS    RESTARTS   AGE   IP             NODE                  NOMINATED NODE   READINESS GATES
    example-74979bff7b-9bt4n   1/1     Running   0          69s   <IP_ADDRESS>   mcs-klab-app-04.dmz
    example-74979bff7b-qp4cs   1/1     Running   0          12m   <IP_ADDRESS>   mcs-klab-app-02.dmz
    NAME                        VPA_UPDATES
    example-74979bff7b-9bt4n
    example-74979bff7b-qp4cs   Pod resources updated by example-vpa-recommender: container 0: memory request, cpu request, cpu limit, memory limit
    NAME                        CPU_REQ    MEM_REQ    CPU_LIM    MEM_LIM
    example-74979bff7b-9bt4n   5m         10Mi       100m       100Mi
    example-74979bff7b-qp4cs   25m        262144k    500m       2500Mi
    ```

    Note: The VPA does not change the Deployment settings. Therefore, when the VPA is deleted, the Pod will revert to its original required values.

## HPA + VPA FOR EASY RESOURCE TUNING DEMO

The best practices in our OpenShift are the following 7 steps;

- Use VPA to learn optimum resource settings for your deployments:

    Step 1: Identify deployments in your namespace that you think need a resource increase/decrease

    Step 2: Create a VPA object for these deployments

    Step 3: Let the VPA object(s) run for 2-7 days to collect data

    Step 4:  Review the report with the recommendations for resource allocations generated by the VPA objects

    Step 5: Implement for resource allocations for CPU Request/Limit and Memory Request/Limit recommended by the VPA objects

- Use HPA to make your deployments scalable:

    Step 6: Create a HPA object for the deployment that is expected to burst and set the threshold for scaling out to the CPU Limit set for the deployment

    Step 7: Run a load test to generate a load that will trigger the HPA and increase the number of replicas to confirm everything works as expected

### Use **VPA** to learn optimum resource settings for your deployments

#### Step 1

Identify deployments in your namespace that you think need a resource increase/decrease

Follow the steps in [Example Nginx Application Deployment](ExampleAppDeployment.md) and deploy a demo app in your namespace. In this Demo, `tats-autoscaling-demo` namespace is used.

#### Step 2

Create a VPA object for the deployments you have created in the previous step. Here, it's `nginx-hello-world-as-demo` deployment

```console
$ oc get deployment
NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
nginx-hello-world-as-demo   2/2     2            2           3h40m
```

```console
vi example-vpa-recommender.yaml
```

```yaml
---
apiVersion: autoscaling.k8s.io/v1beta2
kind: VerticalPodAutoscaler
metadata:
  name: example-vpa-recommender
spec:
  targetRef:
    apiVersion: "apps/v1"
    kind: Deployment
    name: nginx-hello-world-as-demo
  updatePolicy:
    updateMode: "Off"
```

Run `oc create -f example-vpa-recommender` and check if vpa is created;

```console
$ oc get vpa
NAME                      MODE   CPU   MEM       PROVIDED   AGE
example-vpa-recommender   Off    12m   131072k   True       78s
```

You should see vpa's calculations after a minutes or so.

#### Step 3

Let the VPA object(s) run for 2-7 days to collect data - For the demo, lit it run for a few minutes.

#### Step 4

Review the report with the recommendations for resource allocations generated by the VPA objects

You can check the recommendations using `oc describe vpa ` command, check at the very bottom of output:

```console
$ oc describe vpa example-vpa-recommender

<...>
Spec:
  Target Ref:
    API Version:  apps/v1
    Kind:         Deployment
    Name:         nginx-hello-world-as-demo
  Update Policy:
    Update Mode:  Off
Status:
  Conditions:
    Last Transition Time:  2022-05-13T00:07:27Z
    Status:                True
    Type:                  RecommendationProvided
  Recommendation:
    Container Recommendations:
      Container Name:  nginx
      Lower Bound:
        Cpu:     12m
        Memory:  131072k
      Target:
        Cpu:     12m
        Memory:  131072k
      Uncapped Target:
        Cpu:     12m
        Memory:  131072k
      Upper Bound:
        Cpu:           12m
        Memory:        131072k
      Container Name:  date
      Lower Bound:
        Cpu:     22m
        Memory:  131072k
      Target:
        Cpu:     35m
        Memory:  131072k
      Uncapped Target:
        Cpu:     35m
        Memory:  131072k
      Upper Bound:
        Cpu:     55m
        Memory:  131072k
Events:
```

With the ExampleApp deployment, Two containers' recommendations should be in the output like above, one for `nginx`, another one for `date`.

Run below if you want to see the recommendation part only;

```console
$ oc get vpa example-vpa-recommender -o=jsonpath='{.status.recommendation}' | jq
```

```json
{
  "containerRecommendations": [
    {
      "containerName": "nginx",
      "lowerBound": {
        "cpu": "12m",
        "memory": "131072k"
      },
      "target": {
        "cpu": "12m",
        "memory": "131072k"
      },
      "uncappedTarget": {
        "cpu": "12m",
        "memory": "131072k"
      },
      "upperBound": {
        "cpu": "12m",
        "memory": "131072k"
      }
    },
    {
      "containerName": "date",
      "lowerBound": {
        "cpu": "22m",
        "memory": "131072k"
      },
      "target": {
        "cpu": "35m",
        "memory": "131072k"
      },
      "uncappedTarget": {
        "cpu": "35m",
        "memory": "131072k"
      },
      "upperBound": {
        "cpu": "55m",
        "memory": "131072k"
      }
    }
  ]
}
```

### Use **HPA** to make your deployments scalable

#### Step 5

Implement for resource allocations for CPU Request/Limit and Memory Request/Limit recommended by the VPA objects - **This step re-creates the pod. Take special care when performing this procedure with the PROD application.**

The `resources` for the example deployments should have been set like below:

```console
$ oc get deployment nginx-hello-world-as-demo -o yaml
```

```yaml
    <...>
    spec:
      containers:
      - image: image-registry.apps.klab.devops.gov.bc.ca/tats-autoscaling-demo/nginx-hello-world-as-demo
        imagePullPolicy: Always
        name: nginx
        resources:
          limits:
            cpu: 50m
            memory: 200Mi
          requests:
            cpu: 10m
            memory: 50Mi
        <...>
        name: date
        resources:
          limits:
            cpu: 25m
            memory: 200Mi
          requests:
            cpu: 10m
            memory: 25Mi
            <...>
```

Change these resources to the values that the recommendation is indicating. (Manually scale up/down pods vertically after you got the fair recommendations)

There are many discussions, calculations, and tools on how to set CPU and memory resources. One simple way to set the `limit` and `request` for these resources is to use the vpa recommender's `lowerBound` or `target` as the `request` and `upperBound` as the `limit`.

```console
oc edit deployment nginx-hello-world-as-demo
```

```yaml
<...>
        name: nginx
        resources:
          limits:
            cpu: 24m         # Changed to 24m
            memory: 131072k  # Changed to 131072k
          requests:
            cpu: 12m         # Changed to 12m
            memory: 131072k  # Changed to 131072k
        <...>
        imagePullPolicy: IfNotPresent
        name: date
        resources:
          limits:
            cpu: 55m         # Changed to 55m
            memory: 131072k  # Changed to 131072k
          requests:
            cpu: 22m         # <--- Changed to 22m
            memory: 131072k  # <--- Changed to 131072k
<...>
```

Pods will be terminated and recreated with these new resource requests. Check if both cpu and memory requests have been updated with new pods.

```console
$ oc get pods -o custom-columns="NAME:.metadata.name, CPU_REQ:.spec.containers[*].resources.requests.cpu, MEM_REQ:.spec.containers[*].resources.requests.memory, CPU_LIM:.spec.containers[*].resources.limits.cpu, MEM_LIM:.spec.containers[*].resources.limits.memory"

<...>
NAME                                         CPU_REQ    MEM_REQ       CPU_LIM    MEM_LIM
nginx-hello-world-as-demo-1-build           50m        256Mi         250m       1Gi
nginx-hello-world-as-demo-5444d994f-5466n   12m,22m    131Mi,131Mi   24m,55m    137Mi,131Mi
nginx-hello-world-as-demo-5444d994f-58kqf   12m,22m    131Mi,131Mi   24m,55m    137Mi,131Mi

```

To find out a appropriate resource requests and limits, Please read the followings:

- [Set appropriate resource requests and limits](https://cloud.google.com/architecture/best-practices-for-running-cost-effective-kubernetes-applications-on-gke#set_appropriate_resource_requests_and_limits)
- [Autoscaler and over-provisioning](https://cloud.google.com/architecture/best-practices-for-running-cost-effective-kubernetes-applications-on-gke#autoscaler_and_over-provisioning)

#### Step 6

Create a HPA object for the deployment that is expected to burst and set the threshold for scaling out to the CPU `Limit` set for the deployment

Create an HPA object for the deployment you have created in the step 2. Here, it's `nginx-hello-world-as-demo` deployment and using `Average CPU Utilization` to scale pods horizontally.

HPA constantly monitors the total `request` value in the pod and calculates the usage/utilization for it. In this demo, we have a total `34m CPU requests` and a total `79m CPU limit`. So, if we want to set 80% CPU utilization against the `limit` as the threshold for the HPA, the calculation would be as follows;

```text
HPA threshold = 79 (total cpu limit) * 0.8 (target %) / 34 (total cpu request)
              = 1.859 (about 186 % of total cpu request)
```

```yaml
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: example-hpa-cpu-metrics
  namespace: tats-autoscaling-test
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx-hello-world-as-demo
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 186
```

Run `oc create -f example-hello-world-hpa-demo-memory.yaml` to create an hpa object, and run `oc get hpa` to see it;

```console
$ oc get hpa
NAME                          REFERENCE                              TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
hello-world-as-demo-hpa-cpu   Deployment/nginx-hello-world-as-demo   72%/186%   1         10        9          2m
```

Note: You can deploy hpa using `oc autoscale` command, but on OUR OCP 4.8, it creates hpa object using `autoscaling/v1` API. If you want to use more metrics, `autoscaling/v2beta2` is a better choice. Therefore, the deployment method by yaml file is used here.

#### Step 7

Run a load test to generate a load that will trigger the HPA and increase the number of replicas to confirm everything works as expected

Use load test tool such as [K6](https://k6.io) or a custom script that runs your test, Try a test close to actual operation to see how the HPA adds/removes pods.

Note: HPA scales out pods in about 1 minute, but scale-down takes about 5 minutes per pod to smooth out the effects of rapidly fluctuating metric values, like below;

```console
$ oc describe hpa hello-world-as-demo-hpa-cpu
<...>
Events:
  Type    Reason             Age   From                       Message
  ----    ------             ----  ----                       -------
  Normal  SuccessfulRescale  35m   horizontal-pod-autoscaler  New size: 9; reason: All metrics below target
  Normal  SuccessfulRescale  31m   horizontal-pod-autoscaler  New size: 8; reason: All metrics below target
  Normal  SuccessfulRescale  27m   horizontal-pod-autoscaler  New size: 7; reason: All metrics below target
  Normal  SuccessfulRescale  23m   horizontal-pod-autoscaler  New size: 6; reason: All metrics below target
  Normal  SuccessfulRescale  18m   horizontal-pod-autoscaler  New size: 5; reason: All metrics below target
```

## References

- [AUTOSCALING - HPA and VPA ppt](https://advsolcan.sharepoint.com/:p:/r/sites/ManagedContainerServicesMCS/_layouts/15/Doc.aspx?sourcedoc=%7B25D8DD76-8672-4ED8-8379-DC3B0093A65F%7D&file=2022-xx-xx%20AUTOSCALING%20-%20HPA%20and%20VPA.pptx&action=edit&mobileredirect=true&cid=93ab4cf3-8fc6-4de6-8c81-8efc5f475efc)
- [Deliver presentation on HPA and VPA to PS Team#223](https://app.zenhub.com/workspaces/platform-experience-5bb7c5ab4b5806bc2beb9d15/issues/bcdevops/developer-experience/2235)
- [HorizontalPodAutoscaler Walkthrough](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/)
- [HPA - Algorithm details](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details)

-- End

Let's edit this as needed to fit into the Application Resource Tuning doc, @mtspn. We can use @tmorik as the SME for this content as needed.

Hey @mtspn sorry I didn't get to this yesterday. I am going to revert this merge as it will introduce some broken links the way it is now.

The new anchor tags that have been added can be excluded in favor of using the generated IDs from GitHub/Gatsby. The way they are written now will break the table of contents in Gatsby because of the leading # character in the name attribute of each link. I'll write a new commit for this now.
Several links in the new content are pointing to Markdown files that don't exist in this repo, so they 404.

I think we need to re-write this a bit so it fits with the rest of the article content as a set of "best practices" rather than a straight demo. Maybe the demo becomes its own document in this topic, and we just extract some best practices from it to keep in the "Application resource tuning" page? It also needs minor style changes like sentence casing vs title casing, all that stuff.
I'll restore the branch so we can work on it here rather than starting a new PR. No rush on this stuff, I think.

Okay, sounds good @ty2k, we'll keep this one as a work in progress.

It looks like we will need a new PR, there's no way to revert within an existing PR once it has been merged. I'll start that and reference this one.


Exposes EC classes to external packages

While we here at this subject, would anyone mind if I make a PR to make BitWriter.cs BitReader/BitWriter public?
I need BitWriter to retrieve the entropy back from a Mnemonic, and don't really want to use a copy.

@bazooka70 FastBitArray is public and could be useful.

I just learnt that FastBitArray exists lol.

I made this PR because the project says:

It relies on the BouncyCastle cryptography library instead of OpenSSL, yet replicates OpenSSL bugs to guarantee compatibility

So it means BouncyCastle has been modified to be Bitcoin-compatible. If this is true, using the "true" BouncyCastle wouldn't help?
As for the removal of .net461, it was only for local use. I wasn't able to build the project as I didn't have .NET Framework installed. I reverted the removal at a later commit. Anyway I know I shouldn't have included these changes here. If the exposure of EC classes is accepted. I'd close this one and make another PR without the removal and revert.
Great library!

So, @xJonathanLEI  it seems you want to contribute with the project, right? I think there are lots of meaningful to do. You could ask to the mantainer (@NicolasDorier) what would be the best place to start or you could complete the RPC client class (there are many missing rpc method to implement). More tests are always welcome in any project and are the best way to learn about the hard details, etc. Welcome!

@xJonathanLEI NBitcoin just copy/pasted BouncyCastle and stripped useless stuff. The reason is that the official package is not maintained very well on nuget and would prevent me from supporting the runtime I want without begging the maintainer.
 Will check this.

thing I am afraid is: If your project use Portable.BouncyCastle but I depends on BouncyCastle.NetCore then you'll get conflict all around the code by depending on NBitcoin. To prevent this, I just copied the code over.

So then maybe the solution for NBitcoin is have a conditional dependency? Then you would provide NBitcoin.Portable as the nuget package that depends on BouncyCastle.Portable instead of BouncyCastle.NetCore.
Anyway, Portable profiles are going away. If someone is having issues about using some library because he's linking to BouncyCastle.Portable, I think it's fine these days to tell him to switch from BouncyCastle.Portable to BouncyCastle.NetCore, as .NET Standard is "the future".

but BouncyCastle.Portable also support standard.


CHAPI with LCW

We have CHAPI working with LCW. We can get it working with the playground but the LCW doesn't show up in the wallet selection screen. It should be that once the LCW is registered in the browser (tested this only in iOS safari so far) when clicking on the download link from the claim page and after clicking next that the Learner Credential Wallet should be available.

Weirdly enough, I can't actually get CHAPI to work with native apps on my phone from vc playground, but from the claim page I actually can, at which point LCW just crashes when I select it! =(
We haven't set up CHAPI on native apps yet, so I don't really have experience with it just yet. Is it possible to get some debug information on the LCW side to see possibly what is being sent via CHAPI for native that it doesn't like?

Huh. Interesting! We just implemented it and have few places where we can try it. Will keep looking into it and catch up with you on it soon. This isn't urgent - the deeplink to the LCW works great.


Use traceback module instead of custom wrapper

Now that we're dropping Python < 3.6, we probably don't need the wrappers in werkzeug.debug.tbtools anymore. Investigate what we can replace with the built-in traceback module. It's unlikely we can remove everything, but from what I remember from implementing nested traceback handling, there is quite a lot of overlap.

I'm going to try my hand at this.


rpc.cjs , rpc.d.ts, rpc.js -> rpc.ts

In a  CRA5 app, using the latest version of IPFS (0.65) in (that uses js-libp2p-gossipsub 4.x) you will run into undefined behaviours when

import { RPC } from './message/rpc.js'

as it resolves the namespace RPC but not the RPC class (no namespace merging). This leads to RPC.encodeto fail in the sendRpc method.  Overriding babel with useNamespace does not fix the issue. I am not sure exactly what it is the issue, is but because rpc.cjs is a CommonJS module imported as an ESM module I think babel fails to compile the code correctly.

In this PR I use the RC 5.1.0  and replace  rpc.cjs,  rpc.d.ts, rpc.js with a single rpc.ts file that seems to fix the issue for me.

You might not want to merge this PR directly as it contains breaking changes for CJS and AMD.  Nevertheless I hope this will save other developers some time, running into the same issue (since they can temporarily patch their project with this build)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

FYI, https://github.com/facebook/create-react-app/issues/12700

You can use craco to fix the issue in your React app https://github.com/waku-org/js-waku-examples/blob/master/relay-reactjs-chat/craco.config.js

You can use craco to fix the issue in your React app https://github.com/waku-org/js-waku-examples/blob/master/relay-reactjs-chat/craco.config.js

Thank you for the input! Looks like that would solve this issue also (though still a hotfix in some sense).
In the long term, I am concerned that this is though something every frontend developer has to go through to be able to use the IPFS stack in a React app, and would be glad if the boiler plate environment  would use as less config specifications as possible.

In the long term, I am concerned that this is though something every frontend developer has to go through to be able to use the IPFS stack in a React app, and would be glad if the boiler plate environment would use as less config specifications as possible.

I agree with you. I believe the blocker is that ipfs/protons is not as performant as protobufjs.
Note for the developers: new hot typescript protobuf ESM library got released: https://buf.build/blog/protobuf-es-the-protocol-buffers-typescript-javascript-runtime-we-all-deserve

new hot typescript protobuf ESM library got released

Thanks for the heads up. We'll be benchmarking performance of the new library.
Ideally we can upstream any performance and security measures we currently use into an upstream protobuf library.

Note for the developers: new hot typescript protobuf ESM library got released: https://buf.build/blog/protobuf-es-the-protocol-buffers-typescript-javascript-runtime-we-all-deserve

Our needs are bounded by DOS protection here, as we need bounded list at decode time. That's a not specified feature for protobuf unfortunately.

Our needs are bounded by DOS protection here, as we need bounded list at decode time. That's a not specified feature for protobuf unfortunately.

I would hope there would be some upstream protobuf library that wants to be fast and also resilient against DoS attacks.
Definitely we would need feature completeness for our purposes before considering migrating to an upstream library.

Our needs are bounded by DOS protection here, as we need bounded list at decode time. That's a not specified feature for protobuf unfortunately.

do protobufjs and/or ipfs/protons fulfil this requirement already?

do protobufjs and/or ipfs/protons fulfil this requirement already?

No they don't. We've manually edited the generated code to limit the number of "repeated" fields to be read.

do protobufjs and/or ipfs/protons fulfil this requirement already?

No they don't. We've manually edited the generated code to limit the number of "repeated" fields to be read.

Would it make sense to state this requirement and see what the maintainers think?
https://github.com/bufbuild/protobuf-es/issues

do protobufjs and/or ipfs/protons fulfil this requirement already?

No they don't. We've manually edited the generated code to limit the number of "repeated" fields to be read.

Would it make sense to state this requirement and see what the maintainers think?
https://github.com/bufbuild/protobuf-es/issues

Opened issue https://github.com/bufbuild/protobuf-es/issues/299

Would it make sense to state this requirement and see what the maintainers think?

Will not be upstreamed https://github.com/bufbuild/protobuf-es/issues/299

new hot typescript protobuf ESM library got released

Thanks for the heads up. We'll be benchmarking performance of the new library.
Ideally we can upstream any performance and security measures we currently use into an upstream protobuf library.

If you look in the code, e.g. https://github.com/bufbuild/protobuf-es/blob/084c6e4f47b381ad55e030b667907395a779c938/packages/protobuf/src/binary-encoding.ts#L464
one can see that the project is not optimized for performance as for protobufjs. For example there is no abstraction over memory allocation so for node.js you will node take advantage of allocUnsafe. The library is not allocating all memory at once, but in chunks (which is slow). They use "DataView" which is slower than Uint8Array/Buffer usage where you modify bytes manually. I think encoding/decoding with protobuf-es will be 5x to 10x slower than protobufjs just by comparing the different ways they do encoding, decoding and allocations.
If you want to go into micro-optimizations you would want to do a protobufjs or protons rewrite that can deserialize from the Uint8ArrayList directly (And put the DOS protections in there aswell if that is needed)
If you want to be picky about performance one should also consider better benchmarks where V8 runtime optimization are not creating unwanted performance gains. Like this benchmark for this repo uses a Uint8array with 1024 0s as payload. For more realistic test that should be many random uint8arrays with different sizes that is created before the benchmark. Memory allocation is one of the slowest part of encoding. In the protons benchmark they use a static data, here, the same problem (at least it is created before the benchmark is starting). Additionally they use value checks in the benchmark inside the benchmark itself, which actually makes the benchmark hard to interpret. If the benchmark value check would constitute of 95% of the CPU time (who knows?), then all libs will look just as good.

FYI, facebook/create-react-app#12700

I had this issue and added manually |cjs to all places where it looked like  test: /\.(js|cjs|mjs|jsx|ts|tsx)$/,
in my webpack.config. thanks!

@marcus-pousette If you want to be picky about performance one should also consider better benchmarks where V8 runtime optimization are not creating unwanted performance gains.

There's definitely some gains to be made, but my main concern is security; specifically to bound lists

I believe this issue has been resolved, as well as several of the other points brought up

we now use upstream protons library
the codegen produces a rpc.ts
protons supports codegen-time and runtime limits for all repeated fields


Package Manager should map content folder to project root on non-Duality packages

Using my plugin as an example: it depends on IronPython.StdLib, which extracts a Lib/ folder to the project root according to NuGet (target="content/Lib").
The issue here is that Duality maps all content inside content to the Data folder, which may not be desired for non-Duality packages (user would have access to package-related stuff inside Duality. Instead, Duality should just map content to the project root if the package is not related to Duality.

Thanks! This should be a comparatively small change, somewhere around here. The binary base directory is already remapped depending on whether or not it is a Duality or plugin package - should be sufficient to do the same for the content base directory.


Unexpected keyword argument for parameter in path/url for patch request

Description
When you have both URL parameters and body parameters, connexion throws an error that the URL parameter is an unexpected keyword argument.
Expected behaviour
In my yml file below, I defined a parameter in the path/URL (i.e. organizationEmail) and I define the requestBody (i.e. ParticipantComplete schema which is a dict with keys: publicKey and revHash). Connexion should not be throwing an error.
Actual behaviour
/connexion/decorators/parameter.py:126: TypeError
v2_complete_participant() got an unexpected keyword argument 'organizationEmail'

Steps to reproduce
Create the openapi spec as defined below and make a call to the endpoint.
Additional info:
api.yml
openapi: '3.0.2'
paths:
  /v2/participants/{organizationEmail}:
    patch:
      x-openapi-router-controller: app.controllers.v2.participants
      operationId: v2_complete_participant
      summary: complete onboarding
      security:
        - JWTAuth: []
      parameters:
        - name: organizationEmail
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/Email'
      requestBody:
        $ref: '#/components/requestBodies/ParticipantComplete'
      responses:
        201:
          $ref: '#/components/responses/ParticipantCompleted'
        default:
          $ref: '#/components/responses/Error'

test_controller.py
    def test_v2_complete_participant_success(self):
        request_body = {'publicKey': 'publicKey', 'revHash': 'revHash'}
        response = self.client.patch(
<EMAIL_ADDRESS>            data=json.dumps(request_body),
            headers=prepare_headers(None),
            content_type='application/json',
        )
        self.assertEqual(response.status_code, HTTPStatus.CREATED)

controller.py
def v2_complete_participant(body: Dict) -> Tuple[None, HTTPStatus]:

    return None, HTTPStatus.CREATED

Output of the commands:

python --version
Python 3.6.8
pip show connexion | grep "^Version\:"
Version: 2.2.0

Implementation error on my end.


WIP: Rails 5 Deprecation Warnings

When I upgraded our local ruby users group web site, I am going these warnings:
 * (twice) DEPRECATION WARNING: prepend_before_filter is deprecated and will be
removed in Rails 5.1. Use prepend_before_action instead. (called from block in
 <module:RailsFootnotesExtension> at<EMAIL_ADDRESS>gems/rails-footnotes-0ab80d07b071/lib/rails-footnotes/extension.rb:9)

 * (twice) DEPRECATION WARNING: after_filter is deprecated and will be removed in
Rails 5.1. Use after_action instead. (called from block in <module:RailsFootnotesExtension>
at<EMAIL_ADDRESS>lib/rails-footnotes/extension.rb:10)

This could be the start on getting ready for Rails 5.

Thanks.
This ones look easy to fix. Do you want to submit a pull request?
Otherwise I'll handle it soon.
On Wed, Sep 16, 2015, 19:25 Al Snow<EMAIL_ADDRESS>wrote:

When I upgraded our local ruby users group web site, I am going these
warnings:

(twice) DEPRECATION WARNING: prepend_before_filter is deprecated and will be
removed in Rails 5.1. Use prepend_before_action instead. (called from block in
module:RailsFootnotesExtension at<EMAIL_ADDRESS>gems/rails-footnotes-0ab80d07b071/lib/rails-footnotes/extension.rb:9)

(twice) DEPRECATION WARNING: after_filter is deprecated and will be removed in
Rails 5.1. Use after_action instead. (called from block in module:RailsFootnotesExtension
at<EMAIL_ADDRESS>lib/rails-footnotes/extension.rb:10)

This could be the start on getting ready for Rails 5.
—
Reply to this email directly or view it on GitHub
https://github.com/josevalim/rails-footnotes/issues/132.

Ok I removed those particular warnings.
Testing against rails 5 is a pain at the moment because they are pointing on gems that are unreleased and changing very soon, IMO this is unproductive to worry about rails 5 until they release an alpha version as usual


CLI: support CLI plugins

add ability to support user-space CLI extensions.
this is so if a blog wants to add a deploy-rsync or deploy-github-pages CLI plug-in all they have to do is
npm install --save yarn-cli-deploy-rsync
yarn deploy:rsync -- args

Not sure this is a good idea anymore. Might be better to just have a Recipe's documentation page that shows common ways to implement some of these ideas.


Create CI and docker image

A biotrainer docker image should be released with every new version. For this, we need a CI to run on every merged PR to the main branch.
Steps for Dockerfile:

Update Ubuntu Version
Update Cuda Version
Remove dependency on bio_embeddings (maybe add example in examples directory how to build on the Docker image)

Done in version 0.4.0


add customText to validationRule

Hi,
I need to i18n messages returned by your validationRules. Until now, I redeclared custom rule on my own code but I think it could be better to have an option to do it directly.
What do you think of my proposition ?
Thanks for your work ! Really helpful !

Thanks very much @MystereJack!
I should have implemented this from the start!

Hey @MystereJack , just uploaded the 2.0.0 version with your contribution.
Thank you very much!

Thanks @rodrigobastosv, I really appreciate it!