CUDNN_STATUS_INTERNAL_ERROR

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04.2
TensorFlow installed from (source or binary): binary (via pip)
TensorFlow version (use command below): ('v1.3.0-rc2-20-g0787eee', '1.3.0')
Python version: 2.7
Bazel version (if compiling from source): n/a
CUDA/cuDNN version: Cuda 8.0 (via pip) / cuDNN 6.0.21
GPU model and memory: GeForce GTX 1060 6GB
Host compiler version : GCC 4.9.3

Exact steps to reproduce (as per nvidia Tensorflow demo):
$ git clone -b update-models-1.0 https://github.com/tensorflow/models
$ cd models/tutorials/image/imagenet
$ python classify_image.py
Describe the problem
Tensorflow fails to run demo script, despite having installed (and re-installed) as per the manual. Any help would be greatly appreciated.
Source code / logs
2017-10-27 16:09:51.154970: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-10-27 16:09:51.155000: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-10-27 16:09:51.349207: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-10-27 16:09:51.349589: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: GeForce GTX 1060 6GB
major: 6 minor: 1 memoryClockRate (GHz) 1.7845
pciBusID 0000:01:00.0
Total memory: 5.93GiB
Free memory: 5.80GiB
2017-10-27 16:09:51.349610: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0
2017-10-27 16:09:51.349617: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y
2017-10-27 16:09:51.349631: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0)
2017-10-27 16:09:51.672521: W tensorflow/core/framework/op_def_util.cc:333] Op BatchNormWithGlobalNormalization is deprecated. It will cease to work in GraphDef version 9. Use tf.nn.batch_normalization().
2017-10-27 16:09:52.006440: E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-10-27 16:09:52.006471: E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-10-27 16:09:52.006481: F tensorflow/core/kernels/conv_ops.cc:672] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)
Aborted (core dumped)

Sure! See below. No other processes are running when I've tried this. I've also tried restarting to ensure that the GPU memory was totally cleared, but the same issue occurs.
`+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90                 Driver Version: 384.90                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   36C    P8     9W / 120W |     52MiB /  6071MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1250      G   /usr/lib/xorg/Xorg                            50MiB |
+-----------------------------------------------------------------------------+
`

I don't know if anyone will read this. But, I've since upgraded my GPU, reinstalled CUDA-8.0 (from with apt-get install), and modified my .bashrc file to include:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
as per this post. The relevant portion of the latest .bashrc file is shown here:
'export CUDA_ROOT=/usr/local/cuda
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64/"
export PATH="/usr/local/cuda/bin:$PATH"
export PATH="/usr/local/cuda-8.0/bin:$PATH"
export CUDA_VISIBLE_DEVICES=0
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
#export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64"'
But I still get the following error. I've tried the solutions in the troubleshooting guide to no avail.
'>>> import tensorflow
Traceback (most recent call last):
File "", line 1, in
File "/home/adam/miniconda2/lib/python2.7/site-packages/tensorflow/init.py", line 24, in
from tensorflow.python import *
File "/home/adam/miniconda2/lib/python2.7/site-packages/tensorflow/python/init.py", line 49, in
from tensorflow.python import pywrap_tensorflow
File "/home/adam/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 52, in
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/home/adam/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in
from tensorflow.python.pywrap_tensorflow_internal import *
File "/home/adam/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File "/home/adam/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/install_sources#common_installation_problems
for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.'

@meccaLeccaHi : Sorry that you're running into this. The error messages suggest trouble using CUDA/CUDNN, or in this last case, errors in loading the libcusolver.so library.
So the errors have changed after your reinstall? What is the location of libcusolver.so.8.0 on your filesystem?

Thanks for your help!
I was able to move past the original error by adding the following line, in particular, to my .bashrc file:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
But, I am still unable to import the tensorflow module.
libcusolver.so.8.0 is located at:
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcusolver.so.8.0

Hmm....so not in your LD_LIBRARY_PATH. Just to verify that libcusolver.so.8.0 is accessible to the linker, can you also list out the output of ldconfig -p | grep libcusolver?

Happy to.
$ ldconfig -p | grep libcusolver           	libcusolver.so.7.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcusolver.so.7.5 	libcusolver.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcusolver.so

OK, if I add '/usr/local/cuda-8.0/targets/x86_64-linux/lib' to my LD_LIBRARY_PATH, importing tensorflow is successful (so, many thanks to Sir for that). But, I am still experiencing my original error which is shown below:
`$ python classify_image.py

Downloading inception-2015-12-05.tgz 100.0%
Successfully downloaded inception-2015-12-05.tgz 88931400 bytes.
2017-10-30 22:14:54.542348: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-10-30 22:14:54.542378: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-10-30 22:14:54.705978: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-10-30 22:14:54.706540: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.2155
pciBusID 0000:01:00.0
Total memory: 11.92GiB
Free memory: 11.80GiB
2017-10-30 22:14:54.706561: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0
2017-10-30 22:14:54.706568: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y
2017-10-30 22:14:54.706578: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:01:00.0)
2017-10-30 22:14:55.237837: W tensorflow/core/framework/op_def_util.cc:333] Op BatchNormWithGlobalNormalization is deprecated. It will cease to work in GraphDef version 9. Use tf.nn.batch_normalization().
2017-10-30 22:14:58.319995: E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-10-30 22:14:58.320026: E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-10-30 22:14:58.320035: F tensorflow/core/kernels/conv_ops.cc:672] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)
Aborted (core dumped)
`

Based on that, it would appear that libcusolver.so.8.0 is not available to the linker when TensorFlow is loading (i.e., /usr/local/cuda-8.0/targets/x86_64-linux/lib is not in the search path for dynamic libraries).
Not quite sure how you ended up in this state, but it seems that you'd want to correct that by updating your ld.conf, or perhaps including /usr/local/cuda-8.0/targets/x86_64-linux/lib and related paths in your LD_LIBRARY_PATH

We ran into similar error (CUDNN_STATUS_INTERNAL_ERROR), but it was not happening when we ran python as root. It always failed when run as other, non-root user.
The root cause in the end was in the nvidia-persistenced daemon, which by default runs on Ubuntu under nvidia-persistenced user (which is member of same named group).
Adding the non-root user to nvidia-persistenced group (usermod -a -G nvidia-persistenced my-nonroot-user) resolved the issue.

Thanks jstastny, but I did exactly as you say and the error still persists.

@meccaLeccaHi -- did you log out and back again (or issued other way of reloading the groups of your user)? You can validate what are you in by groups command.
Just to validate -- it works for you when run under root, right?

I have tried logging out and then back in again, but still experience the same error.
Running the command as sudo does not work, as the tensorflow module is not found (see below). Perhaps because I installed using conda as non-root user (e.g. 'conda install tensorflow-gpu').
'nvidia-persistenced' is among the groups shown when I run the 'groups' command.
$ sudo python classify_image.py  [sudo] password for adam:  Traceback (most recent call last):   File "classify_image.py", line 46, in <module>     import tensorflow as tf ImportError: No module named tensorflow

Does it work if you do the conda thing as root?

Strangely, I get the same missing module error even after running the following commands:
sudo -s
conda install tensorflow-gpu

I have the same exact problem. Tried all recommended steps here, no luck. Running on Linux Mint 18.2 (Ubuntu 16.04), nvidia-375 (384.90), CUDA 8.0.61-1 + CuDNN 6.0, TensorFlow 1.3.0 and 1.4.0, default Python 2.7, no Anaconda. I once got it working right after reboot, but subsequent executions always failed. Seems like driver gets stuck in some weird state... It started happening only a few days ago, maybe some Ubuntu/Mint update exposed this problem.

Just to be sure, could you try the newest version?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue? Please update the label and/or status accordingly.

I'm facing the same issue.
I have
Geforce GTX 1050Ti
Tensorflow 1.8.0
CUDA 9.0
cuDNN 7.0
No process is occupying the GPU, and rebooting has no effect. The last time this stopped working, it was a user rights problem, and disappeared when I added my user to nvidia-persistenced. User is probably not the issue, since it won't work with sudo either. Please help.

could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
I am also facing the same issue.

@chintler I have the exact same problem as yours, have you solved it yet?

same for me in windows , any help plz

Please re-open issue.  This still hasn't been solved, even with latest TF 1.10

@reedwm can you take a look or redirect? Thanks.

Someone who still has the issue, can you paste the full output of the error and refill the issues template? TensorFlow now requires cuda 9.0 unless built from source, and I cannot reproduce this issue.

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

I am getting the same issue with window 10, tensorflow 1.10 and cuda 9.0. The error is
2018-09-25 17:15:39.657620: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_blas.cc:459] failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
2018-09-25 17:15:39.657926: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_blas.cc:459] failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
2018-09-25 17:15:39.679944: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

I get the same error on Linux with TensorFlow 1.10 and CUDA 9.0.
Apparently cuDNN is trying to allocate more memory than it should, as if the gpu_options.per_process_gpu_memory_fraction option (which we use) weren't strictly respected. In my case this error occurs when there is little free GPU memory:
tensorflow/stream_executor/cuda/cuda_dnn.cc:352] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

Then the process crashes with segmentation fault (SIGSEGV).

@adampl So there is a floor that we need? Are you comfortable enough with the code to send a fix to print out a more meaningful error message?

