- Cell phone: Broken antenna; still usable, horrible reception
- Garage Door Opener: Non-functioning
- iPod: Strange clicking noises from the hard drive; unusable
- Camera: Busted lens; unusable (borrowed one from a friend in order to maintain mental stability)
Monthly Archives: May 2005
The Sorry State of my Personal Electronics
Why Kerry Lost

I saw John Kerry speak this morning as part of his national tour for the Kids First Act. When explaining the legislation, he started by saying: “I have a simple plan.”
Hours later I awoke in a dumpster a few blocks away; I have no clue what his “simple” plan was, neither did any one else who had been in the room.
A Tale of Two Transforms
In my last post, I briefly mentioned the difference between a layout-affecting transform and a render-only transform. Here’s a screenshot and markup for a quick sample which illustrates the difference between the two:

The screenshot shows a two by three Grid, with a Button and a Rectangle within each cell. The first row is used as a control, the Buttons in the second row have a layout-affecting transform, and those in the third have a render-only transform. Here’s the markup:
<Grid xmlns="http://schemas.microsoft.com/winfx/avalon/2005" xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005">
<Grid.RowDefinitions>
<RowDefinition Height="150" />
<RowDefinition Height="150" />
<RowDefinition Height="150" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<Rectangle Margin="5" Fill="VerticalGradient #99f #66c" />
<Rectangle Margin="5" Fill="VerticalGradient #f9f #c6c" Grid.Column="1"/>
<Rectangle Margin="5" Fill="VerticalGradient #9f9 #6c6" Grid.Row="1"/>
<Rectangle Margin="5" Fill="VerticalGradient #f99 #c66" Grid.Row="1" Grid.Column="1"/>
<Rectangle Margin="5" Fill="VerticalGradient #ff9 #cc6" Grid.Row="2" />
<Rectangle Margin="5" Fill="VerticalGradient #9ff #6cc" Grid.Row="2" Grid.Column="1"/>
<Button Margin="10">
None
</Button>
<Button Grid.Column="1" Margin="10">
None
</Button>
<TransformDecorator Transform="rotate 45" Grid.Row="1" Margin="10">
<Button>Layout</Button>
</TransformDecorator>
<TransformDecorator Transform="scale 1.5" Grid.Column="1" Grid.Row="1" Margin="10">
<Button>Layout</Button>
</TransformDecorator>
<Button RenderTransform="rotate 45" Grid.Row="2" Margin="10">
Render
</Button>
<Button RenderTransform="scale 1.5" Grid.Row="2" Grid.Column="1" Margin="10">
Render
</Button>
</Grid>
As you can see, the cells with render-only transforms end up drawing outside of their cells. Unlike layout-affecting transforms, the render-only transforms do not factor into layout; the content’s layout is performed as usual, with a transformation applied to the final result.
Edan - Beauty and the Beat
Diverse. Dense. Throwback. Brief.
(As usual, you’re better off reading a real review.)
Registered users: Album of the week!
Recommended (B+) Grows on you, works well as whole.
LCD Soundsystem and M.I.A. / Diplo at the Showbox
M.I.A. / Diplo

This was a good set that didn’t live up to my sky-high expectations. It was clear that M.I.A. had little experience performing live; Diplo was surprisingly uncreative, limiting himself to beats from Arular or Piracy Funds Terrorism.
The hype surrounding M.I.A. is astounding, and despite the lackluster performance, the crowd fawned over M.I.A. — all she needed to do was show up (which can be harder than it sounds).
Solid (B) Enthusiastic crowd made up for a weaker performance
LCD Soundsystem

