MethylBlue
  1. Filelight
  2. Codeine
  3. Wocka
  4. Blog
  5. Detritus
  6. Home
RSS

My Tools of the Trade

November 10th, 2009

I don’t blog enough and I like to write about myself so this suited me.

Hardware

  • 24″ iMac
    I switched to Mac about 3 years ago now. Before that I was a Linux man. 6 years before that a Windows man. I’ve basically switched every time I find the next cool thing.

    For me OS X is the current cool thing. Apple do a number of things that are not to my taste. But those things are the minority and overall I greatly respect their design and production principles. OS X is lovely, and it’s UNIX. It’s also UNIX above the UNIX layer: simple GUI tools that do their task well. Cocoa is an amazing toolkit, it has many widgets that no other toolkit has thought of yet. The ones that others do, it does better. I regularly observe little bits of Cocoa creeping into Gnome. Qt/KDE don’t seem to notice.

    The iMac is good hardware. It was pricey, but it’s got a great screen, the components are fast, it’s the fastest computer I’ve ever had. I need more RAM though. OS X uses a lot.

    24 inches is almost big enough. I can just about get two documents side by side with enough wiggle room for other windows to hang at the edges. I expect 30 to be about right for productivity. After 30 the edges will be for storing things, and later dragging them back to the work-area.

  • Mighty mouse
    I got suckered in by the squeeze button for Expose. If you squeeze the mouse it activates Expose. Because of this I use Expose about 4 times a minute. There is no faster way to manage windows. Task bars suck, so does the Dock (the dock is only good for the badges). I identify windows visually. I even resize windows sometimes so they identify more easily. I have several multi coloured Terminal windows.

    The other feature of the Mighty Mouse that I have become dependent on is the scroll ball. Sure it gunks up, and that sucks chunks. However it scrolls seamlessly, ie. it doesn’t scroll in jumps. If I move the ball 1 pixel the window scrolls one pixel. Also being able to scroll horizontally simultaneously and thus pan over 360 degrees is very useful when such things are useful. Also OS X having scroll-wheel acceleration makes the whole experience great. Slow movements of the wheel move small amounts, but as I speed up the scrolling accelerates exponentially. Just like mouse-tracking. Every OS needs this.

  • Apple wired keyboard
    Now I seem like an Apple fanboy. And to some extent I am. However the keyboard is my least favourite bit. I still like it. The action is good and light, the push-distance is good. The sound is good. But it doesn’t quite suit. I used to have an Ergo Kinesis but in the end it broke. I was quite attached to it though, but it’s pricey. I still seek the perfect keyboard.

