People who are not addicted must feel joy somehow. Seasoned alcoholics are not unaware that the effects are messing with their pleasure centres
To me it sounds less like substitution and more of a recalibration to normal levels. Where the brain learns that when it wants to have fun alcohol isn't the first thing it reaches out for
Very interesting. She basically described my situation 100%. Sounds like I'll be talking to my doc ASAP
The interesting part is that abstinence might work for some but without removing the pleasure association it is doomed for some that are guaranteed to relapse
I do. Pretty certain he only ran to avoid being convicted in the Jan 6 and classified documents cases. Now he can pardon himself and even if the next DOJ prosecutes he can run out the clock.
Why do you think he will try to stay in office? Cause he said he might?
You think that he's afraid of going to prison only? Oh noo, house arrest in Mar-A-Lago for x amount of years due to "bad health".
I think the man is severely and uncurably addicted. Got his ultimate high and will do anything and throw anyone or anything under the bus to maintain that.
No I am saying this time around there is zero chance he gets convicted of anything before he dies, due primarily to the SCOTUS immunity decision for anything this term and the fact that self-pardons for prior crimes would require another trip to the Supreme Court.
> I think the man is severely and uncurably addicted.
How do you distinguish this from him rubber stamping other people's agendas and falling asleep all the time?
That is a lot of certainty for your vague intuition about his desires three years from now. Money is no longer a concern and he seems to play a lot of golf for someone drunk on power.
Just to save people from wasting their time reading this drivel:
`
If this approach seems fringe, things get much further afield with language-specific unikernels like MirageOS that deeply embed a particular language runtime. On the one hand, allowing implementation only in a type-safe language allows for some of the acute reliability problems of unikernels to be circumvented. On the other hand, hope everything you need is in OCaml!
`
ToroKernel is written in freepascal.
All of the text before and after is completely irrelevant
Toro is just a library OS that allows you to build an application and deploy it as a VM without the OS. Toro acts as the OS. Different that other unikernels, Toro is not meant to be POSIX compliant. The idea is to provide an API that suits better the use-case, i.e., an app deployed as a VM. Toro can also run in baremetal although I dropped the support a few commits ago. I can roll back that support in case there is interest.
You are optimizing for people (or bots) who use LinkedIn in that case
The only reason I would use it for any kind of similar purpose would be to check network overlap. A profile picture would only signal that it is an old picture or from someone looking for a job (or a bot)
As someone else said in the previous thread when it was announced: it's about the software first. Qualcomm likely doesn't get this and likely never will
Writing traditional MCU software without an RTOS always sucked for a multitude of reasons. Vendor lockin, expensive specialty compilers, and so on
Arduino showed that it could be done differently with some not too expensive abstractions. Sure it is looked down on by traditional embedded engineers but the productivity gains and accessibility was hard to argue against
ESP didn't (only) grow huge because the hardware was cheap and available. The integration in the Arduino ecosystem was done brilliantly. It truly felt like a natural citizen in between usual Arduino code
What do you mean "vendor lock in"? Developers become accustomed to a particular SDK, and it is hard to move to new silicon because you need to relearn where the peripherals differ. If that's what you mean, I don't consider that lock-in, just inertia, but by your definition the Arduino SDK is "vendor lock in" (for all but the most trivial code it is portable). ESP32 integration with Arduino's ecosystem is severely limited to just a handful of APIs, and you need to use the ESP32 function calls if you want to do anything sophisticated (and idf.py). The Arduino API is too topical. I know from experience. Zephyr blows away Arduino, it has portable stacks, security, update, wifi/ble, etc...
Also, near everyone is offering GCC/LLVM/IAR/ARMCC (except for Synopsys ARC and Renesas RX).
Zephyr is a baby project. From the embedded devs I know they have only started seriously considering Zephyr in the last 2-3 years for commercial projects.
And you may call it inertia sure, but in the mid 2000's everyone was doing their own hardware abstraction. You had to get books and stuff because documentation sucked. MCU vendors seemingly made a point of making especially stuff like ADCs and timers very hard to abstract away between vendors.
Back then you had a choice of GCC/IAR/KEIL/CCS/Codwarrior and probably more. Each worse and less standards-compliant than the next, except for GCC/avr-gcc as was the key enabler of Arduino
All that text to say: The situation was different, and Arduino showed that there's a wider unmet demand for custom embedded stuff and that people will sacrifice a bit of performance for something that's easy to develop
"People will sacrifice a bit of performance" was also enabled by all the MCU advances.
Those bytes of memory really mattered when 512B was all the RAM you'll ever get. Nowadays, you can buy a RTOS capable 32-bit MCU for $0.20. Why count bytes when you can just... not?
The amount of memory used defines the size of the state space of the system — with exponential growth in the number of representable states. The amount of testing needed to have confidence in the behavior of a system grows (and I’d state based on experience, but without proof, grows faster than logarithmically) with the size of the state space. Building smaller, simpler systems is still the key to being able to realistically test and define behavior at high confidence levels, regardless of the price of a bit.
Most white box appliance makers use zephyr, so do some popular Wifi camera systems, and every major embedded SOC/MCU maker supports it. If that's a baby project, why don't you tell me what a "mature" project is?
Can't say, and you're not obliged to believe me. The vendors are just the companies supporting it. Companies that use it aren't going to announce it. Think about it: if it is just vendors on the site that would mean nobody is using it.
Zephyr is basically "let's have the nice things from Linux on small MCUs" and it sucks. Yes, it is numbers of magnitude better than vendor-specific not-quite-RTOS crap. It blows away Arduino because Arduino is an educational environment just a step above Scratch. Zephyr still sucks. And there is no hope of fixing it because it doesn't suck because the authors did a bad job. They did a fantastic job and it still sucks because the approach fundamentally doesn't work.
Zephyr loves to reuse Linux tooling but it simply doesn't fit. Kconfig silently disabling options because of missing dependencies sucks. No, I'm not using menuconfig, thank you very much, navigating a million of menus is the last thing I need. DTS to C macros abomination sucks. Tons of CMake scripts scattered over every directory suck.
The build in-drivers? What is implemented and tested directly by SoC vendors works, the rest is unusable for anything but example project. Want to use an external SPI flash? Too bad the driver doesn't implement any power management, program it all yourself or accept a constant 12mA draw (fine for many projects, absolutely unacceptable for some). Want to read this I2C sensor once an hour? Too bad, the build-in driver can only poll it constantly in a dedicated thread, just write one yourself. Not like that's a big job, but the build-in driver would be infinitely more useful if it just defined the register map in a header.
And worse yet, Zephyr doesn't do anything to actually solve the silicon lock-in problem, because it's not something that can be solved by new abstractions. Peripheral interconnect, interval timers and basically any peripheral that isn't I2C or UART is simply impossible to abstract over in a useful way. There is no common denominator like there is on desktop.
IMHO, FreeRTOS is a much better system simply because it doesn't tries to be a HAL. It switches between threads and that's it. And HAL for MCUs is simply a pipedream. If you can afford a HAL, go with Linux on a SoC large enough for that.
Nothing you've said is wrong, but I strongly disagree that it sucks.
The DTS error messages are awful, but having declarative configs with compile time validation is amazing once you've figured out what the errors actually mean. Writing drivers is just something you accept for board bringup, so that's basically a non-issue for me.
West's main problem is that it's just a weird little custom tool, not that it's annoying in itself. It's a large improvement over most other
embedded build systems, especially the config tools offered by TI and NXP.
And in exchange for those things you get an extremely capable RTOS with a decent shell, good features, and one of the best RTOS networking stacks out there. When you want to rev the layout 2, 3, 4 times or even make a new board entirely, it's straightforward to reuse all the effort in your initial bringup. A FreeRTOS system is much less reusable and has proportionally more schedule risk.
I guess that's depends on the application. What I had was a series of wireless DAQ devices with a common application core but different sets of sensors (and hence drivers). Some are as simple as "read and I2C value and put in into uplink queue" and that's where I often made the mistake to assume I could rely on stock drivers. Other are fully driven from the MCU's analog guts. Once the application core was there on one board I quickly found myself spending 50% of my time fighting against DTS.
FreeRTOS is much less reusable, but that means you are confidently pessimistic about schedule risk. That's an RTOS and that's it. The rest is on you and you know it. With Zephyr you get tons of support infrastructure, but you also risk finding that it doesn't fit too late in the process. E.g. the flash chip power management issue was quite bad - we ended up dropping the features that required an external flash altogether.
Then again, Zephyr is the best we have got, but I feel it's due to the Zephyr team's dedication to details - and in spite, not thanks to, the general approach.
The thing with Zephyr drivers is: sometimes you need to do something very special and exact to the hardware, and sometimes you just want to use it in the most generic and braindead way possible.
>> Zephyr loves to reuse Linux tooling but it simply doesn't fit.
What? It has its own tooling.
>> What is implemented and tested directly by SoC vendors works,
Yes, that's the point.
>> And HAL for MCUs is simply a pipedream.
Huh? What does this even mean?
>> Want to read this I2C sensor once an hour? Too bad, the build-in driver can only poll it constantly in a dedicated thread
That's literally how it an RTOS works. I'm baffled by your complaint. It sounds like you just don't understand embedded programming.
>> There is no common denominator like there is on desktop.
Ah ok, there we go: found the problem. If you expect linux, then of course you'll miss all of the embedded patterns that Zephyr solves cross-platform.
Their HAL works, their stacks work, the portability is incredibly smooth compared to other vendors. I just disagree with everything you've said in my experience using it, and working with companies that use it.
It uses KConfig (which is Linux specific-tool) and devicetree (which has origins in OpenFirmware but is nowadays maintained by Linux). And these are over-complicated overkill for MCUs. KConfig is oriented towards generating a nice-looking menu interface for kernel builders to pick and match from a set of well-tested configurations, it provides no debug aid for "where the option I enabled but didn't got into the build actually got rejected". DTS originally works as boot-time configuration format, which is silly for a MCU so Zephyr process it into a set of C macros. Not a bad idea in itself, but the error messages are as cryptic as it gets - and sometimes stuff get silently disabled because of a missing dependency with no build warning.
> Huh? What does this even mean?
You cannot have a portable interface for timers, comparators, peripheral interconnect, programmable logic - all the MCU goodies.
> That's literally how it an RTOS works.
You don't allocate a separate thread stack for something you do once an hour - not unless it's a high-criticality task. You don't constantly poll a sensor that consumes 10mA on a device that has 10µA idle consumption budget. Zephyr does have the facility to do this the right way: workqueues (which is also a ripoff of Linux workqueues nee bottom halves). But most stock device drivers (or the network stack for that matter) don't play well with these, I guess because of the bulky callback-driven interface.
>If you expect linux
I don't expect Linux. That's my point - you can't have Linux on embedded so why even bother with all the abstractions? Why bother with DTS and Kconfig when you still end with a set of header files to debug - except now they are also auto-generated unreadable mess?
> portability is incredibly smooth compared to other vendors
Oh, kconifg is great. Do you think arduino is better? lolno. Check out NXP or STM's solution, and kconfig makes way more sense. Again, my opinion.
>> You don't allocate a separate thread stack for something you do once an hour - not unless it's a high-criticality task. You don't constantly poll a sensor that consumes 10mA on a device that has 10µA idle consumption budget.
I know. But you said you were TRYING to do that. You invent a scenario then you explain why it is wrong.
I don't like to argue for the sake of arguing. Peace out.
Just tell whatever EU country to discard their ID card system?..
Denmark has no ID card for example. It might be the only one in the EU but it's not a problem. Noone is expected to to produce a proof of person on the spot to police here
Ukraine is holding because it's still being dripfed weapons and money by the remaining partners it has. If it dries up they will be steamrolled. Probably not immediately but it will become bad for them very quickly
One way it could dry up is to distract NATO or eu countries with a defense treaty, by something that feels like a real war but not serious enough. Enough that those countries finally say "Oh shit, no more weapons for UKR now we really need to bolster our own flank"
Then Ukraine falls and their 1 mil. of well experienced soldiers get force-conscripted into Putins army and Europe has a problem
To me it sounds less like substitution and more of a recalibration to normal levels. Where the brain learns that when it wants to have fun alcohol isn't the first thing it reaches out for
reply