Well, I had good intentions. Ever since my first post about SEAMonster in October, 2007, I've wanted to refactor and clean-up the code for release. In the meantime, I've received many, many e-mails asking when that would happen. To everyone who has patiently waited, today's the day. SEAMonster is now hosted on CodePlex.
Before you get too excited, know that I haven't had the time to do any clean-up (at all). I finally realized that I just had to let it loose. This is one of those "20 lines of code" test projects that evolved into an unarchitected proof-of-concept with a load of TODOs. There's no doubt that it could use a lot of help from the community. If you'd like to contribute to the project, please drop me a line.
Here's a sample image that ships with Windows Vista that I've resized using both SEAMonster and Photoshop.
Notice the "squashed" and distorted look of the bicubic resize as compared to the seam carved version. The seam carved version looks like it could be a real photo, even though it's width has been significantly reduced.
On a related topic, I've been asked about 15 times now if I would present a session about SEAMonster (and possibly SWF2XAML and my Illustrator plug-in) at our upcoming MIX08 conference. Every one of our session slots has already been allocated, but it's possible that I could give a talk in our Open Space area at the event. If you'd be interested in hearing something like that, please leave feedback to this post.
I ran across Jeff Atwood's blog post, Typography: Where Engineers and Designers Meet, about a week ago. Like Jeff, I've been interested in fonts and typography for a long time. As a matter of fact, I used to create bitmap fonts for the TI-99/4a, Commodore 64, and Atari 400/800. I'm sure if I dug through enough boxes I could find a pile of old graph paper with 8 pixel x 8 pixel character sets on them! Those were the days. :-)
Until Jeff's post, I hadn't heard about the Helvetica film by Gary Hustwit. I immediately ordered the DVD (it's only $20), it arrived a few days later, and I watched it this morning. What a great movie! It was obvious from the moment I pressed play that this was made by someone who is passionate about the subject. From the beautiful photography to the perfect music, this film reflects the cleanliness and simplicity that is Helvetica. You do not have to be a font geek to appreciate this documentary.
The film traces the history of the typeface from the 1950s when it was known as Neue Haas Grotesk. Through fascinating interviews with industry luminaries and designers, we hear how Helvetica has influenced graphic design and typography over the years. Along the way, we also discover how pervasive it really is. I particularly enjoyed the balance of perspectives (some like Helvetica, some despise it, and many are apathetic). I also found the insights into design and the creative process to be very inspirational.
If you decide to buy the DVD, be sure to watch the extras. The feature itself is around 80 minutes long, and the extras run for over 95 minutes! Here are some of the topics that are touched on: Pencil vs. mouse; How technology has affected type design; The reader’s awareness of typefaces; Helvetica and the Macintosh; Helvetica and branding; “Mean” Modernists; Music packaging; One typeface is not enough; Designing for an audience; Approach to design; The value of good design; The Simple typeface. The extras are almost like watching a bonus movie.
As a Microsoft employee, my ears perk up whenever I hear our company name mentioned (which is quite often). So, I particularly enjoyed listening to comments from Erik Spiekermann about our Arial typeface where he calls us "big bullies," says that we're "baddies," explains why he "won't go near a Microsoft product," calls us despicable, and adds that we're "mean bastards." I'm not here to argue with Erik, because frankly, I don't have enough context, but I appreciate his passion!
If you have any interest at all in typography, this is easily worth $20. Highly recommended.
A few days ago, I received the following e-mail:
Help me out here. I've been reading your blog off and on for years and I can't figure out what it is you do. Your obviously involved with the PDC and MIX conferences, you send a lifesize cardboard cutout of yourself as your resume, you've made a plug-in for Illustrator and a converter for Flash files (which rock BTW), you take amazing photos, you implement seam carving in your "spare time", you write Tivo gadgets, you taught me about continuous integration with your orb article, your article on code review was mandatory reading in one of my classes, you read quite an collection of books, you seem to be pretty good at design considering you claim to be a geek, you build small arcade machines, you counted to a freakin' million, you worked with Tom Skerrit, you write music, you build medical software, and who knows what else. Don't worry, I'm not stalking you. :) I just read through your old posts cuz I couldn't remember all of this! Just what the hell do you do at MS?
Yes, I'll admit to being a bit disturbed until I found out that this person had read through my old posts. Whew! It's strange to have your history read back to you. But, it's a very fair question, and it made me realize that my blog may provide a distorted perspective on the work I do. So, to set the record straight, let me try to explain my job at Microsoft.
For context, I work in Developer and Platform Evangelism, commonly referred to as DPE. My office is in building 18 on our main campus in Redmond, Washington. I've been in DPE for the past three years, and prior to that, I was a Senior Consultant with Microsoft Consulting Services (MCS) for five years working out of our Michigan office. I've been working with computers for over 30 years now.
In my current role at Microsoft, it's easiest to categorize my work into three buckets. Note that—like almost any job at Microsoft—the things I do can change many times during the course of a year, but these three are accurate now:
There you have it. Those are the three areas where I focus my time and attention at Microsoft. Interestingly, very few of my blog posts relate to my day job. I have an insatiable passion for technology, and I spend a lot of my spare time on hobbies like photography, writing little programs, reading about topics that interest me, and relating old stories (like counting to one million).
So, I guess the overall theme of this blog—if there is one—is me. I have a diverse set of interests, and I hope you'll continue to indulge me for another four years!
I tend to read a lot of books, and most of them have a technical focus. Every once and awhile, I run across a gem that is timely, coherent, unique, and well written. Programming Collective Intelligence: Building Smart Web 2.0 Applications by Toby Segaran is one of those books. If you've ever wanted to understand how search engines perform their magic, how a site like Amazon.com knows what products to recommend, how spam detection works, and how dating sites predict good matches (among others), this book is for you. Check out Toby's Web 2.0 Berlin slides for a quick overview.
Many of the algorithms and methods that Toby describes are very complex, but he doesn't assume that you have any special knowledge of data analysis, machine learning, or statistics. Toby does a fantastic job explaining mathematical concepts in a remarkably straightforward and simple fashion. If you have a programmers understanding of math, you should do just fine.
The book is full of real-world examples that pull live data from sites like del.icio.us, ZEBO, Kayak, Zillow, HOT or NOT, eBay, Yahoo!, and Facebook. All of the code is written using Python. If you've never written a line of Python code in your life, fear not! Toby explains a few of the less obvious Python constructs and syntax in the Preface, and frankly, almost any developer should be able to easily understand what's going on. You'll be writing concise Python code in no time.
Chapters include: Making Recommendations, Discovering Groups, Searching and Ranking, Optimization, Document Filtering, Modeling with Decision Trees, Building Price Models, Advanced Classification: Kernel Methods and SVMs, Finding Independent Features, and Evolving Intelligence (cue the ominous music). Some of the algorithms that are covered include: Bayesian classifiers, decision trees, neural networks, support-vector machines (SVMs), k-nearest neighbors (kNN), hierarchical clustering, K-means clustering, multidimensional scaling, non-negative matrix factorization (NMF), simulated annealing, genetic algorithms, and even genetic programming. Don't worry if you've never heard any of these terms...the names may be scary, but the text is extremely approachable and lucid. And you're sure to be a hit at the next geek gathering!
Not only will you come away from this book with a very good understanding of collective intelligence, but you'll also have a very powerful set of practical Python routines that you can immediately apply to your own data.
Highly recommended!
As many long-time readers may recall, I've been trying to foist blogging onto my friend and colleague, Thomas Lewis, for nearly three years. He's endured my chiding both online and in person; thank goodness he's one of those guys who can take my constant nagging.
A couple of weeks ago, Thomas stated that he had a surprise for me and asked if I wanted to hear it then or at some point in the future. I appreciate a good surprise, so I told him that he could tell me when he was ready...turns out that time was today at lunch. He played it very well. I was sure he was about to tell me that his wife is pregnant, he had won the lottery, or that small bunnies had attacked him with sticks last night (don't ask). After drawing out the suspense for what seemed like a few minutes, he revealed that the Spider King has returned!
Now, I personally believe that blogging isn't for everyone and that it should never be forced or required. But, I know a few people who have such interesting perspectives or such insightful thoughts that it'd be a shame if those perspectives and thoughts couldn't be shared more broadly. Thomas is one of those guys. I'm thrilled that he'll be posting about his unique views on Microsoft, Apple, technology, his pets, his wonderful wife, wine, the iPhone, heavy metal, internet standards, and whatever else inspires him. No matter what he chooses to write, I'm sure it will add value to the world.
So, without further ado, head on over to The Spider King and check out his first couple of posts. I've received a lot of e-mail in the past about what it means to be a Technical Evangelist at Microsoft, and Thomas' post about 7 Tips To Become a Microsoft Technical Evangelist is a great start. He's a good guy to work for too, so be sure to check out the open position on his team.
Last, since Thomas ended his first post with a Dune quote, I thought I'd close with the same: He who controls the Spice Girls, controls the universe! Muwhaha!