" /> Primordial Ooze: November 2004 Archives

« October 2004 | Main | December 2004 »

November 25, 2004

First steps in XAML and SVG

As you read this, keep  in mind that I'm on my third Sierra Nevada Pale Ale. SN Pale Ale is, IMHO, one of the tastiest beers your money can buy.

I took my first steps in trying to understand how SVG and XAML can coexist. I'm not really interested in SVG, per say, but I have a nice tool for generating SVG and it's called Adobe Illustrator. Having this tool makes it very pressing for me to get SVG and XAML to play together. I could write a XAML exporter plugin for Illustrator and I might just do that. I downloaded the Illustrator CS SDK and it seems like an awesome SDK... to be continued.

Chris Anderson's XamlPad looks like a clone of the XamlPad application that's part of the Xamlon tool. They have an article on how to use their converter to convert SVG to XAML, but I want to do all of this myself so I'll kind of ignore that.

Now, the Xamlon tool is somewhat puzzling to me. Why the hell would they create a tool that WILL BE obsolete when Avalon on XP or Longhorn ships? Perhaps they see a 2-3 year market for which they think they can capitalize on? Perhaps they are building internal expertise and plan om developing a real XAML on Avalon product? Perhaps they want to be bought out by Microsoft? In any case the tool is impressive and in a vacuum seems like a no-brainer if you're currently developing apps in Visual Studio .NET 2003 and want to use XAML markup for your apps.

Ok, enough of that.

I created a simple polygon in Adobe Illustrator CS, that looks like so:

Star

I exported this as an SVG. There are a lot of options presented and I kind of chose the options that I thought would yield the cleanest SVG file. It just so happens that the options I chose were the same (or very similar) to the ones suggested on the Xamlon article (above). I won't go into that. In any case, this file was generated and attached.

If you look at the file, there is a lot of crap in there. Included in this crap is a whole thumbnail i mage which makes up for most of the file's size. Within all of this crap is the essence of the illustration, which is the following:

   <polygon fill="#8BD3E5" stroke="#0A50A1" points="125.623,186.813 75.582,145.052 12.81,162.6 37.063,102.102 0.977,47.826
    66.008,52.197 106.477,1.104 122.414,64.304 183.512,87.004 128.332,121.691 "/>

I typed this into CA's XamlPad and got some errors that were a cinch to fix. Xaml seems case sensitive and the Adobe Illustrator SVG plugin emits all-lowercase tags. Fixing these casing errors up, yielded something quite exciting:

Star_xamlpad

That's enough thinking for now.

Now playing: Spinecar - Release

November 22, 2004

The Rock and Roll Geek Show

As I write this I'm listening to the Rock and Roll Geek Show, by Michael Butler:

http://www.americanheartbreak.com/movabletype/