@drpngx Unfortunately I'm not familiar with TF code, but it's not the error message that needs to be fixed, but the error itself.

If I understand correctly, the problem is that the memory fraction cannot be honored if there's too little GPU memory available, resulting in an error. I am assuming that there's a reason for that and it can't be fixed. If it cannot be fixed, then we would want to detect that case and return a more informative error message. (If it can be fixed, then we should fix it). Am I right?

The error occurs only when there is little free memory, because in such case if cuDNN exceeds the fraction, the GPU is unable to allocate the requested amount of memory. Nonetheless I suspect that the fraction is always (or often) exceeded regardless of the amount of free memory, but it just doesn't result in a fatal error because there is enough free memory.

This work for me:
http://tuxvoid.blogspot.com/2017/08/tensorflow-could-not-create-cudnn.html

@wt-huang How do you know it's resolved?

I got the same error when using convolutions (repeatedly), any thing else was running fine. I have not updated anything and kept the same tensorflow and CUDA version under which the same code was running before.
Deleting the .nv dir (nvidia cache) in my local home directory completely solved the issue for me. Might also explain why another commenter had success with running Python as root.


Make cupy.tensordot use Tensor Core also in case of compute-capability > 70

Rel. #2197

Jenkins, test this please

Jenkins CI test (for commit fd8991ef51d6d5ea421156428cf97ee1fc5690af, target branch master) succeeded!

LGTM


Update ptvsd version to 5.0.0a5

For #7647
👉  When this gets merged into master, don't forget to double-check that the correct version of ptvsd is bundled in the VSIX.

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
[x] Title summarizes what is changing
[ ] Has a news entry file (remember to thank yourself!)
[ ] Appropriate comments and documentation strings in the code
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[ ] Unit tests & system/integration tests are added/updated
[ ] Test plan is updated as appropriate
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed)
[ ] The wiki is updated with any design decisions/details.

Codecov Report

Merging #7648 into master will decrease coverage by 0.38%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #7648      +/-   ##
=========================================
- Coverage   58.69%   58.3%   -0.39%
=========================================
  Files         493     493
  Lines       21995   21995
  Branches     3533    3528       -5
=========================================
- Hits        12909   12824      -85
- Misses       8278    8355      +77
- Partials      808     816       +8

Impacted Files
Coverage Δ

src/client/testing/serviceRegistry.ts
48.64% <0%> (-46.85%)
:arrow_down:

src/client/testing/codeLenses/main.ts
44.44% <0%> (-33.34%)
:arrow_down:

...t/datascience/jupyter/jupyterDataRateLimitError.ts
66.66% <0%> (-33.34%)
:arrow_down:

src/client/formatters/serviceRegistry.ts
75% <0%> (-25%)
:arrow_down:

src/client/common/utils/platform.ts
64.7% <0%> (-23.53%)
:arrow_down:

src/client/common/utils/icons.ts
83.33% <0%> (-16.67%)
:arrow_down:

src/client/api.ts
78.57% <0%> (-14.29%)
:arrow_down:

src/client/datascience/cellFactory.ts
75.86% <0%> (-13.8%)
:arrow_down:

src/client/providers/providerUtilities.ts
83.33% <0%> (-5.56%)
:arrow_down:

src/client/common/platform/pathUtils.ts
66.66% <0%> (-5.56%)
:arrow_down:

... and 8 more

Continue to review full report at Codecov.

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


Documentation for SPARQL users

We deploy a SPARQL endpoint, but it is not easy for end users to understand the KG structure behind it and to translate that to useful queries. There's a need to provide the KG structure and possibly some example queries as a documentation linked to the SPARQL endpoint.
For now, the logical place to provide it is in the API section of the tech. doc., but other/better ideas are welcome

also general info on which entities/ontologies are inside to be able to querry on


Logstash

Terraform module to provision an Elasticsearch cluster with built-in integrations with Kibana and Logstash.

Apologies if is somewhere obvious, but where is the logstash, the host and how to configure it? I can't see anything about logstash here.
Thanks

@caevv good point. I think our repo is poorly worded. @osterman / @cloudposse/admins can one of ya'll remove the bit about logstash from this repository's description? It's a bit misleading and not necessary as this isn't a terraform-aws-ELK module.


Create an Ad for SILK

Create an Ad for SILK similar to the picture above.

Hey @SuzyQuant
Hope you're doing good. I'm not very clear on this issue. Can you please give more details and requirements for the preparation of the Ad?


Remove cgroups

Remove attributes for cgroup creation.  This attribute will cause an issue as we upgrade our machines with the code from friendly.

Made a mistake on the PR.  Will try this again.


typo

correction of command line

@MilanNXT : Thanks for your contribution! The author, @jeffgilb, has been notified to review your proposed change.


In Safari 15 browser, pages using html2canvas will cause the page to fake death and crash. The error is "this web page was reloaded because a problem occurred"

Please make sure you are testing with the latest release of html2canvas.
Old versions are not supported and issues reported for them will be closed.
Please follow the general troubleshooting steps first:

[x] You are using the latest version
[x] You are testing using the non-minified version of html2canvas and checked any potential issues reported in the console

Bug reports:
Through troubleshooting, we finally found that the page with problems was caused by using the button tag of the form tag and the placeholder attribute of the input
Please replace this line with a brief summary of your issue AND if possible an example on codesandbox.
Specifications:

html2canvas version tested with:last version
Browser & version:safari 15 Preview https://developer.apple.com/safari/download/
Operating system: macos,ios

the same iusse

#2633 remove -apple-system in font-family may help.

I'm using an old version and I have this issue, I'm not using chinese fonts however, how do I fix this?

same issue, removing -apple-system changed nothing for me

I searched all my css / scss files and -apple-system is not in any of them. Still fails on IOS15 device only.

same issue, i change font-family: -apple-system => font-family: PingFangSC-Regular, -apple-system, everything is fine


Default to pasting in right most column

What's the Problem?
When in columns view, if I go to paste a file from another folder, it's unclear how to tell Files which column I want to paste into. Generally I'd want to paste into the right-most column (IMO), but Files seems to use the next-to-last column as the focus.
I have to right click in the desired column and use the Paste in the drop-down to force it to paste in the column I want.
In this screenshot, the image with the red asterisk next to it is what I pasted using ctrl-V. I would have expected it to go in the right-most column as that's what was most recently opened, and it also is shown as the focused folder with the yellow line next to its folder name in the middle column.

Solution/Idea
I'm inclined to say that the right-most column should be the default. This is how Mac OS handles it, and I never had confusion when using that :) See this video starting at the 3:52 mark https://www.youtube.com/watch?v=68tuXHdJWvc
Alternatives
Maybe there's a way to indicate visually which column has focus for Paste purposes, or to let the user signify which they want to use before the paste happens
Priorities
| This proposal will allow end users to accomplish less confusing pasting of files in columns view | Should |
Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.376
Windows Version
Windows 11 Pro Version	21H2   OS build	22000.376 Experience	Windows Feature Experience Pack 1000.22000.376.0
Comments
No response

I have the same issue. It's not just copy and paste, the new button in the upper left corner does the same thig. I think the focus should be on the right column when it's opened.
A good implementation of this feature in my opinion would be like this:

make the active column for actions the right most column by default
change the background color slightly of the active column
if you explicitly click on another column you can make that column active so the actions can be performed there but by changing the background color the active column is always known beforehand

@Talisman39ar thank you for your feedback, we've made a number of improvements in this area, and it looks like this was fixed. Can you try the latest preview build and confirm if this is resolved? https://files.community/download


Add option g:rooter_check_all_patterns to check every pattern and use the deepest subdirectory

This is work on top of https://github.com/airblade/vim-rooter/pull/93. I've just added a configuration option g:rooter_check_all_patterns in order to enable the behaviour described in that pull request.

If you're checking every pattern, wouldn't you want to choose the shallowest root rather than the deepest?

See also #100.

Yeah, by deepest match subdirectory I meant if I have a file located at A/B/C/D/E and two patterns, and pattern one finds A/B as the root, while pattern two finds A/B/C as the root, I would like A/B/C to be used even though pattern two was second on the list. If I understood you correctly, I think this is the same as what you meant by shortest distance between root and the current file.
As far as I understand, this PR accomplishes that since FindAncestor searches upwards for the first match, so we can keep track of the longest returned filepath (e.g. A/B/C) to use for the root directory.
As for #100, I guess that could work as an optimisation but I'm not sure if it's necessary.

vim-rooter searches breadth-first as of 9b1fc7a.


web client

Not everyone has telnet.
It shouldn't be that hard to make a (ClojureScript?) text terminal which behaves like telnet and communicates with the same server as the telnet clients connect to.

Don't want this.


Move ASN.1 validation in-process

Now there's no need to call out to an external program, and parse its
output, to determine whether or not a given ASN.1 PDU is valid or not.
Should be significantly faster.

Nice


getUserMedia(mediaConstraints) does not consider deviceId and always open the default camera

When you pass the constraint to the getUserMedia(mediaConstraints), it always open the default camera and do not considerer the deviceId pass in the constraints. To test this you can change the default camera in Chrome and you will see that It will open the default one.
var mediaConstraints = <String, dynamic>{
          'audio': true,
          'video': {'deviceId': [SOME_DEVICE_ID]}
        };

