will

Where there is a Will

Will McGugan's Blog

I am a freelance software engineer living in Edinburgh.

I post mostly about tech (particularly Python) and photography.

Background: A code monkey

I may have spoken too soon regarding no having internet access. I just plugged in my Sony Ericsson phone via USB, switch it to 'phone mode' and Ubuntu instantly recognised the phone as a modem.

I did have mobile internet working on an older release of Ubuntu, but not without scouring the internet and typing magic incantations in to the command line. I love it when computers 'just work'!

I'm tempted to try it again in Vista to compare, but I really should get back to the packing.

As of tomorrow (Thursday 15 Jan) I'll be living in Oxford. Let me know if you need my new address. My landline number will change, but you can still get me on my mobile.

I wont have Internet access at home for a while, so I apologise if I can't answer emails until then.

Now back to the packing!

My current employer, Net Communities, is looking for a Python / Django developer to replace me -- I'm moving to Oxford to work on a very interesting Django site. I can honestly say that Net Communities has been a fun place to work, and if it wasn't for the fact that I'd prefer to live in a smaller place than London, I would still be there. Net Communities is based in Farringdon, London. See the job ad for more details.

To filter out the developers who are bluffing, I have devised a series of programming tests, each more fiendish and difficult than the next. Actually, they aren't difficult at all. The tests are just some of the typical tasks that you might need to do for a Django site. You will be sent a link to the test if you apply.

I've release a new version of Postmarkup, my bbcode rendering engine for Python. If you are not familiar with bbcode, it is a simple markup used by many message boards. For example [b]Hello, World![/b] would render Hello, World!

There are a number of bugfixes in the 1.1.4 release, mostly to fix the possibility of HTML injection by manipulation of the tags and attributes. The link tag was particularly problematic for this, so it has been re-written. I've also made a number of optimizations so that it will render HTML faster. It wasn't exactly slow, but I have noticed that most people use Postmarkup as a filter in web frameworks (rather than storing the pre-rendered HTML in a database), so the speed boost may be appreciated. continue reading…

I'll be going to the Future of Web Apps Expo in London, this Thursday and Friday (9th and 10th of October).There will be a lot of big names there, like Facebook, Flickr and Twitter; and some smaller web companies, like Net Communities, where I work.

If there are any Pythonistas going, feel free to stop by the Net Communities stand and say hi (look for the ItProPortal logo). We're giving away a free 32 inch television to one lucky Expo goer!

After my last post regarding FS, my file-system abstraction layer for Python, I think I may have left people thinking,"that's nice, but what would you use if for?". Generally, I see it as a way of simplifying file access and exposing only the files you need for your application -- regardless of their physical source. But I can think of a few other uses that may be a littler cooler. continue reading…

This is something I have been hacking together for a while now; FS is a file-system abstraction for Python. It has reached a stable state and is worthy of an official (0.1.0) release. continue reading…

To compensate for the previous post, here is a picture of something pretty. Work on my pretty-charts (working title) web application is progressing slowly but steadily. :-)

A well-designed website will tend to have a consistent colour scheme where the various design elements sit harmoniously together, yet contrast well enough  that the user can separate them visually. Selecting these colors is a mixture of an art and a science. Its an art because only a human being can know if the colors project the image required by the site (business-like, mellow, funny etc), but it's also a science because complimentary and contrasting colors can be produced from a source colour using only math. As an engineer the math part appeals to me, but the art part "confuses and enrages me" (guess the quote). continue reading…

Python programmers love a challenge, so I thought I would throw this one to the lazyweb.

I have an app that generates a large sequence of files, the nature of which is unimportant. What is important is generating a location to store them. To keep the directory structure manageable there should be no more than 100 files plus sub-directories in any given directory. For instance if there are 99 files in a directory, then there is only room for one more file or a directory -- bringing the total to 100. There is an additional requirement that the directory structures should be as flat as possible, i.e. foo/bar for the nth item is preferable over foo/bar/baz. To summarize the requirements: continue reading…