Quantum computing paragraph should be more detailed and with more respectable sources

Quantum computing is probably the only perceived threat by non-beginner bitcoin users and a possible obstacle to a bigger global investment exposure on this asset. There are tens of well founded companies that claim to be working on QC and to be on the right path to deliver, in a relatively short time frame, QCs that could be able to handle calculations that are not possible with standard computers. Since these companies attracted billions from several professional investors it is not likely that their claims are completely untruthful.
At least these topics should be addressed:

More professional opinions by people involved in QC on which could be a realistic time frame for the QC to break ECDSA (somebody says 2years somebody says never) and perhaps SHA256
More professional opinion on how secure is post quantum cryptography
More developers stance on how the post quantum cryptography could be integrated into Bitcoin and a possible timeframe.
What will happen with all the coins deposited on addresses that have shared the public key (eg. very old coins) and could be spent if ECDSA is broken.

Bruce Schneier takes question on qunatum computing impact on discrete log public key cryptography.  tldr: "not in our lifetime"
https://youtu.be/bjopJ-_vAUE?t=1927
more
https://www.schneier.com/blog/archives/2018/09/quantum_computi_2.html
"Public-key encryption (used primarily for key exchange) and digital signatures are more complicated. Because they rely on hard mathematical problems like factoring, there are more potential tricks to reverse them. So you’ll see key lengths of 2,048 bits for RSA, and 384 bits for algorithms based on elliptic curves. Here again, though, the costs to reverse the algorithms with these key lengths are beyond the current reach of humankind."


Performance regression when OMP_NUM_THREADS environment variable is not set

Affected Versions

1.0.0
1.1.0.rc0
1.1.0.rc1

Build Options

USE_OPENMP=ON

Environments Tested
OS:

Amazon Linux 2012.03 (Kernel 4.4.48)
Amazon Linux 2017.03 (Kernel 4.4.48)

Hardware:

AWS m4.2xlarge
AWS c4.2xlarge
AWS p3.2xlarge

Impact
The benchmark numbers below are produced by training a symbolic NTM algorithm on a quad core (8 logical cores) Intel Xeon E5-2676 CPU. However the regression is reproducible by running any type of symbolic graph on a CPU context.

OMP_NUM_THREADS
1.0.0 + GNU OpenMP
1.0.0 + Intel OpenMP
1.1.0.rc0 + GNU OpenMP

-
75s
116s
66s

4
65s
77s
48s

Root Cause
The mxnet::engine::OpenMP class has already an implementation for automatically setting up the optimal number of OpenMP threads in case the OMP_NUM_THREADS environment variable is not explicitly set. However this implementation does not completely solve the regression problem as the omp_set_num_threads function is thread-local.
The setup logic referred above is only called during the static initialization of the OpenMP class in the main thread. However the mxnet::engine::ThreadedEngine class utilizes OpenMP not only in the main thread but also in worker threads. As omp_set_num_threads is never called in these threads, they attempt to use all logical cores for parallelized regions, which causes the regression.
Solution
The omp_set_num_threads function has to be explicitly called in all threads in case the OMP_NUM_THREADS environment variable is not set by the user.
Actions Required
As part of this investigation I already implemented an ad-hoc fix and plan to polish and make it production ready in the upcoming days. At this stage no action is requested from the main contributors.

Thank you for the excellent detailed explanation.
Just curious, what is meant by "regression" in this context?  Was there some point in the past where OMP threads were set to optimum in all threads?
Is your solution calling omp_set_num_threads() from CPUWorker?

yeah, that's probably the best place for it.  nice work!

We found the similar issue that the performance will be better when we set OMP_NUM_THREADS.
@cbalioglu good catch!

@cjolivier01 Thanks for the fix. I have tested in my local with your code.
The OMP_NUM_THREADS issue is fixed, but 10% performance degrade from KMP setting.
Could you help fix this issue too?
Please see my log:
[patric@mlt-skx075 mxnet-reg]$ export KMP_AFFINITY=granularity=fine,noduplicates,compact,1,0
[patric@mlt-skx075 mxnet-reg]$ export OMP_NUM_THREADS=56
[patric@mlt-skx075 mxnet-reg]$ python example/image-classification/benchmark_score.py
INFO:root:network: resnet-50
INFO:root:device: cpu(0)
/home/patric/develop/omp_fix/python/mxnet/module/base_module.py:65: UserWarning: Data provided by label_shapes don't match names specified by label_names ([] vs. ['softmax_label'])
warnings.warn(msg)
[23:03:45] src/operator/nn/mkldnn/mkldnn_base.cc:60: Allocate 411041792 bytes with malloc directly
INFO:root:batch size 128, image/sec: 189.037230
[patric@mlt-skx075 mxnet-reg]$ unset KMP_AFFINITY
[patric@mlt-skx075 mxnet-reg]$ unset OMP_NUM_THREADS
[patric@mlt-skx075 mxnet-reg]$ python example/image-classification/benchmark_score.py
INFO:root:network: resnet-50
INFO:root:device: cpu(0)
/home/patric/develop/omp_fix/python/mxnet/module/base_module.py:65: UserWarning: Data provided by label_shapes don't match names specified by label_names ([] vs. ['softmax_label'])
warnings.warn(msg)
[23:04:20] src/operator/nn/mkldnn/mkldnn_base.cc:60: Allocate 411041792 bytes with malloc directly
INFO:root:batch size 128, image/sec: 169.450103
[patric@mlt-skx075 mxnet-reg]$ export OMP_NUM_THREADS=56
[patric@mlt-skx075 mxnet-reg]$ python example/image-classification/benchmark_score.py
INFO:root:network: resnet-50
INFO:root:device: cpu(0)
/home/patric/develop/omp_fix/python/mxnet/module/base_module.py:65: UserWarning: Data provided by label_shapes don't match names specified by label_names ([] vs. ['softmax_label'])
warnings.warn(msg)
[23:04:44] src/operator/nn/mkldnn/mkldnn_base.cc:60: Allocate 411041792 bytes with malloc directly
INFO:root:batch size 128, image/sec: 168.383920
[patric@mlt-skx075 mxnet-reg]$ export KMP_AFFINITY=granularity=fine,noduplicates,compact,1,0
[patric@mlt-skx075 mxnet-reg]$ python example/image-classification/benchmark_score.py
INFO:root:network: resnet-50
INFO:root:device: cpu(0)
/home/patric/develop/omp_fix/python/mxnet/module/base_module.py:65: UserWarning: Data provided by label_shapes don't match names specified by label_names ([] vs. ['softmax_label'])
warnings.warn(msg)
[23:05:10] src/operator/nn/mkldnn/mkldnn_base.cc:60: Allocate 411041792 bytes with malloc directly
INFO:root:batch size 128, image/sec: 188.962690

I am only vaguely familiar with the KMP stuff.  Can you please elaborate?  Are you saying that it is slower now in some situations?

Are you sauing I should set the environment variable in the code:
KMP_AFFINITY=granularity=fine,noduplicates,compact,1,0
?

Can you also explain what these settings do? I know it's in a manual somewhere, but from your perspective, what does it do and why is that best?

Thanks, @cjolivier01,  I mean we set this environment in the code as OMP_NUM_THREADS.
Actually, this setting is useful when hyperthreading is ON and we only want to run each thread in a physical core as below picture shown (KMP_AFFINITY=granularity=fine,compact,1,0).
So, this environment will guide how to map thread into the physical core.
https://software.intel.com/en-us/node/522691

KMP_AFFINITY=granularity=fine,compact,1,0

how to set this programmatically? i’d imagine that by the time this code
executes, the omp library may have already checked the environment variable
(as it does with OMP_NUM_THREADS)? or can it be set at any time?
On Thu, Feb 22, 2018 at 4:49 PM PatricZhao<EMAIL_ADDRESS>wrote:

Thanks, @cjolivier01 https://github.com/cjolivier01, I mean we set this
environment in the code as OMP_NUM_THREADS.
Actually, this setting is useful when hyperthreading is ON and we only
want to run each thread in a physical core as below picture shown
(KMP_AFFINITY=granularity=fine,compact,1,0).
So, this environment will guide how to map thread into the physical core.
https://software.intel.com/en-us/node/522691
[image: guid-80fda344-d8c1-4fea-b268-94f685d19c4c-imageid
0abe3e2e-7a5a-4072-b22f-da7f72eb9a18]
https://user-images.githubusercontent.com/22461308/36572333-23cebc60-1876-11e8-9fa8-11004a562ca8.jpg
KMP_AFFINITY=granularity=fine,compact,1,0
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-mxnet/issues/9744#issuecomment-367873227,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKts_Q_3G5OsrSP6ODJmAmgu4BT8KPmbks5tXgsXgaJpZM4R-yAz
.

Normally, we set KMP_AFFILITY with OMP_NUM_THREADS together.
And when the OMP threads are invoked, it will be used.

i don’t set the environment variable. I doubt it would
work even if i did, from within the code. So there’s nothing I can do,
then, right? User would need to set?
I recall dumping the default behavior of KMP and i remember it showing that
the OMP threads were indeed staggered as in your picture.  I’ll check again.
On Thu, Feb 22, 2018 at 8:13 PM PatricZhao<EMAIL_ADDRESS>wrote:

Normally, we set KMP_AFFILITY with OMP_NUM_THREADS together.
And when the OMP threads are invoked, it will be used.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-mxnet/issues/9744#issuecomment-367904801,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKts_cOukBJtbaio3CkdWFVsRsCe4hcLks5tXjrogaJpZM4R-yAz
.

There're C level API too, int kmp_set_affinity in openmp.
Also in this page:
https://software.intel.com/en-us/node/522691

@cjolivier01 how about the progress of KMP setting?
We prefer this can be merged into release 1.2 so that the user can get the best performance by default.

@pengzhao-intel I've never used "noduplicates" in KMP_AFFINITY settings. Wondering what this does? I couldn't find the explanation in the documentation.

Possibly related https://github.com/apache/incubator-mxnet/pull/12160

Hi, is there any other action items remaining for this issue? I wonder if we don't have to explicitly set  OMP_NUM_THREADS after 1.2.0 release. Thanks


Unable to use showInput: true for custom input color

As there is an option to allow input for color but after setting this showInput: true, input get displayed on color picker but it's not allowing me to type any thing.
Please help me out on this.

Hi @KD25
Could you please provide steps to reproduce the behaviour?

The demo uses showInput: true and works fine for me.
maybe you could check it out and try to reproduce your issue there. (See Initialize the source project)

Yes sure, i figure out the situation behind it but not got the technical reason for this.
This only reproduce when we use this color picker in Bootstrap modal pop-up nothing else. Its working fine if i use this out of Bootstrap modal pop-up and also in demo.
Please let me know if more details are required.

do you get any error in the js-console?

No, nothing in console but textbox just get disabled and there is no attribute on HTML like disable or readonly

