Archive for category General

Misconceptions about Freelancing

Having freelanced for a while now, one thing that becomes irritatingly clear is that those who don’t freelance have some terrible misconceptions of what it is really like. Here’s a brief hint – freelancers do not have more free time, and it is not stress free, not by a long shot.

…and for the record,  I prefer it that way.

[I know that there are going to be full-time developers who read this and say "I do that too, it's not just freelancers" and depending on the company they are with, they could very well be right. With most companies though, you start at a specific time, and finish at a specific time. The company isn't going to set you homework, or demand you learn x or y. Again, with MOST developer companies, certainly not all.]

 

There is a difference between having flexibility and having freedom – you still have to do many hours of work – sometimes more, sometimes less. If you are late on a project, then it is not a manager above you who will deal with the client, it is you. As easy as it sounds to “just do 8 hours straight and it will be done”, you also have to take into account the fact that clients will phone you at unexpected times. Previous clients may contact you to want quick changes – ones which throw you briefly off course on your current project.

Aside from client work, you also have to keep your skills up to date – what are the new frameworks doing? What are other developers working with? This leads to quality time networking with other developers, even if they are essentially your competitors. I am not saying this (or any of these) is a bad stage, but it does add up to serious amounts of time.

Now let’s assume that you, being the dedicated developer, have your own projects too. You have just set aside maybe 10 hours to finish a client project which had an unexpected twist, and now you really want to get some of your own projects done – ones which are on top of the client work, and on top of tinkering around with new frameworks or concepts. You are likely combining this step with the previous step – developing your own projects and trying out some likely experimental ideas or at least concepts you haven’t done yet – the bonus being that the deadline is decided by you.

On top of that is expected client communication – where you set aside time to contact potential clients and discuss their project, iron out any problems, and negotiate. You could spent a good hour or more doing this with one potential client, and STILL not get the project.

If a freelancer fails someone, then it is at their peril, not a battle-hardened boss who has had decades of communication skills. You are not going to get a “guaranteed” salary and a slap on the back of the hand for letting a company down – if you slow down the work, you earn dramatically less. Simple as.

I am not complaining, or trying to paint a dark cloud over things. I am trying to explain that, as a freelancer, you are not going to have the freedom which most non-freelancers seem to assume.

 

Common Scenarios:

“You could have cleaned the house? – you were home all day!”

“Yes, I was home all day, in my office, working flat out for the last 8 hours, now I am about to go back in there and finish a few things off. Then I might work on my own project for a bit.”

 

“Coming to the gym? At 2pm? Seeing as you can just work later on instead…”

This is where it gets irritating – the “Seeing as you can just work later on instead” as if I would be rude to turn down the offer of dodging out for an hour. I cannot count on fingers how many times someone has added that to the end of a question, implying that I have no good excuse. Just because you are in a job which involves clocking in at set times, doesn’t mean I have it any better off. If I had a dentist or doctors appointment, or some other urgent request, then yes, but not necessarily recreational reasons which typically take hours, especially if you tack other ideas on to it.

 

“Can you do {insert almost pointless errand here}? It will only take you half hour…”

“No I can’t. You see, during the day, I tend to charge people for my time. Things like that throw me off course with whatever I am currently working on. Doing anything else when my mind is set on working, is a very frustrating task that will only get done half-assed.”

 

“I have the day off! Coming to do {something recreational}? Everyone else is in work.”

“Yeah, that ‘everyone else’ also includes me. You having a day off does not make it easy for me to skip a day’s work.”

 

“Coming on holiday for 2 weeks? You don’t have to ask for time off!!”

“No I don’t. But I also stand to lose a small fortune for that time off. I also need to warn clients that they will not likely be able to contact me during that time, unless we go on holiday somewhere with a reliable internet connection. Even then I bet you will moan the moment I have to stop in the hotel for a half a day. Remember, I don’t get a paid holiday entitlement either.”

 

(As a finisher to most of the above) “Yeah, but you can just work longer another day, or two.”

“Yes, let’s turn a typical 9-12 hour work day into a 16 hour day! I’m sure when my eyes are bleeding and my brain has slowed down from overload, then I will look back and smile that I got to sit in your house for 4 hours staring at an Xbox with my mind stuck on work…”

 

So, freelancers are scrooges? No…

I do think about spending time with the people above – just, there is a time and a place for it, and certainly not a week day afternoon. Evenings are much easier to spare, and so are weekends – the flexibility during the standard week day doesn’t mean it’s a good idea to avoid working during it. I can take arbitrary breaks, but not for long, and I still make up the time somewhere, as close as possible to the time taken off.

Even though it may be the “same thing” as working on a client’s project – working on my own projects feels a lot different. There is a certain extra freedom to it, because I decide what goes into them. In my mind, personal projects are more recreational, so they may be a nice evening task. Fact is, it has the side-effect of helping my skillset.

Freelancing is its own unique challenge. It can have some serious pain-inducing episodes where things seem to be going terribly unreasonably. You are going to get clients who will take advantage of you, and make any time spent on their project a serious pain. On the flip-side though, you are going to get mostly very pleasant clients where things go smoothly, and both parties look back and smile at how nicely things went. Getting paid to do the job you love, and seeing the client happy with your personal effort is a very rewarding end.

 

No Comments

Fitness First, Pengam Green (Cardiff)

After joining the gym again, I have to say their tactics to get people to sign up are just terrible. Before I do though, I am not here to rant about “cancelling a contract half way and expecting it to be allowed” – I am on about the actual process of even getting the contract.

For that matter, I also do not have any gripes with the facility, staff, or the pricing. I enjoy every visit there, and get a lot out of it. They have done particlarly well with that club too, and the wet areas have been re-tiled and cleaned since a few years ago.

 

The sign-up

We arrive (there are two of us). Someone from memberships comes down with a nice smile, and polite personality. She goes through various points about the contract (very briefly), stating you can cancel anytime if you either:

  • move 10 miles from the gym
  • have a doctors note to show a serious medical condition
  • you lose your job

Of course, those, according to the actual contract, are NOT permitted, and this is where the terrible part comes in.

You’d have thought that at this stage, actually seeing the contract would have been a normal, acceptable request. To that, she replied “I just said the terms” (And she repeats them). Unfortunately being with a friend who has now handed over his credit card, and things start to make me look like the overly fussy type. It’s called being cautious, and with good reason.

She came back with a few tiny forms asking for the credit card details and a few tickboxes, and of course the health and safety declarations. She then takes the cards to do a credit check and “get things enrolled”.

Finally, we are handed an electronic signature device, with a few “are these details correct?” tick boxes, But also, there is a big glaring checkbox stating “Do you agree to the terms and conditions?” So I  asked if I could actually SEE the terms and condtitions, to which she replied “as I said before, the terms are that you can cancel if {the terms I stated above}”. I pointed out that in fairness, that is not legally binding, but then she stated that “we will post you your contract within about 10 days”. I still insisted on having a physical copy of it there and then. Three hours later, it was finally printed out and given to me.

 

The Contract

The contract does NOT allow any of the cancellation points which she stated. So the friend, who signed a contract which he never saw (and a month later, did NOT recieve in the post) has signed up to a pack of lies, basically. The contract, in fairness, is pretty standard, and just covers rare events (like if the building has a defect and has to be closed, Fitness First cannot be held responsible and will not refund the wasted time).

As for the cancellations – of course, you cannot cancel until the minimum term is up. You’ll find that with most contracts. If you stop using your mobile phone, you cannot just cancel the contract. When I was a member with them a few years ago, cancelling was very straight forward – I just had to provide a signed note of my intention to cancel, and the next month it was done. My reason for that though, was because I was moving to another city, and no one phoned me to try and coax me into staying.

 

The Conclusion

My only complaint and point to all this though, is that there is no need to be so devious when it comes to the contract. You cannot expect people to “agree to terms and conditions” which have not been pointed out to them in writing. I felt incredibly uncomfortable throughout the entire sign-up process because the memberships staff member acted as if she was trying to hide something whenever I asked to see the contract. Heck, she wanted us to sit in the lounge area whilst she typed things into a computer by the reception desk (we soon joined her at the reception desk), and was gone for up to 15 minutes on occasions. Also, someone telling you the terms in a very brief sentence is NOT legally binding.

The fact my friend is yet to receive the contract is also a bit devious too. I have not received the copy through the post, but luckily demanded it there and then. Considering the electronic signature device saves the signature to the contract (BEFORE you receive it) is very bad. Essentially, his signature has been saved to a contract which he is completely unaware of.

I can understand the trouble Fitness First has had in the past with people cancelling the direct debit and ranting online en-masse about how the bailiffs are coming round. But Virgin Active’s process, even though far more expensive, was to show you the contract before anything else, and ask you to sign various individual parts of the contract to show you had read and understood it. THAT is how it should be done. From a freelancer’s experience, having fewer clients who understand the payment process and terms is better than loads of clients who do not understand it. The resulting upset on both sides just isn’t worth it. Just be up front and honest.

 

No Comments

Why I despise greetings cards.

Christmas has come and gone. Thankfully with it was far less greetings cards than before. Instead, places like Facebook, Twitter, or heck – good old fashioned email seem to be taking over. Some places even offer a service to craft your own cards online and have them posted, but that is besides the point. This rant isn’t even based on the usual “greetings cards are simply a money-making scheme for Hallmark”, etc.

The message behind greetings cards is that they are supposed to be a welcome gesture of thought – a demonstration that the sender has thought of your current situation. Instead, they seem to be used as weapons of guilt against each other. Two common examples:

- Person A: “Person B didn’t send my a card this year, how dare he. No way am I giving him a card.”

- Person A: “I sent a card to person B, but he didn’t write one back for my birthday. He can forget it in future.”

The above two scenarios are often bolstered by a rant to someone else in the group of people who know each other, as if there is some blatant point-scoring attempt. Suddenly, because person B didn’t write a card to person A, the entire group has to sit through a rant of how disgusting person B is. Some of them also “join forces” and refuse to send person B a card. Suddenly, cards are not a gesture of good will, but a weapon of bad feeling. One which, pathetically, causes some people to go on and on about it for weeks.

Let’s look at things in perspective. A card is a thick piece of paper, with some seasonal image or humour, with a pre-written message inside. The person buying the card just writes who it is to, and who it is from. They pop it in an envelope and off it goes. The other person recieves the card, takes a 10 second glance and decides that that person is getting a card in return, and pops it on the mantle piece. Both people are essentially trading small change, and often do not even speak to each other. If they do meet for the occasion, then the entire point of the card seems wasted when they can simply wish a happy birthday in person – after all, isn’t the social interaction, and the time taken to visit the person more important than “simply popping a card in the post?”

One of the rants is that “all person B has to do is buy a bloody card and write his name!”. Again, what is so special about that? 

Now for the most disgusting situation. I saw a friend spend ages drawing her own, personally crafted card. She spent HOURS on it. Those of us with sense would realise immediately, that she was giving some serious thought to the person to dedicate so much time into it. The person who received it said “heh, she was too cheap to buy a card”. So, a £1.45 card is somehow worth more than a few hours of someones time? Also consider the fact that she was behind on her assignments – easily, even one hour of her time was an absolute premium. That situation left the most disgusting taste in my mouth.

Now take Christmas. Some people still go through the lengthy task of filling out 50 or so cards to people they know. The usual “to {someone}, from {me}. A few hours used on a cheap 100 pack of cards. Again, where is the special moment in that? Especially when it is backed up with “I still have to write out those damn cards. Suddenly it’s a chore – one people seem to do only to conform with tradition. One which is thankfully on its way out.

I am lucky enough to be in a circle of friends who also wouldn’t, for the life of them, consider buying a card. People who, if they receive one, would leave it laying around somewhere until the event was over, and then throw it away. I don’t care if I get “only” three cards for my birthday, because the only thing I remember about it is the gathering of people who turned up. The cards however, go back to be recycled.

The other day, I actually got rid of a stack of old cards from my 17th birthday. The sarcastic reaction of someone nearby was “oh, you’re sentimental’. This was from someone who I have never ever witnessed, look back through old cards – instead just keeping them there as if there is some air of guilt if they dare to get rid of them. Personally I don’t look back and care who gave me a card.

So, to summarise, don’t waste your time, at least at my expense. You will NOT receive a card from me, because my ONLY memory of them, thanks in part to decades of point scoring between other people, is that they are just a social “one-upmanship” tool. I refuse to have any part in them whatsoever. Of course, your milage may vary, but no thanks. Do something more worthwhile with the potentially £3 you could have spent, and instead, try phoning the person, and not just fob them off with a quick “from me” on thick paper.

No Comments

Why I am not fussed over “Metro” style.

Microsoft very recently released an early developer preview of Windows 8 – along with typical selling points such as “full screen apps”, and the unfortunate ability to only see one application at a time. Yes, unfortunate.

What seems to have happened, is that Apple loved iOS and it’s successful interface so much, that they incorporated SOME parts of this in to OS X Lion – what you get, is the familiar OS X desktop, but with the addition of Launchpad, and “full screen” should you so wish to use those features. The key point here is that, those extras are not forced on to you. Microsoft on the other hand, got excited about this, and decided that their Windows Phone interface would be the first user interface you see when using Windows 8, with “Desktop mode” as a slab within the Metro interface. Immediately the familiar availability of a workable, comfortable desktop environment is utterly replaced with one designed for a touch-tablet device.

Unless Microsoft are insane, then there will be an option to completely avoid “Metro”, and go straight to “Desktop” mode. Otherwise they have just given every company out there a perfect excuse to consider less restrictive alternatives when it comes to upgrading.

 

Using the best tool for the job

A touch interface works great on a typical tablet device. The limited inputs and interactivity is replaced by very straight forward navigation and intuitive swipes and touches to get to what you need. The lack of a physical keyboard means that accessing an app is likely easier for someone than bringing up a virtual keyboard and searching for the app name. This is where the impressive and successful points to iOS and Windows Phone’s interface come in, and the reason these devices are so usable is because the OS is designed FOR these devices. If either company were to try and use the desktop paradigms on such a device, it would be usability hell.

So why do these companies seem to think people want to navigate their desktop PC in the same restricted fashion? A single “Full screen” app on a desktop PC is great if you are watching TV or a movie. But what about the umpteen hundred other tasks a desktop is suitable for?

The killer feature of a desktop, compared to a tablet, other than its more immediately available familiar computer-human interface is that it can multi-task just great. It is what most people have spent their hard-earned money on upgrades for – that extra oomph of performance when running multiple, increasingly demanding applications on increasingly demanding Operating Systems. It seems one giant step backwards trying to enthusiastically sell features such as “full screen applications” on a form-factor so large, that you have to wonder who their target audience is. Certainly, it not anyone who uses their computer for more than opening their web browser (which actually, is likely a very large user base).

 

My arms, they ache.

Yes, desktop monitors are appearing in droves hosting touch-screen functionality. I am willing to bet that if you know anyone with one of these monitors, they spend more than 95% of the time interacting with their PC the good old fashioned way – their monitor still sat there, gleamingly clean from not having to be poked, swiped, and tickled by hours of interaction with the person sitting in front of it. Now, sitting at your desk – imagine your monitor is touch-ready, and that you are navigating a huge version of your smart phone’s interface. You might slide the monitor close to you so it is easier to reach. You might tilt it a bit, or a lot. But no matter what you do, your arms are going to get damn tired quick from navigating the far larger screen, especially if it is moreso vertical.

Also try using your tablet device whilst it is held up vertical. It’s not pleasant, especially resting on a desk. Now, sure, you can pick up the tablet and hold it in a more comfortable way, but not so much with a 22″ monitor connected to a desktop PC under the desk. If you have one of those monitors with a built-in PC, then you have the extra weight.

Now imagine a great example of a “Full-screen app” – a TV. Since when do you rush over to your TV to physically interact with it’s controls, rather than sat on the sofa using a remote? Again, touch screen interface irrelevant.

 

Conclusion

It is still early days. I am not going to get overly critical of an OS preview so early in the day. The point I am making is about the touch interface, not whether Windows 8 gets a classic desktop mode by default, or as an option. I sure hope it does, but again, it is early days.

As is stands, someone is going to think of a very cool use for a touch screen and Metro. Perhaps a kiosk, or wall-mounted information screen. But for those of us that like to use a desktop to do actual work, then Windows 8 looks to be a usability hell, at least in my opinion.

It does raise the question – forced into a situation where the user has to learn a new desktop paradigm – will they? Or will they just see alternatives such as OS X a better upgrade option.

If you want a pseudo-demo of Metro, but don’t want to actually try Windows 8, or a Windows Phone device, then the closest is Windows Media Centre. That sounds daft, I know. But open that, and navigate around the settings, then find and launch a video from somewhere on your computer using only Windows Media Center. Did you like it? Did it feel like it was made for a desktop interface? No? You won’t like Metro then.

No Comments

Setting up a Macbook Pro 2011 With Bootcamp

This is by no means a difficult process, but prior to doing this, I had a few questions which were answered near perfectly by jumping in and setting up Windows 7 in Bootcamp. If you are thinking of dual-booting your Macbook Pro and getting the ultimate developer machine (or pretty much any task a modern computer can do) then read on. If you want your Macbook Pro to become a pretty decent gaming laptop, then again, you have come to the right place.

 

Frequently Thought Questions

Gaming performance.That shiny, rather lean machine can’t compete with a supersized Alienware, can it? Well, probably not, but compared to my Dell XPS M1730 – which has dual 8800M GTX graphics cards running in SLi, and hardware built for gaming, the Macbook Pro certainly does it’s best to keep up, however it can get HOT. VERY hot. The aluminium surface to the top left of the keyboard is enough to scald, and that was after about 6 minutes of trying out Supreme Commander 2, with a second monitor, on high settings. Call of Duty: Blackops however, ran for a good ten minutes without much heat. A few other games have ran without the fans screaming, or the Macbook negating the need for central heating, but I haven’t tried Crysis on it yet.

As for the Windows Experience Index, it scored a 5.9 without having run Windows Update, with the Hard Drive being the lowest value.

Macbook Pro early 2011 Windows Experience Index

File sharing. Both Windows and OS X can read each other’s files, but not write to them. If you are thinking of sharing, say, your Firefox and Thunderbird accounts between both operating systems, then think again – unless you store the files on an external disk. With that said, I can still share my virtual machines between both operating systems, which I will explain later. No, it is not some archaic process either.

Driver support. Hah. You might think that Apple wouldn’t put much effort into a competitor’s OS being installed on their precious machines would you? Actually they gave it a lot of thought, and every piece of hardware is a quick wizard install after first installing Windows. No running off to find drivers, no searching around for work-arounds and tweaks. Even peripherals such as the remote control, and Magic Mouse are supported. Not only does Apple’s display’s do good justice for Apple’s interface design, but they compliment Windows incredibly with their impressive colour, brightness, contrast, and pixel resolution. Windows 7, in it’s default blue glory, looks amazingly vibrant on the Macbook Pro.

Changing your mind. If Windows goes sour, is there a special process to remove it? Sure! Just delete it from the Bootcamp assistant in OS X. Job done. If you avoid activating Windows before the 30 day grace period, then you have not ‘sacrificed’ a licence key either.

Hard drive space. This isn’t as bad as any other machine I have dual booted. OS X has about 70GB left out of 500GB, whereas Windows gets the remaining 250GB. Even with a pretty strong Steam games catalogue, Windows has a lot of space to spare, and I am having a hard time using up the remaining 70GB given to OS X.

 

The Installation

Backup your important files. It is always tempting to leave this step out, but nothing is worse than having your files trapped on a system when you really need them. If your files are important to you, then they should be stored in more locations than just your hard drive by now. The following process was very smooth and I cannot see it going wrong, but backing up is a good habit to get in to, and the moment something does go wrong, you will thank yourself over and over that you left your machine running overnight to copy files.

Installing Windows 7 was easy. In OS X, run the Bootcamp assistant. It will ask you to print a manual, and ensure that you have the necessary drivers downloaded from a location it offers to take you to. If you have the installation disc that came with your Mac, then you can skip this step, as the drivers, for Bootcamp, are included on that disc. The final screen will let you resize the partitions to make room for Windows.

Next, the partitions will be saved, and if you are ready to install Windows, go ahead and click to install it. Otherwise come back later with the installation disc!

The Windows installation process is the same as usual, but one thing that might make you think twice, is that the Bootcamp partition, when asked where to install Windows to, will need to be formatted (click “more options”, then format). The only point to watch out for is that you definitely have the Bootcamp partition selected when doing this, and when clicking “Next” to install Windows.

When asked, do not tick “Activate Windows automatically” unless you are happy with your licence getting used before giving Windows a proper test.

Once you have gone through the user account setup, and are now looking at your fresh, clean Windows desktop, it is time to pop the Mac Installation DVD into your drive and run the setup wizard. This will install the necessary drivers for your Mac hardware.

Now run Windows Update. Done!

 

Switching between OS’es

I vaguely rememver older Mac’s providing the option of which Operating System to boot into when starting up. You do not get that option now. In fact, unless someone poked around your system, they would not know there is another Operating System installed.

The option to switch back to OS X is in the Windows taskbar – click the grey shiny diamond, then click “Restart in OS X”.

The option to switch to Windows from OS X is in System Preferences -> Startup Disk. Click the “Bootcamp” icon, and the subsequent “Restart in Windows” button. Note that whichever system is currently “active” will remain the primary OS until you change it, but if your machine is powered off and you wish to start in the alternate OS, you will have to go through the boot up process for the current OS first, then click to restart into the other OS.

 

The Development Setup – Think Virtual

I primarily develop in OS X. Whether it’s iOS development, or web development. OpenGL is quite fun to code in OS X too, but for Windows-specific development, obviously Windows is required.

My web development server is a virtual machine running Ubuntu Server Edition, tucked nicely away in Virtualbox, which can be installed on both Windows and OS X. The actual virtual machine files, including snapshots, run flawlessly if you copy them between the OS’es. “Unlimited” subdomains can be setup on the virtual server, and all you need to do is point your host OS’s DNS server to that of the virtual machine’s IP (and run DNSMasq or similar on the virtual server). I am not going to detail the Ubuntu side of things, but creating a new project is just a case of adding another Apache virtual server config to the pool of Apache configs in Ubuntu, and adding the relevant subdomain to /etc/hosts. Accessing the files is done through a samba share looking at /var/www, where all projects are added to.

The virtual server, as far as all other machines on the network are concerned, is just a machine sitting somewhere with it’s own IP. Any machine on the network can look at the projects as long as they set the DNS address to that of the virtual machine. The virtual machine in turn though, must be configured to use the router’s DNS as normal (edit /etc/networking/interfaces). Note that I set up the virtual machine to use a “Bridged” network interface, not the default NAT.

In the rare event that I do web development using the Windows partition, I go into OS X’s partition (already visible in “Computer”), and pull out the virtual server’s image, and run it from Windows’ partition. When the time comes to boot into OS X, then I just copy the file back from the Windows partition, to OS X (from within OS X).

The added bonus is that I can back up the entire development server in one easy copy to a NAS drive at home. If the Macbook ever does give up the ghost, then I can simply run Virtualbox on another machine, and the virtual server is singing again as if nothing happened.

The same concept above goes for the Linux desktop virtual machine (for the obligatory testing on web browsers under a Linux environment), and the Windows XP virtual machine for testing the never ashamed to die IE6.

 

Obligatory Problem List

Whilst problems are rare, there are a few things to bear in mind.

  • The Apple Magic Mouse has a more fiddly scroll. OS X does a good job of smoothing the scrolling of this mouse, Windows does not. Any other mouse is of course perfectly fine.
  • The keyboard may lose it’s keyboard layout when you run Windows Update. For example, on a UK keyboard, the speech mark, and @ symbol switch around.

No Comments

Removing the shackles

I have handed in my notice in the current company after thinking about it for over a month. The simple reason is, it is not my goal to work for someone. The only reason I would, in future, is if I have a big say in running things, or I am so desperate for money that it is the only option, which is the reason I went into a typical 9-5 job in the first place.

Instead I will be a freelancer or at least to most of the description of a freelancer – I won’t be chasing up clients or hoping to find more – that is dealt with my someone else – I guess you could call the position an “independent developer”, much like an independent financial adviser working in a firm would have other staff who handle some of the more, “officey” tasks letting him/her get on with the task at hand. One thing that sold me was that, the company’s weekly meeting was down the pub on a friday – what a way to end the week!

The new company boss was also the Technical Manager of the previous company, and from the first day, we got on very well. Having someone extremely technical managing the staff is a plus – at least he knows what can and can’t be done, and knows the best ways of doing things also. When the manager isn’t technical, you will find yourself endlessly repeating things which are obvious to you, protesting against what is blatantly wrong, and being received with rude stares of ignorance, usually to have to do the wrong thing anyway.

This hopefully means the end of the 9-5 routine for me, which I have always believed to be counter-productive. If you have a bad morning, and come in lethargic, then the company will be paying for poor effort from you. If you then wake up during the day, then you would be going home when you could have a few more hours “in the zone”, getting on with work at a good pace. My best time seems to shift every so often too – sometimes I work like a machine at night, sometimes it is during early mornings, but when your routine is the typical bankers office routine, then you can’t maximise on that. There is a reason the biggest developer companies allow their developers to be flexible you know…

Things haven’t ended on a negative note though – just, in an industry so fast paced, it is very bad when you don’t get the time to learn new things. Nothing makes life drag on than a project that never seems to end either, so I am going back to my old roots – the reason I became senior developer after a week of working in the first company, is because I spent so much time doing web development at a much, MUCH faster pace than college or university. Imagine how much further ahead I could be if I carry on with that pace for just another couple of years at least.

In a nutshell, this move allows me to:

  1. Grow my own skills again, which is what got me ahead of the league in the first place
  2. Work in my own time patterns – no more waking up against the natural cycle just to waste a morning over-lethargic, or going home bang on 5:30 when I could easily do a few more hours whilst in the zone
  3. Not bother with any ‘office politics’ or ignorance – the current company was pretty good in this area though, and no one really put others down simply for existing
  4. Make my own money – at least indirectly – freelancing pays the bills allowing me to build my own projects, it makes my friend money, and he, and others prevent me from having to fuss around with hoping someone will pay
  5. Live a cheaper lifestyle, old friends, more freedoms, more income, and new friends in a city where lifestyle is a bit more relaxed

No Comments

My time, and why I am annoyed.

I am writing this because I am getting very tired of explaining the same things time and time again to people who pull a face as if i’ve just spoken some alien dialect. Maybe it is because you can’t understand what interests me. Maybe it is because I can’t understand what interests you, or why something could be interesting to you. But if you are going to be rude enough to continually ask, and get to the stage where it’s getting insulting, then I can’t say I care if you feel insulted by this.

Who are you?

‘You’, does not refer specifically to the person reading, or to any one individual. Simply put, if you read this and think “that sounds like me”, then yes, it probably is you.

Games VS Productivity

This, is a text editor.

This, is a game.

The above two represent what I most commonly do, and what you think I most commonly do. Let’s put it in terms you may understand. If you see me staring at a mostly black screen with walls of text, then I am writing code – I am being productive. If you see some fancy graphics, and hear some cool sound effects, then for once you are right – I am playing a game.

Another thing to consider is this – in the case of the latter, you have walked in on me playing something during a half hour break. Half hour does not equal “all day”. There are 48 half hour’s in a full day. If you need any further examples, don’t let me know, because I have explained this enough times already.

Reading Material

This, is what I read.

This, is what you read.

I like to keep my mind occupied by things that could teach me something new and useful. Just like, in my spare time, I like to embark on my own projects to learn something new. You however, prefer the latter, which consistently posts images of girls in different poses, month after month. Now, to be fair, I don’t hold this against you – unlike you, who holds it in my face and wonders why I push it out the way and tell you, in a more unpleasant wording, to kindly get lost. Here the moral is, great that you have your own interests! Just, respect the fact I have my own interests. Oh, and because I don’t see women as sex toys, doesn’t mean I am gay. Honestly, the fact you think otherwise is very shallow.

Evening Activities

This, is my idea of a good evening.

This, is your idea of a good evening.

Again, it is productivity that keeps me happy. Even though my day job consists of the same thing, there is only so much innovation I can carry out there, so my own projects offer a completely different ball park.

Ok, so the pub has it’s moments – I do like a nice polite drink here and there. A nice beer and a catch up with some of the locals is fine – notice I said ‘A’ nice beer, not lot’s of nice beers. Ok two isn’t bad, but any more and it is getting beyond. This isn’t strictly because of the alcohol – it is because of the time. I just cannot go out without worrying about how much I could be getting done in the same amount of time.

Socialising

This is my preference for socialising.

This is your preference for socialising.

I could spend stupid amounts of time around the company of people who have the same things in common. The same desire to learn, the same desire to improve themselves. Yes, sometimes that includes beer, and a pub. But the difference is,  I can have an interesting conversation with those people, as opposed to sitting there asking things for the sake of keeping the conversation going, which is just a waste of both our time.

Summary

I hope this clears things up a little. I doubt it will – again, because people who don’t nearly share the same interests don’t understand how someone can find it interesting. The difference is, I respect the fact you have different interests – I think it’s a very good thing. You however, don’t respect mine, or at least think it’s a good idea to make me feel very small because I have no interest in, what you term, “being social”. Put it this way – the boredom you feel about my idea of fun? That is likely the closest to how I feel about your idea of fun.

If you want my help for something, great! Just, when you say “help me paint my garden fence”, don’t waste my time with an hour’s break before hand, and certainly don’t finish the task with “can you also do x, can you also help with y”.

When we do go out, remember that I am specific. If we are going to the cinema, I am expecting only to go to the cinema – not spent an hour getting wasted on alcohol first, then film, then 3 hours back in a pub.

When I say no to something, I mean no. You will not persuade me out of it by sending me 8 text messages, 9 missed phone calls, all asking the question I already answered. I am busy, and spending that time on something different is just going to stress me out with how much time i’ve lost.

Now to put things into perspective – I am not entirely a hermit. I will go out if someone asks (most of the time), I will help out of someone asks, and yes, I find the idea of doing the same thing all the time very tiring and wasteful. But that’s what I am trying to get at here – “all the time”. I get asked every day, without fail, and shot down every day for all the reasons above. Some times I give in and do something when I REALLY want to be doing my own thing, but if that is the case, at least show me the respect of not throwing it in my face and having a pot shot at me for not doing it more often. (We are not exactly talking once a month here – we are talking weekly).

No Comments

Doom on the iPhone 4

When I saw Doom appear on the App store, I had to double check. Surely £1.19 for Doom is too good to be true?

Actually it was correct – and for a limited time only, during QuakeCon. Not just that, but Wolfenstein, DoomRPG, and Doom Resurrection(an on-rails approach to Doom 3).

As much as this is supposed to be a quick review, I can’t sit here and go through the details of the game – the objectives, the visuals, and whatnot. If you haven’t already played Doom, you haven’t lived. Instead I will cover the differences between the PC and iPhone version.

Controls

An icon at the bottom left controls movement whilst you have various options for the right thumb. Control option one lets you move forward and backward, and rotate using the left thumb whilst your right thumb fires your eagerly itchy weapon of choice. Control method two gives you far more freedom of movement – strafe and move with the left thumb whilst rotating with the right by sliding the thumb left and right. To fire, you must tap an icon in the top right. Control method three is the same as method two, but your right thumb controls rotation by rotating an icon.

The problem you can see here is that whichever method you use, you are not going to have the immaculate controls of the PC. This is not a lame attempt by id Software by any means – it feels rather clear that they have experimented with a few options (even resizing the icons), found flaws with each, but allowed the user to pick their poison.

The controls take a bit of getting used to whichever method you pick – my advice would be to pick one that feels easier than the others, and stick with it – don’t keep swapping between them hoping for the best. I chose option two because the rotation was a lot more predictable.

As you are allowed to move and resize the controls, don’t be fooled into thinking you can simply put the fire icon next to one of your thumbs – your movement would trigger the shot. It really is out of the way for a reason. Note that you also need to be able to tap the weapon (to select another weapon), and tap the actual view to open doors, pull switches, etc.

When you do get used to the controls, you will be sprinting and shooting through the levels like before, with the only tricky bit being when you need to carefully walk to an edge, or navigate a thin pathway without falling off the side. Luckily that level is a late level in Doom 2 ;) .