Software

  • Terminal
    I love the command line and UNIX tools. I could switch back to Windows if they abandoned the registry, switched everything to .NET and installed the UNIX toolset and a decent shell. Well probably not.

    The OS X Terminal is in my opinion the best terminal emulator available.

    When you resize the Terminal, it redraws all previous lines. This feature doesn’t exist elsewhere. It’s essential.

    You can script it with Applescript. I have scripts for opening stuff in new tabs that I use all the time.

    It’s minimal. Bugger all RAM, quick startup. And it still has good and useful translucency which I often use to read the website I am referencing while typing commands. No toolbar. What would you put there?

    You can select text and copy it, and paste works. Double clicking selects the word, and it is tuned to select the right parts of the words in a “terminal” sense. That is, it includes path separators correctly, etc. Dragging the mouse after selecting words selects more whole-words correctly, with good distance buffers at the edges of the screen to ensure you can do quick movements without over-selecting. Selecting and manipulating text in the OS X Terminal is perfect.

    Also it’s accidental, but the fact Mac’s keyboard meta key is Command and not Control makes it possible to use UNIX commands and Mac commands separately. This is just great. On Linux Control C would either copy or SIGINT. The latter could be unpleasant.

    The open command. The open command is great. Terrific integration between the GUI and the CLI. Type `open .` to open the current directory in Finder without blocking. Type `open *.xcodeproj` to open your Xcode project. Other tools mimic it, eg. the mate command complements Textmate wonderfully. You can even pipe to it: `cat README | mate` GitX is a fabulous git tool and I use the gitx command to open it at my current branch all the time.

    I have a button in Finder that opens the Terminal at that directory.

    Notable gripes: I want 256 colours! :P You’d think it was 1990 what with our wonderful 16 colour terminal.

  • TextMate
    I haven’t tried Text Wrangler, but I have never wanted to either. TextMate is very good.

  • Homebrew
    Well obviously. I did build it for myself after all.

  • Linkinus
    Linkinus isn’t perfect, but it is the best IRC client you can get. And I have basically tried them all. It has a great default skin that minimises the amount of noise that you typically get in a IRC channel, eg. it doesn’t list a person’s name twice if they say two lines separately, and it greys out the usually irrelevant channel messages. It also has the first actually functional remember-where-you-last-left-the-channel-line-marker a feature I’ve wanted for years and a whole progression of clients never managed to implement properly. Although I’m sure IRSSI can do it. It sorts nick completion in an order that prioritises people who’ve spoken recently.

  • iTunes
    I use iTunes for music now because it does quite a lot of the little things well. But simultaneously I hate it. It’s huge and bloated. I hate the fact it is also a sync point for iPhone and iPod. But having written a music player in my time, I can see the little details that are important to me and that it deals with well and without hassle. Actually managing music with it is painful, but you tend to only do that once so I can overlook it.

    For me the future is different anyway. I’m fed up managing a music collection rather than enjoying it. You can probably guess where I’m going with that based on my other activities.

  • Safari
    Safari is fast, but it also beach balls a lot. I find Firefox big and slow. So I’m looking forward to Chrome quite a lot.

    Still there are some features that are unparalleled in Safari. Eg. Find. Safari find is great. It greys out all the text and highlights the matches in bright yellow. If you google something then do Find->Next it is already set to your Google query. The cover flow history browser is the first use of cover-flow that is useful. It’s amazingly useful. I visually remember the site I am searching for surprisingly well.

  • Tweetie
    Tweetie is a beautiful application. But also it has enabled me to get a lot more out of Twitter. Exploration with Tweetie is trivial. Click-click-click and you are browsing some guy that’s a friend of some friend of some girl you know.

  • Fever
    I like RSS, sort of. It’s just a massive influx of information. I long for a future where some computer knows what I’m interested in, or perhaps better, what I should be interested in and feeds it all to me in a satisfying 30 minutes per day chunk. Fever claims to filter your feeds. But that is by far its weakest part. I never use it. It sucks. Everything it classifies as Hot is stuff I was told about on Twitter already. It’s hot in the way that the front page of the Times is hot. You rarely need to read the front page, someone already told you about it and if you were interested you investigated further yourself.

    However the browsing and grouping UI is state of the art. However, that’s an art that is full of very poor user interfaces.

    Thirty dollars is too pricey, but NetNewsWire has a rather unsatisfying user experience and has dodgy sync.

  • Git and GitHub
    These two have transformed Open Source in my opinion. I used to only very rarely submit patches to other open source projects. The process was rubbish. Find mailing list, create diff against what? Tarball? Subversion HEAD? Cross fingers. Get ignored. Every time I find a bug now I check for github, then I use the github gem to fork the repository at the command line. Then I fix it. Then I push. Then the other guy accepts the patch. The process is almost as streamlined as possible and the world has changed.

    Projects that aren’t on Github are dated and earn my scorn. I tried to contribute to Growl recently and gave up quickly enough when I realised that my patch would never get accepted. On Github my patch would sit in the network diagram, someone might use it anyway. It creates motivation and motivation is the life blood of Open Source.

  • Gitx
    I use Git constantly and GitX complements the git terminal command just right. Graphics where you need them, no more. The gitx tool allows you to open GitX from the terminal just like you can with the gitk tool.

  • Xcode
    For objective-c, it’s really good. For everything else, it sucks.

  • Spotlight
    I start all my applications with command-space-foo-enter.

