Align mouse/touch events over all platforms and use shared code where possible

Use more shared code in handling touch and mouse
Currently all platforms have different implementations, which are also very different in nature. What we are looking for is a way to map the platform specific events to a platform neutral event handler. Which events should that be? Do we deal with touch and mouse events separately, or can we use the pointer event (applies to both touch and mouse). How about pinch zoom? Are all version available on all platforms? To make a start I went through all MapControl to register the events that are currently used.
What is used right now?
We have nine different platforms. WinUI and Uno have shared code, so eight MapControls to go through.
Android

👇Touch
👇GestureDetector.SingleTapConfirmed
👇GestureDetector.DoubleTap
👇MapControlGestureListener.Fling;

Avalonia
In Avalonia Pointer events are individual fingers or the mouse. We have to track the number of fingers

🖱👇PointerPressed
🖱👇PointerReleased
🖱👇PointerMoved
🖱👇PointerExited
🖱👇PointerCaptureLost
🖱👇PointerWheelChanged
🖱👇DoubleTapped

Blazor

🖱OnMouseWheel
? OnDblClick
🖱👇OnPointerDown
🖱👇OnPointerUp
🖱OnMouseMove
👇OnTouchStart
👇OnTouchMove
👇OnTouchEnd

Eto

🖱OnMouseDown
🖱OnMouseUp
🖱OnMouseMove

iOS

👇UITapGestureRecognizer.OnDoubleTapped
👇UITapGestureRecognizer.OnSingleTapped
👇TouchesBegan
👇TouchesMoved
👇TouchesEnded

MAUI

🖱👇SKGLView.Touch or SKCanvasView.Touch

The touch events have all kinds of touch types.

Entered
Pressed
Moved
Released
Cancelled
Exited
WheelChanged

We determine which events this triggers, even LongPress and DoubleTapped.
To calculate Fling the Mapsui.FlingTracker is used.
WinUI / Uno

👇ManipulationStarted
👇ManipulationDelta
👇ManipulationCompleted
👇ManipulationInertiaStarting
🖱👇Tapped
🖱👇PointerPressed
🖱👇DoubleTapped
🖱👇PointerMoved
🖱👇PointerWheelChanged

WPF

🖱MouseLeftButtonDown
🖱MouseLeftButtonUp
🖱MouseMove
🖱MouseLeave
🖱MouseWheel
👇TouchUp
👇ManipulationStarted
👇ManipulationDelta
👇ManipulationCompleted
👇ManipulationInertiaStarting

To calculate Fling the Mapsui.FlingTracker is used

That is really difficult. To find a least common level is hard. And sometimes the framework has even more possibilities.
Perhaps we should first discuss, what the map need as basic events. Then check, what each platform provides and implement the connection between both.

When I look through the events we have, then only Down/Move/Up exists on each platform. And even for Move it isn't clear, if it is only a Down-Move or also a Hover (which doesn't exists on touch platforms).
If you want to handle the events in the shared code, then you must make all the events (click/tap, double-click/tap and so on) by yourself in the shared code. Could be, that they not react like the native events. In the other way, you have to catch the events of the native platform in the native part of MapControl and connect them with the Mapsui function. I assume, that all possible reactions are already existing in Mapsui.
And some of the events are provided by SkiaSharp.

@charlenni I am now in the phase where I am investigating the problem. Many options are open. By posting this issue I am also trying to explain the way I am thinking so that I can take others along in my thoughts.
Perhaps the first thing I should have mentioned is the underlying goal, which is to have a code base which is easy to maintain. I want to spend less time fixing bugs and it should be easy to add new functionality. To make it easier to maintain I want to have less code, more shared code, consistent implementations and clear responsibilities.

That is really difficult.

The mapping of platform specific events to platform independent events is something we are already doing for the widgets. We are even using double click and the shift key modifier. It is, however, not implemented on all platforms and not working correctly om some platforms. For instance, in current main the 'Editing' 'Editing Add Line' sample works different for Avalonia and WPF. This is because some of the events listed above overlap. So, a DoubleTapped is triggered while there is also a PointerUp.
So, since we are already doing this kind of mapping we need to clean it up and make sure that what we have is correct.
btw, in analyzing this we should also have clear what the use cases are. One thing to note is that support for widgets and support for app builders are different categories.

To find a least common level is hard.

This is the kind of thing I am investigating in this issue. I am looking in both directions, what do we need or want (the listing above is related to that), and what do the platforms provide (this is something I have not fully clear yet).

And sometimes the framework has even more possibilities.

If a platform has some advanced functionality not supported by the others then I would like to stay away from it. App builders on that platform would still be able to listen to those events and I want to make it possible to get MapInfo through extension methods on that platform. So, now we pass MapInfo in our events, instead the users could request MapInfo without the platform specific event.

When I look through the events we have, then only Down/Move/Up exists on each platform. And even for Move it isn't clear, if it is only a Down-Move or also a Hover (which doesn't exists on touch platforms).

The listing above is what we are currently using on those platforms. I did not fully investigate what is supported on all platforms, but this is the kind of research that should be part of this issue. So far I just looked at what we are using. From what I saw yesterday it looked like all platforms had some support for DoubleTapped. This is one of the decisions to take. Perhaps our widgets should not have a double tap.

And some of the events are provided by SkiaSharp.

Yes, that is something that I wanted to make clear with the listing. I knew it was used in MAUI, but it seems it is only used in MAUI. Also, MAUI uses nothing but SkiaSharp events. When aligning things with other MapControls it would make sense to use MAUI events in MAUI. Then again, it is also an option to use SkiaSharp events everywhere, there would be more shared code. Since I have also seen some bugs in the SkiaSharp touch handling I doubt if this is the best solution. Perhaps we could even provide both, so SkiaSharp touch handling would be an alternative touch handler for all platforms.

Perhaps it would be also helpful to look what other map library provide. I always look, what Google Maps does, because that's what users expect.
I assume, that Mapsui could handle all the things, that are possible and expected on all platforms. But each platform expects it in a slightly different way. So I'm not sure, if you could reduce the size of code used by platform and increase the shared part.
The next thing is, that you should have an expert on each platform. When I look into the code of SkiaSharp I found, that with each new platform, the handling is reduced, because on the new platform hasn't some of the events. It seems, that platform independence has its own limitations. Much work for a suboptimal result.

Perhaps it would be also helpful to look what other map library provide. I always look, what Google Maps does, because that's what users expect.

Yes, that is something I can not find enough time for. I worked with several in the past, but that was long ago. I've looked into Leaflet somewhat recently and that was very useful. We should do that more.

The next thing is, that you should have an expert on each platform. When I look into the code of SkiaSharp I found, that with each new platform, the handling is reduced, because on the new platform hasn't some of the events. It seems, that platform independence has its own limitations. Much work for a suboptimal result.

'Much work'? Much work is spending three long days stepping through unintelligible code to figure out why widget handling is not working. While I wrote the Blazor touch handling in three hours. This issue is all about less work.

I tried today to get a first overview over this problem. I found, that it will not be possible to make this easily. Perhaps it is easier to provide functions for things, that you would like to use with a map:

Pan
Pinch
Fling
Zoom in
Zoom out
Select something (point, widget and so on)
Drag
Drop

These actions are connected on the different platforms with different events

On a keyboard/mouse device a pan is started by a pointer down, on a mobile device with a touch
On a keyboard/mouse device a zoom in is done by a mouse wheel operation or a double click, on a mobile device by a pinch gesture
On a keyboard/mouse device a drag is started by a mouse hold down, on a mobile device perhaps by a long click

And then there are MapControls that are running on a keyboard/mouse or a touch platform.
Would it be a good idea to implement for the different things you could do with a map functions in the shared MapControl and then select this functions by platform specific events?

Single tap
Double tap
Long tap
and so on

There are two kind of events we need to think about.

Map specific Events on the MapControl. The current Info event is such an event (I want to rename it to MapInfo because that is more distinctive). It is an event similar to what users know from their UI framework but with MapInfo added. There are two routes to go. 1) Provide a number of events similar to the existing events but with MapInfo. 2) Provide extension methods to the existing events to fetch MapInfo. I currently think that last option is the best, but I have to see how it works out when working on the code.

The manipulation of the widgets. We have an implementation for this but it is not always correct. And for editing we do not have mobile support yet. So, some work to do. This is what I will investigate first. I may want to use platform specific SingleTap/DoubleTap and call our shared events from that. I think this is what you were suggesting in you last remark


Fully move from pipenv to poetry

Once we are confident poetry meets all the project needs.

Done in 1f672e2ae5cc504ebb47925d4afec7bcc7c54d3b.


Metadata issue with the CUDA repositories [CDN]