This tracker is for issues related to:
dart2js
Dart SDK Version (dart --version)
Dart SDK version: 2.10.1 (stable) (Tue Oct 6 10:54:20 2020 +0200) on "windows_x64"
Whether you are using Windows, MacOSX, or Linux (if applicable)
Windows
Whether you are using Chrome, Safari, Firefox, Edge (if applicable)
Chrome

The problem come from constraints parameter is converted to JS object using convertDartToNative_Dictionary which does not work recursive as you can see in its implementation.

do you have some ETA for this fix?

same problem was noticed for MediaStreamTrack.applyConstraints() also

Talked this over a bit. cc @sigmundch @rakudrama
convertDartToNative_Dictionary is indeed non-recursive, which means if we support recursive maps like in the example, we need a separate method to copy recursively. As a workaround for your purposes, you can import dart:html_common and use convertDartToNative_SerializedScriptValue to convert the map before calling the API. Replacing convertDartToNative_Dictionary with this method wholesale isn't ideal since it overloads that method, and it may not handle types that are not clone-able properly. I think we would want a method that recursively copies a map while ignoring types that aren't a map and use that instead.

I believe there is much more broken APIs

This is possible, can you point to the ones you're coming across? It would be very useful to understand where recursive maps can be expected but aren't. Thanks!

Hi @srujzs
The only one I'm think about right now:
addStream

convertDartToNative_Dictionary has been changed to be recursive, but only handles anything that doesn't need a conversion, maps, and lists. This should cover the above APIs.

I am having the same problem, I'm defining the map itself explicitly without any methods or references and it still does not load the desired camera:
{       "video": {"deviceId": "0"},       "audio": false     }

That map is recursively copied as expected when I try it locally. Is the deviceId of the camera you're expecting 0 and is some other camera being loaded?


[Feature Request] Release for Windows IoT (RPi)

Hi.
I'm developing some network based device using Raspberry Pi. Currently, I'm using it based on Linux and coding with dotNet Core 2.
When trying to operate bluetooth or some device based item with dotnet core 2 on Linux, it is not fully supported. The only reason keep me using Linux is the SoftEther cannot support Windows IoT version.
Could you make a release build on Windows IoT? Thanks.

Hi,
In theory we only have to build binaries for ARM64, right?

Hi,
In theory we only have to build binaries for ARM64, right?

Nope. Win on arm64 requires ndis 6.3 certified drivers. It was a pain for OpenVPN

Nope. Win on arm64 requires ndis 6.3 certified drivers. It was a pain for OpenVPN


fix(homepage video): update mobile video

Set placeholder for desktop video
Replace old video with new one on mobile
minor style adjustments on the homepage

Resolves #447

Thanks @danielgolden


NO-TICKET: Initial kubernetes support

This has no impact on our core offering (the node) and can be gradually improved/replaced, so to avoid having a long running branch go stale, I propose to merge this to master and gradually phase pieces into our regular workflow, should we desire to do so.

Regarding @xcthulhu , this is a rough cut. Mainly the idea is to get the current state into master, albeit separate from everything else in /nix and /utils/casper-tools. There are roughly five different "sections" of the process that need to be worked upon separately, so this serves to set up an initial scaffolding only.
I could see removing default.nix though, that one slipped in by accident. On the other hand, I also don't mind keeping it in and improving on it.

Regarding @xcthulhu , this is a rough cut. Mainly the idea is to get the current state into master, albeit separate from everything else in /nix and /utils/casper-tools. There are roughly five different "sections" of the process that need to be worked upon separately, so this serves to set up an initial scaffolding only.
I could see removing default.nix though, that one slipped in by accident. On the other hand, I also don't mind keeping it in and improving on it.

I removed default.nix, leaving only an unsupported shell.nix at the root in. The remaining nix derivations (node.nix, deps.nix and node-container.nix) are soon to be replaced by SRE when the regular Docker tooling comes up.

I removed default.nix, leaving only an unsupported shell.nix at the root in. The remaining nix derivations (node.nix, deps.nix and node-container.nix) are soon to be replaced by SRE when the regular Docker tooling comes up.

So there is history in the use of k8s and casper labs.  12 months ago when i started the stests software I took certification on the assumption that it would be a big part of the solution.  However SRE team at that time did not have any k8s skills and stonewalled it's usage.  Furthermore I proposed (twice) a k8s expert friend of mine as a prospective candidate to focus on this specific task but he was not engaged as SRE was in 'transition'.  So now that SRE has a deeper skill set I am glad to be seeing this kindof PR.
Upon reviewing the PR there is work to be done to be able leverage this to perform wider scenario testing as the stests software  attempts to do.  I would suggest the following:

Move this code into utils/ktests  (kubernetes tests)
Renamed utils/nctl -> utils/ltests (loca tests)
Fold the stests repo into utils/stests.

Then begin to retroactively integrate ktests into stests.  I.E. extend stests simulation workflow engine to mutate target nodeset whilst simaltaneously dispatching.  It should be able to do this against the terraform & k8s 'infra backends'.

So there is history in the use of k8s and casper labs.  12 months ago when i started the stests software I took certification on the assumption that it would be a big part of the solution.  However SRE team at that time did not have any k8s skills and stonewalled it's usage.  Furthermore I proposed (twice) a k8s expert friend of mine as a prospective candidate to focus on this specific task but he was not engaged as SRE was in 'transition'.  So now that SRE has a deeper skill set I am glad to be seeing this kindof PR.
Upon reviewing the PR there is work to be done to be able leverage this to perform wider scenario testing as the stests software  attempts to do.  I would suggest the following:

Move this code into utils/ktests  (kubernetes tests)
Renamed utils/nctl -> utils/ltests (loca tests)
Fold the stests repo into utils/stests.

Then begin to retroactively integrate ktests into stests.  I.E. extend stests simulation workflow engine to mutate target nodeset whilst simaltaneously dispatching.  It should be able to do this against the terraform & k8s 'infra backends'.

Sounds good, let's make sure that that's capture. I'll be merging and improving upon this code in the meantime.
bors r+

Sounds good, let's make sure that that's capture. I'll be merging and improving upon this code in the meantime.
bors r+


Feature request: Add number ranges

In the same way that the IPAM handles networks, and then individual IP addresses underneath, it would be good if this could record direct in-dial ranges to a site, and then map individual numbers underneath.  That way we could create a block of 100 contiguous numbers and then assign each number as needed and be able to see which numbers in a range are still available to be assigned.

this would be an amazing feature


Correctly send customized values to Phoenix.

What's this PR do?
This fixes an issue where "custom" source values were stored on Northstar, but not correctly forwarded to Phoenix. Because the data team does not ingest from Northstar yet, this was causing incorrect data to be reported in the dashboards.
References #521.
How should this be reviewed?
👀
Checklist

[ ] Documentation added for changed endpoints.
[ ] Tests added for new features/bug fixes.
[ ] Post a message in #api if this includes something that causes a rebuild!

:1st_place_medal:


Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails

{
"message": "SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (bagisto_ecomerce.bge_cart_shipping_rates, CONSTRAINT cart_shipping_rates_cart_address_id_foreign FOREIGN KEY (cart_address_id) REFERENCES bge_cart_address (id) ON DELETE CASCADE) (SQL: insert into bge_cart_shipping_rates (carrier, carrier_title, method, method_title, method_description, price, base_price, cart_address_id, updated_at, created_at) values (flatrate, Flat Rate, flatrate_flatrate, Flat Rate, Flat Rate Shipping, 30, 30, 12, 2020-06-10 22:05:27, 2020-06-10 22:05:27))",
"exception": "Illuminate\Database\QueryException",
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 669,
"trace": [
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 629,
"function": "runQueryCallback",
"class": "Illuminate\Database\Connection",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 464,
"function": "run",
"class": "Illuminate\Database\Connection",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 416,
"function": "statement",
"class": "Illuminate\Database\Connection",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php",
"line": 32,
"function": "insert",
"class": "Illuminate\Database\Connection",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php",
"line": 2695,
"function": "processInsertGetId",
"class": "Illuminate\Database\Query\Processors\Processor",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php",
"line": 1366,
"function": "insertGetId",
"class": "Illuminate\Database\Query\Builder",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 839,
"function": "__call",
"class": "Illuminate\Database\Eloquent\Builder",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 804,
"function": "insertAndSetId",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 667,
"function": "performInsert",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/packages/Webkul/Shipping/src/Shipping.php",
"line": 87,
"function": "save",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/packages/Webkul/Shipping/src/Shipping.php",
"line": 46,
"function": "saveAllShippingRates",
"class": "Webkul\Shipping\Shipping",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php",
"line": 261,
"function": "collectRates",
"class": "Webkul\Shipping\Shipping",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php",
"line": 121,
"function": "__callStatic",
"class": "Illuminate\Support\Facades\Facade",
"type": "::"
},
{
"function": "saveAddress",
"class": "Webkul\Shop\Http\Controllers\OnepageController",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"function": "callAction",
"class": "Illuminate\Routing\Controller",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"function": "dispatch",
"class": "Illuminate\Routing\ControllerDispatcher",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"function": "runController",
"class": "Illuminate\Routing\Route",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 681,
"function": "run",
"class": "Illuminate\Routing\Route",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Illuminate\Routing\{closure}",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/packages/Webkul/Shop/src/Http/Middleware/Currency.php",
"line": 46,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Webkul\Shop\Http\Middleware\Currency",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/packages/Webkul/Shop/src/Http/Middleware/Theme.php",
"line": 31,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Webkul\Shop\Http\Middleware\Theme",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/packages/Webkul/Shop/src/Http/Middleware/Locale.php",
"line": 50,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Webkul\Shop\Http\Middleware\Locale",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 41,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Routing\Middleware\SubstituteBindings",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php",
"line": 76,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Foundation\Http\Middleware\VerifyCsrfToken",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php",
"line": 39,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Session\Middleware\AuthenticateSession",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php",
"line": 49,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\View\Middleware\ShareErrorsFromSession",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 683,
"function": "then",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 658,
"function": "runRouteWithinStack",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 624,
"function": "runRoute",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 613,
"function": "dispatchToRoute",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 170,
"function": "dispatch",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Illuminate\Foundation\Http\{closure}",
"class": "Illuminate\Foundation\Http\Kernel",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php",
"line": 65,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Barryvdh\Debugbar\Middleware\InjectDebugbar",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php",
"line": 56,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Session\Middleware\StartSession",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php",
"line": 37,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php",
"line": 66,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Cookie\Middleware\EncryptCookies",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 63,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 145,
"function": "then",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 110,
"function": "sendRequestThroughRouter",
"class": "Illuminate\Foundation\Http\Kernel",
"type": "->"
},
{
"file": "/var/www/html/backup/bagisto/public/index.php",
"line": 74,
"function": "handle",
"class": "Illuminate\Foundation\Http\Kernel",
"type": "->"
}
]
}

