tadhg.com
tadhg.com
 

Posts concerning coding

Metaweb Acquired by Google

23:57 16 Jul 2010. Updated: 01:20 17 Jul 2010

The official announcements are out, and my former employer Metaweb no longer exists. I’m happy that the ideas, and most of the people, have found a home, but it feels strange that the company is no longer a distinct entity. In many ways it makes a lot of sense for Google to end up owning them, and I hope the former-Metaweb-now-Google employees prosper.
[more...]

Permalink     Comment     [, , , , , , ]    

Unit Testing as Game

23:23 15 Jul 2010

One of the great things about unit testing is that you can get into a game-like mode where you make incremental but measurable progress—“flow”, basically—but what if it’s just not similar enough to a game for you?

Install Unit Testing Achievements, a Python package that works with nose, unittest, and Django. Somewhat crazy, definitely hilarious. Some of the achievements themselves are excellent, such as My God, It’s Full of Dots: The suite has at least 2,001 passing tests.

Sadly not yet working is another one I like, Heisenbug: Make a passing suite fail without changing anything.

Permalink     Comment     [, , , , ]    

8-Bit Cities

21:35 12 Jul 2010

As a geek of my generation, I cannot help but find an eight-bit map of San Francisco (there are maps of other cities too) a wonderful thing. It became even cooler when I found out it was programmed in Python.

Permalink     1 Comment     [, , ]    

iPad First Impressions: Consumption Machine

18:52 23 May 2010

I got an iPad for work on Friday, and have been playing around with it. I would not have bought one for myself, and have grave misgivings about the device, primarily due to its highly proprietary, locked-down, walled-garden approach.

That being said, I think it’s an extremely slick, well-designed device, and may represent the first steps towards a new phase in accessing computer and/or internet artifacts.
[more...]

Permalink     2 Comments     [, , , , , ]    

sabbatical.close()

23:36 16 May 2010

After a highly enjoyable, productive, and extended period, it’s time for me to return to the world of paid work.

I’m quite happy with the things I’ve done during my time off. Many of them are important only to me, but then, it’s been my time off.
[more...]

Permalink     3 Comments     [, , , , , , , , , , , , , , , , , , , , , ]    

Rather Better Than a Cover Letter

18:55 13 May 2010

It might sound like a cheesy stunt, but I have a hard time coming up with a more fitting way to land a job at an advertising agency.

Permalink     Comment     [, , ]    

Improving a Python Word Counting Function

13:33 29 Apr 2010

This post could be summarized as “regular expressions are a lot faster than naive for loops”.

I’ve been working on improving the script I use for live wordcount in Vim, partly for performance and partly so that I can package it up as a plugin and share it with other people. Along the way I’ve improved the speed of the script rather significantly, and will go through the key part of that change here.
[more...]

Permalink     1 Comment     [, , , , , , ]    

How to Solve It and Project Euler

20:35 16 Apr 2010
Permalink     Comment     [, , ]    

Python Flatten/Concantenate Comparisons

23:31 09 Apr 2010. Updated: 01:39 10 Apr 2010

I’m going to compare seven different ways in Python to make one list out of several lists containing different numbers of elements, something that strikes me as a common but not necessarily everyday operation.

The philosophy of Python is that generally there should be one obvious and reasonable way to do things. I really like this philosophy—except when the Python way isn’t the way I prefer, of course.
[more...]

Permalink     Comment     [, ]    

Public Projects, Finishing Things, and bitbucket

11:46 06 Apr 2010

I’ve been writing Python fairly steadily for the past couple of years, and a significant amount of that has been for my own projects; Python is what I tend to use to scratch workflow-related itches. That’s great, but many of these projects reach a point short of “finished” when I stop working on them.
[more...]

Permalink     Comment     [, , ]    

Refactoring, Geeky Enjoyment, and Readability

12:16 05 Apr 2010

Refactoring is rewriting source code while preserving the functionality of that code. I’m currently refactoring my Python script for Subversion status, because I want to experiment with sharing code on bitbucket and it seemed like a reasonable first project to put up there.

Some people hate refactoring, but I often enjoy it. I get a kick out of figuring out how to make code “better”, although that’s often a subjective judgment. In this case, when I opened up the script to have a look at it, I immediately saw a function that I knew I wanted to refactor. I’m amused by the enjoyment I derived from making the fairly simple change.
[more...]

Permalink     Comment     [, , ]    

Clearing Growl Notifications

14:43 02 Apr 2010

I use a notification system for OS X called Growl, which provides a single channel for various applications to use when they have something to tell me. I mainly use it for IM and email. I’m fairly happy with it, but one issue that irked me was dealing with clearing a bunch of the notifications off the screen.
[more...]