Hi @Xiphe  please let me know if any update on this.
Thanks,

I still have no Idea how to reproduce this, could you provide a PR that illustrates the problem? maybe in form of a failing test-case? Or a plunker would help, too.


Password gets truncated, OSM authorization fails.

After downloading, editing and saving, when using the Upload OSM Data tool from the toolbox, I input my login credentials and my password gets truncated, thus resulting in a 401 error.
Typing my password

truncated after clicking outside the combobox

@hareldunn Do you have any special characters in your password? There was an issue (#108) with that in a previous release, should've been fixed some time ago though.

@skmoore No

This issue was apparently closed in 2016. However, I have stumbled into the same problem (. Also tried several accounts with different passwords, including one with the minimum 8 characters, none special character and all lower case.

Please be sure to use https in the target URL.

Thanks Thomas, that did the trick.
Cheers,
Tom
From: Thomas Emge<EMAIL_ADDRESS>Sent: Tuesday, December 10, 2019 2:13 PM
To: Esri/arcgis-osm-editor
Cc: thomaskessler; Comment
Subject: Re: [Esri/arcgis-osm-editor] Password gets truncated, OSM authorization fails. (#208)
Please be sure to use https in the target URL.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/Esri/arcgis-osm-editor/issues/208?email_source=notifications&email_token=AGG66RNFUQJZE4XQXRRBTN3QYAIANA5CNFSM4H32WCMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGREPZY#issuecomment-564283367 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AGG66RO57AQRL5ZEFUCRDIDQYAIANANCNFSM4H32WCMA .  https://github.com/notifications/beacon/AGG66ROTORUGAKX4M3IROHDQYAIANA5CNFSM4H32WCMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGREPZY.gif


I'm getting an error message when trying to upload

G:\arduino-1.8.13\portable\sketchbook\esp32-cam_ov2640-timelapse\esp32-cam_ov2640-timelapse.ino: In function 'void setup()': esp32-cam_ov2640-timelapse:166:7: error: 'sensor_t {aka struct _sensor}' has no member named 'set_reg'
Ai-Thinker ESP32-CAM, I tested CameraWebserver sketch before and is working fine.

You have to use the esp32s2 branch. That one is more updated.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

You have to use the esp32s2 branch. That one is more updated.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

Thank you, tested and working.
Previously I tried the basic take-a-photo routine (it's in my repository), but the photos appeared over-exposed when captured outside. I uploaded CameraWebserver sketch and experimented with the options shown in the browser interface, then tried to manually set them in my own sketch but exposure levels didn't change. I found your code through a search engine and will now try to adapt it to mine.
If you happen to have a simplified sketch without the save to SDcard and go to sleep parts, that is, only the photo-capture part, it would be very helpful to me if you could share it.
(As you can see, I need to adjust the lense in my camera, as it is focusing very close.)

Thank you, tested and working.
Previously I tried the basic take-a-photo routine (it's in my repository), but the photos appeared over-exposed when captured outside. I uploaded CameraWebserver sketch and experimented with the options shown in the browser interface, then tried to manually set them in my own sketch but exposure levels didn't change. I found your code through a search engine and will now try to adapt it to mine.
If you happen to have a simplified sketch without the save to SDcard and go to sleep parts, that is, only the photo-capture part, it would be very helpful to me if you could share it.
(As you can see, I need to adjust the lense in my camera, as it is focusing very close.)

Well, the sleep and SD part are just a few lines of code which you can remove by yourself.
The code is basically split in two parts: Take a picture when it's night and take a picture when it's daylight.
Unfortunately, controlling the exposure using the standard way (using the exposure register) doesn't seem to work for some reason.  But even so, very bright scenes will be overexposed.

Well, the sleep and SD part are just a few lines of code which you can remove by yourself.
The code is basically split in two parts: Take a picture when it's night and take a picture when it's daylight.
Unfortunately, controlling the exposure using the standard way (using the exposure register) doesn't seem to work for some reason.  But even so, very bright scenes will be overexposed.

I'm surprised it takes this much effort to capture a decent photo outside, considering how popular this board is. The work you've done goes too deep for my skill level, so thanks again for sharing it.

I'm surprised it takes this much effort to capture a decent photo outside, considering how popular this board is. The work you've done goes too deep for my skill level, so thanks again for sharing it.

Thanks, I am glad others find it useful.
When I started working at it I had 0 experience with this sensor, but I was willing to experiment :) It's a shame there is no good documentation out there, I hate when companies do that. It's not like Omnivision would lose anything if they released all the technical info. This sensor is like 15 years old now.

Thanks, I am glad others find it useful.
When I started working at it I had 0 experience with this sensor, but I was willing to experiment :) It's a shame there is no good documentation out there, I hate when companies do that. It's not like Omnivision would lose anything if they released all the technical info. This sensor is like 15 years old now.

Here is another example of your work in action, showing a photo taken in the night during with a wide angle lense.

Here is another example of your work in action, showing a photo taken in the night during with a wide angle lense.

Interesting lens :)
When I will have some time, I want to do the opposite, add a long tele lens to it.
Anyway, what is that board? A battery charger and a big battery on the other side?
How are you getting the files off the camera? Using WiFi? I had some big troubles getting the wifi to work on this particular board. The connection is really bad, yet the same program works fine on a different board (m5Stack). I've heard of others having wifi trouble with the ESP32 cam, so I think there might be some bad batches or something.

Interesting lens :)
When I will have some time, I want to do the opposite, add a long tele lens to it.
Anyway, what is that board? A battery charger and a big battery on the other side?
How are you getting the files off the camera? Using WiFi? I had some big troubles getting the wifi to work on this particular board. The connection is really bad, yet the same program works fine on a different board (m5Stack). I've heard of others having wifi trouble with the ESP32 cam, so I think there might be some bad batches or something.

The ESP32 in the following photos was used with the ldr to measure brightness until I found your code. You can see the smartphone battery going to a TP4056 charger module, then the voltage is regulated to 3.3V through a HT7333 and a 470uf capacitor to keep current stable. The charger module will be connected to a small solar panel to keep the battery charged. The assembly will be attached to the old antenna mast on our roof so I can get some nice pics of my village while I'm away during the week.
At this point I'm still using your sketch and saving the photos to SDCard. In terms of Wifi problems, do you use the external antenna? It works much better than the onboard one, in my experience. When I tried the CameraWebserver with the new ESP32 board today, i was getting a crippling frame rate even at lowest resolution; then I found online someone saying if you grabbed the onboard antenna the framerate would improve, and it did! Next I moved the zero ohm resistor and added a new antenna from an old laptop and the images flow like normal webcam video, perfectly acceptable.

The ESP32 in the following photos was used with the ldr to measure brightness until I found your code. You can see the smartphone battery going to a TP4056 charger module, then the voltage is regulated to 3.3V through a HT7333 and a 470uf capacitor to keep current stable. The charger module will be connected to a small solar panel to keep the battery charged. The assembly will be attached to the old antenna mast on our roof so I can get some nice pics of my village while I'm away during the week.
At this point I'm still using your sketch and saving the photos to SDCard. In terms of Wifi problems, do you use the external antenna? It works much better than the onboard one, in my experience. When I tried the CameraWebserver with the new ESP32 board today, i was getting a crippling frame rate even at lowest resolution; then I found online someone saying if you grabbed the onboard antenna the framerate would improve, and it did! Next I moved the zero ohm resistor and added a new antenna from an old laptop and the images flow like normal webcam video, perfectly acceptable.

Actually, I want to do something similar to what you did, was thinking to add a solar panel and a small Lifeso4 battery to the camera for outdoors timelapses.
I also want to use a digital (i2c) lightmeter in order to use the board with different sensors. For some reason, the ov5640 sensor has a very unreliable lightmeter register, and despite my best attempts to get it to behave properly it still doesn't work. So I have to use some external device for that, but not sure if I can use an i2c connection on that board, since the internal ones are connected to the camera instead.

Actually, I want to do something similar to what you did, was thinking to add a solar panel and a small Lifeso4 battery to the camera for outdoors timelapses.
I also want to use a digital (i2c) lightmeter in order to use the board with different sensors. For some reason, the ov5640 sensor has a very unreliable lightmeter register, and despite my best attempts to get it to behave properly it still doesn't work. So I have to use some external device for that, but not sure if I can use an i2c connection on that board, since the internal ones are connected to the camera instead.

The GPIOs of the ESP32-Cam by AI Thinker I have are full, I think it doesnt allow SDCard and I2C to be used simultaneously..

LiFePo4 is a good idea:
https://www.youtube.com/watch?v=heD1zw3bMhw
And the charger board:
https://www.youtube.com/watch?v=ttyKZnVzic4

The GPIOs of the ESP32-Cam by AI Thinker I have are full, I think it doesnt allow SDCard and I2C to be used simultaneously..

LiFePo4 is a good idea:
https://www.youtube.com/watch?v=heD1zw3bMhw
And the charger board:
https://www.youtube.com/watch?v=ttyKZnVzic4

I know that there aren't exposed i2c pins, but from what I've read (though not tested) esp32 can use most pins as i2c and you can define your custom pins in the code. The SD card use SPI though, no?
My m5Stack has an i2c port, but no SDCard (so it's not very convenient for me).
I put my ov5640 project on hold for now,  I will investigate more after I resume it.

I know that there aren't exposed i2c pins, but from what I've read (though not tested) esp32 can use most pins as i2c and you can define your custom pins in the code. The SD card use SPI though, no?
My m5Stack has an i2c port, but no SDCard (so it's not very convenient for me).
I put my ov5640 project on hold for now,  I will investigate more after I resume it.

10 hour timelapse with virtual dub and avidemux. Very nice colors and image, it should be like this by default 👍
https://user-images.githubusercontent.com/36670323/106265719-5ab12880-621f-11eb-93bb-a242e02cdecd.mp4

10 hour timelapse with virtual dub and avidemux. Very nice colors and image, it should be like this by default 👍
https://user-images.githubusercontent.com/36670323/106265719-5ab12880-621f-11eb-93bb-a242e02cdecd.mp4

I am glad you like it :)
What interval did you take the pictures at?

I am glad you like it :)
What interval did you take the pictures at?

Hi! I captured a frame every 10 minutes, then renamed the files so Virtual Dub auto-opens then as a sequence, adjust the Framerate under the Video menu and save as AVI.
I left it outside for a 24h timelapse but forgot to turn the power On...

Hi! I captured a frame every 10 minutes, then renamed the files so Virtual Dub auto-opens then as a sequence, adjust the Framerate under the Video menu and save as AVI.
I left it outside for a 24h timelapse but forgot to turn the power On...

Have you had any trouble with sketches when using the Development Release of esp32? I am not able to connect to telegram API when I use the same sketch I used before with the stable release.
As a test, I installed two "portable" instances of the Arduino IDE in different partitions, one running ep32 dev and the other the stable release. Same sketch, the one running with dev core doesnt connect to telegram api, therefore i cant interact with it.
As another test, I tried the WifiClientSecure in the examples menu, and stable release connected to api.telegram.org but dev gave me an error.

Have you had any trouble with sketches when using the Development Release of esp32? I am not able to connect to telegram API when I use the same sketch I used before with the stable release.
As a test, I installed two "portable" instances of the Arduino IDE in different partitions, one running ep32 dev and the other the stable release. Same sketch, the one running with dev core doesnt connect to telegram api, therefore i cant interact with it.
As another test, I tried the WifiClientSecure in the examples menu, and stable release connected to api.telegram.org but dev gave me an error.

I haven't tried anything except for the camera stuff. Open an issue there and see what they say about it.

I haven't tried anything except for the camera stuff. Open an issue there and see what they say about it.

Reverting back to the version of WiFiClientSecure that came with 1.0.4 (dated 2-Oct-19) restores functionality and sending images no longer fails.

Reverting back to the version of WiFiClientSecure that came with 1.0.4 (dated 2-Oct-19) restores functionality and sending images no longer fails.

36 hour timelapse. You can see some over exposures around noon, sky was overcast, no direct sun.
https://user-images.githubusercontent.com/36670323/106831318-9b79c900-6687-11eb-9548-60328c9e9fc0.mp4

Not bad, but why aren't you trying a shorter interval between pics, such as 30 or 60 seconds?

No reason, its the first time I make these, I will try with a shorter interval.

From my observations, 30 seconds works best, but 1 minute is ok too. 30 seconds is pretty smooth.

https://www.youtube.com/watch?v=0tbTavNVE7U
48h timelapse; 1 photo per minute; 15 frame per second.
Possible to fix this that happens at late morning?

Nice timelapse :)
Unfortunately no, at least not as far as I know. The problem is setting the min exposure. I am unable to set it to lower than it is. I think a faster clock rate would fix some of it, but unfortunately ESP32 cam can't use more than 20 Mhz.
If someone finds a way on how to set an exposure lower than that, I'd be really happy.
Meanwhile, I am playing with an ov5640 sensor, where I can set the exposure properly, and as an added bonus it's 5MP. However, that requires an external lightmeter, as I can't get its lightmeter registries to behave in a consistent manner.