I use GMail for email. I didn’t mention it above because Email is barely a useful part of my life anymore. Which is very different to even 5 years ago.

3 Comments »

The Poison in the FOSS

September 23rd, 2009

There’s poison in the community — you know — you’ve long suspected it. Perhaps you agree, there’s:

1. An obsession with licenses
2. Extreme allegiances to technologies and development houses
3. A lack of interest in practicality, and a lack of dedication to quality

An obsession with licenses

It hurts me when I see huge mailing list threads talking about removing code, or hampering it in someway because of this open source license conflicting with that open source license.

Licenses are too complicated. Shouldn’t it be about the source code? And not about “software freedom”?

Here’s my code, let’s both get something out of it. I don’t care who you are. I don’t care if you release some closed source app with it. I don’t care if you make money out of it. I’d be thrilled if you can make a living and something I wrote helped. I don’t care if you mock it on some blog somewhere.

Decide if you are making code for fun, for profit or in order to get some perverse pleasure out of the nuances of the GPL.

Extreme allegiance

These allegiances can be felt everywhere in the community. If KDE and Gnome were neighbouring states, there would have been war raging for decades now. But it goes deeper. There are so many competing technology stacks in the world of Linux, and you seem expected to choose one, and defend it with your life. Blog posts cannot pass by unnoticed without some user or developer picking apart the post, constructing fallacy after fallacy, quibbling the details. All to protect their territory.

Cliques form. Everyone is always patting each other on the back. “It’s alright!” they say, “It’s not true that it sucks! That guy is just mean!” Like a bunch of yes men around a medieval king. You can’t honestly appraise your product if you can’t see what’s wrong with it.

It influences interoperability. Who wants to work better with those guys? They’re scum. In fact I think the only motivator for things like freedeskop.org in recent years has been the desire to present Linux better to the Grandma’s of this world.

Lack of quality

80% of FOSS projects are over-engineered. Or have perfect code at the expense of useful features.

80% of GUI apps are designed by the programmer, and the programmer doesn’t have a clue about GUI design. But s/he ignores the advise of those who are good at that sort of thing. Or worse listens to the advise of people who are self-proclaimed usability experts, but actually they are just users with opinions.

80% of open source projects lack the dedication to finish up on the last 20%. The last 20% as we all know represents 80% of the quality and robustness of the app. The last 20% is not fun. But I can’t seriously in good faith recommend much Open Source software to my Grandma.

The future

Over the last decade a new open source community has developed. It’s mostly open (although never open enough for zealots), the people who work in it are fun and driven. They make money. It’s the web. And it is working better because:

Money, is a great motivator to finish that last 20%.

Web open source people couldn’t care less about licenses.

They give every new technology a spin, they make their own. They make systems that interoperate with each other. Where’s the bloody desktop agnostic virtual file system driver? Now compare the lack of interest in making that to the million ways to communicate data on the web. Allegiances to technologies that enable their work are thin, but communities are still vibrant and exciting.

I think it’s significant that the desktop open source projects with brands that have or nearly have public-awareness don’t have the above problems. Firefox. The Linux kernel. VLC. I’m sure there are more.

A footnote disclaimer

I’ve been guilty of all of the above I do not hate you or your work I do not have an anti-FOSS agenda and in many ways having written all of the above I now wonder if I’m actually right about any of it.

1 Comment »

Some rationale for the lack of multitasking on iPhone

August 11th, 2009

Like everyone else I have many times been annoyed that I can only run one app at a time. Exiting Tweetie and losing my place in a nested conversation in order to email the tweet to a friend sucks.

Nintendo DS

Nintendo DS has dominated mobile gaming for years, and Nintendo is loving it, but no longer really trying. Apple came in with 99 cent games and has seriously eaten into DS sales and games purchases. Gaming sites like Shacknews that are full of users that are traditionally anti-Apple are starting to be littered by “I may have to buy an iPhone” type comments.

