Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

jim-jim-jim

Suckless and cat-v exposed me to the Unix philosophy in the early 10s and it instantly resonated with me. Trollish contrarianism was at least part of the appeal, but the fundamentals made sense. I was not from a CS background, but realized that I could write software too if I kept things single purpose and leaned on the existing ecosystem. I probably owe my current career to these cheeky cunts. dwm is still chugging along on my underpowered OpenBSD laptop and I am happy.

techdragon

I don’t know how well it was a reflection of classic UNIX philosophy, that’s a whole argument on its own, but when I found and learned about various Suckless tools and similar minimalist things like runit, s6, and in particular an excellent article on doing Linux from scratch but setup with both but busybox so it booted strait to a busybox shell without any init system … collectively they opened my eyes to the fact that “Operating System” is a spectrum containing a lot of room for both varing degrees of hardware abstraction (DOS/RTOSes vs Windows/macOS/Linux/*BSD) and for the level of support the operating system provides the “user land” software on top of it.

It’s been quite useful now I’m working on things like Linux and FreeRTOS on Satellites and how to utilise fault tolerant supervision frameworks to keep critical systems running.

tremoloqui

Projects like this are good for everyone even those who don't want to get their hands dirty. That's because these projects will influence and contribute to other projects that you likely care more about.

This is the same logic behind OpenBSD. You don't need to run OpenBSD to benefit from the security posture and fixes that they provide. Consider your life without ssh.

Probably a good reason to consider contributing to these projects.

eternityforest

I'd rather suckless didn't influence anything I care about.

It's fine that it exists for those who want it, I'd rather systemd and all my GUI apps and DEs stay as they are.

Android could use a bit more modularity though, but the SAF makes that a challenge at times.

nousermane

That's a respectable approach. I feel the same about dbus and systemd - fine that they exist for some, but I'd rather see them not stretch tentacles into libresolv, ntpd, udev, firefox, wtmp/utmp, etc...

Beltalowda

It's never been suckless' goal to influence anything. They're advanced tools explicitly written for advanced users. Nothing more, nothing less.

112233

> Consider your life without ssh.

That's actually an interesting example. ssh was made to fix a real problem (password sniffing). What problem is being fixed here?

caeril

The problem being addressed is the Moore's Law equivalent of the Hedonic Treadmill.

Some of us don't want EVERY available byte of RAM or clock cycle occupied by bloated window managers, terminals, browsers, init systems, text editors, etc.

Suckless has a lot in common with the Handmade Network's philosophy. Keep it small, keep it simple, stop throwing a billion layers of abstraction on top of each other, give a shit about cache lines, heap fragmentation, pipeline flushes, etc.

We are mired in the Jevon's Paradox of the computing world right now. The faster hardware becomes, the more obese our software becomes to utilize it. And as a consequences, much worse.

Suckless aims to address this.

akira2501

> Consider your life without ssh.

IPsec and Telnet. Might not have been so bad, if IPsec wasn't such a chore; particularly compared to the ease of getting an sshd up off the ground.

collegeburner

homie ipsec is a trashfire, you couldn't pay me enough to go back to that shit.

undefined

[deleted]

erganemic

I've heard people accusing Suckless of gatekeeping, which is fair--when you consider their decidedly /documentation-lite/ approach, it'd be a stretch to call them accessible.

However, I'm starting to increasingly believe that gatekeeping is both good and necessary for movements to maintain their identity.

This is an inherently clickbait-y statement to make: isn't gatekeeping pretty indefensible? Yes--and no.

By way of illustration, let's talk about Dungeons and Dragons. I'm young enough to be a greenhorn by pretty much any standard, but I got into D&D before its meteoric rise back to cultural significance on the back of properties like Critical Role and Stranger Things, which has left me feeling like a dyed-in-the-wool TTRPG curmudgeon. I see people on Reddit complaining about 5e (the current iteration of D&D) all the time: there are too many rules, combat is boring and drawn out (since all people really want to do is roleplay), keeping track of health and statuses is impossible...the list goes on.

The issue is both immediately clear and a massive faux pas to point out within the community: these people shouldn’t be playing D&D.

As adversarial as that last statement might seem, try reading it not as a judgement--but as a suggestion. If you want a rules-lite improv romp with your friends that handwaves combat and emphasizes roleplay /you shouldn’t be playing D&D/. The system itself is built for a purpose that will be fighting you at every step of the way!

These people won't be happy until they start using a TTRPG system that better accomplishes what they want, and at the same time, they'll be massively pissed off at anyone who tries to tell them so.

"I think I finally fixed D&D!" I heard someone on Reddit excitedly explain. "I just make up all the monsters' dice rolls and abilities and do whatever feels most cinematic, my party loves it!"

"That's not D&D," I want to say. "That's make-believe that involves you lying to your friends."

Instead, I suggest another system that might be more conducive to their style, and I get called a gatekeeper.

I mean, you might as well say: "I want to run minimal, lightweight software written in C that expects you to understand and modify its source code, but I want some kind of configuration engine for it, since I don't know C and can't read its source code!"

jim-jim-jim

Yes, gatekeeping is a healthy subcultural defense mechanism. Not every community needs to run on corporate logic and expand indefinitely.

inasmuch

I often find myself on the extreme end in favor of gatekeeping.

I more or less quit playing D&D because of what I perceive as a significant shift in the culture around the game over the last decade. It's all well and good to say the way a new wider audience interacts with something I love needn't affect the way I do, but in my experience, it's rarely avoidable (especially when that something requires others). I don't spend much energy resenting the Stranger Things, et al.-inspired D&D community (perhaps because I myself was never /that/ deep into it, all things considered), but I'd be lying if I said I didn't feel alienated by the attitudes you're rightly describing as ill-suited to the game.

I feel like the centralization of the social side of internet has fostered the notion that all exclusivity is a form of hostility. Which, sure, exclusion is often a form of aggression, but it's just as often a form of defense. If someone would like to frame defense of something he considers sacred as hostile behavior against those who might want to change it, fine, but to then insist that any such action is inherently bad at best makes him seem myopic and at worst makes me wonder why he feels entitled to full read-and-write access to everything.

Maybe this is a stretch, but I find it ironic that the anti-gatekeeping attitude has risen among people who are largely sensitive to the concerns of, say, communities suffering from gentrification.

nmz

I don't think exclusion in this case is a form of aggression or anything emotional, the problem is not emotional based but logical based, the main culprit is categorization. If you call something X and nobody can tell its X, then its clearly not X. This is not a bad thing, its just new, and as so, should have a new name (or recategorization).

eternityforest

In that very limited sense gatekeeping has value. I like DnD but it is not my favorite system, I like deep lore, emotional roleplay, and, and if needed, I'm perfectly fine with artistic license by GMs/STs. Especially if there are power gamers in the group, because nobody likes plots that become entirely about NPCs and the 2 power gamers.

I also have no interest in suckless, so I have no reason to be upset if I, a fan of exactly the software suckless is a rebellion against, am left out.

The problem is when it expands a bit. Occasionally you'll get people saying stuff like "You shouldn't be using a computer at all if you don't want to use the command line and write C" or "Girls shouldn't plat TTRPGs at all, it's a guy thing and they just do it for the attention".

And of course, the unsolvable problem of whether non-suckless people should make an effort to write their programs in a way that can be used outside of the Red Hat de facto mainstream stack, even though they personally never expect to see a system like that and only a small number of their users will.

Beltalowda

It's not "gatekeeping", but suckless is targetted at a very specific audience. There's nothing wrong with that and just as much "gatekeeping" as writing a text in German for German speakers with German cultural references that may be hard to follow even for people who picked up German as a second language.

Everyone is "gatekeeping" to some degree because everyone comes from a different background and wants something different. The only difference is that suckless is more explicit and honest about it.

handoflixue

In defense of gatekeeping and walled gardens: https://www.lesswrong.com/posts/tscc3e5eujrsEeFN4/well-kept-...

Tangentially, I have found the phrase "walled garden" gets a lot less hate than "gatekeeping" - some people still conflate the two, but it helps establish "I am trying to make a space devoted to X" from "I think not-X is bad"

NoraCodes

> "That's not D&D," I want to say. "That's make-believe that involves you lying to your friends."

Whatever his faults, and there were many, at least Gary Gygax wasn't this much of an asshole to people who were having fun with his game.

erganemic

The specific person I'm talking about was telling their players that the stakes were real: they were calling for rolls (not attack rolls or saving throws, mind: those are too complicated, just anonymous rolls that were immediately ignored), whittling down the party members until they're just on the verge of death, and then--a miraculous recovery! Victory snatched from the jaws of defeat!

Yeah, they might be having fun in the moment, but someone in that thread asked whether their party knew that all their triumphs were predetermined, and the OP replied in the negative. "You should really either fess up to it being railroaded or try to make it less so," someone advised. "Otherwise, they're gonna find out, feel like morons for getting emotionally invested in what's basically a puppet show, feel like double morons for believing you all the times you assured them that their miraculous victories were real, and never want to play again."

The OP took immediate offense to the idea that people are sensitive to having their emotions manipulated via lies, and went on a multi-paragraph rant that basically amounted to "my players are idiots who don't know what they want and will never find out, and even if they did they'd thank me for my awesome storytelling, and basically when you think about it I have to take away their agency because otherwise they might mess up my plans."

Moreover, I maintain that lines of reasoning like that are more common amongst people who want to play D&D while ignoring all its systematic, rules-based elements. "I should be able to control my players at my whim" and "it's unnecessary to have objective ways to resolve a success or failure except through my fiat" are complementary beliefs, and a person attracted to one is more likely to be attracted to the other.

That's why I say (maybe too tersely) "That's not D&D." Because the fundamental element of D&D--the thing that separates it from a book or movie!--is player choice. And if you have decided that a version of the game where you can enforce your will randomly--beholden to no rules--is the one that aligns with how you want to DM...well, it's not impossible to do that right, but I'm leery of any decision that makes it easier for you to stomp on player choice.

NoraCodes

Why does it both you so much that other people have fun in a way you don't like?

saghm

> I see people on Reddit complaining about 5e (the current iteration of D&D) all the time: there are too many rules, combat is boring and drawn out (since all people really want to do is roleplay), keeping track of health and statuses is impossible...the list goes on.

This is obviously super subjective, and everyone's opinion is right for themselves, but as someone who learned 3.5e first and then eventually moved on to Pathfinder and now plays PF 2.0, it's crazy to me that 5e would seem to rules heavy and combat too complex. I specifically prefer Pathfinder because 5e feels _too_ simplified compared to what I'm used to, and I just don't get the same enjoyment out of having a character that "feels" less powerful.

> "I think I finally fixed D&D!" I heard someone on Reddit excitedly explain. "I just make up all the monsters' dice rolls and abilities and do whatever feels most cinematic, my party loves it!"

> "That's not D&D," I want to say. "That's make-believe that involves you lying to your friends."

Honestly, I don't really see anything wrong with that. I don't DM much anymore, but I totally am fine with the idea that my DM might occasionally fudge things to make the game more fun for everyone. Is it fun if in the first first round of the first encounter of an adventure the monster gets a lucky crit and kills the fighter, leaving it free reign to mop up everyone else? Some people might find it more enjoyable if it's "real" and want there to be randomness and a sense of danger! On the other hand, if this is the very first time this group of people has played, and they were enticed more by the roleplaying than the combat, it could sour their perception to the game to the point where they don't end up pursuing it despite the potential for them to have a lot of fun. I think an experienced DM will generally develop a good sense for their group and be able to tell when something warrants a bit of fudging to make the game more fun for everyone, and that's a good thing. This is sometimes even explicitly written in D&D rulebooks (I believe the 5th edition Player's Handbook includes this) as "Rule 0", which is that the rules are subject to the DM rather than vice-versa, and that every play group is free to customize the rules as they see fit. Obviously, there's a degree to which the rules can be changed or thrown out at which the game no longer resembles "by-the-book" D&D, but personally I don't think that it really matters that much where the line is (as long as you're not, like, trying to market things commercially as D&D when it's not, but that's really the purview of the company holding the trademark to decide).

tstrimple

I tend to agree re the complexity of D&D. The combat is much too abstract and unrealistic for my tastes. I gravitate more towards a game system like GURPS for gritty realistic games of any genre because it simulates combat so much more effectively. If I want to shoot someone through their left eye as they race past on a motorcycle there are calculations for the penalty to hit which include the range, speed lighting and other variables. I can certainly understand why folks wouldn’t want that level of detail in their combat and prefer a more abstract system. When I want to focus on the role playing and story telling aspect of these games, systems like Dread or Fiasco are fantastic. D&D seems to want to try to have things both ways but its combat and skill abstractions feel awkward and limiting.

ronsor

I like the idea of suckless software, but unfortunately it often means sucking out most of the useful functionality.

smitty1e

If you want haiku, you get 17 syllables. 16 shall not be the count of the syllables, unless thou proceedest immediately to 17. 18 is right out.

yjftsjthsd-h

They compose well enough to cover a lot of shortcomings. Although yes, sometimes too little is just too little.

georgia_peach

st is superb. Other terminals have more features (that I don't care about). Kitty is well thought-out, but Kovid has a lot of strong opinions that cause all sorts of problems with common software (like vim & tmux). Wezterm is also a fine piece of work, but the constant upgrade notifications turned me off. xterm is a classic, but the .Xresources / xrdb dance gets to be a pain.

greyw

st has the highest input latency among quite a few terminal emulators [1] and feels thus very slugish. It's an ok piece of software at best.

[1] https://danluu.com/term-latency/

AlanYx

st is such an outlier in those measurements that it makes you wonder whether something is potentially wrong with the test setup.

There's another set of latency measurements here: https://tomscii.sig7.se/2021/01/Typing-latency-of-Zutty In those, st is roughly similar in performance to urvxt and Alacritty.

Beltalowda

Also some measurements over here, which are yet again different: https://lwn.net/Articles/751763/

I guess accurately measuring latency is hard.

ninjin

I have used urxvt, st, and Alacritty extensively and I would say that to me they feel “snappy” in exactly that order. You are of course welcome to pick whatever metric you want to judge a piece of software, but I can not say that I have ever been bothered by st’s input latency. The input handling is done using XEvent and a call to pselect in x.c and I am sure a patch that does not increase the code complexity massively would be accepted upstream.

Luu also had this to say about the experimental setup for st:

> st on macOS was running as an X client under XQuartz. To see if XQuartz is inherently slow, I tried runes, another "native" Linux terminal that uses XQuartz; runes had much better tail latency than st and iterm2.

Maybe it matters, maybe it does not. But I feel like picking your terminal comes down to a lot more than a single metric and input latency experiment.

georgia_peach

It's not a video game. I type programs in it. 30-110 ms is more than fast enough.

greyw

The terminal emulator is probably the most used and most important software I'm running. It needs to be enjoyable. I personally can feel the lag so its not good enough for me.

Anyway that being said I have some collegues that are not bothered by lagging mouse cursors and other janky stuff so I can somewhat understand that this might not matter to some people.

edit: I just tried out st again on my gnu/linux machine and it seems to be fine with respect to input latency so I guess its not all too bad of a terminal emulator. Maybe it only sucks on macOS.

petepete

I use kitty with tmux all day every day and haven't run into any problems that affect me.

The only thing I'm aware of that doesn't work is kittens inside tmux.

georgia_peach

It was a couple years ago last I used it, & had issues with the xterm-kitty identifier, bold-bright vs. bold-thick, and the latest one gives me the following message when I run vim:

> [PARSE ERROR] The application is trying to use xterm's modifyOtherKeys. This is superseded by the kitty keyboard protocol: https://sw.kovidgoyal.net/kitty/keyboard-protocol/ the application should be updated to use that

jack_pp

I run ST and I'm generally happy with it, only problem I've once had was that it crashed on some non-standard characters once (emojis maybe)

ShowalkKama

it's in their faq: the crash is caused by a bug in libXft. A workaround is installing libXft-bgra which is a patched version (you can find it in thr AUR)

Beltalowda

It seems it finally got merged!

https://gitlab.freedesktop.org/xorg/lib/libxft/-/merge_reque...

Not yet in a release though.

jack_pp

thank you!

I remember I did a quick google search but I couldn't find anything and gave up, just used gnome-terminal for that task and didn't bother investigating further. Thankfully I don't generally work with text files that contain emojis :)

neilparikh

I think configuring software via editing the code is not a bad approach, but the suckless approach less flexible/composable than what XMonad does.

In suckless software, you edit config.h, but then if the change isn't exposed in config.h, you need to modify the source code.

In the case of XMonad, you can think of XMonad instead as a "library for writing window managers". You customize it by writing your own main function, and calling/combining the appropriate library functions [0]. This way, there's text-based patches to maintain; the library code is unmodified, all your changes are in your own file.

[0] - There is a prebuilt simple main function that lets you customize the basics, similar to the suckless config.h

sdkgames

If you need additional functionality, you must patch the program's source code with diff files. I don't think this principle scales well. If you change the source code, all patches will become invalid. How is it supposed to work?

flobosg

I have a git branch where I apply my patches. If the master branch is updated I pull their upstream changes and then rebase my commits on top of theirs [1]. Once in a while conflicts may arise, but they’re usually solved easily.

[1]: https://dwm.suckless.org/customisation/patches_in_git/

georgia_peach

I think part of their ethos is that they don't like scale. They like small. It's a feature, not a bug.

tomxor

Provided the source is reasonably organised the configurable variables etc are likely separate enough from any code you would care about patching.

Patch applying is quite robust, you do not need the code to be identical, the line numbers don't need to match exactly, it's most sensitive to the few lines of context.

tomxor

I've been using dmenu for ~10 years now :) can't imagine opening programs in a simpler or more efficient way.

warmwaffles

I've been using rofi now for about 4 years. May look into supplementing dmenu in.

michaelmrose

i3 has modes which is sets of keybindings enabled as you press the key to enter the mode. Tapping right shift enters command mode wherein many bindings are available but notably hitting o followed by a letter key opens the app bound to the variable $appkey_[letter]

To bind b to firefox appkey b firefox to open firefox <rshift> o b

If you decide you like chromium better tomorrow appkey b chromium.

If you want b to open a longer command appkey b "some long command here"

tomxor

Yeah I use i3, but make explicit shortcuts sparingly (pretty much only a terminal shortcut), muscle memory has it's limits, and a lot of mine is consumed by vim.. For the rest, dmenu.

undefined

[deleted]

mid-kid

I believe filtering on programs that actually have a gui by using .desktop files and using their icons while at it is significantly more convenient. i3-dmenu-desktop, despite its composability, was insanely slow, so I switched to rofi as soon as that became available.

nmz

well, you could avoid a fork by using something like awesomewm, where pressing the launcher shortcut will just open a window inside the wm directly. certainly more efficient, not simpler though.

jcpst

Dmenu was kind of nice when I was on a minimalist software kick.

I get that modifying source code as an alternative to configuration is appealing to some. I suppose it’s nice for the maintainer, they don’t have to worry about handling more than just their preference.

undefined

[deleted]

LAC-Tech

I like their philosophy, but they take it to an extreme.

What I like is software that sucks a little bit but not all that much. openbox over dwm, but not KDE.

Daily Digest email

Get the top HN stories in your inbox every day.