@madpilot makes

One computers, one PocketPC and some funky software

I recently wrote about MaxiVista – some software which allows you to turn an old laptop into a  second monitor. I still use it at work everyday to get three screens of happiness. However , what to do at home? I’ve only got two screens  at home and frankly it makes me sad. As far as I’m concerned three monitors is the holy grail of productivity.

My old Compaq iPAQ was sitting next to my laptop looking at me all forlorn – I haven’t used it much lately, now my phone does everything it used to do, so it was just sitting there using electricity. I thought to my self

Yes, this is the sort of thing I think about. Since I only use the third monitor for Getting Things Done, such as my scheduling sheet and my time tracking, the smaller screen would actually do the job. Even Synergy would have done the job, as it would have allowed me to easily edit a Pocket Excel document, and 88 Miles works on PocketPC. Alas, Synergy for PocketPC doesn’t exist (no suprises there).

What does exist though, is SideWindow by Innobec. Seriously, they have created a piece of software that, just like MaxiVista allows you to extend your desktop to another computer – except this time the other computer is you PocketPC! Crazyness.

My PocketPC displaying 88 Miles via SideWindow

Now unfortunately my PocketPC doesn’t have WiFi, only Bluetooth so the connection is a little slow (and flaky), but it works! If does discconect for no reason occasionally, but I suspect this is more to do with my dodgy networking hack (I connect my iPAQ to my server via bluetooth and BlueZ, which in turn connects to my laptop via WiFi.).

SideWindow has a screen rotate feature built in, so you can run your new screen at a more natural landscape layout, rather than the less then useful portrait. Obviously 320×240 pixels isn’t really much real estate to gain, so the clever people at Innobec allow you to scale the window to fit more in (right up to 1024×768!) The more you scale the less readable things get – I’ve found 640×480 is a nice comprimise between readability and speed, however if you have a fast network connection you might get away with a higher resolutions.

It’s $15 to buy, and probably isn’t for everyone, but it’s still on of those “Cool” things to show off to your geek friends.

Calling future speakers!

There has been a lot of debate recently about diversity in Web conferences. It is a topic that seems to rear it’s head on a semi-regular basis. As some of the players in the conference circuit have pointed out, maybe we as potential speakers can make the conference organisers’ lives a bit easier.

It is hard to encourage diversity when the pickings are thin – this isn’t to say that the talent from all realms isn’t out there, maybe the people who put on the conferences just haven’t heard about them?

Kevin Lawver has blogged about How to Get to Speak at Web Conferences and point #2 has given the inspiration for this post. Below are a list of some of the events which encourage people to get up and speak about what they love. The list is Australian-centric, mainly because that is the circles I hang with, but I would love to hear of similar things going on around the world (Hint: leave a comment and sell your event!).

So maybe you, oh humble reader, should sign up to a event near you and get your name out there – you never know who might be listening.

  1. AWIA Mini-talks – Ok, I have a vested interest in these because I organise them… Currently Perth based, but AWIA is looking to expand them Australian wide. Two speakers get 10 minutes to speak on a topic of their choice on the first Wednesday of the month. Check out the podcasts.
  2. WebJam – The WebJam organisers have just announced a second WebJam event which is on in a couple of days. WebJams are even more fasted paced – 16 speakers get three minutes!
  3. BarCamps – These “Un-conferences” encourage collaboration and knoledge share – they provde a great opportunity to speak in front of a group and show others what you know. There are BarCamps coming up in Sydney, Melbourne, Canberra and Adelaide next week – Check out the Wiki web site for details of who you can get in contact with.
  4. Melbourne (and soon to be Sydney) based Tequp is kind of similar to BarCamps, except they are weekly (And I thought organising monthly meet ups was hard!)
  5. The web standards group will often have speakers at their meetings, and I’m sure you local organiser would be more than accommodating.
  6. A number of big conferences have experimented with open-mic type session: The Future of Web apps had one, New Zealand based Webstock has it’s 8×5 seminars which looks like it is something similar.

Not a bad list, but I am sure I’ve left off heaps and heaps – I want this list expanded people!!!