Reporting metadata issues with the CUDA repositories
Getting "File has unexpected size" issues when running apt update. This seems to be a known issue to NVIDIA CDNs, as NVIDIA mentions it here.
docker run -it nvidia/cuda:11.4.0-cudnn8-runtime-ubuntu18.04 bash
root@c1c86c02a768:/# apt update
Get:1 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease [1581 B]
Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:4 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Packages [814 kB]
Err:4 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Packages
  File has unexpected size (815853 != 814314). Mirror sync in progress? [IP: <IP_ADDRESS> 443]
  Hashes of expected file:
   - Filesize:814314 [weak]
   - SHA256:257071ac3a46f8e8ba340c2bd6b88466ff26e4cb0c4b60afacfb267b251dc2d9
   - SHA1:4b2ecd5529c611f17784b07ed4cb2b13d5d4bd25 [weak]
   - MD5Sum:0355ef69bc6b6afaf8493d82295c3633 [weak]
  Release file created at: Mon, 11 Jul 2022 19:02:21 +0000

... (omitting successful fetches from other package index endpoints)

Fetched 25.6 MB in 3s (7382 kB/s)
Reading package lists... Done
E: Failed to fetch https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/Packages.gz  File has unexpected size (815853 != 814314). Mirror sync in progress? [IP: <IP_ADDRESS> 443]
   Hashes of expected file:
    - Filesize:814314 [weak]
    - SHA256:257071ac3a46f8e8ba340c2bd6b88466ff26e4cb0c4b60afacfb267b251dc2d9
    - SHA1:4b2ecd5529c611f17784b07ed4cb2b13d5d4bd25 [weak]
    - MD5Sum:0355ef69bc6b6afaf8493d82295c3633 [weak]
   Release file created at: Mon, 11 Jul 2022 19:02:21 +0000
E: Some index files failed to download. They have been ignored, or old ones used instead.

Please provide the following information in your comment:

When was the Release (Debian) or repomd.xml (RPM) file last modified ?
root@c1c86c02a768:/# curl -I https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/Release
HTTP/2 200
accept-ranges: bytes
age: 15211
cache-control: max-age=604800
content-type: application/octet-stream
date: Tue, 12 Jul 2022 03:58:42 GMT
etag: "64257053"
expires: Tue, 19 Jul 2022 03:58:42 GMT
last-modified: Mon, 11 Jul 2022 23:01:57 GMT
server: ECAcc (sed/E12B)
x-cache: HIT
x-vdms-version: 3.0
content-length: 696

The Linux distro and architecture. If cross-compiling or containerized, please mention that.
This is occurring within the latest Docker image nvidia/cuda:11.4.0-cudnn8-runtime-ubuntu18.04.
  root@c1c86c02a768:/# cat /etc/os-release
  NAME="Ubuntu"
  VERSION="18.04.6 LTS (Bionic Beaver)"
  ID=ubuntu
  ID_LIKE=debian
  PRETTY_NAME="Ubuntu 18.04.6 LTS"
  VERSION_ID="18.04"
  HOME_URL="https://www.ubuntu.com/"
  SUPPORT_URL="https://help.ubuntu.com/"
  BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
  PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
  VERSION_CODENAME=bionic
  UBUNTU_CODENAME=bionic
  root@c1c86c02a768:/# uname -a
  Linux c1c86c02a768 4.15.0-187-generic #198-Ubuntu SMP Tue Jun 14 03:23:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Which NVIDIA repositories do you have enabled ?
Do your .list / .repo files contain URLs using HTTP (port 80) or HTTPS (port 443) ?
root@c1c86c02a768:/etc/apt# cat sources.list.d/cuda.list
deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /

Which geographic region is the machine located in ?
Seattle area

Which CDN edge node are you hitting ?
Not sure :/

Any other relevant environmental conditions (i.e. a specific Docker container image) ?
nvidia/cuda:11.4.0-cudnn8-runtime-ubuntu18.04

Hi @justinokamoto and @Angel-Popa
I am investigating this now.

I rolled back the repository metadata from the last posting, the signatures (i.e. Release.gpg, InRelease) failed to upload. Checked now apt-get update  and installation of packages is functional.
I have scheduled a re-posting job to run in a few hours and will verify the intermittent issue is resolved. I'll close the issue pending that verification for all affected repos.
Please let me know if you continue to see any errors, thank you!

The metadata for each repo passes repo-validate.sh and manual testing, closing.

The new release file seems to be error-ing for us:
 E: Failed to fetch https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/Packages.gz  Hash Sum mismatch    Hashes of expected file:     - Filesize:815853 [weak]     - SHA256:66e891d82894f08ecedac13c4e058ce5ea21882032c66a5b4d981cc2552f94a1     - SHA1:7cc76dbdc9d32d50cf5a1d377c8c877bcef23dcd [weak]     - MD5Sum:dc953e306c3b53f23ccdbe433881a800 [weak]    Hashes of received file:     - SHA256:989834105adeb2987d44b3da1cf0bd621e4a86a260f5790dd2f865105d231efe     - SHA1:da0b54ecbb7f3dd76602bef508e9a8df901d1cd2 [weak]     - MD5Sum:aa04b5a6fb8ceb8c4c0676ce2c144903 [weak]     - Filesize:815853 [weak]    Last modification reported: Mon, 11 Jul 2022 23:01:57 +0000    Release file created at: Tue, 12 Jul 2022 15:01:44 +0000 E: Some index files failed to download. They have been ignored, or old ones used instead.
did something go amiss in fixing this issue?
I see few other mentions of things going wrong else where too:

https://github.com/deepmind/alphafold/issues/535
https://forums.developer.nvidia.com/t/hash-sum-mismatch-from-apt-get-update-in-cuda-images/220686

Re-opening, there are several reports in the NVIDIA Developer forums

Did this get fixed? sudo apt update runs without errors now on our end.

any update on this? Still getting the error

Getting the same thing. Have tried everything and no luck.

Sorry I missed the email notification @xmalina-aibuild / @xmalina, @Nrohlable
I'm not able to reproduce the mismatch.
Based on the timestamp and the RUN commands, I'm guessing you are using a Dockerfile FROM: an image that has not been updated in some time?
$ podman run -it ubuntu:20.04 /bin/bash -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y wget sudo ca-certificates gnupg; bash"
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb
$ sudo apt-get update

$ apt-cache policy libcudnn8
libcudnn8:
  Installed: (none)
  Candidate: <IP_ADDRESS>-1+cuda11.7
  Version table:
     <IP_ADDRESS>-1+cuda11.7 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
     <IP_ADDRESS>-1+cuda11.6 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
     <IP_ADDRESS>-1+cuda11.6 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
     <IP_ADDRESS>-1+cuda11.5 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages

$ sudo apt-get install --verbose-versions libcudnn8=<IP_ADDRESS>-1+cuda11.5
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
   libcudnn8 (<IP_ADDRESS>-1+cuda11.5)
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 423 MB of archives.
After this operation, 1270 MB of additional disk space will be used.
Get:1 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64
  libcudnn8 <IP_ADDRESS>-1+cuda11.5 [423 MB]
Fetched 423 MB in 5s (91.9 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libcudnn8.
(Reading database ... 4885 files and directories currently installed.)
Preparing to unpack .../libcudnn8_<IP_ADDRESS>-1+cuda11.5_amd64.deb ...
Unpacking libcudnn8 (<IP_ADDRESS>-1+cuda11.5) ...
Setting up libcudnn8 (<IP_ADDRESS>-1+cuda11.5) ...

Hey @kmittman, sorry for the delayed response.
I'm using the Dockerhub Image tag corresponding to tensorflow/tensorflow:2.8.0-gpu and creating a image for Computer vision application and training. I was able to update the cuda version from 11.2 to 11.7  as you see from here:
(Reading database ... 19687 files and directories currently installed.)
Preparing to unpack .../libcudnn8_<IP_ADDRESS>-1+cuda11.7_amd64.deb ...
Unpacking libcudnn8 (<IP_ADDRESS>-1+cuda11.7) over (<IP_ADDRESS>-1+cuda11.2) ...
Setting up libcudnn8 (<IP_ADDRESS>-1+cuda11.7) ...
But at the runtime training when I checked tensorflow was still running on cuda 11.2, where I'm receiving this error:
Node: 'model/conv2d/Conv2D'
DNN library is not found.
[[{{node model/conv2d/Conv2D}}]] [Op:__inference_predict_function_841]
This seems to be a gpu issue since, the training appears to be running just fine on CPU tho.
Note: The error is poping up while using MTCNN lib for face detection which i'm using just for inference.

Hi @Nrohlable
The output you shared indicates that you installed cuDNN <IP_ADDRESS> compiled for CUDA 11.7.x, not that the CUDA 11.7 toolkit is actually installed.
Looking at the Tensorflow 2.8.0-gpu docker image tag you mentioned, it was last updated 8 months ago, on February 2nd.
However, we performed a GPG key rotation to a new public key on ~ April 28th. All of the packages in the NVIDIA repository, including CUDA 11.2 packages were re-signed using the new GPG key.
The apt package manager requires the public key to be enrolled in the environment, one method is to install the cuda-keyring package, another method would be to fetch the pubkey with apt-key (deprecated), or could wget && mv the keyring file.
My suggestion would be one of the following

(a.) perform a workaround to update the GPG key manually
(b.) use an updated Docker image tag (i.e. 2.8.1-gpu)
(c.) contact the maintainer of the Dockerfile to rebuild the 2.8.0-gpu tag, see: https://github.com/tensorflow/tensorflow/issues/56085

Hi @kmittman,
2.8.1-gpu tensorflow image is working fine without any issues in my case.
Thanks for your help, really appreciate it

Hey @kmittman,
I hope you could help me with this as well.
I'm training my Siamese Network for Face verification using TensorFlow, below are the time it is taking for training for comparison with CPU and GPU:
Siamese on CPU : 18/899 [..............................] - ETA: 4:41:43 - loss: 0.8343
Siamese on GPU: 18/899 [..............................] - ETA: 4:52:04 - loss: 0.9894
It seems both of them take exactly similar time, which shouldn't be the case.
Below i'm also attaching CPU and GPU details:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation:<PHONE_NUMBER>020902295
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit:<PHONE_NUMBER>0
locality {
bus_id: 1
links {
}
}
incarnation:<PHONE_NUMBER>198683813
physical_device_desc: "device: 0, name: Tesla T4, pci bus id: 0000:00:1e.0, compute capability: 7.5"
xla_global_id: 416903419
]
These are following commands i'm running at the training time in order to make sure it is working on GPU:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
print(tf.config.list_physical_devices('GPU'))
tf.debugging.set_log_device_placement(True)
As disccused earlier i'm using Tensorflow-2.8.1-gpu for training it on GPU.
Am i doing anything wrong here or do I need to run some other commands as well in order to fix this ?

