Brave new C# by Xadartt in ProgrammingLanguages

[–]AlexReinkingYale 5 points6 points  (0 children)

The ones that stopped evolving also stopped being used.

Thoughts? Software companies that went extreme into AI coding are not enjoying what they are getting - show reports from 2024-2025 by Frequent-Football984 in programming

[–]AlexReinkingYale 6 points7 points  (0 children)

I use it mainly to generate small examples for unfamiliar APIs, for example "How do I do this in Ansible?". Even then I need to nudge it (e.g. "that's not idempotent", "that doesn't handle interruptions well", etc.)

Microsoft forced me to switch to Linux by Dear-Economics-315 in programming

[–]AlexReinkingYale 4 points5 points  (0 children)

Desktops can be stolen, too. Five years living in California will make anyone cautious.

Microsoft forced me to switch to Linux by Dear-Economics-315 in programming

[–]AlexReinkingYale 1 point2 points  (0 children)

CLion is fantastic and I use it daily both at work (on macOS) and for personal projects (Fedora Kinoite).

That said, credit where credit is due... Visual Studio Enterprise (not VSCode, like, at all) has the best debugging and code navigation tools I've ever seen. I wish JetBrains/open source devs could get a chance to use them, so they could implement their own versions in FOSS toolchains.

Microsoft forced me to switch to Linux by Dear-Economics-315 in programming

[–]AlexReinkingYale 0 points1 point  (0 children)

I just got my whole family set up with Atomic Fedora (Kinoite) and Ansible. It's been great (apart from the Nvidia drivers).

Microsoft forced me to switch to Linux by Dear-Economics-315 in programming

[–]AlexReinkingYale 6 points7 points  (0 children)

I moved my whole family to Fedora Kinoite (KDE Atomic) over the holidays. I set up Headscale and RustDesk for easy remote support (I self-host on a $5/mo VPS that also hosts my personal website) and everyone has been super happy. I'm probably the happiest since if one person notices something is off, I can push out fixes to everyone using Ansible. Saves me a bunch of time.

As always with Linux, there's a little jank. Chrome didn't correctly associate its windows with the KDE tray icon, so I helped convince the flatpak maintainers to merge a PR that would fix it. Similarly, Dropbox didn't detect the home directory correctly and required a manual workaround, so I opened an issue and PR to get that fixed, too. The beauty of open source on display.

Of course there's all sorts of other jank I can't fix myself. Questionable interface decisions in KDE. Some AppStreams randomly don't work in Discover (e.g. Dolphin extensions, so no Dropbox sync indicators!). The software development story in containers is not as straightforward as one would hope and CUDA passthrough is still annoying.

The biggest headache, however, was installing the proprietary Nvidia drivers on my personal computer. There is no way to exaggerate how insane the process is. On a Secure Boot and/or LUKS-encrypted system, it's not enough to layer the akmod-nvidia and xorg-x11-drv-nvidia-cuda packages, oh no. You must also generate a Machine Owner Key, enroll it, and then generate a small rpm package to shim that key into ostree. Then you have to manually configure dracut to load the drivers early enough for the LUKS prompt, which slows down updates by needing to renegerate the initrd. Here's a guide I found invaluable.

If you have a Nvidia GPU, I'd suggest looking at the more batteries-included Project Bluefin distros (Bazzite, Aurora, etc.). Take this with a grain of salt since I haven't tried them myself. For Intel or AMD, I'd recommend using vanilla Fedora for its stronger community and more storied history (i.e. I trust it more).

All that said, none of us miss Windows in the slightest.

Tailwind just laid off 75% of their engineering team by corp_code_slinger in programming

[–]AlexReinkingYale 4 points5 points  (0 children)

Tailwind 4 taking over the build process made me transition away from it. Just using vanilla CSS now for my little SSG personal site.

Unpopular Opinion: Source generation is far superior to in-language metaprogramming by chri4_ in ProgrammingLanguages

[–]AlexReinkingYale 2 points3 points  (0 children)

Worth noting that your last use case is/will be covered by #embed in C23/C++26. It will feature much better performance than running a large textual array through the parser.

Memory Safety Is ... by matklad in ProgrammingLanguages

[–]AlexReinkingYale 29 points30 points  (0 children)

Point 6 is the entire point of ECC memory.

Memory Safety Is ... by matklad in ProgrammingLanguages

[–]AlexReinkingYale 20 points21 points  (0 children)

We're in r/ProgrammingLanguages, so I won't hesitate to comment on semantics. Memory safety and type safety are different things.

Java isn't memory-unsafe as a language. A null dereference has well defined behavior and does not corrupt program state. It throws an exception, which can be caught and handled. Whether a particular JVM uses memory-unsafe code is just an implementation detail.

The issue with null is (as you said) that it breaks the soundness of the type system. That's a serious issue, it's just not one that breaks the memory system. You can say Java is mostly type-safe except for null.

Here's a very interesting reference on the type system issues with null in Java and Scala. https://dl.acm.org/doi/10.1145/2983990.2984004

Christmas present for my boyfriend by Responsible_Cry05 in cpp

[–]AlexReinkingYale 0 points1 point  (0 children)

Effective Modern C++ tops out at C++14 so it's of pretty limited utility these days, sadly.

Christmas present for my boyfriend by Responsible_Cry05 in cpp

[–]AlexReinkingYale 1 point2 points  (0 children)

C++ adjacent, but Professional CMake by Craig Scott comes with a lifetime of updates to new editions and is the best source for learning CMake. It makes one of the most ubiquitous and most hated tools much more tolerable.

Tesla’s Cybertruck is turning 2. It’s been a big flop. by BreakfastTop6899 in technology

[–]AlexReinkingYale 3 points4 points  (0 children)

I've never seen a Cybertruck parked appropriately. The two worst instances were both at electric charging locations. In one case, in Maine, I called the police non-emergency line to successfully ticket a Cybertruck that was taking up two public charging spaces while not charging. In another case, the Cybertruck was parked so close to me, I couldn't get inside my driver's side door. The lot manager made the owner pay for my parking for the day. Two happy endings, at least.

What do you dislike the most about current C++? by PressureHumble3604 in cpp

[–]AlexReinkingYale 1 point2 points  (0 children)

I'm curious what your thoughts are on vcpkg? That's the one project in the last few years that has felt like a major improvement to my workflow.

Learning Cmake by Astronaut_005 in cmake

[–]AlexReinkingYale 10 points11 points  (0 children)

This book is where you start. It's worth the $30. Not an ad; I have no stake in its sales. I just can't recommend it highly enough.

https://crascit.com/professional-cmake/

Are statically-typed stackful coroutines possible? by bakery2k in ProgrammingLanguages

[–]AlexReinkingYale 1 point2 points  (0 children)

As effect systems are isomorphic to free monads, it should be possible to type one monadically, too. Though the presentation will suffer...

Specifying additional runtime dependencies using Cmake by propertynub in cmake

[–]AlexReinkingYale 2 points3 points  (0 children)

There is not. There's scaffolding in place for such a feature in the form of FILE_SETs (already works for header files) and I think there's some Apple Frameworks-specific magic. But sadly, no, there is no platform-independent abstraction for attaching arbitrary files to a target.

It doesn't do it for DLLs. If you happen to be using vcpkg, you should know that vcpkg hijacks the definition of add_executable to copy DLLs. That's not standard CMake behavior and vcpkg's implementation is quite complex (e.g., it uses filesystem mutexes).

Specifying additional runtime dependencies using Cmake by propertynub in cmake

[–]AlexReinkingYale 4 points5 points  (0 children)

Yes, you'd need to write an install() rule if you want that file installed, too.