High energy! Dancing hipsters! Eight (8) cowbells! Insanely skilled drummer! Wine straight from the bottle!
Required (A) Best show this year
Upcoming Shows
Upcoming shows I’m interested in during the next few weeks (shows in bold are highly recommended):
| Date | Artist(s) | Venue |
|---|---|---|
| 5/13 | The Books | Chop Suey |
| 5/14 | Afro Man | El Corazon (Graceland) |
| 5/14 | The Ponys | Neumo’s |
| 5/17 | Prefuse73 | Chop Suey |
| 5/19 | Smoosh | Showbox |
| 5/21 | … And You Will Know Us By the Trail of Dead | Showbox |
| 5/28 | Caribou (formerly Manitoba), Junior Boys | Chop Suey |
| 5/28 | Sasquatch! Pixies, Modest Mouse, Kanye West, Wilco, The Arcade Fire, Ray Lamontagne, Jem, Bloc Party, U.S.E., Joanna Newsom, A.C. Newman, The Frames, Bobby Bare Jr., Be Good Tanyas, Benevento-Russo Duo, Matisyahu, Visqueen, Blue Scholars, Smoosh, Aqueduct | The Gorge |
| 6/08 | Out Hud | Chop Suey |
| 6/09 | Out Hud | Chop Suey |
| 6/10 | Antibalas Afrobeat Orchestra | Chop Suey |
| 6/10 | DJ Krush | Showbox |
| 6/11 | J-Live, Vast Aire | Chop Suey |
| 6/12 | J-Live, Vast Aire | Chop Suey |
| 6/14 | Aesop Rock | Showbox |
| 6/17 | Blue Scholars | Chop Suey |
| 6/18 | Spoon | Showbox |
| 6/21 | Boom Bap Project | Chop Suey |
Quasimoto - The Further Adventures of Lord Quas
I’ve only had Madlib’s latest album for an hour, which makes writing one of my typical deep, insightful reviews challenging, but not impossible.
As with any album, the reviews use a consistent writing style and narritive structure. I’ve started writing a program that uses a combination of sophisticated lexical analysis, database queries, XML, speech recognition, and binary numbers to auto-generate a review for me. The results so far are promising:
010101110101101011101101010001010101010001101010 001010110100101011111101101111010000101010100010 100101010101011111010110000101000001011010001011 010110001001010010011010101011101011100101011101 100111100101010101011011010010101011010001010101
Registered users: Album of the week
Recommended (B+) 1010101110101
Post Levels plugin v0.2.1
Version 0.2 of the Post Levels plugin has been released. This release makes the plugin compatible with WordPress 1.5.1. There are no new features in this release.
Download
Update 5/22: Sigh, as mentioned in the comments, single-post view is broken. This is due to an issue in WordPress that I unfortunately cannot change within a plugin. I’ve filed a bug; in the meanwhile, I recommend staying on 1.5 until this (and other) issues (hopefully) get fixed in 1.5.1.1
Updating WordPress Plugins for 1.5.1
Those who have upgraded to WordPress 1.5.1 have noticed that the upgrade broke a few plugins, such as Post Levels.
This was due to some changes in the WordPress architecture that allow plugin developers to replace some of the core functions in WordPress. However, this means that those functions will not be available when your plugin gets loaded. The functions are now defined in wp-includes/pluggable-functions.php, as of 1.5.1 the following functions are pluggable:
get_currentuserinfoget_userdataget_userdatabyloginwp_mailwp_loginauth_redirectwp_redirectwp_setcookiewp_clearcookiewp_notify_postauthorwp_notify_moderator
Plugins that depend on any of the above functions need to make sure all uses of the function occur after all plugins have loaded. This is only an issue for code that is executed when the plugin is initialized (as opposed to code that is hooked into an action or filter). Initialization code should be refactored to run after WordPress has initliazed, as in the sample below:
// Run setup after the pluggable functions have loaded
add_action('init', 'myplugin_setup')
function myplugin_setup()
{
// Code lives here
}
Alternatively, you can hook into plugins_loaded, which is also executed after the pluggable functions have loaded.
Prefuse 73 at Chop Suey

If you think listening to an Extinguished-heavy collection of Prefuse 73 songs at 130 decibels with live drum kits and sweaty hipsters sounds like a good time, then I have the perfect show for you.
Solid (B-) All but super-fans are better served by listening to the albums
Aside: I may have to stop going to shows at Chop Suey — unnecessarily loud.
Gorillaz - Demon Days
The Gorillaz underwent significant roster changes for their second album:
- the Automator → Danger Mouse
- Del the Funky Homosapien → Booty Brown, De La Soul, MF Doom, Roots Manuva, and Dennis Hopper
- Miho Hatori → a children’s choir
Despite all these changes, the Gorillaz sound hasn’t changed much. Yes, the beats are a little denser, and the rapping is obviously different, but the album is a straightforward progression from the debut.
Registered users may peruse through the Album of the Week.
Recommended (B+) Some filler, but strong overall
Support for CFF Fonts
A new Avalon / Indigo CTP was released today. One of the new features in this release is support for CFF fonts (something Ruben had asked about in the comments).
This means Avalon applications can use the OpenType features set with many more fonts. To demonstrate, here’s a screenshot of the excellent Bickham Script Pro drawn with a gradient fill using Avalon:

Here’s a snippet of the markup used for the screenshot (I’ll explain how it works in the next post):
<TextBlock FontSize="60" FontFamily="Bickham Script Pro" Foreground="VerticalGradient #f00 #00f"> <Inline Typography.StylisticAlternates="1">B</Inline>ickham Script Pro </TextBlock>
Stylistic Alternates
Bickham Script Pro is a very sophisticated OpenType font, with very nice contextual alternates and ligatures. What sets Bickham apart is the alternate forms it provides — here are the ten (10!) different versions of the lowercase letter “h” available in the font:

In Avalon, you can choose between the alternates through the Typography.StylisticAlternates property. Most of the alternate forms shown above look best at the beginning of a word, but some (like #9) are meant for the end of the word.
Here’s the full markup for the screenshot shown above:
<Grid xmlns="http://schemas.microsoft.com/winfx/avalon/2005" xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005" HorizontalAlignment="Center">
<Grid.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="Margin" Value="5" />
<Setter Property="Padding" Value="20,0" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="#ccc" />
</Style>
<Style x:Key="AlternateDisplay" TargetType="{x:Type TextBlock}">
<Setter Property="FontFamily" Value="Bickham Script Pro" />
<Setter Property="FontSize" Value="60" />
</Style>
<Style x:Key="AlternateLabel" TargetType="{x:Type TextBlock}">
<Setter Property="FontFamily" Value="Calibri, Verdana" />
<Setter Property="FontSize" Value="20" />
<Setter Property="Margin" Value="10" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Bottom" />
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border>
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="0">h</Inline></TextBlock>
</Border>
<Border Grid.Column="1">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="1">h</Inline></TextBlock>
</Border>
<Border Grid.Column="2">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="2">h</Inline></TextBlock>
</Border>
<Border Grid.Column="3">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="3">h</Inline></TextBlock>
</Border>
<Border Grid.Column="4">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="4">h</Inline></TextBlock>
</Border>
<Border Grid.Row="1">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="5">h</Inline></TextBlock>
</Border>
<Border Grid.Column="1" Grid.Row="1">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="6">h</Inline></TextBlock>
</Border>
<Border Grid.Column="2" Grid.Row="1">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="7">h</Inline></TextBlock>
</Border>
<Border Grid.Column="3" Grid.Row="1">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="8">h</Inline></TextBlock>
</Border>
<Border Grid.Column="4" Grid.Row="1">
<TextBlock Style="{StaticResource AlternateDisplay}"><Inline Typography.StylisticAlternates="9">h</Inline></TextBlock>
</Border>
<!-- Labels -->
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Column="0">0</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Column="1">1</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Column="2">2</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Column="3">3</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Column="4">4</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Row="1" Grid.Column="0">5</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Row="1" Grid.Column="1">6</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Row="1" Grid.Column="2">7</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Row="1" Grid.Column="3">8</TextBlock>
<TextBlock Style="{StaticResource AlternateLabel}" Grid.Row="1" Grid.Column="4">9</TextBlock>
</Grid>
Using Numerals
I’m short on time, so here’s a quick screenshot and markup sample that illustrates the use of the Typography.NumeralStyle property (I’ve left it as an exercise to the reader to spot the difference between the two):

<TextFlow xmlns="http://schemas.microsoft.com/winfx/avalon/2005" xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005" FontFamily="Pescadero" FontSize="30" TextAlignment="Right">
<Paragraph><Inline Typography.NumeralStyle="Lining">1234567890</Inline>: Abcdefghij</Paragraph>
<Paragraph><Inline Typography.NumeralStyle=" OldStyle">1234567890</Inline>: Abcdefghij</Paragraph>
</TextFlow>
Aside: I’ve used Pescadero, an upcoming font by Ascender. We’re working with Ascender and hope to be able to include Pescadero, along with a few other OpenType fonts, in order to include these fonts in SDK under a license will allow developers to redistribute them with their Avalon based apps, something they can’t legally do with the other fonts supplied by Microsoft, or with most fonts acquired from third parties without a special license.
Roots Manuva - Awfully Deep
Roots Manuva specializes in hazy, dub-influenced hip-hop; his style is slower and thicker than the grime speedsters that currently dominate the British hip-hop scene. His style is frequently reminiscent of Tricky from ten years ago (you know, before he started to suck).
Like much of the trip-hop from the last decade, this album works well as background music. Manuva’s voice provides good variety, and the beats are all solid — but the album never makes the leap into excellence.
Registered users can form their own opinions (please) through the Album of the Week. Every one else should read more reviews.
Solid (B) More good UK hip-hop, but can be a bit repetitive
Sasquatch! at the Gorge
Highlights from this year’s Sasquatch! music festival:
The Arcade Fire

Great energetic hipster sing-a-long. They had some equipment issues (the vocals were tough to hear), but more than made up for it with great stage presence (in spite of the heat). Highly Recommended (A-)
Blue Scholars

Solid hip-hop on the small stage; a good mix of beats and improvisation. Recommended (B+)
Bloc Party

These guys were plagued by equipment troubles, yet still managed to put on a high-energy set (in the noonday desert sun, no less). Recommended (B+)
Others

It was ridiculously hot at the Gorge, I spent a lot of time trying to cool down (and ended up missing many acts). Here are the ones that stuck out the most:
- Jem: Her voice sounds way better on CD. OK (C-)
- Wilco: I’ve seen them a few times now, pretty standard. OK (C+)
- Kanye West: Standard hip-hop set, played a couple of new songs. Solid (B-)
- Modest Mouse: I’m not their biggest fan, but they sound better on CD. OK (C)
- Pixies: Another soul-less set, watching them makes me sad. Avoid (D+)
Chelan Beach
View from the beach in Chelan (full size)
Due to unfortunate circumstances, we were unable to procure a boat for this year’s visit to Lake Chelan. Instead, we spent the day hanging out on Chelan beach, which (unbeknownst to us) morphs into MTV Spring Break Eastern Washington™ every year on Memorial day weekend.
The hard body contests lasted throughout the day. Our group did fairly well, scoring points in the “Most Pale” and “Least Time Spent in Gym” events, and dominating the academic challenges.

