Aug
31
2010
I’ve just had two weeks off work and used the opportunity to keep off of Twitter, identi.ca, facebook and all. Coming back to it all I’ve realised a few things:
- Work is tough and the commute too long, meaning lots of stress and lots of time in the week when I fill time rather than use it. My contract is up at the end of the year and I’d like to move into something more fulfilling and nearer home this time.
- Twitter is a time-suck. I know I’ve said here before that it’s useful for work and all, but I haven’t missed it at all in the last two week’s and I can’t think of a positive reason to get back into it again. I think I’ll keep identi.ca live as I like their approach, but Twitter and Facebook are going.
- I spend a lot of time thinking about coding, but I don’t spend much time actually building my knowledge. I’ve worked through the same problems in many languages, but I don’t think I’ve ever reached the stage where I was coding for a purpose rather than for the sake of it.
- Similar thoughts for fishing and photography – both are distractions that I don’t think I have any long term goals in. Sure there’s room for doing things just for fun, and not everything I do needs to be moving me forward as part of some master plan, but I do have things I want to accomplish that I’m not wholly focussed on while I have so many irons in the hobby fire.
I’m thinking a complete break from geekery for a few months would be nice. It’s a good time of year for birding so I’ll be grabbing my bins and heading out into the MK wilderness in my spare time for a little while. I’d like to write more so I’ll use the blog as a way of getting back into that, but keep my use of the computer to a minimum for a bit.
Aug
06
2010
So, I write with exciting news. I am officially back on Linux and am officially back using Arch. I swapped to the Mac for a while there but it just doesn’t have the same experience for me as Linux. I missed the simplicity of a lot of the apps, I begrudged having to pay for every little app and utility you come across, I felt sidelined by the inexorable rise of the Apple brand, and I felt that Steve Jobs is increasingly treating most Apple users like mugs with the restrictions he is expecting you to accept to use his tools. I flirted with Ubuntu, but I think that’s run it’s course for me – too many distro-specific tricks and changes going on there. I figured if I was going ot head away from the safety and ease of Ubuntu that I might as well go the whole hog, and I’m back with arch for now.
I’m using a much slimmer system – Gnome for desktop, OpenOffice for work files, Gedit for text, Firefox for web and Mutt for mail. Throw in a few of the standard Gnome apps and I’ve got a quick, lean system that I have built, know how it all fits together, and am happy I can maintain. The main thing I don’t like about the Mac experience is that I always felt I was a bit hamstrung by the decisions they made for me and this feels like the way Ubuntu is going. Arch works how you expect, has a great user community and just feels right. I think I might stay this time.
Jul
20
2010
Building the requirements
I’ve been doing some initial work on the app now and have built the basics stylesheets and database tables to let me develop the app and be able to see what I’m doing. It’s important to me to be able to see some meaningful output as I work, and the initial CSS only took half an hour or so to knock up. Plus, I find it easier to keep good HTML coding in mind if I have an output model to aim at – I know the structure of the markup I want to put out and I can change the look of it to something a bit more professional once I’ve built the basic framework of the code.
The requirements text looks like this so far:
Overview
Birding Record is a tool to help birders keep track of the birds they see, the venues they go to and the birding trips they make. The software should be as easy to use as a paper tick-list, but powerful and flexible enough to be able to analyse records in whatever way the birder needs to get the most out of their hobby.
What it is
Birding Record provides:
- as many lists as the birder needs to record the birds they see
- for non-year lists, a simple tick yes or no which records the date seen
- for year lists, a tick to record yes or no, plus a ‘first date seen’ and ‘last date seen’ field for recording migrant arrival and departure dates
- bird records provide space for notes, and for users to upload their own sound and image files for each species
- venue records let you record details for the places you go birding
- journal records let you record notes and bird counts for species seen on each trip, and these can be linked to venue records to build up a detailed record over time
What it is not
Birding Record does not provide:
- field guide notes to help identify species—the aim is for the birder to record their own notes as they go rather than to provide generic information for them
- venue information for where to see birds
- wider migration records for species (although it is hoped that, with a big enough user population, we could collate results on a central site)
My first big decision
I am stuck on how to associate bird records with the lists they appear on. For each bird I would like to be able to record a number of lists, with a simple true/false record to show if that bird should appear as ticked on that list. There appears to be two ways to do this:
- Record this value in the Bird table – nice and easy but will require a more substantial update to add new lists as I’ll need to update every record in the table
- Record these values in a separate table for the list and provide a separate table for each list with each row recording the bird id and date ticked. Makes the queries a level more complex, but would allow for recording extra data such as date last seen and count
Database good practice leads to the latter, only recording the data for birds you have seen. The extra flexibility of being able to record additional data for each tick is promising, the only downsides being slightly more convoluted queries and a bit of overhead to create the table in the first place as it will need to be created with 500-odd rows to initialise the data for each bird. This seems like a small price to pay though, so I’ll build the structure like this, at least to begin with.
Jul
16
2010
I’ve been wanting to try and extend what I do with PHP development for a while. I’ve been coding in it for a while, and I think its time that I put something out for others to look at and use. I’ve been working on an application to manage tasks and projects, thinking a lot about what I need the app to do, and building a framework in which I can develop the code to deliver the functionality. This is ready to go – more on this in another post.
This is all well and good, but the process has been long and the changes very many. Not something that I could put together and write up as great example of developing and delivering software. My idea is to push through and build some of the other apps I’ve been thinking about and keeping a journal here to document my thoughts and processes. I’m doing the work in quite small chunks on the train which gives me a good amount of stuff to write up each day.
The project
The first app I’m building is a tool to help birders keep tick lists and journal entries. I’ve had a look at software available and there doesn’t seem to be anything available online, and the installable software seems to be mainly for PC (not suitable for me as a strictly Mac/Linux user). The core features need to be:
- All British birds are maintained in a database with details on names, categories and other non-changeable (or rarely-changeable) data
- lists for users to keep a record of which birds they’ve seen – life lists, year lists, garden lists, county lists, etc. – some already in place but users can add their own. Each record can be linked to dates so that the user can build up a picture over the years of migration patterns for birds in their areas of interest
- main page will show the list of birds with ticks to show which have been seen on which list
- Detailed pages for each bird will allow users to upload their own photos, notes and audio to build their own record of information for each species
- Journal allows users to record detail for individual birding trips, with links to bird species pages where applicable
These will form the basis of the design spec and screen layout, and I’ll build the architecture in such a way that I can easily extend and add features once it is all up and running.
Watch this space…
Post script: Anyone reading this who wants to have a look at my task management application and give me some feedback – please drop me a line!
Jul
06
2010
I wonder where the best places to go birding are in London? I bike from Vauxhall to Euston every night and, while I like to think I’m observant and take an interest in my surroundings, I’m sure I miss out on seeing a lot of interesting stuff that’s only just off my beaten track. Must get the map out and see if there are any potential little spots to discover. There’s always the pelicans in St James’s Park, but I don’t think that counts as a proper tick…