New
The latest blog posts to take off on Hacker News. 2,330 posts.
Dark Patterns, the Ratchet
A dark pattern in the design world means something that is purposefully created to mislead users and to get them to perform actions against their own interest.
Fast, Safe, and Complete(ish) Web Service in Rust
A detailed look at the frameworks, concurrency model, error handling, middleware constructs, and testing strategies of a web service written in Rust.
Announcing the Second Edition of “Refactoring”
I'm finishing a new edition of my Refactoring book. Here's details and periodic memos about my work.
Book Review: Twelve Rules for Life
I. I got Jordan Peterson’s Twelve Rules For Life for the same reason as the other 210,000 people: to make fun of the lobster thing. Or if not the lobster thing, then the neo-Marxism thing, or…
Logs in High Sierra Show Plaintext Password for APFS Encrypted External Volumes
UPDATE: PLEASE HELP ME TEST UPATE TO THE UPDATE: Similar log entries are now found in another system log that is more persistent, see the article here . UPDATE: This is still vulnerable on current versions of macOS 10.13.3 when encrypted an ALREADY EXISTING unencrypted APFS volume
Where Yegge’s Wrong
Recently, Steve Yegge published two rants, each of which has gone viral and moved the Internet conversation needle a bit. I liked both of them, thought they were generally well-argued and useful. Unfortunately, there are a few assertions of fact there that are just wrong, and may be damaging. So I thought that, first…
Reading a VGA monitor's configuration data with I2C and a PocketBeagle
Have you ever wondered how your computer knows all the characteristics of your monitor— the supported resolutions, the model, and even the...
Why collision avoidance is harder for an AI-based system
Recent incident where Uber car was involved in an accident where a cyclist got killed has sparked many comments and opinions. Many blame…
Who and what is Coinhive?
Multiple security firms recently identified cryptocurrency mining service Coinhive as the top malicious threat to Web users, thanks to the tendency for Coinhive’s computer code to be used on hacked Web sites to steal the processing power of its visitors’ devices. This post looks at how Coinhive vaulted to the top of…
Git log – The good parts
If you’re managing a complex git codebase with multiple developers, then you may well be using a tool like GitHub or BitBucket to delve into the history and figure out branch and merge issues.
Applied Category Theory
It just became a lot easier to learn about applied category theory, thanks to this free book: • Brendan Fong and David Spivak, Seven Sketches in Compositionality: An Invitation to Applied Cate…
Making Slides
I was asked to give a short talk in my Departmental Proseminar yesterday on the topic of giving presentations, and specifically about making slides effective. There is more than one way to give a good talk, and there is more than one way to make “good slides” or—better—make good use of slides and other material you…
Thoughts on Embracing the Social Internet Over Social Media
A Social Transition Last week, I wrote a blog post emphasizing the distinction between the social internet and social media. The former describes the internet’s ... Read more
The Bitter Truth of Learning: It’s Tough, Unpleasant, and Often Pointless
Sometimes an insignificant interaction, or an excerpt from a book, is capable of provoking a life-changing insight. It might be an obvious lesson, but it feels epiphanic because it fits differently into my understanding of things. For instance…
Newsgroups and the Internet Archive: I Made a Difference
In 2013, I had the idea of making a newsgroup search engine. All I had to do was download all newsgroup postings and index them. Well I wro...
Managing database schema changes without downtime
How we manage schema changes at Discourse minimizing downtime
Blender’s Prehistory – Traces on Commodore Amiga (1987-1991)
The following article is a historical look at the era that spawned first raytracers for home computers, a predecessor to Blender among them. Writing it was possible thanks to the fact, that, for the first time, the program and source code of said predecessor are publicly available.