Hi! I have been trying to adapt your code to send me the photo to Telegram instead of saving to SD. I'd like to ask for your help, if you could take a look a it when you have time. I was able to do it with the examples in the standard libraries but, since I am not a programmer, I am not sure if I deleted something I shouldn't have from your code because right now I'm not receiving anything.
code.zip
Thanks!

Oops, sent wrong codes. Corrected:
raduprvSendTelegramOnWakeUP.zip

You are trying to get the frame buffer too early. You commented out the code that waits for the framebuffer to finish. You should call your upload function at the place where I actually save the file on the SD card (and uncomment the while loop).

I dont know what happened but it seems I deleted my previous post. I was able to fix it thanks to your tip, i can now take capture a frame with your code and have it sent to my Telegram group:
raduprvSendTelegramOnWakeUP.ino.ino.zip
Are you working on the ov5640?

I am working on and off with the ov5640 sensor. Unfortunately, it needs an external lightmeter, because I can't get the sensor to reliably tell me the ambient light level. I am using an BH1750 i2c sensor.
I almost got it to work, but still need to add more values for different light levels, and the problem is, for some reason my camera crashes sometimes and I don't know why (it only crashes when on external power).

You have to use the esp32s2 branch. That one is more updated.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

Salut!
NOT an issue with your code here, I was just wondering if you'd have any hint for me since I noticed (on other threads) that you put in quite some effort to get these cameras working. I can't get past "esp_camera_fb_get(): Failed to get the frame on time!" when trying to capture JPEGs no matter what, both with your code and with any other camera code I tried. I have 4 different ESP32-CAM modules from 2 vendors, they all behave the same way. They're all "el cheapo" modules shipped from China, all of them have the Espressif logo on the metal shield, not the AI Thinker one. The cameras are all OV2640s.
I noticed I could get some output from the camera using PIXFORMAT_YUV422 instead of PIXFORMAT_JPEG but the colors are way off and then YUV is not what I need (JPEG). I posted a description of what I tried at the URL below but that issue is closed and so I don't expect anybody will notice it while there are dozens of open issues:
https://github.com/espressif/esp32-camera/issues/43#issuecomment-808745113
WRT your code: I was able to compile and upload it, it ran but generated the same "esp_camera_fb_get(): Failed to get the frame on time!" errors. I was really hopeful when I finally saw the message "Saving first file as /00000_29822_37.jpg" but I checked the SD card and the files are empty (0 bytes).
I'd really appreciate if you had any hints whatsoever as I ran out of ideas here :(
Cheers!
17:00:06.830 -> Booting... at
17:00:06.830 -> 877
17:00:07.529 -> First light is 37
17:00:07.529 -> Old 0x0 value is0
17:00:07.529 -> Getting first frame at
17:00:07.529 -> 1572
17:00:11.549 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:11.549 -> Got first frame at
17:00:11.549 -> 5607
17:00:15.740 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:15.851 -> Not having image yet, waiting a bit
17:00:19.770 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:19.770 -> Not having image yet, waiting a bit
17:00:23.760 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:23.760 -> Not having image yet, waiting a bit
17:00:27.750 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:27.750 -> Not having image yet, waiting a bit
17:00:31.773 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:31.773 -> Not having image yet, waiting a bit
17:00:35.731 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:00:35.764 -> Saving first file as /00000_29822_37.jpg
17:00:35.764 -> Entering deep sleep mode at
17:00:35.764 -> 29828
17:01:05.590 -> ets Jun  8 2016 00:22:57
17:01:05.655 ->
17:01:05.655 -> rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
17:01:05.655 -> configsip: 0, SPIWP:0xee
17:01:05.655 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
17:01:05.655 -> mode:DIO, clock div:1
17:01:05.655 -> load:0x3fff0018,len:4
17:01:05.655 -> load:0x3fff001c,len:1216
17:01:05.655 -> ho 0 tail 12 room 4
17:01:05.655 -> load:0x40078000,len:10944
17:01:05.655 -> load:0x40080400,len:6388
17:01:05.655 -> entry 0x400806b4
17:01:06.654 ->
17:01:06.654 -> Booting... at
17:01:06.654 -> 877
17:01:07.351 -> First light is 35
17:01:07.351 -> Old 0x0 value is0
17:01:07.351 -> Getting first frame at
17:01:07.351 -> 1572
17:01:11.376 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:11.376 -> Got first frame at
17:01:11.376 -> 5607
17:01:15.463 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:15.463 -> Not having image yet, waiting a bit
17:01:19.483 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:19.483 -> Not having image yet, waiting a bit
17:01:23.469 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:23.469 -> Not having image yet, waiting a bit
17:01:27.455 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:27.455 -> Not having image yet, waiting a bit
17:01:31.476 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:31.476 -> Not having image yet, waiting a bit
17:01:35.464 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
17:01:35.464 -> Saving first file as /00001_29692_35.jpg
17:01:35.464 -> Entering deep sleep mode at
17:01:35.464 -> 29698

Can you post a picture on how your board looks like? Also, try to power the board directly from 5v or 3.3v (not from your USB).
Also, post a picture on how your board is connected to the computer.
I tried my code on 2 different boards and it worked on all of them, so if you tried it on 4 different boards and it doesn't work then you are either very unlucky or you are connecting it the wrong way to the PC.

Btw, make sure you disconnect I00 from the ground after you flash the code, in my tests it can't find the external RAM if I leave it connected when I boot.

Thanks a lot for your quick answer

I tried my code on 2 different boards and it worked on all of them, so if you tried it on 4 different boards and it doesn't work then you are either very unlucky or you are connecting it the wrong way to the PC.

I think you are right, I am very unlucky.  In general.
Coming back to this:

Can you post a picture on how your board looks like? Also, try to power the board directly from 5v or 3.3v (not from your USB).
Also, post a picture on how your board is connected to the computer.

Pictures attached.

The ESP32-CAM module is already powered directly from/to 3.3V using a breadboard power supply which is itself powered with 7V from a 2A power supply. Same behaviour if I power the ESP32 from/to 5V. The breadboard power supply is perfectly ok, I use it to power not only the ESP32 module but also a few sensors, LEDs, transistors etc., all at the same time and they all work fine, even when the ESP32 is using WiFi.

The ESP32-CAM module is connected to the computer using an FTDI programmer connected to the serial pins and GND. This works perfectly ok, never had an issue with it. This is also what I use to flash the ESP32-CAM module.

Pin GPIO00 is always disconnected after I (re)flash the ESP32 module. You can see the brown Dupont wire leading nowhere.

BTW, it seems many other people are complaining about this particular issue.
Thanks anyway!

The thing is, the sensor itself is working, and it is properly connected to the board, since the board can communicate with it just fine. I've seen in a post of yours that you had trouble with the PSRAM? Does it say it is detected when the camera boots? Because if it isn't then the camera can't get the image, it's too large for the internal ram.

The thing is, the sensor itself is working, and it is properly connected to the board, since the board can communicate with it just fine.

That's why I mentioned that my gut feeling is this is a software issue (camera library?), not a hardware one.

I've seen in a post of yours that you had trouble with the PSRAM? Does it say it is detected when the camera boots? Because if it isn't then the camera can't get the image, it's too large for the internal ram.