Options

It seems strange to dedicate a section to the options of the game – surely you just want to get straight in and slaughter the spawn of hell, right?

Well the options allow you to do just that. You can pick any level to play, and at each skill level. You can play deathmatch with other friends nearby. There is a “Demo” option which seems to do nothing but change the background music though…

General Thoughts

There really isn’t much else to say. It is just Doom, but in your pocket, ready to play on that lengthy train journey or whilst waiting for your meal to arrive, or a cheeky game when you can’t sleep. It’s not trying to be some Doom reinvented, just a port.

A surprise is that this was harder to play on the iPad than the iPhone 4. The very oversized controls made movement slow and awkward. Sliding the thumbs around whilst maintaining grip is a much easier task on the iPhone.

No Comments

Big old London, big old start

Moving to London was actually a much smoother process than I thought it would be. I guess it had far less obstacles to deal with than what would be typically expected though.

The quick news – the client I mentioned previously offered me a position as the company’s CTO. We met up in Cardiff to discuss it all, and later all went to London to start the company. There are three of us, and a typical work day sees some serious productivity in the roles we are most suited to. In less than a month we even get our own office premises, bought out, in which we will rent out office space to more than pay the utility bills.

Moving away from home was a huge change for the better. If we want something, we go get it/do it. We have more space, and our own rules. If I want a whiteboard on the wall, I can simply nail it in. If I want to listen to loud music whilst bashing out code, then great. But the best of all is that it is a new area, new people, and in the week i’ve been here, I have never felt more at home. London may be insanely huge, but in the local area alone, there are 8 ‘corner shops’, 5 parks, a few shopping centres, loads of places to eat out, and whatnot. The tube station is a 4 minute walk away, taking us down the Kensington line. One of the people here is a keen cyclist and runner – do you know how long I have wanted to actually go cycling with just one other person? The running is great too, and is of course, far more interesting than using a treadmill.

