December 30th, 2008

It's taken several weeks, but my Aeron chair has finally shipped and I'll probably be getting it in the next few days. Certainly in the next week. I ended up getting a very good deal on it, and it's got the full 12-year warranty, so I'm ready to start sitting. I got the large coasters for the carpet, so it should move smoothly across my office floor. I just can't wait.
Pretty soon I'll have a really nice chair for my office. Then, I just need to code.
UPDATE: based on UPS, my chair is expected to arrive on Jan 5 - the Monday after the New Year holiday weekend. Crud. But better then than later. I'll at least have it by the next weekend.
Posted in Everything Else | Comments Off on My Chair has Shipped!
December 30th, 2008

It's been a while since I checked on SubEthaEdit, and this morning I decided to check and see if it's been updated recently. To my surprise, it was up to 3.2.1 - from 3.1 I'd been running for a long time. Turns out there are a ton of changes - and all of them good.
There were a few things that I didn't really like about SubEthaEdit, and the first was the syntax highlighting was slower than I could type. It would look like "normal" text for half a second and then convert to the correct style. Not horrible, but not as fast as BBEdit or MacVim, and those are the two that I use daily. Even the editor in Xcode was faster at the change. Well... with 3.2 (and then 3.2.1) they have improved the syntax highlighting performance significantly.
They have also improved the PHP, Perl, CSS, Javascript, and a few other modes. This is going to be a lot faster. I'm very excited about what they have been doing here. If they only added the ability for me to mark/jump and also navigate by the keyboard and fix the method sorting.
There are a few other things: the scrolling 'jumps' when you get to the bottom of the screen and while this is fine for people that didn't get used to 'vi' or other editors that scrolled one line at a time, it's really distracting for me as I have to refocus on the moved text.
It's getting better, and I'm really happy to support them as they get better, but for now it's not going to supplant BBEdit or MacVim.
Posted in Coding, Vendors | Comments Off on SubEthaEdit is Up to v3.2.1
December 29th, 2008

The guys at Flying Meat have released a nice update to VoodooPad (Pro) today - 4.0.4. From the release notes it looks like quite a few bugs fixed and several of them crashers. I haven't run into any of the issues, and I've been using it quite a bit - but maybe very simply.
Anyway... nice to see the progress made.
Posted in Everything Else | Comments Off on VoodooPad (Pro) 4.0.4 is Out
December 29th, 2008

I got a thumb drive for Christmas and I wanted to put a few things on it from my linux workstation but I wasn't really sure how to mount it properly. What device did it show up as? There are a few things that I needed to know, but it seemed pretty difficult to find out. Then I talked with a friend that had done this before and he had a few great pointers.
First, find out the device by looking in /dev/disk/by-label. It's got them organized by their labels, and all these thumb drives are going to come with some default label. So now that we have the device it's a simple process of mounting the filesystem:
$ sudo mkdir /mnt/thumb
$ sudo mount /dev/disk/by-label/MY_DRIVE /mnt/thumb -t auto
and then it's ready to use. When you're done, simply unmount it:
$ sudo umount /mnt/thumb
and you can pull it out. Pretty sweet.
Posted in Cube Life, Everything Else | Comments Off on Mounting a USB Thumb Drive in Linux
December 29th, 2008

I came in today to see a problem in one of my apps that uses the plist parsing in CKit for preferences - much like the old Mac OS X plist files. I did this because I really liked them, and they afforded me a great deal of flexibility in the setting of the parameters for this application. But there was a problem. I hadn't found it because up to this point I edited the file and then reloaded the file into the app. But if the app wrote out the file and then tried to reload it, there was a problem.
The problem today was that I looked at the plist file and it had clearly been changed. Yet they probably hadn't changed it. What probably happened was that the app itself had written it out and then failed to read it back in properly. There was another interesting complication in the works that lead me to believe that it was the writing part and that was a feature I had put into the code from the beginning.
If I had a section of the plist that looked like this:
backup = {
interval_mins = 5;
filename = "../logs/<hostname>/backup.dat";
}
then the same could would write out:
backup = {
filename = ../logs/<hostname>/backup.dat; interval_mins = 5;
}
and there's a good reason for it. First, the quotation marks are gone because it's obviously a string and there's nothing that needs escaping in the string. Secondly, for maps with less than three elements, I decided to place them all on a line so that things like points and lines are more easily visualized. What happened then was the bug.
The bug was in the reading of the converted plist. Specifically, it wasn't looking at the semi-colon as the terminator for the value on the first key/value pair. In fact, it was only looking at the line-endings as terminations and that was meaning that the filename had the semi-colon as well as the second key/value pair. That's not going to work.
The solution was simple - recognize that the semi-colon was the terminator and everything worked perfectly. Simple fix, but finding it took longer than I expected.
Posted in Coding, Open Source Software | Comments Off on Found an Interesting Bug in the PList Parsing in CKit
December 29th, 2008

