2010
06.26

It has been a while since my last post (five months). I would love to say that is because I have been busy, but in reality it is just because the longer you leave it, the harder it gets. What has happened to me since the end of January? Umm.. in february I spent a fortune on my car, in march I did nothing of note, I was in Thailand for the whole of April, in May I recovered from Thailand, and I moved house in June and bought a pair of deck shoes and fell in love with Eminem’s new album, Recovery. So this is really a filler post to say, I will be back soon.

I finally finished BeatButcherMPC. I ended up stripping out the program editing functionality, which I decided wa not overly useful, and there are other programs such as MPC Maid which can do the job. Instead I decided to simplify the interface and focus on the wave editing functionality, making it very easy to create patched phrases (not possible on the MPC500 itself) and sequences of chops. I will be putting it up here for download shortly.

2010
05.31

2010
01.30

Seeing is believing

Sometimes it is nice to look closer. I am strong believer in the theory of vision which says that in order for our brains to filter the huge amount of data constantly hitting our retinas and make sense of the world, we abstract sections of the raw image (the nerve impulses) into symbols such as “brown chair” or “red book”. In doing this, we simplify our surroundings so that we can comprehend what is there in it’s entireity. Sometimes though it is enjoyable to go and take a real look at things which would normally just be replaced with the idea representing it.

Take for example the hinge on your bathroom door. Tell me about it. Is it brass, steel, painted? Are the screws flat head or posidrive? Is it starting to rust? Does it squeak? Is it well fitted or is the wood surrounding it splintered? Ok, you may never have looked at this hinge before, it’s probably not that interesting.

A better example is your car. Now you know what your car looks like. But do you know how the curves of the body work fit together and flow in three dimensions? How do the headlights stand out as a feature yet fit effortlessly into the panels? What is the texture of the rear registration plate light diffuser? How far along the roof, proportionally, is the sun roof? Could you draw an accurate sketch of the dashboard despite having driving thousands of miles glancing at it?

Or have you only considered the car from the front, rear and side views and consequently now see it only as a symbol representing your car? In a supermarket car park you instantly recognize the car as your own, but why? Is it because you note the two inch scratch from when your kid brother hit it with a skateboard and conclude the chance of another similar car having an identical scratch being very low? No, it is not a conscious consideration or decision, it is the imaging section of your brain matching the idea of your car with the nerve impulses from your eyes and producing the symbolic match for you.

When you drive, do you look at the dashboard and see the speed you are travelling, or do you see a large notched dial with metric and imperial scales and white tapered needle, an oil temperature meter ranging from 90 to 110 degrees, a set of non-illuminated warning lights?

I think this is interesting because it is when things don’t match the expected pattern that the conscious section of the brain really kicks in. When you return to your car and see a new scratch on the door you instantly snap out of your nice symbolic car fantasy and examine it in detail, building a new pattern to match. If you want to make people notice something, don’t conform to what they expect to see. Simple.

2010
01.30

I’m currently ripping a stack of CD’s to MP3, which is a task I find suprisingly satisfying. I’m in no way obsessed with things being neat and tidy (as long as the mess isn’t debilitating), but organizing things into nice rows does make me feel fairly content. I think that is fairly well demonstrated by how I write code: start off banging ideas out, lambdas and single letter variable names all over the place, and then as the functionality gets refined, the code gets polished so that the end product is a functional block of code in lovely columns (preferably highlighted in yellow and green on black, since I much prefer work with a high contrast color scheme now).

I think this is a fairly common way of working, especially for the newer generation of programmers who never really had to worry much about breaking the OS with unsafe pointers. I mean, I have worked with my fair share of C/C++, but Windows XP and modern Linux pretty much protect you against catastrophic errors taking down the whole mainframe. The basic philosophy seems to go further than this, beyond software development. It seems natural to me and many others of my generation (who grew up with Windows PC’s at home) when sitting in front of a new computer program to just click away at the GUI until I have figured out how everything works. We are fairly sure that no bad things will happen without due warning so are happy to just try things out, and I notice that this is very different approach to the Dad generation who like to understand exactly what a button will do before clicking it. One of the big reasons I chose to specialize in software and programmable logic rather than electronics is that you can use an iterative development style, without costing your company a lot of money. The problem with electronics is that once a mistake is made, it can get very costly to fix.