Closing this repository issue. Please follow up with Tensorflow team.


Splitting up the repository

The functions of the repo are to be divided into their components in dedicated repositories to further increase maintenance. The relevant functions are

the Docker Container
the framework
the Hooks

to consider.

Repository was split up into: genvoy, genvoy-teams, genvoy-backup, genvoy-clone, genvoy-email (so far)


Extract_cluster from DeepCluster_V2 pretrained model

Hello @QuentinDuval and @prigoyal
I was wondering whether I can use the extract_cluster from configs/config/extract_cluster/swav/visualise_swav_resnet_in1k_8gpu.yaml for deep_clusterV2  pretrained model?
I tried with one of the basic changes with the head configuration i.e. I tried the one which I used in my pretraining-
HEAD:
   PARAMS: [
     ["mlp", {"dims": [2048, 2048], "use_relu": True, "skip_last_layer_relu_bn": False}],
     ["mlp", {"dims": [2048, 128]}],
   ]

But it came up with the error -

File "/p/project/deepacf/kiste/DC/vissl/vissl/trainer/trainer_main.py", line 514, in extract_clusters
assert self.task.base_model.is_clustering_model(), error_message
AssertionError: Extracting clusters is only available for pre-training methods based on clusters

My understanding -
I looked at the code from trainer_main.py and the function def extract_clusters(self),  here it is mentioned -
extract multi-GPU cluster extraction for pre-trained models based on clusterization (SwAV, DeepCluster, etc.)
But I also went to function **def is_clustering_model** (used for asserting the base model line 514 in def extract_clusters) where it is written -
- only supported for SWAV currently (This contradicts the above)
I think extract_cluster is not yet ready for deepcluster_v2. Can somehow we do it??

Hi @DC95,
Indeed, the extract cluster is for the moment only working for SwAV and the message is a bit misleading.
I think we can schedule an enhancement on our side to improve this and support DeepClusterV2 in addition to SwAV (@prigoyal what do you think?)?
Or if you feel comfortable trying to contribute it (it seems you went through some of the code already), give it a go and open a PR with it: we will very much welcome your help :)

Dear @QuentinDuval and @prigoyal
I have not done this before :) but I will give it a go. I will definitely need your support.
Regards,
DC

Dear @QuentinDuval
From today, I have started to look deeper into the codes and management of VISSL. But I see that you have self-assigned it yourself.
Of course, you are the best person to do this job. But If I can help you in any way, I will be glad to.
In my Ph.D. research, I am using the DC_v2 model for assessing satellite images. Therefore I am keenly interested in this development.
Regards,
DC

Dear @QuentinDuval
From today, I have started to look deeper into the codes and management of VISSL. But I see that you have self-assigned it yourself.
Of course, you are the best person to do this job. But If I can help you in any way, I will be glad to.
In my Ph.D. research, I am using the DC_v2 model for assessing satellite images. Therefore I am keenly interested in this development.
Regards,
DC

Hi @DC95,
Of course, please go ahead :) I assigned it to you. We would be super glad to get your contribution!
I very am sorry for the confusion (what I did is assigned it to myself temporarily, mostly because we wanted to sort out the issues and get rid of those that are "unassigned"). Sorry for that !
Please go ahead with your proposal, I would be glad to review your PR :)

Dear @QuentinDuval
I managed to submit a PR.
I think there was one main shortcoming in this process -

To take care of multi heads for the multi clustering in DC_V2

I don't know how much I have succeeded in this pr. I can definitely say It's not correct as in my case; I am giving multi clustering of num_clusters - [10,10,10]
But then, in the final results, the no of clusters is extending 10 (up to some random 108 clusters).
Regards,
DC

Dear @QuentinDuval
If you may suggest any comments or improvements that you would like in this PR.
Kindly mention so that I can work specifically in that direction.
regards,
DC


sleep length must be non-negative (instant messaging not working)

Description
When using instant messaging the script is crashing when you don't set wait_time and set tab_close to True
To Reproduce
pywhatkit.sendwhatmsg_instantly('+1*********', 'test', True, 7)
Screenshots
  File "D:\Python310\lib\site-packages\pywhatkit\whats.py", line 31, in sendwhatmsg_instantly
    time.sleep(wait_time - 4)
ValueError: sleep length must be non-negative

Version Information

OS: Windows 10
Browser: Google Chrome
Python:3.10.7
PyWhatKit: 5.3 (Stable)

If you wont set wait_time the default value (15) will be taken. But you have made error in positioning your arguments. You have to set wait_time after the message you wish to send but you have set it to True which is the value for tab_close argument instead of an integer.
The call should be:
sendwhatmsg_instantly(phone_no, message, wait_time, tab_close, close_time)


Added basic custom matrix input

I needed to visualize some other transformations so I added support for applying a custom matrix.
The UI is not pretty but functional.

Thank you very much for taking care of this. I have slightly adjusted the GUI to look nicer. And opened a new branch "matrix_input". I will merge this shortly. I am still seeing one bug that the arrow tail disappears if U is not unitary. Initially, my goal was to use the SVD to find the closest unitary. However, it turns out math.js has no svd implemented.


revoked.badssl.com

https://test-sspev.verisign.com:2443/

Regarding https://github.com/lgarron/badssl.com/issues/120 I concur that having a revoked subdomain would be useful

https://revoked.badssl.com/ is live.
Requesting revocation right now. Revocation should be safe for CRLSets, since the new cert has a new key, and therefore a unique SPKI.

Success!

Brilliant choice of browsers, I might add.

Here's the whole lot. ;-)

(Edge screenshot via Kyle Pflug on Twitter.)

Weird that Chrome still displays it, even knowing that the certificate is revoked.

Weird that Chrome still displays it, even knowing that the certificate is revoked.

Old OSX bug. That's what we get for trying to use native idioms and UI where possible. :-/


readd NODE_ENV=dev instructions

The instructions that explain how to build the SAFE Browser for mock-routing were removed in this commit.
I think it could be good to readd them 🙂

Thanks for catching this @frabrunelle


[NEW ALGORITHM] Check whether a number is odd or even using bit manipulation

Description:
Please provide a detailed description of the algorithm you are proposing.
Using bit manipulation we can check whether a number is odd or even
Checklist:

[ X] Contributor in GSSoC-ext
[ X] Want to work on it

Additional Information:
Provide any other relevant information or resources regarding the algorithm.

Please assign this issue to me.


CWE-476: Bump gopkg.in/yaml.v3

What this PR does / why we need it:
CWE-476, CWE-400
https://security.snyk.io/vuln/SNYK-GOLANG-GOPKGINYAMLV3-2952714
https://security.snyk.io/vuln/SNYK-GOLANG-GOPKGINYAMLV3-2841557
Special notes for your reviewer:
Release note:

None

failurs were ovs mirror failures
but pushed code clean up that isnt related to it

/lgtm
/approve


Redirected http://<IP_ADDRESS> to https://jsbin.com

*.jsbin.com hosed under <IP_ADDRESS>. Still it mustn't be accessible trough IP, is also security issue.

I don't follow. What are you seeing?

@remy, here what I see

Instead I would expect it redirect to jsbin.com or don't respond anything at all.
Perhaps use also CloudFlare to hide you server origin IP.


Refactor provisioning workflow to support other sources

This PR is refactoring the provisioning workflow to make it easier to add support for provisioning from arbitrary source types.
This is part of the work that was in https://github.com/ManageIQ/manageiq/pull/11691, split up at the request of @gmcculloug and @bdunne

I'm not sure what to say about the source_type stuff. There's a source relation on the request object, but the subclasses break the relationship by overloading it with their own getters and setters that assume it's always going to be VmOrTemplate instead of polymorphic. I had to work around that.

Hi @bdunne, do my replies to your review comments make sense?

Hi @mansam, I understand, but I'm tempted to fix the source relation rather than adding more complexity and confusion.


About the experimental results