@asimzaka
this issue is fixed in master branch, so you can update your code with this commit https://github.com/bagisto/bagisto/commit/b42ccbfa9e719c8526b249bbfef1951a894d0705

Already tried it, not working
issue is in Cart.php
$this->cartAddressRepository->create(array_merge($billingAddressData, ['address_type' => CartAddress::ADDRESS_TYPE_BILLING]));
Address is created in _addresses table but not in _cart_address table, while
insert _cart_shipping_rates require cart_address_id which is not there in cart_address causing this issue.

HI @asimzaka
Run the following
composer dump-autoload
php artisan migrate
php artisan config:cache
php artisan vendor:publish

@asimzaka
No response from last 10 days so we are closing this issue.
Feel free to reopen it anytime

Hai @vaishaliwebkul  Am also facing these issues, when i insert some data while it through the error { Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails laravel } like this what to do for easiest way to solve the issues

This looks like you are trying to update the child row which doesn't have a parent. Kindly check your DB.

This issues fixed.
Thanks


Eagle Library

Footprint carefully recreated in eagle as functional library with symbol, device and description.
Also added Eagle render and entry for review/use.

I can't check this works in Eagle so grateful if someone else can confirm!


skate.emit(el) on a disabled event does not fire an event. Fixes GH-463

Fixes GH-463
This is because we cannot due it in firefox due to https://bugzilla.mozilla.org/show_bug.cgi?id=867418 .
For consistency, we will not trigger events on any browser if the element is disabled.
In addition, events cannot bubble through a disabled element.

Need to do docs for this too.


Hyperbolic function returns incorrect result

ℹ Computer information

PowerToys version: v0.31.1
PowerToy Utility: Run
Running PowerToys as Admin: Yes
Windows build number: 2004 (OS Build 21301.1010)
📝 Provide detailed reproduction steps:
Alt Space sinh(.9999999999999999999)
✔ Expected result:
1.175201193
❌ Actual result:
0.0038758297

I cut and paste and got the correct result.  Even just hitting .9s  Eventually you'll hit a precision issue with the mage plugin but that is a known issue.

@Michael-Daugherty can you take a screenshot?

  But that's not the point.  Something is wrong with the algorithm causing this discontinuous result.  Possibly, truncate the input at 19 before doing the trig function.  I a mechanical engineer, not a computer scientist or mathematician.

it is a floating point precision issue.  We don't control the calc library and just blindly send data to it.  Once the precision gets above a precision, you get what is basically a casting error.  Betting it casts to float vs double.
When we shift to the calculator's engine, this (famous last words) should be fixed.

#2265 is the tracking item for calc engine


common lon,lat,height values for 3 corner coordinates in cam2rpc generated xml file, does it affect the obtained rpc solution ?

The output file from cam2rpc with dem-file option has common latitude, longitude and height above ellipsoid values for 3 out of 4 corner coordinates in the output xml file. I wonder how much that would be affecting the solution of the obtained rpc model. I should add that the mapprojected data using the obtained rpc files plots at about the expected place.
This is same when I invoke the cam2rpc tool with either rpc or pinhole session on planetscope cameras or with the dg/rpc session on worldview cameras.
An example output from the WorldView Camera dg session:
        <NUMROWS>9107</NUMROWS>
        <NUMCOLUMNS>9961</NUMCOLUMNS>
                <BAND_P>
                    <ULLON>-121.959625500889118</ULLON>
                    <ULLAT>48.861419729316907</ULLAT>
                    <ULHAE>3261.59643554905279</ULHAE>
                    <URLON>-121.679052861405083</URLON>
                    <URLAT>48.861419729316907</URLAT>
                    <URHAE>3261.59643554905279</URHAE>
                    <LRLON>-121.679052861405083</LRLON>
                    <LRLAT>48.6797793439033981</LRLAT>
                    <LRHAE>197.97062683000695</LRHAE>
                    <LLLON>-121.959625500889118</LLLON>
                    <LLLAT>48.6797793439033981</LLLAT>
                    <LLHAE>3261.59643554905279</LLHAE>

Pscope rpc session output:
        <NUMROWS>2134</NUMROWS>
        <NUMCOLUMNS>6600</NUMCOLUMNS>
                <BAND_P>
                    <ULLON>86.8953303672291781</ULLON>
                    <ULLAT>27.9964617898585644</ULLAT>
                    <ULHAE>8745.40429687373035</ULHAE>
                    <URLON>87.0964457935568674</URLON>
                    <URLAT>27.9964617898585644</URLAT>
                    <URHAE>8745.40429687373035</URHAE>
                    <LRLON>87.0964457935568674</LRLON>
                    <LRLAT>27.8909457427697589</LRLAT>
                    <LRHAE>5050.42041015647828</LRHAE>
                    <LLLON>86.8953303672291781</LLLON>
                    <LLLAT>27.8909457427697589</LLLAT>
                    <LLHAE>8745.40429687373035</LLHAE>

I looked at both of these and also at the code. I think the lon and lat are correct, if I plot these corners, I get a rectangle, which is how it is intended. It is true that three of the four heights are the same. All these numbers are strictly speaking not that important, since it is not these that are used, rather the RPB values which are further below, so these numbers are just to make the file compliat to the expected format. I put a fix for the height though, now there should be two heights of one kind and two of the second kind. Thank you for noticing.


mruby-time: add check to prevent invalid time

Time.at(-1)  # => ïD$♦ ░`☻ Sat -1 -1:-1:-1 1899
Time.at(100) - 101  # => ïD$♦ ░`☻ Sat -1 -1:-1:-1 1899

I added a check to mrb_time_make that'll raise an ArgumentError instead.

We are still making effort to use negative time_t if possible, to represent my birthday time (I am an old man).


[ CHEC-753] Adding inline alert version

Adding the inline alert version.
Adding the new square icons.
Adding option to disable close button
Updating story to reflect new options and inline versions.

Can you remove the .DS_Store file and add that filename to your global gitignore rules?

Nice. I was just about to merge but I remembered that we actually have the non-coloured variant in use on the new docs:
https://www.figma.com/file/ypYnoIU8yJfnhek3h2ZRvQ/Docs-Website?node-id=3%3A686
We'll need that as an option
Additionally, can you add a knob for the "inline" prop to the "Default" story?

Additionally, can you add a knob for the "inline" prop to the "Default" story?

Fixed the issue where info displayed in incorrect color and updated the story.

🎉


User concern over JavaScript and cookies

User input:
Hoot looks like a bad idea

First, it asks for JavaScript, even for reading.
Than it needs to download JavaScript from a third party.
Third, it needs to install cookies.
At this point you might just mirror Gold and Black on Twitter and Facebook.

Source:
https://www.reddit.com/r/GoldandBlack/comments/mtkx0p/hoot_looks_like_a_bad_idea/

Hoot uses a javascript framework (vue.js) along with a css/js ui toolkit (Vuetify), and it uses a cookie to store your session key if you're logged in. This is how the web functions, javascript and cookies aren't evil even if it is possible to abuse them. Ou code is open and you can clearly see how we use these things, no reason to invent FUD.


Fix error in readme

Readme had out of date information about correct env vars to use.
What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Testing Guidelines
How did you test this pull request?
Additional Notes
Anything else we should know when reviewing?

Codecov Report

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

@@           Coverage Diff           @@
##           master      #17   +/-   ##
=======================================
  Coverage   89.49%   89.49%
=======================================
  Files          18       18
  Lines         457      457
  Branches       67       67
