My Setup

2010
05.10

I was speaking with a good friend the other day who pointed me to http://usesthis.com/. A simple idea: talk to the big players in the now & future space of the software industry and get some insight on who, how they do what they do.

I good ideas deserves copying … And so here is my background on the hardware, software and future desires:

The Hardware:

I recently upgraded to a 15″ MacBook Pro - it works great and doesn’t overheat unlike the baby mac I previously had. I used to use a Lenovo T61 – ugly beast but its served me well and worked hard. When I’m near my desk I connected to a 500GB segate drive, 24″ IIyama display and a overpriced but good mighty mouse.

Also at home I like to listen to music from my old Project Debut II turntable and Mission 701 speakers. I love my vinyl even if I have to constantly get up to flip it over. And for pictures I’ve a second hand Canon 40D. Its not that fancy but very robust – I’ve broken far too many digital cameras so I appreciate its metal chasis. Speaking of which I had to succumb to a marware condom for my iPhone for the same reason.

The Software:

Most of the day to day grind involves Chrome, TextMate and the terminal. Our office has moved very successfully to Google Apps for domains so this frees me from Outlook. I use Aptana for some development work, Tweetdeck to keep up with the world and then theres XCode, Skype, Picasa, Axure, Excel & iTunes. On the server side I’m a big fan of Ubuntu but also resort to Redhat on production environments. In these places its vi, bash, mysql, apache, rails, php & subversion.

What would be the dream setup?

I actually think I’m pretty lucky already. Not to much to add, a QNAP media server and playstation 3 would ease the burden of course and a SSD hard drive would make things move faster – always a necessity. Oh and a Fonera_2.0 router, currently on a bogo cheap thing that needs to be regularly rebooted.

Ideally I’d have a moogle device which would be some kind of google for the mind – it would index the stuff I can’t and do forget every day, oh and can it do the research and the work too please.

HTML 5 – what the web could look like

2010
04.19

Shortcut: Very quick post on HTML5. Checkout this great round up of the feature available in HTML5 by the good fooks at apirocks.com. apirocks.com/html5/html5.html#slide1

You’ll need a capable browser like Google Chrome or modern Firefox to view.

Apache – Name Virtual Host errors

2010
02.27
For some time now apache has been bugging me that there is a configuration issue with my virtual hosts, so I decided to find out what the issue was and try to resolve it. As it happens the fix was easy but not well documented.
Issue:
[warn] NameVirtualHost *:80 has no VirtualHosts
Resolution:
You can resolve this by ensuring that you virtual hosts are configured correctly. To do this you should have a NameVirtualHost for each of your ports and then be using ServerName within each virtualhost. By configuring apache this way you allow it to correctly interpret requests for different virtual hosts on the same IP Address.
Example:
In my apache2.conf file I have the following declaration
NameVirtualHost *:80
And then each of the virtual hosts is configured:
<VirtualHost *:80>
RailsEnv beta
ServerName my-app.redjamjar.net
DocumentRoot /home/rails/beta/my-app/current/public
<Directory “/home/rails/beta/my-app/current/public”>
allow from all
AllowOverride All
</Directory>
</VirtualHost>

How to get your email heard – make it a tweet style one liner

2010
02.22

Every time I make it third person single question/update one liner I get an almost instant response – it really is awesome.

And for the longer messages… well that little subject line is the place to not ‘name’ the email but to get right into the essence of the email – by the time its been read the recipient wants to read the rest of the email.

Integration – how to plan for the unknown

2010
02.17

No one has ever said integration of one system with another is straight forward. But does it always need to be a surprise a minute roller coaster ride? In a recent and slightly challenging (read evolving) integration projects I devised a simple set of rules:

Action Plan:

  1. Identify the unknowns
    How? Start simply with broad questions. Don’t be too quick to get into the detail as this will be the natural tendency. At this stage understand nothing about the detail but fully comprehending the end user environment or capabilities will give you a greater barometer for detecting where the unknowns are essential or not.
  2. Questions everything, assume nothing
    I’ve tripped over this many times, combined with one this is probably the largest probably when scoping, initiating or specify an integration piece of work. I find Excel is my friend in this situation, I can capture questions and responses as the knowledge flows
  3. Seek documentation but don’t rely on it.
    Documentation in what ever form is usually well intentioned, but out of date, inaccurate or just plain wrong. Typically the documentation will look grand ‘Technical Specification for X.Y.Z version 1.2′ however what tends to happen is that was written at the outset before a line of code had been written – ask yourself when you last went back and updated a specification at the end of project, yet you want to make key integration decisions based on it?
  4. Get a setup of the system as close as possible to the real environment for use during development, verification testing and UAT
  5. Commit, integrate and test regularly. Really if your not doing this forget it
  6. Use real data not ‘lorem ipsum’ or ‘test account 1′
    Demand this especially if you have translation or localisation considerations to consider.
  7. Allow your/encourage your client to come and inspect your work – they may see things your developer mind over looked.
    Coming from a developer mind I’m always surprised how easy it is to be lulled by our perspective on systems.
  8. Testing
    Even with all the automated testing, eyeballs and code reviews I’m still amazed by how often I come across developers who see it as acceptable to ship code from their development computer to a production environment without any testing.

Have I overlooked anything you find works best for you? Let me have your comments and I’ll add them in.

A thought: There, their and they’re

2010
01.21

Has anyone ever suffered from that dreaded situation of not knowing which it is?

I have but in a less than straight forward sense. I actually have no problems establishing which it is. However what I actually realise is I can’t do it when I’m writing, only reading.

So for instance when I write an email more times than not its incorrect. But when I read it back to myself I quickly realise the mistake and correct it.

And this therefore leads me to wonder; is this due to the fact that making the decision on which to use requires the context of the sentence something which is more apparent when reading for the fact that you read at a faster rate and therefore keep a pace. Or is it due to the way in which the brain is wired? Could this identify that the areas of writing out language are different to areas for reading language?

In fact in further consideration I typically find the same is true for all of the peculiar words, tense and grammar.

I don’t have the answer or fast opinion on this. But I can establish a neat life rule: the importance of re-reading a passage of writing before pressing the print/send/save button.

And by the way if you do need a refresher on which to use try this:

http://www.wikihow.com/Use-There,-Their-and-They’re

Six thinking hats designing and scoping solutions

2009
11.29

hatI’ve been contemplating this for some time. In fact it dates back to my first trip with my Dad to the local library in North Walsham where I found a copy of Dr Edward De Bono’s: Six thinking hats.

Six Thinking Hats is the concept that innovation, judgement and thought can be better managed and facilitated within a group if the group organises their collective thinking processes around a set of specific areas.

Each hat represents a specific area of consideration or thought and for simplicities sake you often see them represented with different colours. I’ve used this personally over many years and found that with time a. you can become faster but b. it takes time to perfect. The tools are useful for innovation but they can equally be applied to strategy enabling you to flesh out and balance a strategy considering the full range of inputs and therefore logical outputs.

During a recent workshop I attempted to use this model for technical innovation, scoping and design. Much of the work I’m interested in is understanding the real business requirements and desires such that I can translate this into a process and therefore into a software solution. I stress real business requirements because in my experience what I’m presented with at the start often differs from the final needs. In effect there is a part for me to facilitate the discussion and also capturing it as it comes to light.

With any task these days time is money and being swift, focus and accurate are critical during this stage. So using the six thinking hats should work…

Hat 1:

Is concerned with questions and facts. Well that was excellent we started the discussion collecting together the initial facts/needs we had about the solution. The white board was our friend and having allowed our self with 20 minutes we finished feeling like a second pass was necessary but that we’d made a start. The nice experience was the shared concentration, each time something not to do with Hat1 surfaced it was immediately parked.

Hat 2:

Is concerned with the emotional, irrational aspects. This is not so easy simply because of the lack of time we’ve had to work together (kick off meeting) and that its not immediately obvious that this should have a relevance on our task. However after a short pause we did gather to gather our emotions and it was pleasant to find them largely similar. In this case around the desire for success, daunting hill to climb and concerns over failure to bring the essential elements out.

Hat 3:

Is concerned with judgments. Beneficial but challenging was the outcome here. The problem with this stage is that you need to criticise the solution, need, business case to unpick where there may be logical arguments which challenge the need for it. Our discussion unearthed a number of things which in Prince 2 might go onto a risk register. In our case we decided once again to not try to judge the arguments, if we felt they were valid then onto the whiteboard with the desire to return to each and ensure we had a mitigation in place at some stage during the spec phase.

Hat 4:

Is a pleasant stage where we all dust ourselves off from the previous stage and now focus on the positive points. In effect the positive points indicated a range of needs which weren’t focused on in the RFP, some of the more softer aspects such as the user experience, information architecture. As with most software RFP there is typically a lot of focus on the scope of the works with some explanation of the strategy. However its then important to tease out the needs in respect of the structure, and the representation it will take on screen.

Hat 5:

Is concerned with creativity, new thoughts and investigations. In effect this just happens as a outcome from doing each of the other hats. We confirmed in this section that the questions area of the whiteboard captured the unknowns at this point in time and quickly moved on.

Hat 6:

Is concerned with the holistic view. A moment to step back and recheck that the process followed has struct the correct chords and we are moving in the correct direction. Actually it identified that this may well be iterative. With the discussion so far the high-level areas have been considered but there remain holes to fill. Which gave us the drive to create the now and next actions plan. This gave each of us a collection of tasks to go away with and further enable us to cover off some of the more mundane aspects like who is taking on what. Probably not so ‘big picture’ as is intended but given the discussions to date have always been seeking for the big picture this was seen as no bad thing.

Conclusion:

Does it help, yes is the simple answer. More so for it being a new group of people working together and the need to channel constructive energy in a meeting to leverage a brief. However there are pitfalls and gap in terms of facilitating this as a process. Tangents appear which with excited minds can lead to new tunnels being explored which digress from the intention of this structure approach. Would I use it again – definitely given the right group and challenge.

Compiling Mysql Gem on Mac OS X 10.6

2009
11.15

Is not that easy to get hooked up and working (well it wasn’t for me)…

So in an effort to save you a hunt around google follow these steps:

  1. Download the 64 bit version of Mysql and install
  2. You may need to update your PATH variable with the location of mysql, on my machine its /usr/local/mysql-5.1.40-osx10.5-x86_64/
  3. And then follow this command to compile the mysql gem: export ARCHFLAGS=”-arch i386 -arch x86_64″ ; sudo gem install –no-rdoc –no-ri mysql — –with-mysql-dir=/usr/local/mysql/lib –with-mysql-config=/usr/local/mysql/bin/mysql_config

You’ve hopefully arrived at a working mysql gem.

Good Luck!

Top 5 things I’ve seen before I was 30

2009
10.07

Here is my top 5 places I’ve seen, this is not easy you have to leave out so many amazing sights

  • Visited the Louvre to see the Mona Lisa
  • Visited Luxor to see the Karnak Temples
  • Visited Mauritius to see the Black River Gorges
  • Visited Rome to see the remains of the Roman Empire
  • Visited Venice to get engaged

Responsive Design

2009
09.07

Just been reading an interesting article by Kent Beck in this months Pragprog over at Pragmatic Programmers

http://pragprog.com/magazines/download/3.pdf

The temptation is to put these design ideas in the system now because you just know you’ll need them eventually. Over-designing early leads to delaying feedback from real usage of the system, makes adding features more complicated, and makes adapting the design more difficult. By the same token, under-designing makes adding features more complicated, increases defects, and makes adapting the design more difficult.