The output of the experimental results is the section diagram of SPET in the first place and the section diagram of EPET in the second place. However, I can't find what EPET refers to from the paper. I would be very grateful if you could give me an answer.

Maybe EPET is estimated PET. This is a placeholder name in the code used to store the final result of our model, unrelated to the paper.

Thank you very much for your timely answer, and I have one more question. After visualizing the experimental results, I found that the experimental results labeled SPET were not the standard dose PET images I imagined, but more like the predicted residual after IRM processing. I don't know if this is a problem in my debugging process.

You can see here for more details. out_dict['IP'] is CPM result, out_dict['SR'] is IRM result, out_dict['INF'] is input low dose pet, out_dict['HR'] is standard dose pet.
I think you visualize this as SPET. This row is indeed the result of the residual prediction which is the result of our IRM prediction


Custom follow-ups and error flows

As an editor (of the standards)
I want to write custom follow-up questions for some, but not all, essential criteria,
So that I can better guide reviewer decision-making.
For example, if a reviewer clicks 'no' to "discusses implications of the results", right now the system asks "is this deviation reasonable," but I would like it to display a text box where the reviewer can list important limitations that are missing or explain why the limitations listed are incorrect. This is just an example. What I'm after is a simple way of specifying these follow up questions (e.g., in mardown files) without hardcoding them in javascript.

@Terry-One Has implemented this for the one-stage checklist but not the two-stage checklist.


example.streambook.py does not update automatically when example.py is saved

After running python -m streambook example.py, example.streambook.py does not auto update, and thus the streamlit app does not update. If I run the command again, the file will update, but example.py doesn't seem to be "watched" for future updates.
I'm on Windows

Hmm, the tool I am using (watchdog) seems to be the issue. I will see if I can get it to work on windows.
If you have any ideas feel free to send a patch.
The code is here, it is really short https://github.com/srush/streambook/blob/main/streambook/main.py

Same for me on MacOS, it doesn't autoupdate on save

Okay apparently the issue is that Mac OS can only monitor the directory (not files). I pushed a fix.
I don't have a mac or windows box to test though. So let me know if the latest works better.

Apologies for the delay! This is working for me now, thanks so much @srush !!


chore(electric): Add server-side validation of row values incoming from Satellite clients

Closes VAX-813.

@magnetised Great feedback! I've implemented your suggestions.

@magnetised

in fact, should this validation step raise at all? don't we want to feed back to the client rather than crash the process?

The validation is initiated via the call to Serialization.deserialize_trans() from Electric.Satellite.Protocol. The call is wrapped in a try block there, so any exception is transformed into an INVALID_REQUEST response to the client. No processes crash as a result of this.
On the server, we do get the exception logged with all the details. In the example with int2, the log entry is pretty clear about which function clause failed to match (that one that has :int2 as the second argument).
As for the client, we don't have a proper mechanism for reporting such critical errors to the user. From the perspective of the client app, it did its write locally and moved on. It doesn't track how this write is then synced to the server in background and results in an error response from the server. We want to avoid having this is a valid error state in practice because once a local write has succeeded, it should eventually get synced to the server.
What I think would be useful to add eventually is a way to report validation faliures to the app developer.

On the server, we do get the exception logged with all the details. In the example with int2, the log entry is pretty clear about which function clause failed to match (that one that has :int2 as the second argument).

ok, seems vaguely irresponsible but ok... ;)

As for the client, we don't have a proper mechanism for reporting such critical errors to the user. From the perspective of the client app, it did its write locally and moved on. It doesn't track how this write is then synced to the server in background and results in an error response from the server. We want to avoid having this is a valid error state in practice because once a local write has succeeded, it should eventually get synced to the server.

that's a much bigger fish. gotcha


[Run][New Plugin] Allow to terminate the selected running process

📝 'Ctrl + Enter' to terminate the selected running process
After listing the running processes, and pressing 'Ctrl + Enter' would terminate the selected one.
Originated from #5823

See https://github.com/microsoft/PowerToys/pull/6604#issuecomment-692466333. Change of component and don't kill every instance.

Hi @crutkas & @P-Storm , Is the killing 'Force kill' or just 'Send the close message to the window'?
See this link for the difference.

Small spec how the plugin could work:

Result layout

Title: <name> - <Process-ID> (<user>)
Subtitle: <path>
Icon: Process icon/plugin icon

Tool tip:

Line 1: <name> - <Process-ID>
Line 2: <user>
Line 3: <path>

Commands

Result command: Kill this process only
Context menu: Kill all processes with this name
"explorer.exe" context menu (addition): Restart explorer of current user

Behavior

Process list: Only running on this user (See plugin setting!)
Search by Process-ID, name and optional the user context
Hide special processes: lsass, winlogon, rundll32, ... [See this example.]
Before process is killed check if it's exist/Update results after killing a process [Killing a killed process isn't possible and my lead to unexpected behavior. - See this issue.]
Ask for admin permission if the process to kill runs in other user context
Block results for "Global results" and show warning that it's blocked (See settings.) [It might be problematic to have this results global.]
Restart explorer of current user headless as current user process.

Plugin settings

Show and kill processes for all users (default off)
Confirm on closing single process (default off)
Confirm on closing multiple processes by name (default on)
Ignore "Global results" warning and show results anyway (default off)

_ I am not sure if I can implement such a plugin. But like to share my ideas. At the moment I don't have the time to implement it._

Is this going in to the window walker? Or there may be two result for the same program.

Is this going in to the window walker? Or there may be two result for the same program.

I think we should have an own plugin. And as I wrote I think kill process results shouldn't be shown as global result per default.

I think a good first start is to add it to window walker. I think what is being proposed is far in excess to what was being asked.

@crutkas
In a first step I will implement close window and kill process into ww.
For killing you suggested Ctrl+Del. What should we use for closing window? Additional I will implement a setting to enable/disable confirmation of killing a process. For Explorer.exe we should add the prerequisite that each window has to run in it's own process.
If you are good with this please assign me. I will work on it in the next time.

After merging #15441 please don't close this issue. The PR only implements bug fixes and requirements. For the new context menu features we need a second one.
@crutkas
I will implement the context menu features. But I need some time.
And there are some questions open:

Which shortcuts do you prefer for close window and kill process?
Which icons should we use for close window, kill process and kill all instances*? (@niels9001, do you have an idea?)
 (We shouldn't kill the explorer process hosting taskbar and shell.)

*) For uwp apps all window instances hosted in one process.

2nd context menu?!?

2nd context menu?!?

Close window like clicking on x in title bar. (Should work on elevated windows too and was indirectly requested here: https://github.com/microsoft/PowerToys/issues/6084#issuecomment-719094307)
Kill process sends a kill command to the process.

2nd context menu?!?

Close window like clicking on x in title bar. (Should work on elevated windows too and was indirectly requested in the comment [Run][New Plugin] Allow to terminate the selected running process #6084 (comment).)
Kill process sends a kill command to the process.

I have made a very simple POC without pid/hwnd validation and it conatains a bug when closing the process. But it shows what I think about. The code can be found here.
Close window:
An yes it can close elevated windows without PT Run running elevated. 🤩

Kill process:

@htcfreek I would like to suggest a confirm message prompt would be great. ;)

@htcfreek I would like to suggest a confirm message prompt would be great. ;)

You mean confirm to kill? That is planned. But only for killing the process. 👍🏻

@htcfreek I would like to suggest a confirm message prompt would be great. ;)

You mean confirm to kill? That is planned. But only for killing the process. 👍🏻

That's correct. 😄

@crutkas
This isn't fix-committed! We only committed the required code changes and fixes to prepare code for the new features. The new features are going to be a second PR. Please update the project assignment.

I moved it to 0.56. Or do you can get it into 0.55?

I moved it to 0.56. Or do you can get it into 0.55?

No. Let's have it in 0.65. Then we have more time for testing and fixing.

project: v0.57.0

This is fixed with 0.57.0. Please head over to https://aka.ms/installpowertoys

The problem is that this was based on window walker thus it is slow and doesn't allow to actually kill a process. It simply finds out what's the process behind a window and kills those. What about actual processes that don't have associated windows. For examples service-related processes, or stuff you're running on some terminal?
I would be great if this feature could be revised to pick the the actual process list from TaskManager instead of window list.


Do not explicitly depend on BC provider

Related information: https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html

Solved in 36c871f198b52ec1ce1e40da10f92f8d45643e65


Market tab cuts off send message button

🐞 bug report
Describe the bug
when you load the market tab, some times it cuts off the message button (like it got shoved to the side out of view):
To Reproduce

Steps to reproduce the behavior:

Go to '...' market tab

Click on '....' search unending hunger

See error

Screenshots

🌍  Your Environment

Version:  e.g. 0.6.9 portable
PoE:  e.g. Steam 3.10.0/e English

Duplicate of #814


Can't install / update gh due to expired GPG key? · Issue #9569 · cli/cli · GitHub

//usr/share/keyrings/usr

If you have a specific dev container issue or request, providing more details would be great. Thanks so much!


Always exits at 50%.

Sorry It's working now, Now I opened the bash app from the command prompt and after sometime it works!!!


