Carlos Bueno
carlos.bueno.org · Personal blog · on HN since 2007
Carlos Bueno, a software engineer and author, writes on performance optimization, hiring, and computer science for kids.
What HN saysCommenters call his Mirrortocracy post the most insightful writing on recruiting and recommend his Mature Optimization book, though one adds a point on diversity.
59HN people shared it
28linked it in comments
83stories submitted
1.7Kstory points
10 months agolast shared
2007people per year2026
Most-shared posts
- 1Inside the Mirrortocracy13 people · 402 points · first shared 2014 · 204 comments on HN
- 2Mature Optimization: An Introduction10 people · 60 points · first shared 2013 · 14 comments on HN
- 3A Paper Internet (2010)6 people · 27 points · first shared 2010 · discussion on HN
- 4How Bots Seized Control of My Pricing Strategy4 people · 179 points · first shared 2012 · 48 comments on HN
- 5A little game to demonstrate timing attacks.3 people · 215 points · first shared 2011 · 68 comments on HN
- 6A Hidden Cost of Javascript3 people · 53 points · first shared 2010 · 7 comments on HN
- 7A Rosetta Stone for jQuery & YUI33 people · 41 points · first shared 2010 · 14 comments on HN
- 8What the Tortoise Said to Laurie (computer science for kids)3 people · 22 points · first shared 2011 · 13 comments on HN
- 9How to save the web3 people · 12 points · first shared 2008 · 7 comments on HN
- 10Corrupting the Youth3 people · 6 points · first shared 2010 · discussion on HN
- 11Mature Optimization Handbook (Carlos Bueno, 2013)3 people · 1 points · first shared 2013 · discussion on HN
- 12How to turn a biased coin into a Fair Coin2 people · 137 points · first shared 2011 · 47 comments on HN
- 13Predicting the Future2 people · 23 points · first shared 2010 · 15 comments on HN
- 14Hyperlogloglog2 people · 11 points · first shared 2016 · 3 comments on HN
- 15Lauren Ipsum: Computer Science for Kids2 people · 7 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
aristus · 2023-12-04
In my profile, but https://carlos.bueno.org . I also write kids books on computer science and that seems to hook some parents. ;)
oftenwrong · 2018-07-30
>Sure, some of these tomes may have been recoverable, but if they aren't historically valuable for some reason, why save it?
Future historical value is hard to predict.
Good example:
>Worse is the implication is that if something is not "sufficiently interesting", if it's not part of the story a society wants to tell about itself, it's worthless. The future disagrees about what is and is not important, and why. That's the defining characteristic of the future. No one today cares what the Rosetta Stone actually says [4], yet it is more important to us (as the key to hieroglyphics) than it was to the society that made it.
from http://carlos.bueno.org/2008/08/save-web.html
mwexler · 2017-07-26
Well worth the read. Check it out at http://carlos.bueno.org/optimization/
forgottenacc56 · 2016-09-07
The most insightful post on recruiting ever written:
http://carlos.bueno.org/2014/06/mirrortocracy.html
ReadingInBed · 2016-07-15
One critical point I feel this piece does not touch on is how diversity of experience is great in the workplace. It's a huge benefit as a developer (and obviously other professions too) to work on teams with people who have lived very different lives. The Mirrortocracy[0] covers this well, but it should be clear to us all that being exposed to different views helps refine our ideas and process.
It's partly up to us to make diversity happen. We can prioritize offers that have diverse teams, and when we get a chance to hire to value diversity of experience.
[0] http://carlos.bueno.org/2014/06/mirrortocracy.html
akkartik · 2016-02-28
One of my favorite quotes: "the future is a disagreement with the past about what is important." (http://carlos.bueno.org/2010/10/predicting-the-future.html)
kazinator · 2014-07-04
Why not link to the original directly:
http://carlos.bueno.org/2014/06/mirrortocracy.html
The original has follow-up articles on the same theme.
ajays · 2010-12-03
A much more readable, FB-free version of this is at his blog, http://carlos.bueno.org/
rgrove · 2010-03-28
"So they now have a plugin-repository and allow you to directly reference those scripts from your pages. That's great and all, except I don't want to embed external code that may change silently (or not so silently..) at any time."
YUI 3 gallery modules are hosted on Yahoo!'s CDN, and are versioned. Once a particular version of a module is on the CDN at a particular location, it will never ever change, and URLs pointing to it will always point at that exact version.
"YUI feels more like someone took the "Java" in Javascript way too seriously."
This is a common criticism of YUI 2, but have you tried YUI 3? Carlos Bueno's jQuery - YUI 3 Rosetta Stone is an excellent source for comparing common jQuery syntax and idioms with YUI 3. If you haven't looked at YUI 3 before, you may be surprised: http://carlos.bueno.org/jq-yui.html
moe · 2010-03-28
Once a particular version of a module is on the CDN at a particular location, it will never ever change, and URLs pointing to it will always point at that exact version.
Well, I still don't see the revolution. Javascript hosting is not exactly rocket science. So, okay, they have a shiny plugin store now. Great. Pig + lipstick?
you may be surprised: http://carlos.bueno.org/jq-yui.html
Thanks for that link, interesting comparison.
I'm sorry to say that I was not surprised, though. There is not a single snippet where YUI is less verbose. In every non-trivial snippet YUI is more verbose, often significantly so.
The difference may seem small in these trivial snippets but it hints at what happens in real-world codebases: YUI complexity does pile up exponentially, not so with jQuery.
keeperofdakeys · 2011-11-12
In general, if you are depending on a secret cryptographic algorithm, then you are doing something wrong. Cryptographic algorithms are horribly complicated, with many attack vectors you need to know, and prevent. Chances are, someone writing their own code isn't going to make a secure system. By using a known, secure system, it doesn't actually matter if people know what it is. A known system has been tested, and deemed to be 'secure'. If knowing the name did mean they could exploit it, then it probably isn't a good system to be using in the first place.
As an example, here is an attack you may not have considered. If you wanted to make an authentication system, you would want to compare a password with a stored password (or hash). Most people would do a byte by byte comparison of the passwords (or hashes). The problem is, a byte by byte comparison takes longer for a correct password (even if you use hashes), as the incorrect answer exits on the first compare failure. This is called a timing attack, and is an example of a side channel. Most people wouldn't even know that such an attack existed. This is why you want to use a known algorithm, because the people who wrote them know these kinds of attacks. So if people know your secure algorithm, they shouldn't be able to exploit that knowledge.
Here are two links posted here recently, which show these concepts very well. The third is an hour talk about cryptography in general, and I highly recommend…
tjalfi · 2025-01-07
As a concrete example, Carlos Bueno's Mature Optimization Handbook[0] describes how the HHVM team got substantial performance wins by reducing instruction cache misses in rarely executed code.
[0] https://carlos.bueno.org/optimization/
gregors · 2024-07-09
I think the term is Mirrortocracy
https://carlos.bueno.org/2014/06/mirrortocracy.html
pbronez · 2024-03-03
Mature Optimization by Carlos Bueno https://carlos.bueno.org/optimization/
aredox · 2024-01-23
See also: the Solitaire cipher[0] (requires a deck of cards) Geomantic charts[1], which are... kinda binary encoding and shuffling?
[0]https://en.wikipedia.org/wiki/Solitaire_%28cipher%29
[1]https://digitalambler.com/2020/05/08/how-to-construct-the-shield-chart…
Related : how to debias a biased coin[2] (aka. a Von Neumann extractor).
It is not exactly the same (randomness extractor vs. PRNG), but there are similarities[3].
[2]https://carlos.bueno.org/2011/10/fair-coin.html
[3]https://en.wikipedia.org/wiki/Randomness_extractor
I want to take this opportunity to recommend Hillel's writing and depth of analysis (on top of the quirkiness of doing it in a weird lang). Compared to the equivalent answers on stackoverflow[4], there is just no comparison.
[4]https://stackoverflow.com/questions/3919597/is-there-a-pseudo-random-n…
mdaniel · 2023-03-17
I wish I could upvote this a hundred times
The cited twitter thread, but unrolled: https://threadreaderapp.com/thread/1598923916218888192.html
Also, be aware that the linked article does not appear in the "all" list: https://carlos.bueno.org/all.html
Tomte · 2021-01-09
Acid-free paper lasts a long time. If you want it to last longer, you could try vellum.
Centuries would be achievable, and after a few hundred years you could probably just reprint it on whatever technology they have.
http://carlos.bueno.org/2010/09/paper-internet.html
https://diff.wikimedia.org/2015/06/19/meet-print-wikipedia/
https://www.heise.de/newsticker/meldung/Wikipedia-Taschenbuchreihe-gep…
https://www.heise.de/newsticker/meldung/Deutschsprachige-Wikipedia-wir…
starpilot · 2020-07-15
This is described in http://carlos.bueno.org/2014/06/mirrortocracy.html
Some companies stress interpersonal fit over technical ability, as you are initiated in "the Culture."
kosei · 2014-06-25
Seems to have been removed after the this scathing article from a few days ago:
http://carlos.bueno.org/2014/06/mirrortocracy.html
dkroy · 2013-11-19
Here are the links to the various digital formats:
[PDF] http://carlos.bueno.org/optimization/mature-optimization.pdf
[Mobi (Kindle)] http://carlos.bueno.org/optimization/mature-optimization.mobi
[ePub] http://carlos.bueno.org/optimization/mature-optimization.epub
unimpressive · 2013-09-19
>At times, it's incredibly depressing to me this is the case. How will people know about the human race if our entire culture is wrapped up in bits and bytes and discarded without a thought to their permanence? It will as though we never existed.
You may want to talk to Jason Scott or other Internet Archivers. (He mostly goes from physical to digital, but I'm sure this subject would interest him.) In the meantime have some links:
http://carlos.bueno.org/2010/09/paper-internet.html
http://ascii.textfiles.com/archives/3613
jrochkind1 · 2013-03-27
Probably pricing bots gone into some kind of boundary loop, which is a lot more interesting than a fat fingering entry mistake, and reminds us of algorithmic stock trading.
See:
http://www.michaeleisen.org/blog/?p=358
and
http://carlos.bueno.org/2012/02/bots-seized-control.html
grayrest · 2012-06-06
I don't develop phonegap apps but I'll have a go at answering this:
> I'm still confused why this matters if you are packaging your assets with the phonegap build which I would expect most people do.
Ignoring download time, loading, parsing, and evaluating 250k of javascript is not free[1].
[1] http://carlos.bueno.org/2010/02/measuring-javascript-parse-and-load.ht…
That article is on a desktop (well, laptop) processor. The timings on mobile are obviously higher. JS parse & load is mostly ignored on the desktop but I know I've read at least one article where a team was pulling down their JS as plain text and eval()ing it later to get their load times down.
lucian1900 · 2012-05-25
An interesting demo: [1]
By not doing all 3 hashes, an attacker might realise that the password they sent passed, say, 2 checks, but not the third. This discloses information about the relationship between the password the attacker just tried and the correct password.
[1] http://carlos.bueno.org/2011/10/timing.html
ehsanu1 · 2011-09-07
Interesting. In a similar vein, see the paper internet project: http://carlos.bueno.org/2010/09/paper-internet.html
yawboakye · 2014-12-01
The article could be appropriately titled to reflect this wisdom: solve every problem in whichever language is your strong suit. It's not always Java, and arguing that Java is the one-size-fits-all would earn you few friends. For web services the importance of the language is diminishing with solutions such as cache, messaging queue, etc. I'd go on a limb to say getting your cache right is the most important web service optimization.
All statements of the form "it's relatively faster to write programs in language Y than language Z" are incorrect because it disregards important parameters such as programmer experience with languages Y and Z, and whether or not it's a comparison between 2 different programmers.
Also there are some performance gains that only pay off at Twitter or Facebook scale [1]. Sometimes shaving milliseconds costs time but rakes in little to no benefits.
[1]: http://carlos.bueno.org/optimization/
jkn · 2012-12-14
This reminds me of a post by an author who had his own book's prize on Amazon decreased in a bidding war between bots [1]. It's a different matter but the post begins with this:
Before I talk about my own troubles, let me tell you about another book, “Computer Game Bot Turing Test”. It's one of over 100,000 “books” “written” by a Markov chain running over random Wikipedia articles, bundled up and sold online for a ridiculous price. The publisher, Betascript, is notorious for this kind of thing.
A story about computer science
and other improbable things.
It gets better. There are whole species of other bots that infest the Amazon Marketplace, pretending to have used copies of books, fighting epic price wars no one ever sees. So with “Turing Test” we have a delightful futuristic absurdity: a computer program, pretending to be human, hawking a book about computers pretending to be human, while other computer programs pretend to have used copies of it. A book that was never actually written, much less printed and read.
[1] http://carlos.bueno.org/2012/02/bots-seized-control.html
polymatter · 2011-10-27
I considered it in terms of teaching computer science, especially given (http://carlos.bueno.org/2011/09/ipsum.html) and (http://carlos.bueno.org/2010/07/corrupting-the-youth.html). In that frame of mind, chapter 0 exert seemed like it mentioned computer science concepts, but they weren't really explored as such. I interpreted your goal as edutainment, a noble goal, but one that fails so often it triggers a certain amount of skepticism.
Being entertaining is a tough challenge as it is. Trying to be entertaining _and_ informative, and you're unlikely to accomplish both. That was my biggest challenge as an EFL teacher - I spent most of my time planning activities trying to be engaging and informative. Even then, I'd say only ~30% of the time did I really get the balance right in my lessons and that's in an active media where I can react to the class.
If its just meant to be a bit of fun with a topic then its a different thing. Perhaps its better described as a pop sci book for children. Like how Brief History of Time didn't go into detailed maths, but gave the reader a working mental model of complex phenomena in an interesting way. Perhaps Lorem Ipsum aims to give children that mental model of computation, without any expectation that they could reasonably apply it. Is that the sort of thing you're aiming at?
Edit:
I just read through (http://carlos.bueno.org/2011/01/tortoise.html) extract you mentioned, and am a lot happier with it. You do have a really good way of…