Snow Face

January 8th, 2010

Jen and I went for a walk in the fresh snow. Whilst out and about I spotted this:

snowFace

Children, they are so great, and this one obviously though that the face should have a really large smile :D

Star Wars Weather Forecast

January 6th, 2010

Well this is just a bit of fun that I stumbled across whilst drinking my morning coffee. The weather forecast in terms of the star wars universe.

http://www.tomscott.com/weather/starwars/

At the moment Canterbury is currently being described as “It’s like Hoth out there…. cold, ice, freezing desolation”. Oh and don’t forget the little comment in the bottom corner “You may have to climb inside a tauntaun for warmth.”

How great!

Time Tracking Project: Research & Specification

December 2nd, 2009

So over the past couple of weeks I’ve been spending some more time on the time tracking project. The first thing I had to do was come up with a requirement list that we as a company needed for the application. Whilst many of the suggestion from my colleagues were items we could potentially compromise on, there were a few deal breakers for us. The first and most important was that we need a system which we could access for anywhere. The reasons for this is that as a company, we all work in different geographical locations. We also work on the same project at the same time so having records stored locally on my computer wouldn’t help the others see how much time we had already spent on a particular project. Finally, when traveling we might not have access to our own machine. Therefore based upon this requirement all solutions that run and store their information locally on your desktop machine were ruled out.

The next big things for us, is that we don’t use Windows for our day to day work. This is not to say that we don’t use Windows at all, in fact in our line of work we need to test to see how they perform under Windows. However, in general we use Apple macs and linux boxes to perform most of our work. So ideally we need an application that runs on Apple mac and/or Linux. The problem with this is that majority of tools created are aimed at Windows, and of those there are very few that are cross platform or have had a version created for another platform. This is not to say that we couldn’t gotten around it using some clever machine virtualization, but that is just something extra that in all reality we don’t want to do.

This didn’t really leave many options left. So from what I was left with, I sat down and evaluated the possibilities with the rest of our requirements in mind. I felt that none of what was left really fitted what we wanted to get from the time tracking applciation. For example, very few of them would allow me to store information about clients, projects and types of contracts in a manner that I could then easily query and get information from.

Based on this I’ve decided the route we need to go is to create our own personalized time tracking project which meets our needs. This of course means we can customize it to meet our full requirements and depending on the result possibly even offer it to other. So the next stage is to develop the structure of the database that will be used to record all this information.

Database Structure
dbLayout

Just for those of you that aren’t family with database diagrams, each of the blocks with a name inside it relates to the tables that I’m suggesting for our database. So we have one table to hold all the employees of the company, a table for all our clients, a table for each project and so on. Then each of the lines between these tables displays the relationship between the tables. So as an example the table clients is related to the table projects in that one client can have none, one or many different projects. The many element is denoted by the “crows foot” symbol on the end of the line.

So now it’s the big part, implemented the application. So the next question I have to face is how.

Time Tracking Project

November 22nd, 2009

For a number of weeks I’ve been research time tracking solutions. Between the three of us at Tauri-Tec we have identified the need to be able to more accurately track the amount of time we spend on individual projects, which should aid us in a number of ways.

Firstly, we should be able to quote more accurately for future work. The issue here is being able to judge the pace someone works at. This obviously differs, depending on their experience with not only the language, but also the project itself. The modification might only be a small one, but if you don’t know the project it’s going to take you longer to make the modifications required than someone that knows the project inside out. Also some people just seem to work faster on some things than other. I know back when I joined the company, that Ed was constantly over estimating how long it would take to complete parts of a project. Now you could be thinking “what’s the problem you get some down time”, but in all reality it actually means we are losing money. For example, it could be that we have several parts to a particular project that need to be done with a short space of time. If we have over estimated how long it will take to complete a particular part, then it might lead us to pay someone else to complete the other part, which is more expensive than one of us working on it. Not only in monetary terms, but also checking it against our QA standards. So having data on how quickly people work both; full time employees and freelancers that we use, will allow us to better judge costs, which also means we can be even more competitive when quoting for work.

