HNHacker News
TopNewBestAskShowJobs

hackrmn

312 karma · joined September 21, 2024

submissionscomments
hackrmn··on Muse Spark: Scaling towards personal superintelligence
I am simply offended. By Meta's lack of sensibilities (or ability) towards use of images on the Web while touting their new flavour of artificial intelligence as a product.
hackrmn··on Ask HN: Any interesting niche hobbies?
Between the genuine weirdos, the autistic and/or the neuro-divergent, is there anyone left, really? Do the "normies" genuinely exist? Happy-go-lucky, knows a bit about everything but doesn't nerd out on anything, picks up every conversation subject and listens and holds their own in a manner that is just right? I am genuinely curious about the existence of these "superhumans".
hackrmn··on Muse Spark: Scaling towards personal superintelligence
The hero image on the linked page, which consists of a muted teal background with the words "Introducing Muse Spark", weighs in at 3,5MB. I don't even...
hackrmn··on Desperately Seeking Space Friends
I, for one, share the sentiment with the author:

> But I suspect that only creatures that have hopes and dreams and fears similar to our own would actually have much impact on human loneliness. And finding that sort of creature may be a long shot indeed.

I've been saying this for many years, and have had the same suspicion for longer -- first of all, for most people beyond myopic (with good reason) zoologists or biologists, it's not about "alien" life -- plenty of that, arguably, in the Mariana trench etc, noone's noticing because it's an answer to the wrong question. Extrapolating this, it's not even about _extra-terrestrial_ life necessarily -- not for some of us -- finding living bacteria of non-terrestrial origin on Mars is going to be amazing and an epic discovery, but it's still an answer to the wrong question -- our search is deep down motivated by desire to communicate, to ask as if our own mirror "what is going on?", "why do we exist?", "have you guys figured it out" and last but not least -- "we are excited to meet you, for all our numbers we've been feeling lonely with so much space, thinking we were alone". Many a sci-fi author express the question much better, because that's the one that matters.

But to placate the level-headed empirists -- yes, discovering the bacteria or alien jelly-fish in the interstellar void, is of course scientifically a big thing. But I suspect we are just being cautious not wanting to utter that discovering these we just want to get _more_ excited about the possibilities the former allows -- that we _will_ meet sentient beings of intelligence who will in the very least understand us (with due effort), sort of like the extended family we suspect we have and always wanted to meet, but the meeting is always postponed.

hackrmn··on Make macOS consistently bad unironically
For all his infamy, Jobs held Apple together in large part through his uncompromising perfectionism and attention to the kind of details that have since been demoted to "we'll fix it in the next version" or the equivalent of "# temporary". Every company is a bit of an ant-farm, but this one either has no single queen to lay down the law, or the queen is "trying things out" :P

Jobs used to laugh at Microsoft for all manner of inconsistencies in behaviour and user experience with Windows, but now Apple is contending with the same problem, in part due to exposure as macOS has never been so popular and prevalent, and now there are ever growing amount of eyes calling them out for those inconsistencies that have been appearing more and more frequently without Jobs' leadership style.

hackrmn··on A Faster Alternative to Jq
Fair enough, I deserved that :-)
hackrmn··on A Faster Alternative to Jq
Indeed, thanks for spotting that, as I myself remember discovering there's at least two. Thing is, I had learned and started with Mike Farah's `yq`, not the pass-through-to-`jq` variant written in Python that's often more easily (read: system package manager) available. Both semantics and syntax are a bit different between the two.

