Avatar

TechNom (nobody)

technom@programming.dev
Joined
0 posts • 53 comments
Direct message

It’s still missing the send and receive features from btrfs. And while they say it’s more stable than btrfs, it’s yet to prove itself (through widespread use), and is marked as experimental in the kernel config.

permalink
report
parent
reply

Torvalds indicated in a recent interview that they’re struggling to find young maintainers. Many people contribute, but few stay around to become proficient enough and take on the responsibility of maintainership. I believe that the email comment was made in this context.

However, I don’t think that many kernel devs including Torvalds are in favour of the Github workflow. He once indicated his strong dislike for it. So the replacement for email won’t be Github - but something just as easy, without sacrificing the quality that the kernel devs need.

Finally, a word is kernel development. Contrary to popular belief, they aren’t hostile to new contributors. Kernel developers have high quality intro material for newbies - including for email workflow. They’re also very considerate and patient with newbies. Even Torvalds who was known for his abrasive style in the past really took that only on experienced developers doing the wrong thing.

permalink
report
reply

Exact same story here. Bash -> Python -> Rust.

Generally speaking, people should settle on a compiled language if they can. They can iterate as fast as interpreted languages these days.

Edit: If you want to try something different in scripting, try the execline language. Its interpreter processes the script and exits immediately even before the script execution begins. Traditional shell interpreters (like bash) stay active till the entire script is finished. Execline achieves this by a clever chaining of Unix execs, forks and variable substitutions. This makes execline scripts lighter (useful in embedded systems), more secure and less error-prone than traditional scripts. The downside is that writing them will feel a bit weird - since the fundamental paradigm is different from regular shells. However, that will be a refreshing change if you’re someone who likes to experiment and try new things.

permalink
report
parent
reply

This is an old post and a lot has changed since then. Many of the points in that article are no longer true. Drew himself started a language - hare, for which he is considering Rust style borrow checker to ensure safety. It’s a bit wrong to bash anything based on a half a decade old opinion.

permalink
report
reply

I don’t think you mean ‘merge’ - that’s a specific operation. I think you mean ‘squash’, which combines multiple commits into one. ‘Fixup’ is also something similar.

Git allows you to edit history in any way you like. The hardest is probably splitting a commit into multiple smaller ones. It requires you to edit a commit by resetting the HEAD and making multiple smaller commits before continuing with the rebase. Though it sounds complicated, it becomes easy enough after you try it a couple of times. You should check out git-rebase.io - a site dedicated to editing git history. You can learn to craft proper commits of high quality.

Once you get familiar with rebasing, you could try out stacked git. Interactive rebasing looks weak in comparison to what stgit can do. Stgit allows you to edit history like rebase. But that’s the least of it. It allows you to create proper commits from the start, rather than by editing at the end. In some ways, stgit gives you multiple staging areas - giving you incredible flexibility.

permalink
report
reply

While I don’t want to deny the problems of not having namespaces, they will introduce a new set of problems. One issue with Github and similar platforms with namespaces is that a search for a repo turns up multiple projects with the same name under different namespaces. It’s always a confusion as to which one is canonical. Another problem is that people are now going to name squat namespaces instead of project names. Imagine somebody registers the serde namespace. Their crates may be mistaken as the canonical one.

permalink
report
reply

All the problems mentioned here are common to various tech jobs and possibly other fields as well. It’s nothing specific to programming. All problems mentioned are societal issues and not inherent problems of any profession. Things like student loans, hustle culture that leads to burnout, over compartmentalization of work, clueless managers, etc. We need a social revolution, not a career change.

permalink
report
reply

The main issue for me is the syntax, specifically generic types, traits, and lifetimes.

After working almost exclusively with Go for years, reading it seems unnecessarily demanding.

Like someone else said, this is a complex subject to answer. The syntax looks perplexing and frustrating, until it doesn’t. These days, Rust syntax is nowhere in my thought while coding - it like when you drive, you are thinking about where you want to go rather than about manipulating the controls.

Why should I learn and use rust?

Rust’'s rules are about enforcing memory safety. But it also ends up forcing you to write better programs than what you imagined you could. It’s hard to describe that feeling - you have to experience it. That alone is a good reason to learn it - even if you end up not using it in the future.

Rust’s unique design also leads to many design patterns not normally seen in most other languages. That’s also worth exploring.

I have fallen in love with Go. It feels like ‘home’ to me

That’s a perfectly good thing. It’s hard to find that sweet spot. However, don’t let that stop you from exploring the alternatives. You might find ideas you could use in Go.

permalink
report
reply

If any FOSS project maintainers see this, please stop using Discord for your community.

permalink
report
reply

So many praises for Windows and Mac about ‘premium features’, ‘corporate environment’ and ‘device support’. But not enough talk about how they treat customers like crap and cash cows. Windows is replete with spyware and ads. It doesn’t respect the user’s choices, like when not to do an update or opening the links with a browser of user’s choice. Heck! Some versions don’t even allow you to register users without a cloud account. And now they are taking definite steps towards ensuring that you can’t do anything they don’t approve - with TPM and pluton non-sense. Praising windows is like being in an abusive relationship and finding justifications for it.

Mac is on the other extreme. They lock down their platform more and more in every revision in the name of security. It’s getting harder to side-load apps. Why? For security, of course! No mention of how security comes primarily from platform design. Then there is the hardware, where everything is glued, soldered, riveted, digitally locked, etc, etc. Any small issue, and it’s garbage. Not even parts from another genuine Mac can be used. Macs also have the strange distinction of needing calibration and signing of any part that can be replaced at all. It’s deliberately designed to extract more money from you and create a tonne load of e-waste (iWaste?). Mac fanbois have a habit of justifying it in the name of ‘miniaturization’ and progress. Honestly, that’s just hand-wavy and completely wrong technical argument. And Apple says it is all for ‘privacy’ and ‘security’ while their actual reason is the pursuit of double-digit growth (not just profits). So, in effect, Apple is saying to their customers “Oh honey! You’re are just too stupid to take care of it. So let me just decide for you” - all the while squeezing you for money. Does it end there? Oh no! They need developers to pay a yearly fee and want to take a huge cut from their profits. All that for “providing the engineering, platform and services”. As if the exorbitant price they extract from their customers isn’t enough.

The hardware situation on Linux distros and frankly even BSDs isn’t as bad as it is projected by some. Most devices just work even on a live installation medium. Even Nvidia works. (Have you considered the possibility that if any device doesn’t work, it’s the manufacturer’s fault and not the OS’s? There are plenty of devices for which the community maintains the drivers, just because the device manufacturer isn’t an utter trashbag). There are tonnes of games too - thanks to Valve and Proton. And as for the ‘corporate env’, you are probably just locked in or too used to them. There are users who have been on these platforms for decades now without complaints. And there are companies built entirely on them. Can you say the same about any of the company that makes your OS/devices? Is there one among them that doesn’t use Linux or BSDs?

Look! I’m not claiming that everything is rosy on the Linux and BSD side of things. Sometimes you have to find an alternative way of doing things (there are plenty of options). Sometimes, you have to configure a lot. Sometimes, you have to carefully choose your hardware so that your life is easier with Linux and BSDs. But there is one thing they don’t ask you to do- and that is to surrender your self-respect. You don’t get treated like cash cow. You don’t get spied on as if you are a thief. You don’t get restricted like a school kid. You’re not told that your choices are wrong. Your choices are not disrespected. You don’t get treated like you owe them after you paid your hard earned money on the devices they make. Ultimately, it’s up to you to decide if the little conveniences are bigger than your self-respect.

permalink
report
reply