Jekyll2023-05-01T20:37:45+00:00https://www.boramalper.org/blog/feed.xmlBora M. AlperDeveloper, Amateur Photographer, and Human After All.What I Read This Week: 2023-172023-05-01T19:41:00+00:002023-05-01T19:41:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2023-17<p>Late, again. I’m unapologetic this time: while my “weekly” cadence is getting slower, it also gives me more time to think & <em>curate</em> what exactly I want to amplify here. I’m also noticing a shift in my interests from engineering to engineering management, as evidenced by the current edition. Enjoy!</p>
<p><strong><a href="https://www.raptitude.com/2021/09/the-last-time-always-happens-now/">The Last Time Always Happens Now</a> (2021) by David Cain</strong></p>
<blockquote>
<p>It becomes clearer than ever, in other words, how great it was while it lasted, and how little the petty stuff mattered. On that last dinner, you can set aside minor issues with ease, and appreciate even the most mundane details. Anything else would seem foolish, because you’re here now, and this is it. It might even occur to you that there’s no reason you couldn’t have enjoyed it this much every time you dined here — except that all the other times, you knew there would be more times, so you didn’t have to be so intentional about appreciating it.</p>
</blockquote>
<p><strong><a href="https://www.benkuhn.net/abyss/">Staring into the abyss as a core life skill</a> (2022) by Ben Kuhn</strong></p>
<blockquote>
<p>Staring into the abyss means thinking reasonably about things that are uncomfortable to contemplate, like arguments against your religious beliefs, or in favor of breaking up with your partner. It’s common to procrastinate on thinking hard about these things because it might require you to acknowledge that you were very wrong about something in the past, and perhaps wasted a bunch of time based on that (e.g. dating the wrong person or praying to the wrong god).</p>
</blockquote>
<p><strong><a href="https://www.jefftk.com/p/growing-independence">Growing Independence</a> (2020) by Jeff Kaufman</strong></p>
<blockquote>
<p>People start out dependent on their parents for food, changing, contact, motion, and even sleep timing. Typically they end up as adults, no longer dependent on their parents at all. Part of my approach to parenting has been that I want to let my kids be as independent as possible, as early as possible.</p>
</blockquote>
<p><strong><a href="https://lethain.com/forty-year-career/">A forty-year career.</a> (2019) by Will Larson</strong></p>
<blockquote>
<p>My father retired a few years ago, having worked as a professor at the University of North Carolina Asheville for the significant majority of his adult life. Since then I’ve spent more time than expected reflecting on his retirement and his preceding career. In particular, reflecting on the idea that my career is something I can deliberately develop over a forty year horizon. Not four IPOs, not fourteen two-year stints, but forty years.</p>
</blockquote>
<p><strong><a href="https://kk.org/thetechnium/being-is-all-ma/">Being Is All Maintenance</a> (2007) by Kevin Kelly</strong></p>
<blockquote>
<p>I’ve been surprised at how much time I spend on keeping seemingly solid things – like a showerhead – going. Why would a showerhead stop working after years of working well, and no injury or disturbance on our part? Well, matter decays, and the once new inevitably falters. And when one trips, the other stuff around start to stumble. The more our household becomes an ecology of devices, all somewhat dependent on each other, the more time they require for keeping them healthy. I feel as if I am a vet for gear.</p>
</blockquote>
<p><strong><a href="https://fs.blog/chestertons-fence/">Chesterton’s Fence: A Lesson in Second Order Thinking</a> by Shane Parrish</strong></p>
<blockquote>
<p>A core component of making great decisions is understanding the rationale behind previous decisions. If we don’t understand how we got “here,” we run the risk of making things much worse.</p>
</blockquote>
<p><strong><a href="https://blog.regehr.org/archives/169">Why Take a Compiler Course?</a> (2010) by John Regehr</strong></p>
<p>Compiling Techniques (<a href="http://www.drps.ed.ac.uk/19-20/dpt/cxinfr10065.htm">INFR10065</a>) was my favourite course, ever.</p>
<p>Staring into the abyss, as Ben wrote and I shared above, not only a core skill in life but also in engineering: from building processors (<a href="http://www.drps.ed.ac.uk/18-19/dpt/cxinfr08018.htm">INFR08018</a>) to writing your own networking stack (<a href="http://www.drps.ed.ac.uk/20-21/dpt/cxinfr10074.htm">INFR10074</a>), leave no room for “magic”.</p>Bora M. AlperLate, again. I’m unapologetic this time: while my “weekly” cadence is getting slower, it also gives me more time to think & curate what exactly I want to amplify here. I’m also noticing a shift in my interests from engineering to engineering management, as evidenced by the current edition. Enjoy!What I Read This Week: 2023-092023-03-05T21:30:00+00:002023-03-05T21:30:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2023-09<p>I skipped for 6 weeks, I know. I’m sorry!</p>
<p><strong><a href="https://danluu.com/wat/">Normalization of deviance</a> (2015) by Dan Luu</strong></p>
<blockquote>
<p>The data are clear that humans are really bad at taking the time to do things that are well understood to incontrovertibly reduce the risk of rare but catastrophic events. We will rationalize that taking shortcuts is the right, reasonable thing to do. There’s a term for this: the normalization of deviance.</p>
</blockquote>
<p><strong><a href="https://medium.com/@pravse/the-maze-is-in-the-mouse-980c57cfd61a">The maze is in the mouse</a> by Praveen Seshadri</strong></p>
<blockquote>
<p>Google has 175,000+ capable and well-compensated employees who get very little done quarter over quarter, year over year. Like mice, they are trapped in a maze of approvals, launch processes, legal reviews, performance reviews, exec reviews, documents, meetings, bug reports, triage, OKRs, H1 plans followed by H2 plans, all-hands summits, and inevitable reorgs. The mice are regularly fed their “cheese” (promotions, bonuses, fancy food, fancier perks) and despite many wanting to experience personal satisfaction and impact from their work, the system trains them to quell these inappropriate desires and learn what it actually means to be “Googley” — just don’t rock the boat. As Deepak Malhotra put it in his excellent business fable, at some point the problem is no longer that the mouse is in a maze. The problem is that “the maze is in the mouse”.</p>
</blockquote>
<p><strong><a href="https://rework.withgoogle.com/blog/the-roofshot-manifesto/">The Roofshot Manifesto</a> (2016) by Luiz André Barroso</strong></p>
<blockquote>
<p>But there has been a growing perception that moonshots are the primary model for radical innovation at Google, and chiefly responsible for our greatest product and technical achievements. What I have seen during my 15 years at Google does not match that perception. I contend that the bulk of our successes have been the result of the methodical, relentless, and persistent pursuit of 1.3-2X opportunities – what I have come to call “roofshots.”</p>
<p>[…]</p>
<p>Although true moonshot leaps are rarer, particularly in mature engineering areas, we must learn how to identify and seize them. So how do we find those rare opportunities? I subscribe to the artist Chuck Close’s position that “inspiration is for amateurs; the rest of us just show up and get to work.” Moonshots tend to reveal themselves to people who chase roofshots with passion.</p>
</blockquote>
<p><strong><a href="https://lethain.com/eng-strategies/">Writing an engineering strategy</a> by Will Larson</strong></p>
<blockquote>
<p>The reason most written strategies don’t apply is because they’re actually visions of how things could ideally work, rather than accurate descriptions of how things work today. This means they don’t help you plot a course through today’s challenges to the desired state.</p>
</blockquote>
<p><strong><a href="https://yosefk.com/blog/people-can-read-their-managers-mind.html">People can read their manager’s mind</a> (2017) by Yossi Kreinin</strong></p>
<blockquote>
<p>People generally don’t do what they’re told, but what they expect to be rewarded for.</p>
</blockquote>
<p>More or less, you need to align individuals with their teams, teams with their company (against <em>institutional self-preservation</em>), and the company with its customers; tricky business!</p>
<p><strong><a href="https://www.elidedbranches.com/2017/01/how-do-individual-contributors-get.html">How Do Individual Contributors Get Stuck? A Primer</a> (2017) by Camille Fournier</strong></p>
<blockquote>
<p>Noticing how people get stuck is a super power, and one that many great tech leads (and yes, managers) rely on to get big things done. When you know how people get stuck, you can plan your projects to rely on people for their strengths and provide them help or even completely side-step their weaknesses. You know who is good to ask for which kinds of help, and who hates that particular challenge just as much as you do.</p>
</blockquote>
<p><strong><a href="http://twitchard.github.io/posts/2023-01-18-unicycles.html">Take your pragmatism for a unicycle ride</a> by Richard Marmorstein</strong></p>
<blockquote>
<p>I say the critical resource is not developer time, it’s developer energy. The “10x developer” may or may not be a myth, but it is no myth that I personally am 10x more productive on days when I am energized than on days when I am exhausted, distracted, and frustrated.</p>
</blockquote>
<p>Now if you want a counter-opinion, go read <a href="https://mcfunley.com/choose-boring-technology">Choose Boring Technology</a> (2015) by Dan McKinley:</p>
<blockquote>
<p>The problem with “best tool for the job” thinking is that it takes a myopic view of the words “best” and “job.” Your job is keeping the company in business, god damn it. And the “best” tool is the one that occupies the “least worst” position for as many of your problems as possible.</p>
</blockquote>
<p><strong><a href="https://prog21.dadgum.com/80.html">Advice to Aimless, Excited Programmers</a> by James Hague</strong></p>
<blockquote>
<p>The two keys: (1) keep it simple, (2) make it something you’d actually use.</p>
</blockquote>
<p><strong><a href="https://gist.github.com/gtallen1187/e83ed02eac6cc8d7e185">“A little bit of slope makes up for a lot of y-intercept”</a> (2012) by John Ousterhout</strong></p>
<blockquote>
<p>So I think this is a really interesting concept you can apply in a lot of different ways. And the key thing here I think is that slow and steady is great. You don’t have to do anything heroic. You know the difference in slopes doesn’t have to be that great if you just every day think about learning a little bit more and getting a little bit better, lots of small steps, its amazing how quickly you can catch up and become a real expert in the field.</p>
</blockquote>
<p><strong><a href="https://world.hey.com/dhh/how-it-started-how-it-s-going-baefaf09">How it started / how it’s going</a> by David Heinemeier Hansson</strong></p>
<blockquote>
<p>The best thing about work is getting the opportunity to exercise your human capacity for creativity, ingenuity, progress. Having a nice view is one of those “second best things”, and the gap between the two is existential. I would never contemplate to give up “the best thing”, a work life filled with engaging, challenging tasks of meaning, for more, or any!, of those “second best things”, like a nice view.</p>
</blockquote>
<p>Tidbit of the week: <a href="https://awealthofcommonsense.com/2022/12/dont-try-to-get-rich-twice-2/">Don’t Try to Get Rich Twice</a> by Ben Carlson.</p>Bora M. AlperI skipped for 6 weeks, I know. I’m sorry!What I Read This Week: 2023-032023-01-22T22:21:00+00:002023-01-22T22:21:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2023-03<p>I wrote two blogposts today:</p>
<p><strong><a href="/blog/revisiting-the-first-website-30-years-later/">Revisiting the first website 30 years later</a></strong></p>
<blockquote>
<p>All of those definitions are clear to us today, almost as if we couldn’t understand otherwise, but imagine how much effort they must have required throughout the preceding years to even be able to imagine in the first place. Project Xanadu started before the first bit-mapped displays (Plasma Display Screen of <a href="https://en.wikipedia.org/wiki/PLATO_(computer_system)">PLATO IV</a>?) were even prototyped, so when you envision that a “document” can transclude videos from another document, that’s incredibly ahead of its time.</p>
</blockquote>
<p><strong><a href="/blog/how-much-disk-space-would-everything-take/">How much disk space would everything take?</a></strong></p>
<blockquote>
<p>Two 22 TB disks at ~1,200 USD and an entry level 2-bay NAS at ~200 USD should be able to store and serve all of the movies that you may realistically ever want to watch. In the little spare capacity you have, you may squeeze a mirror of Debian for your architecture, a copy of Wikipedia, <em>and</em> a map of the world even. All in 4 litres of space (165 mm x 100 mm x 225.5 mm).</p>
</blockquote>
<p><strong><a href="https://tegowerk.eu/posts/cruel-optimism/">Cruel optimism (and lazy pessimism)</a> by Tegowerk</strong></p>
<p>I think the sign of a good work (be it an article or a movie) is the absence of absolutes: there are no definite conclusions, no heroes, no doctrines. Tegowerk captures the tension between cruel optimisim and lazy pessimism eloquently yet concisely.</p>
<p><strong><a href="https://www.schneier.com/blog/archives/2023/01/the-fbi-identified-a-tor-user.html">The FBI Identified a Tor User</a> by Bruce Schneier</strong></p>
<blockquote>
<p>There are lots of ways to de-anonymize Tor users. Someone at the NSA gave a <a href="https://www.theguardian.com/world/interactive/2013/oct/04/tor-stinks-nsa-presentation-document">presentation</a> on this ten years ago. […] It’s unlikely that the FBI uses the same sorts of broad surveillance techniques that the NSA does, but it’s certainly possible that the NSA did the surveillance and passed the information to the FBI.</p>
</blockquote>
<p>It’s not news but it’s a good thing to be reminded of: Tor isn’t about absolute privacy but more about increasing the cost of tracking.</p>
<p>It’s truly a shame that Tor is utilised only as an anonymiser, its features are perfectly suitable for gradual privacy and censorship resistance too. I wrote about this in 2021: <a href="/blog/tor-practical-privacy-and-censorship-resistance/">Tor, Practical Privacy, and Censorship Resistance</a>. What I’m really excited about are (1) its embrace by shadow libraries (e.g., <a href="https://en.wikipedia.org/wiki/Anna%27s_Archive">Anna’s Archive</a>) for censorship resistance, and (2) <a href="https://blog.torproject.org/arti_100_released/">Arti</a>, anew Tor rewrite in Rust with a stable API for embedding.</p>
<p><strong><a href="https://www.usenix.org/sites/default/files/conference/protected-files/srecon17americas_slides_reese.pdf">No Haunted Graveyards</a> (2017, PDF) by John Reese</strong></p>
<blockquote>
<p>Our job is control, not to avoid all danger at all costs. Things you’re afraid to change are serious existential risks.</p>
<p>Otherwise, superstition eats away at the edges of our world and we lose the ability to control it.</p>
</blockquote>
<p>The last sentence resonates not only in professional context but in personal one too; things you’re afraid of are serious existential risks to you.</p>
<p><strong><a href="http://www.paulgraham.com/newideas.html">Crazy New Ideas</a> by Paul Graham</strong></p>
<blockquote>
<p>But the main thing that leads reasonable people to dismiss new ideas is the same thing that holds people back from proposing them: the sheer pervasiveness of the current paradigm.</p>
<p>[…]</p>
<p>Few understand how feeble new ideas look when they first appear.</p>
</blockquote>Bora M. AlperI wrote two blogposts today:How much disk space would everything take?2023-01-22T08:00:00+00:002023-01-22T08:00:00+00:00https://www.boramalper.org/blog/how-much-disk-space-would-everything-take<p>I have a soft spot for decentralisation, independence, and self-reliance. Although I very much appreciate the convenience of just-in-time access to content, and how it better aligns with the financial incentives of content creators, I can’t help but think of an alternative that is more “local”.</p>
<p>Realistically speaking, how much disk space would “everything” take? I’m not asking how much space we would need to store a snapshot of the universe or anything that abstract. What I’m wondering is, if we were to go off the grid, how much disk space would it take to store things we may realistically want to access in a year or a decade?</p>
<table>
<thead>
<tr>
<th style="text-align: left">Collection</th>
<th style="text-align: right">Count</th>
<th style="text-align: right">Size (TiB)</th>
<th style="text-align: left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">Maps</td>
<td style="text-align: right">1,151</td>
<td style="text-align: right">0.06</td>
<td style="text-align: left">Regions with road and point-of-interest (POI) maps from <a href="https://organicmaps.app">Organic Maps</a> including all countries.</td>
</tr>
<tr>
<td style="text-align: left">Encyclopedia</td>
<td style="text-align: right">6,492,232</td>
<td style="text-align: right">0.09</td>
<td style="text-align: left">All <a href="https://en.wikipedia.org/wiki/Wikipedia:About">Wikipedia</a> articles in English including pictures.</td>
</tr>
<tr>
<td style="text-align: left">Software</td>
<td style="text-align: right">N/A</td>
<td style="text-align: right">1.9</td>
<td style="text-align: left">A mirror of <a href="https://en.wikipedia.org/wiki/Debian">Debian</a> including architectures <code class="highlighter-rouge">source</code>, <code class="highlighter-rouge">all</code>, <code class="highlighter-rouge">amd64</code>, <code class="highlighter-rouge">arm64</code>, and <code class="highlighter-rouge">i386</code>.</td>
</tr>
<tr>
<td style="text-align: left">Movies</td>
<td style="text-align: right">47,639</td>
<td style="text-align: right">39</td>
<td style="text-align: left">All 720p movies in <a href="https://en.wikipedia.org/wiki/YIFY">YIFY</a> torrents.</td>
</tr>
<tr>
<td style="text-align: left">Textbooks</td>
<td style="text-align: right">3,761,497</td>
<td style="text-align: right">51</td>
<td style="text-align: left">All non-fiction books in <a href="https://en.wikipedia.org/wiki/Library_Genesis">Library Genesis</a>.</td>
</tr>
<tr>
<td style="text-align: left">Scientific papers</td>
<td style="text-align: right">86,726,474</td>
<td style="text-align: right">73</td>
<td style="text-align: left">All scientific papers in <a href="https://en.wikipedia.org/wiki/Sci-Hub">Sci-Hub</a>, covering “85.1% of articles published in toll access journals” [<a href="https://doi.org/10.7554/eLife.32822">10.7554/eLife.32822</a>].</td>
</tr>
</tbody>
</table>
<h2 id="in-perspective">In perspective</h2>
<p>To put things in perspective, let’s take the movies collection. Let’s put the legal and moral aspect of using someone’s intellectual work without remunerating them aside in order to focus on the feasibility of hosting it for a moment. Two 22 TB disks at ~1,200 USD and an entry level 2-bay NAS at ~200 USD should be able to store and serve all of the movies that you may realistically ever want to watch. In the little spare capacity you have, you may squeeze a mirror of Debian for your architecture, a copy of Wikipedia, <em>and</em> a map of the world even. All in 4 litres of space (165 mm x 100 mm x 225.5 mm).</p>
<p>Isn’t that crazy?</p>Bora M. AlperI have a soft spot for decentralisation, independence, and self-reliance. Although I very much appreciate the convenience of just-in-time access to content, and how it better aligns with the financial incentives of content creators, I can’t help but think of an alternative that is more “local”.Revisiting the first website 30 years later2023-01-22T07:58:00+00:002023-01-22T07:58:00+00:00https://www.boramalper.org/blog/revisiting-the-first-website-30-years-later<p>I cannot remember how I stumbled upon it but when I visited <a href="http://info.cern.ch/hypertext/WWW/TheProject.html">the first website</a> that CERN still hosts up to this day, I fell down the rabbit hole and I knew I had to dedicate an entire blog post to it. The <code class="highlighter-rouge">Last-Modified</code> header of the response points at Thu, 03 Dec 1992 08:37:20 GMT so we are looking at a 30 years old document here, which is like a century in tech and literally 30% of a century anyway.</p>
<p>What made that finding so special for me is the foresights it contains, their accuracy, and the clarity with which they are explained. Perhaps I’m not doing them justice by calling their vision foresight, as if they were waiting by the sidelines and see the web evolve. On the contrary, they actively shaped an entirely new platform that is so open and so ubiquitous like no other before.</p>
<p>Let’s dig.</p>
<h2 id="hypertext">HyperText</h2>
<p><a href="http://info.cern.ch/hypertext/WWW/WhatIs.html">http://info.cern.ch/hypertext/WWW/WhatIs.html</a></p>
<blockquote>
<p>Hypertext is text which is not constrained to be linear.</p>
</blockquote>
<p>I’m not entirely sure what is meant here, but I’m guessing that it might be a reference to Ted Nelson’s <a href="https://en.wikipedia.org/wiki/Project_Xanadu">Project Xanadu</a> and its use of <a href="https://en.wikipedia.org/wiki/Transclusion">transclusion</a>; remember this was 4 years before Netscape Navigator introduced <code class="highlighter-rouge">iframe</code> et al in 1996.</p>
<blockquote>
<p>Hypertext is text which contains <a href="http://info.cern.ch/hypertext/WWW/Terms.html#link">links</a> to other texts. The term was coined by <a href="http://info.cern.ch/hypertext/WWW/Xanadu.html#Nelson">Ted Nelson</a> around 1965 (see <a href="http://info.cern.ch/hypertext/History.html">History</a>).</p>
<p>HyperMedia is a term used for hypertext which is not constrained to be text: it can include graphics, video and <a href="http://info.cern.ch/hypertext/WWW/Talks/YesWeCan.snd">sound</a>, for example. Apparently Ted Nelson was the first to use this term too.</p>
</blockquote>
<p>All of those definitions are clear to us today, almost as if we couldn’t understand otherwise, but imagine how much effort they must have required throughout the preceding years to even be able to imagine in the first place. Project Xanadu started before the first bit-mapped displays (Plasma Display Screen of <a href="https://en.wikipedia.org/wiki/PLATO_(computer_system)">PLATO IV</a>?) were even prototyped, so when you envision that a “document” can transclude videos from another document, that’s incredibly ahead of its time.</p>
<h2 id="worldwideweb">WorldWideWeb</h2>
<p><a href="http://info.cern.ch/hypertext/WWW/Summary.html">http://info.cern.ch/hypertext/WWW/Summary.html</a></p>
<blockquote>
<p>The <a href="http://info.cern.ch/hypertext/WWW/TheProject.html">WWW</a> project merges the techniques of information retrieval and hypertext to make an easy but powerful global information system.</p>
</blockquote>
<p>Here is HTTP being gently introduced for the first time as a technique of information retrieval. I recently <a href="https://news.ycombinator.com/item?id=34155794">commented</a> on a Hacker News thread that “HTTP is the new TCP”, alluding to HTTP’s ubiquity. We now live in a world where web browsers are the most used application on any computer, if not <a href="https://en.wikipedia.org/wiki/ChromeOS">the only one</a>, so if your idea doesn’t work on a web browser “you’ve lost before you’ve even begun, so don’t do something dumb like requiring a plugin.”</p>
<blockquote>
<p>Indexes are special documents which, rather than being read, may be searched. The result of such a search is another (“virtual”) document containing links to the documents found.</p>
</blockquote>
<p>The Web built itself using its own “APIs” from day 1—let’s conveniently ignore <a href="https://en.wikipedia.org/wiki/Adobe_Flash_Player">Shockwave Flash</a> here—and it’s what makes it so powerful today. Instead of externalising index, search, and navigation functionality such as <a href="https://en.wikipedia.org/wiki/Gopher_(protocol)">Gopher</a> and others, the Web built itself using the same set of tools that it offers to everyone freely.</p>
<p>What I also found interesting is the mention of <em>virtual</em> documents, referring to documents that are generated on-the-fly by servers in response to specific requests. I always thought that the Web started as a protocol to serve static content.</p>
<blockquote>
<p>The project is based on the philosophy that much academic information should be freely available to anyone. It aims to allow information sharing within internationally dispersed teams, and the dissemination of information by support groups.</p>
</blockquote>
<p><a href="https://en.wikipedia.org/wiki/Alexandra_Elbakyan">Alexandra Elbakyan</a> should be proud!</p>
<h2 id="w3-vs-wais-and-gopher">W3 vs WAIS and Gopher</h2>
<p><a href="http://info.cern.ch/hypertext/WWW/FAQ/WAISandGopher.html">http://info.cern.ch/hypertext/WWW/FAQ/WAISandGopher.html</a></p>
<p>Web took interoperability to its great advantage, read Tim’s answer to the difference between the three competing protocols and which one to choose:</p>
<blockquote>
<p>Bear in mind:</p>
<ul>
<li>A W3 client can read data from any other system.</li>
<li>If you run a W3 server you can upgrade certain parts of the documentation to hypertext later.</li>
<li>Hypertext is neat for representing existing data easily.
So install W3 clients, and W3 servers. If you want to install a Gopher or WAIS server, fine: the W3 clients will access it. If you install a WAIS server, then you could install the W3-WAIS gateway locally to save bandwidth.</li>
</ul>
</blockquote>
<p>In Cory Doctorow’s words, <a href="https://www.eff.org/deeplinks/2019/10/adversarial-interoperability">adversarial interoperability</a> is “when you create a new product or service that plugs into the existing ones <em>without the permission</em> of the companies that make them.” What’s admirable about the Web is that it didn’t only take interoperability to its advantage only to break it for others, but permeated it throughout its journey and set a new standard for “permissionless” environments where you can <a href="https://github.com/gorhill/uBlock">block ads</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/">write custom scripts</a>, or <a href="https://addons.mozilla.org/en-US/firefox/addon/to-google-translate/">translate texts</a> without the permission or help of the content authors.</p>
<h2 id="content-discovery">Content Discovery</h2>
<p><a href="http://info.cern.ch/hypertext/WWW/FAQ/KeepingTrack.html">http://info.cern.ch/hypertext/WWW/FAQ/KeepingTrack.html</a></p>
<p>From the FAQ, “how does www keep track of the available servers?” I found Tim Berners-Lee’s answer quite refreshing: links are the primary discovery mechanism first and foremost, upon which indexers and algorithms can be built. Again, I’m mesmerised by the clarity and the accuracy of their vision.</p>
<blockquote>
<p>To the reader, the web is a continuum. When a new server appears, it may serve many databases of data from different sources and on different subjects. The new data must be incorporated into the web. This means putting links to data on the new server (especially to a general overview document for the server if there is one) from existing documents which interested readers might be reading, or putting it into an index which people might search.</p>
<p>[…]</p>
<p>By the way, it would be easy in principle for a third party to run over these trees and make indexes of what they find. Its just that noone has done it as far as I know because there isn’t yet an indexer which runs over the web directly.</p>
<p>[…]</p>
<p>In the long term, when there is a really large mass of data out there, with deep interconnections, then there is some really exciting work to be done on automatic algorithms to make multi-level searches.</p>
</blockquote>
<h2 id="notification-of-new-material">Notification of new material</h2>
<p><a href="http://info.cern.ch/hypertext/WWW/DesignIssues/Notification.html">http://info.cern.ch/hypertext/WWW/DesignIssues/Notification.html</a></p>
<p>Footprints of RSS: “Does one need to bring it to a reader’s attention when new unread material is added?”</p>
<blockquote>
<p>There are two ways to make the connection between the modified material, and an interested person. One is, at the time of modification, to trace the interested parties. The other is, at some later time, for a daemon program (or a browser) to make a search for new things of interest to a given reader.</p>
</blockquote>
<p>Interestingly RSS/Atom both went with the latter option where the interested person makes a search for new things of interest periodically, whereas ActivityPub shits the onus to publishers who must <a href="https://macwright.com/2022/12/09/activitypub.html#inbox">notify</a> all their subscribers each time—notice how the push model of ActivityPub requires interested people “to be addressable on the internet” (or have an addressable intermediary).</p>
<h2 id="epilogue">Epilogue</h2>
<p>It’s important to leave some material for the discovery of the interested reader so I’ll cut my post here. Below are links to some more interesting materials on the website:</p>
<ul>
<li><a href="http://info.cern.ch/hypertext/WWW/DesignIssues/ProtocolVersions.html">From Version to Version of HTTP</a></li>
<li><a href="http://info.cern.ch/hypertext/WWW/DesignIssues/Topology.html">The topology of the web of links</a></li>
<li><a href="http://info.cern.ch/hypertext/WWW/DesignIssues/Multiuser.html">Multiuser considerations</a></li>
<li><a href="http://info.cern.ch/hypertext/WWW/DesignIssues/Navigation.html">Navigational Techniques and Tools</a></li>
</ul>Bora M. AlperI cannot remember how I stumbled upon it but when I visited the first website that CERN still hosts up to this day, I fell down the rabbit hole and I knew I had to dedicate an entire blog post to it. The Last-Modified header of the response points at Thu, 03 Dec 1992 08:37:20 GMT so we are looking at a 30 years old document here, which is like a century in tech and literally 30% of a century anyway.What I Read This Week: 2023-022023-01-15T20:58:00+00:002023-01-15T20:58:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2023-02<p><strong><a href="https://world.hey.com/dhh/we-don-t-a-b-test-core-values-91b5f562">We don’t A/B test core values</a> by David Heinemeier Hansson</strong></p>
<blockquote>
<p>Yet even that is the wrong way to look at it. Because this isn’t just about the money, it’s about running a business in a way you can feel proud about. And the only way to do that consistently is by not A/B testing your core values.</p>
</blockquote>
<p><strong><a href="https://www.federalreserve.gov/newsevents/speech/powell20230110a.htm">On central bank independence</a> by Jerome H. Powell</strong></p>
<blockquote>
<p>In a well-functioning democracy, important public policy decisions should be made, in almost all cases, by the elected branches of government. Grants of independence to agencies should be exceedingly rare, explicit, tightly circumscribed, and limited to those issues that clearly warrant protection from short-term political considerations.</p>
</blockquote>
<p>Hear, hear!</p>
<p><strong><a href="https://larahogan.me/blog/first-30-days-new-role/">How to spend your first 30 days in a new senior-level role</a> by Lara Callender Hogan</strong></p>
<blockquote>
<p>Throughout my years as a coach, I’ve seen lots of my clients land in a new leadership role as a director or above, and make a well-intentioned but enormous mistake: they make a big change within their organization before building up trust with their teams.</p>
</blockquote>
<p><strong><a href="https://blog.jim-nielsen.com/2023/subscribe-wherever-you-get-your-content/">Subscribe Wherever You Get Your Content</a> by Jim Nielsen</strong></p>
<blockquote>
<p>It’s kind of amazing: it’s not just hippie nerds talking about an open, accessible, distributed content model. People and corporations are putting real money into supporting a model that gives users all the power to browse, follow, and access whatever they want, wherever and however they best see fit.</p>
</blockquote>
<p><strong><a href="https://commoncog.com/case/iphone-keyboard/">The iPhone Keyboard - Make It or Break It</a></strong></p>
<p>A story of how autocorrect saved the day, although it’s upsetting how fast people forget things: <a href="https://en.wikipedia.org/wiki/T9_(predictive_text)">T9</a> worked fine for years on hardware that were much more limited.</p>
<p><strong><a href="https://minnie.tuhs.org/pipermail/tuhs/2017-May/011552.html">The evolution of Unix facilities and architecture</a> (2017) by Theodore Ts’o</strong></p>
<blockquote>
<p>So this is why this is a great example of “worse is better”. In Linux, ext2 was <em>incredibly</em> sloppy about how it handled write ordering—it didn’t do anything at all. But as a consequence we developed tools that were extremely good to compensate, and in practice, it was extremely rare (although it did happen on occasion) that files would get lost or the file systme could end up in a state where fsck would not be able to recover without manual intervention by a system administrator using debugfs.</p>
</blockquote>
<p><strong><a href="https://jvns.ca/blog/2023/01/13/examples-of-floating-point-problems/">Examples of floating point problems</a> by Julia Evans</strong></p>
<p>Most of those problems would cease to exist if points weren’t floating. :)</p>
<p><strong><a href="https://www.zephray.me/post/grayscale_lcd/">Grayscale on 1-bit LCDs</a> by Wenting Zhang</strong></p>
<blockquote>
<p>In conclusion, in this blog I explored and implemented various different methods of producing grayscale images on these passive matrix monochrome LCDs. In addition to use industrial standard methods, I have also tried using noise shaping technology commonly used in other applications here and got some fairly good results as well.</p>
</blockquote>Bora M. AlperWe don’t A/B test core values by David Heinemeier HanssonWhat I Read This Week: 2023-012023-01-08T16:00:00+00:002023-01-08T16:00:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2023-01<p><strong><a href="https://www.raptitude.com/2023/01/every-january-make-two-lists/">Every January, Make Two Lists</a> by David Cain</strong></p>
<blockquote>
<p>I say “spend your life on” rather than “spend time on” or “doing” because we generally don’t regard our day-to-day behaviors as things we’re choosing to spend our lives on. Actions like watching another science video on YouTube, or texting your friend to tell him you’re staying in tonight, don’t seem to carry the weight of more obviously life-defining choices like what city to live in or what career to pursue, but they can define our lives just as much. Scrolling through AskReddit threads for twenty-five minutes, if that’s a somewhat normal event in your life, does not come with a sense that you’re deciding what your life should be used for—but that is what you’re doing. How we direct our moment-to-moment energies is how we spend our days, and how we spend our days is how we spend our lives.</p>
</blockquote>
<p><strong><a href="https://luttig.substack.com/p/indexmindset">The index mindset</a> (2021) by John Luttig</strong></p>
<blockquote>
<p>This pro-index tendency pervades the private tech markets, startups, and even our culture through what I call the index mindset: a focus on preservation over creation, optionality over decisiveness, general over specific. Public companies are an obvious thing to index, but the index mindset manifests in many domains.</p>
<p>[…]</p>
<p>The index mindset is comfortable — avoiding decisions requires the least amount of effort. But if you index across every domain, you lose your differentiating features, becoming an average of everyone else.</p>
</blockquote>
<p><strong><a href="https://blog.jim-nielsen.com/2022/prototypes-and-practice/">Prototyping and Practicing</a> by Jim Nielsen</strong></p>
<blockquote>
<p>I can’t help but watch all this and think: don’t ever complain about “throwing away” prototype work. The prototypes <em>are</em> the work, which means they are part of the final product even if you threw them away materially.</p>
</blockquote>
<p><strong><a href="https://www.raptitude.com/2022/12/you-need-to-see-things-differently-to-do-things-differently/">You Need to See Things Differently to Do Things Differently</a> by David Cain</strong></p>
<blockquote>
<p>You can slowly—horizontally—get better at something just by doing a lot of it. The problem is that the “it” that you’re doing can only be that thing as you’ve always understood it. If there are oversights and misunderstandings in the way you see the thing, you’re practicing them too.</p>
<p>[…]</p>
<p>Horizontal growth exhausts itself eventually. You reach a point where can’t do the thing any better or faster in the limited way you see that thing. You get stuck, and stay stuck until you stumble across another way of seeing.</p>
</blockquote>
<p><strong><a href="https://ofdollarsanddata.com/its-time-to-work/">It’s Time to Work</a> by Nick Maggiulli</strong></p>
<blockquote>
<p>I don’t say this because I have anything against investment research, but to point out something that the investment industry doesn’t want you to know—most people don’t get rich through their investment decisions, they get rich through their income. They get rich through their work. Even those who do get rich from their investments, typically, had to work to get the money they used to invest in the first place.</p>
</blockquote>
<p>As Britney Spears succinctly put, you better work.</p>Bora M. AlperEvery January, Make Two Lists by David CainWhat I Read This Week: 2022-522023-01-01T13:00:00+00:002023-01-01T13:00:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2022-52<p><strong><a href="https://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/">On Being A Senior Engineer</a> (2012) by John Allspaw</strong></p>
<p>It’s a fairly long read but it was one of the, if not <em>the</em>, best reads of 2022.</p>
<p>I don’t want to decimate the article with my quotes as it’s as concise as it could be given how much it conveys.</p>
<p><strong><a href="https://businessofsoftware.org/2009/01/joel-spolsky-at-business-of-software-2009-video/">Simplicity vs Value in Software Development</a> (2009) by Joel Spolsky</strong></p>
<p>Joel talks about the trade-off between simplicity and value building new features add, the problem with giving too many choices, and <em>elegance</em>.</p>
<p><strong><a href="https://www.jwz.org/doc/groupware.html">Groupware Bad</a> (2005) by Jamie Zawinski</strong></p>
<p>In his talk Joel mentions Jamie’s <em>Groupware Bad</em> artcile which today is replaced by the following notice:</p>
<blockquote>
<p>When I hear people say that they were “inspired” by this, I fear that the result of such inspiration was most likely to cause them to participate in the construction of the Public-Private Surveillance Partnership. These people told themselves that they were building tools to “bring people together” when in fact what they were doing was constructing and enabling the information-broker business models used by companies like Facebook and Equifax, where people are not the customers but rather are the raw materials whose personal details are the product.</p>
<p>I was talking about decentralization and empowerment of the individual. They went and build the exact opposite.</p>
</blockquote>
<p>The article is still accessible for those who are determined enough but I won’t link to it out of respect for the author, except quoting this particular bit about bootstrapping social software:</p>
<blockquote>
<p>And if it [your software] doesn’t work with webmail, you’ve lost before you’ve even begun, so don’t do something dumb like requiring a plugin. The trick you want to accomplish is that when one person is using your software, it suddenly provides value to that person and their entire circle of friends, without the friends having had to do anything at all. Then, later, you pull the friends into the fold: if one of them starts using the software, they become their own hub, and get the benefit they have already witnessed from a distance.</p>
</blockquote>
<p><strong><a href="http://paulgraham.com/vb.html">Life is Short</a> by Paul Graham</strong></p>
<blockquote>
<p>It’s easy to let the days rush by. The “flow” that imaginative people love so much has a darker cousin that prevents you from pausing to savor life amid the daily slurry of errands and alarms. One of the most striking things I’ve read was not in a book, but the title of one: James Salter’s <em>Burning the Days</em>.</p>
</blockquote>
<p><strong><a href="https://www.facebook.com/story.php?story_fbid=3467566940144465&id=100006735798590">John Carmack’s resignation</a></strong></p>
<blockquote>
<p>We have a ridiculous amount of people and resources, but we constantly self-sabotage and squander effort. There is no way to sugar coat this; I think our organization is operating at half the effectiveness that would make me happy. Some may scoff and contend we are doing just fine, but others will laugh and say “Half? Ha! I’m at quarter efficiency!”</p>
<p>It has been a struggle for me. I have a voice at the highest levels here, so it feels like I should be able to move things, but I’m evidently not persuasive enough. A good fraction of the things I complain about eventually turn my way after a year or two passes and evidence piles up, but I have never been able to kill stupid things before they cause damage, or set a direction and have a team actually stick to it. I think my influence at the margins has been positive, but it has never been a prime mover.</p>
</blockquote>
<p><strong><a href="https://fabiensanglard.net/a_linux_evening/">A Linux evening…</a> by Fabien Sanglard</strong></p>
<blockquote>
<p>Occasionally, my system malfunctions to a point it requires a significant effort to fix it. Really bad occurrences result in disheartening hours googling in the hope that someone more qualified ran into the same issue.</p>
</blockquote>
<p>I had many similar experiences while using Ubuntu as my daily driver for the past 5-6 years, <em>and</em> those taught me a lot! As Fabien also admits at the end of his article, “it is obvious the community has come a long way” and even if the learnings in those evenings are not transferrable, I’ve always appreicated them as stimuli. It’s precisely those cracks through which the internals of otherwise black-boxes reveal themselves.</p>
<p><strong><a href="https://news.ycombinator.com/item?id=34179426">Golang disables Nagle’s Algorithm by default</a></strong></p>
<p>Now a Hacker News evening: someone recently discovers that Go disables Nagle’s Algorithm (i.e., enables <code class="highlighter-rouge">TCP_NODELAY</code>) by default and posts a reasonable rant, and <a href="https://news.ycombinator.com/item?id=34181846">Russ Cox</a> and <a href="https://news.ycombinator.com/item?id=34180239">John Nagle</a> chime in to explain why.</p>
<p>On an unrelated note, this reminded me of how easy it is to overlook the social aspect of social networks: how many other sites can you think of where such interactions are even plausible in the first place?</p>
<p><strong><a href="https://github.com/beakerbrowser/beaker/blob/764bdefeeed9558dbf10aec77df262a896f57236/archive-notice.md">Beaker Browser is now archived</a> by Paul Frazee</strong></p>
<blockquote>
<p>As decentralizers we may be pursuing a mission, but our work only wins in the market, and to win in the market we need to think like entrepreneurs. Ultimately, my lesson learned is that mission needs PMF [product-market fit].</p>
</blockquote>
<p><strong><a href="https://web.archive.org/web/20121101003246/http://arstechnica.com/features/2000/04/ps2vspc/">The PlayStation2 vs. the PC: a system-level comparison of two 3D platforms</a> (2000) by Jon Stokes</strong></p>
<p>PlayStation 2 is my favourite console. First of all, it’s reminiscent of an era where software was shipped physically only and <em>where not everything was a PC</em>.</p>
<blockquote>
<p>Diefendorff et al. start out by distinguishing media applications from more traditional applications by noting that media apps are examples of what they call dynamic processing. What this basically means is that the instruction stream doesn’t really change all that fast, but the data stream changes constantly. Or, put more concretely, programs like 3D games and scientific applications deal with very large amounts of data, but the groups of instructions that operate on these large data chunks are usually very small. The most common situation is where you have a small loop that iterates through a large matrix or series of matrices many, many times.</p>
<p>Contrast this to a more traditional, static processing application like a word processor, which uses many different segments of code (menus, wizards, spell checkers, etc.) to operate on a single data file (the document). In this type of application, the data stream is pretty stagnant, and doesn’t change very much. The instruction stream, however, is all over the map. One minute you’re firing up the spell checker to process the file, the next minute you’re changing the fonts, and then when that’s done, maybe you export it to a different format like Postscript or HTML.</p>
</blockquote>
<p>If you are <em>really</em> intrigued, you can continue reading <a href="https://web.archive.org/web/20120621055541/https://archive.arstechnica.com/reviews/1q00/playstation2/m-ee-1.html">Sound and Vision: A Technical Overview of the Emotion Engine</a>.</p>Bora M. AlperOn Being A Senior Engineer (2012) by John AllspawWhat I Read This Week: 2022-492022-12-11T16:39:00+00:002022-12-11T16:39:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2022-49<p><strong><a href="https://world.hey.com/dhh/the-bubble-has-popped-for-unprofitable-software-companies-2a0a5f57">The bubble has popped for unprofitable software companies</a> by David Heinemeier Hansson</strong></p>
<blockquote>
<p>Asana lost an incredible $285m in 2021, $210m in 2020, and $118m in 2019. They’re on track to losing even more with over $370m in losses booked for the trailing twelve months. That’s closing in on a billion dollars in losses over the last four years. Madness. […] Beyond the madness, there’s a real question as to how long losses like that can continue. It appears they’re down to just $238m in cash on hand, which wouldn’t even be enough runway for another year at the current loss-rate.</p>
</blockquote>
<p><strong><a href="https://www.economist.com/briefing/2022/12/08/rising-interest-rates-and-inflation-have-upended-investing">Rising interest rates and inflation have upended investing</a></strong></p>
<blockquote>
<p>The same logic diminishes the investment case for startups and nascent firms, which by definition will earn the lion’s share of their profits in the future (if they prove successful at all). Higher rates diminish the value of future profits relative to current ones. For a firm whose profits are projected to remain stable indefinitely, less than a tenth of the present value of its future earnings comes from the first ten years when the interest rate is 1%. At 5%, around two-fifths does.</p>
<p>Sure enough, the type of startup that draws the most interest from investors has changed, says an experienced venture capitalist. Whereas those that expanded the fastest used to be the most highly prized, the balance has now shifted in favour of those that generate, rather than burn through, cash.</p>
</blockquote>
<p><strong><a href="https://astralcodexten.substack.com/p/why-im-less-than-infinitely-hostile">Why I’m Less Than Infinitely Hostile To Cryptocurrency</a> by Scott Alexander</strong></p>
<blockquote>
<p>This post is emphatically not intended as a claim that crypto will go up more, or that it won’‘t go down a lot, or that there won’t be any more disasters or scams. It’s a claim that aside from its going-up ability, crypto is still a set of interesting technological solutions to regulatory problems. They’re already solving some problems, and maybe later they’ll solve more.</p>
</blockquote>
<p>I do agree with this.</p>
<blockquote>
<p>If you’re in a developed country, and you’re happy with your banking system, and you’re not a sex worker, and you have zero concerns about your country being taken over by fascists, you probably don’t need cryptocurrency and shouldn’t worry about it.</p>
</blockquote>
<p>I am not entirely sure of that framing, frankly feels a bit kitsch. <a href="https://moxie.org">Moxie Marlinspike</a> talked about this in his 2018 speech <a href="https://youtube.com/watch?v=DoeNbZlxfUM&t=1868">Changing Threats To Privacy: From TIA to Google</a>:</p>
<blockquote>
<p>So one thing that I’ve noticed is that privacy advocates, people who are working on these privacy projects, are really in love with “The Other”. These are people like Iranian dissidents or Chinese dissidents in faraway parts of the world. The interesting thing about it to me is that if you look closely at you know Iranian dissident or Chinese dissidents, they really have very little in common with what privacy advocates are doing, and yet advocates are still sort of obsessed with their struggles. I guess I would suggest that it’s because these are the few places in the world that are still speaking that language of data control, that language of “information freedom” that all of our projects were sort of born out of, and so they just happen to sort of dovetail even though they don’t really connect with the lives of people that are working on the projects. I would say that even those places are beginning to realize that the strategy of data control is not entirely effective</p>
</blockquote>
<p>Moving on to a related article:</p>
<p><strong><a href="https://vitalik.ca/general/2022/12/05/excited.html">What in the Ethereum application ecosystem excites me</a> by Vitalik Buterin</strong></p>
<p>I don’t want to quote any specific excerpts from it but only remark that I appreciate him distinguishing concepts that are different yet often used interchangeably: protection from outside (censorship resistance) vs inside (trustless), decentralising for “robustness” vs “efficiency” (permissionless) vs “interoperability” with respect to the “governance structure” and/or the “implementation”.</p>
<p><strong><a href="https://www.mrmoneymustache.com/2022/12/10/the-california-effect/">The California Effect</a> by Mr Money Mustache</strong></p>
<blockquote>
<p>The ultimate lesson, then, is to remind yourself that <em>no, your current life is not normal</em>.</p>
<p>It’s super weird and super specific, and you can completely change the damned thing in as many ways as you like and you absolutely <em>will</em> adapt and be able to handle it.</p>
</blockquote>
<p><strong><a href="https://paulitaylor.com/2022/12/07/16333/">Designing For Ambiguity</a> by Paul Taylor</strong></p>
<blockquote>
<p>People living there have to find their own way around, negotiate for themselves, and use their own brains.</p>
</blockquote>
<p>The famous <a href="https://wiki.c2.com/?FeynmanAlgorithm">Feynman approach</a>.</p>Bora M. AlperThe bubble has popped for unprofitable software companies by David Heinemeier HanssonWhat I Read This Week: 2022-482022-12-04T17:29:00+00:002022-12-04T17:29:00+00:00https://www.boramalper.org/blog/what-i-read-this-week-2022-48<p><strong><a href="https://openai.com/blog/chatgpt/">ChatGPT: Optimizing Language Models for Dialogue</a></strong></p>
<p>I am in awe.</p>
<p><strong><a href="https://www.washingtonpost.com/technology/interactive/2022/amazon-shopping-ads/">It’s not your imagination: Shopping on Amazon has gotten worse</a> by Geoffrey A. Fowler</strong></p>
<blockquote>
<p>The first page of Amazon results includes an average of about nine sponsored listings, according to a study of 70 search terms conducted in 2020 and 2021 by data firm Profitero. That was twice as many ads as Walmart displayed, and four times as many as Target.</p>
</blockquote>
<p>In other words, more than half of the results you get on Amazon on average are ads.</p>
<p><strong><a href="https://www.tbray.org/ongoing/When/202x/2022/11/28/On-Algorithms">Protect Me From What I Want</a> by Tim Bray</strong></p>
<blockquote>
<p>Over on Mastodon, there are many people who enjoy not being in the grip of software like Facebook or Twitter that single-mindedly tries to maximize “engagement”, which means the amount of time you stare at the screen so they can show you ads. […] So the chant over there is “No algorithms on Mastodon!” This chant is wrong, and the discussion around it teaches us that we need clarity on what algorithms are, what moral weight they can carry, and whether they can be avoided. (Spoiler: They can’t.)</p>
</blockquote>Bora M. AlperChatGPT: Optimizing Language Models for Dialogue