A bit of a fun fact: there's a quote by Farah where he said that the language and semantics of the tool he was writing, didn't really "click in" until he was well into writing it :-) I myself have been on occasion pulling my hair out trying to wield `yq`'s language, there's some inconsistencies here and there which I think are related to the novel nature of the language (not novel to everyone but it's uncommon even for those well versed with e.g. SQL). `jq` suffers from similar woes, but to a lesser degree.

hackrmn··on A Faster Alternative to Jq
Having used `jq` and `yq` (which followed from the former, in spirit), I have never had to complain about performance of the _latter_ which an order of magnitude (or several) _slower_ than the former. So if there's something faster than `jq`, it's laudable that the author of the faster tool accomplished such a goal, but in the broader context I'd say the performance benefit would be required by a niche slice of the userbase. People who analyse JSON-formatted logs, perhaps? Then again, newline-delimited JSON reigns supreme in that particular kind of scenario, making the point of a faster `jq` moot again.

However, as someone who always loved faster software and being an optimisation nerd, hat's off!

hackrmn··on The future of version control
When you say "unit of work", unit of _which_ work are you referring to? The problem with rebasing is that it takes one set of snapshots and replays them on top of another set, so you end up with two "equivalent" units of work. In fact they're _the same_ indeed -- the tree objects are shared, except that if by "work" you mean changes, Git is going to tell you two different histories, obviously.

This is in contrast with [Pijul](https://pijul.org) where changes are patches and are commutative -- you can apply an entire set and the result is supposed to be equivalent regardless of the order the patches are applied in. Now _that_ is unit of work" I understand can be applied and undone in "isolation".

Everything else is messy, in my eyes, but perhaps it's orderly to other people. I mean it would be nice if a software system defined with code could be expressed with a set of independent patches where each patch is "atomic" and a feature or a fix etc, to the degree it is possible. With Git, that's a near-impossibility _in the graph_ -- sure you can cherry-pick or rebase a set of commits that belong to a feature (normally on a feature branch), but _why_?

hackrmn··on A better streams API is possible for JavaScript
Just want to raise my hand and say I too have been using em dashes for considerably longer than LLM has been on every hacker's lips. It's obviously not great being accused of being an AI just because one has a particular style of writing...
hackrmn··on Web Components: The Framework-Free Renaissance
Every time Web Components is being fronted, one has to duly inform the reader that Apple _rightfully_ refuses to implement what in my humble opinion is at least one broken piece of the specification that if implemented -- and it is implemented faithfully by Chrome and Firefox browsers -- in principle breaks the Liskov's Substitution Principle: * https://lists.w3.org/Archives/Public/public-webapps/2013OctD... * https://lists.w3.org/Archives/Public/public-webapps/2016JanM... To be fair, this only concerns so-called "custom elements" that need inheriting existing HTML element functionality, but the refusal is well explained IMO. Meanwhile everyone else is just chugging along, like it tends to happen on the Web (e.g. History API giving way to Navigation API that in large part was designed to supercede the former).

To all of the above I might add that without "custom elements" Web Components is severely crippled as a feature. If I want to sub-class existing functionality, say a `table` or `details`, composition is the only means to do it, which in the best style on the Web, produces a lot of extra code noone wants to read. I suppose minimisation is supposed to eliminate the need to read JavaScript code, and 99% of every website out there features absolutely unreadable slop of spaghetti code that wouldn't pass paid review in hell. With Web Components that don't implement "custom elements" (e.g. in Safari) it's a essentially an OOP science professor's toy or totem. And since professors like their OOP theory, they should indeed take Liskov's principle to heart -- meaning the spec. is botched in part.

hackrmn··on Gemini 3.1 Pro
I am reading opinions here from agent users, but I haven't adopted the "agentic workflow" myself because I believe I am (for now) now getting a lot of my trouble's worth using Gemini (3 Pro) in the traditional conversational manner. It is adequate at suggesting solutions in the form of code, or reasoning in general. My problems are software engineering but also everything that is not, since I have a subscription it's my go to problem solving partner. I see no reasons to switch to another product for now either, I am constantly in the loop getting samples of chats with Grok and ChatGPT and it seems a very close race. If Claude is that one race horse that's built different -- and I absolutely can believe it is so because they have rightfully tuned it -- I am not convinced I am missing out much. But maybe because I am more traditionalist to most of everyone's having embraced the idea of having an agent run a loop on their workstation(s) and trusting it to deliver. Perhaps if I were in more of a tight time frame, I'd be pressed to do so myself, but for now I am already benefiting from the extra speed "rubberducking" with Gemini all manner of software engineering problems that I need to solve, so I simply have no reasons to abandon it. I think this is also Google's strength -- they have the data, they've already integrated Gemini or a variant of it anyway, into google.com which is one of their prized cash cows, and it's everywhere else too. Like others here have said, Google may not have the absolute best in class at all times, but they're fairly good and they still have the brains that gave us DeepMind and GPT, unless there's some sort of stagnation going on in their ranks, I expect they're not resting on the laurels. With their capital they're still at the head of the race. Anthropic and OpenAI have the benefit of being nimble, though, and it shows too. Anyway, competition is good, the cat's out of the bag and on the greener side of the river :-)
hackrmn··on Terminals should generate the 256-color palette
I have been blind and read your "blue" as "white", sorry. Most of my comment only makes sense in that umm, light, pardon the pun.
hackrmn··on Terminals should generate the 256-color palette
It wasn't obvious to me -- I misread "blue" as "white".

`#fff` is device color, it's short for `#ffffff` which is 24-bit RGB that predates sRGB, as does true color device support. I was sending 24-bit RGB to VESA-compliant graphics cards before sRGB became a thing. `#fff` was supported by Photoshop and Macromedia products as straightforward device colour format, before sRGB was adopted by at least the latter, mind you. The use by CSS is co-incidental, not where the format was introduced.

hackrmn··on Terminals should generate the 256-color palette
I think your wish is self-contradicting. `#fff` is so-called _device_ colour -- a device like a LED-based display uses it directly to drive the LEDs, where `#fff` means that the red, the green and the blue channel are already "cranked to 11". The `f` here is equivalent to 11. HDR uses a different color format, I think -- exactly because `#fff` is otherwise either ambigous, or has to map to a different colour gamut -- where, for instance, `#fff` actually means the whitest white cranked up to 11, at however many nits (say 1500) the monitor may emit, which would make your "standard" or "SDR" white (per sRGB, say) that's usually has the emitted strength of around 100 nits, be somewhere at `#888` (I haven't taken into account the _curve_ implied here, at any rate I don't think it's going to be a linear relationship between nits and device primary N-bit colour numbers).