=======================================
  Hits          409      409
  Misses         30       30
  Partials       18       18

Continue to review full report at Codecov.

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


expvar: use atomic types+methods instead of atomic functions to guarantee 8-byte alignments for Int and Float values

If the Int and Float types are embedded in other struct types,
the alignments of the Int and Float fields might be not always
8-byte on 32-bit architectures.
This PR tries to avoid this problem.

Close for done in other PRs.


Test against Python 3.10.0-alpha.5

Re-apply #25 // @sondrelg

Run ./
/tmp/tmp.UNw8QVrbnh: line 1: 404:: command not found
Error: Process completed with exit code 127.

Getting strange error on CI runs - @sondrelg ?

Of course there is

I'll take a look

Fix incoming 😊 Should be OK in ~30 mins

If you rebase on main again it should pass 🤞 Or at least it shouldn't fail with the same error 😄

Great! So we're waiting for a Poetry non-alpha release now?

Yeah as long as nothing else comes up that needs fixing, I guess updating the latest default version is next, when 1.2 is released 🙂

@sondrelg Confirmed working with python 3.10.0-beta.1, poetry 1.2.0a1, and install-poetry 1.1.6 in these three projects:

https://github.com/reclosedev/requests-cache/runs/2650966112
https://github.com/JWCook/aiohttp-client-cache/runs/2651094750
https://github.com/niconoe/pyinaturalist/runs/2651120423

Thanks a bunch @JWCook  👏


MissingPluginException

When issuing an init I get the message:
Error: MissingPluginException(No implementation found for method initSDK on channel sumup)
Is there an upgrade needed or something else?

I think a flutter pub get before compiling the app should be enough

I did so and it did not resolve the issue

Have you tried flutter clean?

good idea, but it did not work.
the complete messages:
Error: MissingPluginException(No implementation found for method initSDK on channel sumup)
dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 294:49  throw
packages/flutter/src/services/platform_channel.dart 313:7                     _invokeMethod
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50
dart-sdk/lib/async/zone.dart 1661:54                                          runUnary
dart-sdk/lib/async/future_impl.dart 162:18                                    handleValue
dart-sdk/lib/async/future_impl.dart 846:44                                    handleValueCallback
dart-sdk/lib/async/future_impl.dart 875:13                                    _propagateToListeners
dart-sdk/lib/async/future_impl.dart 647:5                                     [_completeWithValue]
dart-sdk/lib/async/future_impl.dart 721:7                                     callback
dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 181:15

Ah ok you're using flutter web, that's the issue. The only supported platforms are iOS and Android as you can see from the pub.dev page.


Canvas error in Next.js

Getting this error when I am trying to render any type of document. How to fix it?
./node_modules/canvas/build/Release/canvas.node
Module parse failed: Unexpected character '�' (1:2)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)

@raviprakash1408, Did you get any solution for this??

Same issue

Using https://github.com/eisberg-labs/nextjs-node-loader/ worked for me.

Using https://github.com/eisberg-labs/nextjs-node-loader/ worked for me.

wow thank you bro this works on me too


ReferenceError: URL is not defined

Current Behavior
the URL global is not exposed to the function node sandbox, and I need it to properly parse URLs in function code, like so:
    const urlObject = new URL(e[0].link[0].$.href);
    // Extract the 'tag' parameter
    const extractedTag = urlObject.searchParams.get('tag');

Expected Behavior
I should be able to write "new URL()" and then use the result to parse out URL arguments, manipulate them, etc.
Steps To Reproduce
See above
Example flow
paste your flow here

Environment

Node-RED version: c4.0.5
Node.js version: 22.x
npm version: N/A
Platform/OS: Linux
Browser: N/A

For future reference, the workaround is to add url to the setup tabs list of modules to import. You will then have access to url.URL which is the same as the global URL object


applet.interface.spi_serprog: New applet that implements the Flashrom Serprog protocol

So far this is a draft, and will likely require improvements in a few ways; I'm thankful for any pointers in that regard.
I have however tested this applet with two different flash chips and it seems to work fine.
TODO

[x] Upload serprog.h and serprog-protocol.txt to the archive repo
[x] update pdm lock
[x] remove usage of match
[x] remove boilerplate code
[x] flake8
[x] enum style
[x] byte encoding/decoding style

This PR fails CI.

Thanks for working on this! I think flashrom support could be quite useful, for the same reasons we have both jtag-openocd and other JTAG options.

@whitequark thanks for the review! I'll get back to it in detail later

Also, just to be clear: I think flake8's default settings are a net negative, but there is a small subset that we do already require (but don't have written dwon anywhere) and so it's easier to automate that.

I don't fully understand the coroutine and exception stuff here, but upon further testing I discovered the following:

Without the try/except block, the applet stops after the first client disconnects, which I found somewhat undesirable. With it, multiple consecutive connections are accepted, until the applet is terminated explicitly.
Without spawning a coroutine for the handler, I have to press ^C twice to terminate the applet, and it prints a python backtrace. With the coroutine, one ^C terminates the applet cleanly.

So I reintroduced these two things in the last two commits

Would you like to become the code owner for the new applet?

If that simply entails that I'll be pinged on pull requests changing this applet. yes please. I can at least review the serprog-specific details.

If that simply entails that I'll be pinged on pull requests changing this applet.

Pretty much. You can add yourself to the CODEOWNERS file then. I think I'll also need to add you to the org.

I thought about adding serprog.h and serprog-protocol.txt to the archive repo, but since the "vendor" in this case is another open source project, it doesn't seem so necessary

I will probably reword the applet description a bit.

The formatting is a bit broken too (in --help output), but I'll leave it as is for now, if you're going to reword the text anyway

I can squash the commits that need squashing, when it's convenient for you

I'm currently reviewing this applet locally. I'm making a number of changes, which I'll squash into the commit introducing the applet but describe here:

Rename from spi-serprog to spi-flashrom (like jtag-openocd); it appears that "serprog" is just "flashrom's private protocol" rather than anything established.
Rewrite the documentation to be more concise and closer to that of jtag-openocd.
Add cross-links between spi-flashrom and memory-25x help text, to make the operator aware of the alternative in both cases.
Remove "preview" flag from the applet since it seems reasonably mature to me.
Add "hold" and "wp" pin assignments, which are necessary to read many flashes when they're in a clip because by default or chance the flash would end up either write-protected (if WP is active) or just non-communicative at all (if HOLD is active); I encountered this issue during testing. The memory-25x applet handles this.


course crawling with lxml

change overview:

Course.syllabus no longer contains html, pure text only, patch needed for PDF link
extracting info with lxml reduces about 1 minute (6 -> 5 min) on my laptop

target branch should be dev


⚠ ClamAV has degraded performance

In 1651f8e, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 210 ms

Resolved: ClamAV performance has improved in 0ad29e3.


Dropdown broken, need to upgrade office-ui-fabric-react

Category

[ ] Question
[x] Bug
[ ] Enhancement

Expected or Desired Behavior
A dropdown used within the toolpane should show the value that has been selected by the user after clicking on an item within the dropdown list.
Observed Behavior
The upgrade to<EMAIL_ADDRESS>introduced some regression, causing the dropdown to stop displaying the value selected by the user. Based on the issue #2719 raised on the office-ui-fabric repository, the following bug was introduced in 4.32.0 :

With multiselect update a bug was introduced where 'selected' was being applied to options in non mulitselect dropdowns, but it was never being removed when the next option was clicked. So in the end every options.selected clicked was set to true, and the 1st would be displayed.

They did fix the issue, but the SharePoint packages are still referring 4.32.0, so an update to a newer version would be required in order for us to be able to add dropdown in toolpanes without issues.
One temporary solution would be to specified my own version of office-ui-fabric-react in my package.json but I remember reading that using a different version than the one loaded by the SharePoint packages isn't recommended, is it still the case?
Steps to Reproduce
Create a new React WebPart based on the generator and add a dropdown in the toolpane. Select an option and see what happens.

We closed this issue as it had not activity within last 180 days. This is a generic process we have decided to perform for issues, which have not been explicitly marked still to be "work in progress" based on tags. We are performing this cleaning to make sure that old issues that have already been solved (but not closed) or are no longer relevant are cleaned out and make the issues more manageable. If this issue still valid, we would ask you to open a new issue and follow the guidance in the issue template related on the recommended location. We do apologize any inconveniences this might cause. Please do remember that issues in the issue lists are also messages for others in the community, so you can also check if you can assist on any of them. “Sharing is caring!”


Not working after 0.115

Hi,
My gardena robot mower doesn't work anymore.
I has been working perfectly until I updated HA.
I get the following error message in my log:
Invalid config
The following integrations and platforms could not be set up:
gardena_smart_system.sensor
gardena_smart_system.switch
gardena_smart_system.vacuum
Please check your config.

Do you have updated the integration to the last Version? There are an fix in place for the break after HA update to 0.115
-> https://github.com/py-smart-gardena/hass-gardena-smart-system/issues/43

I removed "unit" and now it works. i will try to close this thread.
thanks Northpower25!


Backport fixes into 2.0.x

Following on https://github.com/rocketeers/rocketeer/issues/438
Thanks for making a new release. Could you also backport the following fixes into 2.0.x (.6)?

