Too Many Projects
Sometimes my own coding ability drives me insane. Problems need solving. But I can't solve them.
Today I tried, for the whole day to do a trial move over to SQLite from MySQL of everything held in the database that backs up this blog. Could I do it easily? No.
My problem is routed entirely in my personality. I am quite willing to start new things but I often do this before I finish off another project. So in effect, I get nothing done.
Because I'm always trying to avoid finishing things.
You see, it's much nicer to start new things than finish old things. Old things are boring.
If something fails to constantly interest me, then I can quite easily forget about it and move on to the next thing and leaving that old thing, sitting there unfinished.
The perfect example is today. I haven't finished learning MySQL properly yet, but I'm wanting to move everything over to SQLite as I perceive it to be much better and faster and I feel that without putting it into mainstream usage, that I won't get the most out of learning it.
The trouble with this idea though is that it means that that's another book half read. Another thing half understood. I really need to do something about.
Steeped deep into this is my habit of trying to do many projects at once. Because I seem to spend more time thinking about doing things than actually doing them then I end up loosing track, and making more notes than I can handle - I mean physically, rather than mentally here, paper and electrical devices are not exactly in short supply.
The thing about running one project at once is that you can apply everything to one thing, then move on to the next, taking with you what you have gotten out of the last project and put it into this next project. For example, if I learnt Ruby coding a CMS for this company a week ago, then next week - two weeks later I can go ahead and apply this to the blogging engine that I create, shortening the time to almost live as I've already learnt it, even if it isn't as fresh in my mind as it could be.
I feel that in someways it in inherently stuck in the way I currently do things. To some degrees I am always on the look out for new projects and this isn't a problem because these are easy to brainstorm, write a little about them then throw them in a folder somewhere for me to pick up in 6 months time when I am bored and need something to do. This as a system works well. I have 7 project ideas written down for when I want to go back and have a think about them.
The trouble is, once you look at all of it at once, I am infact trying to do 4 completely different projects all at once right at the the same time. For someone that procrastinates as much as I do, that isn't so effective.
So, for me to actually give something more than a long rant out of this post, I am going to suggest that having too many projects is a rather bad idea. But having none is about as bad.
Projects themselves aren't bad. It's what you do with them. Two of mine are design projects and have been there for a rather long time. About 6 weeks. For me and a design project that seems like a rather long time.
What I am going to do is cut down on how many I try to do at once. That is of course once I get these completed. And I'm going to finish reading my MySQL book which I started 3 months ago.
Short of just ticking off bits on a list, rather it cuts down how much you do at once, by cutting down, it doesn't look so bad when I spend the whole day trying to convert from one database type to another.
October 11 @ 12:58 AM | 0 CommentsTrying out OpenOffice.org 3
After reading about their ambitions to have a final release of version 3 sometime soon, I thought I'd download RC4 and give it a go.
It's better. But it still sucks.
It's heavy, bloated, too Java heavy and any thoughts of UI design were completely ignored.
And that's what it's always been, and probably why I don't like it. I must say though that it is much better from the last time when I tried it when it was bloody awful. Especially on Macs.
Perceptions
Perceptions are a bit part of software design, which is very often left until the last minute. It seems that software developers want to throw everything at you, and expect you then to react to everything at once.
Either that, or they go against platform conventions and confuse the hell out of you.
That is what is done with Open Office, it feels like you are using that poorly coded Java app that you were sent to test out which was designed by someone who's only ever used Windows.
In a way it suggests half of the problems with cross-platform code in that it cannot be perfect for everybody. Well, it can't when you are trying to do everything for everybody using the same code base.
OO.o for Mac is steeped in it's history for requiring Java and X11 to allow it to run "just about" on a cross-compiled code base. That is of course because it was originally the *nix code just compiled for OSX - hardly a glamorous way to do things.
That is of course one of the problems with OSX, but perceptions are key and if it doesn't feel right, you're sure to inadvertently put people off.
All summed up, that is my main bug bear with OO.o, it just doesn't feel right.
It's quite nice on Linux though...
Java
This probably could have gone under perceptions too, however it's mostly routed in Sun's interest here.
Java is that irritating enterprise style way to do cross-platform. Instead of coding each version properly, it is instead all thrown on the single code base which is then pushed into each and every other one around.
OS X, unfortunately has a rather different way to do menu items. This means that Java apps feel even more out of touch than they do on either Linux or Windows.
The problem here though is that the Cocoa bits are interceded with the Java bits. I don't like this. It feels like a half-arsed way to make the more boring parts of the suite work together.
Like, the preferences, the "Wizard" and the other not so cool to code bits.
What needs to be done?
Scrap it. Stop the project, and start all over again is what I would do.
Either that or have a much better contender, something that has different bases of code for each platform, decent versioning control that means that code can be pushed back together again if needed.
I'm not saying that OO.o is utterly rubbish, I've only tried it about three times on three different platforms and only felt that it was good on Linux and even then it was horribly slow. I could once see it having it's hayday, but now I can't. It's a big monolith of a project that is out of hand. Quite ripe for something to take it's place?
October 10 @ 05:48 PM | 0 CommentsHow Not to Design a Chair
For someone who sits at a computer for extended periods of time, your chair is rather important. This especially true for designers, developers and copywriters. The trouble with a bad chair is that you can conduct a mindless amount of things from not sitting properly and this can usually be bought back to your chair.
I have a terrible chair. It wasn't particularly cheap and for someone who uses the same desk setup for an extended period of time it causes me quite a bit of pain. Like when I bought myself a proper monitor and keyboard for my laptop though, it's often left to one of the last things to be considered.
I have a rather nice setup, my monitor is large and at the appropriate height, my keyboard suits me reasonably well (although, not so much for my right hand) and my desk is at a good height.
The problem I often face however is upper back pain, pain in my wrists and neck pain. When it is all added up, it's not so nice and could in the future cause me some serious problems.
The main thing I can put this down to is my chair. It is not that adjustable, is quite hard, generally poorly designed and not high enough for me.
The biggest problem is the arm rests. The arm rests, for some insane reason hold the back to the base of the chair. This means that I cannot remove them without having a stool. This also means that the back is impossible to slouch in.
For some, this may seem as an advantage, if you can't slouch, you won't slouch, right?
That poses the inherent problem, instead of absorbing yourself into the chair, you move against the chair and slouch "inside" the chair, sitting your back at a very poor angle.
This is where I put my upper back pain into. By not sitting on my chair properly I bend my back making it hurt.
A couple of years ago, and still now it seems, desks came with keyboard compartments. This would allow you to fit a reasonable size CRT monitor on your desk and still be able to fit a keyboard there. Of course, with the mainstream use of LCD/TFT displays, there is now enough room on the desktop itself allowing you instead to fit it there.
This does of course make the compartment useless. For me, it's in the way. When I am sat properly at my desk, my knees hit this and stop me from properly allowing my legs to stretch out. In some ways, I can put this down to why I don't sit at my desk properly, because it's uncomfortable to sit properly.
So what is the moral of this post? Get a decent chair.
In the future you will save hours and hours of time spent moaning about it, you will get more work done, and you won't end up being in pain when it's really not good to be. As a freelancer, you can spend more time getting projects done, than recovering from back pain and whilst you shouldn't really spend hours upon hours in the same position, you will be able to be in a good "position" to get what you intended, done.
October 8 @ 09:43 PM | 0 CommentsDropbox: Versioning and Thumb Drive loss Averted
Versioning and Memory are one of the most irritating things known to man. The advantage of everything being virtual is that both of these are taken care for you, unfortunately this is usually done in the most complicated and awkward ways possible. If not, you're charged through the teeth for the privilege.
So, entering here is Dropbox, it's a free web and desktop app which works with Windows, Mac and Linux that allows you to keep everything up to date and synced together. It's somewhat like MobileMe, done right, for free.
With a free account you get 2GB of storage, all kept offsite with revision control handled by the web app. Once you drop a file into the folder, the "dropbox" then it's uploaded to the site and you can access it everywhere.
Going back to how I opened this post, you may be wondering how it saves on both versioning and memory, for one, it provides you with a set of revisions to the file and where it was changed which is in turn uploaded to the web app, this can then be linked to, so others can download the file (saving on mail attachment size errors), on top of this it rather nicely supports folders, which stops you from having everything in one big, unorganised folder.
In terms of memory, it saves you carrying around thumb drives, I'm rather good at forgetting them, fortunately this is usually at home and for when you are just using a mass of small documents, like for example a project proposal this really cuts down on having to fire off excuses when the deadline is due and you stupidly left it in one place.
Not put to much consideration is the usefulness of it being inherently an offsite and distributed backup system - especially if you have more than one device setup, say your laptop, your desktop and on the web app.
The "Dropbox" syncs automatically, well, usually a few seconds after it is written too and uploads the data to the site, once this is done the file/folder is listed with a big green tick, and when it's being syncronised a blue set of two arrows turning around.

