1. Doesn't the overcommit feature lessen the benefits of this? Your initial allocation works but you can still run out of memory at runtime.
2. For a KV store, you'd still be at risk of application level use-after-free bugs since you need to keep track of what of your statically allocated memory is in use or not?
Author here! Overcommit is definitely a thing to watch out for. I believe TigerBeetle calls this out in their documentation. I think you'd have to explicitly disable it on Linux.
For the second question, yes, we have to keep track of what's in use. The keys and values are allocated via a memory pool that uses a free-list to keep track of what's available. When a request to add a key/value pair comes in, we first check if we have space (i.e. available buffers) in both the key pool and value pool. Once those are marked as "reserved", the free-list kind of forgets about them until the buffer is released back into the pool. Hopefully that helps!
out of curiosity, does that generally mean that (linux) OOM killer can't get you? IIRC the oom killer is only triggered on new page request, and only the requesting process is eligble for the murder?
No, it does not. The oom killer acts on (mostly) the oom score and no process is exepmt, regardless of whether or not it allocates new memory.
It may help you write correct programs in certain situations though, eg. if your program was running in a defined context, eg. a cgroup, and you would not allocate beyond your cgroup limits, and the system was configured sanely, you can handle allocation problems easier.
I also have experience across Sharp, Nokia and Sony Ericson devices from J2ME days, and whatever brands ship Android phones, and outside flagship Android models, it is a jungle out there in drivers, AOSP customisations, vendor specific APIs, so I am of different point of view.
I have no idea. I've honestly never heard of subliminal until just recently (yesterday) and I've never really tried it out.
But on first glance it seem like subliminal is more for developers in general as it provide apis to use it, it also have a bunch more providers than what SubSync currently have and most likely a much better way for guessing which subtitle is correct. It also seem to focus more on individual subtitles rather than trying to batch download them unlike SubSync. Although they do have support for downloading for a whole folder. How well that works I have no idea.
In the end, Subliminal have been in development for over 5 years and has been thoroughly tested.
Whereas SubSync was a weekend project I made 2 weeks ago and never meant to compete with anything existing. I only knew I had a problem I needed to solve and wanted to share it with everyone :-)
TL;DR: I don't think SubSync offers anything unique over Subliminal at this moment. And if you're already used to using Subliminal you should keep doing so if that works good for you. :-)
Actually, one thing. The idea with SubSync is that you keep it running in the background and as soon as a new video file is added to your library it does look for a subtitle to download.
I'm not sure if subliminal has that or if you manually have to tell it to look.
One reason could be that you don't use Windows. Glancing at SubSync's GitHub repository I see it seems to be a Windows project, whereas subliminal runs anywhere Python does.
Its luckily a .net core 2.0 application so it is possible to run on mac and linux. :-) not completely hasslefree though. As you would need to install the required runtime for it.
Is python "natively" supported on those platforms or do you have to install some prerequisites for it to work? If so, it's just as "hard" to run this as Subliminal.
Yes, python is included, though I think macOS uses python 2.x (though people using cli tools will often have the latest). I’m guessing a google search could tell you what is bundled for macOS and various Linux distros.
The libre measures the glucose from the interstitial fluid, which doesn't map directly to the value measured from blood. Think about coordinates, where X is the value from interstitial fluid and Y is the value from blood. You must draw a line somewhere to map the values correctly and the Libre is calibrated in the factory. For me the Libre reader was just an ok indicator about the trend, but the actual value was sometimes not even near the value shown. It's ok between the normal range 4.0-8.5 mmol/l, but I'd be suspicious about every value outside of that range.
With xDrip you can input values measured from blood and the software will try to estimate as accurate values as possible, meaning that in the best case you can be quite sure about the reading, but always better to check from blood.
Remember, that calibration should happen only when the levels are steady and you should calibrate from the whole range to trust the readings. Anyways at least 2-3 measurements per day from blood is suggested, even with the more expensive CGM's.
> I am reminded of stories of kids opening a command prompt and being accussed of "hacking", only this is a far more extreme case.
I remember a teacher seeing me type "BitchX" into a terminal and freaking out, he apparently thought I was doing something obscene in my terminal window..
1. Doesn't the overcommit feature lessen the benefits of this? Your initial allocation works but you can still run out of memory at runtime.
2. For a KV store, you'd still be at risk of application level use-after-free bugs since you need to keep track of what of your statically allocated memory is in use or not?