Update-command fails for svn: https://github.com/rocketeers/rocketeer/pull/408
Prompt for keyphrase: https://github.com/rocketeers/rocketeer/issues/190
Wrong version number: https://github.com/rocketeers/rocketeer/blob/2.0.5/src/Rocketeer/Rocketeer.php#L29

Hm the prompt for ssh keyphrase is not possible, it's a big change to the CredentialsGatherer and requires the new credential types which are a BC change

Ah, too bad, I thought that change was backwards compatible according to your comment: https://github.com/rocketeers/rocketeer/issues/190#issuecomment-67255326

Well it's more or less compatible, ie. it won't literally break but it'll start prompting everyone for stuff it didn't use to ask them if they're not aware and don't update their configurations which isn't the nicest thing.

Tagged 2.0.6 with the version constant and SVN fix


Choice of language/framework

We need to decide on what languages/framework or maybe even CMS to use here. I'm personally biased towards python/django or even python/flask, but since I can use a host of different languages, I will not be a part of the decision process.
However, some goals I think are important.

we should look at everybody's skill set and try to find something that works for most people
we should try to avoid things that have known security issues (Joomla, look here for a second)
building the website itself involves skills and commitment. Those involved will get the recognition on the site itself
more experienced members should have an attitude of helpfulness towards less experienced members

That is my  personal wish list. But, @laudb is leader of this project. His word is final, in case of any dispute

With all this said I thing drupal can help us achieve this especially starting from the fact that it is a community based site. so far as I know redhat, and some other opensource community projects have their community site based on drupal. We can start with the base distribution Drupal Commons
Then modify it completely from presentation to functionality most of which come out of the box.

With all this said I thing Drupal can help us achieve this especially starting from the fact that it is a community based site. so far as I know redhat, and some other opensource community projects have their community site based on drupal. We can start with the base distribution called Drupal Commons. there are other distributions there towards community based sites like Open Social, OpenLucius
Then modify it completely from presentation to functionality most of which come out of the box
and yes it is based on PHP

I've done quite a bit of drupal work in the past. Got really annoyed at some point, but it seems like Drupal 8 might have fixed a lot, being built on top of Symfony Components (which I do like).
My small issue is knowing how to track Drupal in git, seeing that it is a CMS and not a framework. I don't mean we should track all the content, but at least the site structure.  Some symfony and laravel as well, and those are PHP frameworks.

If drupal will be something that is learnable easily for beginners, then I suggest we should that framework. My suggestion though. Thanks

Very much nice learning curve for beginners.
I got video tutorials on it from basics to advanced.  Ready to share with anyone interested

Oh okay, will love to have it...

Ayt you can link up next Saturday

Hopefully


Show all courses

Show all courses in the course picker
Closes #19
Validation
Use the course picker.  You should see previous courses, as well as current.  The current course(s) should be at the top.
$ agio courses

Codecov Report

Merging #26 (1042ce3) into develop (307efc6) will not change coverage.
The diff coverage is 0.00%.

:exclamation: Current head 1042ce3 differs from pull request most recent head 1a08d9e. Consider uploading reports for the commit 1a08d9e to get more accurate results

@@           Coverage Diff            @@
##           develop      #26   +/-   ##
========================================
  Coverage    71.06%   71.06%
========================================
  Files            4        4
  Lines          432      432
========================================
  Hits           307      307
  Misses         125      125

Impacted Files
Coverage Δ

agiocli/api_client.py
45.23% <0.00%> (ø)

Continue to review full report at Codecov.

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

@japplefield would you mind taking a look and reviewing?


Add extra map, bind and join operators.

What do you think about adding some more fundamental operators to this library @talex5 ?
In writing some documentation on using this library outside of ocurrent I ended up defining the following functions.
val map2 : ?eq:('c -> 'c -> bool) -> ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
val bind : ?eq:('b -> 'b -> bool) -> ('a -> 'b t) -> 'a t -> 'b t
val join : ?eq:('a -> 'a -> bool) -> 'a t t -> 'a t

Then you can write code like this in a more natural style.
let rec merge ar ~f =
    if Array.length ar <= 1 then ar.(0)
    else
      let len = Array.length ar in
      let len' = len / 2 + (len mod 2) in
      let ar' =
        Array.init len' (fun i ->
          if i * 2 + 1 >= len then ar.(i*2)
          else Current_incr.map2 f ar.(i*2) ar.(i*2+1))
      in
      merge ar' ~f

let average ar =
  let sum = merge ar ~f:(+.) in
  Current_incr.map (fun s -> s /. float (Array.length ar)) sum

 let average_of_prefix ar length =
    Current_incr.bind (fun length ->
      average (Array.init length (fun i -> ar.(i)))) length

If you're going to add that, it might be better to use the new let syntax instead, e.g.
let average ar =
  let sum = merge ar ~f:(+.) in
  Current_incr.map (fun s -> s /. float (Array.length ar)) sum

becomes
let average ar =
  let+ sum = merge ar ~f:(+.) in
  sum /. float (Array.length ar))

Not sure it's worth it, given how small the library is at present, but we did already add map.
https://discuss.ocaml.org/t/ann-current-incr-a-small-incremental-library-with-no-dependencies/5531/7?u=talex5 notes that writing code this way may be a little less efficient.


Draw a large two-dimensional array on heatmap

May I ask if this control can draw a large two-dimensional array on heatmap, like Matplotlib, without limiting the size of the array.

There is a size limit now what ScottPlot can handle. However, a simple downscaling method was added which you can use to reduce the size of your 2D array to a plottable size. See info here:
https://github.com/ScottPlot/ScottPlot/issues/2518
Actually if you have more data than pixels in the chart on your monitor, it is generally does not make sense to try to plot it. Always use some sort of data reduction, downsizing, image pyramid,etc.
Of course, if you want to always get the optimal best resolution for example during zoom in zoom out steps, then the things start to get more difficult :)

I'm modifying this this issue to track progress toward creating a cookbook recipe demonstrating this technique.
It's a common enough question that it may warrant a FAQ page on the website too.

Here's code that demonstrates how to display a heatmap which is too large to display normally:
// generate data too large for ScottPlot to display
double[,] data = DataGenerator2D.Sin(100_000, 5_000);

// reduce vertically until it's 100 high or less
while (data.GetLength(0) > 100)
    data = MeanDownsampler.DownsampleY(data);

// reduce vertically until it's 500 wide or less
while (data.GetLength(1) > 500)
    data = MeanDownsampler.DownsampleX(data);

// plot the heatmap like usual
Console.WriteLine($"Plotting...");
ScottPlot.Plot plt = new();
plt.AddHeatmap(data, lockScales: false);
plt.SaveFig("test.png", 800, 600);

I scaled down to a small size (500x100) but you can make your final heatmap any size:

Here's the code that does the downscaling:
static class MeanDownsampler
{
    public static double[,] DownsampleX(double[,] data)
    {
        int height = data.GetLength(0);
        int width = data.GetLength(1) / 2;

        Console.WriteLine($"Downsampling width {data.GetLength(1)} to {width} x {height}");

        double[,] data2 = new double[height, width];

        for (int y = 0; y < height; y++)
        {
            for (int x = 0; x < width; x++)
            {
                data2[y, x] = (data[y, x * 2] + data[y, x * 2 + 1]) / 2;
            }
        }

        return data2;
    }

    public static double[,] DownsampleY(double[,] data)
    {
        int height = data.GetLength(0) / 2;
        int width = data.GetLength(1);

        Console.WriteLine($"Downsampling height {data.GetLength(0)} to {height}");

        double[,] data2 = new double[height, width];

        for (int y = 0; y < height; y++)
        {
            for (int x = 0; x < width; x++)
            {
                data2[y, x] = (data[y * 2, x] + data[y * 2 + 1, x]) / 2;
            }
        }

        return data2;
    }
}

Here's how I generated my test data:
static class DataGenerator2D
{
    public static double[,] Sin(long width, long height, int xMult = 10, int yMult = 5)
    {
        Console.WriteLine($"Generating 2D array with {width * height:N0} values...");

        double[,] data = new double[height, width];

        double[] ys = Enumerable.Range(0, data.GetLength(0))
            .Select(x => (double)x / data.GetLength(0) * (2 * Math.PI))
            .Select(x => Math.Sin(x * yMult))
            .ToArray();

        double[] xs = Enumerable.Range(0, data.GetLength(1))
            .Select(x => (double)x / data.GetLength(1) * (2 * Math.PI))
            .Select(x => Math.Sin(x * xMult))
            .ToArray();

        for (int y = 0; y < data.GetLength(0); y++)
        {
            for (int x = 0; x < data.GetLength(1); x++)
            {
                data[y, x] = xs[x] + ys[y];
            }
        }

        return data;
    }
}

Note: This code is here for users who need to display extreme-sized heatmaps. I'll build this into the heatmap to make this easier in ScottPlot 5 if necessary (which may not have this size limitation at all)


Auto selection / cropping the image

I want auto selection/ cropping in the project .Can you please explain the methods/ways that are used to implement the same?
I have change the value of imageDedectionConfidence value to 1 but nothing happens. Can you explain what I need to do?