Edit: SomeoneMeri Williams has created a wiki aimed at mentoring people that want to get into the speaking biz.

Getting Things Done tip #342: Scheduling with spreadsheets

Online GTD (Getting Things Done) services are so hot right now – Hey, I’ve released one.

But I would put money on the fact that most of them originated by the author abusing a spreadsheet at some point and for good reason. Creative use of a spreadsheet can allow you to experiment with different systems until you find one that fits.. Here is my tip for easy and effective job scheduling using nothing more than Excel or Google Spreadsheets (or what ever spreadsheet software you may choose).

The following goes shows you how to setup the system I use for planning my day using Excel:

  1. Create a new spreadsheet
  2. Click on the top-left hand corner, so that all cells highlight. Drag the right and bottom columns of the first cell to form a square. I like 150 px. All of the other cells in the spread sheet should follow.Step 1: Make all the cells largish squares
  3. Click the Format Menu and select Cells. Select the Alignment tab. Check the Word Wrap check box and change the vertical alignment to topStep 2: Format the cells
  4. Enter the days of the week down the left hand side
  5. Start entering your tasks for the week! I like to put the estimated or allocated hours in brackets and re-ordering the task so the most urgent ones are towards to left.Step 3: Add your tasks! Re-arrange by cutting and pasting.
  6. Once you completed the task, Click the cell that contains the task, Click the Format menu, and select Cells, then the font tab. Check the strikethrough checkbox.

If you need to shuffle things around, you can easily cut and paste cells. Need to add notes? Right click on the cell, and add some notes – A small red triangle will appear in the top right corner of the cell.

What is your favourite GTD scheduling tip?

Two computers, three monitors and some funky software

At Bam, I’ve had a second 19″ Dell LCD sitting idle on my desk for a while. Why has it been idle? Because the video card on my desktop doesn’t support multiple monitors. This was quite depressing as I love dual monitors, but I didn’t have time to find a card that would work for me (My box is half height, and only supports PCI express severely limiting my card choices).

Then I discovered a little piece of software called Maxivista, which allows you to use a second computer as a virtual video card. It just so happens that my laptop supports an additional monitor as well as the built in laptop and since I take it to work most days it was a perfect candidate for the Maxivista treatment. By downloading the Pro version (about $50AU) I managed to set up THREE, count them THREE monitors! The image below shows my setup:

My three monitor setup!

The way it works is simple, yet ingenious – on the host (or server) you install the “virtual video cards”, which is just a software driver. The drivers appear to the host as a normal video card. You need to start a virtual card for each virtual monitor you want to support (I setup two). Then on the client/s you install a small app, which receives the video signal. I run two different instances of the software on my laptop, so I get two different monitors.

The lag is surprisingly low! For day-to-day development work, you don’t notice it at all. I was watching a YouTube video on the second monitor today and it was pretty smooth, although you wouldn’t be able to watch a DVD or play a game, but it is still pretty darn impressive!

I’d also recommend installing UltraMon – it allows you to add a discrete taskbar to each window, which makes organising you desktop even easier. I have my IDE in one window, a test browser in my second and my “Getting stuff done” stuff (time tracking, task lists etc) on my third. It is panoramic bliss! :)

Sorry, the servers down – please proceed to login

I was just logging into my online banking system and was confronted with with error message – besides the typo (possbile?) I find it interesting that there is a button inviting you to login in to a system that is un-available… and yes you can proceed to the login window, and it isn’t until you enter your details again before you get a definitive error message. A good example of what NOT to do.

When is an error message, not really an error message?!

Three development tools you simply must have… Part II

The second development tool in the “simple must have” category would be Capistrano. Capistrano is a deployment system that was written in ruby and is (not suprisingly) integrates quite nicely with Ruby on Rails. However! you can quite happily use it for any system, because at it’s heart, it is just a remote scripting tool.

When you run capistrano, you call a recipe, which is executed on the remote server or servers via SSH and it works really well.

Installation

The capistrano hand book has the latest installation instructions, so check there, but the basics (at the time of writing) are:

gem install capistrano

This will install the cap application. The tutorial from Simple Complexity – it deals with most of the difficult stuff (it’s actually really easy) and I don’t think I can put it any more eloquently.