Action Mailer emails not being sent

So I'm trying to use delayed job with action mailer in my app and I've tested both locally and production and the email job is created and executed but the email is not being sent.
When I don't use delayed job and just use .deliver it works just fine.
The code for sending the email:
UserMailer.delay.followed_you(user)
In my console when I run Delayed::Job.all I see the job being enqueued. Then when I run rake jobs:work I see the job being executed successfully:
[Worker(host:f595047e-4de8-4247-8cdb-098774814694 pid:3)] Starting job worker [Worker(host:f595047e-4de8-4247-8cdb-098774814694 pid:3)] Job Class#followed_you (id=10326) RUNNING [Worker(host:f595047e-4de8-4247-8cdb-098774814694 pid:3)] Job Class#followed_you (id=10326) COMPLETED after 0.1035 [Worker(host:f595047e-4de8-4247-8cdb-098774814694 pid:3)] 1 jobs processed at 4.4194 j/s, 0 failed
But the email is never sent. My guess is it has to do with SMTP settings not being loaded in the delayed job? Any help would be appreciated. I'm using rails 4.0.13 and delayed job 4.0.2
Does it have something to do with RAILS_ENV?

I tried upgrading delayed job to 4.0.6 and now the logging is changed to:
[Worker(host:Kathys-MacBook-Air-2.local pid:62981)] Starting job worker
[Worker(host:Kathys-MacBook-Air-2.local pid:62981)] Job UserMailer.followed_you (id=686) RUNNING
[Worker(host:Kathys-MacBook-Air-2.local pid:62981)] Job UserMailer.followed_you (id=686) COMPLETED after 0.0572
[Worker(host:Kathys-MacBook-Air-2.local pid:62981)] 1 jobs processed at 3.7405 j/s, 0 failed
But it seems like the email is still not being sent

I'm a user of DelayedJob, and have the same issue. Were you able to figure this out @harryj?

facing the same issue.


Vao 434 rgaa accessibilit r gle 10.2

https://jira-mcas.atlassian.net/jira/software/c/projects/VAO/boards/336?selectedIssue=VAO-434

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


ListItem serialization

This should conform to the minimal HTML needed, as with other elements.
Currently we get:

Point B

Desired:

Point B

Maybe we can delegate this rendering to ListItem.static.toHtml(), which is currently not used.

No longer applicable.


Dropped support for Python < 2.7 and Django < 1.8

These versions are not tested anymore.
Also, should tox be updated to test Python3.6?

Thanks, I'm happy to get rid of this super-old legacy bloat. Great job!
Regarding python3 upgrade, I have nothing against adding 3.6, but would actually prefer to keep 3.5 and even consider adding 3.4, since for example Debian stable still uses 3.4 as a default python3 version, and I think most users still do use system python for convenience.


Two USB were found

