Sunday, December 19, 2010

The Unfettered Mind

IMG_1879

During the past month or so, I've been reading books like Sun Tzu's The Art of War and Benjamin Zander's The Art of Possibility. Reading the Art of War gave me a much deeper appreciation for Eastern philosophy and I find myself recognizing a lot of those same philosophical ideas in The Art of Possibility as well which has gotten me even more interested in continuing on with this reading trend.

From what I understand, Miyamoto Musashi, like Sun Tzu, is another man who many consider to have been a "Zen Master" and so I'll be reading his book over the holiday: The Book of Five Rings. But before I read that, I plan on first reading The Lone Samurai: The Life of Miyamoto Musashi to get a broader understanding of the man. What I really liked about the copy of The Art of War that I picked up (Understanding the Art of War by Robert Cantrell) is that the author not only included the English translation of the original text but also explanations of the history pertinent to understanding the text allowing me to soak up quite a bit more value than I would have just reading the raw English translation. Likewise, I suspect that starting with The Lone Samurai might help me later in understanding Miyamoto Musashi's Book of Five Rings.

A third book that caught my eye for the holiday is The Unfettered Mind by Takuan Sōhō, another famous Zen Master who is rumored to have advised Miyomoto Musashi among others.

Maybe one day I, too, will have an unfettered mind (right now it is quite fettered).

Monday, December 13, 2010

Assignment: Apologize to someone you have wronged

This past Friday, on our walk back from lunch, Miguel told me about the latest assignment given to him by his teacher and mentor, Benjamin Zander, the conductor of the Boston Philharmonic. The assignment was to pick someone you have wronged and apologize to them.

For those who don't know, Benjamin Zander is the author of the book, The Art of Possibility, a book which I have been reading the past week or so. The idea of this book is to change your perspective on life by teaching you to see things in a positive light and thus present you with a world of possibility where you can accomplish anything you set your mind to because you are no longer held back by negative thinking (fear of failure, criticism from others, and most importantly, criticism from yourself).

To continue on with my story, as I was laying in bed last night after having read a few more chapters in The Art of Possibility, I was reminded of Miguel's assignment and I began to wonder: if I was given this assignment, who would I apologize to?

I thought of 1 person in particular and a community of users and decided to apologize to them all.

Lennart Poettering

Some of you might recall a series of rants about PulseAudio that I wrote a couple of years back. While it was not my intention to insult Lennart personally, it is obvious that I did. I had let my anger and frustration rule my actions and ended up attacking PulseAudio in ways I should not have. I should have, instead, been more respectful, more understanding and more patient. Attacking someone's project often results in that person feeling personally attacked. I should know this as well or better than anyone because I'm one of the authors of the most widely attacked projects in the Free Software community: Evolution, Mono, and Moonlight.

These days PulseAudio has been working well for me and that is a testament to how hard working Lennart and the other PulseAudio developers are.

Thank you, Lennart, for your hard work on Pulse Audio and please accept my sincerest apology for attacking your project and in so doing, insulting you. I was wrong. I should have, instead, come to you (or the bug tracker) and explained the problems I was experiencing in a polite and respectful manner rather than unleashing my frustrations on the project.

I hope we can meet in person at a future Linux or GNOME conference where I can give you a hug (and who knows, maybe even a beer).

Evolution Users

In the course of the 6+ years that I worked on Evolution, there were a number of occasions where I took criticisms in bug reports and the mailing-list as personal insults and lost my temper, attacking back. At one point, Nat Friedman reminded me that I should not take criticism of Evolution so personally and that the reason users criticized Evolution was because they cared.

In the early part of 2007 I moved over to the Mono team, giving me a fresh start. I decided that I was going to be a new me and really take Nat Freidman's words to heart. I'm happy to report that not only have I been successful in not taking criticism as personally and seeing criticism of projects I work on in a new, more positive light, but I have also been a much happier person because of it.

For those Evolution users out there who I have mistreated, I am truly sorry and I hope that my actions over the past 3 years has demonstrated my sincerity.

Wednesday, October 27, 2010

Lessons in Freedom

In the first episode of the second season of Kung Fu, there exists a dialog between a young Kwai Chang Caine and one of his instructors, Master Po which I think teaches an important lesson in freedom and what it means. I think there are a number of people in the Free Software community who are in desperate need of learning this particular lesson.

Master Po: What have you found?

Young Kwai Chang Caine: A spider, master. It has trapped the fly. Should I destroy his web?

Master Po: Why?

Young Kwai Chang Caine: So that it will not make a prison for other living things that were free.

Master Po: Look more closely, grasshopper. Were you to destroy this web, would not the spider, knowing no other way, build another?

Young Kwai Chang Caine: Yes, but I cannot kill the spider.

Master Po: Look more closely still. Is not the spider also trapped by its own web?

Young Kwai Chang Caine: Yes, but if I do nothing, it will capture more living things, make them prisoner, and kill them.

Master Po: You are concerned, then, with the fly to which nature has given wings so that it might move around freely?

Young Kwai Chang Caine: It is cruel to see it made a prisoner.

Master Po: Ha ha ha. Still you do not see. Which is truly the prisoner? The fly, which, moving freely enters unknown danger? Or the spider, which, having spun its web, remains, never knowing the pleasure or the danger of the fly?

Thursday, September 2, 2010

Microsoft Double Rainbow!

Microsoft has just created a new commercial for its Windows Live Photo Gallery software that plays on the "Double Rainbow!" stoner guy. I have to give them props for trying to be hip and cool, but I'm too busy laughing my butt off right now. You've got to see this:


What I want to know is what kind of camera is that guy using? Never seen anything like it. A friend suggested it was this antique digital camera, but I'm not convinced. If you have any idea what that camera is, let me know in the comments - it is gonna bug me for days until I know what that was!

Tuesday, August 17, 2010

One Week With Android

Well, it's been just over a week since I got my Samsung Captivate (which is selling for $50 right now!) and I figured I'd share my experiences switching to it from my old iPhone 3G. Sadly, I have to say it's still a bit rough around the edges. I've had a number of problems with it, but none of them have been insurmountable.

The Good

Even though I'm still on Android 2.1 (FroYo, aka 2.2, won't be pushed on my phone until September or so), I've had no problems at all with performance. Everything starts up pretty quickly for the most part (occasional lag spikes, but I got those on my old iPhone as well). The 2.2 update will supposedly make my phone even faster, so I'm excited about that.

All the apps I cared about are available in the Android Market (things like a twitter client, Amazon shopping app, Google Maps (duh), Fandango and a handful of others). I was also able to find apps like Adobe Reader and Quickoffice for loading pdfs and MS Office documents (which is handy and something that I never found on iPhone).

Likely due to a higher-resolution screen, the YouTube video quality on my Samsung Captivate also exceeds that of my old iPhone 3G. Not sure how it compares to the iPhone 4.

What I really like about the Android is that editing my Google Contacts auto-updates my phone within seconds of making the changes which is really nice. I didn't pay for the MobileMe service for iPhone (which supposedly adds this feature), so it's a nice bonus that has saved me a bit of time and trouble already.

The Bad

While the music player on Android isn't bad (it's quite usable), it lacks some finishing touches that Apple put into theirs. For example, iPhone's music player remembers the most recent audio track and position you were listening to when you launch it. No amount of browsing your music collection will confuse it. This is not true with Android's. A "Go back 30 seconds" button would also be a really nice addition to Android's music player that iPhone has and I've found to be quite useful over the past 2 years.

When making a call, the iPhone's display is much much nicer than Android's and the Contacts app itself is more intuitive. I don't even understand what most of the tabs are in Android's Contacts app, for instance.


The Ugly

The following 2 problems are the absolute worst usability problems I have encountered, and they are pretty bad.

It took me a while to figure this out, but when you plug your Android phone into your PC, the PC won't see your Android device over USB Mass Storage at all until you open up your phone's "Notifications" area and tap on the notification saying something about connecting via USB. Once you do that, it opens up a dialog with the option to mount the drives. Only after you take these steps does the Android device show up as a USB Mass Storage device on your PC. This is just awful. Why are these manual steps even needed at all? If I have edited my phone's settings and selected "USB Mass Storage", it should just assume that's what I want to do when I plug it into a PC. There's no good reason for it to make me manually go through those steps. It also seems I'm not the first to be confused by this as there are a number of users complaining about this on various Android forums. From what I've seen, things have gotten better in Android 2.2 (it no longer makes you navigate to the "Notifications" area, but it still requires you to interact with a Mount/Cancel dialog).

The above photograph is what happened when I tried to place a call to about half the people in my contacts list. Yea, that's right, it crashed. After a bit of fiddling, I was able to figure out what it was about those contacts which caused the problem and submitted a bug report. Luckily, the workaround that I found was trivial and so I just loaded a web browser and edited the Birthday field info for those contacts and waited a second or two for the Android to auto-sync. Had I not been able to find a solution to this problem, I would have returned my phone and gone back to iPhone.

TL;DR

Android has a lot of room for improvement (buggy, unpolished), but if you are a Linux Desktop user like myself, you'll probably feel right at home.

Tuesday, August 10, 2010

Using Git


Now that Mono has moved to GitHub, a number of contributors (including myself) have been somewhat lost, not knowing how to properly use Git. So today, I'm recommending a book to help all the lost souls out there get comfortable with using Git.

As many long-time programmers probably know, O'Reilly books are top notch. Most probably also would not be surprised that O'Reilly has a book covering Git: Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development.

Don't let the bat scare you.

Friday, August 6, 2010

New Phone (Android)

Ever since the first Android phones came out back in October 2008, I've been keeping an eye on their progress. I didn't care for the original HTC Hero, but the newest phones based on Android 2.1/2.2 look very impressive. Now that my iPhone 3G contract is up, I decided I'd get one. Since I'm on AT&T and wanted to stay with that provider, I went with the Samsung Captivate and a screen protector for it. My friend/co-worker, Michael Hutchinson, recently bought a Samsung Vibrant (he's on T-Mobile) and has been very happy with it. Another friend/co-worker, Gonzalo has also been happy with his switch to the Captivate on AT&T, so I expect that I'll be pleased as well.

One of the reasons I decided to get an Android phone is that the Mono team is working on MonoDroid, a port of Mono to Android phones. While I'm not on the team working on the port, I am interested as a potential Android developer in using MonoDroid to write some of my own applications for Android phones.

10 years ago, when I first started working for Helix Code on the GNOME desktop for Linux to help make Linux usable for average Joes, I never expected that I'd ever have a phone that ran Linux! Especially a Linux-based phone that is taking the smart-phone market by storm! These are very exciting times for me, and I'm sure for the Google folks working on the Android project!

After I get my feet wet for a week or so with using my new Captivate phone, I'll try to write up a review of what I think, so stay tuned!

Code Snippet Licensing

All code posted to this blog is licensed under the MIT/X11 license unless otherwise stated in the post itself.