Non-Phone uploader only using WiFi

This is not really an issue with the 600SeriesAndroidUploader but a query if you have heard about a "stationary" uploader which can be wall-plugged 24/7.
My D1D daughter is now 12 and we do not monitor her a lot during the day - we only use the uploader during the night in order not to get out of our own bed in order to check the BS. The phone which we have been using so far is getting quite worn and normally only lasts for 4-6 hours (I know a new battery would solve this).
I cannot find a solution where it is possible to power the phone and at the same time have the OTG cable plugged with the Contour Next 24/7 - so I thought that someone must have tried a solution where they have an Intel Edison or RaspBerry Pi computer connected to a Contour Next? I guess having multiple of such devices could potentially cover the entire house. Only requirement is that it needs to be connected to the net via WiFi.
Any info would be appreciated :-)
And again - thumbs up to all of you for the great work - the last uploader version is fantastic!!!

You can run LineageOS (a version of Android) on a Radpberry Pi 3.
You can get the build here

Lots of Android based mini-pcs that should work and they're cheap too. These are often just used for HTPC stuff, connect to a tv for setup and then run headless (no screen) after that.
A PC running an android emulator. Us lot use the free version of Genymotion emu for dev work but also fine for non-dev just standalone.

Thanx for the quick reply - any of you two running such a device? Or are both of you just running with phone?

Day to day it's just a phone for me.

Can android-of-things be used on RPi3?

@Fishbaits I have never tried Android-of-Things. As mentioned in an above comment, the only solution I know for sure that works on RPi3 is LineageOS.

We use a Y-OTG cable to power phone and CNG during night (https://www.amazon.de/gp/product/B00M1H5348/ref=oh_aui_search_detailpage?ie=UTF8&psc=1)
Not the best one.

Hello,
i have used different OTG- Cables. Some fit better, some not.
On my Moto G5 after some month i changed the cable and everything was
connecting perfect again.
But now i bought a Moto g5s and i didn't found a OTG Cable with works.
Every cable get disconnected from the port, as soon as i touch the phone or
the cable
Andreas
volkerrichert<EMAIL_ADDRESS>schrieb am Do., 26. Juli 2018 um
10:54 Uhr:

We use a Y-OTG cable to power phone and CNG during night (
https://www.amazon.de/gp/product/B00M1H5348/ref=oh_aui_search_detailpage?ie=UTF8&psc=1
)
Not the best one.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pazaan/600SeriesAndroidUploader/issues/210#issuecomment-408026816,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AhyasTitlmoBt5LMOnQf2XCx2LDH6prsks5uKYOpgaJpZM4Su3Mm
.

@volkerrichert - I have tried a couple of these Y-OTG cabels and they don't seem to work...?!? Maybe it has been the quality...
I think I have tried 3-4 different ones without success :-(

Me, too.

Adding a label to document the Pi 3 solution.

Over the past week and the better part of the weekend, I setup a RasPi 3B with Android 9.0 (from konstakang.com) but the device froze when the Uploader was opened and the Contour device attached. (I saw some major sluggishness enter the scene already with the installation of gapps, this may or may not be related.)
Fortunately, I still had a 2012 tablet on the shelf that runs 4.4.4, has a separate charging socket, and supports OTG. Does this count as "non-phone, only using WiFi"? ;)
Since I've been doing this for a good friend and don't have access to neither the pump nor the meter, I cannot pursue this further - at least not as long the current setup works. Perhaps the 640G will be replaced anyway in the near future (because of age and brokenness).
Thanks to @pazaan for his excellent work - the winking owl in the status bar is much appreciated ;)

Not quite a non-phone solution, but I have an old Sony Xperia Z that has seperate charging connectors that work with its cradle. Some tweaking on de cradle provide access to the usb port. Since then charging and uploading is working. You do need a relatively old sony xperia. The Xperia Z1 compact has a usb-cradle which does not help. Also wireless charging might help you like the Samsung Galaxy S6.
Finally a PC/Laptop with VirtualBox running android might work. I tested with a usb flash drive. The Android VM was recognizing the usb storage immediately. Doesn't take much time to try a nightscout setup.
Also we recently replaced the 640G with 670G. So my current setup will be working for another 4 years.

@pheppy - could you elaborate a little on "Some tweaking on de cradle provide access to the usb port" - what does that mean? Is it software or hardware tweaking you are referring to?

@pheppy what's the latest available Android upgrade for that device, and do you have a model number or hardware code name? I'm somewhat worried that future upgrades to the apps will require an API level that's not provided by e.g. Kitkat (4.4.4), so I'm looking for alternatives that can persist for a bit longer... (Sony seems to have stopped support at Lollipop 5.1.1 but there might be Lineage.)
@HenrikHL I think it's about mechanical tweaking, i.o.w. dremeling stuff away that otherwise would block access to the USB port. Unfortunately I cannot find any pictures showing the left (cradling) side, is there more than https://www.gsmarena.com/sony_xperia_z-pictures-5204.php ?

@steffen-AEI please write here if you get the RaspPi to work. I tried about a year ago but couldn't get it up and running :-(

Raspberry does  not have a proper usb otg port, it cannot work.
Use bananapi or others like that. I personally have a BananaPi M2 Ultra working as uploader.
Almost no problems whatsoever except maybe once in a month or two CNL needs to be removed and reconnected for USB connection error.

@Fishbaits The RasPi doesn't need OTG, does it? It's all about host mode, and other client devices work flawlessly with the 3B.
@HenrikHL RasPi froze the moment the Uploader was started with the Link connected. I'm tending to blame GApps, but it would have taken too long to get rid of them, so we fell back to the tablet instead. (And without the Link in direct reach, I cannot continue experimenting.)

@Fishbaits according to this comparison: https://www.hackerboards.com/compare/126,251,186/ there is OTG support on the Rasberry. When you say "not have propper OTG support" - are you saying there are different levels of OTG support and for some reason the Contour Next is not supported?
Could you also write what software you are running on your BananaPi?

BananaPi has official support for Android, that is what I am using.
With Raspberry I tried all I could think of but I never got it to work. Even bought Emteria version but not working. Occasionally got it to read one or two times and then it died. Raspberry did say that they have host mode but not otg, might have something to do with that.
BananaPi works fine. Separate port for OTG and power, even bought original 7" LCD with touch, all works.

@Fishbaits this is where things start to get interesting (and possibly back to the original subject)
Although I'm still wondering why OTG is such an issue with *Pi SBCs - if they come with an extra power supply socket, and have proper host mode, there's no need to provide OTG as well (which basically has been designed to have a "one stone two birds" way to interface small handheld devices both to chargers and USB devices).
So while for a mobile phone that cannot afford a full-fledged USB type A socket, OTG is OK. For any *Pi I know (not the Zeroes though) there's at least one type A connector, and host mode is provided - otherwise one couldn't connect any external USB devices. And there's no point in having an OTG connector if the device cannot be powered otherwise, externally or internally.
The highest Android version I could spot for the BananaPi is 6.0 - Marshmallow is a couple of years old, and while it is still supported by apps, there are only very few devices getting OS upgrades. On the other hand, the 9.0 experiment may have failed exactly because of 9.0 - and if I ever get my hands on the CNL again, I'll give 7.1 or perhaps 8 by konstakang another try.
The BPi is supposed to be GPIO compatible with the RPi, thus I'm not surprised that the LCD works.
Can you elaborate on the details of your setup, in particular which Android image, GApps (if any), etc.? Did you indeed connect the CNL to OTG, not to a real type-A port?
For now there are only reports of non-working setups, and this addition might be a big improvement of the situation. Thanks!

Just got a link to these two FB posts where people have Raspberry Pi up and running: https://www.facebook.com/groups/NightscoutForMedtronic/permalink/1864929396851699/
and
https://www.facebook.com/groups/NightscoutForMedtronic/permalink/2813552561989373/

Great. I've been avoiding FB and WA, and will continue to do so. Bye...

I can take photos later, when I get home.
I am using BPi original OS, http://wiki.banana-pi.org/Banana_Pi_BPI-M2U#Image_Release
Not sure it is still same version as I started mine about a year ago I think.
Cannot remember about GApps too, probably nothing more than what came with OS image + 600 uploader.

Ok, basically nothing special or interesting or complicated.
M2U is running Android 6.0.1, it has GPlay etc from the start.
Using OTG socket with adapter from micro to regular.
It has BPi 7" screen working through MIPI DSI interface.
For testing I connected bigger antenna to CNL, still not sure if it actually helps too but I think it does :)
http://www.itvara.ee/Uploader/1.jpg
http://www.itvara.ee/Uploader/2.jpg
http://www.itvara.ee/Uploader/3.jpg
http://www.itvara.ee/Uploader/4.jpg