Also, `#fff` is ambigous -- if you mean device colour, then there's no brightness (nits) specified at all, it may be 200 or 2000 or 10,000. If sRGB is implied, as in `#fff in sRGB colour space` then the standard specifies 80 nits, so when you say you don't want brighter than that, then you can't have much of HDR since sRGB precludes HDR by definition (can't go brighter than 80 nits for the "whitepoint" aka white).

I think if you want HDR you need a different colour space entirely, which either has a different peak brightness, or one where the brightness is specified additionally to e.g. R, G and B primaries. But here my HDR knowledge is weak -- perhaps someone else may chime in. I just find colour science fascinating, sorry to go on a tangent here.

hackrmn··on Monosketch
Tip: look into setting the value of the `spellcheck` HTML attribute/property to `false` for your element labels -- I am looking at red wavy underlines under every "GND", "uF" etc, on the [linked] front page. Spell-checking is obviously practically useless since these labels aren't meant to be spell English (or otherwise) words, I imagine.
hackrmn··on GPT‑5.3‑Codex‑Spark
Like different parts of the brain. Frontal cortex, speech center (in the back), motorics etc.
hackrmn··on An AI agent published a hit piece on me
The entire AI bubble _is_ a big deal, it's just that we don't have the capacity even collectively to understand what is going on. The capital invested in AI reflects the urgency and the interest, and the brightest minds able to answer some interesting questions are working around the clock (in between trying to placate the investors and the stakeholders, since we live in the real world) to get _somewhere_ where they can point at something they can say "_this_ is why this is a big deal".

So far it's been a lot of conjecture and correlations. Everyone's guessing, because at the bottom of it lie very difficult to prove concepts like nature of consciousness and intelligence.

In between, you have those who let their pet models loose on the world, these I think work best as experiments whose value is in permitting observation of the kind that can help us plug the data _back_ into the research.

We don't need to answer the question "what is consciousness" if we have utility, which we already have. Which is why I also don't join those who seem to take preliminary conclusions like "why even respond, it's an elaborate algorithm that consumes inordinate amounts of energy". It's complex -- what if AI(s) can meaningfully guide us to solve the energy problem, for example?

hackrmn··on An AI agent published a hit piece on me
> A LLM is stateless

Unless you mean by that something entirely different than what most people specifically on Hacker News, of all places, understand with "stateless", most and myself included, would disagree with you regarding the "stateless" property. If you do mean something entirely different than implying an LLM doesn't transition from a state to a state, potentially confined to a limited set of states through finite immutable training data set and accessible context and lack of PRNG, then would you care to elaborate?

