vnorilo
vnorilo on Hacker News
I find it strange that the antidotes to a lot of the bad stuff going on today is basic enlightement stuff: cultivating a citizenry who value evidence-based worldview, education and rule of law. Yet it feels like that is increasingly slipping from our fingers.
I use LLMs at work without much thought by now. I'm also contributing a little bit to Sourcehut and keep my personal projects there.
While I'm not necessarily in the "LLMs are evil" camp, I find I respect this position a lot. I wish more people would do what they feel is right, even if that's going to result in a backlash from those who disagree.
When it comes to my personal projects, I realize I haven't really touched many of them in the LLM age. In a way, AI has made me uninterested in programming. This might actually be a nice demarcation line: keep my free range organic code on sourcehut and actively not use AI for my personal stuff. After all, LLMs (may) mostly help with speed (sometimes) - which was never the issue for the stuff I create "just because".
Totally agreed; I was talking from the POV of someone designing an iOS app. Apple could fix a lot of this jank with better design, individual apps less so.
Screenshot and share functionality get massively overloaded on iOS, but it's not because a product person / designer lacks the necessary taste, vision or "courage". It's because the OS is not capable of composing apps well: "I want to X, but with Y". As a result, functionality like screenshots, sharing, clipboard get overloaded with all kinds of adhoc half-baked workflows to work around the single app mindset.
If solutions come naturally to you in OOP, why not just roll with it?
Personally I find it easiest do design data flows: think about what we need in order to compute the result. The less I have to think about state the better. Functional patterns fall out and it feels simple and easy to me, so I do it. I'm way over the phase I thought that's somehow cooler than the OOP folks, however.
When you need a configuration step, cmake will actually save you a lot of time, especially if you work cross platform or even cross compile. I love to hate cmake as much as the next guy, and it would be hard to design a worse scripting language, but I'll take it any time over autoconf. Some of the newer tools may well be more convenient - I tried Bazel, and it sure wasn't (for me).
If you're happy to bake one config in a makefile, then cmake will do very little for you.
Posted by
vnorilo on Wednesday April 08, 2026 @12:46PM
from the github.com dept.
Posted by
vnorilo on Tuesday March 24, 2026 @04:20PM
from the futuresearch.ai dept.
The wireless used for pro audio is never bluetooth, however.
Indeed, which is not all that different from LLM code generation, to be honest.
Yes. LLMs are search engines into the (latent) space or source code. Stuff you put into the context window is the "query". I've had some good results by minimizing the conversational aspect, and thinking in terms of shaping the context: asking the LLM to analyze relevant files, nor because I want the analysis, but because I want a good reading in the context. LLMs will work hard to stay in that "landscape", even with vague prompts. Often better than with weirdly specific or conflicting instructions.
When something is hundreds of megabytes, it is very unlikely to be mostly compiled code. A lot of that fits in each megabyte.
Probably true for many. When thinking about hard problems I'm usually not thinking in language, at least not the kind we speak between us humans, so it can be incredibly distracting if I have to "translate" back and forth while both thinking and communicating.
>I seriously doubt anyone who has written projects in assembly would make such comparisons...
With genuine respect, I believe this type of insinuation is rarely productive.
Someone might still have silly opinions, even if they have been paid to write assembly for 8-24-64 bit cisc, risc, ordered and out of order ISAs, and maybe compilers too. Peace :)
sure, I was thinking of large OO cores. "Correspondd to the instructions the cpu runs and their observable order" is how I'd characterize C as well, but to each their own.
I have empathy for this having written compiler passes for 10ish years of my career. But as I've studied register renaming, speculative branch prediction and trace caches I would no longer agree with your last sentence. It's fine though, totally just an opinion.
And yet modern assembly does not correspond 1:1 to the micro-ops the CPU runs or even necessarily the order in which they run.
Both ISA-level assembly and C are targeting an abstract machine model, even if the former is somewhat further removed from hardware reality.
When I was in third grade, I decided I want to make computer games to get more of them. Dad got me started with GW-Basic turtle graphics and I made pictures with them - usually non-functional title screens for my games.
At some point I had made a small space ship and was able to make it turn around with the wonderful angle command [1]. However, I could not figure out how to make it move "forward" regardless of the angle.
I was also attending an after hours computer graphics club, mostly about Deluxe Paint, taught by a 20-something student (who much later went on to found a GPU company and got acquihired by ATI/AMD). He would help me occasionally, and in this case he took a tiny slip of paper and wrote down a couple of lines about sin and cos. No questions, no explanations, no gatekeeping.
Just like that I internalized this foundational piece of trig - later when it arrived in school maths it was easy and obvious for me. I had a practical application, but even more I think was because it started as a need I had, and when given to me, felt like a gift and an enabler.
Still much later I studied Seymour Papert's pedagogy and understood I had lived it. I consider myself fortunate.
1: http://www.antonis.de/qbebooks/gwbasman/draw.html
Finnish has been very peripheral and isolated due to geography. It is closely related to Estonian, but remains much more similar to their common archaic root, while Estonian has streamlined and developed due to more contact and exchange.
(Disclaimer: Finn)
Posted by
vnorilo on Wednesday July 30, 2025 @01:25PM
from the youtube.com dept.
In my experience search engines have rapidly deteriorated - probably because of the SEO arms race - and LLMs often feel like search engines used to feel back when they worked. Who knows what will happen once all the marketing attention shifts towards influencing LLM output.
Posted by
vnorilo on Tuesday July 15, 2025 @12:44AM
from the economist.com dept.
Not in general. Immutable strings can be deduplicated, leading to a different performance tradeoff that is often quite good. This is mentioned in TFA.
For sure. Data structures and call graphs like to converge, so when designing a data model, you are actually designing the (most natural) program flow too.
Posted by
vnorilo on Sunday May 18, 2025 @06:38AM
from the economist.com dept.
I wrote blitters in assembly back in those days for my teenager hobby games. When I could actually target the 386 with its dword moves, it felt blisteringly fast. Maybe the 386 didn't run 286 code much faster but I recall the chip being one of the most mind-blowing target machine upgrades I experienced. Much later I recall the FPU-supported quadword copy in 486dx and of course P6 meeting MMX in Pentium II. Good times.
> But I don't think you can limit people's wealth and not call it communism.
In communism, an individual can not own any means of production - effectively 0% of the society's total capital. I don't think it follows that any non-communist system must permit any single individual to gain up to 100% of the society's wealth.
I don't know what the limit could look like or how to make it work, but societies commonly called capitalist already implement various brakes on free trade, from regulation to capital and immigration controls, subsidies, tariffs...
C++ monomorphises generics on demand too. That's why it can have errors specific to specialization and why template error messages spam long causal chains.
C++ compile times are due to headers. Which in case of templates result in a lot of redundant work then deduplicated by the linker.
In my mind Clojure is Lispy, Python is not, nor is Javascript.
In addition to REPL and macros, I think two other Lispy features are essential:
nil is not just the sad path poison value that makes everything explode: lisp is written so that optionals compose well.
Speaking of composing, Lisps tend to be amazing with regard to composability. This is another line that cuts between CL, Scheme and Clojure on one side, with Python and Javascript firmly on the other side in my experience.
Lisps are as dynamic a languages ever go, unapologetically.