Michael seems to play bass for the band and hosts a kick ass show that sports some of their music. He also plays some RIAA stuff (which he probably shouldn't), and all kinds of crap I've never heard before like string tributes (for AC/DC and Iron Maiden), various covers, and more. The show is so unprofessional and honest it's got me addicted. I'm lovin' it all.

He distributes his show via Podcast (of course) but you can just download a show and give it a listen if you haven't seen the light yet. Most shows are about 30 minutes. He's a fellow beer drinker, preferring Heineken, and is actively (and comically) seeking a sponsorship from them. He openly admits that all he's really after is free beer in exchange for his continued plugs for their product. Personally, I prefer a good Trappist Ale like Grande Réserve by Chimay (http://www.chimay.com).

If you go to the blog url for today, you can see a photo of his office which seems to sport a gorgeous studio display driven by a G5.

Subscribed.


 

November 21, 2004

Easy tryout for Avalon

Wow, Avalon is a cinch to get running on a clean machine. You'll need Windows XP with Service Pack 2 to start.

If you download the CTP, you can find a avalon.msi installation file. Run this on a client and you might get a message like this:

Dotnet20

Ah, well that's easy to fix and you don't even need access to the Avalon CTP. Just point your browser to the .NET Framework Beta 1 and rerun an Avalon sample.

If you forgot to install the Avalon CTP, you'll get a FileNotFound exception. Installing avalon.msi fixes this, of course. However, when you run an app like Chris Anderson's XamlPad (now available via ClickOnce), you  might get this?

If you'll remember, I use the Royale XP theme and you need to copy this file:

C:\WINDOWS\Resources\Themes\Luna\PresentationFramework.Luna.NormalColor.FxStyles

to

C:\WINDOWS\Resources\Themes\Royale\PresentationFramework.Luna.NormalColor.FxStyles

and rename the ".Luna" to .Royale". Then, you'll get the full app that looks just like it does on Chris Anderson's site:

http://www.simplegeek.com/default.aspx?date=2004-11-20T00:00:00

 

 

Happy Birthday Primordial Ooze

The Primordial Ooze blog is exacty one year old today. When I started this grand old experiment a year ago I really was hoping it would last... unlike most of my adventures. It's been a year and the blog is going as strong today as it was a year ago.

I can see from my earliest posts that I was heavily interested in C# and .NET when I started this thing. Since then, it became clear that I had a lot to say beyond that subject and the topics covered here have wandered from programming to photo and video to movies, tv's, games, and of course nonsense! I even took a couple stabs at humor.

My next adventure will likely be taking photos of some of the twisted montages created by razor blades (or pocket knives), train advertisements, and some drunk passengers. Some of these are hilarious. I started bringing my camera every day so stay tuned. Also, I'd like to post some of my adventures with Adobe Illustrator and the Avalon build now available for Windows XP.

I hope the next year is even better than the last. Thanks for reading!

 

November 20, 2004

Longhorn, Avalon, WinFX

Quick note. All of my posts on anything about Longhorn, Indigo, Avalon, WinFS, WinFX, etc. will all go under the mega-umbrella Longhorn category.

How to Fold a Shirt

I tried to learn How to Fold a Shirt, but I somehow failed.

 

Avalon Community Technology Preview unleashed!

The WinFX SDK CTP has been released on MSDN Subscriber Downloads. This means you can write XAML appls on Windows XP! I wonder what this means for Xamlon?  I can't wait to start playing around with Adobe Illustrator to create crisp scalable user interfaces.

18% done with my download...

I wonder when this will eventually go RTM and we can begin distributing apps.

 

November 19, 2004

New hard drive

I just got a new 300GB SATA drive that replaced my existing 20GB ATA dinosaur that served as my secondary drive. My motherboard supports both IDE and SATA standards so I wasn't forced to re-install my OS.

The drive took 1.5 hours to format since I skipped the Quick Format option (always a good idea with a new drive). I'm currently moving my iTunes music library and it looks like the file copy will take just as long.

I don't expect much of a speed increase for my system, though I will be sure to put a virtual memory swap file on the drive to get as much parallel disk access as possible. I also set my TEMP and TMP environment variables to a directory on the new drive called D:\TEMP. This should help Windows split I/O between the two drives.

Before this, I had an external USB 2.0 70GB ATA drive that kept my music, photo, family, and source code repositories. I should be able to move all of this onto the bigger drive and use my USB 2.0 drives as backup.

You know what bothers me? Windows doesn't seem to spin down my USB drives when they idle. Perhaps it does, but I'm pretty sure they just keep on spinning regardless of how long they're running idle.

Black coffee

I'm enjoying a cup of Viennese roast coffee this morning. It's black as the line to the milk pavilion was too long this morning. The only time I normally drink black coffee is when I get a professionally made espresso based drink like an Americano. An Americano is basically a few shots of fresh expresso dumped into a cup of hot filtered water. In the case of an Americano the water was run through the espresso grinds so quickly that there is absolutely no bitterness in the drink and I don't feel the need to put milk in it to try and subdue any bitterness that might otherwise have been present.

Most of the time, regular coffee steeps in the grinds for so long the bitterness is drawn out like a snake charmed by a skilled flutist. I wrote about this a bit before.

This morning, though, the Viennese roast is surprisingly free of bitterness and I find myself glad that I didn't pollute it with milk.

November 18, 2004

Podcasting without an external mixer... on Windows

When I first got into Podcasting, rather listening to Podcasts, I was pretty interested in figuring out how to record my voice and music at the same time. I even cut two Podcasts that I hope no one will ever get their hands on. If they do, I'm finished. These two podcasts are embarrasing in ways you can't imagine. For me, it's more about the technology and the challenge of doing it than it is about creating a Podcast that might mean something to people.

Anway, I see a lot of posts on how to Podcast on a Mac. These solutions generally involve Soundflower and Soundflowerbed. On both platforms, I hear a lot of advice on how people are successfully using a Griffin iMic and an external mixer.

Although I have a rather gigantic wraparound desk at home (see pic below), I'm not ready to invest in an external mixer. It's not so much the cost as it is the space it would occupy on my desk. Plus, all of those levers and switches will likely get gnawed off by my children.

For my Podcasting technology sojourn, I hunted down an application called Virtual Audio Cable by Eugene Muzychenko. VAC allows you to redirect audio device inputs to audio device outputs. So, you can route your USB microphone to your regular speakers. It gets quite a bit more complicated than that, so I'll explain how I was able to record my voice and record music at the same time.

The application I use for recording is Audacity. It's an open-source audio recording program for Windows, Mac OS X, and Linux. Audacity allows me to set the device I use for recording and the device I use for playback.

What device should I use for recording my voice? Well, how about my Plantronics headset's input? Buzzz! That won't work since I won't be able to mix in audio from iTunes as I'm speaking. I could simply drag an mp3 file into another track and encode both together as a final product but doing that wouldn't allow me to comment on the audio as it's playing. Nor would it allow me to pause it and say something. You get the pciture.

How about I use one of the virtual audio cables provided by Virtual Audio Cable. I can then use the Audio Repeater application to route sound from my Plantronics headset's microphone into VAC1.

Routing my Plantronics Headset to VAC1

Now, I need to get music I play into VAC1. However, music I play is sent to an OUTPUT and not an input. So, there is no easy way to accomplish this. I lucked out that my Sound Blaster Audigy had a recording mode called "What U Hear". Setting my Sound Blaster's input to "What U Hear" allowed me to get music playing in iTunes into the Sound Blaster's input and into VAC1 using another Audio Repeater instance.

Sound Blaster Audigy 2 ZS Mixer Settings

All I needed to do was route Sound Blaster's input to VAC1 like so:

Routing music to VAC1 

Things would have been simpler if I could simply have routed iTunes audio into VAC1. However, doing this corrupted the music for some reason.

Configuring Audacity is simple, but here's the screenshot anyway:

That's it. I recorded a small music clip from GarageBand.com, spoke at the end of it, wrote an mp3 file from audacity, added some artwork and modified the tags a little bit and uploaded the audio file here.

Enjoy.

November 12, 2004

Kid Drawings

My son's artwork appeared in his school's magazine, which might better be classified as a pamphlet. It looks like he was forced to use pre-cut rectangles and triangles to serve as the bodies of what would later be his family members once a few limbs were drawn in. The spectacular results can be found below, we're so proud.

(Yes, we're all bald by the way)

Holy moley do I need to loose weight! Giovanni's picture is surely something to clip on the refrigerator, but not nearly as interesting as a beaut' skillfully rendered by one of his classmates. "Chris" seems to have a super-hero family who all have the power to turn invisible.

 

Favorite Podcasts

Here are my favorite podcasts, or at least the ones I find myself listening to in their entirety. These are not necessarily in any order.

If you look at my sidebar, you'll see all of the podcasts I currently listen to. I wrote some python / bloglines glue a few weeks ago where I synchronized my bloglines podcasts with my local feed files so iPodder can use them.

 

 

Konfabulator pretty much requires Photoshop

So, it looks like Konfabulator is nothing like XAML and you basically need to use Photoshop to do anything that looks good. If you're not skilled at using photoshop then you're pretty much up the creek.

What they offer is a standard interaction interface, ability to fire off timers, handle events, and otherwise interact with the user. They also nailed transparency effects and image compositing which takes the alpha level from image into account when performing the blend. Finally, it looks like they provide scaling and rotation transformations (which is how the second-hand animates in the World Clock Pro.

 

November 11, 2004

Dashboard: Everything you need in a dash

If you read my previous post on Konfabulator, you might be also interested to note (or already knew) about Apple's Dashboard. It's basically the same concept. For me, who uses a Mac G4 at home in addition to Windows desktops at home and at work, the cross-platform compatibility of Konfabulator is an obvious boon to someone like me.

However, John Gruber over at Daring Fireball had some strong words on Apple's Dashboard, saying,

Obviously, Apple ripped off the idea for Dashboard. Stolen wholesale, without even the decency to mention where they took the original idea.

However, John points out that the concept is much older of course. He claims that Dashboard and Konfabulator are different in that Konfabulator is:

Konfabulator = (Custom XML format) + (Custom JavaScript engine)

While Dashboard uses the built-in Javascript engine of  the Mac OS and renderes via HTML and CSS that's built into Safari web browser.

I hate to just repeat what John wrote so I encourage you to read his rant which was great for me since now I understand a bit more about how this is all built.

So, the essential difference is that Dashboard "gadgets" are simply web pages with some extra support for transparency at the edges. While Konfabulator constructs pages using the XML layout analogous to XAML and XUL. John rightly points out that the learning curve to write Dashboard apps should be lower than that of writing Konfabulator appls for this reason. Said another way, if you can write a web app then you can write a Dashboard app.

For me, of course, Konfabulator is more interesting because it's cross-platform. Anyway, I hope you enjoyed this extra bit of detail.

Konfabulator

A colleague sent me a link to Konfabulator! The tagline reads, "whatever you want it to be" and this is certainly true. Konfabulator was out for Mac OS X for some time, I'm guessing 2 years based on the history found on the site. It's been available for Windows more recently, though I can't figure out when it was released.

What is Konfabulator?

Konfabulator is a system that allows you to create rich UI widgets that can appear like and do just about anything. You define the look and structure of the widget in XML and you program it via JavaScript. This is not unlike what Microsoft is doing with XAML, the XML markup Microsoft is developing for their forthcoming Longhorn OS release. In addition, it's not unlike the XML User Interface Language XUL developed by the The Mozilla Organization and which serves as the heart of the Firefox web browser

I'm not sure how XUL works, in terms of how you link between the XUL markup and your traditional sources (like C/C++ and Java). I do know a little bit about how XAML works, though I must warn you that I've never actually written a XAML application.

Microsoft XAML uses XML markup to define the UI structure of a program. More than that, you can define parts of your classes in XAML and combine them with classes written in C#, C++/CLI or whatever. Using the partial class features of the .NET 2.0 framework, you can spread a single class definition over multiple files, over multiple languages, including XAML.

What makes XAML powerful is that it's XML. XML is easily parsed and generated and you can use illustration tools like Adobe Illustrator to generate XAML markup and then decorate it with code and otherwise build our application around this model.

Konfabulator seems a bit different, but similar in spirit. Using Konfabulator, you define your widget in XML and you provide JavaScript code right in  the XML markup. You can point to external JavaScript files since JavaScript might be easier to edit in a dedicated JavaScript editor.

Visuals

Konfabulator nailed some nice antialiased non-rectangular window code. If you specify the graphic for your widget as a PNG file with alpha channel, the edges of your application blend smoothly with your Windows desktop. Here is a sample widget. My desktop background is that brownish color you see.

This aint no Weatherbug!

It's clear that the text is antialiased as well but I'm not sure how you draw graphics but it seems like the graphics rendered with some of the widgets are antialiased and smooth as well. I'm also not sure if the graphic API you use allows you to draw vector-based graphics, though there is a lot of evidence t hat this capability is there. Here are a pair of cool world clocks. You have to see these in action as t he second hand bounces as it snaps from second to second... just like a real clock.

Tea time in London

Widgets, widgets, widgets

There are a lot of widgets on the Konfabulator gallery page. They have the world clock pictured above, an iTunes remote, RSS monitors (I'll shy away from saying they are full aggregators, though they could be), traffic monitors with real-time images, etc.

There are also a lot of application-specific and vertical market widgets like the smsOptimus Sender which sends sms messages to a particular type of cell phone or the adslTelepac counter which shows t he upload/download traffic information obtained in the ADSL Telepac management site (whatever that is! I copied that description).

It's possible that geeky employees could write cool little applications that can run on people's desktops. Perhaps a daily volume monitor with sound effects or a nightly build monitor that melts when the nightly test run posts miserable results.

The possibilities are, of course, limitless.

Write your own widgets

To create your own widgets it looks like you need to purchase Konfabulator. The list price of $24.95 is pretty low and certainly a bargain if you consider the cool factor of the application.

Check it out. I'm going to keep tabs on the gallery. Their forum section supports RSS so this should be easy.

 

Another Primordial Ooze!

Someone in india has another Primordial Ooze blog hosted by Blogspot. He started blogging on June 16, 2003 (based on the earliest entry). This date predates my first post of November 21, 2003 by 5 months. I hope there is room enough in the world for two Primordial Oozes. I'll have to send him an e-mail.

 

 

 

Microsoft's Brand-new Search Engine... chokes

In classic Microsoft style, their new search engine choked:

Choke!

If the search engine is like other Microsoft products, it will suck less over time and eventually take over the world.

November 10, 2004

Morbin Icons

All hail the power of Flickr.

Morbid Icons (as a slideshow). Enjoy!

Flickr uses dynamically generated flash to enhance the site. While one part of me feels this is cheating when you compare  the brilliant use of javascript and DHTML in the gmail web client, it's still pretty cool.

Halo 2: Biggest Hit Ever

Wired is running an article where they say Halo 2 will rake in $100 million... in it's first day!

"The launch would be one of the largest in gaming history and would dwarf the first-day figures of even the biggest historical hits in the movie and music businesses.

It's the sign of the times.

November 9, 2004

Tonight's Adventures

My wife and I went to my son's school for a parent-teacher conference. He's in kindergarten so this is a new experience for us. As we drove up to the school, we were wondering just what the teacher could tell us about our son that we didn't already know.

As it turns out she didn't tell us anything we didn't know and I guess that was good. Yeh, he's "floppy", yeh, he likes to hum the theme song to Superman: The Motion Picture, and yeh, he likes to draw even when the class is moving onto stuffing pine cones with peanut butter. But we knew this.

I was pretty amused when she showed us an evaluation she did on his reading skills. She held up the alphabet on two sheets. The first sheet had all of the capital letters and the second sheet had all of the lower-case letters. She didn't seem surprised that he could identify all of them. However, she was surprised that he knew the sound that each letter made. I bet she would be very surprised if she actually asked him to read something and he actually read it.

The way they teach reading in kindergarten is fundamentally flawed, in my humble opinion. In his class, they have "words" all over the place, usually accompanied by pictures. Students are taught to look at the picture, say the word, and then look at the whole word. Unfortunately, they are not given any skills to actually read the word... in a vacuum. When the picture is gone, they're basically lost.

About a year ago I started him on these really good beginner reading books called Bob Books First! He made some slow, painful progress through them and I eventually stopped because he was giving me so much trouble. Then, about three weeks ago a friend at work recommended a book called Phonics Pathways.

Listen to this.

After three weeks of going through 1-2 pages a night of Phonics Pathways, I thought he was ready to read the Bob books again. I selected the the first book of the last set of three. The Bob books are divided into three colors. Red (to be read first), Green (to be read second), and Yellow (to be read last... before you move onto the next series). My son read through it with almost no effort.

By the time his Kindergarten teacher "officially" evaluates his vowel pronunciation she should be in for a bit of a surprise. I can only hope.

After the conference, my wife and I went out to nice Japenese restaurant and relaxed to a nice dinner of assorted sushi, shrimp Gyoza, and a very fresh Sapporo beer.

When I got home I was hoping to work on a bunch of technology and did almost nothing. I caught up on my RSS feeds. Bloglines rocks for that. All the while catching up on Podcasts that built up over the weekend.

I just got through listening to some of the Bloggercon coverage and the Podcasting session led by Adam Curry was a good listen.

The one thing I did do involved Virtual PC. You may have read my earlier post on the subject. I wanted to install Suse on my home machine but my installation kept failing. Dangit. So, I installed it on a virtual PC at work and it installed and ran fine. I even got Mono running on it and I wrote, compiled, and executed (via mint!) my first Mono Hello, World program.

I then copied the VPC to my iPod, which was about a 2GB file, copied it to my h ome machine, double-clicked on the VPC and within seconds I was in the middle of my Suse session... the output from my Hello, World program still on the screen.

Now that fucking rocks.

 

 

 

Thoughts on the Google Browser

David Weinberger wrote some fascinating thoughts on what Google might be preparing for their web browser. Go read it yourself here: http://www.hyperorg.com/blogger/mtarchive/003279.html.

I wish I had more to say than, "fascinating," but I don't so there you have it.

 

November 8, 2004

Lorem Ipsum

I was adding a bunch of my bookmarks to my del.ico.us account and I came across this old lorem ipsum link. What is Lorem Ipsum? It's dummy text that is commonly used to layout pages for magazines, newspapers, or any kind of publication.

You can find out a lot more about Lorem Ipsum by going to the definitive Lorem Ipsum page. You can also have the site generate more Lorem Ipsum copy than you can shake a stick at. Here is a sample.

C Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eleifend, nisl at viverra semper, ipsum justo cursus mi, ut fringilla metus arcu vestibulum eros. Sed vitae turpis vitae velit accumsan interdum. Phasellus non ligula ut sem hendrerit tempus. Quisque nec ante quis augue fringilla auctor. Sed vitae erat. Duis quis nulla. Nam sem. Morbi mattis mauris commodo dolor. Ut imperdiet arcu non dolor. Aenean in nibh. Duis egestas pellentesque felis.
Nulla pretium nulla vel nulla. Cras vitae justo. Cras lacus nibh, vulputate faucibus, fermentum non, suscipit quis, diam. Quisque velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin sem nisl, volutpat ut, feugiat id, mattis varius, elit. Aenean mauris est, luctus nec, adipiscing eget, pulvinar in, odio. Nunc bibendum odio interdum orci. Proin elit purus, posuere ac, blandit eu, condimentum sed, neque. Integer tortor elit, euismod at, consequat eget, feugiat at, metus. Curabitur magna. In ullamcorper tortor. In sed leo. Ut tempor tincidunt diam. Vivamus posuere dolor. O
O Aliquam sed tellus et ligula posuere egestas. Quisque wisi urna, porttitor quis, luctus ut, pretium nec, elit. Suspendisse consequat libero sed leo. Suspendisse potenti. Nullam mollis ultrices dui. Vestibulum risus ligula, tempor non, nonummy eget, ullamcorper in, ipsum. Vivamus sodales nibh et mi. Morbi et lorem. Duis scelerisque. Duis sapien odio, blandit vel, molestie vitae, porttitor commodo, enim. Sed bibendum elit vitae risus. Curabitur velit risus, sagittis ut, feugiat vitae, aliquam in, diam. Ut sit amet est ac elit euismod varius. Nullam et ante. Donec sollicitudin. Donec ultrices erat eget nunc. Morbi iaculis, orci et iaculis adipiscing, orci risus nonummy justo, id eleifend magna pede sed dolor. Curabitur malesuada dolor eget nisl.
Aliquam ornare, augue in imperdiet vestibulum, massa enim euismod libero, vitae vehicula diam velit ac nunc. Aliquam erat volutpat. Maecenas ac felis nec lectus aliquet congue. In tellus. Phasellus egestas lectus id mi. Integer consectetuer laoreet neque. Etiam sagittis. Mauris vitae sem in augue suscipit pulvinar. Cras et nunc nec mi congue semper. Nulla facilisi. Vestibulum dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec blandit nulla nec metus. Ut sed metus egestas lorem elementum lobortis. Fusce imperdiet pharetra erat. Integer enim diam, pretium nec, dictum eu, tempor ut, tellus. Mauris at wisi. L
! Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed feugiat auctor leo. Aenean urna massa, tempor vel, varius sed, aliquet id, lacus. Pellentesque vitae massa. Sed mattis mi sit amet tellus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pulvinar velit at erat. Sed sollicitudin. Donec vulputate, est ut pellentesque fringilla, tellus dolor sollicitudin ligula, et porta erat turpis at quam. Cras elit. Fusce quis elit. Cras sed mauris quis felis sagittis tempor. Vivamus eros.

One of the more interesting aspects of this post is the fact that I had to author the HTML by hand. I normally use Blogjet to edit my pages but it was completely barfing on the layout I was looking for. Ah, reliving the good old days of NCSA Mosaic, Notepad.

Flickr Tags

Flickr has a nice tagging system and it seems to be well-used by the Flick user base. Here is an interesting map of the most-used tags:

Most popular Flickr tags

I go to this page about once a week. Some of the links seem strange and their popularity puzzling at first. Consider  the 7610 link. At first the significance of that link mystefies me. I click on it and I see a bunch of pictures and t here doesn't seem to be any organization or theme to the shots. After a google search, of course, I see that the 7610 is a model of a Nokia camera phone.

Also curious as to why November is not represented as a tag, though September and October are. Could be that we're still early in the month and not enough photos have gotten this tag yet. It would be interesting to see this map animate somehow.

Perhaps I should make a suggestion to have the Flickr folks create a tag web service so I can retrieve the most popular tags across the entire user base. They already have an extensive API but you can only receive tags per user.

 

Age category

I had to do this today...

I'm getting old!

Wow, I'm in a new bracket. Realization kicks in.

November 7, 2004

PyBloglines

I wrote earlier about having written a Bloglines OPML (Outline Processor Markup Language) extractor in python. It was fun little project but someone took the topic more seriously and wrote a generic library to access the Bloglines API.

Go check out PyBloglines over at www.josephson.org.

The part of the code that fascinates me most is their use of expat, the fast XML parser for Python. I've never used it, but the syntax is so easy it only took me a few seconds to see what they did and realize how superior it was to what I did. Check out  this code from PyBloglines:

class OpmlParser:

    def __init__(self):
        self.parser = xml.parsers.expat.ParserCreate()
        self.parser.StartElementHandler = self.start_element
        self.parser.EndElementHandler = self.end_element
   
    def parse(self, opml):
        self.feedlist = []
        self.parser.Parse(opml)
        return self.feedlist
   
    def start_element(self, name, attrs):
        if name == "outline":
            if attrs.has_key('title') and attrs.has_key('xmlUrl'):
                sub = Subscription()
                sub.title = attrs["title"]
                sub.htmlUrl = attrs["htmlUrl"]
                sub.type = attrs["type"]
                sub.xmlUrl = attrs["xmlUrl"]
                sub.bloglinesSubId = int(attrs["BloglinesSubId"])
                sub.bloglinesIgnore = int(attrs["BloglinesIgnore"])
                sub.bloglinesUnread = int(attrs["BloglinesUnread"])
                self.feedlist.append(sub)
   
    def end_element(self, name):
        pass

When done, a list of feeds is returned quite handily.

Virtual PC 2004

I'm playing around with Microsoft's Virtual PC 2004 tonight. You can download a 45-day Free Trial Edition and play around with it yourself.

I was kind of amazed at how well it works, but before I go into that let me explain what it is. VPC is an emulator for an entire computer. If you create a brand new VPC and you "start" it, you get a boot screen complete with hard disk detection, memory counting, etc. Of course, you can set all of these parameters and any drives you create are merely files on your hard drive.

Having a virtual computer like this has a few obvious benefits and a few more subtle ones. These are:

  • You can install multiple OS's on your machine and the management of them is far easier to understand and less risky than granting the Windows bootloader or GRUB the privilege of managing real OS installations on your real drive.
  • You can clone an OS install and evolve it separately from the original. This allows you to create a clean system and save that in case you want to go back to it.
  • You can work with an OS and when you're done, you can discard any changes you may have made to it. This allows, for instance, installation writers to test installation script against a clean system again and again.

The VPC you create is a real machine for all intents and purposes and this means that you need to physically install the hosted OS into the VPC. This means you have to "activate" Windows XP, for instance. The VPC 2004 license explicitly states that you need to purchase OS licenses appropriately.

Of course, once you "activate" a copy of Windows XP you can clone the installation as many times as your disk space will allow and no further activations will be necessary. I'm not sure how OS licensing applies at that point so tread carefully.

The performance of a VPC is better than I would have expected. I'd say a VPC runs at 50% to 75% of a real machine. For web browsing, e-mail reading, rss aggregation, general code editing, even light compiling the VPC speed is completely normal. Installations tend to drag on a bit and anything that is very disk intensive suffers more than tasks that are memory-based.

In the screenshot below, you can see that I'm installing Mandrake Linux 10.1.

Installation of OS's is supported by the ability to "claim" your real CD or DVD drive for use in the VM. It's basically mounted and used by the VPC. You can also mount an ISO image if you have one on your real disk. For the Mandrake installation above I had to pull down the CD menu and mount three separate ISO images as the installation required them.

The default VPC creates a virtual 16GB hard drive, creates a PC that reports 128MB of memory, and emulates a network connection, video, mouse, keyboard, COM ports, etc. The recommended memory allocation is only 128MB and I'm sure this is not too important a setting as your host OS' virtual memory system probably manages things better than you could. I should experiment with higher settings, but I feel this will only be necessary... when it's necessary and the reason is clear.

On your real drive, the VPC is a small file with a vmc file extension. The virtual hard drive file is the big one but is only as big as what you put into it. For instance, although the drive is 16GB, the on-disk utilization is only 1GB for a fresh XP install.

Once booted, a VPC can be pinged, connected to over TCP, shut down, suspended, and can do just about anything else you can think of.

The VPC isn't perfect. I failed to install Suse due to a hard disk error. I also failed to install Fedora Core 2 because I got a strange error that read as follows: "An internal virtual machine error (13) has occurred". Google says that others have experienced this error so I just moved onto Mandrake which was known to work well with VPC 2004. I'm not a real Linux user, so I had no allegiance to a particular distribution.

All in all, VPC seems like a good bargain at $120 list and a great way to geek out with alternative OS's.

 

The Incredibles

"One of the best movies I've ever seen." -- Nick Codignotto

The Incredibles Logo

I'm not spoiling anything here, so read on.

Given that I'm a big fan of the genre, you have to take my recommendation with a grain of salt. That said, you'd be hard pressed to find another movie that matched the visual and storytelling perfection of the Incredibles.

While the characters weren't new in concept, the super powers have all been seen before, and the story was largely predictable, I have to say that none of that matters.

This wasn't a typical Pixar film. It was a bit gritty and real. There were mature themes that went over my 5-year old's head, but would be easily caught by someone just a few years older. People got hurt, people died, and it was all necessary to tell the story. I think I read somewhere that Pixar is positioning the film for Best Picture at the Oscars. Best Picture!

I have to admit that I need to keep my enthusiasm in check as I write this. Like I said before, I'm a fan of the genre and I would have liked the movie even if it kind of sucked. As long as it wasn't a train wreck, the film had me at hello.

The visuals were stunning. In my humble opinion, The Incredibles was by far the best looking Pixar film, nay, best looking 3D animated feature ever created. Rendering humans has always been a challenge for 3D animated features. I'm sure this is common knowledge, but the reason that Toy Story was invented was because the main characters could be easily rendered. They're not real, they're toys. For instance, the "hair" of a toy has none of the complex nuances of human hair. If you go back to Toy Story and Toy Story 2 and you look at the humans in those films, they're decisively artificial. Their movements and appearance are not nearly as convincing as the toys themselves.

Difficult objects such as hair were rendered better in Monsters Inc, another Pixar film, and another film that avoided the rendering of humans.

For The Incredibles, every aspect of the world has been improved (in terms of quality) over previous Pixar films. In particular, I took note of how well hair was rendered. A lot of attention was paid to the hair styles of the various characters. In addition, there was a lot of texture applied to the characters as they got wet, they sweated, or were covered in debris.

The scene construction was nothing short of brilliant. Being a computer film, the animators can take advantage of software tools that make it easy to make action cause reaction in precisely controlled ways. In one scene, Mr. Incredible throws a rock at a distant guard atop an elevated walkway. The rock hits the guard, wobbles his head causing the guard to drop his arms, become limp, and slop to the fauna 30 feet below. The scene was perfectly choreographed and the clarity of the sequence was profound.

As for the actual super heroes, referred to as "supers" in the film, a rich mythology was laid out and served as a lush background for the story. The creators of the Pixar films know a lot about economics and were able to use the background story to create both a mythology and provide fore shadowing to some key laughs at the end "No Capes!"

The Incredibles, I mean the family, used their powers in many effective ways and it was amusing to see this all happen by accident. When Dash was being chased by the goons of Syndrome, the look of surprise and delight on his face when he discovered he could dash across the surface of water was priceless. As I said, walking on water is nothing new to super heroes like the Flash or that Chinese guy in The Adventures of Remo Williams, but it was still fresh and exciting here.

I have doubts this film will ever be considered for something like Best Picture at the Oscars and I'm sure there are droves of folks might find the film yet another variation on a theme. For me, I can think of no other film that elicited the intense awe that The Incredibles drew out of me. It was truly the best film, animated or live-action, that I've every seen.

November 2, 2004

George W. Bush's Greatest Hits

What better day to post this...

George W. Bush's Greatest Hits

Get ready to laugh pretty hard.

Vote

Vote.

One Country