@Fishbaits I'm curious about your antenna hack, I've a similar antenna. And a few extra meters would help to monitor in the living room as well.
@HenrikHL the cradle indeed blocks the USB port. Therefor I'd to remove a small part of the plastic cradle. A dremmel could have helped. As far as I can remember I used simple tools like a handsaw and pliers. You can see result in the foto's. You need the original Sony cradle or build your own (https://www.instructables.com/id/DIY-Sony-Xperia-Z-Desktop-Charger/)
@steffen-AEI Model XperiaZ is C6603 and indeed I'm running 5.1.1. LineageOS 15.1 (8.x Oreo) is available on XDA. I've had no problem whatsoever on the OTG, flashdisks also work just fine. I do have to re-attach the Contour device every now and then. Otherwise no complaints. We take this device very long cartrips (carcharger), vacation, camping (big powerbank) and sleepovers at friends. I guess without nightscout my son would have no sleepovers or camping with friends (although the new 670G gives us some comfort)!
https://drive.google.com/file/d/18y3t5Cex-h3H9Uw1LL-w2SMqduM10eTz
https://drive.google.com/file/d/1iVUF8SWLpP5yfrhCSiAT_KtWrQfsrltL
https://drive.google.com/file/d/1GXdoOkqDXu66b5Cg6J9dKGLTQ2Z0q4Y5
https://drive.google.com/file/d/19UEb6lNTBxVmrZ4G_PRt8yTCj1iTzNhQ

CNL has antenna socket inside, no opening so drilling is needed.
I am using a CRC9-SMA/F connector and then just regular wifi antenna.

I went to find the radio frequency that CNL and pump use to talk to each other - and came across a FCC document that lists the 2.42~2.48 GHz range. In other words, the radio transmissions of pump/CNL and WiFi (and also microwaves) use the same frequency range. Did you know that beforehand?
Also at 0.4mW, interference by WiFi (up to 100mW, IIRC?) would explain the short range of the communication - I'm surprised that it doesn't fail more often!

I went to find the radio frequency that CNL and pump use to talk to each other - and came across a FCC document that lists the 2.42~2.48 GHz range. In other words, the radio transmissions of pump/CNL and WiFi (and also microwaves) use the same frequency range. Did you know that beforehand?
Hey @steve8x8 - yep, I’ve known this since the beginning. See the first few lines of https://github.com/pazaan/decoding-contour-next-link/blob/master/Random Protocol Notes.txt for the exact channels that the CNL uses.

@HenrikHL
I am not a fan of Android or any kind of uploading of my daughters intimately private data to any kind of cloud. She is 11 years old, and have DT1.
Thererfore I have built a simple application, deployed on an RPi, using the decoding-contour-next-link with a CNL24 plugged in, located at the centre of our house, and presenting a Pyro4-interface on an ssh-connection to a PC our LAN, but routed through our external gateway; which is also an RPi, running DNSMasq+ShoreWall. On this PC I made a web-application with Flask+SocketIO and a JS-based browser interface. See the attached screenshot with fake data; it looks like this on my laptop and on my phone alike.
The RPi with the CNL24 plugged in can move with her when she visits a friend or when we go on vacation, provided I prepare the WPA-supplicant configuration with appropriate SSID and passkey. This have worked for several years for us, and is very practical.
I have often thought about publishing this, but every time, I consider how many people would actually want to run this kind of infrastructure themselves, when it is so much easier to just upload everything to some US-based tech- or industry giant. If, however, you are interested, I will help you set it up, and I would welcome you to participate in further development.

You can host NS + DB on your home server and use a android build that works without any big corp exterior access.  You should publish your work, looks like you have but in a ton of work, I'm sure there are others who would like to use your approach.

Also there's (still work in progress) https://github.com/ondrej1024/ddguard which is based on work by @pazaan, and may perhaps be enhanced by a Nightscout uploader (it's using blynk cloud services right now).
It should be able to run on the smallest RasPi (ZeroW, so you get WiFi connectivity), it's just the power consumption of the CNL stick that may limit its "mobility". What's intriguing is that customizing a Linux system is much easier than tweaking Android. Now add a 3G dongle to the whole setup and you're independent of WiFi passphrases...

Also there's (still work in progress) https://github.com/ondrej1024/ddguard

Yep, I have already successfully tested the first version of the Python Nightscout uploader for DD-Guard. It sends the live sensor and pump data to NS (no treatment data yet). Need to find some time to integrate this with the pump data reading of the DD-Guard application.
Comments are welcome.

Yesterday I've put in a nightshift and the Nightscout uploader integration into dd-guard is progressing well. Just a few bits are still missing. One of them is the handling of the sensor exception codes.
What should I send to the NS API in case there is no real SGV data but one of the exception codes (0x0300 and higher) ?
I found the mapping in this source code but can't find what is actually send to Nightscout.

It's in the same source file here. Values are sent as sgv values to NS for exceptions.

OK, found it. Thought it was more complicated. Thanks.
So NS displays no meaningful messages in these cases, just an error code ("?SN", "?MD", ..)

The Nightscout uploader feature of DD-Guard is functional now. The DD-Guard gateway sends the following live data to your Nightscout server:

SGV
Trend
IOB
remaining insulin
670G battery

If you want to have a look or try it out, it's in the nightscout_uploader branch of the DD-Guard project.
Here is a screenshot of both user interfaces after a night of data upload:

Here's a question to the experts :wink:
Sometimes the 670G reports SGV = 0, Trend = "three arrows down" and a timestamp of "Jan  1 01:00:00 1970" which means it didn't receive any data from the sensor. How is this condition reported to Nightscout?

Your probably in a "lost sensor" situation where the pump will eventally recover the signal and backfill the sg data. The android uploader will report this with a "lost sensor" message in the NS pump status pill and will not send any sgv or trend in the device status json upload.

