Mozilla IRC Blarg (Chris Ruch)
exple.tive.org · Personal blog · on HN since 2011
Chris Ruch's personal blog covers programming culture, Mozilla's IRC server, film aesthetics, and essays on why zero-based indexing exists.
What HN saysHN links it for the zero-based indexing essay and the Mozilla IRC post; commenters also recommend the Bourne aesthetic essay, though one disputes its tone.
98HN people shared it
29linked it in comments
99stories submitted
2.1Kstory points
3 months agolast shared
2011people per year2026
Most-shared posts
- 1The origin of zero-based array indexing25 people · 176 points · first shared 2013 · 107 comments on HN
- 2Mozilla is giving up on their IRC server12 people · 378 points · first shared 2019 · 360 comments on HN
- 3The Shape of the Machine5 people · 4 points · first shared 2020 · discussion on HN
- 4The Jason Bourne Aesthetic4 people · 207 points · first shared 2015 · 132 comments on HN
- 5Navigational Instruments4 people · 9 points · first shared 2020 · discussion on HN
- 6Falsehoods programmers believe about economics (2016)3 people · 69 points · first shared 2016 · 64 comments on HN
- 7Control Keys – our keyboard is wasting keys3 people · 6 points · first shared 2018 · discussion on HN
- 8Why Don't You Just (2019)3 people · 6 points · first shared 2021 · 4 comments on HN
- 9Where do null-terminated strings come from3 people · 6 points · first shared 2020 · discussion on HN
- 1080x252 people · 204 points · first shared 2019 · 129 comments on HN
- 11Candidates for Mozilla's IRC Successor2 people · 186 points · first shared 2019 · 211 comments on HN
- 12Durable Design (2017)2 people · 155 points · first shared 2018 · 42 comments on HN
- 13Fifty Years of Diff2 people · 111 points · first shared 2024 · 14 comments on HN
- 14Hostage Situation2 people · 10 points · first shared 2015 · 2 comments on HN
- 15Consequences of Code2 people · 6 points · first shared 2020 · 1 comments on HN
What HN people wrote when they linked it
ceilingcorner · 2020-12-07
I think you will find this essay insightful, specifically the part comparing Bond to Bourne:
http://exple.tive.org/blarg/2015/09/20/bourne-aesthetic/
anotherevan · 2019-09-08
Followup to "Mozilla is giving up on their IRC server"
http://exple.tive.org/blarg/2019/04/26/synchronous-text/
https://news.ycombinator.com/item?id=19763276
shmageggy · 2013-10-23
The post he mentions is a really good read. http://exple.tive.org/blarg/2013/10/22/citation-needed/
It was submitted here yesterday but got no love.
https://news.ycombinator.com/item?id=6595521
edit: fixed link
haberman · 2013-10-23
The article linked from this plus page (http://exple.tive.org/blarg/2013/10/22/citation-needed/) poses the question "why do programmers start counting at zero?" and then shows contempt towards anyone who thinks they know the answer (while dismissing Dijkstra as "incoherent", without argument).
To the author, the correct way to answer this question is by investigating the history of how things happened to end up the way they are, which (apparently) no one besides him has ever done.
While history is interesting, I think the much more important question is: why ought we to count from zero (or not)? And the answer to that question has nothing to do with history.
In addition to Dijkstra's argument, mentioned elsewhere in this thread, 0-based addressing is more efficient (since it can be used directly as an offset, without having to bias it first).
As much as I like Lua, its 1-based indexing is not my favorite part of that language. In particular, the numeric for loop is confusing, because the loop:
for i=x,y do
-- stuff
end
...will execute (y-x+1) times, not (y-x) as it would in most languages, like Python:
for i in range(x,y):
# stuff
Off-by-one errors are some of the most annoying bugs. 0-based indexing and half-open ranges help avoid them in my experience.
keiferski · 2023-11-25
I’m no fan of Binance, but to label them as Bond villains while spending zero effort on trying to understand the ideology behind cryptocurrencies (at least, what was supposed to be the ideology) and why being a distributed business without a physical address is desirable from that point of view – and not just because they’re evil greedy people (of which Binance may still be) – makes this essay not very interesting. It would have been a much better piece had the author attempted to understand the decentralization ideology and then squared that with the apparently very real crimes so widespread in crypto.
Edit: found the essay that this link reminded me of: a comparison of Jason Bourne to James Bond, from a societal perspective. A good piece to read after this original link.
https://exple.tive.org/blarg/2015/09/20/bourne-aesthetic/
patal · 2020-10-22
It's mostly about habit. Apart from that, I really enjoy this venture into the history of 0-based vs. 1-based indexing: http://exple.tive.org/blarg/2013/10/22/citation-needed/
> the technical reason we started counting arrays at zero is that in the mid-1960’s, you could shave a few cycles off of a program’s compilation time on an IBM 7094. The social reason is that we had to save every cycle we could, because if the job didn’t finish fast it might not finish at all and you never know when you’re getting bumped off the hardware because the President of IBM just called and fuck your thesis, it’s yacht-racing time.
znpy · 2020-09-01
Too easy to dismiss the point with some philosophy.
Consider this: http://exple.tive.org/blarg/2020/08/31/consequences-of-code/
One line is significant: "three errors are an operational mistake, four hundreds are a company policy".
The point is simple: if your employer is doing unethical stuff then you are affiliated and related, sometimes responsible too, for such things.
Either you quit or at least have the decency to say "yeah it's wrong and everything but I get a fat paycheck every month and that settles it for me".
gsnedders · 2020-07-04
With Signed HTTP Exchanges, for Google to modify the content that is served, Google would need access to a private key for a certificate for nytimes.com, no? Either nytimes.com has handed over that key or Google would have to create a key/certificate for nytimes.com. Believing Google would maliciously issue certificates seems a stretch to me.
I don't like AMP nor much of how Google has behaved with it (http://exple.tive.org/blarg/2020/05/05/the-shape-of-the-machine/ largely matches my thoughts), but let's stick to what's actually happening with SXG.
detaro · 2020-03-03
If I remember the documentation around the decision to switch correctly, having enforced sign-in for moderation was on the requirements list.
EDIT found it:
> While we’re investigating options for semi-anonymous or pseudonymous connections, we will require authentication, because:
> The Mozilla Community Participation Guidelines will apply, and they’ll be enforced.
http://exple.tive.org/blarg/2019/04/26/synchronous-text/
(Don't ask me why the article seems to pretend IRC has to be unauthenticated)
Arathorn · 2020-02-21
jandem · 2019-12-19
For background, see http://exple.tive.org/blarg/2019/04/26/synchronous-text/
evacchi · 2019-10-24
from the same author, why arrays are zero-based http://exple.tive.org/blarg/2013/10/22/citation-needed/
floatingatoll · 2019-09-13
The previous post explains why IRC is ‘broken’, so to speak. http://exple.tive.org/blarg/2019/05/14/the-next-part-of-the-process/
Chlorus · 2019-09-11
Because it's very not not broken, and here's the reasons why:
http://exple.tive.org/blarg/2019/04/26/synchronous-text/
vthriller · 2019-06-07
Here's an example from Mozilla:
> While we still use it heavily, IRC is an ongoing source of abuse and harassment for many of our colleagues
http://exple.tive.org/blarg/2019/04/26/synchronous-text/?s
https://news.ycombinator.com/item?id=19763276
spicytunacone · 2019-05-08
«While we still use it heavily, IRC is an ongoing source of abuse and harassment for many of our colleagues and getting connected to this now-obscure forum is an unnecessary technical barrier for anyone finding their way to Mozilla via the web. Available interfaces really haven’t kept up with modern expectations, spambots and harassment are endemic to the platform, and in light of that it’s no coincidence that people trying to get in touch with us from inside schools, colleges or corporate networks are finding that often as not IRC traffic isn’t allowed past institutional firewalls at all.»
https://news.ycombinator.com/item?id=19763276
http://exple.tive.org/blarg/2019/04/26/synchronous-text/
prolepunk · 2019-03-29
Uber is not a business. It's a dumping attack on the service sector.
http://exple.tive.org/blarg/2017/05/01/wooden-shoes-as-a-service/
Putting aside about how good this investment from economic standpoint, I don't feel like investing just to exploit people working in service industry.
I think the general belief was that lyft is a bit less sexually harras-y, a bit less misanthropic business, but since they have basically the same business model as Uber, does that distinction really matters?
hopler · 2018-12-18
What is 0 minus 1? Why isn't that a natural number? Why shouldn't the nth natural number be N?
The author's own book discusses the 1st prime, in chapter 0, which begins on page 1. How is this natural?
Problem 0.4 Add the odd numbers between 1 and 30."
Why would you say 1 and 30 instead of 0 and 30, since 0 is natural?
Getting hung up on notation and arguing over conventions will hold you back from learning math.
Offsets (0) and ordinals
(1) aree both useful in arrays. The only thing wrong* is not saying which you mean.
http://exple.tive.org/blarg/2013/10/22/citation-needed/
SiempreViernes · 2018-08-16
No, C got that from B that got it from BCPL, which has that notation to compile faster:
http://exple.tive.org/blarg/2013/10/22/citation-needed/
kgwgk · 2018-08-09
> the technical reason we started counting arrays at zero is that in the mid-1960’s, you could shave a few cycles off of a program’s compilation time on an IBM 7094. The social reason is that we had to save every cycle we could, because if the job didn’t finish fast it might not finish at all and you never know when you’re getting bumped off the hardware because the President of IBM just called and fuck your thesis, it’s yacht-racing time.
http://exple.tive.org/blarg/2013/10/22/citation-needed/
Avshalom · 2017-10-14
There's the very real possibility that zero based indexing is in fact a Yacht Racing artifact.
http://exple.tive.org/blarg/2013/10/22/citation-needed/
jepler · 2016-03-05
eventually, the text loaded. the meat of the article is a link to http://exple.tive.org/blarg/2013/10/22/citation-needed/ and the point of the article is that most of us know a just-so story about why C indexing is the way it is; the true story might not even be written down.
Unfortunately, I don't think the underlying story at tive.org is shedding much light on the subject. For instance, it implies a rather doubtful analogy between multiuser systems and malloc(). Its other main assertion, that the interpretation of v!i as doing zero-based indexing helped compile time rather than runtime efficiency is essentially unsupported. And I still don't understand what any of this had to do with the program for yacht handicapping.
chrispeel · 2015-09-27
For those who don't like one-based indexing, your problem is solved: there is now a package which provides two-based indexing https://github.com/simonster/TwoBasedIndexing.jl ;-)
Edit: For a history of 0-based indexing see http://exple.tive.org/blarg/2013/10/22/citation-needed/ My understanding is that with modern compilers, there's no need for 0-based indexing; you can use 0-base, 1-base, or 69-base indexing as you prefer. 0-base is applicable to people creating chips or writing hardware drivers. Most scientific programmers are not so closely tied to hardware; 1-based indexing is one of the things that helps make Julia more accessible to high-school programmers or PhD students who don't want to learn binary arithmetic.
silentbicycle · 2014-02-03
You might want to read this, then: http://exple.tive.org/blarg/2013/10/22/citation-needed/
cb321 · 2025-10-17
I am not sure you'll be satisfied but this article by mhoye has a section on Watson and typewriters that seems relevant and is fun to read regardless: https://exple.tive.org/blarg/2019/10/23/80x25/
Parenthetically, I think much discussion around this neglects the constraints / true ultimate causes of human eye resolving power (in minutes of arc not DPI|millimeters) and cognitive "line tracking" (think narrow newspaper columns). I.e., they are from the perspective of device manufacturers / producers not receiving brains / consumers. At least in theory, the former is trying to please the latter after all, but eyes/brains haven't really evolved much in this respect since antiquity / the dawn of writing. This is just a pet peeve of mine that maybe you share, and clearly in the realm of 2x..4x not few% and so not on track with your question like the article I linked :-) TLDR - while a "standard viewing distance" is good enough for eye charts, I guess it's too complicated for "marketing hardware" and it's all too easy to get caught up in manufacturer framing.
jodrellblank · 2024-01-13
This is an argument which has been going on for years; "crazy paragraphs because the code is ugly" is a thoughtless low effort criticism and it doesn't deserve a steelman fleshed out rebuttal if the person hasn't put any effort in.
You say "a symbol soup with multiple paragraphs explaining what the soup does and why it is good" - honestly, do you think people write multiple paragraphs explaining the code to beginners who can't read APL every single time they write any APL? Of course they don't! Your proposal relies on "symbol soup" being a fair and accurate description, which it isn't.
And, are you suggesting that people don't write comments explaining their code in common popular languages? Of course they do! (and should)
And, are you suggesting that people don't have to learn and practise to be able to read common popular languages when they learn to program? Of course they do, look at posts around the internet on people learning Java and Rust and C# and C++ and Python asking what some code means, what some syntax means, and not only beginners, lots of people ask like "I can code but what is this syntax?" and it's a Python generator comprehension, or a ternary operator, or a C# LINQ SQL style or a pattern match or an anonymous function or a compiler hint or a documentation generator template or a generic type or a turbofish or whatever thing they hadn't seen before in their previous languages or codebases.
And, are you suggesting that comments getting out of sync with…
andai · 2019-04-27
> And when we’re talking about blind spots and invisible social access controls, of course, what we’re really talking about is privilege. “Working in the open”, in a world where computation was scarce and expensive, meant working in front of an audience that was lucky enough to go to university or college, whose parents could afford a computer at home, who lived somewhere with broadband or had one of the few jobs whose company opened low-numbered ports to the outside world; what it didn’t mean was doxxing, cyberstalking, botnets, gamergaters, weaponized social media tooling, carrier-grade targeted-harassment-as-a-service and state-actor psy-op/disinformation campaigns rolling by like bad weather. The relentless, grinding day-to-day malfeasance that’s the background noise of this grudgefuck of a zeitgeist we’re all stewing in just didn’t inform that worldview, because it didn’t exist.
http://exple.tive.org/blarg/2018/11/09/the-evolution-of-open/
vanderZwan · 2018-07-16
I'm reminded of "Barbiephonic (redux)"[0], although it's only related in the sense that through this story I found yet another story involving Barbie and crypto[1].
> And the other thing lying around on those open shares were recordings of names. To reach a wide audience they’d recorded some unstoppably perky young woman reciting kids’ first names, Aaron, Abbot, Abby, Abigail, Adana, Adena, in an upbeat barbie-girl voice, every single one. And there I was with a pile of free disk space, university bandwidth, wget and why not.
> There were seventeen thousand of them.
> After a bit of experimentation, I figured out how to stitch them all together with .4 seconds of silence between each. The resulting audio file was almost five hours long; four hours and forty five minutes of relentless Barbiedoll voice reciting seventeen thousand first names in alphabetical order.
> To my knowledge, nobody has ever listened to the whole thing.
> Of the six attempts I’m aware of, four were called off when the death threats started, one due to the near-breakup of the couple making the attempt, and one person drinking themselves to unconsciousness at about the 90 minute mark. I’m not saying that to make a joke. I’m telling you because this is real and it’s an SCP-grade psychic biohazard. No highly esteemed deed was committed here; this is not a place of honour.
The "SCP-grade psychic biohazard" is not that much of an exaggeration, by the way.
[0]…