Archive for the 'Work' Category

Experience++; Job satisfaction–?

Monday, 25th December, 2006

A couple of weeks ago I was having an informal discussion at work about another developer’s performance on a project. The developer had strayed from company convention and in his eyes had used many ‘best practices’ to improve things.

However, despite his best interests, the implementation was not only detrimental from a maintenance perspective (having increased the cognitive load for other developers by breaking from ‘the norm’) but also from a technical standpoint it was ‘best practice’ mis-used.

This was an unfortunate predicament but far from unique. A combination of inexperience and programmer’s ego had lead him to re-invent the wheel. Development time had doubled due to re-writing existing code (that worked).

I didn’t write this post to bash this developer as I’ve stood in his shoes on more than one occasion and re-written tried and tested code because I could make it ‘better’. The mentality of good developers is to do things right, not provide short cuts for convenience.

“I could use less code to do the same thing more efficiently and make it more cohesive, great!”

I thought to myself, so I did… it was fun; I was learning, getting to try out all my new found knowledge but it took me twice as long (at least) to fix bugs and implement new features as I re-invented the code base, byte at a time.

Fast forward to the present, when reflecting on this conversation I realised I still shared many of the same ideals as said developer. The key difference experience has taught me is to leave my experimentation at home and try not to bring it to work unless I’m confident that a solution that looks great in theory is also great solution in practice. Don’t make work your play ground.

Not being the developer in question and observing another’s work provided me with a different perspective. It allowed me to see how dissolved we developers can become with the problem and not see the bigger picture – we’re there to help run a business.

I find this both motivating and depressing. Motivating because of the responsibility and opportunity to produce a great product, on the flip side depressing because I’m not sure commercial programming still leaves room for what attracted me to programming in the first place… fun and freedom for creativity on the job.

I think the fun factor that every programmer feels when they first start or learn a new way of doing something will always be on a rocky road of high and lows. Gaining experience means those highs are spaced further apart.

Merry Christmas!

Update: I know it should be satisfaction minus minus but Wordpress thinks otherwise! (dammit, it won’t even let me write it in this post)

My first week as a Mac user

Saturday, 28th October, 2006

This was my first week in my new job and on an iMac. I was looking forward to trying out OSX, I’ve seen OSX grow in popularity over the last year or two in the development community – a lot of the screen casts are done on Macs.

I was told by others in the office that I’d be sold on Mac within the first day or two because “its much better than Windows”. After a week on it though I still find OSX gets in the way. I find myself using the keyboard more on OSX than Windows. My biggest gripes about the platform:

  1. Where have the HOME, END, PAGE UP, PAGE DOWN and INSERT keys gone? What are these useless keys in their place?
  2. I now have MORE keys to press to select a line of code and remove/cut/copy it. Apple + Shift + Left arrow to select (if at the start) and then Apple+C. Windows is just Shift + END and CTRL+C.
  3. Everything in Mac OSX is Apple + this, Apple + that, well not in a Terminal, you wanna kill that process? That’ll be CTRL+C, you wanna use Nano, that’s the CTRL key again.
  4. I miss not having a Taskbar
  5. I like to maximize my windows – this is not the done thing on OSX. The “+” button appears to be random/useless at resizing your app. Double click the app title bar – minimizes to dock :(
  6. I’d like to resize my app window, MORE mouse clicks required, lets move the window left a bit first then go the bottom right corner to resize.
  7. Minimise an app, then try to Apple + TAB to restore it back to the foreground – where is it? Still hiding in the dock.
  8. Close all open windows of an application – ALT+TAB, it’s still in the app list – wtf? Select it, nothing… oh it’s in the top menu – I have to Apple+Q or Exit from the menu.
  9. My mighty mouse might look cool but I keep right clicking in Firefox bring up the popup, or jumping to Dashboard/Expose accidentally when I want to left click.
  10. bbEdit’s comparision isn’t as good as Examdiff
  11. bbEdit’s multi-file search is slow compared to UltraEdit on Windows
  12. No Regex Coach on Mac :(
  13. I prefer Outlook to Apple Mail
  14. Who really needs 16 function keys?

So half of those are about the hardware interface – can I change to a regular USB keyboard and mouse on Mac? Does the Windows key map to the Apple key?

There are some things I like about OSX though:

  1. Expose is useful and is a saving grace for not having a Taskbar
  2. Apple Mail junk filters are good.
  3. It’s nice to be able to jump into a *nix shell at the push of a button, Windows command prompt sucks in comparison.
  4. Dashboard is handy for quickly getting to Calculator
  5. Quicksilver is cool, I’ve got to get into the habit of using it though!
  6. Interface is cleaner – drag and drop is more common place than Windows apps. Mac Office looks very Microsoft, lots of toolbars and buttons which is out of place compared to most other Mac apps.
  7. Interface looks cool – novelty fades quickly though

At the moment for me OSX is just another platform and I’d still take Windows through choice.

Jumping Ship

Saturday, 21st October, 2006

I finished at River Island yesterday. I wasn’t at River Island long (12 weeks) but pretty early on I realised I’d made a mistake.

As the saying goes we’re supposed to learn from our mistakes but on reflection I think I’d make the same mistake again. I don’t think many experiences are truly bad, and in hindsight I think this last job was a worthwhile experience that helped me clarify what I want to do and where I want to be professionally.

The things I know I won’t miss were my 6am alarm (which typically only allowed for 7hrs sleep a night) and commuting 3 hours a day!

The rise of Mac in developer land

Thursday, 28th September, 2006

Is it just me or are all the cool kids using Mac’s these days? I’ve not used a Mac since primary school – we’re talking mid 80’s!

I’m eager to give TextMate a whirl and see if I can produce code at half the rate of those guys in the screencasts. I’ll soon get the opportunity since I recently accepted a job at a Mac shop!

(some who made the switch aren’t entirely happy).

Upgrading from MySQL 3.23 to 5.0

Saturday, 10th June, 2006

I’ve spent too many hours this week porting the company database from MySQL 3.23 to 5. This was probably a bit more painful than it needed to be because we’ve not upgraded MySQL versions… ever.

The biggest hurdles were manipulating the SQL dump file (we had to dump and re-import due to MyISAM changes between versions) and leaving MySQL 5.0’s server mode as STRICT (as recommended by the installer).

Manipulation of the dump file (which was 13GBs) really made it stand out how modern programmers don’t necessary think about resources (or don’t have to with memory managed languages). I guess with the ample resources of most desktops for day-to-day operations its easy to see why. However, trying to load a file of this size made every Windows text editor I tried, fall over (either loading or saving).

In the end I chopped the file into 1GB chunks and edited those with gVim. In hindsight I should have split by line number and not by filesize.

Although it was the easy way out (and we should have updated our SQL), changing the mode to mysql323 saved us a LOT of work. Few application changes were required, the main one was for a replication issue. Replication would stop on certain CREATE TABLE statements where a default value was specified on integer auto_increment columns (gotta love legacy application code!).

When running our system on my dev machine with PHP 5.1.4 and MySQL 5 it did feel ’snappy’. I think this was probably more psychological than anything else.

You are currently browsing greg's weblog archives in the Work category.

Categories

xhtml 1.1 compliant   xhtml 1.1 compliant