Python: What I wish I’d known

As I reach the one year mark of Python programming, I still find things that make my life easier. Things I wish I’d known earlier. Here are those little tricks of the trade I’ve picked up: Shelling Out The basic Python shell is pretty limited. There are a few shortcuts worth learning: 1. If you [...]

Building a next generation Esperanto web dictionary

Esperanta traduko venos / Esperanto translation will be added. There are several online Esperanto dictionaries out there, as well as freely available definition collections for those who wish to build their own Esperanto dictionary applications. I was unhappy with the inflexibility of existing online dictionaries, so I decided to build my own. Goals My primary [...]

Why Tor Has Failed But I2P Will Not

Tor is a fantastic onion routing system that has introduced a lot of ideas about strong anonymity and has fostered a good quantity of academic papers. Originally a US Naval Research Laboratory project, it is now a public open source project. In this essay I explore the weaknesses of Tor and how newer projects improve [...]

Considering GSM Security

How secure is your phone? In this essay I consider the current state of GSM security, the strength of its cryptography, the privacy losses and touch on a few notable past security failures. Do we even want strong cryptography for telephony? It may seem like “yes” is the obvious answer to this question, but in [...]

Paranoid Firefox

The web is a wild place. What is the most secure and private configuration that we can wring out of Firefox? Preventing Exploits The most common way of exploiting Firefox is, ironically, third party plugins. One example of this is the Eleonore exploit kit, which has a good description here. This has become such an [...]

Notes On LaTeX

Why use LaTeX? LaTeX gives consistently stunning results. There is something of learning curve with LaTeX, so I hope this is helpful. The best reference for learning LaTeX is unquestionably the LaTeX Wikibook. Bare minimum for a valid document: \documentclass{article}   \begin{document} Hello world. \end{document} Full featured example: % specify paper size for fullpage package [...]

The Case For Standard ML

If you do a computer science degree at Cambridge, your very first taste of programming will be in Standard ML. For quite some time this seemed strange to me, as the merits were never clearly explained. Most students had not even heard of the language, let alone written any code in it. At the time, [...]

Notes On Visual Basic 6

VB6, like IE6 and household damp, doesn’t seem to go away easily. I had the interesting experience recently of writing a medium size piece of code in VB6, and I’ve documented how I reduced inconveniences. Setting up a less-pain environment The VB6 editor does not go out of its way to help you. Perhaps its [...]

Cambridge Links

There are a wealth of useful websites for Cambridge students, but very few are easy to find or well known. I list here the ones that I’ve found and used. Computer Science KuDoS Project (Churchill CS supervision arrangements) KuDoS without authentication CST Past Papers CST Exam info CompSci talks Unix mirror CamCors (view supervision reports) [...]

Minimalism: Keeping code to a minimum

There is only one program that is completely bug free, well documented, reliable and perfectly commented. Let me quote it in full: “”. Now, some naysayers may claim this isn’t a valid program — yet this program has won a programming contest! Sadly, the empty program is probably lacking a few features you require. Although [...]