LearnWPF - The Orangy-Brown Source of Avalon Knowledge

by admin 21. February 2006 13:57

Joseph has just announced the launch of LearnWPF, a Hawthorn styled community site for Avalon (ok, ok... WPF). I'm looking forward to seeing what nuggets of information come out of here. From the looks of things there's gold in them there hills.

FeedTree: The Greatest Thing Since G2:P2P

by admin 20. February 2006 08:55

I've just finished writing a paper, which explains why Slashdot has made it back into my url history (procrastination has to be pretty bad to get me to slashdot, unless I'm looking for a laugh). But in this case Slashdot has really come up with the goods. FeedTree is an excellent idea. I'd had a few ideas about using Scribe for distributing RSS more efficiently but never got around to thinking it through fully.

FeedTree seems to have come up with a great idea and followed it through with a client which is basically transparent! It took me a bit to get it running at home because it wanted to connect to the net through my pocket pc, but once I got past that it seems to be working well. It could probably do with a bit more doco in places but I'm sure that'll come if it becomes popular.

Finally, if you want a good laugh go read the slashdot comments (as usual). FeedTree seems to have provided the most ill-informed comments I've ever read on slashdot, but perhaps that's just because I have a good understanding of Pastry thanks to my PhD. Now there's a new 2nd best Pastry based application behind G2:P2P (hmmm. I should get a link to the AusGrid paper up on that site, hey)

Avalon resources

by admin 31. December 2005 12:56

Here's a nice overview of resources in avalon. In particular it showed me how to easily display embedded images. There's a follow-up on the pack uris as well.


Meanwhile here's a screenshot of my current Avalon effort, an implementation of the board game Carcassonne. Unfortunately you don't get the pretty fade-in/out in a static screenshot

Setting FormatConvertedBitmap Source via Binding

by admin 29. December 2005 00:53

Avalon's FormatConvertedBitmap is a convenient way of getting a greyscale version of an image, but it appears to have some trouble with setting the source property via data binding. The following code fails complaining that the Source property has not been set on the FormatConvertedBitmap:

<Image Grid.Column="0" Grid.Row="1" Width="400" Height="200">
<FormatConvertedBitmap Source="{Binding Path=ImageSource,
Converter={StaticResource imageFormatConverter}}" DestinationFormat="Gray32" />

I've tested the databinding on a standard image and it is fine. Similarly the code works correctly if a uri is entered instead of the binding expression.

I've no idea why this is happening, but I have managed to find a work around by using a converter to set the outer image's source instead of embedded XAML. e.g.

<Image Grid.Column="1" Grid.Row="1" Source="{Binding Path=ImageSource, 
Converter={StaticResource imageFormatConverter},
ConverterParameter=Gray32}" />

public class FormatConverter : IValueConverter
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
BitmapSource source = new BitmapImage(new Uri(value.ToString()));
return new FormatConvertedBitmap(source,
(PixelFormat)new PixelFormatConverter().ConvertFrom(parameter), null, 0);

public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
throw new Exception("The method or operation is not implemented.");

I suppose I should fire this at the newsgroup and see if I can find more insight into what's happening.

Task Tracking System

by admin 27. December 2005 05:56

I'm looking for recommendations for a system for tracking a todo list. There's no real problems finding open source (or free) systems, but none are quite cutting it yet.

I need something I can host at rikware.com but still access through a windows GUI (none of the systems with web frontends have impressed me yet). So far the best I've come up with is Axosofts OnTime but it needs a SQL server to point it at.

Looks like I might need to start coding RikProjectManager... but what will I use to track the development of RikProjectManager?

Personal Blog Launched

by admin 6. December 2005 05:16

I'm launching a personal blog at http://www.rikware.com/PersonalBlog.html The first post there explains the reason, but don't worry. When I have really important things like being elected a Tontie Master then I'll work out some way to post it to both blogs :)

But from now on expect this blog to be almost exclusively related to software development in some way. In the immediate future it'll probably be focussed on WinFX stuff - Avalon and Indigo. I'm liking Avalon so far and my initial readings of Indigo indicate it should be easy enough. I particularly like that Indigo seems to have kept a lot of the good things from Remoting rather than being .asmx on steroids, though perhaps that it just my Remoting tinted glasses...

I Am The Tontie Master

by admin 4. December 2005 23:11

I finally broke through the 20th level of Tontie - It's a simple game but it's good to fill in a spare few minutes here and there.


Avalon, the Dispatcher Thread and Databinding

by admin 2. December 2005 10:18

I've found an issue with the Avalon databinding. I have a library which updates itself in response to a FileSystemWatcher. The problem is that when I bind to this library it throws an exception when this update occurs because it the change doesn't happen on the Avalon dispatcher thread. I'm not sure how to get around this. I'm not directly involved in updating the UI since it's being done via databinding and the library has no knowledge of the UI so it can't redirect the update onto the dispatcher thread. Not sure where to go with this. My initial thoughts is that the databinding code should know how to move onto the dispatcher thread transparently.

System.NotSupportedException was unhandled
Message="This type of CollectionView does not support changes to its SourceCollection from a thread different from the Dispatcher thread."
at System.Windows.Data.CollectionView.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedAction action, Object item, Int32 index)
at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
at System.Collections.ObjectModel.Collection`1.Add(T item)

Avalon Hits RikWare

by admin 1. December 2005 01:29

My first forays into the world of Avalon (Windows Presentation Foundation) are going well. Avalon databinding is very nice. Speeds up UI devlopment heaps, which gives you plenty of time to waste trying to work out how to do things since there's little documentation to help.

Anyway, here's a screenshot to show you some stuff. Sorry... I haven't been wasting time putting in lots of pretty animations and gradients. The hardest thing so far was getting the treeview in there. ObservableCollection is great, but ObservableDictionary would be great too...

Watch the PDC

by admin 24. October 2005 16:55

You can now watch Joel write a compiler in an hour amongst other PDC presentations at http://microsoft.sitestream.com/PDC05/ . Unfortunately Joel doesn't do his presentation in Lions' gear :( Maybe next time...

About Us

RikWare is a software development company based in Brisbane, Australia. Led by director, Richard Mason, RikWare focusses on solving challenging business problems promptly and effectively.

RikWare is also the owner of Aussie Bushwalking, a free, wiki-like collaboration site for bushwalkers and the creator of RikMigrations, a migration framework for .NET.

Aussie Bushwalking

Want to discover some new bushwalking ideas? Share a few of your own? Aussie Bushwalking is like Wikipedia... but for bushwalkers. Head on over. Anybody can see the walks and it's free to sign up and share your own.



RikMigrations is a database migration library for .NET based on the migrations facility provided by Ruby on Rails. It allows simple upgrading and downgrading of databases using .NET code (such as VB or C#) either from the command line or built into your application. Unlike many other migration frameworks, RikMigrations is a stand-alone library which does not rely on a large surrounding framework.