Archive for the ‘Python’ Category

Food File on Ubuntu

Saturday, July 12th, 2008

Since I’ve moved to Linux as my primary desktop (I know, about time), I’ve been motivated in porting some of my old software. This shouldn’t be too difficult, since I try to work in as platform agnostic manner as possible, and when I do use a platform specific API I keep it nice and modular. Food File is probably the most popular app I ever created, although only since I made it free. As a commercial app, it didn’t do to well, probably because it didn’t get noticed amongst all the diet / food applications for Windows out there, or possibly because I am lousy at marketing.

Food File on linux seems like a good fit, because it is a free wxPython interface to a publicly available data source (USDA Nutrient Database). I was hoping it would run without modification, but it failed on a line that used Windows-style back-slashes in paths rather than forward slashses — as prefered by linux. After changing 4 such lines, it ran. I was surprised that the fancy OpenGL graphics didn’t cause any problems, but it did segfault on the About box, the simplest dialog in the entire app (go figure). I haven’t got to the bottom of that yet, but when I do, I will release a Linux version. Here’s a screenshot of Food File running under Ubuntu:

Screenshot

I don’t have any experience building a Linux package. If the lazyweb would like to help me with that, it would be appreciated!

I think it was this project that started my pie chart fetish. I wonder if there is a support group or something…

Pretty as Pie

Sunday, June 29th, 2008

I’ve just spend a couple of hours dusting off an old project of mine, that involved generating pretty 3D pie charts by combining Mako templates with the Povray scene description language. I improved the image quality by enabling radiosity, and the end result is quite appealing (see below).

prettypie

Now I’m thinking that there may be some people out there who would be prepared to pay to generate such images for websites or for print, and it wouldn’t be too hard to extend the idea to other forms of chart, such as bar graphs. So, dear lazyweb, is there a big enough market in such a thing to warrant sinking my valuable spare time into?

New Postmarkup on the block

Tuesday, June 24th, 2008

I’ve released version 1.1.0 of Postmarkup. The main improvements are that it generates cleaner html, that doesn’t include invisible div sections, and that it should also generate XHTML that validates (previous versionsĀ  could put block tags inside inline tags for some bbcode).

The basic interface is the same, so it should be a drop in replacement for most people. TheĀ  base class for tags has changed (but not significantly), so if you have any custom tags, it will require a little work to get them functional again. See postmarkup.py for example tags.

I actually quite like bbcode as a light-weight markup. Possibly I’m rationalising, as I’ve spent a couple of days polishing it when I should be job-hunting! Its great for its original purpose, of letting forum users format text, but it could be used as a more friendly alternative to XML. It’s also higher level than (X)HTML in that a tag can generate intelligent content rather that simply applying a style.

Now I have to find some other project to keep me entertained before I re-join the rat race!

BBCode Ajax test server

Monday, June 23rd, 2008

Since I have some time on my hands, I’ve been doing a little work on Postmarkup - my BBCode module. I’ve made some significant improvements to the design which fixes a few issues and makes it easier to create new tags. To test it, I hacked together a simple web-app using CherryPy, which allows you to edit bbcode in the browser and see the resulting html update live — with a little Ajax magic.

Postmarkup test server

Please give it a try, and let me know if you can break it.

In building this, I’ve created a very rudimentary web service. I’m wondering if there is any practical use for such a thing…

My CV / Resume

Thursday, June 19th, 2008

It seems it is a good time to be a Python developer, after my last post I received a number of good leads. All before I had finished my CV.

Looking for a Python Role In London

Monday, June 16th, 2008

Its seems I’m on the job-market again.

I’m a software developer with over 10 years experience. I’m looking for a role working with Python, which has been the focus of my career for the last 18 months. Prior to that I worked with a mixture of C/C++ and Python. Ideally I’m looking for something in web development as I enjoy working with HTML / CSS and Javascript, but I’m open to other fields that may interest me. I have experience working with Turbogears and Django, as well as many other Python modules and technology.

I enjoy developing software outside of a work environment, and have created several games, applications, web sites, and open source Python modules. My blog is probably the best place to find out more about my spare time projects, see my Python articles for more information.

I’m also an author, having written a book about game development with Python. So I like to think I am a good communicator.

I’d like a full-time position, but I would consider contract work. I’m based in London, so anything in central London would be ideal. Please get in touch if you have a suitable role or would like to know more. I’m available for immediate start.