This is out of the scope of this control. However, my approach was to firstly check if previous detected rectangle points were within the bounds of their predecessor. With each border detection frame being in bounds, I added a + 0.1 to the overall confidence. Once the control reaches a certain confidence, then the rectangle is drawn and the progress indicator is incremented. Once I reach 1.0 on confidence, I automatically triggered the capture.


When running and then stopping networkservicemesh as a daemonset, the Close() plugin function isn't called

We need to understand what signal is generated to the containers when a daemonset is stopped. Currently, our Close() function is not called when deleting a daemonset containing networkservicemesh. This may require changes in the Ligato framework should it need to handle a signal other than SIGINT [2].
[1] https://github.com/ligato/networkservicemesh/blob/master/plugins/netmesh/plugin_impl_netmesh.go#L91
[2] https://github.com/ligato/cn-infra/blob/master/core/event_loop.go#L25

Closed since #55 merged.


Added a new functionality to return the RotateFlipType in Image Codeunit

Since images taken by Camera sometime contain a rotation (EXIF property) trying to upload such images would result in rotated image in the Business Central hence added a new functionality to return the RotateFlipType if any in Image Codeunit

Is there a way to provide a couple tests more?

I was asked by my colleagues (among them @SanamSantosh) to step in. As I am totally new to this issue I have studying the issue and code (changes). And while doing this I noticed a typo i the additional string provided in AreEqual
Typo issue
[Test]
procedure GetRotateFlipTypeTest()
...
begin
    ...
    // [Then] verify image rotate flip type
    Assert.AreEqual(RotateFlipType::RotateNoneFlipNone, Image.GetRotateFlipType(), 'Getting Rotation Type Filed');
end;

I reckon 'Getting Rotation Type Filed' should be 'Getting Rotation Type failed'

Now to the request from @mazhelez:

Is there a way to provide a couple tests more?

Possible additional test scenarios
[Test]
procedure CheckRotateFlipTypeFor90DegreesRotatedImage()
var
    Image: Codeunit Image;
begin
    // [Scenario] Check Rotate Flip Type for 90 degrees rotated image

    // [Given] base64 encoded data, create image
    Image.FromBase64(<a label should be provided containing a 90 degrees rotated image>);

    // [Then] verify image rotate flip type
    Assert.AreEqual("Rotate Flip Type"::Rotate90FlipNone, Image.GetRotateFlipType(), 'Getting Rotation Type failed');
end;

and other scenarios:

// [Scenario] Check Rotate Flip Type for 180 degrees rotated image
// [Scenario] Check Rotate Flip Type for 270 degrees rotated image
// [Scenario] Check Rotate Flip Type for horizontal flipped rotated image
// [Scenario] Check Rotate Flip Type for horizontal flipped rotated and 90 degrees rotated image
// [Scenario] Check Rotate Flip Type for horizontal flipped rotated and 180 degrees rotated image
// [Scenario] Check Rotate Flip Type for horizontal flipped rotated and 270 degrees rotated image

I can provided the code if someone can help to get the various labels defined that holds the relevant flipped/rotated image.
Notes
Allow this old fart to make a couple of notes (@JesperSchulz surely by now knows why):

seeing your tests with many times incomplete ATDD definitions (surely the once missing the SCENARIO tag) this could have been done better, making it easier for any one else to step in
why using the word Test at the end of each test method when you know it is a test?

I can provided the code if someone can help to get the various labels defined that holds the relevant flipped/rotated image.

Now studying the available tests more I reckon I can solve this by using one of the available image labels and do the rotation first. Right @mazhelez?

Trying to get this done I have:

Created a BC docker container with all test related libraries installed
Forked this repo to have System, System Test Libraries and System Test apps locally
Opened these in a multi-root workspace in VS Code and made sure I have the above code changes in it

Wanting to build System and System Test apps I am getting a whole bunch of error on missing assemblies.
How to I get this fixed? What to put in "al.assemblyProbingPaths"?
@JesperSchulz / @mazhelez

All 8 scenarios have been implemented making use of hard coded images as the rotation and flipping method in BC do not add this info to the image. We have made use of images provided here https://magnushoff.com/articles/jpeg-orientation/ and have converted them to Base64.
@SanamSantosh will add the object files to this PR.

@mazhelez Made the suggested changes and added the additional test cases. Could you please review the same?

Left minor comments :)
But it is weird that the rotate type doesn't change when using the RotateFlip functionality.

The existing code for saving pictures does not store the rotation in the picture properties. That was the reason that we got rotation of our pictures during the resizing and we have enriched the code with this new functionality.

@mazhelez Implemented the suggested chnages.

The PR has been uptaken and the functionality will be available in the next minor release.


[$1000] Hidden shows for new user while split bill

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

click on FAB icon and select Split bill option
enter amount and click Next button
enter email which is not in list
select that user and click on Next button
click on that user from split bill list

Expected Result:
should show email instead of Hidden
Actual Result:
Hidden shows instead of email
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.46-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/cff4d1ad-2172-44da-a240-f9a9fa97d480
https://github.com/Expensify/App/assets/43996225/6180d3f9-aa28-4925-b3a1-0a5087d293d0
Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690279789774759
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01d600bb94443bb79d
Upwork Job ID:<PHONE_NUMBER>688193024
Last Price Increase: 2023-07-26

Proposal
Please re-state the problem that we are trying to solve in this issue.
Splitting the bill with a user we don't have a chat open with, shows hidden in info.
What is the root cause of that problem?
The root cause of this issue is that on PersonalPage.js, we are trying to get the data of the selected participant for the split from the personal details stored in Onyx. Since this is a new user, the only data that Onyx API returns for that user is accountID and avatar. Therefore, the displayName property takes the value hidden.
What changes do you think we should make in order to solve the problem?
This issue could be solved in a few ways, I will try to keep this simple.
My initial thought would be to make an API request to populate the new user's personal data on Onyx PERSONAL_DETAILS key when we are done with adding participants on the participants split selector. I looked around the code and, correct me if I am wrong, this is only happening on the openReport API call.
Not sure if this is avoided on purpose, please let me know
What alternative solutions did you explore? (Optional)
Another solution I found to be interesting, is using the data on the IOU key of Onyx. This key holds data about the participants of the split.
We could check if this value does contain data for a participant with the same accountID we are trying to fetch, and fill it in to get the login and be able to get the displayName, since that data contains both accountID and login.
Please let me know if any of the solutions are acceptable, so I can prepare a Proposal based on one of them, or if I should investigate further solutions
Thanks 🙏

Agree this is a dupe


Steam overlay not working for some emulators

So far I've tried Project64, Higan, and Dolphin, and all of those work fine with the Steam overlay, but Nestopia and snes9x do not. Everything else is working fine, and when I close the emulator it goes back to Steam, but hitting the home button on those emulators does nothing. Any suggestions?

Interesting, I haven't tried either of those emulators myself. Are you launching them directly, or going through a script? Would you mind posting the contents of your emulators.txt?

Do they work if you launch them with the steam runtime?
You can do that by launching them like this:
~/.steam/steam/ubuntu12_32/steam-runtime/run.sh /path/to/emulator/binary

I'm launching them directly. I don't have the text file with me right now, but I just copied it from the Emulators page on your site. Obviously with the path changed to reflect mine.
[Nestopia]
location=C:\Emulators\Nestopia\nestopia.exe
command=%l %r
[Snes9x]
location=C:\Emulators\Snes9x\snes9x-x64.exe
command=%l -fullscreen %r
And I've never launched anything with steam runtime and not sure how to. I'm using Windows.
To be honest though, I've moved on from those two emulators and found a better solution with Retroarch. I still don't get the overlay with Retroarch, but I don't exactly want to because when I hit the home button it brings up the emulator's UI which is a lot more useful than the Steam overlay.
Thanks anyway though!

RetroArch works fine with the Steam overlay. Have you checked your resolution settings?

It does work now ever since Valve came out with an update a few months back. I actually had to change RetroArch's menu button from the home/guide button, to something else.

It does work now ever since Valve came out with an update a few months back. I actually had to change RetroArch's menu button from the home/guide button, to something else.

Did you end up changing it to a combo mapping or something? What did you change it to? Think it's something we could push up to https://github.com/libretro/retroarch-joypad-autoconfig ?

I changed it to L3+R3.
I haven't been keeping up with the nightlies so I don't know what additions they've made, but the current stable has a few different button combo options to bring up the menu.


Integrate Homology summary widget and detail view

Please integrate the existing Homology summary widget and detail view from the PoC version into the alpha version.
When integrating the detail view, please change the order of the tabs and display the Orthology Table first followed by the Gene Tree view - this should prevent browser performance issues caused by multiple calls to Ensembl.

This has been implemented using the Ensembl API directly from the frontend until the backend provides the required GraphQL schema for homologies described on this ticket https://github.com/opentargets/platform/issues/1047

This has produced something to think about. Sometimes, Ensembl takes quite a bit to respond. How easy is to link the loading state (as when the page is loaded at first) to the API query?


cigien: Watch worldsdecor.in

cigien requests the watch of the watch_keyword worldsdecor\.in. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

worldsdecor\.in has been seen in 1 true positive, 0 false positives, and 0 NAAs.

worldsdecor\.in has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ

Approved by tripleee in Charcoal HQ


numpy functions on jagged arrays don't produce compatible arrays