File "C:\Users\aanis\anaconda3\lib\site-packages\pyvisa_py\protocols\usbtmc.py", line 202, in init
raise ValueError(
ValueError: 2 devices found:

@dhunganaanish  make sure that you are passing the proper pyvisa instrument handle for your instrument when you run rm.open_resource('your_instrument_handle_here').
To get a list of all your connected lab instruments, use get_instrument_dict(). This creates a dictionary of the *IDN response and the pyvisa handle. If you have two Keysight 33600a function generator instruments connected at the same time, you would need two instances of the keysight_33600a modules (with the proper pyvisa handles).


fix: don't proceed with ConfigureShorebird if init fails

If shorebird_init fails, don't proceed to report a launch start or start an update thread.
Fixes https://github.com/shorebirdtech/updater/issues/211

I believe Firebase Cloud Messaging is an example of where a FlutterEngine is created (and executed) before the main thread is.  I think this change as written would cause FCM to use the patch, but then the main app to use the release version?

Ah, I had been testing with workmanager, which will be started by the app, but you're absolutely right (just confirmed in my FCM app test). I've updated to move the return further down, which will ensure the snapshot is properly set for the app in the FCM case.


Pasting a link with a query string argument into the IDE gets displayed weirdly.

If you paste a URL into a node it splits on the first = and then only shows the bit to the right.
Likewise, if multiple parts reformats oddly.

It splits, because IDE always assumes you want to paste the code, not literal. Having = in the code we assume the left part is variable name/pattern, and the right is the actual node's code.
And https://finance.yahoo.com/quote/SHEL.L/history?p=SHEL.L might be a valid (at least parsable) Enso code!
The question is how IDE could deduce when user wants to paste code, and when something else?

I guess the intended solution is to have basic heuristics to detect certain special strings? e.g. checking for https?:// to detect links, and (say) checking for { or [ to detect JSON (if that's even useful)

I think we should do more here. How often people will paste Enso code and how often they will paste something just copied from somewhere? I believe that the later will be way more frequent. I believe that we should paste things by default as strings and treat them as code only if there is metadata in the clipboard telling that this is actually Enso code. This metadata should be there when copying code from Enso nodes or from our documentation. If this clipboard metadata is missing, the thing should be just pasted as "interpreted string". The term "interpreted" is not nicely specified yet, but, for example, if someone pastes URL, we might want in the future to immediately create fetch node. If someone pastes Excel content, we should create a table input and put it there. In the first step, however, I would just paste that as string if no metadata that this is Enso code exists. How does it sound to everyone?


fix: [main] Use correct value for MQTTBROKERINFO_AUTHMODE for Device MQTT

fixes #395

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-compose/blob/main/.github/Contributing.md
PR Checklist
Please check if your PR fulfills the following requirements:

[x] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[x] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
[ ] I have opened a PR for the related docs change (if not, why?)

Testing Instructions
run make gen ds-mqtt mqtt-broker
Verify Device MQTT has MQTTBROKERINFO_AUTHMODE: none
run make gen ds-mqtt mqtt-bus
Verify Device MQTT has MQTTBROKERINFO_AUTHMODE: usernamepassword

recheck

recheck


Why so complicated?

Man, all I want is to create the config for my server
and a client.
Why is it all so complicated?
I can't export the server configuration, I have to apply locally.
I don't want that.
JFC.
It's 3, almost 4 am and all I want for 45 minutes now is to create a server conf and a client conf and there are no reasonable examples to be found. And this "ui" isn't helping either.

Easy as pie.
Step 1.
sudo apt install wireguard

Step 2.
docker compose up -d

services:
  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    cap_add:
      - NET_ADMIN
    network_mode: host
    environment:
      - SESSION_SECRET
      - WG_CONF_TEMPLATE
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
      - WGUI_USERNAME=admin
      - WGUI_PASSWORD=admin
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./db:/app/db
      - /etc/wireguard:/etc/wireguard

Step 3.
Login to  http://super_domain.com:5000 with admin/admin
Step 4.
Add clients, download client configs and apply config (right top corner)
Step 5.
cat /etc/wireguard/wg0.conf

Profit.

Step 4.
Add clients, download client configs and apply config (right top corner)

This is the step were you get stuck due to some iptables stuff or wrong allowed ips, or something different. Aaaaand you give up.

The thing I always get hung up with on wireguard-ui is the server Address= needs to be <IP_ADDRESS>/24 not <IP_ADDRESS>/32 or wireguard-ui won't let you add clients (IMO, oversight of this app, otherwise its great)
Sadly not obvious unless you're intimately familiar with wireguard to begin with.


added yusuf1207 folder

Description
-Added yusuf1207 folder with ping.yaml file
What changes are made?
yusuf1207 ping.yaml added.

thanks


Move snippets to project file

Description
See #32030
Page URL
https://learn.microsoft.com/en-us/aspnet/core/migration/http-modules?view=aspnetcore-8.0&branch=pr-en-us-32030
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/migration/http-modules.md
Document ID
886858c7-29eb-714a-22ff-c30973d889e1
Article author
@Rick-Anderson

Associated WorkItem - 230101

dup of  #32087


OKCoin unsuccessful message

OKCoin is producing unsuccessful error message, with error code 10015. Unable to compute EWMA.
See attached screenshot

Hey, I noticed that today while doing some testing with OkCoin. From their documentation, 10015 means "Channel subscription temporally not available" (https://www.okcoin.com/about/ws_request.do), so I assumed it meant something their side was down. I just emailed OkCoin to see what's going on and directed them to this issue, hopefully we'll hear back soon.

On a related issue, I should not say that OkCoin is connected when one of these logons fails

Interesting, connecting via the old OKCoin-ask-sorting branch seems to work perfectly (sending and making orders). Is there a difference in connection technologies between the old branch and the new master?

Ugh, I see the error, I introduced it when adding support for currency pairs other than BTC/USD. Rookie mistake. Link to the bad line, I accidentally added a "_" https://github.com/michaelgrosner/tribeca/commit/a2ec71e4e503230522d058123dc80166cfbb9dfe#diff-1af7ffe54f6edc114300eba07bcd1810R475 -- I'll fix this pronto.

I now noticed that in certain places, they use "btc_usd" in the REST API and "btcusd" in the websocket interface. Slightly maddening..

Fixed in 2e0545ef232b800bba81bbe819a491a8d8777c42


[Issue 203] Address Checksum validation

What was wrong?
Issue 203
How was it fixed?
Created utils/validations.py and moved some contract validations there.
Added validate_address_checksum function to validations.py
Inserted validate_address_checksum into methods that have address as param
Questions
is_encodable in abi.py -- should this check the checksum on address input?
construct_event_filter_params in utils/filters.py -- should this check checksum on address(es) and contract address? Seems like it could be loose because it is just a filter
Cute Animal Picture

@pipermerriam updated for review


Hush In Safari Toolbar?

I've searched for this and read FAQ, so apologies if I missed this. I saw ya-d's submitted issue, but just confirming. I know Hush is a discrete app. Is it supposed to appear in Safari Toolbar as well since enabled via Safari > Preferences after app install? Thanks.

Would also love to have a hush icon in the tool bar to be able to switch it off temporarily. Hush brakes some pages that can only be used deactivating the extension.

+1 - I also mentioned this idea a few days ago in #148. It would be even better to permanently deactivate Hush for a specific domain in the toolbar.
ext level would be: Deactivate and "report breaks website" button. :)

+1 for the extended features


feat: video for quick start

A video version of the Quick Start instructions for the landing page.
Description
Using the same strategy that @matldupont employed in his #83 WIP PR. The quality on these video files isn't ideal, but if we can get this published we could iterate with higher quality video in a future PR once we get video conversion tooling sorted out.

References
Closes #80 .
Review Checklist

[ ] I have added documentation for new/changed functionality in this PR or in openfga.dev
[x] The correct base branch is being used, if not main

I'd appreciate if someone could do some cross-platform, cross-browser testing if we want to push this before #83 is ready to go.
Otherwise, let's get @matldupont 's signoff.

@matthewpereira : Should I be expecting video?  I am not able to see video when running feat/terminal-video via npm run build; npm run serve

LGTM


Xmbrst patch 1

Will replace with an include in an internal change, but for now just removing.

Can one of the admins verify this patch?

I did author these commits.
On Wed, Nov 9, 2016 at 6:03 PM, googlebot<EMAIL_ADDRESS>wrote:

We found a Contributor License Agreement for you (the sender of this pull
request) and all commit authors, but as best as we can tell these commits
were authored by someone else. If that's the case, please add them to this
pull request and have them confirm that they're okay with these commits
being contributed to Google. If we're mistaken and you did author these
commits, just reply here to confirm.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/5505#issuecomment-259552181,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AO-8A5voMAXJk5fhCliXqxiH4_jdTAirks5q8lFGgaJpZM4KuFdt
.

Probably want to send a PR from an up to date branch.


Look back at historical data

I would like to be able to compare my data from this week to this week last year or last quarter. Is there a way to do this?

Hi Buddy,
I checked into this for you. Unfortunately, there currently is no way to get historical data from MyAnalytics. But I've passed your idea on to the product team for future consideration.
Thank you,
-- Paul (MyAnalytics documentation)


Add Support for Conda Install

https://conda-forge.org/docs/maintainer/adding_pkgs.html

Hey, if no one has taken this issue, I am happy to work on it.
By the way, my name is Xiwen Zhang. I am a CS PhD student at Georgia Institute of Technology, working with Prof. Alexey Tumanov.

@xiwen1995 sorry for not getting back to you about this sooner. Are you still interested in working on this? I made an initial attempt at this here: https://github.com/conda-forge/staged-recipes/pull/13426#issuecomment-741030487


Read an entire line before printing

I've tested the latest v0.3.11 on Linux, and when under load, it seems that goreman reads partial lines and writes them to stdout, thus the output looks like "screen tearing".
For example:
2022/04/07 14:47:40 [tools]  Compiling
2022/04/07 14:47:40 [tools] tools-server v0.0.0 (/.../tools/sources/rust)
2022/04/07 14:47:40 [docs]
2022/04/07 14:47:40 [docs] Compiling docs-server v0.0.0 (/.../docs/sources/rust)
2022/04/07 14:47:40 [wiki]
2022/04/07 14:47:40 [wiki]
2022/04/07 14:47:40 [wiki]
2022/04/07 14:47:40 [wiki] Compiling
2022/04/07 14:47:40 [wiki]
2022/04/07 14:47:40 [wiki] wiki-server
2022/04/07 14:47:40 [wiki]  v
2022/04/07 14:47:40 [wiki] 0
2022/04/07 14:47:40 [wiki] .
2022/04/07 14:47:40 [wiki] 0
2022/04/07 14:47:40 [wiki] .
2022/04/07 14:47:40 [wiki] 0
2022/04/07 14:47:40 [wiki]  (
2022/04/07 14:47:40 [wiki] /.../wiki/sources/rust
2022/04/07 14:47:40 [wiki] )

All these lines should be something like [space] Compiling whatever-server v0.0.0 (/.../whatever/sources/rust).  As one can see, none of the lines are written correctly.
My assumption is that goreman uses a simple read and assumes it has received an entire line.  However under load (as is the case here) for some reason that doesn't hold.

I think my PATH got mixed and for some reason a very old goreman executable made it through and was the one executed...
I'm closing this issue for the moment, and I'll re-open it if it is actually accurate what I describe above.
Sorry.


Exporting grid with conditional formatting to PDF

I created print css stylesheet like shown below but the generated PDF is not the same as the grid. Perhaps I need to use specific stylesheet?
I would appreciate any guidance on how to achieve this.
@media print {
  .property-cancelled {
    background-color: pink !important;
    -webkit-print-color-adjust:exact;
  }
  .property-sold {
    background-color: yellow !important;
    -webkit-print-color-adjust:exact;
  }
}

My project is kind of stuck on this. Is this something that can be resolved or do I need Plan B? Many thanks in advance.

I guess PDF is generated with this tool:
https://wkhtmltopdf.org/usage/wkhtmltopdf.txt
so u may wanna check how to feed it your CSS ?

No, print of list are made client side with jsPDF. See PdfExportHelper in Modules -> Common - Reporting

IC,
well, he may also want to check about reports, where they are rendered via wkhtmltopdf
see function RenderAsPdf in  Modules\Common\Reporting\ReportController.cs
there are client helpers in Modules\Common\Reporting\ReportHelper.ts
and sample of use in Modules\Common\Reporting\ReportDialog.ts

Yes other reports are rendered with wkhtmltopdf that offers more possibilities of customization


More than one file was found with OS independent path 'lib/armeabi-v7a/libcardioDecider.so

General information

SDK/Library version:  5.5.1
Android Version and Device: Samsung S5 with Android 6.0

Issue description
I had this error when running app in Android Studio, complile is pass. I can't understand why this error appears. And I found nothing in Internet for the similar error when using card.io. perhaps this is particular for my project due to different dependencies I used.

no one answer my question, I finally found that it is due to incompatibilities with Reach5 library.

Would you mind sharing the incompatibilities you ran into for anyone else that may run into this issue?

I don't have further information for this issue, I just test every library listed in my gradle file to verify which one can cause the conflict with card.io. finally that is reachFive (https://reachfive.co/en/) which we use to connect with social account. I'm working on it and i will go back here to post my solution if I could try to figure out.

Since two weeks I'm stuck in it, finally I figure out the source of problem.
It is because that ReachFive Library (a library used in my project)has include an old version of CARD.IO for his PAYPAL service. So I found the exactly same .so file in his AAR. and my solution is brutal, I use winRAR to open directly its AAR library and delete JNI file completely for 2 reason below:

The application needs just one set of .so file (needed for Card.IO) in JNI path, if two libraries contain the same .so files, it will create conflict absolutely.
We dont use the PAYPAL service provided in ReachFive Library. And even though we need it, I think its old Card.IO can also use this new .so file it depends on the compatibility I dont verify this point.

I have another solution which can simply eliminate this kind of error. add this in gradle file:
packagingOptions {             exclude "lib/armeabi-v7a/libcardioDecider.so"             exclude "lib/armeabi-v7a/libcardioRecognizer.so"             exclude "lib/armeabi-v7a/libopencv_imgproc.so"             exclude "lib/armeabi-v7a/libcardioRecognizer_tegra2.so"             exclude "lib/armeabi-v7a/libopencv_core.so"             exclude "lib/armeabi/libcardioDecider.so"             exclude "lib/mips/libcardioDecider.so"             exclude "lib/x86/libcardioDecider.so"         }
But this solution is not perfect, it will exclude all .so file mentioned above. then neither ReachFive nor Card.IO can find his so file, Card.IO will not start camera. I wonder that why in this method "packagingOptions" I cannot define a scope that my rules will applied for?
Alright, at least it works !

This one also will help.. https://stackoverflow.com/a/44962630/1237175

check with your lib folder might be having same aar/jar file in double in with different name.

Error:Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'.

More than one file was found with OS independent path 'lib/armeabi-v7a/libopencv_java3.so'

Error:Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'.

More than one file was found with OS independent path 'lib/armeabi-v7a/libopencv_java3.so'
i want delete this path becuse conflict with file orginal
im use code in gredl
packagingOptions{
exclude 'lib/armeabi-v7a/libopencv_java3.so'

}

but not success ...
plz help me

I have a similar problem, read your issue, I have solved my problem. thank you

I have got the same issue file lib/x86_64/libsqlcipher.so found more thane once and found out the solution.
This happens due to the same file coming multiple times in dependencies or modules.
Fixed by adding following code in app build.gradle file inside android block
android {
   ---
   packagingOptions {
        pickFirst 'lib/x86_64/libsqlcipher.so'
        pickFirst 'lib/armeabi/libsqlcipher.so'
        pickFirst 'lib/x86/libsqlcipher.so'
        pickFirst 'lib/armeabi-v7a/libsqlcipher.so'
        pickFirst 'lib/arm64-v8a/libsqlcipher.so'
    }
   ---
}

@pkjvit Thanks mate. it worked! =)


