The problem with photography
Cameras have trouble taking big enough pictures, and the largest computer monitors are nowhere near big enough to do some subjects justice.I took this picture in Canyonlands National Park this summer,...
View ArticleARM Cortex-A processor roundup
ARM, maker of the low-power processors in cell phones, has recently announced the Cortex-A9 and Cortex-A5 processors. Here's the brief summary of each Cortex processor and what it all...
View ArticleNuclear reactors for space: safety issues
Propulsion and science in space requires a lot of energy, but we pay dearly for every kilogram that we launch. Nuclear reactors are an obvious power source, since they combine large power outputs and a...
View ArticleFloating nuclear plants for cheap power and desalination
Russia has started work on the first of its floating nuclear power plants. It's a pretty simple concept; they've been using nuclear-powered icebreakers since the 1970s, and this is essentially just a...
View ArticleThreefish encryption
For one of my classes, I'm trying to figure out how to make hardware acceleration for the Threefish cipher. As step one of this, I had to actually figure out how to calculate it. That was surprisingly...
View Article91 Free Icons from Dmitry Baranovskiy
Dmitry Baranovskiy, the author of the excellent Raphaël JavaScript vector graphics library, made a bunch of nice icons. Then he gave them away to everybody, but not in the formats most people would...
View ArticleSearch pages should not use POST
This'll be a short post, because it's a simple thing. If you're writing a web site search form, it should not use HTTP POST to submit the query. This breaks the back button ("do you want to resubmit?")...
View ArticleSets in JavaScript
JavaScript does not have a set data type, but it really should. Sadly, I'm not the boss of the world, so I can't require that they add one -- but what I can do is write my own. This is a bit tricky,...
View ArticlePredicting computer architecture in five years
Has Moore's law run out? How many cores will be common in CPUs in a few years? Will GPUs and CPUs merge into one? Let's look at where technology is heading now, and make rash predictions!I realize that...
View ArticleNewton's method, in very few lines of Haskell
I hesitate to even write this blog post, because when I saw the code, it seemed trivial. But then, maybe that's the best kind of code. I'm going to assume that you know about Newton's method for...
View ArticleMy strings can beat up your strings
Strings! they're a fundamental data type, and every language more modern than C has some kind of built-in support for them. Naturally, we want them to work efficiently and correctly. But that turns out...
View ArticleStoring passwords securely in Haskell
If you need to store and verify passwords, the usual advice is to use bcrypt. It neatly handles all the issues, with a simple API. But Haskell doesn't have bcrypt bindings, so people are tempted to...
View ArticlePort of Murmur3 hash to C
Murmur3 is a non-cryptographic hash function, stupendously fast, with excellent mathematical properties. It's just the thing to use if you want to make a hash table, or a Bloom filter, or do any number...
View ArticleLet's make a Bloom filter
Bloom filters are a simple yet brilliant data structure, and once you learn about them, you start seeing applications for them everywhere. I'm going to quickly go over the absolute basics of what a...
View Article
More Pages to Explore .....