this blog has moved

This blog was moved to in February of 2009. Please visit my new blog there.

Click here to subscribe to my new RSS feed.


mix09 10k entry

I’ve authored an entry for the Mix09 10k Smart Coding Challenge called Verdant. It’s an experimental game idea where the player influences the growth of plant vines to collect as many rain droplets as possible.

Contest entrants are limited to 10kilobytes of source code and resource files, so like many others, I was constantly budgeting features, making lots of trade off decisions. It was a very enjoyable exercise, because I ended up cutting all my grandiose ideas like explanatory tooltips, sprite animations for the plants, keyboard input, background music, and lots of nice-to-have game mechanics like power ups and penalties, all of which would’ve been way over budget.

My thanks go out to Adam Kinney and crew for putting the contest together and making that weekend much longer and more enjoyable.

attachedbindings for silverlight

Today I released a small pet project of mine on Codeplex, called AttachedBindings. It’s a library for Silverlight which attempts to bridge the feature gap of Bindings between Silverlight and WPF. It contains an attached behavior that implements a form of ElementName Binding between two FrameworkElements.

Here is a simple example, which shows a Calendar control that changes opacity when Slider.Value changes.

<e:Calendar ab:AttachedBinding.Binding=
    "TargetProperty=Opacity, ElementName=OpacitySlider, Path=Value"/>
<Slider x:Name="OpacitySlider" Minimum="0" Maximum="1"
    SmallChange="0.1" LargeChange="0.1" Value="1.0"/>


Disclaimer : Thanks go to Neil Mosafi, his ElementNameBinder was first on the scene. I reasoned an Attached Behavior with a custom TypeConverter would be easier to use, and I was able to make some optimizations along the way.

blendables has shipped!

After much sweat and toil, we’ve launched not one, but three products aimed at the discerning development shop that need to build non-trivial WPF applications quickly and reliably. Indeed many of the apps we’ve built ourselves, for our customers, leverage these controls, panels and tools. Check out the announcement for the details.

live visualization

Nine Inch Nails, currently touring their Lights in the Sky tour, has raised the bar for live performance visuals. According to Reznor, it all started with a relatively simple idea.

“I wanted to see how I could use video as an instrument,” he says, “and try to really make the stage feel like it’s organic — like it’s part of the overall set.”

They’ve done precisely that, as ~40% of the visuals are rendered on the fly utilizing rhythm, vocal and optical input from the band. Check out this article in wired for tech specs and video.

Makes me really sad I missed it their Seattle show.

identitymine showcase

I’ve been privileged to work at IdentityMine at a time when some truly amazing interaction design and end-user experience work has been happening, but it’s always been difficult to showcase that work to others. This is usually because of contractual obligations, but it’s also a logistics problem. Silverlight work is much easier to disseminate; simply install the plug-in and go to a site with good content, but WPF and particularly Surface have more difficult hurdles to get around in order to have others experience work that IdentityMine has done.

To resolve some of this, IdentityMine has set up some good quality videos on a Vimeo channel, which includes our official Reel.  Below is the Surface Promo. Special thanks to Kurt for setting this up!

Vodpod videos no longer available.

intellisense for blend

Something to ease the pain of switching between Visual Studio and Blend. An Intellisense AddIn for Blend!

A well executed, no-nonsense addin, reusing Kaxaml’s intellisense code and hooking Blends ICodeEditor. Well done, Stefan.

My only concern is what happens when a second highly useful addin becomes available. I hope Blend 3 has AddIn management on the table, or perhaps an AddIn Manager addin is in order…

survey of silverlight markup

So I just read Robby’s fantastic and informative post discussing the state of 3d support in silverlight and I had one nitpick clarification I wanted to point out. Some context; in his post he discusses markup in silverlight within the “‘Real’ 3D Frameworks” part, stating

Unfortunately, Silverlight doesn’t yet have the parser extensibility required to make these APIs markup friendly. For now, at least, the 3D API may be compatible with WPF in code, but there’s not a good markup story.

This isn’t exactly true. Silverlight supports custom TypeConverters, which would allow the xaml parser to convert custom type markup to objects. This is just a case of Kit3D hasn’t yet ported those over, for things like Vector3D using a Vector3DConverter.

The xaml story for silverlight is pretty strong, over all. In addition to TypeConverters, you can use XmlnsDefinition in silverlight, so that you can map several namespaces to a single schema Uri providing a more natural usage of namespaces in your xaml. The only thing that silverlight is really lacking is MarkupExtensions, which incidentally I think will be added in a future release, based on the fact that the MS.Internal.IMarkupExtension interface exists in System.Windows.dll.

[Updated 8.5.2008]
Hey Robby, Turns out I was wrong about XmlnsDefinitions. Yes the attributes exist in silverlight 2, but the XamlParser does not respect them. As Mark has informed me, this is a feature that will be added after Silverlight 2 RTM. On the plus side, TypeConverters definitely work. 🙂

silverlight 2 beta 2 maintenance release

A maintenance update to silverlight 2 beta 2 was released via Windows Update today, bumping the runtime version number from 2.0.30523.6 to 2.0.30523.8.

From the KB Article:

This update improves stability, media streaming, and the auto-update component. This update also improves support for Mozilla Firefox 3.

I’m still hopeful that Silverlight 2 RTM will have a Trigger construct of some kind. But I’m convinced ElementName bindings, Data Template Selectors, and Markup Extensions won’t come until 2.5 or 3.

debugging design-time exceptions

I just found an excellent tip from Peter Blois on debugging exceptions in blend. Many, many people have experienced this with controls that work perfectly at runtime but throw in the designer, to the point where most designers/integrators will build out in a seperate, throw-away project and paste the result into the real thing.

Good post, Pete!

July 2020


Karim Hernandez is a dev at IdentityMine, building software using WPF and Silverlight.