About Me
I'm a Math/Computer Science student at the University of Waterloo. I grew up in Halifax, Nova Scotia.
In my free time, I write code for open-source and my own projects. Away from the keyboard, I enjoy reading, sailing, running, geocaching, travel, and learning French.
You can find me on LinkedIn, twitter, and Facebook. You can also contact me the old-fashioned way at blog@paulbutler.org. Here is my résumé.
-
Recent Posts
Recent Comments
- Amy Farrah Fowler and soft power « DannyQuah on Visualizing Facebook Friends: Eye Candy in R
- R tells you where weapons go | nzprimarysectortrade on Visualizing Facebook Friends: Eye Candy in R
- Random art on the web « Statisfaction on Visualizing Facebook Friends: Eye Candy in R
- Calculate and highlight the differences between strings of text with PHP on Visualizing Facebook Friends: Eye Candy in R
- 10张信息图让你更了解团购网站 | 微助力social社会化博客 on What $480M of Gross Revenue Looks Like to Groupon
Friends
February 2012 S M T W T F S « Jul 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Archives
Categories
- Fractals (1)
- Haskell (2)
- Image Scaler (2)
- Java (1)
- JavaScript (2)
- JSSpamBlock (7)
- Math (8)
- Computer Science (2)
- Data Mining (6)
- Statistics (2)
- PHP (3)
- Programming (2)
- Python (5)
- R (4)
- Ruby (2)
- Waterloo (1)
- Web Apps (2)
- WordPress (3)
License
Meta
Author Archives: Paul Butler
Python Debugging with Decorators
I’ve written a little python function which I have found to be very helpful for debugging. It takes a function, and returns a function which is identical to the original except that it prints a message to the console with … Continue reading
Posted in Python
Leave a comment
SimpleDiff in Python
A while ago I posted a PHP implementation of a diff algorithm I came up with1. Since it was well received, and it’s a useful little algorithm to have, I created a Python version as well. There are a few … Continue reading
Posted in Python
8 Comments
Tail recursion in Python
After spending a lot of time in Scheme, it’s hard not to think in recursion from time to time. When I recently started to improve my Python skills, I missed having Scheme optimize my tail recursive calls. For example, consider … Continue reading
Posted in Python
16 Comments
JSSpamBlock 2.0, ImageScaler 1.1
Update: Due to lack of time and interest (on my part), I am no longer maintaining JSSpamBlock or ImageScaler. JSSpamBlock and ImageScaler were both originally one-day projects that turned out to be a bit more popular than I expected. Recently … Continue reading
Posted in Image Scaler, JSSpamBlock
Leave a comment
JSSpamBlock-like protection for any website
Update: Due to lack of time and interest (on my part), I am no longer maintaining JSSpamBlock or ImageScaler. I just noticed a trackback from Brandon Cheketts about a PHP script he has released that lets you incorporate functionality similar … Continue reading
Posted in JSSpamBlock
1 Comment
ImageScaler 1.0
Update: Due to lack of time and interest (on my part), I am no longer maintaining JSSpamBlock or ImageScaler. This blog has been a bit slow since I started school, partly because of the extra work but also partly because … Continue reading
Posted in Image Scaler
Leave a comment
Proper Image Resizing for WordPress
Update: Due to lack of time and interest (on my part), I am no longer maintaining JSSpamBlock or ImageScaler. WordPress has a cool WYSIWIG editor that lets you easily resize images by dragging the corner around. The problem is that … Continue reading
Posted in PHP, WordPress
Leave a comment
Garden Path Sentences
I recently came across an interesting post on the Powerset Blog recently about garden path sentences. Garden path sentences are sentences that lead you down the wrong path through a string of words with multiple meanings. For example, The complex … Continue reading
Posted in Python, Ruby
8 Comments
Endless Google Search
April 2009 Update: Originally, I had an live example of this running. However, the Google API doesn’t seem to work any more (it was discontinued over two years ago). In any case, there are better examples online now. Try Live … Continue reading
Posted in PHP, Web Apps
Leave a comment
JSSpamBlock Modifications
Update: Due to lack of time and interest (on my part), I am no longer maintaining JSSpamBlock or ImageScaler. The way JSSpamBlock has evolved since I first released it has reminded me why I love open-source. From day one, I … Continue reading
Posted in JSSpamBlock
Leave a comment