my email

Mobile: 07722 531972

No recruiters please. And by no recruiters, I mean no recruiters.

Update: I have updated my CV (willmcgugancv.pdf)

Practicality versus Purity for Python Templates

Thursday, February 28th, 2008

There are a number of very powerful template languages available in Python. Some template languages, such as Genshi, allow complex Python statements and even full Python code within the template file. Others, such as Django templates, prefer to restrict templates to presentation only and do not allow general Python expressions within the body of the template.

In the context of a web framework, is it better to have the full expressiveness of Python, or restrict templates to presentation only?

Degreelessness

Wednesday, February 20th, 2008

Occasionally when I am feeling nostalgic I dust of some off my old creations. Back in the day I used to create graphical demos for PC, which are difficult to run these days because they were designed to run under DOS and not Windows, and computer hardware has change so much since then. Fortunately I can use DOSBox to run them with Vista. DOSBox even has an option to record videos, so I recorded a demo I wrote way back in 1995 (it actualy got me my first job). ‘Degreelessness’ was built on a Pentium 75 PC and runs with glorious 256 colour graphics. Its a little embarrassing, especially the goatee, but bare in mind is is over 10 years old!

Here it is, courtesy of Google Video.

Sorry for the spam

Monday, February 18th, 2008

Sorry for the spam in my feeds. It was due to an old version of wordpress that somehow combined deleted spam with my posts. I meant to fix it a while ago but it escaped my mind. My humble apologies.

Writing a Facebook Application with Python Pt. III

Saturday, February 16th, 2008

This is the third part in a series of three posts about writing a Facebook application with Facebook. If you have not already ready done so, you should read the first and second parts first.

The technology behind Facebook applications is actually quite straight-forward. It is completely platform agnostic so you can build an app with any technology you might use to serve HTML content. My choice would be Python, but then I am a shameless Python fan-boy. Unfortunately there are still problems that any Facebook application developer will face, and most aren’t technology related.

Facebook have solved a number of challenging problems and for the most part it is an elegant solution to adding third party applications to their own site. But Facebook isn’t the grand free-for-all platform that the world wide web is — Facebook must tread a fine line between allowing the application developer to generate revenue and avoid annoying the user so much that they abandon their accounts. Its understandable — I wouldn’t want an application popping up adverts or sending mails on my behalf — but the rules they put in place tend to put the app developer at odds with Facebook admin.

For example, there is an API call that sends out notifications. When you receive a notification it displays a little text and link which you might use to inform a user that a friend has sent them something or done something else that is directly relevant to them. Facebook don’t want applications flooding other users with these notifications, so it places restrictions on the number that can be sent out. The documentation says the application can ’send up to 40 notifications to the notifications page per user per day’, which to to me is unclear whether an application can send 40 notifications per day on a user behalf or receive 40 notifications per day (apparently its the former). That used to be the case, but Facebook introduced a new system that restricts notifications even further. Applications receive a variable allowance of notifications that changes depending on how many users hide its notifications. The more users that hide your notifications, the less notifications an application may send out. The starting level seems to be 10 notification per day, a good bit under the original 40. This restriction strikes me as being excessively harsh on the application developer, and I’m not the only one who thinks so — the forums are full of application developers venting their annoyance at this and other restrictions. In my opinion it would be far more sensible to restrict the number of notifications that can be received from an application, even one per user per day would be fine! I don’t think anyone would be too annoyed by at most one notification per day send from a friend.

Facebook appear to be constantly tweaking and modifying their system to keep applications in check and make the content from applications as relevant as possible. And they prefer to do this by automated means, much to the chagrin of the application developers who feel they are being unfairly penalised by an flawed system. Unfortunately if you want a piece of Facebooks pie, you need to play by their rules. I suspect the gold-rush is over for Facebook applications, but as long as you keep on top the constantly shifting platform it could be a lucrative opportunity.

My own application doesn’t seem to be doing too well. Perhaps because of the reasons I am posting here, or because it is a waste of time and people don’t see the point. Whatever the reason, I am less inclined to create a Facebook app for becontrary.com, which was my original reason for looking in to it. It has started me thinking about how to make a better job of embedding an application inside a host web app, so writing a Facebook app may have been a good use of my time after all. Maybe I can do a better job, the poor schmucks at Facebook are lumbered with PHP. ;-)


Close
E-mail It
Socialized through Gregarious 42