Why I am no longer a libertarian

Next time you see your outspoken libertarian friend, ask them this hypothetical: Lets represent everyone in the world by two people: Jim and Bob. Jim owns everything in the whole world - all the land, all the animals, all the food. Everything. Bob owns nothing. Bob is hungry and will…

Maps and Sets

One of the super useful new features of ES6 is Map, Set and its friends WeakMap and WeakSet. We've always had objects in javascript, but the reason why this is a big deal is that maps map based on an object reference, not just a string. Here's a few ways…

Culture and Imprisonment

"If nonviolent criminal laws were enforced on college campuses or investment banks for just a single day in the same rates as in poor communities, there would be twenty-four-hour news vans outside of every local jail and immediate public hearings about the harshness and efficacy of our legal system. .... Instead…

Love and hate for processes

So, I've been thinking about processes lately. They're an amazing abstraction - given how old they are, its really impressive they've gotten us as far as they have. They're so successful that even our users have internalised them. We invented modern processes to do multi-user isolation on unix mainframes in…

Apple dictionaries, part 2

After I wrote my post about Apple's dictionary files, I got a mysterious email showing up in my inbox. The email was from someone who's spent some time writing code to do the same thing, but doesn't want to post it under his own name in case he falls fowl…

Reverse engineering Apple Dictionaries

(Edit: Edit: [Part 2 is up](https://josephg.com/blog/apple-dictionaries-part-2/)">Part 2 is up) I've spent this morning doing some cursory reverse engineering to access the dictionaries on my mac laptop. I'll post some code soon to access them, but in the meantime here's the story of some of…