Secondly, and this is actually something Damian pointed out. It’s nice for a customer to be able to see where the money is being split when they receive an invoice. Damian recently engaged a lawyer to help with drawing up some particular contracts. Attached to the invoice was a break down of not only what work was done, but also a brief outline of the number of hours that were spent doing different activities. Our company has clients that pay a maintenance contract, where they pay us to monitor their system, apply small updates, and fix any bugs that pop up from time to time. So this would be very helpful for these clients. However, and this is more important for us, we can more accurately monitor the amount of time we spend on these maintenance contracts, and then modify the service agreement for them. For example, if we aren’t spending as much time that our agreement covers, then we can re-visit this agreement and decrease the cost. Alternatively, if we are spending way over the amount of time that our service agreement covers, then we can again sit down with the client and discuss the possible need to increase the service agreement so that it covers the man hours that we are spending on their system.

So now we have determined the need, I’ve been given the job of finding a solution. As I see it I have two options, take some pre-existing time tracking software which nearly matches our specific needs, or write my own.

Code Snob?

November 11th, 2009

Over the last couple of weeks I’ve been thinking, is there such a thing as being a “code snob”, and if so am I one?

The reason I’ve been thinking about this is that I have been slowly picking up more and more small projects, where I’m having to either repair or update the existing code, which were created by other companies. Nine times out of ten I find myself starring at badly written code. For those of you not into programming, there are a number of metrics that can be used to classify how well code is written. I spent ten years being both taught and teaching students how to write “good code”. The majority of these rules are simple to follow, and are even common sense. For example, “name variables appropriately with a descriptive name”, so when you need a variable to store the total of a sum you might call it “total”, but don’t call it something random like “b” or “jklgh” (and yes I’ve seen undergraduate students do this).

The reason we have these metrics and guidelines to writing code is pretty simple. Good code is easier to read and understand, which means when it comes time for you or someone else to modify the code it will take them less time and more importantly be less frustrating. Whereas badly written code is just a nightmare to understand, let alone alter. I’ve even heard young developers say, “well it’s my code and I’ll be the only one that will be modifying it”, which is giving them false hope. Generally you as a developer will work on a piece of code and then move onto something new. Sometime later, could be a couple of months or a couple of years, you will need to revisit this code and make alterations to it, and trust me when I say you will have forgotten some of the fine details of why you did things in certain ways. Now if your code is well written it won’t be a problem to work everything out, but if it’s badly written code then the problem starts. There isn’t an excuse for badly written code.

My biggest pet hate, and any of the students I’ve taught programming to vouch for this, is code indentation. Some people say you must use tab characters to indent code, whilst others say spaces. Personally, I don’t care how you indent your code, just as long as you do and that you are consistent and use the same indentation throughout your code.

There are so many resources around to day that there is just no excuse for writing code badly. Even if you know you are never going to look at the code again, have a heart and think about the next person that will. You know the old saying what goes around comes around.

So to answer the starting question is there such a thing as being a “code snob”, I still don’t know. However, if there is then I think I might have membership to that club.

Photos

October 31st, 2009

Well yesterday I finally managed to sit down and have a play with the flash triggers I brought a while ago (see here). They are such a simple design that it was a simple case of attaching them to the respective flash and camera and I was ready to go. Whilst they are pretty simple to use, which personally I think is a major plus point, the only issue I have is the placement with the power switch. Once I had mounted both my Canon 430EX and 430 EXII, the power switch became in-accessible. I guess you could argue that this stops it from accidently becoming switched off, but personally I’d prefer to be able to quickly walk over and flick the switch rather than having to take the flash off. However, to be completely honest this is the only fault I have with them, and it is really a minor issue.

The only other thing that I realised whilst playing with these triggers and my flash guns, is that I don’t have any real way to control the light from them, due to the lack of light modifiers that can be attached to them. So I guess I’m going to have to spend the next couple of days looking into materials to make snoots, grid spots, and gobos for my flash guns.

Enjoying being a sysadmin monkey

October 20th, 2009

In my new company there are only three full time employees and a pool of freelancers that we use when we have lots of work going on. This means that we are able to keep our month overheads down and be pretty agile when needed. However, this also means that in general each of us has to wear about three different hats depending on what is happening, unlike larger companies where you generally have a single role to fulfill.

