Contact: The best way to contact me is to send an email to piotrklibert of fastmail.com domain. Or you can leave a comment here: https://klibert.pl/articles/contact.html or ping me on Discord: piotrklibert
Take a look at https://klibert.pl/articles/about.html for more info about me.
- It would be nice if the eventual AI overlord was called Borland...
- > I'd like to believe there is some correlation between proper punctuation and the quality of the answer.
I'd love to believe that, but it's unrealistic in 2025, given all the correctly punctuated slop that brings negative value (wastes time, gives no info) to readers everywhere on the Internet. As much as I hate to admit it, I think this ship has sailed.
- Arainach:
> Using proper language is how I think.
logicprog:
> because it's closer to how I think them — usually in something like the mental form of full sentences
Yeah, I'm the same. However, I'm also very aware that not everyone thinks like that.
I'm sensitive to sounds, and most of my thinking has to be vocalized (in the background) to make sense to me. It's incredibly hard for me to read non-Latin scripts, for example, because even if I learned the alphabet, I don't recognize the word easily before piecing together all the letter clusters that need to be spoken specially. (I especially hate the thing in Russian where "o" is either "o" or "a" depending on how many of those are in the word. It slows my reading of Cyrillic script down to a crawl.)
Many people - probably most of them, even - don't need that. Those who think in pictures, for example, have it much easier to solve Sudoku or read foreign scripts. They don't need that much linguistic baggage to think. At the same time, when they write, they often struggle to form coherent sentences above a certain length, because they have to encode their thought process (that can be parallel and 3D) into a 1D sequence of tokens.
I don't know whether this distinction between types of thinking has any scientific basis - I'm using it as a crutch to explain some observable phenomena in human-to-human communication. I think I picked up the notion from some pseudo-scientific books I read as a teen (I was fascinated by "neuro-linguistic programming," which tends to list three distinct types of thinking: visual, auditory, and kinesthetic). It unexpectedly finds applications in human-computer interfaces, too, but LLMs have made it even easier to notice. While "the three NLP modalities" can well be bullshit, there seems to be something that differs between people, and that's where threads like this one seem to come from.
- Isn't it the other way around - people, especially when young, like to imagine themselves as someone special, so the media give them the perspective of the most special individuals they can find? Being a king, on its own, may not qualify - but the popular shows are rarely about "just" kings, it's mostly about ones who did something impressive (if evil; though I agree that last part tends to be edited out).
In fantasy literature, a hero is almost certainly either a prince or at least of royal blood; in sci-fi, he's at least a progeny of a war hero or great inventor. Even in romance slice-of-life, you'll get mysterious amnesiacs, rich CEOs children, shrewd nerds with underworld connections, etc. much more often than statistically possible - nobody wants to read about "normal people", not really (when we think we do, it's just the author writing so well that he convinced us his "normal people" are different!)
I can't rule out the possibility that this natural tendency is being exploited and manipulated in some cases, but the stories have always been about heroes, long before anyone thought of erasing anyone else's class consciousness.
- Kagi uses Yandex to improve search results for relevant queries. That's all they do.
As a company providing the service of web search, Kagi should do whatever it takes to improve search results. I imagine Yandex is the biggest and most complete index of Russian-language content - not using it would make the search results worse. The fact that Kagi still cross-references other indexes and allows users to downgrade specific results provides a check on propaganda content.
It's OK to have an opinion, and it's OK to dislike Kagi because it doesn't have the same opinion. It's wrong to mischaracterize what Kagi does, using wording that strongly suggests actions way more nefarious than giving a few dollars to a Russian company in exchange for some (anonymized) API calls.
- They use the first element. Like, it's random enough, right? :) (I mean, it still works, but goes badly for lists already sorted in reverse, etc.)
- As long as you still offer an easy way to highlight the button text.
Triple-click (at least in FF on Linux) highlights paragraphs or other block-elements contents; it should be allowed on things where a single-click does navigation. This would be very out of the way for normal users, but would allow easily and quickly highlighting (and copying) parts of the interface.
- Yeah, that's about it. Personally, I'm not sure I'd get this much out of the picture, but you can see the information is there.
> surely it can't be just three iterations?
To save others a search: you stop when the remaining sub-arrays are sorted by definition (ie. [] or [x]/size of 0 or 1).
- If I didn't know how quicksort works - and I had to learn, since for some reason in FP languages quicksort is typically next after "hello world" - I would struggle to make sense of the pictures, I think. However, it's absolutely brilliant as a memory refresher: it packs so much info in so little space that it's insanely efficient. I imagine it would pair well with a good textbook on algorithms.
- I think it's pretty clear that there are both kinds of power users: the ones who take pride in being able to learn whatever defaults there are, and the ones who take pride in being able to customize the defaults to their preference.
I don't believe either group is any more right than the other: both sides have about equal amounts of good arguments and pointless posturing. A tabs-vs-spaces situation. Fortunately, in this case, we more often than not have a choice: computing environment GUIs are still pretty personal, so everyone can just use software that follows their expectations. The problem begins when a user from one side is somehow forced to use software following the other side's ideology - but that's a separate story, and arguably it's the "being forced" part that's the actual problem.
Personally, I'm very inconsistent in this regard. There are apps that I've been customizing for more than a decade and, quite honestly, I wouldn't know how to use them were my config to suddenly stop working (Emacs, ZSH, tmux). On the other hand, there are apps I've been using for a similarly long time, but never bothered to configure (other than possibly installing a bunch of plugins): Firefox and Vim come to mind.
There are also apps that I do customize, but either only once and never touch the config again (my window manager, Awesome), or ones that I customize but only to add an escape hatch (adding "Open this file in Emacs" to all JetBrains IDEs, for example).
So from my perspective, what's essential is to have a choice: both GNOME and KDE should exist, should enjoy similar popularity, and should each focus on their favored philosophy. Let those who want to work with defaults use software where a lot of effort went into providing sane defaults (it's ok if customizability suffers), and let those who want to customize use software where significant effort went into allowing customizability (it's ok if defaults are slightly insane).
- > the same kind of approach you get from Lisp
In what way? Lisp (Common Lisp) is the most stable and unchanging language out there. If you learned it anytime after the late 80s, you still know it, and will know it until the end of time. Meanwhile, here, we hear that "a year ago" is so much time that everything changed (for the better, of course).
Or is it about needing some serious time investment to get comfortable with Lisp? Even then, once you do spend enough time that s-exprs stop being a problem, that's it; there's nothing else to be getting comfortable with, and certainly, you won't need to relearn any of that a year into the future.
I don't think AI coding and Lisp are comparable, even considering just the tone of messages on the topic (as far as I can see, "smug lisp weenies" are a thing of the ancient past).
- > I noticed myself that really large HISTSIZE
...right, I totally forgot that. Yeah, my history file is 4.5MB, and $HISTSIZE is 1M. I even wrote a Scala app[1] some time ago to collect hist files from all my machines (I used many more than the current 2, at some point), merging and deduping them once a day. Adding to that, it's 13 years old at this point, and probably has quite a few KB of mis-pasted text files in it, so I guess it makes sense it's this large. It also makes sense that processing it takes a while, especially with deduping enabled.
I'll check, but if that's the reason, then I'd be reluctant to do anything with it. Having fzf search through all my command lines dating back to 2012 is very valuable. I'll see how that would work with spooling.
Thanks for the profiling tip, I'll check it out! As mentioned, I'm not thinking of jumping ship, so I'm willing to do some digging to make the situation better :)
[1] https://github.com/piotrklibert/zsh-merge-hist
EDIT: yeah, history is the reason:
-▶ time HISTFILE=/dev/null zsh -c 'echo $ERL_AFLAGS' # variable from the end of my .zshrc -kernel shell_history enabled HISTFILE=/dev/null zsh -c 'echo $ERL_AFLAGS' 0,20s user 0,03s system 98% cpu 0,233 total - It takes 3.5 seconds for a new login shell to open on my laptop, which has a decent CPU and a fast SSD. I do have quite a few lines of config, but no oh-my-zsh and almost no plugins. I have around 2k SLOC of ZSH config.
Meanwhile, I have 22.3k SLOC of Emacs Lisp config, and Emacs starts up (granted, after lowering bytecode to native code AOT) in ~4 seconds. To me, that suggests there's something really wrong with ZSH in terms of performance - unfortunately, it's better in almost every other way compared to BASH, so I learned to live with that. Still, at least in my setup, ZSH indeed is slow, even on modern hardware. I wonder if it would even run on a 486...
- You're right, as much as I'd like not to be aware of it. Indeed, the bar is very low.
Whether heeding ChatGPT advice would be better or worse than no advice at all, I honestly cannot say. On the one hand, getting some advice would probably help in many, many cases - there's a lot of low-hanging fruit here; on the other, low-quality advice has the potential to ruin the lives of multiple people at any moment. This is like medical or lawyer advice: very high stakes in many cases. Should we rely on a model that doesn't really understand the underlying logic for advice on such matters? The "average" of parenting blogs can be a mish-mash of different philosophies or approaches glued together, making up something that sounds plausible but leads to catastrophic results years or decades later.
I don't know. Parenting is a complex problem in itself; then you have people generally not looking for advice or being unable to recognize good advice. It doesn't look like adding a hallucinating AI model to the mix would help much, but I may be wrong on this. I guess we'll find out the hard way: through people trying (or not) it out and then living with consequences (if any).
- No, the problem here is not being dead drunk and immobile; it's everything before that. Even if you drink strong alcohol, it's going to take a while before you're that intoxicated - in the meantime, you have enough time to vibe-code Windows ME, so to speak (IOW, to drunk drive, throw fists at random people or harass them, get lost and robbed, etc...). People can spend long hours being drunk before collapsing, which is basically begging for trouble, almost no matter what they decide to do during that time.
As for mental health issues worsening due to THC - that's true, but alcohol has a much higher probability of causing or exacerbating such problems. On the other hand, the therapeutic use of THC has seen much better results than alcohol. If both happen to be legal in that jurisdiction, then banning weed but not alcohol really doesn't make sense. Further, even if possession is illegal, smoking itself (without inhaling, or however that went) isn't against the law in many places.
It really just seems arbitrary and strange, unless there was a psychiatric evaluation that we're not aware of, or this happened somewhere where weed is very strictly illegal (think alcohol in Saudi Arabia-level).
- > You can't refuse to submit evidence to court, including things like encryption keys or things only stored in your head
Out of curiosity, how does this work? If I claim I don't remember a particular password that I (provably) didn't enter for the past X months, how does the court force me to recall it? With an $8 wrench? Wouldn't that be cruel (if not unusual) punishment?
- > I think sobriety is a reasonable condition of freedom for someone with psychiatric self-control issues, that have lead them to commit felonies in the past.
Were he high on weed, maybe he'd not commit the felony in the first place. Yeah, banning him from alcohol is fine, from stimulants broadly - also OK, but weed? Honestly? How often, statistically speaking, does smoking weed make a person aggressive? While this person may be an outlier, without precise information on it, I'd say the ban on weed is as sensible as a ban on butter or relanium. If it doesn't serve any obvious purpose (like with alcohol: being drunk makes you do stupid things more often), then maybe it's really just a way of harassing this person?
- If they mostly ask how to raise their children and follow the received advice... Then yeah, in some 20 years we'll see what kind of return we get. People raised on social media are one thing; people raised by (with the assistance of) ChatGPT may be even worse off because of it.
- Yes, but.
OpenResty is a platform with multiple advantages. It's fast (Nginx), it's async via stackless coroutines (no function coloring), it's again fast (LuaJIT), it's relatively easy to deploy, it's feature-rich (all the Lua packages available), and it integrates well with some other tech like Redis (also Lua-enabled).
On the other hand, Lua is an extension language. It's not designed to support large codebases. You can, of course, with enough discipline, make it work - just as you can, with enough grit, make Perl, JavaScript, Ruby, or older Python work, but you're on your own then. You need to invent your own code organization scheme and adhere to it religiously. You need to reinvent half of the stdlib that Python provides out of the box. The reinventing process extends to the need to create a set of helpers to define classes and inheritance between them, which are only provided as powerful but inconvenient primitives (metatables) in Lua.
It's incredible how much you can do with just 100 sloc in OpenRESTY - it's absolutely amazing as a component of a larger system. However, writing lengthy, uninspiring, yet complicated business logic in Lua under OpenResty is not a good idea.
What you say is true for languages that don't have collections, real arrays, or vectors, only memory ranges. This is the case of C, but not Fortran, Pascal, or Ada. So yeah, if all you have is a hammer, you'd better use 0-based nails; hopefully, though, we'll allow for non-hammer tools in popular toolboxes sometime this century.