A Student Again

February 16th, 2005

Orientation. The last time I participated in a first year orientation was way back in 1977. This year, I am doing a couple of design papers at the design school at Victoria University. So I took a couple of hours today to attend orientation.

Some first impressions. Obviously everyone is young. As a work colleague said, it is possible that some of the students could be children of the students I taught back in 1982!! A sheet passed around requiring students to fill in their names and birth dates confirmed this. All were born around 1986 with one born in 1981.

Lots of computers, but all running Windows 2000. The Website seems to be serving ASP pages. No sign of any Apple computers. Maybe I am not looking hard enough <grin>

Back again…

November 15th, 2004

It has been a while. Most blogs go though this hiatus, don’t they? But let’s get this pony back on track.

Since I last blogged, Visual SlickEdit for Mac OS X has been released. Being a long time user and fan of VSlick, I nearly wet my pants. At long last a real editor was being shipped for Mac OS X. No I don’t regard BBEdit, cute as it is, as a programmer’s editor.

Alas, my joy was short lived when the Out of the Box experience was anything but Apple like (or for that matter BBEdit like). The app was a frigging X Windows app and required X to be installed. Okay, installed X and then got VSlick up and running.

Next the key bindings out of the box were a bit of a pain. You know the usual fight between the ctrl and ⌘ keys. And the mnemonics.

slickedit-menu.jpg

They tease you by showing the underlined menu items, but there is no way to invoke the corresponding items. You have to go through and reassign the keys that are assigned to the menu items. Only then can you use the ⌘ key and the underlined letter.

The final pain in the ass is that although the VisualSlickEdit icon displays in the ⌘-tab task list, you can’t activate the application using it. Instead you have to pick the X application icon.

task list showing visualslickedit and X icons

Now realise, that even after all this hassle, I still find VSlick a pleasure to use. When it comes to loading and parsing a large XML file (tens of thousands of lines), this baby manages it with no sweat. The selective display still rocks. As does code completion and jump-to-definition.

VMWare Discount Code - VMRC-MARBER746

May 27th, 2004

Being a fan of VMWare, I just signed up for the VMWare referral program. By agreeing to the conditions, which include “Consent to Receive E-mail Advertisements”, I received a referral code (VMRC-MARBER746). Anyone who uses this referral code, gets a 5% discount off any purchases they make at the VMWare store.

To get the 5% discount, all you have to do is enter the discount code when you go to pay.

Virtual Machines

March 31st, 2004

One of my must have tools when developing software is VMWare. This great product lets you run a PC within another PC. It gives you an emulated PC on which you can do almost anything that you can do on a normal PC. You can boot it, install software on it, configure it to have network access, and when you have finished, you can shut it down.

However there are a few advantages that it has over a real PC. With a real PC, if you botch a software install, it is often a case of starting again by re-installing the operating system. However with a virtual PC, there are other options. When you shutdown a virtual PC, VMWare gives you the option of committing or discarding changes that have happened since you booted the virtual PC. So if you botched a software install and want to revert the system to the state that it was at before you started the install, just discard the changes.

Another advantage is that the virtual PC is persisted as a normal operating system file. This means that you can do normal file operations on it. Actions such as zipping it up, burning it to CD, moving it to a faster host machine or even sending it by email - only kidding - these persisted files can be hundreds of megabytes even when zipped.

Okay, so let me list the ways that I have used this animal over the last couple of years.

The first use was when we had to develop for and configure a Websphere Application Server to talk to an Apache Web Server. Because we needed separate servers to evaluate the configuration options and because there was a shortage of hardware, we used one PC running two instances of VMWare - one for the Apache Web Server and the other for the Websphere Application Server. With enough RAM, the performance was adequate.

The project also required us to support a variety of Browser and Operating system combinations. Rather than have a battery of PC’s lined up taking up desk space, we opted to use VMWare. We configured a clean VM for each required operating system browser combination. When we needed to test a particular combination, all we had to do was boot a particular VM. Once testing was done, we could shutdown the VM, discarding any changes. We could always start with a known clean configuration.

More recently, I was investigating Active Directory. Rather than interfering with the existing site configuration or stuff around trying to set up a separate physical LAN and PCs, I used VMWare. By creating two VMWare instances, one with Windows 2003 Server, the other with Windows XP and setting them up so that they were on the same private host only network, did the trick.

One place that it shines is with training. We had to do a half day course on the Microsoft Sharepoint Portal Server. Rather than going through the hassle of trying to get the software installed and configured beforehand on our PCs, the instructor waltzed in on the day, pulled out a couple of DVDs with preconfigured VMWare saved files and we were ready to go. The added benefit was that we did not have to worry about installing and removing the software from our PCs.

On Mac OS X, Virtual PC provides a similar facility. The main purpose here seems to be to provide access to Windows only applications. I have used it, but don’t find it as snappy as VMWare. Possibly because I was running it on a iMac 800 with 768MB.

Microsoft also provides a version of Virtual PC for Windows, which I haven’t tried yet.

Sweet Spot

December 21st, 2003