Yes, psram is detected when the module starts, my question there was in relation to the amount of psram available, I knew the module is supposed to have 4MB psram but at that moment it couldn't allocate a 3750 KB fb:
camera_fb_init(): Allocating 3750 KB frame buffer Failed
I don't know yet if this is because it was trying to allocate 2 fbs:
  if (psramFound()) {
    Serial.println("psram found");
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    **config.fb_count = 2;**

or because the 4MB psram is divided evenly between the 2 cores (I read this somewhere, I don't know if it's true or not).

You don't need more than 2MB of RAM anyway.
Two frame buffers is not needed, 1 is just fine. Try to put the quality to 50 or so, this will make a very small image that should fit inside the internal RAM.
Also, when you are uploading your sketch, what board and settings are you using?

You don't need more than 2MB of RAM anyway.

That was the calculated fb size when I tested with PIXFORMAT_YUV422 - the resulting file was 960000 bytes long.

Two frame buffers is not needed, 1 is just fine. Try to put the quality to 50 or so, this will make a very small image that should fit inside the internal RAM.

I just recompiled and re-flashed it with these parameters PIXFORMAT_JPEG,xclk_freq_hz 5000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1:
  //init with high specs to pre-allocate larger buffers
  if(psramFound())
  {
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 3;
    config.fb_count = 1;
  } else
  {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif

  Serial.println("Configuring PIXFORMAT_JPEG,xclk_freq_hz 5000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1");
  config.pixel_format = PIXFORMAT_JPEG;
  config.xclk_freq_hz = 5000000;
  config.frame_size = FRAMESIZE_UXGA;
  config.jpeg_quality = 50;
  config.fb_count = 1;

  //initialize camera
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK)
  {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

And the result was:
22:46:04.062 -> Booting... at
22:46:04.062 -> 878
22:46:04.062 -> Configuring PIXFORMAT_JPEG,xclk_freq_hz 5000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1
22:46:04.857 -> First light is 132
22:46:04.857 -> Old 0x0 value is0
22:46:04.857 -> Getting first frame at
22:46:04.857 -> 1673
22:46:09.104 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:09.104 -> Got first frame at
22:46:09.104 -> 5941
22:46:13.316 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:13.316 -> Not having image yet, waiting a bit
22:46:17.332 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:17.332 -> Not having image yet, waiting a bit
22:46:21.311 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:21.311 -> Not having image yet, waiting a bit
22:46:25.322 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:25.322 -> Not having image yet, waiting a bit
22:46:29.334 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:29.334 -> Not having image yet, waiting a bit
22:46:33.312 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:46:33.346 -> Saving first file as /00000_30156_132.jpg
22:46:33.346 -> Entering deep sleep mode at
22:46:33.346 -> 30165

Also, when you are uploading your sketch, what board and settings are you using?

I tried with both ESP32 Wrover / default partition scheme and AI Thinker ESP32-CAM (this one only has the default partition scheme). Same result.
I also just tried again with the example from this: https://randomnerdtutorials.com/esp32-cam-take-photo-display-web-server/ and the parameters you suggested (1 fb, quality 50):
    Serial.println("Configuring PIXFORMAT_JPEG,xclk_freq_hz 5000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1");
    config.pixel_format = PIXFORMAT_JPEG;
    config.xclk_freq_hz = 5000000;
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 50;
    config.fb_count = 1;

  // Camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    ESP.restart();
  }

And the result was the same:
22:39:35.531 -> Connecting to WiFi...
22:39:36.160 -> SPIFFS mounted successfully
22:39:36.160 -> IP Address: http://<IP_ADDRESS>
22:39:36.160 -> psram found
22:39:36.160 -> Configuring PIXFORMAT_JPEG,xclk_freq_hz 5000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1
22:40:04.695 -> Taking a photo...
22:40:08.722 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:40:08.722 -> Camera capture failed
22:40:15.564 -> Taking a photo...
22:40:19.552 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
22:40:19.552 -> Camera capture failed

Is there a way to perform some sort of "health check" for the camera sensor itself, without trying to save an image?

Make sure to try with the default 20Mhz clock, the sensor is very fussy about speed. I only tested it at 20Mhz.

Make sure to try with the default 20Mhz clock, the sensor is very fussy about speed. I only tested it at 20Mhz.

Same same:
  //init with high specs to pre-allocate larger buffers
  if(psramFound())
  {
    Serial.println("psram DETECTED");
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 3;
    config.fb_count = 1;
  } else
  {
    Serial.println("psram NOT detected");
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif

  Serial.println("Configuring PIXFORMAT_JPEG,xclk_freq_hz 20000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1");
  config.pixel_format = PIXFORMAT_JPEG;
  config.xclk_freq_hz = 20000000;
  config.frame_size = FRAMESIZE_UXGA;
  config.jpeg_quality = 50;
  config.fb_count = 1;

  //initialize camera
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK)
  {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

23:04:09.226 -> Booting... at
23:04:09.226 -> 878
23:04:09.226 -> psram DETECTED
23:04:09.226 -> Configuring PIXFORMAT_JPEG,xclk_freq_hz 20000000, FRAMESIZE_UXGA, jpeg_quality 50, fb_count 1
23:04:09.690 -> First light is 62
23:04:09.690 -> Old 0x0 value is0
23:04:09.690 -> Getting first frame at
23:04:09.690 -> 1376
23:04:13.735 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:13.735 -> Got first frame at
23:04:13.735 -> 5412
23:04:17.945 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:17.945 -> Not having image yet, waiting a bit
23:04:21.964 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:21.964 -> Not having image yet, waiting a bit
23:04:25.943 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:25.943 -> Not having image yet, waiting a bit
23:04:29.924 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:30.084 -> Not having image yet, waiting a bit
23:04:33.969 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:33.969 -> Not having image yet, waiting a bit
23:04:37.950 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
23:04:38.128 -> Saving first file as /00000_29627_62.jpg
23:04:38.128 -> Entering deep sleep mode at
23:04:38.128 -> 29638

BTW, I just tried with SVGA frame size and it's still the same.

What happens when you try the default web server streaming sketch? Does that work at all?

Nope, same error!

When you upload, use wrover, Huge APP.

Hi
I tried that as well, just in case, but as expected, it didn't make any difference as the sketch comfortably fits in the standard partitioning scheme:
Before, with the the standard partitioning scheme:
Sketch uses 425434 bytes (32%) of program storage space. Maximum is 1310720 bytes.
Global variables use 18956 bytes (5%) of dynamic memory, leaving 308724 bytes for local variables. Maximum is 327680 bytes.

After, using the "huge app" partitioning scheme:
Sketch uses 425434 bytes (13%) of program storage space. Maximum is 3145728 bytes.
Global variables use 18956 bytes (5%) of dynamic memory, leaving 308724 bytes for local variables. Maximum is 327680 bytes.

Result:
09:37:08.310 -> Booting... at
09:37:08.310 -> 877
09:37:08.310 -> psram DETECTED
09:37:08.310 -> Configuring PIXFORMAT_JPEG,xclk_freq_hz 20000000, FRAMESIZE_SVGA, jpeg_quality 50, fb_count 1
09:37:08.576 -> First light is 4
09:37:08.576 -> Old 0x0 value is0
09:37:08.609 -> Getting first frame at
09:37:08.609 -> 1175
09:37:12.686 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:12.686 -> Got first frame at
09:37:12.686 -> 5246
09:37:16.865 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:16.910 -> Not having image yet, waiting a bit
09:37:20.910 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:20.910 -> Not having image yet, waiting a bit
09:37:24.882 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:24.882 -> Not having image yet, waiting a bit
09:37:28.909 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:28.909 -> Not having image yet, waiting a bit
09:37:32.890 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:32.890 -> Not having image yet, waiting a bit
09:37:36.905 -> [E][camera.c:1474] esp_camera_fb_get(): Failed to get the frame on time!
09:37:36.905 -> Saving first file as /00000_29461_4.jpg
09:37:36.905 -> Entering deep sleep mode at
09:37:36.905 -> 29475

Would you be able to share where you bought your ESP-CAM modules from? It might just be quicker if I order a couple from the same place... this thing doesn't seem to go anywhere :(

Where do you live? I got them from a Romanian company.

I have tried this code and some variations of it with 4 different cameras without a problem.
I setup the components this way, connect to usb and press upload on the IDE:

Once the download finishes, I disconnect wifi and disconnect the red and green dupont cables, connect to usb again and open the serial monitor. Next, I connect the lipo to the 5V pin and the applications starts

Where do you live? I got them from a Romanian company.

Aveam eu o banuiala, asa :)
My camera modules are labelled “AF2569 0927XB” and “DCX-OV2640-V2” and I just ordered 2 more but I’ll have to wait for a few weeks for them to arrive and see the exact model :(

Eu le-am luat de la baietii astia: https://www.emag.ro/modul-esp32-cam-ov2640-camera-inclusa-ai065-s72/pd/DKDGT8BBM/?X-Search-Id=bac85ed86849c2aa0dc4&X-Product-Id=52395039&X-Search-Page=1&X-Search-Position=0&X-Section=search&X-MB=0&X-Search-Action=view
Am luat doua si au mers amandoua (doar ca au probleme cu WIFI-ul).

I have tried this code and some variations of it with 4 different cameras without a problem.

Thanks for confirming. I guess it's a fact then - I am indeed very unlucky :(

Eu le-am luat de la baietii astia: https://www.emag.ro/modul-esp32-cam-ov2640-camera-inclusa-ai065-s72/pd/DKDGT8BBM/?X-Search-Id=bac85ed86849c2aa0dc4&X-Product-Id=52395039&X-Search-Page=1&X-Search-Position=0&X-Section=search&X-MB=0&X-Search-Action=view
Am luat doua si au mers amandoua (doar ca au probleme cu WIFI-ul).

Asta-i chiar tare - ale mele nu au nici o problema pe partea de wifi. Doar ca nu le merg camerele alea, neam. Culmea e ca in poza de la emag camera e acelasi model ca 2 ale mele: "AF2569". Ale tale tot modelul asta sunt?
N-as fi avut o problema sa iau una si de la emag daca eram in tara, dar de aici mai greu :)

Ale mele sunt TY-OV2 640-V2.0. Dar nu stiu daca conteaza asta, ca pana la urma senzorul e acelasi. Tu unde stai acum? Poti incerca sa iei de pe Banggood.

I have one of these "TY-OV2 640-V2.0" and the image comes rotated 90º and the lense is wide angle. All 4 camera modules look the same and were bought from the same vendor in Aliexpress.

Ale mele sunt TY-OV2 640-V2.0. Dar nu stiu daca conteaza asta, ca pana la urma senzorul e acelasi. Tu unde stai acum? Poti incerca sa iei de pe Banggood.

Primele 2 de pe uk.banggood le-am comandat pentru ca atunci le aveau in depozit in UK, nu trebuiau sa vina tocmai din China:

https://uk.banggood.com/ESP32-CAM-WiFi-+-bluetooth-Camera-Module-Development-Board-ESP32-With-Camera-Module-OV2640-p-1394679.html?rmmds=myorder&cur_warehouse=CN
https://uk.banggood.com/ESP32-CAM-WiFi-+-bluetooth-Camera-Module-Development-Board-ESP32-With-Camera-Module-OV2640-IPEX-2_4G-SMA-Anten-p-1549751.html?rmmds=myorder&cur_warehouse=CN

Dupa care am mai comandat 2 de la Aliexpress si am asteptat aproape doua luni sa vina si tot nu merg.
Am mai comandat inca doua camere (doar camera in sine, fara ESP32) si daca nici astea n-or sa mearga cand ajung cred ca o sa-i pun cruce.
Mai am o intrebare pentru tine - cand conectezi camera in ESP32, cum stii daca toti pinii aia au facut contact ca lumea? Mi-ai zis acum cateva zile ca "the sensor itself is working, and it is properly connected to the board, since the board can communicate with it just fine", dar ma tot intreb daca nu cumva vreun pin n-a facut contact cum trebuie.

I remember you are working with the OV5640. This guy is making some very nice hacks with the ESP-32 cam and now he's using that sensor:
https://www.youtube.com/watch?v=BCvOBMQSliY

So, yesterday I opened a sealed ESP32-CAM and it wouldn't capture a pic even though the ov2640 sensor works with other boards and this board runs WifiScan and other sketches that don't use the camera.
After many hours googling I found this familiar thread :)
The problem is common in esp32cam with OV2640 written on the sensor and the Espressif logo on the chip (instead of AI-Thinker)...
https://github.com/espressif/esp32-camera/issues/43#issuecomment-635591135