Follow the steps and then you too can love the one-command deployment. I use it at MadPilot (for 88 Miles) and at Bam all the time. It’s great.

Next week: Part III

Oo-Ahh, it’s all about line and length

I’m sitting here watching the Poms getting destroyed by the Australians in the first test of the 2006/07 Ashes and just witnessed an interview with the man of the moment — Glenn McGrath. He just pulled a six wicket haul to knock off the fledgling English batting line-up in less that a day.

Anyway, during this interview he said the following when asked about what he thinks about when he is bowling:

It’s a simple game that we complicate. When you’re looking for that first wicket, your process is a little bit out

This sounds like the hype that is going around the web industry at the moment about keeping software simple – it is interesting to see how the theory translates to other facets of life.

The irony, I think, is that it takes much experience to be able to simplify a process down. An in-experienced person will probably see a simple solution, however they may fail to interpret potential problems down the track. semi-experienced people may not have used certain techniques long enough to be able to safely say in a given situation whether the procedure should be dropped or not. It is the experienced person that can see exactly what can be culled.

WAWAs onVoiceOver

Ok, ok, I know I should be publishing part II of my fantastic “Three development tools you simply must have…” series, but I just got news of the following article about the WAWAs: http://www.onvoiceover.com/articles/wawa/. Not a bad write up if I do say so my self :)

A big thanks to John Lampard for the article.

Three development tools you simply must have… Part I

As a web developer, there are a number of tools in my toolbox that I find it hard to live with out. These tools for the basis of my development and deployment procedures and have not only made my life easier on many occasions, but saved my arse on more times than I care to admit.

Although these tools excel when used by a team of developers and designers, I still use then when I’m developing my own projects, such as 88 Miles. I’ve split this mini tutorial up into three parts, so that I can be a little bit more descriptive about the actual process.

Application #1: Subversion

Developing without subversion (SVN) is like throwing rocks at your house. Sure it may be fun, but sooner of later you’ll hit a window and lose all of your source code… I’ll leave the unmixing of that metaphor as an exercise for the reader. Subversion is a source code versioning system which you can think of as a safe for your source code. The concept is simple:

  1. You take a copy of the source code (checkout) and you work on it.
  2. When you have made your change you save the change back in to the repository(commit)
  3. When you delete or stuff something up, you check the previous version out of the repository and no one is any the wiser.

SVN uses a copy-merge system which allows many people to check code out and work on it at the same time. This is handy if you have a lot of developers. Many other version control systems use the exclusive-lock in model, where a developer checkouts the file, which locks it until they are finished, which is fine too – both have their pros and cons.

Copy-merge pros:

  • You can have many developers working on the same code at the same time
  • If a developer leaves a project, goes on holiday falls in to a mighty cravass, there is no risk that they will have an exclusive lock on a file, stopping other developers working on it.

Copy-merge cons:

  • This can get messy if two developers work on the same file at the same time. At check in time, they will need to merge their changes, and if they have been making major changes, this might not be trivial. Solving the issue requires some heavy communication (not really a bad thing) and some planning (again, not a bad thing). On small projects, the likely hood of this is pretty small

Exclusive-lock pros:

  • It is impossible for two developers to work on the same file at the same time, eliminating a situation where one developer destroys another developers work

Exclusive-lock cons:

  • It is impossible for two developers to work on the same file at the same time :)
  • See Copy-merge pros

One of the greatest things about SVN is it’s price tag – nothing! (Don’t let that freak you out though, there are many big projects that use it – Ruby on Rails is one that comes to mind) and there are clients and servers for Windows, Mac and *nix.

Although setting up SVN itself is probably beyond the scope of this article, I’ll out line the basic procedure to set up a repository, and to work with that repository.

Setup

There is a command line utility bundled with the package called svnadmin. This, funnily enough, is the administration tool for subversion. To create a repository, you do the following:

svnadmin create /path/to/repository

Where /path/to/repository is the location of the repository. So, say you want to create project called foo in the directory /home/subversion, you would execute

svnadmin create /home/subversion/foo

