What Quantum Computers Do Faster, with Caveats
I find reading media coverage of quantum computers frustrating. With rare exceptions, the explanations of what a quantum computer is or can do are totally unsatisfying. I remember being really confused...
View ArticleDetecting Simple Cycles Forming, Faster
In this post: efficiently detecting when cycles appear, as edges are added to a graph, by taking advantage of a restriction on the type of graph.
View ArticleDeadlocks in Practice: Don’t Hold Locks While Notifying
In this post: a subtle way that reactive/event-based code can deadlock, how it affects ReactiveCocoa (obj-c) and Reactive Extensions (.Net), and ways to work around the problem.
View ArticleBrute Force Parallelization
In this post: a technique for parallelizing accumulation, when the accumulator only takes on a small number of states.
View ArticleA Year’s Worth of Opinions about Objective-C
About one year ago, I was placed on my first Objective-C project: porting RedPhone from Android to iOS. My part of RedPhone (the backend: audio, networking, crypto) has been done for about a month now.
View ArticleReferencing Substrings Faster, without Leaking Memory
In this post: computing substrings in less than linear time, without introducing tricky memory leaks.
View ArticleNot Crying Over Old Code
There is a meme in the programming community which goes roughly as follows: I always hate my old code but that’s good because it means I’m improving.
View ArticleExploring Universal Ternary Gates
Logic circuits are made up of gates connected by wires. Wires hold values, and gates operate on those values. Creating a circuit that computes a particular function is just a matter of running the...
View ArticleImpractical Experiments #2: Securing Peer to Peer Fog of War against Map Hacks
In this post: how to beat map hacks, without a server to hide the information on, using cryptography.
View ArticleAchieving Exponential Slowdown by Enumerating Twice
One of the many useful warnings in ReSharper is “Possible multiple enumeration of IEnumerable“. If you enumerate an enumerable more than once, ReSharper detects that and warns you about it. Although...
View ArticleUsing Immortality to Kill Accidental Callback Cycles
In this post: how I ensure consuming futures and cancel tokens from the collapsing futures library can’t introduce space leaks.
View ArticleCancellation Tokens (and Collapsing Futures) for Objective-C
In this post: benefits of cancellation tokens, and updates about the Collapsing Futures library.
View ArticleCollapsing Futures in Objective-C
In this post: practical examples of benefits of using collapsing futures in Objective C (library available on GitHub). Experimenting Returning readers may remember I’ve posted in the past about...
View ArticleBug Hunting #1: Garbled Audio from End to End
I was working on making sure our voip app could interop with another voip app. It was going pretty well, all things considered. It only took a couple hours to get to the point where we could establish...
View ArticleImpractical Experiments #1: Representing Numbers as Polynomials
I like arbitrary precision arithmetic. I don’t end up using it that much, but I like having the option of doing things with perfect accuracy. Not having to care about overflow, not having to care about...
View ArticleImplementing Quantum Pseudo-Telepathy
Last week, I thought I understood quantum pseudo-telepathy. Then I tried to make sense of the details of the Wikipedia article, and realized I had no idea what was going on. This week, I understand...
View ArticleTurn On Your Damn Warnings
Does your build environment have optional warnings? Turn them on. All of them. This has been said hundreds of times before, but I ran into lack-of-warnings problems in practice last week so I get to...
View ArticleBig-O Made Trivial
In this post: Craig tries to convince you to treat asymptotic complexity as a relation, instead of like sets.
View ArticleSolomonoff’s Mad Scientist
In this post: designing an AI scientist. An AI scientist that, if the opportunity came up, would destroy the entire universe just to learn another digit of . Why? FOR SCIENCE!
View ArticleWhat isn’t a Monad
This is another post where I talk about monads but avoid explicitly explaining what a monad is in much detail. That’s pretty well covered elsewhere. This post may or may not be helpful to you, if you...
View Article