The job

The director’s vision is simple – whatever we approach, we innovate it. He was looking for someone to deliver this goal. He bought me an iPad without me even asking, with the goal being to research current games for the iPhone/iPad platforms and see what we can come up with. Though the first goal was website development (making our own sites and managing them, rather than building them for other people and only getting a one-off income from it), shortly after was the requirement for an iPhone app to use the most important features of the site suitably on a small device. Then was idea of creating all sorts of games for such devices, especially ones that can use the sites in some way. The response was simple and with eyebrows raised in excitement followed by a huge grin – “no problem!”

I am finally pleased to be able to use what little games programming experience I gained, in a big way. Focussing on the iOS platform seems a good step too – even if, somehow, the iPad and the iPhone fail overnight, the experience of using such sophisticated touch-based systems is a good step for future technologies – PC World alone have started to boast touch screen desktops, which could see an introduction of games which do not require the mouse – heck, the iPad has a Command & Conquer Red Alert game…

Of course iPhone/iPad development cannot go ahead without using a Mac (as strict as I believe Apple is when it comes to using their products, this is one area I won’t hold against them simply because they are not the only ones doing it like this – you cannot develop Windows Mobile software without using Windows). So, solving that obstacle simply meant buying a Mac Mini, and to be fair, I am impressed by the XCode IDE.