But you can’t compete with a dedicated games console if games on the platform have to share resources with a Twitter client, a web browser, IM, IRC, Google Latitude, etc.

Games need all the RAM, and all the CPU cycles on limited mobile devices. iPhone would not be churning out games at the standard and performance they are if multitasking was allowed.

As a prediction I guess that games on Android will never have the same level of performance as they do on iPhone. Certainly so far, they haven’t.

Perception of quality

Apple pulls out all the stops when it comes to making products that feel great. Palm tried to mimic this with the Pre, but the keyboard drawer feels flimsy. There hasn’t been an Apple product in years that feels “flimsy”. Nintendo went all Apple with the Wii, but if you look at it it is covered in seams and breaks in the smooth surface due to concealed compartments. Apple products look clean and stylish as well.

Quality also includes reliability, robustness and performance.

If you have background apps, the foreground app will have performance issues. It’s average performance will be less predictable, depending on background load. The overall impression of the system will be less.

Everyone has a story about some device that broke in a weird way due to strange circumstances. Eg. my Firefox broke because I installed adblock and some other ad block plugin simultaneously once. It was a crappy bug to diagnose. But I’m a computer guy, I figured it out in the end. For less savvy people what is the solution? Generally the solution is bad mouthing the device/software in question at the pub.

Apple know that if you add complexity to a system, then strange bugs will happen for small numbers of people. But these bugs lead to really aggressive blog posts, and equally aggressive conversations at the pub. It leads to a sense of dissatisfaction about the product that is hard to solve.

Apple would love, with hindsight, to do the same to OS X. But they can’t. So they did it to the iPhone. Very limited multitasking (just some of their apps). There’s no chance of some apps failing because another app is monopolising the cell-radio, or some app crashing due to memory running out.

And it’s worked, you don’t read stories like that on the net. But you can read stories about app developers having bug reports from jailbroken iPhones that have so many apps running there are memory issues.

Battery Life

Apps like Last.fm’s iPhone app seem to obviously require an exception to Apple’s rules. Music is a background activity on a mobile device! You can’t resume tracks when you have quickly exited the app to check your calendar. It makes the app a lot less useful.

But Last.fm always uses the 3G connection to stream music. Allowing any number of apps to run in the background means a lot less battery life. And perceived batter life is what people talk about at the pub when ranking their mobiles. Apple wins at the cost of multitasking.

Developers

Developers that are used to making apps for dual core desktop machines with 2GB of RAM are not at all ready for mobile devices. Until the iPhone mobile development was the pursuit of a small number of dedicated companies. Apple wanted to open mobile dev up to everyone to make the iPhone more appealing to consumers.

So single tasking allows the developer to treat the iPhone more like the desktop computers they usually dev on.

Still…

It’s a PITA.

2 Comments »

Analogies are Evil

November 14th, 2008

Everyone likes an analogy, because a good analogy transforms a new and difficult concept into something familiar and easy to understand.

I don’t understand quantum physics, but I understand how my post is delivered! Thanks Professor McGarrigan!

And analogies are good. Sometimes. The problem is the person explaining the concept is rarely completely free of prejudice. Everyone has an ulterior motive. Even if they aren’t aware of it. And when choosing an appropriate simile the perpetrator will either consciously or unconsciously align you with their way of thinking. Practically, analogies are a kind of fallacy.

Politicians and marketing people use this to their advantage frequently. Associating groupthink from a topic people are passionate about to their mandate. And sadly it works. It works very well.

Really my only conclusion for you, my humble reader, is to do the same. But probably, you already do ;)

I finish up with a bad simile that you probably already hate:

Pirating music is stealing

1 Comment »

Filelight on The Big Bang Theory?

May 8th, 2008

Today I got an anonymous message:

I think there was a filelight harddrive poster on the wall in “big bang theory” Season 1 Ep. 11

Can anyone confirm?

3 Comments »