So you don't die in the middle of the night.
I sometimes wonder when typing this if you ever remember life before a CGM?
Honestly the one who is at fault here is Google. If first.last and firstlast are treated as aliases, they straight up should not allow people to create them once the first exists, rather than just send emails to someone else. I've tried to respect my Australian brother's privacy (like not reading his therapist's emails and such), but not everyone is gonna do that.
CGMs (of any brand) are not, and have never been, reliable in the way that this story implies that people want them to be reliable. The physical biology of CGMs makes that sort of reliability infeasible. Where T1s are concerned, patient education has always included the need to check with fingerstick readings sometimes, and to be aware of mismatches between sensor readings and how you're feeling. If a brand of CGMs have an issue that sometimes causes false low readings, then fixing it if it's fixable is great, but that sort of thing was very much expected, and it doesn't seem reasonable to blame it for deaths. Moreover, there are two directions in which readings can be inaccurate (false low, false high) with very asymmetric risk profiles, and the report says that the errors were in the less-dangerous direction.
The FDA announcement doesn't say much about what the actual issue was, but given that it was linked to particular production batches, my bet is that it was a chemistry QC fail in one of the reagents used in the sensor wire. That's not something FOSS would be able to solve because it's not a software thing at all.
You see false low glucose figures, that last, you start reducing your slow acting insulin, you skip some fast acting insulin. Within 24h, ketoacidosis starts and you can start feeling nauseous. At some point, if you eat, you vomit. You are cornered: you don't have the carb intake to inject insulin, and you can't eat. Even worse, at some point, if you drink, you vomit, so you dehydrate, and it's a matter of hours to live. Shit happens fast, things can get critical is a few days.
Diabetes management is complicated, this is far from exact science, and having a good knowledge of everything is hard. I was already bitten by this cycle of nauseous feeling with slow acting skipped a few month after my diagnosis. I learnt to never ever skip slow acting insulin, even when blood sugar is through the floor. Prepare some apple juice and still go on.
I have Freestyle Libre 2, and it is quite a disappointing thing software-wise. I have to reverse engineer another app to get an API for my data, I have to go through Internet to get my blood sugar level (for a standalone display for example, so I can't make one that works "off grid", like... in my plane), they do sparse updates, they lag behind OS version by dizains of month for their apps, they have 10s of apps/websites, it is hard to understand. So I'm not surprised by poor bug management.
I wish some big names invest in a CGM device. Don't make it medical (even medical grade ones like Abbott & co say you have to check with a finger thingy device, so why bother), make it $500 one time plus $10-20/month, make it open about the data and you'll get everyone. Maybe no one want to invest because in 10/20 years Diabetes will be a thing of the past?
The move is so we can avoid allocating a string each we declare and use it since it will be frozen by default. It is a big optimization for GC mainly. Before we had to do such optimization by hand if we intend not to modify it:
# before
def my_method
do_stuff_with("My String") # 1 allocation at each call
end
# before, optim
MY_STRING = "My String".freeze # this does 2 allocations with 1 at init being GC quite early
def my_method
do_stuff_with(MY_STRING)
end
# after
def my_method
do_stuff_with("My String") # 1 allocation first time
end
But this move also complicates strings manipulation in the sense of it will lean users toward immutable ops that tend to allocate a lot of strings. foo.upcase.reverse
# VS
bar = foo.dup
bar.upcase!
bar.reverse!
So now we have to be deliberate about it: my_string = +"My String" # it is not frozen
We have frozen string literals for quite a while now, enabled file by file with the "frozen_string_literal: true" comment and I've seen it as the recommended way by the community and the de-facto standard in most codebase I've seen. It is generally enforced by code quality tools like Rubocop.So the mutable vs immutable is well known, and as it is part of the language, well, people should know the ins and outs.
I'm just a bit surprised that they devised this long path toward real frozen string literals, because it is already ongoing for years with the "frozen_string_literal: true" comment. Maybe to add proper warnings etc. in a way that does not "touch" code ? I prefer the explicit file by file comment. And for deps, well, the version bump of Ruby adding frozen string literals by default is quite a filter already.
Well, Ruby is well alive and it is what matters)
The ecosystem, toolchain and all do a lot. It is really missed when I do other languages, and I wish to find the same way of developing elsewhere. I currently do C for embedded in an horrible IDE, and I want to bang my head against the table each time I had to click on something on the interface.
(btw Python is a nightmare for me)
I like the game though, but I use the PWA made by Opera team at https://2048-opera-pwa.surge.sh/
- We are also designing and developing a more advanced family of microcontrollers, RP235x, which we expect to launch in the second half of 2024, as well as chipsets for use in our SBCs and compute modules for release thereafter.
- We continue to invest in the design and development of new SBC products, including successors to Raspberry Pi 5 and Raspberry Pi Pico, that will incorporate future semiconductor products, including RP235x. We intend to develop new products that address customer requirements such as industrial temperature tolerance and onboard non-volatile storage. We also intend to continue working to extend the long-term availability of our older SBCs
This means on-board flash !
- We are designing and developing a family of microcontrollers, RP235x, which will serve as successors to RP2040, and which we expect to launch in second half of 2024. RP235x products are designed to operate at higher speeds, use less power and provide greater security than RP2040.
- We are also designing and developing a more advanced family of microcontrollers, RP235x, which we expect to launch in the second half of 2024, as well as chipsets for use in our SBCs and compute modules for release thereafter.
- We continue to invest in the design and development of new SBC products, including successors to Raspberry Pi 5 and Raspberry Pi Pico, that will incorporate future semiconductor products, including RP235x. We intend to develop new products that address customer requirements such as industrial temperature tolerance and onboard non-volatile storage. We also intend to continue working to extend the long-term availability of our older SBCs
This means on-board flash !
- We are designing and developing a family of microcontrollers, RP235x, which will serve as successors to RP2040, and which we expect to launch in second half of 2024. RP235x products are designed to operate at higher speeds, use less power and provide greater security than RP2040.