After all this time, my goal of starting a business with someone, in some form has come true, at last. With two large, very detailed websites, their corresponding iOS apps, three games in the planning, and the various business set up tasks, the next half a year looks to be very exciting!

No Comments

The Newbie Code Obsession

Some of you are going to know what this is about just by the title, and can probably relate to it. Others will hopefully learn something from it, and relax a bit. The situation is best described with an example conversation that happened recently:

Him: “Can you please find what’s wrong with this code?”

Me: “Hmm, sure, send it to me”

Him: “Ok, but before I do, you have to PROMISE, on your life, you won’t use it or share it to anyone else. It took me ages.”

Me: “…I won’t. ”

Him: “Good :) . If I see any file handling on your site than I know you have lol”

Me: “…Except for the, you know, fact that it handles image uploads, maps, and whatnot already? Don’t accuse me of ripping off your code when i’m just trying to help.”

He saw sense in the end, but it’s not the first time that’s happened.

The problem is that some people get so attached to their ‘hard’ effort, that they think the world is about to try and take it from them, even for the most basic of tasks.

So, if this sounds like you (the one paranoid that your code is so amazing, that it will somehow appear across the world whenever someone needs that functionality), then you really need to think about this:

  • What makes your code so special? Why is it no one else in the world can do the same function, or even better?
  • If someone does see your code, why do you think they will rip it off and use it as their own?