One of my additional roles in the companies is to be one of the two sysadmin monkeys, the other being Damian. This is not something that is completely new to me as I did do a small bit of sysadmin work in my previous job. However, this is on a completely different scale. I thought that I’d loath this part of the job, but today proved that actually I quite enjoy crawling around the servers hard disk and finding solutions.

Custom ringtones for the iPhone

October 16th, 2009

After finally getting my company phone, I was confused at being told that I couldn’t change the ring tone (except the ones that come on the phone). However, since the iPhone seems to be a very popular handset these days, it seems crazy that we should all be limited to using the same set of tones for incoming calls. Don’t get me wrong the sounds on the handset are fine, but it gets a bit much when you’re sitting in a London office and your phone goes off and four other people reach for their phones because they think it is their handset ringing.

So will a little bit of time and research I’ve come up with this list of instruction on how to create your own iPhone ringtone. However, the most important thing you should know is that your ringtone sound can only be a maximum of 40 seconds longs, which the phone will loop for you. Any longer than 40 seconds and it just won’t work.

Step 1: Load the original sound file into iTunes (I’m working with iTunes 9)

Step 2: Find out the start and end time indexes for the section of the file that you want to turn into a ringtone (Hint: just play it in iTunes and copy the time indexs from the bar along the top of the screen)

Step 3: Right click on the sound file and select “Get Info”

Step 4: Select the “Options” tab

Step 5: Fill in the start and stop time indexes from the values you noted down in step 2

Step 6: Click “OK” to dismiss the dialog

Step 7: On the general tab click the “Import Settings” button

Step 8: Set the “Import Using:” option to “ACC Encoder”, remember what you had set here before so you can change them back later

Step 9: Close down both dialogs boxes using the “OK” button.

Step 10: From within iTunes, right click on the sound file and select “Create ACC version”.

After the conversion process has finished a new entry in iTunes’ library will appear.

Step 11: Right click on the new version of the sound file and select “Show in Finder”.

Step 12: In iTunes, delete the new version of the file, when prompted if to keep the file or delete that as well select “Keep”
NOTE: You must do step 8, or iTunes won’t import the file back into it’s library in the correct place

Step 13: Move to the finder window that shows the converted sound file and you should see that it has the an extrension of “.m4a”, change this to “.m4r”

Step 14: Double click the file and it will be re-imported to iTunes.

Step 15: Go back to iTunes’ preferences, General Tab, Import Settings and change the options back to what you original set them as

Step 16: Right click on the original sound file and select “Get Info”. Go to the options tab and uncheck the start and stop times so that when you play song the whole track is played not just the forty second section you wanted as a ringtone.

Flash triggers

September 2nd, 2009

When I left my last job I lost access to the space I used to use as a studio. Since then I haven’t taken many pictures, but this is all about to change now that my new triggers have arrived.

These should allow me to remotely fire all my flash guns off camera and thus be able to use any space outside as a studio, rather than being limited to where there is a power socket. Originally I was looking at getting some pocket wizards, but they are just too expensive at the moment. So in the end I opted for these little triggers. So now I just need some time to play with them, working from home is so great ;)

Week 7 & 8: 09/08/09 & 16/08/09

August 22nd, 2009

Week 7
Nothing :(

Week 8

Sunday
Sea swim: 20 minutes

Monday
Cycle: Distance 5.46, Time 21:39.9, Average 15.1, Max 26.2

Tuesday
Cycle: Distance 5.46, Time 21:34.0, Average 15.2, Max 30.0

Thursday:
Cycle: Distance 6.35, Time 28:39.1, Average 13.2, Max 35.1

Saturday:
Cycle: Distance 5.20, Time 22:47.1, Average 13.7, Max 26.8

Well as you can see last week I did nothing and felt pretty pants for it. So this week I’ve tried to get back into the swing of things. Today’s cycle was more of a pleasure cycle rather than full on going for speed and distance. As a result I decided to venture down some of the roads which I haven’t been down before. Actually found what looks like a derelict building which might be cool for a photoshoot.