Permalink     Comment     [, , , , ]    

2010 Goals: First Quarter Review

11:12 30 Mar 2010

Yes, clearly my progress (or lack thereof) needs quarterly reports. And here’s the first one for this year.
[more...]

Permalink     1 Comment     [, , , , , , , , , , ]    

Giles Bowkett on Finding New Programming Jobs

15:52 23 Mar 2010. Updated: 17:58 23 Mar 2010

It’s too long, it’s full of self-promotion, and really it’s an ad for a video he’s selling, but it’s entertaining and contains some good advice: “Programmers: What to do if You Get Fired”.

This might be the best line:

If you’re looking for a better job, writing an amazing resume is a good place to start. I don’t mean just a better resume; I mean a resume that makes people stop asking if they should hire you and start asking if they can afford you.

Annoyingly, I find myself tempted to buy that video after reading his post…

So far, his 2008 presentation at RubyFringe seems pretty entertaining too. Maybe you should watch it after you’ve updated your résumé.

Update: at the end of that presentation, he says “build something because you believe it should exist”, which I agree with 100%.

Permalink     1 Comment     [, , , ]    

A Little More Functional Programming

23:55 25 Feb 2010. Updated: 01:41 26 Feb 2010

After reading Dhananjay Nene’s comment on my post about a functional style approach to the “find longest repeater” problem, I decided to follow the line from that comment and divide the program into functions for finding the longest contiguous block and then for comparing the blocks. Naturally, I wanted to do this without using any variables…
[more...]

Permalink     1 Comment     [, ]    

Minor Foray into Functional Programming

15:56 23 Feb 2010

Last night a friend asked me what functional programming was, and as part of my answer I decided to rewrite a trivial program in the functional style to see what it was like. I did this in Python without using the functional module.
[more...]

Permalink     5 Comments     [, ]    

Some Vim Script Implementation, Testing, and Hackery

23:50 16 Feb 2010. Updated: 00:57 17 Feb 2010

As a result of my porting over jEdit (Jython) macros to Vim, I now have a fair amount of (Python) Vim scripts, and have learned some things about how to set up those scripts. I’ll go through some of that below, and hopefully other people writing Python scripts for Vim will find it useful.
[more...]

Permalink     1 Comment     [, , , , , , ]    

First Post With Vim

20:05 14 Feb 2010

Over the last couple of weeks I’ve been hacking away on scripts to customize Vim, replicating the scripts I made for jEdit. I’m more or less done, and this blog post is being written in MacVim. This hopefully means that when I’m done with it I’ll be able to publish it from within Vim, the same as with jEdit.
[more...]

Permalink     1 Comment     [, , , , , , , ]    

The Python Challenge

15:18 04 Feb 2010

The Python Challenge seems like a good way to have fun with Python through puzzle-solving. As with all riddles, it’s important to read the questions carefully…

Permalink     Comment     [, ]    

jQuery Project

23:36 21 Jan 2010

I’ve been a big fan of jQuery more or less since it came out, and I’m happy to see the launch of The jQuery Project. I’ve used jQueryUI a couple of times and find it fairly useful; I haven’t tried Sizzle yet but it looks great for situations where you’re really concerned about keeping file sizes low but need decent CSS selector support; and I wish QUnit had been around when I was writing a lot of client-side code.

Permalink     Comment     [, , ]    

Better Word Count in Vim

23:40 17 Jan 2010

I’m currently trying out Vim (again), and have made more progress this time, mainly due to Seth’s help. The key things that have made it better:

  • :set hidden. Absolutely critical, this. Stops Vim from complaining when you try to switch buffers and your current buffer has unsaved changes.
  • bufexplorer. Makes switching buffers a lot easier.
  • A better Python syntax file. I didn’t like the defaults.
  • My own indentation and syntax files for reStructuredText.

Really, though, the key first one was :set hidden. Before that I felt that I had completely misunderstood Vim’s file management model.
[more...]

Permalink     1 Comment     [, , , , , , , ]    

Code Katas

17:26 15 Jan 2010

I really like this idea from Dave Thomas: code katas, small pieces of programming practice involving some repetition. I came by it via Katacasts, a collection of screencasts of people doing the katas. I particularly recommend Gary Bernardt’s String Calculator in Python and Vim. (Which has inspired me to try once again to get past the vim file management issues I have.)

Permalink     Comment     [, , ]    

WordPress 2.9 Upgrade

15:56 10 Jan 2010

I upgraded this blog to WordPress 2.9 today, and it appeared to go entirely smoothly. Please let me know if you notice any breakage.

Permalink     Comment     [, , , , , ]