Bored with the Web

Posted August 27th, 2007 by Ian Baird
Categories: General

The web, in its current form, is boring. Dress it up any way you want to, Web 2.0, 3.0, AJAX, etc. Blah.

Intro

Ironically, this train of thought began when I read a “tweet” by Buzz Anderson, a well-known Mac developer and blogger in his own right:

Amazed at the extent to which Jonathan Grubb’s “8 ways I’m sorta bored with the internet” echo my own ennui. …

I couldn’t put my finger on it at the time, but I’m sure I agreed with this statement. I’m really not inclined to bitch, and this shouldn’t be taken as a “this is why Web 2.0, 3.0, AJAX, etc. sucks” post.

First, allow me to digress into a quick background passage, describing how and why I became a “computer dude.” When I was a teenager, I was very interested in electronics and how things worked. Bending machinery to my will was fascinating, and I was hooked. This provided the impetus for me to go to college and major in Computer Science. While I was in college, I learned that Computer Science was not all about writing cool apps, games, or web pages. There were certain logical constructs and fundamental truths that hadn’t changed since the birth of the discipline, they had just been rewritten into a multitude of different languages and executed on a virtual cornucopia of platforms. This was exciting to me, because I saw this knowledge as a means to an end. If I could master these basic truths, understand the logic underlying the craft, and add a bit of art (the human or the craftsman’s touch) to whatever I was doing, I’d always be able to create cool stuff. Unfortunately, mastering the fundamental truths of computer science was the easy task. Developing cool apps, apps that build upon and encourage the creative spark of the human mind, was the difficult bit.

Collaboration

“Social Media” is a key feature of the “New Web”. Some might say it’s the raison d’ĂȘtre for the entire Web 2.0 genre. Flickr, facebook, youtube, and a billion other sites build upon Alan Kay’s fundamental theory:

Sharing is important - we’re all communication junkies. We have an incredible bandwidth disparity (easy to take in, hard to give out); our devices have the reciprocal disparity (hard to take in, easy to give out)

This phrase inspired the original Macintosh team to create a revolutionary device. I’m sure it has lived in the hearts of many other teams. However, if there is no creative spark behind collaboration, it only facilitates a distributed form of navel-gazing.

Too Much of a Good Thing

Collaboration allows a group of human minds to create an entity with a value greater than the sum of its parts, if this effort is pushed in the correct direction. By correct, I’m not discounting the value of entertainment, as “all work and no play makes Jack a dull boy” (last clichĂ©, I promise!). However, the stream of apps coming out of the “New Web” movement such as Twitter, Pownce, yet another photo sharing site, yet another video sharing site, Facebook, Myspace, etc. is never ending. One wonders how many variations of this theme we’ll see before people throw up their hands in despair.

Outro

The coolest thing one can accomplish is to build a tool that empowers the greatest creative force in the universe, the human mind. Once unlocked, the mind creates the seven wonders of the ancient world, the Personal Computer, beautiful music, and sublime works of art. I don’t see any creative potential being unlocked or enabled by this current raft of web apps, and I wonder if the medium is too limited to allow to succeed in this arena. Until Web 2.0 unlocks the creative genius of a multitude of minds, I’ll be skeptical of its success. Navel-gazing, while fun and entertaining, quickly loses its meaning when set against a world of magnificent accomplishments, enabled by unlocking the creative potential of the human soul.

Lijit Wijit

Posted August 6th, 2007 by Ian Baird
Categories: General

You might notice a new toy in the sidebar. I replaced the default WordPress search tool with the Lijit Wijit, a cool little utility which allows my readers to search not only my blog, but the other elements of my online “presence”, such as my delicious links, my facebook account, etc. Any feedback, comments, etc. are not only welcome, but encouraged.

Props to Brad Feld for the pointer to the Lijit Wijit.

In Memoriam: A Brother Lost

Posted June 19th, 2007 by Ian Baird
Categories: General

Captain Joshua Steele lost his life on Father’s Day, June 17th, 2007. He was my fraternity brother at the Gamma Lambda Chapter of the Pi Kappa Phi fraternity in Rolla and a dear friend. I remember him as a gentle soul, devoted to his faith, his family, his country, and his brothers. I will understate his merits if I describe him as a true scholar and a valiant warrior. He will be missed terribly by all. My condolences to his mother, father, and family.

Go in peace brother, you belong to the ages now. I’m unworthy of writing your eulogy.

Update: Josh’s sister Gina Steele notified me of this tribute to her brother.

Success! (Damn Nagle’s Algorithm)

Posted May 17th, 2007 by Ian Baird
Categories: General

I’m on the “downward slope” of my research project and am beginning the final testing/writing phase of my MS thesis in Computer Science. I’ve been fighting the effects of Nagle’s algorithm for months now without knowing it, wondering why these tiny messages I was attempting to send via TCP/IP sockets were taking so long to propagate across the network. I also made the realization that my RPC framework (the aforementioned research project) is very sensitive to latency. In other words, it performs like crap in high-latency situations. Oh well, lesson learned.

The Missouri trip has been a nice break. For the last year and a half of my life, I’ve been plugged into the iMemories scene. While I definitely enjoyed it, I needed a vacation and a change of pace, which is what I’ve found at UMR.

P.S. Belated congrats to Daniel Jalkut on his marriage. The iPod socks are being re-routed to my house as you are away on your honeymoon. I’ll deliver them to you at WWDC.

Desktop vs. Web Apps - The War is Over