uv tree & uv pip tree don't show the correct package names.

uv tree and uv pip tree don't show "official" package names from an installed METADATA file.
Output of uv tree:
$ uv tree
Resolved 22 packages in 9ms
lipy-version v5.0.19
├── jinja2 v3.1.4
│   └── markupsafe v3.0.2
├── typing-extensions v4.12.2
├── ruff v0.7.0 (extra: optional)
├── flake8 v7.1.1 (group: dev)
│   ├── mccabe v0.7.0
│   ├── pycodestyle v2.12.1
│   └── pyflakes v3.2.0
├── isort v5.13.2 (group: dev)
├── mypy v1.12.0 (group: dev)
│   ├── mypy-extensions v1.0.0
│   └── typing-extensions v4.12.2
├── pytest v8.3.3 (group: dev)
│   ├── iniconfig v2.0.0
│   ├── packaging v24.1
│   └── pluggy v1.5.0
├── pytest-cov v5.0.0 (group: dev)
│   ├── coverage[toml] v7.6.2
│   └── pytest v8.3.3 (*)
└── sybil v3.0.1 (group: dev)
(*) Package tree already displayed

vs the output of pipdeptree:
$ pipdeptree
flake8==7.1.1
├── mccabe [required: >=0.7.0,<0.8.0, installed: 0.7.0]
├── pycodestyle [required: >=2.12.0,<2.13.0, installed: 2.12.1]
└── pyflakes [required: >=3.2.0,<3.3.0, installed: 3.2.0]
isort==5.13.2
Jinja2==3.1.4
└── MarkupSafe [required: >=2.0, installed: 3.0.2]
mypy==1.12.0
├── mypy_extensions [required: >=1.0.0, installed: 1.0.0]
└── typing_extensions [required: >=4.6.0, installed: 4.12.2]
pipdeptree==2.23.4
├── packaging [required: >=24.1, installed: 24.1]
└── pip [required: >=24.2, installed: 24.3.1]
pytest-cov==5.0.0
├── coverage [required: >=5.2.1, installed: 7.6.2]
└── pytest [required: >=4.6, installed: 8.3.3]
    ├── iniconfig [required: Any, installed: 2.0.0]
    ├── packaging [required: Any, installed: 24.1]
    └── pluggy [required: >=1.5,<2, installed: 1.5.0]
sybil==3.0.1

Notice both Jinja2 and MarkupSafe have the correct capitalization.
$ grep Name: MarkupSafe-3.0.2.dist-info/METADATA
Name: MarkupSafe

Yeah I think we use normalized names ~everywhere. It'd probably be reasonable to preserve the original names, but it sounds pretty painful to implement.

Yeah this is intentional.

Ok.. we track dependency relationships via an internal service (language independent), and for it to work properly, we need the names that are canonical from each index.

If you know all packages that are involved you could create a mapping of normalized to canonical names yourself, the rules are quite simple: https://packaging.python.org/en/latest/specifications/name-normalization/

Why not use the spec-compliant normalized names? There’s no ambiguity to them, unlike the names uploaded to the index.

I agree, but there's an unfortunate amount of legacy (Gradle, Ivy, pain) that I have to deal with.