All my cameras are like that and they work fine. But maybe there is a bad lot or something?

I dont know but I've tried everything, from power supply to changing clock frequency and pic format.
The lens works with other boards, the board can run other sketches without picture...

Did you try a different sensor, like the 3 or 5mp ov ones?

I only have  OV2640 sensors

It's worth playing with other sensors too, they are not too expensive.

The OV5640 seems interesting https://www.youtube.com/watch?v=922BWy3OOoQ

Yes, it's pretty fun, but if possible don't get one with an autofocus module, because most likely you won't be able to use it.

Radu, do we still need to use the dev branch of the esp32 core or can we use the latest one (2.0.13 I think)?

I didn't test it, but it should work. I am getting a few new ones with the 5mb sensor and a proper programmer board, and might start playing with it again.

Ok, I will try both branches just in case. If you ever need to turn the camera on and off at a specific time, the DS3231 can be found at a low price again, after the pandemic and the chip shortage thing: https://www.ebay.com/itm/374678507378

The difference is only in the angle, right? The sensor is the same version I would guess.

Yes, it's the ov2640 with a 160 degree lens.


python not using caffe in conda env

I created a conda env with caffe 1.0. I also went thru build caffe from source and did a make install inside the env. When I execute a python code inside the env, it kept on calling the caffe instance from /usr/local/caffe/python/caffe/init.py, and ended up failing with
ImportError: libprotobuf.so.8: cannot open shared object file: No such file or directory
Why isn't it calling the caffe instance in the env?

It turns out /usr/local/caffe was set further up in PYTHONPATH. I can't find how it got set, but that's the cause.


Add LazyFoo tutorials as finished C# "sample" projects

https://lazyfoo.net/tutorials/SDL/

this lessons are not for C# !!!! they are for C++ !!!! this lib is for C# !!!! why you send me link for C++ ?!?!?!?!?!?!?
NEED FOR C# !!! i see in the code have a function for ttf text rendering and all ttf need , but dont know how to use them !!!

Hello @karadevnet,
The link above is for the C++ tutorials, yes. This issue itself is for tracking creating C# samples which do not exist yet. When this issue is closed, then the C# samples should exist.
I have started porting the tutorials over, and honestly there isn't much difference. One trouble that I encountered is that adjacent libraries like SDL_Image are required for some tutorials which the bindgen is not done yet and thus those functions are not defined for C# yet.


Implement All Functionalities to Create and Manage Topics via Tooling

Description:
Currently, we can't create and manage Topics via WSO2 ESB/EI Tooling, and it can be done only via the Management Console.
We need to add these functionalities to WSO2 EI Tooling.
For more information, please refer the email[1] and [2].
[1] [EIP] - Creating Topics for the Publish Subscribe EIP
[2] https://wso2.org/jira/browse/DOCUMENTATION-3570
Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Topic concepts in ESB is no longer used. We have better approaches to achieve pub-sub EIP model.
So implementing tooling for this is not required.


test integration of animations

animations exported to lollie
https://github.com/react-native-web-community/react-native-web-lottie

animation example to implement zip
https://app.zenhub.com/files/166818382/85e54f0d-97e2-42aa-97d0-622ad597c96f/download

Definition of Done

[ ] animation is triggered inside DAPP
[ ] check play animation in loop from a specific frame
[ ] report about how to integrate, where to put files of animation.

@AlexeyKosinski please attach video and answer above Definition of Done