And it is setup! You will probably have to play with the permissions by editing the /home/subversion/foo/conf/svnserve.conf file, for the sake of this excercise, we will allow unlimited access to the world. Obviously, in real life, you would lock it down so only those that you wanted to be able to access the code could. Check out the subversion manual for details on how to do this.

Open the svnserve.conf file and find the line that says:

# anon-access = read

Change it to

anon-access = write

SECOND WARNING: THIS IS INSECURE. DON’T DO THIS FOR A SERIOUS PROJECT. And if you do, don’t come looking for me when some one steals your code.

Now you can checkout the empty repository in to your working directory – so called because it is the directory that you work in. The command will probably look something like this (depending on our server setup of course)

Right! now you are read to start coding! Once you have finished, you can add any new files, delete any old file and then commit the changes. Just so I know what is going on, I will first check the status of the directory

A new_file_2

U modified_file

D deleted_file

The letter before the filename gives you a hint as to what you need to do – A is add, D is delete, U is modified. To complete this commit, I would run the following commands:

/path/to/working/directory% svn delete deleted_file

/path/to/working/directory% svn commit -m “Created some files, deleted a file, modified a file”

And if all goes well, subversion will return the new revision number. Revision numbers in SVN are global, so every time you run the commit call, the number will be incremented. The -m flag stands for message, if you don’t put it in, a text editor will pop up asking you to add a message. The message you enter needs to be descriptive of what you do, so that others (or yourself) can go back and see why each commit was done.

Want to rollback the changes from a commit? Say you made a BIG mistake in revision number 5 and you need to go back to revision number 4, running the following command should do the trick:

_/path/to/working/directory% svn merge -r 5:4 svn://svn.myserver.com/foo

/path/to/working/directory% svn commit -m “Undoing BIG mistake”

So revision 6 will now be the same as revision 4. Notice though that revision 5 still exists, so if you later realise that the mistake wasn’t that big after all, you can revert back to revision 5!

This is just touching the tip of what subversion can do – you can do all sorts of other funky stuff, but I’ll leave that up to you to read up on. 99% of the time, this is what a subversion session looks like for me.

Next: Trac bug tracking

And that’s a wrap…

I can’t believe web directions is over already. Two days of talks, meetings, greetings, server admin (more on this later) and drinking. Here is a quick over view of what happened for those of you playing at home:

Thursday

  • John Allsopp talks about Microformats. All this talk of contact databases and vcards gives me an idea…
  • Derek Featherstone rounds up the day with is (from what I have heard) always enteratining talks. This was no different. However, I’m mildly distracted, as I start hacking a new Ruby on Rails site whilst listening to the talk (See talk given by John Allsopp). Yes, if any of you remember seeing a guy testing a website during the talks that was me.
  • And the drinking begins… The Port80 committee is a little late after having an impromptue Port80 committee meeting. However we soon catch up. I have a good long chat with the campaign monitor guys – they are top guys. It’s almost sickening :)
  • Onwards to the Landsdowne for cheap food. Miles is talking up the $5 meals. I soon realise why they are $5 meals. Never the less, the beers are heaping my headache. At this point many of our crew (we have acquired a few Melbanians, some Adelaidenese and a Brisbanite) part, touting tomorrow nights drinking and Andy Clarke’s early morning talk as reasons for an early night. Not so much this entrpid reporter!
  • Myself, Grant and Sarah head over the The County Claire hotel. This has been where the cool kids have been hanging out – many of the speakers and helpers were already there getting tired and emotional about web standards. Drink some more. Meet numerous people. Alas, all too soon, last drinks was announced, and this is where I should have listened to the little voice in my head.
  • A group of four decided that the Landsdowne would once again be an appropriate venue to discuss the finer points of modern dance. A pearl of wisdom if I may. If someone challenges you to an arm wrestle, say no. Although I wasn’t defeated, I still can’t really use my arm properly. Another pearl: If you need to be at a conference session at 9am, don’t get up at 9:30. Yes. I missed Andy Clarke. Everyone has consistently re-iterated how this may have been the talk of the conference, and I missed it. Yeah. That’ll learn me.
  • Next I sat in on Laurel Papworth talking about viral marketing and user-generated content. Pretty interesting. I was listening to the talk, while continuting to hack my new application.
  • The man in blue, Cameron Adams and Kevin yank from sitepoint gave a pretty kick-arse talk on using APIs and mashups, and at this point I actually caome across a term I hadn’t heard of – JSON-P! I use JSON all the time, but this P bit is new and foreign. I will read up shortly. (Still hacking new app)
  • After lunch Jeremey Keith talks about degradable Ajax in a presentation entitled hijax. At this point I start to write the Ajax handlers on the new mystery app, then realise that I really should stop cutting corners and should right it degradably. Thanks Jeremy – you just added a good hour or two on too my app development time. Grrr! To makes matters worse, my battery runs out, so no more app dev for me – my dreams of having it finished before the end of the conference are ruined! :)
  • Next is Derek with a thought provoking and almost forums like presentation on accessibility. He went in to the nitty gritty of how screen readers work. But I think the most important part was that no matter how much tech you throw at the accessibility problem, there is no substitute for sitting down with a user and watching how they work.
  • Now the final keynote address is where the interesting stuff started. Not from a conference point of view (Everything was interesting but from a work point of view). At Bam we went live with three sites a couple of days before I went away (Dumb idea, but they couldn’t wait). Miles gets a message that there was a problem with one of them, no worries – I’ll logged in to MSN and had chat with those left in the office and realised that I’d have to login to fix it. No biggie, except my laptop was out of batteries, as was Miles’. So we borrowed the laptop of one good samaritan, Adrian and we were on our way. Unfortutately, we were in bigger trouble than I thought. We have a rather large client that was been hammering our server the past couple of days, and it was really proving a problem.
  • After the keynote was over we headed back to the port80 hotel (AKA The Vulcan) and I continued to look into the server issue. The server was running at a load of about which means it was running SLOWELY. After a number of phone calls back to Perth, more work on another borrowed laptop at the after party (Thanks Adam), we finally got the server laod to stabilise. If you were wondering, I was the guy sitting cross legged outside the dance room with the black Macbook Pro working :(
  • Finally I could go party (Things weren’t 100%, but they would do). John Allsopp took us to possibily the dogdy-est pub in Sydney – the Star Hotel. This place looked like a mini casino – Coming from Perth where pokies are illegal evey where except the casino, it is weird seeing one-armed bandits all over the place. And I love anywhere which shows harness racing and greyhounds on one of many plasma screens. All class. After that, we took a walk along a street that was littered by asian restaurants. After making fun of the fact that these places usually have gross looking birds hanging in the window, presumably as a sponge for salmonella, we settled on the Superbowl restaurant WHICH HAS A PICTURE OF GROSS LOOKING BIRDS HANGING IN THE WINDOW. You couldn’t make this stuff up.
  • Onward, we continued travelling see weird signs for shops, one of my particular favourites was: Doctor Friend Chinese Medicine Acupunture Massage Skincare center. I’m so tempted to register http://www.doctorfriendchinesemedicineacupunturemassageskincarecenter.com
  • It is decided that we should go and meet the cool kids (See County Clare) at Purple sneakers. So We drop myself and Grant walk Miles home (trying to convince him to come out with us – he’s so soft) and we start our journey the 50m up the road we need to go. Or so we though. How would have though that Sydnesy has more than one main road!? We got lost. In a 50m square radius. Then Grant fell over and nearly busted his ankle. It was funny. I guess now in hindsight it would of sucked if he couldn’t walk, but it was still funny :) After offering him a shopping trolley, and his refusal, we finally get to Purple Sneakers.
  • Not only is Purple Sneakers a name of a You Am I song, it is the name of a cool, grungy little Amplifier-esce club in Ultimo. Was much dancing to be had with such classics as “Wave of Mulitlation” by the pixies and Parklife by Blur. Other notable mentions included the Strokes, Regurgitator and much, much more. We left there about 4am.
  • The final parts of the night (now early morning) was to sit up and drink beer with Leon on his balcony that over looks the city and watch a magnificant sunrise.

So all in all a fun-filled couple of days, with both ups and downs, but we worth it. Roll on WD07!

Previous Next