Other articles

  1. The Sneaky Modulo Operation

    Suppose you need to know if a given number is a multiple of, say, 5. There's a simple solution to this problem: the modulo operator. In many languages, it looks like this:

    x % 5

    And what it returns is the remainder when dividing x by 5. If that remainder ...

    read more
  2. Iterating Through a List and Deleting Elements

    Suppose you're iterating through a list, and you want to remove elements under some condition. This seems pretty easy: you've got an element, and python lists have a remove method that you can call with that element.

    However... let's try it with a simple example:

    >> mylist = range ...
    read more
  3. Julia

    I had planned to write a blog post about how great Julia is. I spent many years using Matlab, both in grad school and in finance. Since then, I've been using NumPy for mathy things, but it feels really awkward, since it's just sitting on top of another ...

    read more
  4. Mathematical Curio

    If you take any integer and rearrange the digits however you like, the difference between the original number and the rearranged number will always be divisible by 9.

    For example:

    number = 12345
    rearranged = 43215
    difference = 43215 - 12345 = 30870
    difference / 9 = 3430

    More generally, you can do the same with numbers ...

    read more
  5. Avoiding Repetitive Methods

    We all know that you should avoid writing the same code over and over: put it in a function and just call that function whenever you need it. But what if what you need is a class with a whole bunch of really similar methods, each with a different name ...

    read more
  6. Default Arguments in Python

    In Python, you can assign a default value to an optional varible like so:

    def myFunction(x, y = 0):
        print x + y

    myFunction can be called with either one or two arguments. If only one argument is supplied, y will have a value of 0.

    This is all perfectly straightforward ...

    read more
  7. Simulated Annealing

    My initial approach to the tiling problem was to find all the possible configurations, calculate a measure of the distance between same-colour tiles for each, and then select the configuration with the maximum distance. While this does reliably find the optimal solution, it also very quickly becomes infeasible as the ...

    read more
  8. Tiling Problem

    We have a play-mat: eight rubber tiles, two of each colour, that fit together. We had put it together in a 4x2 arrangement, without considering the colours. The result was ... displeasing. Two pink tiles were right next to each other, but all the other pairs were separated. It just looked ...

    read more
  9. Uploading files using Twisted Web

    Inputting information through web forms is really easy under Twisted web. You just have to set up render_GET to display a form, where each input element has a name (e.g. "name", "email", whatever). Then, render_POST, taking an argument of request, can access these values as follows:

    name = request.args ...
    read more