Part of being a programmer is that you find solutions to a problem. That should also be a fun task – one that gives you some sort of satisfaction for completing it, much like a difficult puzzle. You certainly don’t get that when dragging in someone elses code, and you certainly won’t learn much from it either. On top of that, if there are any bugs with the code, the basic programmer will struggle to find it, the expert programmer will probably end up re-writing most of it anyway. Suddenly then, it’s no longer your code. In this circumstance however, an expert programmer just won’t take your code because he/she can easily do it anyway. In fact, if someone was going to “steal ideas from your site”, then they would code their own version, rather than hope they can get your exact code, and implement it.

In the example above, the function was one which looped over the contents of a directory, and unlink()’ed all the files, THEN deleted the directory itself. The bug was that, if there was a subdirectory, it wouldn’t delete the directory itself because it still had contents, and unlink() doesn’t remove directories (rmdir() doesn’t delete a directory that has anything still inside it either). The fact of the matter is, it wasn’t exactly some incredible solution to the world’s problems, and any site that handles files in pretty much any way is likely to do something similar.

The other point I want to make is, don’t take someone elses code and try to pass it on as yours. Especially if you are then going to ask someone to help you fix it. The moment they ask you a question about it, and you can’t answer it, it becomes obvious. Someone sent me a function that actually had me going for a bit – it was a cleverly done MySQL query using all sorts of degtorad() and distance calculations, for a google map, to work out how far one destination was from another. As soon as I tested him by asking why he was converting to radians, he got completely stuck and thankfully owned up.

Finally, if this has sucked the life out of your hard work, then don’t let it. The idea is, you learn from your mistakes. There is no shame in asking for help, just, in trying to pretend you did it all.  You are going to run into situations where, something you are excited about coding isn’t going to impress anyone – either that have already done it, or something similar, or something far harder. Difficulty is relative – you will get satisfied in this case, but don’t be alarmed when others don’t share that excitement, and certainly don’t keep going on about it “in case no one could hear you”, because they did – just, it wasn’t actually impressive to them.

No Comments