The thing I am slowly coming to realize is, however, is that despite what Visual Studio leads us to believe, software development shouldn’t be treated as the use of an application. The great debate of where the true discipline of software development lies (computer science or software engineering or programming as a craft or something else entirely) hasn’t come to too many strong conclusions yet, although I think it’s fair to say that most people agree that it doesn’t fit neatly into a box and probably never will. I think that a lot of the time where my aforementioned programming “methodolody” falls down is that I am tempted into the trap of thinking “it works, so the code is correct”.

I think there are two ways of making sure that quickly written code which works but is ugly or hard to read or has the possibility of undefined behaviour doesn’t get forgotten about. The first is to have code reviews where dodgy looking code gets rejected and re-written. In theory this can happen in a team situation where one explains his/her code to the rest of the team, and probably even without anyone else saying anything, the act of talking through the code should reveal problems to the developer. Often there isn’t adequate resources to involve a team for this purpose so I think we should be disciplined enough to go through our repository commits and make sure that we haven’t forgotten about stale code, and just think through all of the changes we are making.

The alternative (or complimentary) strategy is to think about the damn problem a little bit harder before tackling it, and to approach the task of writing code from more of an engineering perspective. Where I use the code base as my notebook for ideas and attempts, with all of the crossings out and scrawlings and smudges, one could just use a real notebook to plan out the best way to solve the task in hand and then transcribe this into code, and be fairly sure of nailing it in one or two attempts.

I think it’s fairly obvious I have already come to a conclusion on this one…

2010
01.28

My thoughts on the iPad

I love how suprised people are when you say something obvious. I drove past a very long 8ft high wall the other day and remarked “there are so many bricks in that wall, and a person laid each one of them by hand”. This generated a mini shockwave of suprise in the car.

I suppose it is a testament to our society that we are SO advanced that we don’t even find really long brick walls an amazing feat of engineering any more, but I still try and appreciate the amount of personal effort people have put into things. In the context of Manhattan, a fifty storey building perhaps isn’t remarkable, but take it out of it’s environment and it is much easier to appreciate it as an incredible piece of engineering.

One of the reasons I have been interested in the reaction to the Apple iPad is that there a lot of people who seem to worship Apple and raise them to a status far beyond what they deserve. Most people who know me will have heard me rant about Apple fan boys on many occasions, and I should really apologise for that, because I actually do appreciate Apple products for what they are: well engineered pieces of technology, designed with a specific set of users in mind. I think MacBooks feel great, iMacs look lovely, and iPod Nano’s do exactly what an MP3 player does, stylishly. I have never bought an Apple product because they have never completely fulfilled my needs for one reason or another, but that is no disrespect to them or any of their products. So I have nothing against Apple, it’s just the amount of hype and enthusiasm that some of their users come up with is ridiculous, they seem to forget who is paying who.

Now the iPad seems to me to be a perfectly sensible bit of kit. It looks like it is a nice size for reading documents and newspapers, or watching films. It can browse the web via WiFi or BlueTooth (although lack of flash support would be very annoying) which is what I spend most of my personal computing time doing. Having a great looking, light tablet for these things would be great, especially if the battery life is 10 hours as advertised. People are describing it as a big iPhone, but in reality I think it is better.

Typing is probably a little tricky on a touch screen, and I know a lot of people have been disappointed at the lack of a stylus option for writing notes. I think that this is an interesting one, since third party stylus’ will be no doubt available. I can see both arguments really, and having used handwriting recognition software on a number of occasions I have to say I would not want to use it for text input. The only other thing a stylus would be useful for is for making quick notes and drawing. I will reserve judgement on how easy or hard this is with a finger, but for me it isn’t a show stopper.