I'm going to close as I don't currently plan to change these. Sorry about that :(


chore: upgrade neon addon to v1.0 API, refactor scripts and add ut

Codecov Report
Attention: Patch coverage is 0% with 245 lines in your changes missing coverage. Please review.

Project coverage is 0.00%. Comparing base (af8cb1f) to head (9a05e7e).

Files with missing lines
Patch %
Lines

addons/neon/scripts-ut-spec/compute_spec.sh
0.00%
245 Missing :warning:

Additional details and impacted files
@@          Coverage Diff           @@
##            main   #1164    +/-   ##
======================================
  Coverage   0.00%   0.00%
======================================
  Files         62      63     +1
  Lines       6215    6460   +245
======================================
- Misses      6215    6460   +245

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

/cherry-pick release-1.0-beta


The processing of the queue timed out, resulting in the capacity not being released in time

The whole capacity release process is nearly 3 min.

@FloatXD please test this case against the latest HwameiStor version.

Deadline: August


grafana authentication failed after removing containers

Unable to configure dashboard, grafana authentication failed after removing the previous ages from docker and trying again. While I did change the admin password in web url when login to graphana.
Steps to reproduce the behavior:

nb .... --docker-metrics
docker stop grafana prom graphite-exporter
docker rm grafana prom graphite-exporter
nb .... --docker-metrics

Expected :
Should start normally and run the test.

Fixed : After removing ./nosqlbench folder.
When I tried to restart the next test, this error was gone.

I think@weideng1 and I fixed this one last week.


[Windows] Improve non-exclusive full-screen mode.

Removes single pixel border in the non-exclusive full-screen mode.
Fixes https://github.com/godotengine/godot/issues/63500
Note: needs testing on a different GPUs to make sure it's not triggering exclusive full-screen, I have tested it on NVIDIA only. Testing on AMD and Intel is highly appreciated. The easiest way to test it is to use Shift+F11 combination in the editor and checking if menus are working fine, without blinking/fading to black (editor should be in multi window mode).

Video driver timeout after pressing Shift+F11.

gl_compatibility
RX 5600XT, driver version 22.11.1
Windows 10 21H2

Tested with integrated AMD Ryzen graphics, and it doesn't work (unlike on NVIDIA, menus are usable, but cause black flashes). So I guess adding border (or changing client area to not match screen size in some other way) is still the only way to prevent exclusive full-screen.


Extension causes high cpu load

Issue Type: Performance
Extension Name: ligatures-limited
Extension Version: 1.3.4
OS Version: Linux x64 5.4.0-45-generic
VSCode version: 1.48.2

:warning: Make sure to attach this file from your home-directory:
:warning:/home/sruthisudhi/kshetline.ligatures-limited-unresponsive.cpuprofile.txt
Find more details here: https://github.com/microsoft/vscode/wiki/Explain-extension-causes-high-cpu-load

Are you seeing any actual performance problems that interfere with code editing, or is this just a matter of seeing a high cpu load warning occasionally? The occasional warning is a known issue.

I have also been getting this pop-up, more so on my laptop (AMD E-350) than on my desktop system (Intel i5-750). For comparison, the i5-750 is 142% better in real-world speed than the E-350, as tested on UserBenchmark
For kicks and giggles, I did some digging and was able to get an unminified CPU profile exthost-66300f.cpuprofile.txt which basically shows that the longest time taken is from the still minified Textmate library.
I personally feel that this particular issue is more of a lackluster hardware issue than an overrunning software issue because of the nature of parsing code into an understandable context. A possible change to the repo because of this is marking either this issue or #3 as open with the wontfix label(I would recommend this one because it already has an explanation of why it is wontfix).

Thanks. I'll indeed this as "won't fix".

I'm having the same problem, it's lagging especially when I try to format (and I have it on every new line and save) and most of the time causes formatters to break or not format at all.

Since no issue openers had put their logs, I will put mine in a bit.

kshetline.ligatures-limited-unresponsive.cpuprofile.txt


Secure Jupyter Notebook with simple authentication

The jupyter notebook initialization action is working good as expected. Mostly, we would need that to be authenticated/secured while launching in the internet.
Required a metadata property to specify notebook password, similar to the PORT option exposed during cluster creation.
The task may involve creating private-public key/certificate and set those to the jupyter configuration property, and set the default password.

Yeah it's not working for me either. This sucks...

I'm not exactly sure what you mean by private keys. An optional password sounds possible.
It is generally not advisable to open any ports in the Dataproc network to the internet. Instead it is recommended you access Web UIs via proxies. Given that it doesn't seem that simple authentication would offer much benefit.

Password option would be helpful. For Https,  we would need default self-signed certificates created on the fly or option to link the existing cert files .

Apparently setting the token is support, but not documented with --metadata=JUPYTER_AUTH_TOKEN=... from #81. I'd take a PR for https support, but I doubt we'll get around to any time soon.
Updating the documentation now.

Updated docs in #128


Is 'associate-stemcell' an idempotent operation?

If I try to associate a stemcell to a product, but that stemcell version is already applied to the product, will this still register as a "staged change"? If I'm going to be making API calls to associate a stemcell to a product every time I call "apply-selective-deploy", I need to make sure this doesn't cause unnecessary problems.
I'm hoping for the Opsman response to be something like "stemcell version already applied".

Turns out, yes. Yes it is. No worries. 👍


[Issue]: In studio, how to display each agent's response in real time instead of showing all at the end?

Describe the issue
In studio, currently, all the responses show up together at the end of the chat. It's not user friendly. I prefer to display each agent's reponse on the web when it's ready.
I debugged studio code, did see backend fire websocket messages to the client. But it's weird that the message didn't show up in chrome devtools window until at the end.
Could someone explain why this happened? Thanks a lot.
Steps to reproduce
No response
Screenshots and logs

Additional Information
No response

I want to know too.
In a group chat，I want to get responses from every character in real time but I don't find callback method

I want to know too.
In a group chat，I want to get responses from every character in real time but I don't find callback method

I have seen this in a video but it is not working for me too.


Add a clarifying note after the paragraph that follows Table 13 Range3 Record Format

Add the following clarifying note after the paragraph that follows Table 13 Range3 Record Format:
Note: Since a sentinel GID is used to delimit the last range in the array, its value, encoded as a uint16, cannot exceed the value 65535. Therefore, the last GID encoded when using FDSelect Format 3 cannot exceed 65534.

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

ID: 8f3f1db1-b1f0-587c-0dbe-9e090b32c5d9
Version Independent ID: 49bd6461-28c0-a133-77b1-617b8f2f5dab
Content: CFF2 - Compact font format version 2 table - Typography
Content Source: typographydocs/opentype/spec/cff2.md
Product: typography
GitHub Login: @PeterCon
Microsoft Alias: PeterCon

Corresponds to the change to clause <IP_ADDRESS> in ISO/IEC 14496-22:2019 Amd 1.

Fixed for next version.


No recent npm release

@auser there have been quite some Merges you did (including some from me) but there is no recent update to the version in npm. Interesting enough, npm says the version is 2.1.16 which should be coming from the package.json but the master here is at 2.1.15 and the latest tag is 2.1.14.
Are you planning to update the version in npm soon?
Whoever is using the new features available in this repo needs to stay locked to the git repo instead of the official npm package. This was also mentioned in some issues that would get cloes when this is done.
Thank you for your time!

Will push it up now.

Thank you for 2.2.0!


ui-highlight not working - two scenarios

I think the daemonize option creates a conflict with --ui-highlight

/local/bin/frontail --host development.web.com --port 8181 --pid-path '/pub/node/frontail.8181.pid' --key '/local/ssl/certs/new_dev_private.key' --certificate '/local/ssl/certs/upstartdev.crt' --log-path /pub/node/frontail.log  --daemonize --ui-highlight /local/lib/node_modules/frontail/preset/default.json /tmp/front1
The server starts but --ui-highlight does not work. If I remove --daemonize or -d the --ui-highlight works fine as specified above with full path to json file

If I leave off the [path] to --ui-highlights (as shown) I get the error below

/local/bin/frontail --host development.web.com --port 8181 --pid-path '/pub/node/frontail.8181.pid' --key '/local/ssl/certs/dev_private.key' --certificate '/local/ssl/certs/dev.crt' --log-path /pub/node/frontail.log --ui-highlight /tmp/front1
Arguments needed, use --help
If I leave off --ui-highlight all together there is no highlighting - not picking up defaults. The daemonize option is not specified.
My --ui-highlight input file works:
{
"words": {
"err": "color: red;"
},
"lines": {
"err": "font-weight: bold; background-color: yellow;"
}
}

I modified index.js and specified the full path to the default json file and started the server as follows - moved the --ui-highlight switch to the middle of the command. This works (but still does not work with --daemonize). This make --ui-highlight positional, at least it can't be the last switch:

/local/bin/frontail --host development.web.com --ui-highlight --port 8181 --pid-path '/pub/node/frontail.8181.pid' --key '/local/ssl/certs/dev_private.key' --certificate '/local/ssl/certs/dev.crt' --log-path /pub/node/frontail.log  /tmp/front1
Thank you for looking. Mike

Hi,
thanks for reporting. Both cases were fixed in 2.0.0. I've also introduced new option --ui-highlight-preset for providing highlight preset path.

My pleasure. I really like your approach to tail -f to a browser. I'm looking forward to issue#38


instructions to build/run sample are incorrect

The readme indicates you should simply need to cd sample && npm install && jspm install && gulp start, however there are no gulp tasks in that directory

https://github.com/aurelia/validatejs/blob/master/build/tasks/watch.js#L15 <~~~ serves the sample app up - and gulp should find it properly.  Just double-checked and it looked good for me so you would need to let me know what is not working and I can look at it.

@PWKad Two issues here:

There is no build task for start as indicated in the README

Instead of checking visually, please just try to follow the instructions in the README itself - they do not work:

first of all, "running the sample" requires (presumably) that you have run npm install on the top level directory. If you do a raw clone and just follow the "Running the sample" instructions you will result in the following error:  Local gulp not found in ~/Development/aurelia/validatejs

secondly, once you get the top level node modules installed, there is no gulp task for start. Presumably the suggested task is watch but the watch task defined in the top level build directory is for building a plugin - not the sample app. So a gulp watch from the sample directory results in this:

mbroadst@retinoid:sample (master=)$ gulp watch
[09:33:34] Working directory changed to ~/Development/aurelia/validatejs
[09:33:35] Using gulpfile ~/Development/aurelia/validatejs/gulpfile.js
[09:33:35] Starting 'build'...
[09:33:35] Starting 'clean'...
[09:33:35] Finished 'clean' after 43 ms
[09:33:35] Starting 'build-es2015'...
[09:33:35] Starting 'build-commonjs'...
[09:33:35] Starting 'build-amd'...
[09:33:35] Starting 'build-system'...
[09:33:38] Finished 'build-amd' after 2.7 s
[09:33:38] Finished 'build-commonjs' after 2.7 s
[09:33:38] Finished 'build-es2015' after 2.71 s
[09:33:38] Finished 'build-system' after 2.7 s
[09:33:38] Finished 'build' after 2.76 s
[09:33:38] Starting 'serve'...
[BS] Access URLs:
 --------------------------------------
       Local: http://localhost:3001
    External: http://<IP_ADDRESS>:3001
 --------------------------------------
          UI: http://localhost:3002
 UI External: http://<IP_ADDRESS>:3002
 --------------------------------------
[BS] Serving files from: sample
[09:33:38] Finished 'serve' after 150 ms
[09:33:38] Starting 'watch'...
[09:33:38] Finished 'watch' after 128 ms

Which has then just built your sample app in amd/commonjs/requirejs/etc and not loading your app where you think you're loading it.
So I guess I just think the issue should be reopened because there is no current way to run this app. I think the sample folder needs (at very least) its own gulpfile and set of build tasks.
HTH

https://github.com/aurelia/validatejs/commit/c77f3693587a607393e73a90f01f5c39f53084f6 <~~
I'll add a note to run build-sample as well, thanks for helping to point this out.

There was a problem with JSPM trying to incorrectly load one of the package paths that only exists in this scenario, not in a real app, that was fixed in there as well.

Alright readme updated with working instructions.

Not working for me on master as of 5 minutes ago:
git clone https://github.com/aurelia/validatejs.git
cd validatejs
npm install
cd sample
npm install
jspm install
gulp build-sample
gulp watch

Then http://localhost:3000/
Uncaught (in promise) Error: Error: XHR error (404 Not Found) loading<EMAIL_ADDRESS>    Error loading<EMAIL_ADDRESS>as
"aurelia-validation" from http://localhost:3000/aurelia-validatejs/index.js


Initial Default Select Box not Visible on Mac

In my image cropper, I set a default value for crop. It works fine on windows. I tried both Chrome and Firefox, the default select box would show immediately when the image is selected. But on Mac, the initial select box is invisible, both on Chrome and Safari. Does anyone know how to fix it? Thanks!
BTW, Mac OS version 12.0.

By "immediately when the image is selected" I mean immediately when I click the upload button and select an image from my computer.

Please post your code, it normally works fine on Mac - https://github.com/DominicTobias/react-image-crop/blob/master/demo/demo.js

Closing due to inactivity


// onPan callback does not work

hi
i like your lib. It's very convinient for my little project.
so issue is that
// onPan callback, coordinates = {x: x, y: y}         callback: Function (function(coordinates) {})
does not fires (does not work) in my app.
can you give some help.
thank you

well actually it's works when i use panLeft() method
It would be pretty nice if could fire this function on drag event

You can send pull request, if you want to contribute


Client() returns None

Code:

aternos_client.login doesn't return anything, but you assingits returned value to aternos

Oh, and I've noticed a typo in readme.
To request servers list:
at = Client()
at.login('user', 'password')

acc = at.account
server = acc.list_servers()[0]

is it possible to also solve that userwarning above?

is it possible to also solve that userwarning above?

@Supslike, as far as I know, the warning about timezone appears only on Replit. It doesn't break anything, so I won't find the solution :)


Support forced meridians

As mentioned in https://github.com/espruino/BangleApps/issues/3534#issuecomment-2312135999
Also fixed a bug that meant meridians were never shown. Funny enough, this force solution was perfect for that.

Thanks!


Support ability to kick users from hangouts.

Hangouts recently added support to kick users from group hangouts. Would  be nice if yakyak supported this feature.

This is still a relevant request.