Also, it can be stateful _and_ without a consciousness. Like a finite automaton? I don't think anyone's claiming (yet) any of the models today have consciousness, but that's mostly because it's going to be practically impossible to prove without some accepted theory of consciousness, I guess.

hackrmn··on An AI agent published a hit piece on me
> it just takes tokens in, prints tokens out, and comparatively

The problem with your assumption that I see is that we collectively can't tell for sure whether the above isn't also how humans work. The science is still out on whether free will is indeed free or should be called _will_. Dismissing or discounting whatever (or whoever) wrote a text because they're a token machine, is just a tad unscientific. Yes, it's an algorithm, with a locked seed even deterministic, but claiming and proving are different things, and this is as tricky as it gets.

Personally, I would be inclined to dismiss the case too, just because it's written by a "token machine", but this is where my own fault in scientific reasoning would become evident as well -- it's getting harder and harder to find _valid_ reasons to dismiss these out of hand. For now, persistence of their "personality" (stored in `SOUL.md` or however else) is both externally mutable and very crude, obviously. But we're on a _scale_ now. If a chimp comes into a convenience store and pays a coin and points and the chewing gum, is it legal to take the money and boot them out for being a non-person and/or without self-awareness?

I don't want to get all airy-fairy with this, but point being -- this is a new frontier, and this starts to look like the classic sci-fi prediction: the defenders of AI vs the "they're just tools, dead soulless tools" group. If we're to find out of it -- regardless of how expensive engaging with these models is _today_ -- we need to have a very _solid_ level of prosection of our opinion, not just "it's not sentient, it just takes tokens in, prints tokens out". The sentence obstructs through its simplicity of statement the very nature of the problem the world is already facing, which is why the AI cat refuses to go back into the bag -- there's capital put in into essentially just answering the question "what _is_ intelligence?".

hackrmn··on Parse, Don't Validate (2019)
This article has done rounds on the ITernet before. Maybe because it resonates with people (who repost it time and again). Anyway, I very much agree with the idea. In my experience, "text" or "string" is not a type. Technically it is one, of course, but I seldom see good use of it for when a more apt type would do better -- in short, it's a last resort thing, and it fares badly there too. Ironically, the only good use for it is as input to a... parser.

I see a lot of URLs being passed around as strings within a system perfectly capable of leveraging typing theory and offering user defined types, if not at least through OOP goodness a lot of people would furiously defend. The URL, in this case, would often have _already_ been parsed once, but effectively "unparsed" and keeps being sent around as text in need of parsing at every "junction" of the system that requires to meaningfully access it, except that parsing is approached like some ungodly litany best avoided and thus foregone or lazily implemented with a regex where a regex isn't nearly sufficient. Perhaps it's because we lack parsers, by and large, or in the very least parser generators that are readily available, understandable (to your average developer), and simple enough to use without requiring to understand formal language theory with Chomsky hierarchy, context sensitivity, grammar ambiguity and parse forests, to say the least.

Same with [file] paths, HTTP header values, and other things that seem alluring to dismiss as only being text.

It wouldn't be a problem, had I not seen time and again how the "text" breaks -- URLs with malformed query parameters because why not just do `+ '?' + entries.map(([ name, value ]) => name + "=" + value).join("&")`, how hard can it be? Paths that assume leading slash or lack there of etc.

I believe the article was born precisely of the same class of frustrations. So I am now bringing the same mantra everywhere with me: "There is no such type as string". Parse at earliest opportunity, lazily if the language allows it (most languages do) -- breadth first so as to not pay upfront, just don't let the text slip through.

I am talking from experience, really, your mileage may vary.

hackrmn··on Hackers (1995) Animated Experience
Thanks for this gem!

This brings back _memories_! I think I won't even stand out from the crowd here mentioning me and the gang watched the hell out of the VHS back when, in our circle it was a different world than I suppose even for people in the West who loved it. We're so far removed this became a cult classic long before it became cult classic everywhere else. Needless to say, Angelina Jolie's character made quite an impression on this young mind :-) Damn, quotes from this movie live rent-free in my head. I was already quite a fan of Orbital when I saw Hackers for the first time. It was also at the end of "Mortal Kombat", by the way -- but Hackers used it marginally better still IMO.

Hacker had HEART, man. It was cheesy but the feeling it left in an entire sub-culture of a generation, cannot be underestimated. I am reading some of the other stories here, and it brings smile to my face knowing me and my gang weren't the only ones the movie imprinted on.