I wonder if this is my misunderstanding of the API, but I'm running in to the following on a CMS NanoAOD file with a varying number of muons per event:
mu_pt = arrs[b'Muon_pt']
mu_phi = arrs[b'Muon_phi']

#select events with exactly two muons with pt>20
s = (mu_pt>20)
dimuon = (s.counts == 2) & (s.sum()==2)

#select the muon momentum components for such dimuon events
mu_pt_sel = mu_pt[dimuon]
mu_phi_sel = mu_phi[dimuon]

Now when computing the np.sin function on the selected subarray, the jaggedness (starts/stops structure) of the subarray changes.
mu_phi_sel.starts[:10]
array([ 0,  2,  4,  9, 11, 13, 16, 18, 20, 22])

np.sin(mu_phi_sel).starts[:10]
array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])

so I can't do mu_pt_sel * np.sin(mu_phi_sel) as would seem natural. Is this expected?
I can of course do mu_pt_sel.regular() * np.sin(mu_phi_sel).regular() but this seems to break the API.

It's designed to let you do mu_pt_sel * np.sin(mu_phi_sel), did you try it?
The starts can change without changing the number of items per subarray. Masks do as little work as possible, dropping items from starts and stops but without consolidating the content. Numpy ufunc application consolidates the content, if necessary, so that the ufunc can be applied directly to the contents of two arrays.
Their physical starts and stops may adjust to get aligned, but their logical counts should be unchanged, so that there's still the right number of mu_pt_sel for each np.sin(mu_phi_sel).

There's a theoretical overview of jaggedness representations here.
If mu_pt_sel * np.sin(mu_phi_sel) doesn't actually work, that would be a bug. I'd need to see a minimal example to debug it, though.
Also, note that (s.counts == 2) & (s.sum == 2) means "events that have exactly two muons and those two muons pass the cut." In HEP, I'm more familiar with s.sum() >= 2 for "events in which at least two muons pass the cut."

Thanks for the quick reply! Unfortunately mu_pt_sel * np.sin(mu_phi_sel) doesn't work, I'm using awkward.__version__ = '0.6.0'
mu_pt_sel * np.sin(mu_phi_sel)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-179-2415a9b63e15> in <module>
----> 1 mu_pt_sel * np.sin(mu_phi_sel)

/usr/local/lib/python3.5/dist-packages/numpy/lib/mixins.py in func(self, other)
     23         if _disables_array_ufunc(other):
     24             return NotImplemented
---> 25         return ufunc(self, other)
     26     func.__name__ = '__{}__'.format(name)
     27     return func

/usr/local/lib/python3.5/dist-packages/awkward/array/jagged.py in __array_ufunc__(self, ufunc, method, *inputs, **kwargs)
    778                     starts, stops = inputs[i]._starts, inputs[i]._stops
    779                 else:
--> 780                     inputs[i] = inputs[i]._tojagged(starts, stops, copy=False)
    781
    782             elif isinstance(inputs[i], (awkward.util.numpy.ndarray, awkward.array.base.AwkwardArray)):

/usr/local/lib/python3.5/dist-packages/awkward/array/jagged.py in _tojagged(self, starts, stops, copy)
    757             index = self._starts[parents]
    758             index += increase
--> 759             out = self.copy(starts=starts, stops=stops, content=self._content[index])
    760             out._parents = parents
    761             return out

IndexError: index 853180 is out of bounds for axis 1 with size 853176

Here's the minimal example, the input file is available at /afs/cern.ch/user/j/jpata/work/E07AC933-F342-E811-A68D-3417EBE5354A.root.
import uproot
from awkward.util import numpy as anp
tt = uproot.open("E07AC933-F342-E811-A68D-3417EBE5354A.root").get("Events")
arrs = tt.arrays(["nMuon", "Muon_pt", "Muon_eta", "Muon_phi", "Muon_mass"])

mu_pt = arrs[b'Muon_pt']
mu_phi = arrs[b'Muon_phi']

xx = (mu_pt>20)
dimuon = (xx.counts == 2) & (xx.sum()==2)

mu_pt_sel = mu_pt[dimuon]
mu_phi_sel = mu_phi[dimuon]
mu_pt_sel * np.sin(mu_phi_sel)

I'm indeed looking for events with exactly two muons at this moment. What I actually want to do later is select the two passing muons and use only those from all events that have them.

Can you make that file visible to me? (CERN username "pivarski")

The link is here: https://cernbox.cern.ch/index.php/s/YnqZg3XeZWrqQRk
If you can give some hints I can try to debug too.

Downloading now... The progress bar doesn't tell me how big it will be, so I might have to cut it off and run to catch my train.
What I suspect is an error in _tojagged. That's what changes the physical layout of a jagged array to a different physical layout with the same logical structure. I recently generalized that function, so if this is a new error, it could be there. (We have to understand the new implementation; the old one is insufficient and had its own bugs.)
I'm going to look for the first differing element and understand why things go wrong there.
Or maybe not! I don't think it's going to finish downloading before I have to go (it's at 300 MB).

I'll have to do it tomorrow. But what I'll do is make the current release 0.6.1, fix this bug, and then release that as 0.7.0 with uproot taking it as a new minimum version.

Here's a more minimal example (still working on it):
import numpy, awkward

a = awkward.JaggedArray.fromcounts([2, 2, 2, 1, 2, 2], numpy.round(numpy.arange(0, 12, 1.1), 2))
m = numpy.array([True, True, True, False, False, True])
a[m] + (a[m] + 0)

This last line raises the exception and it's small enough to try to diagnose. (It's based on the first six events in your sample. Six because that's how many get printed to the screen without ...)

Okay, that was a silly oversight: the problem didn't run as deep as I worried it might.
In the specification, there's a full description of how an offsets array can describe dense content (no gaps between subarrays) but you need the full generality of starts/stops to describe content with gaps (unreachable data) between the subarrays. When we do a mask, it's quickest to only filter the starts and stops arrays, leaving the content untouched, which leads to gaps. If the data are very deeply nested, filtering does not trigger a recursive collapse of nested data (which could involve hundreds of columns, even columns that haven't been loaded from disk— it's a big deal).
However, the logical array described by starts and stops with gaps is not uniquely described by that combination of starts, stops, and content. Different physical combinations can have different numbers of unreachable elements. When you're doing mathematical operations on these arrays, you care about what the array logically means, not how it's physically arranged. So if you apply a Numpy operation on two arrays with the same logical structure but different physical structure, the second one was rearranged to have the same physical structure as the first.
The bug happened for a[m] + (a[m] + 0) but not (a[m] + 0) + a[m]: two Numpy calls (both numpy.add) on a[m], which has gaps. The first addition collapsed the array to have no gaps, and the second addition tried to combine an array with gaps with an array without gaps. Since the array with gaps came first, it tried to add gaps to the second. The _tojagged code didn't assume that you'd ever want to do that and it broke.
With this change, I inserted a blanket policy of always fully collapsing all arrays that go into a Numpy call, regardless of whether we really need to. Then the restructurings only collapse, never expand (the fully collapsed form is unique). This has an added bonus that math will only be calculated on the reachable elements, so it effectively becomes non-lazy when you use it for math.

This is awkward 0.6.2, soon to be replaced by 0.7.0, but you can try it now.


Unsupported Factor Type: webauthn with YubiKey 5

Is your feature request related to a problem? Please describe.
The yubikey 5 seems to have a factortype of webauthn via Okta
Describe the solution you'd like
Ideally we'd just support this factorType. If someone with more knowledge can point me in the right direction with webauthn/yubikey stuff I'd be happy to make a PR/
Describe alternatives you've considered
Not using Yubikey, but my company is starting to migrate towards these being more common.
Additional context
DEBUG - Setting AWS role to arn:aws:iam::065123698216:role/Role
DEBUG - Setting AWS partition to AwsPartition.AWS
INFO - No existing credentials found. Requesting new credentials.
INFO - App Link set as: https://company.okta.com/home/amazon_aws/0oGA2fw6hweX10H4ZO357/141
INFO - Authenticating to: company.okta.com
INFO - Authenticating as: user
Enter password:
ERROR - Unsupported factorType: webauthn
MFA required, but no supported factors enrolled! sys.exiting.

removed some company info from the above

I am also facing the issue with latest version of okta-awscli.
DEBUG - Setting AWS role to arn:aws:iam::304069618367:role/role INFO - Authenticating to: xxxxx.okta.com INFO - Authenticating as<EMAIL_ADDRESS>Enter password: DEBUG - Setting MFA factor to OKTA INFO - App Link set as: https://xxxxx.okta.com/home/amazon_aws/0oa25auwpIym2eSGi4h6/272 ERROR - Unsupported factorType: webauthn MFA required, but no supported factors enrolled! Exiting.

Hi Folks - I have https://github.com/okta-awscli/okta-awscli/pull/221 PR open now which adds support for FIDO2 YubiKey(s).
Can you please test this PR, and provide some feedback? Thanks!
CC @darshan-mandhane @JacobWeyer.


Task 235 257

My earlier pull request did not work because of  a lot of data, so I am making a new PR with reduced data

@saurabh1mohite can you fix the tests?

@saurabh1mohite can you fix the tests?

friendly reminder on this - try to make the changes by today or latest by tomorrow, thanks!