My vision of using it is mainly in schlomping around the house, where it beats a laptop, and it is also great for trains, coffee shops and meetings. In other words, all of the places where you would traditionally have a laptop, but it is smaller and lighter, and the other main difference being that it cannot replace a desktop. This is not a bad thing, I like a nice big screen and having plenty of horsepower on my desktop pc for development and music production which is why a desktop makes sense. Having an iPad as well would compliment it perfectly, as opposed to a laptop which create a lot of redundancy.

Anyway, apart from the fact that I am quite tempted by the device, my point is that there is certainly a place for the iPad in the Apple line up, and I think that people have no right to claim that Apple have “lost it” or have wasted their time. This product may not be as revolutionary as the iPhone was, but that is no reason to dislike it, and I think it’s important that everyone just steps back from all the hype and considers the iPad on its own, on its merits. If it does what you need or desire, great, if not, maybe revision 2, but stop whining…

2010
01.18

More thoughts

I think the key to making a really good game these days is avoiding making the user feel like they are just wasting time, and make them think they are achieving something. I think there are clear examples of this in games like Spore and The Sims which have no specific end point, and more dubiously in the reward and achievement system which EVERY console game now seems to require. I admit to being drawn in by these silly lists of tick boxes in the past; there is something very satisfying when the magic “G” achievement box comes up on an XBox. How you do this is another question entirely.

Following my previous post about wanting to create something, I have been thinking about atmospherics and such and I’m considering making some sort of game or interactive applet thing. The thing is, I would rather it was [i]useful[/i] in some way. At the very least, I would like people to spend time playing it because they enjoy the environment it creates, rather than because they want to hit a set of arbitrary goals. I don’t mind wasting people’s time, but I want them to want to waste their time in my world, rather than tricking them into it. Obviously I’m not working with a triple A title budget, so I don’t have to appeal to the masses.