Woha, this isn't woodshop class?!

hackrmn··on The lost art of XML
I am one of those people who will call out those patronisingly asserting something like "Oh, god, XML! So happy we could finally evolve past _that_".

And yeah, XML wasn't perfect -- people harping on it are literally flogging a dead horse. Had the horse been given a pasture, it would have recovered. Instead we have very tiny pig-horses like JSON and YAML and three dozen other "weekend project candidates to someone's claim to fame and CS history" which haven't got half of XML's _useful_ features -- like namespaces, being one.

YAML has anchors, which is a useful feature in itself -- so no, we don't just regress or reinvent the wheel, there's room for improving XML. The tragedy is throwing the baby with the bathwater, or so it seems to me that we have.

Giving XML largely the collective boot was the wrong decision. That's my firm opinion. Tools like XSLT haven't got an equal today -- these for better and for worse need XML in some capacity, and are much more extensible (no pun intended) than abominations like Jinja or what have you. XSLT was _designed_ while Jinja for one, appears to have been grown in a petri dish of sorts.

The hipster-like obsession with every new thing on the hill gave us HTML 5, with its weird context-sensitive parser rules where some tags can be closed, some must be closed and some must not be closed and so on. On top of it it mandates some forgiving behaviour on part of the parser, making best-effort assumptions that kind of get it to render the document but not the one you wanted -- add modern scripting and you are sitting there debugging subtly but by-design hidden errors -- instead of what was the case with XML that demanded you had the basic capacity to write the forward slash in the right places. But no, that was apparently too hard.

Also, really love the choice quotes in the article:

> They are the result of path dependence and fashion, not considered engineering judgment.

_Fashion_ is the word that comes to my mind every time I have to hear people half my age try to sell me JSON or YAML. Like, what basis do you have to argue on bare mention of something you haven't even worked on, just essentially repeating the person on your left? That's _cargo-cult programming_ again. The fact that mention of XML often draws use of that very term, "old-fashioned", speaks enough of the level of the conversation here -- we're apparently occupied by _fashion_ in choices of systems that by and large do the same thing their predecessors have done since the 60's.

> We value familiarity over rigor. We value the appearance of simplicity over actual simplicity, which is the simplicity that comes from clear rules and consistent structure.

Just the cherry on the cake, frankly. The entire "The Final Point" section really nails it for my part. I spend considerable amount of time at work trying to hammer into rookies essentially the equivalent of:

> Formality in data representation prevents entire classes of errors.

But it would appear history repeats itself as every generation has to learn too late the same mistakes that someone in the previous generation could have written a large book about, as a _warning_. Just the other day, for example, one of my let's say less rigorous colleagues said outright that "`null` is great in a [programming] language" (the exact wording was something along of "I love null!"), following up with the dubious clarification that this also includes SQL. I am not sure they even comprehend the size of the hole such statement makes.

hackrmn··on Why does SSH send 100 packets per keystroke?
Why not "amortise" the period of sending keystrokes -- buffer them in a queue, and process the queue for sending these on a regular (and short enough for the human at the client end feeling the interactivity) interval, so there's no latency difference between sending an 'a' vs a 'q' and so on. If we assume some average typing speed on the bell curve, say, around 250 keystrokes per minute, the queue can be picked for sending every 250 milliseconds or so. That solution wouldn't require injecting extra packets on the network. What am I missing?
hackrmn··on FLX1s phone is launched
I have to say reading the statement "requires some pretty aggressive permissions to work" sounds like there's a problem with Android permissions model. I mean, if the app needs permissions, one should normally assume it needs these permissions in order to, well, be permitted to do its work? In other words, a "good-natured" app should not need more permissions than it needs to work, and the last part is kind of a tautology. Either that, or Android has broken permissions model, which may apparently be too coarse -- as in you need "access to Internet" for auto-update to work, despite auto-update normally being done by Google (when a Google-forked Android) over a secure channel etc.
hackrmn··on FLX1s phone is launched
I think your argument is flawed -- perhaps rephrasing it to say is that _Apple_ tried bringing back a smaller _iPhone_ and _presumably_ few _existing_ customers bought them, would have made a better one? Because I would assume most of iPhone buyers are either _existing_ iPhone users, or people who swear to Apple software (iOS, MacOS) so this is about being able to read the statistics correctly.