1 done
2 we can use this.animation.goToAndPlay(#FRAME_NUMBER#, true) for run animation from specific frame.
we can use it on 'clomplete' event.
so it is looping from specific frame to end
3 steps to integrate

npm i lottie-react-native lottie-react-native-web
add animations images to public folder /animations/#ANIMATIONNAME#/
create animation component in folder 'animations'
change all path's in data.json to /animations/#ANIMATIONNAME#/


Error at this.previousValue.sort((a, b) => a.$key - b.$key) in internal-list-observable.ts

TypeError: Cannot assign to read only property '1' of object '[object Array]'
I got a few of this errors at this line: this.previousValue.sort((a, b) => a.$key - b.$key);
I have a few list observables, but only some list has problem. I don't know where this difference happen. I logged those previousValue array as global variable and check property descriptors.

Some array's elements are read-only (in this case, temp2 array), error happen when it tries to sort.
Is there anyone who can explain this?
Edit: One thing I found is when using queryObject like query: {orderByChild: 'name', startAt: 'A', endAt: 'Z'}, previous value array is writable and got no error.

Hi @monad98, thanks for posting! Can you show a reproducible example that gives the error you're experiencing?


modified makefile for properly supporting python 3 in system install …

…and also modified makefile for properly supporting system install for python 2. Fixes issue # 411 reported on github.
Also made dependency on virtualenv conditional as for sysinstall it is not required to have virtualenv or activate virtualenv.
Installed with make sysinstall_python3, make_sysinstall and Tested with make syscheck.
armando@librenix:~/projects/github/neon$ sudo make syscheck
"Skipping virtualenv check for system install / uninstall"
Running style checks.  Number of style errors is...
flake8 --count  neon bin/* tests examples benchmark
> /dev/null
Number of missing docstrings is...
pylint --disable=all --enable=missing-docstring -r n
neon | grep "^C" | wc -l
465
Running unit tests...
py.test -m "hasgpu or not hasgpu and not mkl_only" tests/ | tail -1 | cut -f 2,3 -d ' '
Exception ignored in: <bound method NervanaGPU.del of <neon.backends.nervanagpu.NervanaGPU object at 0x7f4b27657e48>>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/nervananeon-2.4.0-py3.5.egg/neon/backends/nervanagpu.py", line 893, in del
self.ctx.detach()
AttributeError: 'NervanaGPU' object has no attribute 'ctx'
PyCUDA WARNING: a clean-up operation failed (dead context maybe?)
cuCtxDetach failed: invalid device context
2 failed,
Two errors still occur in GPU code: However, the intent of this PR is not to fix the GPU portions, but the makefile.

In the above PR, the number of tests failed was reduced to 1, not related to the PR:
`====================================================== FAILURES ======================================================
________________________________________ test_dilated_conv[fargs_tests16-cpu] ________________________________________
backend_default = <neon.backends.nervanacpu.NervanaCPU object at 0x7f0f5fee4198>, fargs_tests = (7, 2, 1)
def test_dilated_conv(backend_default, fargs_tests):

    fsz = fargs_tests[0]
    dil = fargs_tests[1]
    stride = fargs_tests[2]
    be = backend_default

    o1, w1 = run(be, False, fsz, stride, 1, dil)
    o2, w2 = run(be, True, fsz, stride, 1, dil)
    # Verify that the results of faked dilation match those of actual dilation.

  assert allclose_with_out(o1, o2, atol=0, rtol=3e-3)

E       assert False
E        +  where False = allclose_with_out(array([[-6622, 11619, 39178, -17867, 17616, -13393, -17023, -3494, 2915, -2020, -35793, 37675, -18931, 10426, -31960, ... 37881, -69578, -38721, 35254, 8138, 16923, -20529, -20013, -8539, -18421, -27050, -14500, 36606, 187]], dtype=float32), array([[-6622, 11619, 39178, -17867, 17616, -13393, -17023, -3494, 2915, -2020, -35793, 37675, -18931, 10426, -31960, ... 37881, -69578, -38721, 35254, 8138, 16923, -20529, -20013, -8539, -18421, -27050, -14500, 36606, 187]], dtype=float32), atol=0, rtol=0.003)
tests/test_dilated_conv.py:174: AssertionError
------------------------------------------------ Captured stdout call ------------------------------------------------
Network Layers:
Sequential
Convolution Layer 'Convolution_40': 1 x (32x32) inputs, 8 x (28x28) outputs, 0,0 padding, 1,1 stride, 1,1 dilation
Convolution Layer 'Convolution_41': 8 x (28x28) inputs, 8 x (18x18) outputs, 1,1 padding, 1,1 stride, 2,2 dilation
Convolution Layer 'Convolution_42': 8 x (18x18) inputs, 8 x (16x16) outputs, 0,0 padding, 1,1 stride, 1,1 dilation
Linear Layer 'Linear_16': 2048 inputs, 1 outputs
Network Layers:
Sequential
Convolution Layer 'Convolution_10': 1 x (32x32) inputs, 8 x (28x28) outputs, 0,0 padding, 1,1 stride, 1,1 dilation
Convolution Layer 'Convolution_13': 8 x (28x28) inputs, 8 x (18x18) outputs, 1,1 padding, 1,1 stride, 1,1 dilation
Convolution Layer 'Convolution_12': 8 x (18x18) inputs, 8 x (16x16) outputs, 0,0 padding, 1,1 stride, 1,1 dilation
Linear Layer 'Linear_6': 2048 inputs, 1 outputs
------------------------------------------------ Captured stderr call ------------------------------------------------
DISPLAY:neon:abs errors: 1.171875e-02 [0.000000e+00, 5.468750e-02] Abs Thresh = 0.000000e+00
DISPLAY:neon:worst case: 1.533482e+04 1.533477e+04
DISPLAY:neon:rel errors: 5.932112e-07 [0.000000e+00, 4.104107e-03] Rel Thresh = 3.000000e-03
DISPLAY:neon:worst case: 9.538086e+00 9.577393e+00
`

Thanks for your PR, we will look into bring your PR in.

@armando-fandango Some issue for python3 sysinstall is due to the system having default python2.
Have you tried python3 system install under a python3 virtualenv?

@baojun-nervana The sysinstall means I want to install as a shared library at the system level, not in the virtual environment. Hence I did not understand the meaning of your comment : "Have you tried python3 system install under a python3 virtualenv?"
The system install, whether for python 2 or python 3, should not ask for the virtual environment to be installed or to be present.

@armando-fandango Sorry for the confusion. When I said "python3 virtualenv", I mostly meant to have a system / environment with python3 as default. In that case, paths and links will be ready for python3, e.g. pip will have a softlink to pip3.  Virtualenv is an easy way to have that environment ready, and "make sysinstall" will work smoothly.
I agree it is confusing to request virtualenv for sys install.

Yes virtualenv is a nice way to create virtual environments with different versions of python etc., but for production environment, sometimes we install python 3 at system level and python 2 is not available, hence the sysinstall previously did not work for such cases.

Actually from the makefile, it seems like that the intent of original makefile author was to install in virtual environment unless 'sys' prefix was added to install and clean.
I think the makefile should be refactored heavily to allow for different parameters such as --env=virtual or non-virtual, --python=2 or 3, --system etc

There is a parameter PY = 2 or 3 (line 129) which is mostly used to diff venv for python 2 and 3. We may expand that to differ python and pip command for python 2 and 3.
it will be something like the following:
ifeq ($(PY), 2)
.......
PYTHON_EXE := python
PIP_EXE := pip
else
........
PYTHON_EXE := python3
PIP_EXE := pip3
endif
In the recipes, it can be called as $(PYTHON_EXE) and $(PIP_EXE).  The neon_install recipe will be like:
neon_install:
@echo "Installing neon system wide..."
@$(PYTHON_EXE) setup.py install
@echo
This way it will be an integrated recipe for python2 and 3.
To run python3 sysinstall, it will be
make PY=3 sysinstall
@armando-fandango Are you interested in updating the PR to merge the python2 and 3 sys install recipes?

Yes I can update  my PR to have the recipes as you mentioned. Sounds good.
-- Armando
Sent from phone.

On Dec 22, 2017, at 5:18 PM, baojun<EMAIL_ADDRESS>wrote:
There is a parameter PY = 2 or 3 (line 129) which is mostly used to diff venv for python 2 and 3. We may expand that to differ python and pip command for python 2 and 3.
it will be something like the following:
ifeq ($(PY), 2)
.......
PYTHON_EXE := python
PIP_EXE := pip
else
........
PYTHON_EXE := python3
PIP_EXE := pip3
endif
In the recipes, it can be called as $(PYTHON_EXE) and $(PIP_EXE). The neon_install recipe will be like:
neon_install:
@echo "Installing neon system wide..."
@$(PYTHON_EXE) setup.py install
@echo
This way it will be an integrated recipe for python2 and 3.
To run python3 sysinstall, it will be
make PY=3 sysinstall
@armando-fandango Are you interested in updating the PR to merge the python2 and 3 sys install recipes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Smooth grid

Love the additions to the animations on my favorite theme! Great work with all of this! I noticed the grid was a bit jumpy so I took some time and sorted that out to make it much smoother! Hope it helps!

Of course! I'm trying to work on getting the tab line animated too so I'll be sure to push again if I get it sorted out!


WIP: update to RSA 0.7.0 interfaces

This depends on https://github.com/RustCrypto/RSA/pull/195 and needs updated md5 and ripemd crates to provide OIDs
Note: it might be simpler to just restore the rsa::Hash struct in the RSA crate.

@dignifiedquire @tarcieri I noticed a side effect of this conversion. The rpgp starts to accept large RSA keys. E.g. a diff from the test_parse_dump_6:
@@ -110188,7 +110189,43 @@
 }
  DEBUG pgp::packet::signature::types     > packet: 54696d204d6f726c6579203c74696d4064657277656e742e636f2e756b3e
  DEBUG pgp::packet::signature::types     > prefix: b40000001e
- WARN  key_test                          > verification failed: public key 6ea0fbcd0c9c1545: RSAError(PublicExponentTooLarge)
+ DEBUG pgp::packet::signature::types     > verifying key (revocation): Signature {
+    packet_version: Old,
+    config: SignatureConfig {
+        version: V4,
+        typ: KeyRevocation,
+        pub_alg: RSA,
+        hash_alg: SHA1,
+        created: None,
+        issuer: None,
+        unhashed_subpackets: [
+            Issuer(
+                KeyId(6ea0fbcd0c9c1545),
+            ),
+        ],
+        hashed_subpackets: [
+            SignatureCreationTime(
+                2016-08-16T05:10:41Z,
+            ),
+            RevocationReason(
+                KeyCompromised,
+                "This key was generated as part of the Evil32 project.\nIt is not owned by the user described in the UID.\nSee https://evil32.com/revoked for more details.",
+            ),
+        ],
+    },
+    signed_hash_value: "6994",
+    signature: ["9874eb7c4e439db3c84c12777c16da7fbc2bc63cc884dbc54e545c787be91dcf022fb7c968c86f7c34b02fe11ccf6ce69b72f0cde8cfabf465e74bf477ecc01313cc6a155faade5ea2edd64c35011430e10553cae9c32c423c7fa316611d8120a9c87664e9b9ac01eda731e400cb8eda343d34ab3bcdab7a220f522c5968aa90"],
+} - PublicKey {
+    packet_version: Old,
+    version: V4,
+    algorithm: RSA,
+    created_at: 2014-07-21T20:49:33Z,
+    expiration: None,
+    public_params: PublicParams::RSA {
+        n: Mpi(aeabf22ebf5c2a537a70711fdba3bcb3ab8be63c7caa9a17a3d03b0b6b9673bb9ba2a95e031751bafffe69e26638f9be08a6229005e92b23a263c276893a263224576d9a03ef1934c58c256b5617728b2b28e5d6ca555900fb7c081317f18dc391debb4c08b4fd76db051b66fcba120ba0bb24c4b95d199f1c3be8c49b178931),
+        e: Mpi(9058273b),
+    },
+}
  DEBUG pgp::composed::signed_key::public > primary key: KeyId(05a0a15688995548)
  DEBUG pgp::composed::signed_key::public >   signatures
  DEBUG pgp::packet::many                 > got packet: Ok(

If this is undesired, we'd have to fix the crate.

Hmm. Actually no. This is caused by the RSA crate changing max public exponent.

it might be simpler to just restore the rsa::Hash struct in the RSA crate.

Looking at this PR it seems like the HashAlgorithm enum in the rpgp crate provides effectively the same functionality as what Hash used to provide (i.e. runtime selection of hash function)

This solution looks good to me, thanks @lumag, happy to move forward with the changes on the rsa side based on this

Updated the dependency to point to the released 0.7.0 RSA crate.


[FeatureRequest] Adding progress bar

When using ThermoRawFileParserGUI, it would be nice to show somewhere how many raw files already have been parsed. When parsing many raw files at once, this would make it easier to estimate how long it will take. This will also be interesting for the command-line version, but I'm not sure if that already exists or not.

Should not be too difficult to add in ThermoRawFileParserGUI. I will try to look into it later this week and let you know.

Command-line version reports progress of each individual file.

Just deployed ThermoRawFileParser 1.3.0 with progress display. Both for the number of files converted and for each individual file.

Thanks Harald!


update fs2 dependencies to the latest

oops, i realised there were some breaking changes, will update the PR

Thanks! :)


Bump memory requests for virt-(api|controller|operator)

What this PR does / why we need it:
When prometheus is enabled, we keep getting KubeVirtComponentExceedsRequestedMemory alerts.
These are legitimate, since virt-api, virt-controller and virt-operator routinely exceed
their 150Mi memory request. Local tests even showed a virt-operator reaching 230Mi.
This is usually fine (aside from the constant alerts...), since k8s will let containers use
more memory than requested as long as nodes have enough memory to spare.
However, this could become a critical issue on a memory-constrained node.
As usual with memory limits, we don't have a way to know what the maximum amount processes
may consume...
Bumping the memory request for all 3 from 150Mi to 250Mi seems to me like a good compromise
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/hold
@jean-edouard Hi, can you please check the make generate?

/cherry-pick release-0.53


New conda environment requires update for depreciated classes.

Information

Qiskit Metal version:
Python version:
Operating system:

What is the current behavior?
Conda env on latest commit on main will not work due to depreciated classes.
Steps to reproduce the problem
What is the expected behavior?
update classes to use python 3.10 both:
collection using Callable
attrdict change to addict in pyepr
Suggested solutions
update pyepr, get a new tag for Metal to use, then also update Callable in Metal.

This has merged during the time of making a tag. However, just need to still have CI use python 3.10.

The merged branch #796


Do some cleanup in netci.groovy for linux checks in master.

/cc @mmitche

@dotnet-bot test ci please

LGTM


(IGNORE) Doc update for manifest docs

Changes in this pull request
Docs only, paired with https://github.com/contentauth/opensource.contentauth.org/pull/76
Checklist

[x] This PR represents a single feature, fix, or change.
[x] All applicable changes have been documented.
[x] Any TO DO items (or similar) have been entered as GitHub issues and the link to that issue has been included in a comment.

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

Comparison is base (d7f90d4) 83.91% compared to head (21cf990) 83.91%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #148   +/-   ##
=======================================
  Coverage   83.91%   83.91%
=======================================
  Files           3        3
  Lines         373      373
=======================================
  Hits          313      313
  Misses         60       60

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


Adding accounts no longer decreasing scan time.

I'm not sure if this is caused by my obscure setup, or something else, but going past 30 accounts is offering no benefit.
I was scanning a 3KM radius with 30 accounts, scan time was ~13 minutes. I upped the accounts to 60 and the scan time is still ~13 minutes.
Has anyone experience the same?
By obscure setup, I'm running this on a VM which is running a VPN. VM is hosted on PC also routed through a VPN.
I'm running VPN on each because I have Pogom running on the host and the VM, so didn't want the server requests of one to effect the other.

Looks like it has something to do with how I have it running.
Ran the same radius, with the same accounts, on my desktop and scan time is 6-7 minutes.

Turns out it was internet connection related. I changed the exit for VPN and my scan time has almost halved.
This can be closed.


Update to repobee 3

Some notes:

master_repo_names has been replaced with assignments. Make sure to update this in both the production code and the test code.
Require repobee>=3.0.0-beta.1

Dont forget to update to documentation!


Support 32dim

Changed the code to support triton when divisible by 32. This enables the use of triton in falcon and GPT2-XL.

@qwopqwop200 Hi, this is just a question: is it possible to implement a dynamic strategy to config triton warmup based on model type and the model's attributes?

@qwopqwop200 Hi, this is just a question: is it possible to implement a dynamic strategy to config triton warmup based on model type and the model's attributes?

Can you give me an example? I didn't understand

For example: if one use GPT2-large, use one group configs to warmup triton; and when use GPT2-XL, use another group configs to warmup triton.

I think it's probably possible.

Maybe a dynamic coding strategy need to be implemented with a wrapper or comtext_manager. Anyway, I will look into it sometime when I have enough time.
Thanks again for this pr! ❤

Awesome work!  I'd love to try this but am currently getting an error when using a basic test script, I think related to the HF hub download stuff:
Script:
from transformers import AutoTokenizer, pipeline, logging
from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig

quantized_model_dir = "/workspace/models/TheBloke_falcon-40b-instruct-GPTQ"

use_triton = True

tokenizer = AutoTokenizer.from_pretrained(quantized_model_dir, use_fast=True)

model = AutoGPTQForCausalLM.from_quantized(quantized_model_dir,
        use_safetensors=True,
        trust_remote_code=True,
        device="cuda:0",
        use_triton=use_triton,
        quantize_config=None)

# Prevent printing spurious transformers error when using pipeline with AutoGPTQ
logging.set_verbosity(logging.CRITICAL)

prompt = "Tell me about AI"
prompt_template=f'''### Human: {prompt}
### Assistant:'''

print("*** Pipeline:")
pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    max_new_tokens=512,
    temperature=0.7,
    top_p=0.95,
    repetition_penalty=1.15
)

print(pipe(prompt_template)[0]['generated_text'])

print("\n\n*** Generate:")

input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, max_new_tokens=512)
print(tokenizer.decode(output[0]))

Errors:
[pytorch2] ubuntu@h100:/workspace/misc $ python ./simple_falcon.py

===================================BUG REPORT===================================
Welcome to bitsandbytes. For bug reports, please run

python -m bitsandbytes

 and submit this information together with your error trace to: https://github.com/TimDettmers/bitsandbytes/issues
================================================================================
bin /workspace/venv/pytorch2/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda120.so
CUDA_SETUP: WARNING! libcudart.so not found in any environmental path. Searching in backup paths...
CUDA SETUP: CUDA runtime path found: /usr/local/cuda/lib64/libcudart.so
CUDA SETUP: Highest compute capability among GPUs detected: 9.0
CUDA SETUP: Detected CUDA version 120
CUDA SETUP: Loading binary /workspace/venv/pytorch2/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda120.so...
triton is not installed, reset use_triton to False
Traceback (most recent call last):
  File "/workspace/misc/./simple_falcon.py", line 11, in <module>
    model = AutoGPTQForCausalLM.from_quantized(quantized_model_dir,
  File "/workspace/venv/pytorch2/lib/python3.10/site-packages/auto_gptq/modeling/auto.py", line 82, in from_quantized
    return quant_func(
  File "/workspace/venv/pytorch2/lib/python3.10/site-packages/auto_gptq/modeling/_base.py", line 543, in from_quantized
    quantize_config = BaseQuantizeConfig.from_pretrained(save_dir)
  File "/workspace/venv/pytorch2/lib/python3.10/site-packages/auto_gptq/modeling/_base.py", line 57, in from_pretrained
    return cls(**json.load(f))
TypeError: BaseQuantizeConfig.__init__() got an unexpected keyword argument 'model_name_or_path'

I saw that the PR is relative to peft and I've not tried the peft code at all yet so am not familiar with any changes that makes

This seems because some changes in the main branch not been merged into peft branch


500 delete default tag

Describe the bug
Should not see a 500 when trying to delete the default tag from a tool
To Reproduce
Steps to reproduce the behavior:

Find/get a tool where you can delete tags
Try deleting the default tag
See something like:

ERROR [2021-09-30 20:19:54,554] org.hibernate.engine.jdbc.spi.SqlExceptionHelper: ERROR: update or delete on table "tag" violates foreign key constraint "fk_tool_default_tag" on table "tool"→  Detail: Key is still referenced from table "tool".

Expected behavior
Not a 500 (maybe bad request) and a friendly message saying that a default tag cannot be deleted
Additional context
Webservice - 1.11.8
UI - 2.8.2
Compose Setup - 1.11
Deploy - 1.11.1
┆Issue is synchronized with this Jira Story
┆Issue Number: DOCK-1932
┆Sprint: Backlog
┆Issue Type: Story

Duplicate


how to only download sample image?

What steps will reproduce the problem?
how to only download sample image..there is no option to download sampl image only...i tried by going to tools/option/save and disabled "download original image" but it still does not work
i use gelbooru
What is the expected behavior? What do you get instead?
How often does this problem occur? On which sources?
What version of the program are you using? On what operating system?
Please provide any additional information below

looks the same issue with https://github.com/Bionus/imgbrd-grabber/issues/949
That's the current answer from dev:

i tried by going to tools/option/save and disabled "download original image" but it still does not work

There's indeed a bug causing original images to still be downloaded even though this checkbox is unchecked. It will be fixed in the next version (for boorus who provide sample urls).

So downloading thumbnails is still impossible?

Yes, because that was not meant in the program in the first place, so it's more than this simple bugfix. While not that complicated, downloading thumbnails would require adding a new column to the download tab tables to select which size to download ("original", "sample", "thumbnail"). I'll update #949 when done. :smile:

I'll update #949 when done. :smile:

Well, that feature is not so important or needed, better to focus on more important issues first

I know its not that important...but it is important...so...next update would be nice..but no hurry...take your time

You misunderstood me, dude. Your issue with sample images already solved and fix will be included in the next release. You can even use nightly versin, where it's already implemented.
And I Replied to Bionus about ANOTHER issue about thumbnails, so don't worry about samples.


Make Drag Threshold configurable

As already mentioned in #22, I think it would be desirable to make the threshold at which the slider starts to react to the hand/cursor movement configurable.
That might look like this:
const embla = EmblaCarousel(emblaNode, {
  dragThreshold: 5,
  ...
})

With the value being the amount of pixels the hand/cursor has to move until the silder will follow its movement.
Apparently there already is a drag threshold already built in and I'm sure that the default value will be enough for most devs but depending on what kind of device the slider is used on, it could be quite useful (I'm thinking mostly about touch screens here).
Jeff

Hello Jeff (@Tscheffrey),
Thank you very much for taking time to create this issue 👍🏻.
I’ve tried to gather user opinions on this for a period of time to no avail. I’m going to close this issue for now due to lack of interest.
Kindly,
David

.

@davidcetinkaya this is a very necessary option

Hello Alexander (@sh-a-v),
Would you care explaining why? What are the benefits of this?

I have a use case: I built a slider that features slides which are about 100% of the browser width. They contain images which on the other hand don’t use all of their slide’s horizontal space. I want the mouse interaction only to happen and be visible (by changing the cursor), when the mouse is placed on an image—not on the whitespace around it. It works okay with images in landscape format, but with ones in portrait you have to drag the image unnaturally far to trigger the slide change. Multiple people complained about this, so I would be happy about that option!

Hi @silllli,
Thanks for your input. Would you mind creating a CodeSandbox to demonstrate what you mean? I'm not sure I'm following.

Yes, something like this: https://codesandbox.io/s/embla-carousel-align-vanilla-forked-7opur4
If you open it on a 27“ screen, you need to drag the slide really far and/or fast. Actually, the effect is also there with images in landscape format, but it’s more obvious with portraits, since the amount of needed dragging is bigger compared to the absolute image width in the browser. So maybe the problem is actually the calculation of the threshold—shouldn’t it feel the same on a 16“ and a 27“ screen?

Thanks @silllli,
I see the problem now. With the current implementation, the drag threshold is set to be a specific percentage of the viewport. This is working well on devices from mobile phones ---> small/medium laptops. But as you describe, as screens get bigger it's causing problems.
My suggestion would be to keep the current behavior:

The drag threshold is set to be a specific percentage of the viewport.
BUT, I think we should limit it within a minimum/maximum range, so it doesn't grow out of hand for larger screens than laptops.

I've created a CodeSandbox where you can try the approach I describe above. Feel free to try it out. Try it on small and large screens and experiment with the minimumDragThreshold and maximumDragThreshold values until you think it's behaving as expected.
If my suggestion still doesn't solve the problem, I'm willing to discuss other solutions. Thanks for your time!
Best,
David

Thank you @davidjerleke for looking at this so promptly. And yes, it makes total sense up to a certain point that the threshold is based on the browser width. I’ll be back at my desk with a large screen tomorrow where I can test it. On the other hand, I bet my judgement wouldn’t be better than yours, so go ahead if you want to implement it before!

No rush @silllli, I'll wait for you to test it. Cheers!

Sorry that it took that long, I finally got to it:
I think it’s a bit tricky since it depends on the input device. With an external mouse, a higher value (like 250) seems to work, but that’s still hard to handle on a trackpad. On a trackpad I would even go as low as 150. What do you think?
(In you CodeSandbox, somehow the threshold seems to be a lot higher between the first and last slide than in between?)

Thanks a lot for looking into this @silllli.

I think it’s a bit tricky since it depends on the input device. With an external mouse, a higher value (like 250) seems to work, but that’s still hard to handle on a trackpad. On a trackpad I would even go as low as 150. What do you think?

Yes that seems tricky. I found this StackOverflow solution to detect if the input device is a mouse or a trackpad, but if you read the comments the solution doesn't seem to be waterproof. It's also har to test extensively because you would need access to a lot of devices and also try these devices in different browsers 😕.
I don't know where to go from here. At least we can agree that the drag threshold should be limited to a max value so it's not impossible to change slides on large screens. What's your thoughts?
I'm also thinking that making drag threshold configurable wouldn't solve this problem you're describing.

(In you CodeSandbox, somehow the threshold seems to be a lot higher between the first and last slide than in between?)

Hmm. Not sure. I'll have to try this and see if something strange is going on.
Best,
David

I don't know where to go from here. At least we can agree that the drag threshold should be limited to a max value so it's not impossible to change slides on large screens. What's your thoughts?

I guess most important is to have a limit at all. Also, we could assume that most people that use a 27" screen (or larger) also use an external mouse, so there is no need to worry that much about this combination. (Well… I use my laptop’s trackpad and an external mouse interchangeably, together with a 27" screen.)
Maybe simply set the limit to something like 225?

I'm also thinking that making drag threshold configurable wouldn't solve this problem you're describing.

No, I don’t that’s needed.
Best,
Silvan

Thanks for your help @silllli 👍! I'll have this on my roadmap for the next release.

@davidjerleke Thank’s for the quick reply.
If clicking elements in the carousel is not necessary, the threshold could also stay low. So it could also be a boolean if you don’t want to expose the threshold value directly but in the other libraries I found it quite handy to be able to dial it in depending on the situation.
On touch (as far as I can tell) it works very nicely.

Hi @wolfgangschoeffel,
Thanks for your input. I’ve decided to expose a dragThreshold option but can say when I have time to look into this. Note that this will only affect when clicks are fired and not. In contrast to other carousel libraries, it will not affect when dragging of the carousel starts.
Until I’ve implemented this, I encourage you to check out the new v8.0.0-rc01 release and all its new features.
Best,
David

@wolfgangschoeffel and anyone interested in this feature. It will be released with v8.0.0-rc03.

Amazing. Thank you @davidjerleke! Looking forward to try it out.

@wolfgangschoeffel I just released v8.0.0-rc03.


[var Request] Codeunit 80 "Sales-Post" - ArchiveUnpostedOrder

Could you please change SalesHader parameter to "var"? As we are updating Sales Header in Archive Management codeunit, we need this to be a var parameter.
Thank you
OLD CODE
procedure ArchiveUnpostedOrder(SalesHeader: Record "Sales Header")
var
    SalesLine: Record "Sales Line";
    ArchiveManagement: Codeunit ArchiveManagement;
    IsHandled: Boolean;
begin
.
.
.

NEW CODE
procedure ArchiveUnpostedOrder(var SalesHeader: Record "Sales Header")
var
    SalesLine: Record "Sales Line";
    ArchiveManagement: Codeunit ArchiveManagement;
    IsHandled: Boolean;
begin
.
.
.

Call of ArchiveUnpostedOrder located after we do Modify of Sales Header in procedure CheckAndUpdate. What is the reason of this update in your case, can you think about different design for your purpose?

Thank you for such a fast reply. OK, we will rethink this. Thank you for now.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Retry if attempt to add cluster client fails

What happened:
FederatedCluster never became Ready after initial attempt to add cluster client failed:
I0510 14:25:51.330936       1 federated_informer.go:207] Cluster federation-test/cluster1 not added; it is not ready.
I0510 14:25:51.330938       1 federated_informer.go:207] Cluster federation-test/cluster1 not added; it is not ready.
I0510 14:25:51.331001       1 federated_informer.go:207] Cluster federation-test/cluster1 not added; it is not ready.
I0510 14:25:51.331147       1 controller.go:132] ClusterController observed a new cluster: cluster1
E0510 14:25:51.331259       1 controller.go:136] Failed to create corresponding restclient of kubernetes cluster: no matches for kind "Cluster" in version "clusterregistry.k8s.io/v1alpha1"
W0510 14:26:00.535202       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:26:10.541271       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:26:20.548210       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:26:30.550183       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:26:40.557431       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:26:50.565333       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:27:00.572202       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:27:10.579465       1 controller.go:169] Failed to retrieve stored data for cluster cluster1
W0510 14:27:20.586610       1 controller.go:169] Failed to retrieve stored data for cluster cluster1

We should probably re-attempt to add cluster if the following fails:
https://github.com/kubernetes-sigs/federation-v2/blob/68bca8c23e006a0ebcbdc66e1555d034d5c2d4bb/pkg/controller/federatedcluster/controller.go#L168-L171
This means we have a FederatedCluster stored in the API but no cluster client stored for it because the following failed:
https://github.com/kubernetes-sigs/federation-v2/blob/68bca8c23e006a0ebcbdc66e1555d034d5c2d4bb/pkg/controller/federatedcluster/controller.go#L134-L138
What you expected to happen:
FederatedCluster becomes Ready
How to reproduce it (as minimally and precisely as possible):
Initial attempt to add cluster client for FederatedCluster in function addToClusterSet fails:
https://github.com/kubernetes-sigs/federation-v2/blob/68bca8c23e006a0ebcbdc66e1555d034d5c2d4bb/pkg/controller/federatedcluster/controller.go#L123-L140
Anything else we need to know?:
Environment:

Kubernetes version (use kubectl version)
Federation version 0.0.10
Install method (helm vs script)
Install configuration (namespaced vs cluster-scoped)
Others

/kind bug

This represents a big hole in how cluster health is determined.  Cluster clients are added once, when the KubeFedCluster is first encountered, and then never updated.  We need a proper reconcile loop that responds to changes in cluster configuration.
Prior to #869, this same issue would have affected the federated informer since the cluster registry clusters were not being watched for changes, but the api endpoint is now on the kubefed cluster which is being watched.
cc: @shashidharatd

Moving to v0.1.0 - this needs to be fixed for beta.


Support for electron runtime environment

Are you willing to support the electron (browser) runtime environment?
I figured out that webpack is using node.js timer features that seems to differ from timers in browser? Just a guess.
ref:

#1728
https://github.com/s-a/iron-node/issues/97

Did you use target: "electron"


🐛 fix prow checks

Summary
fix boilerplates check for CI
Related issues
Fixes #1530

We are following a clean history discipline. There should not be merging back and forth between two branches; merging should go only one way.

all checks are now passing


Type narrowing/assertion fails with ternary operator

Bug Report

🔎 Search Terms

type assertion ternary
type narrowing ternary

🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about 4.6.4, 4.7.0-dev.20220430
I was unable to test this on prior versions because it makes no sense why older versions would have this

⏯ Playground Link

Playground link with relevant code
💻 Code

export type Locales =
  | 'de'
	| 'en-gb'

export const locales: Locales[] = [
	'de',
	'en-gb'
]

export const baseLocale: Locales = 'en-gb'

const isLocale = (locale: string | null): locale is Locales => {
  return locales.includes(locale as Locales);
}

    const localStorageLocale = localStorage.getItem('locale');
    const navigatorLocale = navigator.language;

    const locale: Locales = isLocale(localStorageLocale)
      ? localStorageLocale
      : undefined || isLocale(navigatorLocale)
      ? navigatorLocale
      : undefined || baseLocale;

🙁 Actual behavior
Typescript does not correctly narrow the type and says that Type 'string' is not assignable to type 'Locales'
🙂 Expected behavior
It to correctly narrow down the type without error

It seems that you expect a ? b : c || d ? e : f to be a ? b : c || (d ? e : f), but it is actually a ? b : (c || d) ? e : f.

It seems that you expect a ? b : c || d ? e : f to be a ? b : c || (d ? e : f), but it is actually a ? b : (c || d) ? e : f.
Add the missing parentheses and your code will work.
const locale: Locales = isLocale(localStorageLocale)
      ? localStorageLocale
      : undefined || (isLocale(navigatorLocale)
      ? navigatorLocale
      : undefined || baseLocale);

I realized the library I used had this functionality builtin so I am not using this code anymore. However doing this in the ts playground did fix the issue. Thanks


docs/corobo.rst: Document corobo commands

Reviewers Checklist

[ ] Appropriate logging is done.
[ ] Appropriate error responses.
[ ] Handle every possible exception.
[ ] Make sure there is a docstring in the command functions. Hint: Lookout for
botcmd and re_botcmd decorators.
[ ] See that 100% coverage is there.
[ ] See to it that mocking is not done where it is not necessary.

I think each point needs a bit of description of what it returns. Like what do Bear stats return or PR stats return or Language stats return

ack https://github.com/coala/corobo/pull/269/commits/684350c4c5881c2dc2079f7fdd6a8c766f00fd80

ack 2f99c2b

@rultor merge

@rultor merge

@meetmangukiya OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@meetmangukiya Done! FYI, the full log is here (took me 2min)


rmount: init at 1.0.1

Motivation for this change
Things done

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

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

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

Additionally, it may or may not be an issue, the git commit's author isn't properly linked to the github account; it could either be that you didn't add that e-mail address in your github account (not really an issue) or misconfigured git (maybe more of an issue). (The e-mail address used seems a bit... placeholder~ish.)

Thank you very much for your help. I fixed every issue you described, the email was intentionally  placeholder~ish but to eliminate conflicts, I just changed it to a real one.

Should I close this Pull request and reopen a new one?

Thanks! Now it's squashed and the minor things are fixed :-)

@Luis-Hebendanz in addition to the 2 requests I have made could you please rewrite the git history to contain 2 commits: the first simply adding yourself to the list of maintainers with an appropriate commit message, and the second commit adding the package?
After these changes we'll get this merged right away.

@aanderse Closing this branch I opened up a new one with desired changes: https://github.com/NixOS/nixpkgs/pull/60204


Many resources do not support setting a value to its type default

Describe the bug
There are a number resources that use omitempty for optional fields in the API, which means setting the value to the type default fails to set a value in Artifactory. My latest example of this is on artifactory_user, but applies to most of the resources I've looked at in the code.
To reproduce, use the following Terraform to create the user.
resource "random_string" "artifactory_password" {
  length = 30
}

resource "artifactory_user" "example" {
  admin                      = false
  disable_ui_access          = false
  email                      =<EMAIL_ADDRESS>  groups                     = ["readers"]
  internal_password_disabled = false
  name                       = "example"
  password                   = random_string.artifactory_password.result
  profile_updatable          = false

  lifecycle {
    ignore_changes = [
      password
    ]
  }
}

Then schedule another plan which will show the following.
# artifactory_user.example will be updated in-place
  ~ resource "artifactory_user" "example" {
        id                         = "example"
        name                       = "example"
      ~ profile_updatable          = true -> false
        # (5 unchanged attributes hidden)
    }

Artifactory version : 7.27.10
Artifactory terraform provider version : 2.6.21
Terraform version : 1.0.11
Expected behavior
Fields set to type defaults should be respected and not omitted from the API request.
Additional context
Additional linked issues:

#191 - Another example of this behaviour
#217 - Fix in a subsequent PR
jfrog/jfrog-client-go#484 - Underlying client that doesn't support this either, although this project uses a very old version of the library too

I'm going to file a JFrog Enterprise Support ticket about this as it's an active blocker for us upgrading past v2.2 of the provider, something we need to start supporting Cargo repo types correctly in our clusters.

You are completely right. If we were to simply remove all of those it would alter behavior significantly and we would have to know that the "default" value would be to make sure we could maintain backward compatibility.
All of those omitemptys are legacy. If you provide specific cases, we can supply specific solutions. I'm sorry it can't be a broad bases solution

If those omitemptys were from the legacy code, then I suspect something major has changed in the way the values are sent. For example, 2.2.13 will apply correctly and not produce diffs, like the one mentioned above, whilst 2.6.21 does. I can go through and find other specific cases this this one and #217, but at this point I'd argue that whatever happened after the 2.2.x series is actually a breaking change in the expected contract

I say legacy because, I didn't fully understand what was being attempted in the original code in some places. And, so when moving to the new client I just kept as much as possible as is. I mean, in version 2.2.x, 60% of the tests didn't pass so there was no telling what was going on.
2.3.x was a major departure because all of the original atlassian code was pitched away along with all the other hodgepodge code from various client implementations. Along the way, it was discovered that some forms of backward compatibility couldn't be maintained. But, that's was a semantic version bump means: Backward compatibility may have broken (and, when I released, I was sure it was broken).
From a time and focus perspective, we can fix an issue as it's identified because it limits scope.
As a side note: We are working on implementing a provider for projects and a dedicated one for xray using current APIs. When that happens, we will phase out xray support here and do a version bump again

Is this issue being used to track the specific case of profile_updatable or should we file a new issue for that?

@jcogilvie Please open separate ticket(s) for each attribute/value that affect you. This will allow us to better track the changes and easier to manage the work.

Closing this issue. If you have specific attributes that need fixing due to this problem, please open individual ticket for each attribute/resource.


LEAN-2712

Hi @hhusban, I came across this PR while I was reviewing the frontend work. I wanted to know if it's intentional not to use the existingMPNumberingStyle defined here: https://github.com/Atypon-OpenSource/manuscripts-json-schema/blob/master/schemas/concrete/MPParagraphStyle.json#L26
Anyway, the current changes look fine and straightforward to the current objective.

@hhusban / @mnatsheh
Is it also intentional to not support the plain lists (unlabelled) in this PR?

@IslamJMomani my understanding is that we don't intend to support it, but it's still mentioned in the specs, so I'll check with product management.