One way of doing this which I have been considering, is by involving an online community. People (myself included) waste such a long time on forums and chat because interacting with other people isn’t [i]really[/i] wasting time (even though nothing of value is gained[/i]. Second Life, a completely pointless virtual world, was very popular for exactly this reason. However i’m not sure I want to create a community based around a game, as this limits the appeal, creates a barrier for entry, and promotes completion of arbitrary goals and high scores- which I don’t care for.

I’m not sure, no conclusion, just some thoughts.

2010
01.10

Analysis

Yesterday I visited an apartment belonging to a friend of a friend for drinks with three guys I know well, and two I had never met before. After a couple of hours we decided to make a move to a bar and so we walked out of the kitchen into the hall, and as I waited for everyone to get their coats, a drunken wrestling match broke out in a bedroom leaving myself and one of my new acquaintances (Jack) in the entrance to the apartment. Seeing legs flying and the creaking of the bed, I couldn’t help but glance into the bedroom to see what exactly was going on. I was suprised to hear the following from Jack-

“I can see you’re not interested in talking to me, you’re thinking ‘I’d much rather be in that bedroom with everyone else’”

I found this very interesting. Firstly, when reading a statement such as that, it is easy to assume that the person saying this has low self-esteem or confidence, taking my lack of interest in conversation as something of an insult. In fact it was delivered in a really flat way as if [i]I[/i] was the one who should be insulted because of my lack of conversation and/or social skills. I say insulted, but of course the comment was light hearted.

Secondly, my reaction was totally defensive, almost as if I was embarrassed to be “found out” of not wanting a conversation. In fact I hadn’t even noticed that we [i]should[/i] have been having a conversation which is why it caught me so off-guard.

Thirdly, once I started thinking that I should be conversing, I could not think of a single thing to say. This isn’t exactly uncommon: at the point of a silence becoming akward (all in the mind of the participant of course) minds go blank, thus creating a self reinforcing cycle.

In conclusion, it’s not what you say, its how you say it.

2010
01.10

Business of driving

When you are driving a car, sometimes you don’t need your hand on the wheel. As long as you are looking ahead and occasionally behind a sufficiently large percentage of the time, curves in the road and other hazards can be anticipated and avoided. If you fall asleep and stop looking ahead, you can’t do anything about hazards until it is too late.

2010
01.08

I listen to songs everyday which evoke swinging emotions, I read books which contain great stories and great wisdom, I listen to people speaking amazing arguments, and I watch films which create all-encompassing atmouspheres which make me want to just stay, as Aerosmith would say, “lost in this moment forever”.

I don’t really get poetry, I’m trying, but school English lessons have thus far ruined it for me. I’m not greatly turned on by “Art”, either paintings or drawings or sculptures or wanky concepts which have no form at all. I have a passing interest in dance, but it’s not something I am passionate about. I enjoy eating great food, but its not a passion for me (I blame my awful sense of smell for this one). But that is fine, I can see the attraction in these things for other people.

Do you remember the feeling you had after seeing the final scenes of Blade Runner for the first time, or during some of the awesome night forest shots in Avatar, or after discovering a song which totally captured your mood at the time, or maybe when out running in the rain and finding energy from no where to sprint across a field with your arms spread wide? (Please insert one of your own epiphany moments here) If I can give that feeling to someone even once, then I will be pretty happy. The question is, how am I going to do that?

The thing which I really enjoy (creatively) is writing software. It occurs to me that there is no reason why software cannot be totally immersive. In fact, since it is intrinsically more interactive than any of the aforementioned activites it may well be easier. I’m not talking specifically about games, although I think they are by far the best example of this to date. I’m not a big gamer so I can’t really give any up-to-date examples, but when playing the original Half-Life I remember being totally immersed with the whole environment- the visuals, sound effects, music, and control system.

Now if one was to apply the same thinking to an application, giving it a very distinctive, stylized UI, atmospheric music, sound effects, an intuitive control system then what would you have? I suppose it would be a very specialized application, and probably very annoying since if using it for extended periods you would want music to fit your mood rather than the preset music or whatever. The trouble with applications is that they are more general purpose than games, they do things which go beyond the original design of the application, they create things. Games on the other hand give you the illusion of being in control whilst navigating along a relatively linear story.

As you can probably tell, I haven’t had a solid idea about this (otherwise I would be doing it!), I’m just playing about with some thoughts. I haven’t been particularly interested in UX/UI design until recently, but I think that there is a huge amount of scope for improvement over the way in which many current applications operate, and that is something that I think I would like to tackle. Of course with the variety of different platforms running applications from phones to desktops, and the way in which web apps have taken over for most simple tasks, there is more and more scope for interesting design, and more tools with which to implement them.

2009
12.25

Happiness

It’s late on Christmas day and I’ve just put in a new Explosions in the Sky CD and am consequently fairly inspired to write something. I am very calm today, which is unusual, I think maybe I am relaxed because I don’t feel obligated to learn anything or achieve anything on Dec. 25th. Normally I am on such a quest for self-improvement that I end up feeling bad for doing things like relaxing and watching TV.

Now I am perfectly aware that on a rational level, at any given point in time, if someone is doing what they want to do then all is well. In the evening, if I want to spend hours on online forums then fine, right? The problem is that the thing which one ends up doing quite happily, often isn’t the thing which they would do given the choice of all things. Hence it is possible to go through a period of time being completely content, accumulating the whole time a degree of “error” (the difference between your actual level of happiness and the maximum possible level). I think it is only when you stop and step back to think about what you could have been doing in that time period that you see the error which I am talking about. My “New Years Resolution” is going to be to spend as much time as possible doing the things I really want to do.

Right now I am actually very content listening to Tori Amos (yes it took me 40 minutes to write up to this point far) and thinking about things, and I can’t actually think of anything I would rather be doing (though I suppose I would prefer to be doing this but on the moon), so I would say happiness is pretty much up there at the top of the scale.