Moving between different screens of a small 12" iBook (1024×768), a 17" iMac (1440×900) and a 19" Windows 2000 (1280×1024) Desktop PC got me thinking about how I use screen real estate. My initial reaction was that the larger the screen size and the higher the resolution, the better I work.

I mean, with a large screen and high resolution, I can show more columns and rows in an Excel spreadsheet, fit more lines in a terminal window or see more of the code when editing a file. Or sometimes I have my program editor open on one half of the screen and the running version of the program on the other half.

However, I am starting to think that maybe bigger is not always better. I think I am using the 12" iBook reasonably effectively and for some tasks, I actually prefer using it instead of the 17" iMac. And that is what started me thinking.

Basically, there is a part of the screen that I am comfortable focusing on. Whatever I am currently doing, has to be done in this sweet spot. For me this is about 600×600 in the centre of the screen. Whatever application I am currently working on has to be positioned there. And whatever bit of text or thing I am working on has to be near to the centre of this sweet spot.

For example, Vim provides a way of showing multiple documents in separate windows within the main application window. However, I find that there is always one area of the window that I prefer working with. If there is something in the top right window, then I feel more comfortable moving that window into the sweet spot rather than looking at and typing into the window in the top right corner.

I prefer only focusing on one task at a time. If I am coding, then the entire screen should be devoted to coding. However, It doesn't mean that the whole screen should be one code editor. I am comfortable with supporting information panels surrounding a central working area. For example in Photoshop and Photoshop Elements, the information palette is very useful for showing, in real time, the size of objects when they are being resized and/or the RGB values of the pixel under the mouse pointer.

But I still like the area I am working on to be in the centre of the screen. And I don't like these additional information panels encroaching on the sweet spot.

Launchbar for Windows?

November 22nd, 2003

We all know how much I rave about Launchbar. Well, there is a Windows equivalent, called AppRocket. Well, a sort of equivalent. It has a similar idea of learning and remembering shortcuts that run commands. But, it currently has some shortcomings.

  • It requires the Dot Net Framework to be installed.
  • It is useful for launching apps. However it is not that great at finding running instances of existing apps. So for example, if you launch FireBird by pressing alt-space and then keying in Fire, Firebird will launch. That’s dandy. However, switch to another app and then try getting back to Firebird using the same method. You end up with another instance of Firebird. Bah!

    Generally speaking Windows Apps don’t seem to return you to the currently running app if you launch it again. Exceptions to this are Photoshop and VSlick (which has the +new command line switch if you want to launch a new instance).
  • It does not show a list of running apps as you can do in Launchbar.

However, it is still only Public Beta Two. So it could still be early days.

The Lack of Mnemonics in Mac OS X

October 24th, 2003

One of the major differences between Mac OS X and Windows is the lack of mnenomics in the Mac OS X menuing system. There is an explanation at Java 1.4.1 Development for Mac OS X: Making User Interface Decisions, about the lack of mnemonics:

This does not fit in with the Aqua guidelines for multiple reasons. Among them:

  • It is extraneous information. The shortcut is already defined to the right of the menu item.
  • It is imprecise. Note in this example that Save and Save As both have the letter S underlined.
  • It clutters the interface.

However, one point that is missed is that mnemonics are in fact an alternate way of accessing menu items quickly. They are not intended as a replacement for shortcut keys. They are there to help people use an application quickly more quickly.

As I start using an application, there is no way that I can remember the shortcut key of every item. I have a good idea which menu the item is on. So if I can take a quick look at a menu, I can see whether an item is on the menu. if it is there, I invoke it.

Mnemonics help reinforce this pattern. Using mnemonics, I can cause the menu to appear quickly. If the item appears on the menu, pressing its mnemnonic invokes the item.

Eventually, I get to remember the sequence of mnemonics required to invoke an item and I don’t have to search the items on the menu. If I find I am using the same item frequently, and it has a shortcut key assigned, I will start using the shortcut key.

Link Blogs

October 15th, 2003

What a neat idea Richard has!

Using Mac OS X and a .Mac account, it is possible to organise your bookmarks and synchronise them between different Macs running Safari. However, as far as I know, you need to do this with Safari and you need a .Mac account.

Creating a link blog like Richard has done, suits those who browse at different places with different operating systems and browsers. From any box with a browser that is connected to the net, you can now persist your links so they are accessible elsewhere.

Lastly, separating the content and link blogs, gives better focus to each. I can now subscribe to the content blog to get the juice without having to trawl through zillions of short one liner links.

Outside In

October 9th, 2003

I couldn’t agree more with /\ndy’s Weblog about people finding workarounds to cumbersome, bureaucratic systems. As he concludes

The solution, of course, is to align the “official” system more closely with the needs of the people.

I like to Think Outside In. What is customer’s real problem and how can you help solve it? How can we do it without forcing our systems, processes or inefficiencies on them?

Launchbar again.

September 23rd, 2003

I mentioned previously how useful Launchbar is for keyboard junkies. Another neat feature is the way it can jump to a particular pane of the System Preferences.

For example, to get to the Network Pane from whatever application I am working in, I key the following

alt-spacebar
network<enter>

and the System Preferences Application is displayed (or started if it is not currently running) with focus on the Network Preference Pane.