The great advantage to this is that it's free, unless you plan on using it for a crazy amount of space, or for your main backups, which you can buy up to 50GB for about $99/£56 per year.
I'm yet to try anything other than the Mac desktop app or the web app in Firefox 3, but I am hoping that it will gracefully degrade in IE6, which I am forced to use often.
October 8 @ 05:58 PM | 0 CommentsSQLite: Breathing a Breath of Fresh Air into SQL
For the last year and a bit, I have been meaning to try out SQLite. Today I eventually got around to doing it. To say the least, I'm amazed.
Database administration is, in my opinion pretty boring. Installing the app, configuring users, setting permissions, creating the database and all of the rest takes time, and tools to do it aren't particularly user friendly. SQLite is rather different.
It is comparable, in the very loose sense of using MSSQL to an Access database. One is centralised and the other is stored as a specifically run system. With MySQL you have to communicate with the MySQL daemon to access the database, with SQLite it is entirely dealt with as a flat file.
This means that there is no complex setup to go around to get up and running, permissions are dealt with by the operating system and it's much easier to backup. Because of the lack of complexity, it's much faster out of the box too. Which, lets be honest, you didn't really optimise MySQL, did you?
I can say that I have been converted, and will from now on be using it. Now, to work out how to move my blog over to it...
Setup
Installing SQLite is dependant on your OS, of course, but in Apple's Leopard Server, it is preinstalled.
The latest release, being SQLite3, is easy to test for your install by doing the following:
sqlite3
.exit to get out of it. If it responds with a bad command, you don't have it installed.
Conventions
As SQLite is a flat file instead of a complex application setup, it is much easier to use. Once it is installed, it is accessed by using the full file. For example:
/var/www/sqlite/database
Once you start using it, you forget about the times where you had to create the database, create a user, assign
October 5 @ 07:48 PM | 0 Comments