I have fixed some issues and now you can run the DD-Guard gateway exclusively as a Nightscout uploader. This makes sense if you are a user of the Nightscout GUI but prefer a RaspberryPi and Linux based uploader device instead of an Android phone. Admittedly it has not all the bells and whistles that you get from the Android uploader app but it gets the basic things done.
The latest changes are released to the DD-Guard repo master branch. It would be great to have some feedback. Let me know if you think this is useful.
I will now concentrate on getting DD-Guard to run reliably on a RPi-Zero-W so the gateway would become a portable device (see issue #261), even smaller than a phone :smile:

Hi all,
I'm glad to announce that it's finally working! DD-Guard (including Nightscout uploader) is running smoothly on an RPi-Zero now. With the latest CNL driver update the E86 errors are gone and USB power cycling to recover the CNL is not needed anymore.
When the RPi-Zero + CNL stick is powered with a fully charged 4400mAh power bank it runs for 20h. I might try some smaller battery which still gives me enough autonomy but is even easier to carry around.

Hi all,
I'm glad to announce that it's finally working! DD-Guard (including Nightscout uploader) is running smoothly on an RPi-Zero now. With the latest CNL driver update the E86 errors are gone and USB power cycling to recover the CNL is not needed anymore.
When the RPi-Zero + CNL stick is powered with a fully charged 4400mAh power bank it runs for 20h. I might try some smaller battery which still gives me enough autonomy but is even easier to carry around.

I really want this solution! Can this solution work with a continue power supply (for the night) . Where can i found the documentation ?
thanks!!!!

Hi @wifision,
the power bank can be charged connecting a wall plug power supply during the night (or whenever it is needed). The RPi-Zero will happily continue running also when charging.
You can find the documentation and source code on the DD-Guard project pages.
It would be good to have some feedback when you have tried this so I know if this works also fine for others. Thanks.

Hi @ondrej1024 - does your solution also work just as a nightscout uploader - or does it require an App on your smartPhone? I just need a solution for uploading to NightScout site during the night - no need to send anything to an App...

@ondrej1024 What CNL driver are you talking about here: "the latest CNL driver update"? I have to power cycle the USB port on the RPi every second time I poll for recent pump events.

Hi @ondrej1024 - does your solution also work just as a nightscout uploader - or does it require an App on your smartPhone? I just need a solution for uploading to NightScout site during the night - no need to send anything to an App...

Yes, you can enable only the NightScout uploader. Just leave the Blynk related parameters empty in the config file.

@ondrej1024 What CNL driver are you talking about here: "the latest CNL driver update"? I have to power cycle the USB port on the RPi every second time I poll for recent pump events.

Basically I started from the read_minimed_next24.py code by @pazaan and created cnl24driverlib.py which I use in the DD-Guard project. Initially I also needed to power cycle the USB port occasionally to recover the CNL from E86 errors.
Then I backported the communication robustness improvements by @Pogman from the Android uploader to this Python code and now it works reliable. On the RPi-Zero you cannot power cycle the USB port so robustness of the CNL driver is strictly required to make it run on this setup. It's been running here for at least 10 days now without any CNL error.

OK. I will look into that. But could those improvements not be ported into read_minimed_next24.py? Are there other reasons for you not using, and improving, the decoding-contour-next-link code base?

Hi @wifision,
the power bank can be charged connecting a wall plug power supply during the night (or whenever it is needed). The RPi-Zero will happily continue running also when charging.
You can find the documentation and source code on the DD-Guard project pages.
It would be good to have some feedback when you have tried this so I know if this works also fine for others. Thanks.

I just bought one Raspberry Pi 4 Model B starters pack ->
Now I read that the software is not compatible with older types.  Is that really true >?

OK. I will look into that. But could those improvements not be ported into read_minimed_next24.py? Are there other reasons for you not using, and improving, the decoding-contour-next-link code base?

Although DD-Guard builds on parts of the project decoding-contour-next-link  (namely the CNL comms driver), it is a completely separate project with different purpose and with its own GIT repository. It is not very convenient to link to code in an external repository and maintain both. So I prefer to handle everything in one place.

I just bought one Raspberry Pi 4 Model B starters pack ->
Now I read that the software is not compatible with older types. Is that really true >?

What older types ? DD-Guard should run fine on any RPi model with Raspbian OS. It's just Python code, so as long as you have the Python environment and the needed libraries installed it will run.

@ondrej1024 "So I prefer to handle everything in one place.": This exactly becomes two places, which I think is a problem. But I also agree that it always seems simpler to include a copy integrated into your project. Could you at least point me to the robustness improvements in your driver code, that I may port it into the https://github.com/pazaan/decoding-contour-next-link code base?

All the comms related improvements are in class Medtronic600SeriesDriver. You can just replace the complete code of that class in the original code.
For details check the git history of cnl24driverlib.py (changes from 30/03/2020 and later)

@ondrej1024 Thanks a lot!

Thanks to @oldsterIL who contributed to the CNL2.4 Python driver lib the complete data from the pump status message response is now parsed (see this commit if you are interested).
So now the driver provides access to everything the pump sends in the status message. Here's an example of what we get:
### Serial ###
CNL serial: 6212-1339889

### Pump status ###
suspended:            0
bolusingNormal:       0
bolusingSquare:       0
bolusingDual:         0
deliveringInsulin:    1
tempBasalActive:      0
cgmActive:            1

### Pump alert ###
alertOnHigh:          0
alertOnLow:           0
alertBeforeHigh:      0
alertBeforeLow:       0
alertSuspend:         0
alertSuspendLow:      0
alert:                0
alertDate:            Thu Jan  1 01:00:00 1970
isAlertSilenceHigh:   0
isAlertSilenceHighLow:0
isAlertSilenceAll:    0
alertSilenceMinutesRemaining:0

### Sensor status ###
calibrating:          0
calibrationComplete:  0
exception:            0
sensorCalMinutesRemaining:   260
sensorBatteryLevelPercentage:87
sensorRateOfChange:          0.2

### Bolus ###
bolusingDelivered:        0.0
bolusingMinutesRemaining: 0
bolusingReference:        0
lastBolusAmount:          0.6
lastBolusTime:            Fri Apr 17 17:04:26 2020
lastBolusReference:       12
recentBolusWizard:        1
recentBGL:                161

### Basal ###
activeBasalPattern:       1
activeTempBasalPattern:   0
currentBasalRate:         1.0
tempBasalRate:            0.0
tempBasalPercentage:      0
tempBasalMinutesRemaining:0
basalUnitsDeliveredToday: 19.9

### Battery ###
batteryLevelPercentage:   75

### Insulin ###
insulinUnitsRemaining:    98.55
minutesOfInsulinRemaining:15555
activeInsulin:            1.6

### BGL ###
sensorBGL:                161
sensorBGLTimestamp:       2020-04-17 17:55:46.999934+02:00
trendArrow:               0

I added some of this to be displayed on the DD-Guard app:

Pump alerts
sensorCalMinutesRemaining
sensorBatteryLevelPercentage
lastBolusAmount

I would like to upload these data also to Nightscout? Does anyone know if this is supported? Unfortunately the existing Nightscout API documentation is pretty useless and doesn't give me any information on this.

NS doesn't really have a way of using that data directly except for IOB and Reservoir Units. We build a dynamic status message to include all the other info. Check this function and the related files:
https://github.com/pazaan/600SeriesAndroidUploader/blob/ae33d79ac93b203e9108edd91152d6973ed00189/app/src/main/java/info/nightscout/android/upload/nightscout/NightscoutUploadProcess.java#L454

Interesting, I'll have look. So how is this custom string displayed in NS, in the pump status pill?

Yep
Normal state:
reservoir, pump battery, time since read | transmitter battery, time to cal

Pump Alert & Temp Basal in progress

Cal needed

Mongo DB device status entry:
{     "_id": {         "$oid": "5e9b0da72d4ea62b4cd9e94f"     },     "created_at": "2020-04-18T14:24:36Z",     "device": "medtronic-600://Batman",     "pump": {         "battery": {             "percent": 50         },         "clock": "2020-04-18T14:24:36Z",         "iob": {             "bolusiob": 0.9,             "timestamp": "Apr 18, 2020 3:24:36 PM"         },         "reservoir": 161.6,         "status": {             "bolusing": false,             "status": "⚠ | 47% calibrate now",             "suspended": false         }     },     "uploaderBattery": 100 }

Perfect, this helps a lot, as always. Thanks.

Hi @ondrej1024 - does your solution also work just as a nightscout uploader - or does it require an App on your smartPhone? I just need a solution for uploading to NightScout site during the night - no need to send anything to an App...

Yes, you can enable only the NightScout uploader. Just leave the Blynk related parameters empty in the config file.

It's working for a rasperry PI 4 but Only the basic values are forwarded to Nightscout. - The history data of the last update from 600SeriesAndroidUploader (pazaan) is not sending and the datapoints are not in sync

What I do not understand that autobasal is not visible in nightscout but on the blynk's picture I can see that in the DD-guard smartphone app>?
Am I doing something wrong?

Hi @wifision

It's working for a rasperry PI 4 but Only the basic values are forwarded to Nightscout. - The history data of the last update from 600SeriesAndroidUploader (pazaan) is not sending

At the moment DD-Guard only sends live status data to NS:

SGV
Trend
IOB
remaining insulin
pump battery %

History download is currently not handled by DD-Guard so no history data is sent to NS. That means you will loose the data that wasn't received by DD-Guard while the pump was out of range.
Handing of history data is not working reliably in the original CNL2.4 Python driver and I did not have enough time (and motivation) to fix that.

and the datapoints are not in sync

DD-Guards send the BGL data with the sensorBGLTimestamp read from the pump status response to the NS API. Don't know if the AndroidUploader is doing this differently. So I don't know why you  see the data points slightly apart in time. Is this a problem?

What I do not understand that autobasal is not visible in nightscout but on the blynk's picture I can see that in the DD-guard smartphone app>?

In the DD-Guard smartphone app graph you see the manual boluses as they are reported by the pump (from lastBolusAmount status data) and IOB (from activeInsulin status data), no autobasal is handled.

@ondrej1024 the pumps RTC clock drifts by 4 seconds per day and the android uploader accounts for this drift in it's event time calc at the millisecond level and is normalized to the time on the uploader device. There is always going to be some variance using multiple sources due to this. We also do checks against data already in NS that may come from multiple android uploaders to stop any dupes due to device time diffs.

Amazing, is there anything you didn't think of? :smile:

Lol yeah I'm sure there is...
Check out the master level hacking of the Omnipod patch pump my another NS group, even includes chip decapping and scanning electron microscopy!
https://blog.usejournal.com/insulin-pumps-decapped-chips-and-software-defined-radios-1be50f121d05

I read the article. This is such an incredible story. It makes you scream if you think that it would have been sooooo much easier if the insulin pump manufacturer just provided the communication protocol specs! What's so bad about being open and interoperable with other devices?
Has the CNL protocol also been reverse engineered without any support from Medtronic? I read that they collaborate with Tidepool for the Tidepool Loop integration with the new 670G. Maybe there is some possibility we get the specs for the Bluetooth enabled pump?

All the 600 Series stuff is reversed without any additional support. The support that Tidepool is getting from Medtronic is for future pumps afaik.

Could you at least point me to the robustness improvements in your driver code, that I may port it into the https://github.com/pazaan/decoding-contour-next-link code base?

@mortlind Did you have a chance to try the CNL Python driver improvements? Any issues?

@ondrej1024 I did make one attempt of implementing some of the changes, but it did not result in any improvement. So I will make another attempt where I will take in more of the changes. I am not giving this very high priority at the moment, since the basic decoding-contour-next-link code base works fairly well.


wireguard not working

im trying to setup a wireguard vpn on a ubuntu server
uname -a
Linux suricata 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

i installed the vpn server using default options except for the dns i used my current dns resolvers
the wg0.conf in my server:
# Do not alter the commented lines
# They are used by wireguard-install
# ENDPOINT <IP_ADDRESS>

[Interface]
Address = <IP_ADDRESS>/24
PrivateKey = *****
ListenPort = 51820

# BEGIN_PEER wg0
[Peer]
PublicKey = *****
PresharedKey = *****
AllowedIPs = <IP_ADDRESS>/32
# END_PEER wg0

sudo iptables -nvL; sudo iptables -nvL -t nat

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:51820

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/24          <IP_ADDRESS>/0
    0     0 DOCKER-USER  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0
    0     0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0
    0     0 ACCEPT     all  --  *      docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0
    0     0 ACCEPT     all  --  docker0 !docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0
    0     0 ACCEPT     all  --  docker0 docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0
    0     0 RETURN     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0
    0     0 RETURN     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  127  7304 DOCKER     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER     all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  *      !docker0  <IP_ADDRESS>/16        <IP_ADDRESS>/0
    0     0 SNAT       all  --  *      *       <IP_ADDRESS>/24         !<IP_ADDRESS>/24          to:<IP_ADDRESS>

Chain DOCKER (2 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  docker0 *       <IP_ADDRESS>/0            <IP_ADDRESS>/0

the internet is working the interface is up when i move the client conf to the client machine, i don't have any internet access + i can't access the vpn server ip i tried to ping it back it doesn't work + nothing is working

cat /etc/wireguard/wg0.conf

[Interface]
Address = <IP_ADDRESS>/24
DNS = <IP_ADDRESS>, <IP_ADDRESS>
PrivateKey = *****

[Peer]
PublicKey = *****
PresharedKey = *****
AllowedIPs = <IP_ADDRESS>/0, ::/0
Endpoint = <IP_ADDRESS>:51820
PersistentKeepalive = 25

root@test-VirtualBox:~# sudo iptables -nvL; sudo iptables -nvL -t nat
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

and even when i try to enable and start the service using systemctl it fails:
×<EMAIL_ADDRESS>- WireGuard via wg-quick(8) for wg0
     Loaded: loaded<EMAIL_ADDRESS>disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Mon 2023-06-05 03:33:07 CEST; 42s ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 14796 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=1/FAILURE)
   Main PID: 14796 (code=exited, status=1/FAILURE)
        CPU: 15ms

juin 05 03:33:07 test-VirtualBox systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
juin 05 03:33:07 test-VirtualBox wg-quick[14796]: wg-quick: `wg0' already exists
juin 05 03:33:07 test-VirtualBox systemd[1]<EMAIL_ADDRESS>Main process exited, code=exited, status=1/>
juin 05 03:33:07 test-VirtualBox systemd[1]<EMAIL_ADDRESS>Failed with result 'exit-code'.
juin 05 03:33:07 test-VirtualBox systemd[1]: Failed to start WireGuard via wg-quick(8) for wg0.

from the server i try to ping my client:
ubuntu@suricata:~/wireguard-install$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
From <IP_ADDRESS> icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Destination address required
From <IP_ADDRESS> icmp_seq=2 Destination Host Unreachable
ping: sendmsg: Destination address required
From <IP_ADDRESS> icmp_seq=3 Destination Host Unreachable
ping: sendmsg: Destination address required
From <IP_ADDRESS> icmp_seq=4 Destination Host Unreachable
ping: sendmsg: Destination address required
^C
--- <IP_ADDRESS> ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3072ms

and from the client, it timeouts and it fails

@UncleJ4ck Hello! Thanks for providing the details in this issue. First, please uninstall and reinstall WireGuard on your server to generate new keys. I've redacted some keys from your post which shouldn't be posted publicly.
First, check whether you can connect to this WireGuard server using a different client, such as Windows, macOS, Android or iOS. I suspect that the issue is most likely with the WireGuard configuration on your Linux client (in VirtualBox). This step can confirm whether the server itself works correctly. If the server is fine, feel free to close this issue and instead look into configuring your WireGuard client on Linux.
In addition, I noticed that the two DNS servers you specified are in the same subnet as the WireGuard server. Although unlikely, WireGuard clients might not be able to connect to those servers, you can try using a different public DNS server and see if that works.
Your server seems to have Docker installed, and although unlikely, this could interfere with the IPTables rules for WireGuard. When you have a client successfully connected, the IPTables output should have a positive number (instead of 0) on this line:
    0     0 SNAT       all  --  *      *       <IP_ADDRESS>/24         !<IP_ADDRESS>/24          to:<IP_ADDRESS>

I tried a different dns server (google public dns server) but it didn't work it's the same, i tried it on a windows machine it's not working, can you please provide instructions on using the .conf in the client machine for Linux, because it's not working.
Thank you

@UncleJ4ck Unfortunately I don't have the instructions for configuring WireGuard clients on Linux. You'll need to look into that yourself.
If it also doesn't work on Windows, it is possible that Docker on your server interferes with the IPTables rules for WireGuard. I would suggest that you set up WireGuard on a new server without Docker installed. The script was tested and confirmed working with Ubuntu 22.04, it is most likely not an issue with the script.
If you have additional information feel free to reply here.

@UncleJ4ck I tested the script on a new Ubuntu 22.04 cloud server, and was able to successfully connect using a WireGuard client. So the issue is most likely not with the script.
Maybe the issue is with your VM's network configuration, or it could be the network connection between your WireGuard client and server is unstable (e.g. blocked by GFW). I would suggest that you instead set up the WireGuard server on a cloud server provider, such as DigitalOcean or OVH.


Money.TryParse using decimal.TryParse

This PR changes the internal implementation details of Money.TryParse. It uses decimal.TryParse for persing string containing the amount.
Important:

it uses InvariantCulture in order to prevent the usage of numbers formatted with specific culture  (as before).
it prevents 63 bit overflow for possitive/negative values allowed (as before).
leading and trailing spaces are allowed (as before)

New:

it allows now numbers like .5 and -.5

Tests passed.

sounds good to me, have you checked the tests pass ? there is lots of test on Money parsing and formatting, I think they are broken now. (we might have to change the tests)
Should be in the "Core" trait.
Have you also checked that it compile portable libraries ?

also can we have a test for the overflow case ? (if you don't have time, I can do it)

There is lots of test on Money parsing and formatting, I think they are broken now. (we might have to change the tests).

I used the existing UT to be sure the behaviour is the same that the old implementation. we don't have to change the UTs.

Also can we have a test for the overflow case ?

Can you tell me more about this test? I don't fully understand.

Have you also checked that it compile portable libraries?

No, I didn't check that.

No, I didn't check that

Don't worry, I'll do.
for the overflow case, I mean a test going into

if (Math.Abs(integralPart) > maxAllowedValue)

But don't worry, I'll check that.

I've changed it a bit, so I check overflow also in the decimal ctor of Money.

Well, I didn't want to change the previous code behaviour in any way and for that reason I did it as I did it (Even when it was clearly wrong).
The number<PHONE_NUMBER>854775807 is the value of long.MaxValue. It is no the same for long.MinValue. So, the code should be just a bit different:
Replace this:
return Math.Abs(satoshis) <=<PHONE_NUMBER>854775807m;

By this:
return long.MinValue >= satoshies &&  satoshies <= long.MaxValue;

nice catch fixing it

well, actually the code was correct. Interestingly.
9223372036854775808 ==<PHONE_NUMBER>854775808

BUT
-(-9223372036854775808) = -9223372036854775808

WTF of the day for me

That´s because by default math operation are unchecked, as you know. Then:
unchecked(-(-9223372036854775808) == -9223372036854775808) // True
  checked(-(-9223372036854775808) == -9223372036854775808) // OverflowException

long.MaxValue =<PHONE_NUMBER>854775807
binary =<PHONE_NUMBER>111111111111111111111111111111111111111111111111111111
long.MaxValue + 1 =<PHONE_NUMBER>854775807 + 1 = -9223372036854775808 = long.MinValue (overflow)
binaty =<PHONE_NUMBER>111111111111111111111111111111111111111111111111111111
-long.MinValue =  -1 * -9223372036854775808 =<PHONE_NUMBER>854775808 =  long.MaxValue + 1 (overflow again) = -9223372036854775808
binaty =<PHONE_NUMBER>111111111111111111111111111111111111111111111111111111
So, yes, it is right
-(-9223372036854775808) == -9223372036854775808 // this is correct because the overflows

thanks for the explanation, now Money is safe from overflow ! :)

Wait a minute. It is not safe yet. You need to check in Money(ulong) because there is a problem there. In fact, take a look at the following test:
[Fact]
[Trait("UnitTest", "UnitTest")]
public void Overflow()
{
	var money = new Money(9223372036854775808uL);
	var str = money.ToString(); // --92233720368.-54775808
}

I´m going to continue testing this class bacause I think that even when is not a complex class, it is an important one.

@NicolasDorier I am going to send a PR with these fixes. Operator with doubles and ulongs are not safe neither.
Also, I have a fix for the inherited code in Money.ToString() method that, as I show you (--92233720368.-54775808), has a problem too.
Please wait for my PR.

can you take a look to my recent commits ? I fixed the -- problem by forbidding long.MinValue

Some other findings. Money loses money in division operation. These methods perform integer division!
public static Money operator /(long left, Money right)
{
    return Money.Satoshis(checked(left / right._Satoshis));
}
public static Money operator /(Money right, long left)
{
    return Money.Satoshis(checked(right._Satoshis / left));
}

look this test:
[Fact]
public void IntegerDivision()
{
    var total = new Money(1.0m, MoneyUnit.BTC);
    var op = (total/300000) * 300000;
    Assert.Equal(total.Satoshi, op.Satoshi);
}

Test 'NBitcoin.Tests.util_tests.IntegerDivision' failed: Assert.Equal() Failure
Expected: 100000000
Actual:   99900000
util_tests.cs(282,0): at NBitcoin.Tests.util_tests.IntegerDivision()

100.000 satoshis lost.

The Movey class should be inmutable, in fact, every single operation return a new instance (what is correct) however it provides operators that change its internal state:

public static Money operator ++(Money left) and,
public static Money operator --(Money left)

The following test fails:
[Fact]
public void Overflow()
{
    var money = new Money(long.MinValue+1);
    Assert.Throws<OverflowException>(() => money--);
}

There are two problem here:

It doesn't throw OverflowException but even more important,
money's instance internal state is invalid (long.MinValue)

I will fix these bugs but I really believe that money class has some operators that make no sense and are dangerous for different reasons: /, ++, --


Filter Objects of Owner while connected with another user

Hello,
While I know that when connected with the owner of the schema, I can filter the tables I want , it seems it is not possible when connected with, for example, a select user.
Please consider the following scenario:
USER1 connects to (and has only select rights to these schemas)
1)SCHEMA1_OWNER
Tables
A
B
C
2)SCHEMA2_OWNER
Tables
D
E
F
Would be nice if I can filter the tables I want in each of the schemas - for example INCLUDE only Table A for Schema 1 and Table D for schema 2.
Please note that the above example is from Oracle Exadata Connection.
Thanks!

Can you pleasy specify how do you filter tables in the schema?
There is already a way to filter tables in a certain schema, did you try that?

I used the Filter Option from the User Connection - General Connection Settings.
But what you showed is exactly what I was looking for .
Thanks!

Functionality already exists


cpld: improve the auto-selection of the device

We can have a few different FTDI devices with VID:PID specified by cpld_profile, e.g.: serial port and relays.
This patch adds additional logic to auto-select a serial port in such cases.
See the internal comment for a step-by-step explanation.

Problem with that PR is that is is ULCB-only. For example, S4/Spider uses completely different FTDI chip. So, we can't rely on hardcoded FTDI names. I believe, best way is to infer serial number from /dev/ttyUSBx path. AFAIK, pyserial already has this functionality. We just need to rework device discovery procedures.
Quick solution is to just return an error if we found more than one compatible FTDI device to force user to provide serial number in such cases.

AFAIK, pyserial already has this functionality

Maybe I will try class serial.tools.list_ports.ListPortInfo. I see some serial_number USB serial number as a string.

PR is reworked according to the off-site discussion.

Tested three use cases on the setup with two devices with the same VID:PID:

CPLD auto, -s is specified
sudo python3 ./rcar_flash.py flash -c -f -p ../firmware_dunfell_kf/ -s /dev/ttyUSB0 -b h3ulcb_4x2 bootparam
CPLD auto, -s is NOT specified
sudo python3 ./rcar_flash.py flash -c -f -p ../firmware_dunfell_kf/ -b h3ulcb_4x2 bootparam
CPLD specified -s is not specified
sudo python3 ./rcar_flash.py flash -c A602DN1Y -f -p ../firmware_dunfell_kf/ -b h3ulcb_4x2 bootparam

In all cases, the script worked as expected.

Looks good, thank you
Acked-by: Volodymyr Babchuk<EMAIL_ADDRESS>


Added hover effect to github icon in the footer

Added a simple hover animation to the github icon in the footer. Should solve Issue #10.
Demo
Let me know if you like it.

hi karthik, can we have the github icon increase in brightness rather than increase in size?

hi karthik, can we have the github icon increase in brightness rather than increase in size?

Sure, I can up the brightness of the icon on hover, so that it looks white. Sounds good?

i guess a darkening effect also works - something like the odin project's github icon in the footer would be good:
https://www.theodinproject.com/dashboard
i guess i'll have to look at it and see whether lightening or darkening looks better

Cool! Let me know. I can implement either.

can we do darken please?

A question, do you want to keep the original image you've used for the github icon in the footer, or is it ok if I use an inline SVG instead (<svg></svg>)?

Svg is great!


Add Android "code" number

Would be nice to also get the Android "code" number (build version), along with version name.
Currently, I've just copied and edited your code for version name, and works fine (while messy).
Amazing plugin btw.

Implemented in 31d4ea7b706be56133b03a031213518c5077258d


Wiki : Install Versioning.NET Tool with version specified

Is your feature request related to a problem? Please describe.
When you make a breaking change, it might break the workflows, how use your versioning tool.
Describe the solution you'd like
It might be a good idea to encourage the user to always specify the version they wish to install.
And so I think is a good idea to write it in the wiki section for Install Versioning.NET Tool.

This has been mentioned explicitly in the wiki. Thanks!


fix: Daemon step updated 'pod delete' while pod is running

Fixes #TODO

@alexec can you review this PR? once it is approved and merged I will start v3.3.2


Support for positional parameter argument without brackets

Example code (minimised from some OpenSPARC code):
module add #(
	parameter N = 3
) (
	input [N-1:0] a, b,
	output [N-1:0] q
);
	assign q = a + b;
endmodule

module top(
	input [7:0] a, b,
	output [7:0] q
);
	add #8 add_i (.a(a), .b(b), .q(q));
endmodule

In Yosys this gives:
/home/david/ecp5/pp/pp.v:14: ERROR: syntax error, unexpected TOK_CONSTVAL, expecting '('

But other tools (LSE, Icarus & Verilator) seem to accept this.

Here is what the IEEE1800-2017 BNF says:
A.4 Instantiations
A.4.1 Instantiation
A.4.1.1 Module instantiation
module_instantiation ::=
module_identifier [ parameter_value_assignment ] hierarchical_instance { , hierarchical_instance } ;
parameter_value_assignment ::= # ( [ list_of_parameter_assignments ] )

The #(...) characters are actually tokens, not part of the BNF syntax. (The original document has them marked in RED, like all tokens).
Therefore, if your tool accepts this, it is allowing an incorrect syntax.

Thanks for checking! It's interesting how widely accepted this syntax is, not sure if it is some kind of "de facto" thing or just a common parser bug...


Need final timeline dates / ranges and titles

All of the timeline info is placeholder for now- waiting for timeline values from Molly.

Also, should this be 2009-present?


feat: Design and implement enum data type.

This comes from some user requirement, and after discussing with @neverchanje we can use varchar first.


Added End Call Button to Video Call

added end call button
fixed alignment styles

screenshot:

there's no path to join a meeting right now, all the company cards look the same, with "in session button". once this is fixed, we can easily just add the path to the student/recruiter meeting


Feature/dcpl 2021

Just to have CI running without messing with workflow file

@aldanor Phenomenal work on integrating all this functionality! It really is 95% of the way there. Here is a status update on what's happened in the dcpl-branch:

dataset2 replaces dataset
blosc and lzf are built from source out of crate. There are no current lzf-sys crates, I will publish this when this PR is ready to go into aldanor/master. The blosc-sys maintainer was reluctant to include a from-source build of blosc, so I have made a crate for this. I hope to upstream this later.
The chunk shapes are now computed from the last index inwards, using a max of (unlimited, maxdim). This should work well for datasets that are indexed by last inwards most frequently, frequently seen in both time series and for meteorological datasets with ensembles and hybrid levels.
DatasetBuilders we now have several of as they accumulate information. The basic methods such as filters are available for all of them. They now return Self for easy chaining between types. I've put [must_use] in case anybody was modifying them mutably.
The hdf5-types now conditionally uses the hdf5 memroy allocator. This is unfortunately necessary as there are no XFER plist for places one gets dyn_value.
Lots of clippy lints

I think this is mostly ready. Of course more tests and examples would be great, but most functionality is here now. Documentation is also lacking, I am planning on adding some documentation on the high-level use of the library, but this should not be a stopper.

+7.5k lines of code, I didn't realize it was so big, haha :)
Great work, let me get a cup of tea and start reading through your (and mine) changes, I'll get back with some comments later.

It is really a massive amount of work you've done here! I've invited you to this repo if you want to push directly to this branch

@mulimoen I've only had time to go through part of it today, but I should rather submit the comments I have - I'll try to get the next batch of comments tomorrow (I haven't actually gotten to the actual dataset API and some of the chunk changes).

One minor nit: would you mind cleaning up commit history a bit (maybe later, or maybe now) - if you look at commit history in this branch (and in the repo in general), you can see that:

Each commit name starts with capital letter and is spelled out carefull
There are no temporary "typo" commits etc
The number of commits is reduced by squashing some of them together so they present meaningful atomic changes

During development, I would quite often have many dozens of commits but I try to squash and rebase them all the time as I go ahead, so that the history remains clean and meaningful. It's much easier to do it in the process than trying to fix it all after it's done, I think. (I'm not sure which git client you're using and if constant rebasing doesn't sound like a good option?)

@mulimoen Been terribly busy the last few days, but hope to get back to you this evening with another batch of comments, stay in tune :)

@aldanor No problem at all! I'm still deciphering the remainder of the code.


[Bug] Radar mouse move to indicator show tooltip

Version
5.3.0
Link to Minimal Reproduction
https://jsfiddle.net/8ub03t5r/1/
Steps to Reproduce

This chart is Radar
When I mouse move to the indicator I want to customize the tooltip like the series area.
when you move you can see series tooltip successful but indicator always show the axisName no matter i setup

Current Behavior
no matter i setup the the indicator always show axisName

Expected Behavior
I want to customize the indicator tooltip
Environment
- OS:macOS Monterey
- Browser: Chrome 98.0.4758.109
- Framework: React 17

Any additional comments?
Because i need have some mention when mouse move to all indicator some i need a tooltip.
When i set triggerEvent: true the indicator will show the axisName but the tooltip is not enough how can i customize it

I tend to confirm this as a bug. Looks like tooltip.formatter handler is not activated for radar.axisLabel even though tooltip is shown.
OTOH, what is the logic to have tooltip here when it just repeats the label and cannot be customized ?
Demo Code

I didn't understand. @z1811021 What's the expected behavior?


DFS Network Shares are shown mutiple times !

Describe the bug
Folders are shown mutiple times on mapped Network share
To Reproduce
map a network share with DFS targets
https://docs.microsoft.com/en-us/windows-server/storage/dfs-namespaces/dfs-overview#:~:text=%20To%20install%20DFS%20by%20using%20Server%20Manager,to%20install.To%20install%20the%20DFS%20Namespaces...%20More%20
Screenshots

Desktop (please complete the following information):

OS Version: Windows 10 2004 and 20h2 (19042)
App version: [v<IP_ADDRESS>]

Additional context
Workaround:
When disabling cache in experimetal settings the behavior is correct

Thanks for the report. The issue has been fixed and you have already discovered the workaround 👍

Thanks for the report. The issue has been fixed and you have already discovered the workaround 👍


Add precommit config

Added the same settings as community. Not entirely sure if we want all of these. Happy to change, just wasn't sure what is best

#17 I think this addresses this issue. Let me know if you prefer other settings Pokey


Update greedy_causal_lm.cpp to read EOS Token

Details: Made*changes to accommodate the dynamic EOS Token
Tickets:  #277 132861

could you please also update beam search sample? EOS token is specified in parameters for beam search
https://github.com/openvinotoolkit/openvino.genai/blob/master/text_generation/causal_lm/cpp/beam_search_causal_lm.cpp#L53

I am having some trouble building it locally and hence I continued pushing to check the build. I would require some assistance with building it.

I am having some trouble building it locally and hence I continued pushing to check the build. I would require some assistance with building it.

Yes, sure. Could you please share some details, what kind of errors do you face? When you follow this steps https://github.com/ilya-lavrenov/openvino.genai/tree/ct-beam-search/text_generation/causal_lm/cpp#linuxmacos when the problem appears? During configure or compile stage?
You can run them separately one after another
cmake -DCMAKE_BUILD_TYPE=Release -S ./ -B ./build/
cmake --build ./build/ -j

I ma having trouble in running the "convert_tokenizer" part during the setup. It doesn't run without it being executed like a python file unlike mentioned in the documentation.

I have made the changes and tested it locally, can you please review it now?

I have pushed the latest changes, I have fixed the error which appeared earlier regarding reading the model which was due to it being called before the path was set.
Although I have a question, does the SPECIAL_EOS_TOKEN have a fixed type of an integer?

I have pushed the latest changes and fixed the problem, could you please review it now?

@ilya-lavrenov The specific run that fails is because the model's runtime information does not contain an EOS token. Hence the program responds with an error as expected saying that the EOS token is not found in the runtime information.

Please, update OpenVINO tokenizers submodule https://github.com/openvinotoolkit/openvino.genai/tree/master/thirdparty to catch up latest commit https://github.com/openvinotoolkit/openvino_tokenizers/pull/109 which fixes Qwen-7B-Chat

I am still updating the tokenizers submodule.

@ilya-lavrenov I have updated the tokenizer submodule to the latest commit.

@ilya-lavrenov I have just merged changes from the main repo. I think the error regarding building openvino tokenizer only for speculative decoding and stable diffusions could be fixed with the latest commit.

@ilya-lavrenov I am looking deeper into this issue. The tokenizer submodule wasn't updated and hence the error regarding the specific header file added in this commit: "https://github.com/openvinotoolkit/openvino_tokenizers/commit/35d7dcbe9d7e1a42f9878382cedcc51df9d68b72" appears which was added after the old submodule update

@ilya-lavrenov Is there anything I can assist with in regards to the tokenizer issue?

Hi @anzr299
I've ported fix for Qwen model to releases/2024/0 branch, because latest master is not compatible with 2024.0 which is used in stable diffusion tests.
So, please, update to use releases/2024/0

Hi @anzr299 I've ported fix for Qwen model to releases/2024/0 branch, because latest master is not compatible with 2024.0 which is used in stable diffusion tests. So, please, update to use releases/2024/0

Done

thank you for the contribution!


docs: Add explanation of 'why needed' and 'how works'

Explain to the user why this thing exists in the first place and for the curious user how it works. Also try to illuminate the tradeoffs that were made when making this in the form of possible advantages and disadvantages.
(Note to reviewers: It might just be easiest to read this in the branch's README)

Calling a group review and comments. If you're willing to give this a read, can you let me know your thoughts and also if what I've written is clear and makes sense.
If there is a better way to do all of this, please let me know so I can shut this all down as well. :)
@dguest @dantrim @lukasheinrich @kratsg @amete @alexander-held @robinnewhouse @jburzy01 @cantel (+ add other people who might have good ideas on why this is a bad idea)

I admit I did not understand all the details of how this works, but I believe this documentation achieves the intended purpose. I imagine that people interested in the technical details are likely very knowledgeable about this topic already to begin with and will be able to follow.
Perhaps a more high-level comment: I imagine the general recommendation would still be to not mix views and venvs if possible. Assuming you agree with that statement, it might be worth putting it at the beginning of the readme. The project is targeted for the setup where this mix is desired, but depending on how people come across this repository, that may not be obvious to them.

Thanks as always for a speedy review @alexander-held. :slightly_smiling_face: I appreciate the time and feedback!

Perhaps a more high-level comment: I imagine the general recommendation would still be to not mix views and venvs if possible. Assuming you agree with that statement, it might be worth putting it at the beginning of the readme.

While I don't disagree with this necessarily (as avoiding this in the first place is better), what has been your approach for working in LCG views/ATLAS software environments when you want to use custom, or not yet installed, Python software?

I'm afraid I don't have an answer for that: so far I have managed to keep these environments separate from each other for all my use cases.


pynvml error

    ![image](https://user-images.githubusercontent.com/24499815/193706942-96235d09-9532-456f-9db3-18c6d1245986.png)

Pynvml dependency is used in torch an error arises in a new environment without pynvml installed
Originally posted by @valhassan in https://github.com/NRCan/geo-deep-learning/pull/344#discussion_r986328985

Same here with a new environment...

Torch version:
pytorch                   1.12.1          py3.10_cuda11.6_cudnn8.3.2_0    pytorch


Advise for anyone running instrstructure

If it is a hobby project: everything is fine: free, free tier, anything!

When you pay for something you have a basis to ask for support, complain etc.

Valid point!


Save SoC info in results

Part of https://github.com/mlcommons/mobile_app_open/issues/508
Depends on https://github.com/mlcommons/mobile_app_open/pull/512

@d-uzlov Is this PR ready for review? If not, please mark it as draft.

Anh, now this is ready for review.
Could you please also look into why Sonar build failed on this PR?
As you can see, there are no issues on iOS and Android CI builds, so there must be some difference in configs?

Could you please also look into why Sonar build failed on this PR?
As you can see, there are no issues on iOS and Android CI builds, so there must be some difference in configs?

@d-uzlov
I don't know yet why it failed, it has some additional argument for bazel build cmd, though. I will test later if those caused the issue.
https://github.com/mlcommons/mobile_app_open/blob/59dff25dca4d5a14fa5834d00ebe828b61b34c4b/tools/scanner/scan.mk#L28-L30
Can you provide the APK in the main issue so others can test if it works well on their devices?

The build is failed indeed by the additional flag:
sonar_bazel_build_args=--spawn_strategy=local --strategy=Genrule=local
I tested it here: https://github.com/mlcommons/mobile_app_open/pull/528
Without it the build can success, but the code scan fails. It looks like there are many choices (https://blog.bazel.build/2019/06/19/list-strategy.html) so I need to try out which works.

I believe that the issue is caused by duplicated files.
Cpuinfo is included in our workspace file and by tflite but with different names: cpuinfo and org_pytorch_cpuinfo.
Header file names are identical, so it's possible that compiler includes wrong file.
Also, .c files likely export symbols with the same name, but this likely doesn't trigger any errors.
I have no idea why sandboxed and local builds behave differently. I would expect both of them to fail.
We could just use cpuinfo from tflite but I would prefer not to because tflite uses old version of cpuinfo.
We could try to override tflite dependency on cpuinfo to use our version. I think it's the better solution.

@anhappdev maybe we should disable quality gate for code coverage in Sonar?
We don't have any tests for native code, so it's natural to have 0% coverage.
We can change it later if we decide to spend time to set up unit testing for C++ code.

@anhappdev maybe we should disable quality gate for code coverage in Sonar?
We don't have any tests for native code, so it's natural to have 0% coverage.
We can change it later if we decide to spend time to set up unit testing for C++ code.

@morphine00 Bruno, can you help us with this?

Ok, I've copied the default rule set but disabled the coverage rule.
I did see this message, let me know if anything needs to be done about this:
This Quality Gate sets conditions on new code but you do not have a new code definition set. If you do not set a new code definition, the Quality Gate will only appear on your pull requests and short-lived branches, but not on your main branch or other long-lived branches. To enable it for these cases, set your new code definition.

@morphine00 Thanks for your help. Regarding the new code definition warning, this PR https://github.com/mlcommons/mobile_app_open/pull/583 should fix it.


Licensing

"You're under no obligation to choose a license. However, without a license, the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work."
Reference: https://help.github.com/articles/licensing-a-repository/

@jykae What exactly is your point here? What are you trying to suggest?

I propose MIT license so that everyone can use this kind of general use package. Fixed also on Sunday meteor-rest community version of restivus-swagger to have license. Looks like there are already over 200 installations using apinf:restivus-swagger based on Atmosphere installations number, basically breaking copyrights as long as package doesnt have license.

@ccsr
I think he is trying to imply that without a license on the package it makes the users potentially in violation of copyright.  Are you the one that can push the latest updates to atmosphere?
@jykae
MIT is good and standard

Added:
https://github.com/apinf/restivus-swagger/blob/master/LICENSE

@ccsr @dcantatore In MIT licensing you are not allowed to change the copyright holder name. I did not have agreement to explicitly move my copyrights to Apinf Oy. I suppose in Finnish copyright law that is needed in addition to work contract? Or correct me If I am wrong.
Could you fix the copyright owner like this https://github.com/meteor-rest/restivus-swagger/blob/master/LICENSE ?

Finnish copyright law, http://www.finlex.fi/fi/laki/ajantasa/1961/19610404
In english, http://www.finlex.fi/en/laki/kaannokset/1961/en19610404


python310Packages.dpath: 2.0.5 -> 2.0.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.dpath is: "Python library for accessing and searching dictionaries via /slashed/paths ala xpath"
meta.homepage for python310Packages.dpath is: "https://github.com/akesterson/dpath-python"
meta.changelog for python310Packages.dpath is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2.0.6 with grep in /nix/store/92501gwwdbnp1a33w9m2d2npp4p45jih-python3.10-dpath-2.0.6

found 2.0.6 in filename of file in /nix/store/92501gwwdbnp1a33w9m2d2npp4p45jih-python3.10-dpath-2.0.6

Rebuild report (if merged into master) (click to expand)

8 total rebuild path(s)

4 package rebuild(s)

4 x86_64-linux rebuild(s)
4 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
dvc
dvc-with-remotes
python310Packages.dpath
python39Packages.dpath

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/92501gwwdbnp1a33w9m2d2npp4p45jih-python3.10-dpath-2.0.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.dpath https://github.com/r-ryantm/nixpkgs/archive/7369c80ee8f30dc4b3dd92bd68c108fdf97d29bd.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/92501gwwdbnp1a33w9m2d2npp4p45jih-python3.10-dpath-2.0.6
ls -la /nix/store/92501gwwdbnp1a33w9m2d2npp4p45jih-python3.10-dpath-2.0.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages built:

dvc
dvc-with-remotes
python310Packages.dpath
python39Packages.dpath

Maintainer pings
cc @mmlb for testing.

I don't have the ability to do so though :( (would love some pointers on getting that ability)

Check https://github.com/NixOS/nixpkgs/issues/50105 for details.


timeular: init at 3.3.0

Motivation for this change
I do have the Timeular dice but up until now I've used third party OSS cli software to send my worklogs. Shout out to
Kris Buist, author of https://github.com/krisbuist/timeular-zei-linux, you've enabled the ZEI dice for me on NixOS for two years already!!
I've done all post-editing of timetracks on their Android app that's a little laggy.
Since Timeular has released AppImage version of their desktop app recently I've decided to give it a try. It works flawlessy, is snappy, has nice GUI and connects with the dice without a problem on NixOS. The package could be improved. It doesn't generate .desktop file and could probably use appImageTool instead of appimage-run but it works and user does not need to prepare it's own appimage-run overlay with libsecret.
Things done

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

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

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

Hi @tilpner , @M-Gregoire I've found you both through the pull request: https://github.com/NixOS/nixpkgs/pull/54696 and figured out you could have good ideas how to package AppImage app better. I've never done that before.

Please do not use appimage-run inside nixpkgs, it is meant exclusively for interactive use.

All other packages finish their installation at build-time, with appimage-run the application needs to extract on the first execution
This extraction happens for every user, unnecessarily increasing storage requirements
There is no garbage collection for the extraction target
The extraction target is in writable storage, when it could be extracted into the immutable nix store

You should instead use appimageTools.wrapType2, which also accepts the extraPkgs argument.
The documentation might be helpful, and you can reply here if you encounter any trouble with it.

hi @tilpner, I've applied your advice. Everything runs smoothly! Thank you!
Do you have an idea how could I make wrapType2 function to use/reuse desktop file and icons that already packaged within appImage format?
'squashfs-root/timeular.desktop' -> '/nix/store/washyzh5mnwjmw6d3sakpb974jl8c8z4-timeular-3.1.1-extracted/timeular.desktop'
'squashfs-root/usr/share/icons' -> '/nix/store/washyzh5mnwjmw6d3sakpb974jl8c8z4-timeular-3.1.1-extracted/usr/share/icons'
'squashfs-root/usr/share/icons/hicolor' -> '/nix/store/washyzh5mnwjmw6d3sakpb974jl8c8z4-timeular-3.1.1-extracted/usr/share/icons/hicolor'
'squashfs-root/usr/share/icons/hicolor/128x128' -> '/nix/store/washyzh5mnwjmw6d3sakpb974jl8c8z4-timeular-3.1.1-extracted/usr/share/icons/hicolor/128x128'

@ktor That's a recurring problem, and unfortunately appimageTools doesn't account for desktop files. You can follow the workaround used by e.g. the irccloud package:
https://github.com/NixOS/nixpkgs/blob/dda3d9dc1242c5fd2100236f517f3e52dd551db1/pkgs/applications/networking/irc/irccloud/default.nix#L13-L29

hi @tilpner,
the package seems to have it all solved: https://github.com/NixOS/nixpkgs/pull/92799, I'll copy the solution! thx @tfmoraes !!

Thanks @ktor! I used the Joplin-desktop package as base.

hi @tilpner @M-Gregoire, package is updated with a desktop file and icon. I've tested the binary to work.

hi @tilpner, I've just realized that irccloud package example you've provided is exactly the same as the one I've found in pull request #92799, thank you! :)

@ofborg eval


[fix] Use "string" type for Aria2 options

Motivation for changes:
The value of option must be a string, not integer.
Detailed changes:

only allows "string" type for options

In the option struct, the name element is the option name (without the preceding --) and the value element is the argument as a string.    ——Options - aria2 documentation

As document says, option value should be a string. If other types are used such as integer, the option will not take effect (already tested in aria2 v1.36.0).
Addressed issues:
Implemented feature requests:
Config usage if relevant (new plugin or updated schema):
    # Correct example
    aria2:
      path: "/downloads"
      options:
        # all values must be a string
        max-upload-limit: "0"
        bt-stop-timeout: "2400"
        seed-time: "66"
        seed-ratio: "4.0"
        allow-overwrite: "false"

    # Invalid example
    aria2:
      path: "/downloads"
      options:
        max-upload-limit: 0 # Invalid
        bt-stop-timeout: 2400 # Invalid
        seed-time: 66 # Invalid
        seed-ratio: 4.0 # Invalid
        allow-overwrite: false # Invalid

Log and/or tests output (preferably both):
To Do:

I think it would be better to allow the user to input numbers, then convert to a string before sending to their api. Requiring the user to put quotes around numbers in their config is non-intuitive.

I think it would be better to allow the user to input numbers, then convert to a string before sending to their api. Requiring the user to put quotes around numbers in their config is non-intuitive.

Good idea, I will convert them

Looks good to me, thanks!


Version of keras and theano?

i am trying to implement this unet code but facing a problem. there is no information about the used versions of keras and theano. kindly mention the version please.

@romaanmirza  I think you should used this code with keras with tensorflow as as backend. You can try  keras version 2.1.4. This code have high dependancy on the keras version.

ok thank you i am trying
On Tue, Nov 12, 2019 at 10:08 AM bundelesneha05<EMAIL_ADDRESS>wrote:

@romaanmirza https://github.com/romaanmirza I think you should used
this code with keras with tensorflow as as backend. You can try keras
version 2.1.4. This code have high dependancy on the keras version.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/codedecde/Luna2016-Lung-Nodule-Detection/issues/14?email_source=notifications&email_token=ANJI2OCO2QER2U6BXDZGDULQTI24TA5CNFSM4JLQ5HIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDZBNAQ#issuecomment-552736386,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANJI2OB2QSMYY7UVTJV5TFDQTI24TANCNFSM4JLQ5HIA
.


Adding updates to composite router and scaffolding for LegacyIBCModule

Description
This PR applies some PoC router changes to the feature branch.
The main idea being introduced is the concept of a ClassicIBCModule which will be the same as the IBCModule we have now, and then in a future PR we will strip down the IBCModule to no longer include the handshake fns.
In the channel handshake fns, we will route to the Classic modules, and in Send / Recv etc will will route to the slimmer IBCModule modules.
There is a bit of a hack introduced in the AddRoute function which gradually builds up the LegacyIBCModule based on consecutive calls to AddRoute. I think we should be able to remove this entirely with a single call to AddClassicRoute.

closes: #XXXX

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against the correct branch (see CONTRIBUTING.md).
[ ] Linked to GitHub issue with discussion and accepted design, OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/).
[ ] Added relevant godoc comments.
[ ] Provide a conventional commit message to follow the repository standards.
[ ] Include a descriptive changelog entry when appropriate. This may be left to the discretion of the PR reviewers. (e.g. chores should be omitted from changelog)
[ ] Re-reviewed Files changed in the GitHub PR explorer.
[ ] Review SonarCloud Report in the comment section below once CI passes.

Tests failing due to issue that's being fixed in #7009


Shared With Me: Graph APIs or OneDrive Business APIs

Is shared With Me should be access using graph access token or onedrive business access token.
Since after providing proper permission from azure portal, we are getting 404 error.
Any documentation available.

As part of a repository clean up effort we are closing older issues. If this issue remains, please: open a new issue, reference this issue, and provide any additional details that may help in resolution. Thank you for your understanding as we work to improve our responsiveness.


{bp-15219} gpio: use small lock to protect configgpio

Summary
reason:
We would like to replace the critical section with a small lock.
Impact
RELEASE
Testing
CI

fixes https://github.com/apache/nuttx-apps/pull/2922


Corrupt GDP1h files when downloading Issue #531

A description of the issue is laid out here in issue #531.
To address this, I'm going to create verify and fix functions that look for files with 0 bytes in the temp directory and reattempt to download them, respectively. Once the files are downloaded, a function such as to_raggedarray() can use these to verify and attempt to fix any issues with the downloaded dataset prior to attempting to create a ragged array.

I have taken a new approach to the problem. Instead of the verify/fix method I mentioned before, I've adjusted the logic a little in download_with_progress(). We make multiple attempts at connecting to datasets if we need to. However, as we're seeing, we can get 0 byte files for whatever reason. I changed things to start with a temporary file, drifter_hourly{id}.nc.part for example. The data are downloaded as usual, but there is a check to see if it is empty. If it is, it tries to download it again. It is set to do this 5 times at the moment. If it is not, it renames the file to the standard name.
This seems to have fixed the issue, though I am not quite sure what has changed with some of the mypy tests failing, but it doesn't seem to be related to my code changes.


Images lost in IR deck

Hello,
I am experiencing a problem where screen shots I have inserted into my IR cards are now appearing as small blue question marks. When I go to Tools>Check media, I have many files that are "in the media folder, but not used by cards". Also, I have many of the same files that are altered and appear in the "used on cards but missing from media folder". When I check my anki media collection on my computer, all my original screenshot files are there with no alterations.
The media files that are "used on cards but missing from media folder" are variations of the original files in my media folder.
Heres an example:
"in media folder, not used by cards" - Screen Shot 2017-09-09 at 9.32.01 PM.png
but I also have
"used on cards, missing from media file"- Screen%20Shot%202017-09-09%20at%202.43.19%20PM.png
I am not overly tech savy so Im not sure what to make of this. Given that I have had no issues using screen shots in my other cards/decks I have to assume its specific to IR?
I appreciate your time and effort on this app.
I am using V 3.6.10, on anki 2.0.47 for mac.

I'll try to work out a solution, if IR is causing it. The problem is probably related to the %20, which is how browsers encode spaces in URLs. I suspect it isn't being unescaped.
I'll see what I can come up with.

Ok so I have tried a couple things. First, I am screen shotting out of PDFs (I have had no trouble with this in other addons like image occlusion)
So I noticed if I had the PDF open on my browser that the URL would have the file name with 20%s in there so I thought maybe If i opened the PDFs on my computer and screen shotted from there i wouldn't have the same problem. But, It seems that the images are still dropping from the cards. A weird thing is that if its the first time viewing the IR card, the images will be there, but when I reschedule them the next time I see them they will be gone frequently.
Also for example today. I was reading an IR card and the image was there. I extracted part of the text for a cloze deletion and when I came back to the IR card the image had been replaced by a small blue question mark.

Yeah, the images are there and as soon as I take a close deletion from the source IR card then they disappear

https://github.com/luoliyan/incremental-reading-for-anki/issues/17

I don't think this is related to #17, but we will find out when I fix that one.
@pkbs121 Can you try the following:

Open one of those problem cards for editing
Click in the Text field
Open the HTML editor (Ctrl+Shift+X)
Replace each %20 with a space
Close the editor

Does the image then display properly?

Yes. If I go in and remove the %20 manually the images will come back. But theres a couple things. As seen below, its not always just %20 that is put in between the spaces (I dont know if this is relevant). Also, I went in manually and removed the %252520 listed below.. The images reappeared. Then I took a cloze deletion from the card and the images once again disappeared. Upon checking the HTML, the spaces had then been replaced by %20 as seen below in the second example.
Three patients were
not seen for follow-up 1 week later. Of

those 3 patients lost to follow-up, 2 of
them noted an immediate reduction in
pain greater than 2 points on the NPRS
postmanipulation.

Three patients were
not seen for follow-up 1 week later. Of

those 3 patients lost to follow-up, 2 of
them noted an immediate reduction in
pain greater than 2 points on the NPRS
postmanipulation.

I've made a change that should prevent this from happening. However, it won't affect existing cards - only new extracts.
Let me know if it solves the problem.

Ok so the file names are no longer being altered but heres whats happening. The images will be there, I make a cloze deletion and they disappear. I open up the HTML and all the image file names are correct. If I do not change anything and simply close the HTML editor, the images will once again reappear.

I'm really not sure if this is some weirdness with the toolkit or not. I'll keep working on it, but I'm a little stumped by it at the moment.


Possibility to add a list of targets for a targetLocation?

Currently a call to add() is needed for each added target, this in turn invokes CMake. If I want to add several targets from the same CMakeLists.txt, CMake will be invoked once for each target even though, in theory, only a single invocation should be needed.
A nice feature would be if we could support this use case of adding several targets for one location and only invoce CMake once for that location.

I am less inclined to do this, I know cmake allows multiple targets per CMakeLists.txt I can't really see a reason for it. Likely the multiple targets should be included to a single target before use. I think the additional targets would make the interface a little clumsy (some list of targets, and some list of options for each target)
I originally read this as multiple CMakeLists.txt targets in one cmake call but even that is likely better served calling cmake multiple times.

Going to close for now


Animation isn't smooth.

In that example I see an explicit freezes in comparing to GSAP. Animation doesn't seem to be smooth. It looks like an object is animating with small jumps. Lib is amazing. I like its API, but that obstacle with performance is very annoying. Any ideas?

GSAP is using translate3d instead of regular translate.
Quote from him:

[3D-related transforms] generally forces the browser to "layerize" that element (think of it like taking a photo of its pixels and storing them on the GPU) which is then faster to manipulate since its pixels are separated from the rest of the screen's/layers'. Typically you'll see smoother animations with this technique. However, there's a small cost to layerize something initially (shuttle the pixels to the GPU).

You can explicitly hardware accelerate the layer by using will-change: transform; which should achieve smooth results.
https://codepen.io/anon/pen/oqRaPz

So, why animejs doesn't use translate3d?

@atomiks I don't feel comfortable to add css property
will-change

to every animateble target before  and after animation (for performance purposes).

I agree, it  should default to translate3d.
Also note: there is a bug in Firefox with subpixel translation (ongoing issue for 6 years). It's jerky in both GSAP and anime even with will-change: transform. You need to add a hack: rotate: 0.01 for it to be smooth in FF.

You can add 'translateZ: 0' in your animation or will-change: transform in the CSS to force hardware accelerated animations.
Forcing hardware acceleration is not always recommended, that's why I prefer to let the user decide.

@rnnyrk any improvements found?
I'm having the same difficulty. Spawning at random positions items, then creating another random point and let the item rotate in the right direction and move it to that point. At the end of the animation, again create another random point and start rotating and moving etc etc.
It's extremely lagging and jumping when doing this with 100 items :/

@reunefe didn't really found a solution. Made the animation smoother by animating lesser elements.

Is there something new on this? For example an option to force hardware accelerated animations?
Otherwise, as a workaround, is there a way to globally set translateZ: 0 for all animations?


CREATE EXTERNAL TABLE sql should check if table exists before doing IO

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
(This section helps Arrow developers understand the context and why for this feature, in addition to  the what)
I was using datafusion-cli to test some sql queries on a large csv (for db-benchmark).  It takes a while for the table to be created as it is a large csv.  I ran the CREATE EXTERNAL TABLE command twice in the same session and got the error Execution("The table x already exists").  However i had to wait the full time for IO to complete before the error showed up which i think is a waste of time.  I believe this is because we are running IO before checking if table exists.
Describe the solution you'd like
A clear and concise description of what you want to happen.
We should check if a table exists before doing IO and raise the table already exists error if it already exists.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

This was resolved when we switched the CREATE TABLE / CREATE EXTERNAL TABLE commands to return empty dataframes. Can't reproduce this issue anymore. Can we close it?


Update readme

@ayush-1506 Be great if you could carefully go over my readme update. See also my latest comments at #4 .


Abstract properties do not support rewrite insert/update

EdgeDB Version: 4.2+8778fc1
EdgeDB CLI Version: EdgeDB CLI 4.0.0-alpha.1+dce7814
OS Version: Ubuntu-20.04

error: Unexpected keyword 'INSERT'
    ┌─ /dbschema/default.esdl:426:13
    │
426 │     rewrite insert using (
    │             ^^^^^^ Use a different identifier or quote the name with backticks: `insert`
    │
    = This name is a reserved keyword and cannot be used as an identifier

Steps to Reproduce:

edgedb migration create

Schema:
module default {
  abstract property updatedAt {
    rewrite insert using (
      if __specified__.updatedAt
      then datetime_truncate(__subject__.updatedAt, 'milliseconds')
      else {}
    );
    rewrite update using (
      if __specified__.updatedAt
      then datetime_truncate(__subject__.updatedAt, 'milliseconds')
      else __old__.updatedAt
    )
  }
}

This won't work as is because scalar types can't be inserted/deleted/etc. Would be nice to have the insert keyword here mean "when part of an insert" but not sure if that's planned. But you can make your schema work by attaching the mutation rewrite to an object type using a concrete property that extends this abstract one, e.g.:
module default {

  abstract scalar type updatedAt extending datetime;

  scalar type concreteUpdatedAt extending updatedAt;

  type User {
    name: str;
    updated_at: concreteUpdatedAt {
      rewrite insert using (
        if __specified__.updated_at
        then datetime_truncate(__subject__.updated_at, 'milliseconds')
        else {}
      );
      rewrite update using (
        if __specified__.updated_at
        then datetime_truncate(__subject__.updated_at, 'milliseconds')
        else __old__.updated_at
      )
    }
  }
}

My goal is to reuse fields (datetime with millisecond precision because Nodejs does not support microseconds) in multiple types, where the fields that store the value can have different names and be optional or required.
If rewrite would work on abstract properties, it would be something like:
    abstract property requiredDatetime {
      rewrite insert using (
        if __specified__.createdAt
        then datetime_truncate(__subject__.createdAt, 'milliseconds')
        else datetime_truncate(datetime_of_statement(), 'milliseconds')
      );
    }
    abstract property optionalDatetime {
      rewrite insert using (
        if __specified__.updatedAt
        then datetime_truncate(__subject__.updatedAt, 'milliseconds')
        else {}
      );
      rewrite update using (
        if __specified__.updatedAt
        then datetime_truncate(__subject__.updatedAt, 'milliseconds')
        else __old__.updatedAt
      )
    }

But I notice that rewrite is a more powerful API for what I need.
In Postgres it will be enough to do this: "createdAt" timestamp(3)
I think a more basic API is needed for coercing, something like this...
required createdAt: datetime {
   default := datetime_current();
   rewrite value datetime_truncate(__value__, "milliseconds");
}
updatedAt: datetime {
   // insert and updates should trigger this if a value is specified in the
   // query, there is a default or the field already has a value.
   rewrite value datetime_truncate(__value__, "milliseconds");
}

I think what you will want to do here is to use an abstract type instead that contains these properties with the rewrites. Then, you can extend those types with the types you want to inherit the properties.

Closing for now, but please reopen if that doesn't serve your use case.


Cannot Finalize registration and begin accruing with Metamask

Describe the Bug
When I click on the button to finalize my registration the wheel keeps spinning but nothing happens. I am using a non-hardware metamask wallet. There is no window on metamask either.
To Reproduce
After the challenge period is done try to complete the account creation.
Expected Behavior
Complete the registration process.
Screenshots

Device and Browser Information
Brave

This should be fixed now. Can you please try again and close this if it works?

Was broken, then began working for me.

got the same trouble. still doesn't work

@MrMorito can you please go to https://t.me/pohDebug and give me your profile so we can debug your issue?

Hi, I have the same issue. Still doesn't work

Hi, I have the same issue. Still doesn't work

@joseluisrodriguez22 Can you please post your address here or join the telegram group and DM me your address?

Hi @mtsalenc
this is my address: 0x9B4B995d08100E4aE9B0D80604b2B380abD313c0.
Thanks! Still trying to finalize the registration but it seems that metamask does not sync properly.

I'm having some trouble reproducing the issue. Are you using WalletConnect with metamask? How long are you waiting (it can take up to a minute to prepare the transaction)?

i have the same problem

@jc538 Do you mind giving me your address? Seems like people here managed to finalize and are not responding.

Hi, Im having the same trouble. Has anyone get to a solution?


chore: remove unused home module Meet Your Advisor

Description
Remove unused meetYourNewAdvisor module. It causes separator duplication (extra space) on the home screen:

With it
Without

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

chore: remove unused home module Meet Your Advisor - @nickskalkin

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (chore: remove unused home module Meet Your Advisor - @nickskalkin)

  Generated by :no_entry_sign: dangerJS against c8350289737b22d2846a6d125a413be4d97941fa


Android "Could not GET highcharts-8.2.2.pom" 403 Forbidden

Which platform(s) does your issue occur on?

Android
Android version : 10
OnePlus Nord N100

Please, provide the following version numbers that your issue occurs with:

CLI: 8.0.1
Cross-platform modules: ?
Runtime(s): "@nativescript/android": "^7.0.1"
Plugin(s): "@nativescript/ui-charts": "^0.1.0"

Please, tell us how to recreate the issue in as much detail as possible.
When running tns build android, following error occurs:
Build file '../platforms/android/app/build.gradle' line: 633
A problem occurred configuring project ':app'.
Could not GET 'https://highsoft.bintray.com/Highcharts/com/highsoft/highcharts/highcharts/8.2.2/highcharts-8.2.2.pom'. Received status code 403 from server: Forbidden

@Benoye
Hey there,
are you still facing this issue?
I'm able to build it here just fine.
https://highsoft.bintray.com/Highcharts/com/highsoft/highcharts/highcharts/8.2.2/
This URL is working fine and I'm able to see the highcharts-8.2.2.pom file there

Hi ! Sorry I forgot to update the issue
Indeed the problem was solved a few days later, I guess the dependencies was fixed on highcharts' side !
Thank you :)

Hi, this issue should be re-opened because of : https://github.com/highcharts/highcharts-android/issues/200 .

I'm also still seeing the same issue  -- is there a way to download the Android highcharts aar locally and temporarily use it with this plugin, as suggested in the highcharts Github issue thread?


Add missing oc_header to task from mariadb_copy role

Add oc_header var to task 'check that the Galera database cluster members are online and synced' from maraiadb_copy role.

Without oc_header the task fails with "error: Missing or incomplete configuration info.  Please point to an existing, complete config file:", "", "", "  1. Via the command-line flag --kubeconfig", "  2. Via the KUBECONFIG environment variable", "  3. In your home directory as ~/.kube/config", "", "To view or setup config directly use the 'config' command."
I see that all shell task interacting with oc has this var set so probably this task was omitted by mistake.

Sometimes the environment that runs ansible-playbook already has OC accessible by itself which is why i think this didn't cause trouble in other environments yet.

check-rdo
the ci issues should now be resolved eg https://logserver.rdoproject.org/77/477/664a0867d88f9650d13ee065ab6d60f2e0c243dc/github-check/data-plane-adoption-osp-17-to-extracted-crc-minimal-no-ceph/ef367f6/controller/data-plane-adoption-tests-repo/data-plane-adoption/tests/logs/test_minimal_out_2024-06-03T09:49:29EDT.log
"Warning: unknown field \"spec.swift.template.swiftConfSecret\"", "The OpenStackControlPlane \"openstack\" is invalid: spec.swift.template.swiftStorage.replicas: Invalid value: 0: SwiftStorage does not support scale-in"

The CI page on this doesn't show anything, github still shows "pending", and the recheck was yesterday, so something must have gone stuck. I'll try a recheck again.

recheck

recheck
jobs expected to be green again

LGTM