Posted April 26th, 2007 by Ian Baird
Categories: General

We were all told that there could only be one winner in the Battle Royale pitting web apps against desktop apps. That argument was flawed, perhaps fatally flawed, and Brent Simmons nails the reason why in his blog post “The end of ‘desktop vs. web apps’”. Of course, this builds on the theme from last year’s C4[0] conference, which coincidentally had Brent delivering a lecture on the hybridization of desktop applications.

This post is a must-read for anyone interested in developing applications in the present or the near future.

Cooperative Marketing

Posted April 24th, 2007 by Ian Baird
Categories: Indie Development

green-dollar-sign-ornament-zoom.pngDaniel Jalkut, proprietor of Red Sweater Software, has an interesting idea about how indie developers can increase their marketing reach “without spending a dime.” Good stuff, highly recommended for my fellow indie-devs or wannabe indies.

PyObjC TextMate Bundle

Posted April 22nd, 2007 by Ian Baird
Categories: Cocoa, OS X, Python

I’ve been writing a lot of PyObjC code lately in TextMate. I found that there really wasn’t a good way to execute py2app based project in TextMate, which was considerably lengthing my hack/test/debug cycle. So I created a PyObjC bundle, and whipped up a little Build & Run PyObjC command which is activated by hitting Cmd+5 when you’re in a python scope.

This command depends on having an actual TextMate project to contain your code and the latest version of py2app (available via easy_install). The bundle will also find and parse any error messages that happen to fly out of your program, in order to link them back to your source code documents in TextMate. Feel free to email me (ibaird at this-blog’s-domain ) with any comments or queries regarding this bundle.

Update (4/25/07): I’ve updated the bundle in the link above to fix an issue I was having with the “app bundle finding” logic. This should fix any issues with the script.

RubyCocoa Presentation Notes

Posted April 9th, 2007 by Ian Baird
Categories: Cocoa, OS X, Ruby

images.jpg

Thanks again to PRUG for allowing me to show off a little bit of RubyCocoa. Great folks who run a great group, I’ll be sure to attend again soon.

RubyCocoa (Unstable) Build Instructions

You’ll need OS X 10.4 or above and Xcode 2.4.1 to build RubyCocoa. Here are the build instructions for unstable (a release is due out around April 30th):

  1. svn co https://rubycocoa.svn.sourceforge.net/svnroot/rubycocoa/trunk/src rubycocoa-unstable
  2. cd rubycocoa-unstable
  3. ruby install.rb config
  4. ruby install.rb setup
  5. sudo ruby install.rb install

Resources

Remember, /Developer/Examples/RubyCocoa is your friend. So is the RubyCocoa resource site.

The book I recommended to all novice Cocoa developers was Aaron Hillegass’s book Cocoa(R) Programming for Mac(R) OS X (2nd Edition).

Postscript

I had a great time presenting and enjoyed the wonderful conversation at Carraba’s after the event. Thanks again for putting up with me, as I was tired and getting rather giddy towards the end of the evening!

Open-Source Gem

Posted April 6th, 2007 by Ian Baird
Categories: Cocoa, OS X

network_icon_pagelogo.png

Just thought I’d put out a quick word on an open-source gem I’m planning on using in my upcoming product, Changes.app. ConnectionKit is a publishing framework which supports HTTP, FTP, SFTP, WebDAV, .Mac (more WebDAV I think), and Amazon S3. From spelunking through the code, it appears to be well written and easy to integrate into third-party applications. Some very well-known apps like Sandvox are using the ConnectionKit, which gives me a lot of confidence in the software’s long-term viability and support.

To get started with ConnectionKit, follow the instructions on the Download page and look at the example application in the project. In my opinion, the HOW TO instructions are useless.

Credit for the ConnectionKit goes to authors Greg Hulands, Dan Wood, and Terrence Talbot.

Update: I noticed that Dan Wood has mentioned my post on his blog. Cool.

In the comments, I reference some “memory management mistakes” on the part of ConnectionKit. On further inspection, I realized that the “memory management mistakes” only manifested under GC on Leopard, which I rectified with some code. If you are an ADC Select or Premier member (or someone under NDA with Apple) who wishes to see this code, please contact me (ibaird at this-blog’s-domain). I’m also sending the patch along to the maintainers, which fixes a couple more Leopard compatibility issues in other parts of the code.

Update 2: Due to popular demand, I’m linking to my patch for ConnectionKit Leopard compatibility here. Usual caveats apply, and I’m sure Greg Hulands (the maintainer of ConnectionKit) will have a much better fix in really soon. As it is, my patch has been tested on OS X 10.5, i386, with GC enabled. I haven’t tested it without GC yet.

Postscript: after playing more with the guts of ConnectionKit, I can’t seriously recommend it to anyone. “My bad.”

Post-postscript: Daniel Jalkut asked for details on my decision to un-recommend ConnectionKit. This comment on a Sandvox user’s blog by Dan Wood cinched it for me. I noticed the libssh2 issues and came to the same conclusions. I’ll be integrating Changes.app with MacFUSE for any network stuff.

Thought Provoking Article on the Death of CS

Posted March 13th, 2007 by Ian Baird
Categories: Academic

This article reminds me of a quote by Charles H. Duell, commissioner of the U.S. Office of Patents, who pronounced at the close of the 19th century, “Everything that can be invented has been invented.” Pure science, the pursuit of knowledge for its own sake, is a never ending quest. However, I agree that the definition of a Computer Scientist is relatively cloudy.

The death of computing