![](/static/253f0d9b/assets/icons/icon-96x96.png)
![](https://lemmy.ml/pictrs/image/q98XK4sKtw.png)
This is a pretty good idea, my wife dual boots and I’ll suggest it to her as Windows keeps trashing the EFI partition.
This is a pretty good idea, my wife dual boots and I’ll suggest it to her as Windows keeps trashing the EFI partition.
This would work but assumes the primary use of the machine is Windows and derates your performance under Linux significantly due to USB speeds. Even if you’re storing your data on the Windows HDD, NTFS drivers are dog slow compared to EXT4 and other *nix filesystems.
Also some BIOSes are a pain to get to boot off removable drives reliably so it really depends on what your machine is.
I’ve used Linux as a primary dev system for well over a decade now, and with the current state of Windows I’d really recommend just taking the leap, keep your Windows box if you need Windows software and build a dedicated Linux workstation.
You’re missing one:
Aside from “lightweight apps in VM” this is the only solution I use now. (Unless you count Proton, but having Steam games Just Work barely feels like a “solution” as it requires zero effort on my part)
I don’t even trust Windows to dual boot off a separate disk without trying to break something anymore.
That’s a valid point, the dev cycle is compressed now and customer expectations are low.
So instead of putting in the long term effort to deliver and support a quality product, something that should have been considered a beta is just shipped and called “good enough”.
A good example I guess would be a long term embedded OSS project like Tasmota, compared to the barely functional firmware that comes stock on the devices that people buy to reflash to Tasmota.
Still there are few things that frustrate me like some Bluetooth device that really shouldn’t have been a Bluetooth device, and has non-deterministic behaviour due to lack of initialization or some other trivial fault. Why did the tractor work lights turn on as purple today? Nobody knows!
My type is a dying breed too, the guys who do their best to write robust code and actually trying to consider edge cases, race conditions, properly sized variables and efficient use of cycles, all the things that embedded guys have done as “embedded” evolved from 6800 to Pic, Atmel and then ESP platforms.
Now people seem to have embraced “move fast and break things” but that’s the exact opposite to how embedded is supposed to be done. Don’t get me wrong there is some great ESP code out there but there’s also a shitload of buggy and poorly documented libraries and devices that require far too many power cycles to keep functioning.
In my opinion one power cycle is too many in the embedded world. Your code should not leak memory. We grew up with BYTES of RAM to use, memory leaks were unthinkable!
And don’t get me started on the appalling mess that modern engineers can make with functional block inside a PLC, or their seeming lack of knowledge of industrial control standards that have existed since before the PLC.
There’s a reason I farm with old relics, they aren’t “optimized” like the new stuff but they’re cheap and reliable to keep running.
Most of my implements don’t even have an electrical connection and some of the tractors have literally a starter motor, alternator, battery. Maybe lights if you’re lucky!
I feel the OOP debate got a bit out of hand. I hate OOP as well, as a paradigm.
But I love objects. An object is just a struct that can perform operations on itself. It’s super useful. So many problems lend themselves to the use of objects.
I’ve been writing a mix of C and C++ for so long I don’t even know where the line is supposed to be. It’s “C with objects”. I probably use only 1% of the functionality of C++, but that 1% is a huge upgrade from bare C IMO.
I was more referring to the fact that everything is immutable by default. As someone who’s just starting to get old (40) and literally grew up with C, it’s just ingrained in me that a variable is… Variable.
If I want a variable to be immutable I would declare it const, and I’m just not used to the opposite. So when playing with Rust, the tutorial said that “most people find themselves fighting with the borrow checker” and sure enough, that’s what I ended up doing!
I like the concepts behind it, it really encourages writing safe code, and I feel like it’s not just going to be a fad language but will likely end up underlying secure systems of the future. Linux kernel rewrite in Rust when?
It’s just that personally I don’t have the flow of writing code like I would in C/++, just not used to it. The scoping, the way you pass variables and can sort of “use up a reference” so it’s not available anymore just feels cumbersome compared to just passing &memory_location and getting on with it, lol
Rust is heresy. Everything should be mutable, the way that God intended it to be!
Seriously though as someone who has mainly done embedded work for decades and got used to constrained environments, the everything is immutable paradigm seems clunky and inelegant. I don’t want to copy everything all the time.
Now if you’ll excuse me, these null pointers aren’t going to dereference themselves
Interesting, I’ve installed it on quite a few machines now, all with widely varying hardware. Aside from my development/gaming rig I’ve got a shop laptop which is used by various goons to view shop drawings and look up parts, one the ex-wife still hasn’t managed to break, one is my 9 year old daughter’s and another is a potato that runs my 3d printer (to be fair this one is fossilized and doesn’t get updates).
All are working great with no setup effort and no maintenance so I guess it’s a classic case of YMMV. I wouldn’t have used Arch for any of those use cases except maybe the 3d printer.
No you have to use Manjaro, it’s Arch for the rest of us
Used to for one package - stupid tax filing software that won’t run under Wine, likely because it’s shitty garbage that was written in VB. The forms don’t reflow properly.
I had enough of the two systems trying to clobber each other’s bootloaders and this year am running Tiny10 in a VM instead. The forms STILL don’t reflow properly in anything except for VMWare. Don’t ask me why, it’s financial software and it always comes out broken and is patched just in time to file before the deadline.
Steam’s Proton and modern AMD drivers have been super effective in allowing me to do all my gaming on Linux now, and all my dev work always was. Don’t see much reason for Windows these days.
This is why I run Manjaro, which I never hear any love for here for some reason. It’s the rolling releases and cutting edge updates of Arch, but with the ease of use and reliability of Debian. Insert a bootable USB and have a fully functional system in a couple minutes.
Manjaro just works, from gaming to development, and I’ve never been forced to play games to install a hardware driver or newer library that isn’t part of the release like with Debian or Ubuntu.
Been using Linux for over 20 years and never seen a distro so trouble free.
Even with external volumes, I don’t think there should be any mechanism where a container can escape a bind mount to affect the rest of the host fs? I use bind mounts all the time, far more than docker volumes.
/dev/sdx wasn’t originally for SATA, it was for SCSI drives. Back when men were men indeed!
As I said,
C/++ with renewed appreciation
No such thing as eval in non-interpreted languages. Unless you’re crazy enough to invoke the compiler and exec() the result.
I used eval too in my Perl days which is why I specifically called it out. IMO any time you see eval used there should be another, more proper way to do it.
I love the term “write-only code”, it’s perfect. I used to love Perl as it felt like it flowed straight from my brain into the keyboard. What a free and magical language.
So it turned out I had ADHD. Took meds, went back to C/++ with renewed appreciation, haven’t touched Perl since as it horrifies me to look at it. What a nightmare of dangling references and questionable typing. Any language that allows you to cast a string to a function and call it really needs to sit down and think about what it’s doing.
I’ve never run Arch itself but have been super happy with Manjaro. They do the testing and batch up the updates for you. 6 months in on several different machines with no issues at all, honestly better than any Debian based desktop I’ve run.
Almost anything I’ve ever wanted has been in either the main repo or AUR, no more hassle with stale versions of this or that when I want to run some hot new software of the week. Everything just works.
However as mentioned elsewhere it’s all Debian all the time for my servers, where stability is the name of the game.
If you don’t want
memory-safebuffer overruns, don’t write C/C++.
Fixed further?
It’s perfectly possible to write C++ code that won’t fall prey to buffer overruns. C is a lot harder. However yes it’s far from memory safe, you can still do stupid things with pointers and freed memory if you want to.
I’ll admit as I grew up with C I still have a love for some of its oh so simple features like structs. For embedded work, give me a packed struct over complex serialization libraries any day.
I tend to write a hybrid of the two languages for my own projects, and I’ll be honest I’ve forgotten where exactly the line lies between them.
So uh yeah as we all know a lot of amphetamines have already been “open source” for a long time.
And we also know the DEA really doesn’t approve of private production… Vyvanse itself only really was created as a produg because of their control of the amphetamine market and their desire for products with lower abuse potential.
If we could get the DEA out of the way anyways, it would make more sense to just make dextroamphetamine as it’s simple, cheap and effective.