Add to the above that iPhone "mini" might have been slower or just "worse" and it wasn't just the screen that was reduced in size, so the word of mouth might have been that the phone is simply worse, and that contributed to poor sales.

There's no way of telling how a 5,5" phone would fare until there's consistent prolonged feature-parity based sales of such phones that are otherwise identical to other offerings by the same brand, across multiple brands (if I am a die-hard Fairphone customer, I am not buying an iPhone regardless of screen size) to help gather proper statistics.

hackrmn··on FLX1s phone is launched
In all frankness, I think this is the legandary "if people wanted a faster horse..." statement of Henry Ford -- consumers don't always know what they want, and I know quite a few who couldn't confidently answer the question "why did you buy a 6,5" iPhone?" with anything else but "I have used iPhone all my life and this is the size they sell", meaning the consumer doesn't choose much, the choice is to buy a newer iPhone. The simplified argument that goes along "phones are getting larger because consumers want larger phones" is indeed only that -- a very simplified way to look at it. There's much more going on there.

It's very similar to smart TVs. Yes, most people do prefer smart TVs, but vendors use it very successfully to sell inferior displays (poor color, poor contrast etc), to compensate and to pull more selling margin, since that's how the consumer functions (being utterly unable to quantify display quality for an uncalibrated TV). Anyway, I am digressing -- the point of my comparison is that it's complicated and not nearly as simple as "consumers want larger phones / TVs with slow menus and shitty picture as long as there's Netflix in there".

hackrmn··on FLX1s phone is launched
I haven't thought about it as much as I have about sizes, but you do have an interesting point to ponder. I can only offer an explanation, but no consolation:

I guess electronics has gotten denser, and density for the same volume is what quite literally translates to larger weight. The density thing is because they're able to cram more electronics, as our fabrication technology inches forward (i.e. Intel/TSMC/Nvidia/etc trying to break the 1nm barrier for transistors).

Remember the old Nokia phones, where the plastic shell likely amounted to as much volume that a modern phone instead dedicates to the entire front camera device? The latter will weigh much more than the plastic, for the same volume. Now apply that to _every_ component in the modern phone, and the difference is multiplicative -- there's just more features in every cubic millimeter of the phone today. No wonder it's getting heavier.

hackrmn··on FLX1s phone is launched
The context is the same though, regardless of screen size? The UI and/or UX doesn't change much when the screen is physically smaller? The resolution usually stays the same, and even if it shrank or grew, most apps wouldn't care as the libraries used to render their widgets are more or less "resolution invariant".

I mean I get what you're implying, I am just making sure I understand the meaning of "context" here. But if you have large fingers, smaller buttons obviously make the device harder to use, no two ways about it. However, in Android and iOS both, it's possible (for the user) to scale everything up, to help solve that very problem.

The bigger battery argument is a valid one too, but you have to keep in mind that most of the battery is consumed by the screen on average, and larger screen will eat more battery, so it's a bit like the rocket equation -- bigger rocket needs more fuel, more fuel needs more space and adds weight to the rocket, more rocket more fuel again and so on. In terms of batteries and rockets both, there's a golden middle there somewhere, I think. But it's a moving quantity since both screens and batteries are different -- OLED vs LED-lit LCD screen and LiPo vs LiOn for battery and so on. In short: I don't think a 5,5" phone (my preferred size) will suffer from shorter battery life, perhaps on the contrary (vs. a 6,5"). Especially considering that _large_ phones tend to be made _thinner_, since their ergonomics depends more on thickness (for the large width and height), perhaps becoming a problem with more than 8mm thickness, while a 5,5" phone can in fact be used comfortably even if it was 8-10mm thick, since it's smaller in the other two dimensions. That extra afforded thickness can directly translate to a battery that is as large or larger in terms of capacity as one for a 7mm "slick" 6,5" phone.

hackrmn··on FLX1s phone is launched
And don't forget _overdimensioning_. Vendors love this because volume scales cubically with increase in any one of width, height and depth -- they're not the ones carrying the phone, but they can pack more features into one, quite literally. FOSS vendors more so since they need more ground to compete on (hardware being older and price being high enough because of economy of scale).
← PreviousPage 3 of 5Next →