The guys at Rogue Amoeba have completely updated the UI of Audio Hijack Pro for 2.9 and it's very nice. The old UI was functional, but looked more in keeping with a Mac Classic than an OS X app. The new UI looks like a fusion of iTunes and iCal - very nice. There's also a few things the did with this update - like editing ID3 tags, but for the most part, the big change is the UI. Nicely done.
Posted in Everything Else | Comments Off on Audio Hijack Pro 2.9 is Out
December 29th, 2008

The guys working on MacVim have released Snapshot 40 with an impressive list of updates:
- Fix problems with Quickstart "leaking" Vim processes
- 'imdisable' now on by default (i.e. IM is disabled by default)
- Clipboard support in non-GUI mode (Kent Sibilev)
- New document icons, more filetype associations (Nico Weber)
- Add support for 'guitabtooltip' (hint: add the line "set gtl=%t gtt=%F" to your .gvimrc to make tabs display the name of the file and have the tooltip display the full path) (Jonathon Mah)
- Look for toolbar icons in runtime path (plugins such as TVO now display toolbar icons properly)
- Show dialog when clicking to close tab with modified buffers
- Update documentation
- Latest Vim source code and runtime files
Still the best cross-platform editor I've ever used.
Posted in Coding, Everything Else, Open Source Software | Comments Off on MacVim Snapshot 40 Released
December 24th, 2008

This morning I decided to put together a simple little homepage for mao my Fedora 9 laptop in my office. As of the Big Update, I had gotten rid of my old linux laptop, and it'd been a few weeks before I got this guy rebuilt from an old XP laptop. Now that I had a little time off with the Holidays, I decided that it was a good time to throw together a little homepage for this guy.
It's nothing much. In fact, its the same format that I have for all the machines in my office, but it's nice and functional, and a lot better looking than the default Fedora 9 web page.
Posted in Everything Else | Comments Off on Created a Home Page for mao
December 19th, 2008

This morning I saw that ZeusDraw 1.3.2 is out and it's been a long time since 1.3.1 was released. Sure, it was stable, and the updates to 1.3.2 are minor - a few bug fixes and the visual indication of a grouping in effect, but still... most drawing packages are continually evolving and this one hasn't. Not bad, just a little surprising.
On the upside, I do like it, I have done a lot of fun stuff with it for the past several years, and I'm glad to see that the developers are still working on it - if only to fix the bugs. It's a great MacDraw-like app - not pixel-pushing, but object-based, and very nice.
Posted in Everything Else | Comments Off on ZeusDraw 1.3.2 is Out
December 18th, 2008

I was thinking about the current state of web development - where it's used well, where it's not, and what people are trying to force it to do, and it lead me to giggle as I realized that George Santayana could as easily have been talking about computer developers:
Those who don't learn from history are doomed to repeat it.
I guess the extension is more on point:
Those who don't study what was written are doomed to rewrite it.
The Web 2.0 craze is trying to take a great static-content system and make it interactive. Why? Because the client footprint is so small and you can collect hardware in a central location for easier support and maintenance. Again, we have the re-birth of the mainframe/centralized computer resources. Just now they are called clusters and web server as opposed to AS/400 or IBM mainframes.
It's funny, because each time I think about the goal of the Web 2.0 I come to the same place X11 was over a decade ago - a way to have an interactive experience on the client machine while having the processing done on heavy iron at a remote location. Why not drop Web 2.0 and just do X11 again? I'm convinced that it's because the developers doing this never learned what the old X11 was all about and why it was created.
OK, X11 didn't have a lot of pretty graphics by today's standards, but it was designed to be a remote application delivery platform and optimized for that. Give it better graphics like a decent widget set on all machines and all of a sudden you don't need all the interactivity of the Google Docs - you can run it locally and get just the display in the native widget set.
The other extreme is to take the AJAX and build it up to the point that it also includes a widget set on the client end - much like Firefox, et. al. has done with it's markup. It gives you a complete widget set on the client-side (just like X11) and then a way to communicate with the back-end. I'm amazed at the similarities between these two. But one has 20+ years of development and the other is "cool and new".
Before you spend time to write something that you think is clearly so unique that it's never been done before, stop and think. Ask. I'm willing to bet that a lot of the ideas that are so "new" are really just re-inventions.
Learn from the past.
Posted in Coding, Cube Life | Comments Off on Everything Old is New Again – X11 and the Mainframe