2008-06-24 - Architecture Chat Tomorrow

Architecture Chat Tomorrow... Some possible things to talk
about:



Subversion 1.5 - and it's new
merge tracking
features.




WCF/WF Features
in .Net Framework 3.5 SP1 - a blog post caught
my eye with things I hadn't noticed before mostly around
DataContract Serialization i.e. ability to serialize graphs (not
just trees), an attribute-free mode for the serializer and a suite
of strongly typed classes to make implementing AtomPub easier (i.e.
Workspaces etc.).




P/Invoke Interop Assistant
- handy little tool, about 5 years
too late for me :)



Umbrella Project -
Interesting project, take a look at Ayendes
involved post
for an overview.  The
ExtensionPoint approach for making extensions more
discoverable is interesting - something we discussed right back
when the first beta's of VS2008 were on the horizon.



I'd personally also like to talk about some thoughts people have on
the bare minimums for a usable language and domain specific
languages in particular - i.e. debugging, native support for
comments etc. and some experiences with a rather hostile Model
driven architecture transformation language I've had to deal with
over the last couple of weeks :)



As usual, if anyone has any topics - feel free to leave a comment,
send me an email etc.



Notes from previous meetings and directions etc. can be found
here
on my wiki - anybody is welcome to come along.


Read More

Unity container comparison

If you recall many moons ago I posted a series of articles on the Castle Project's IOC Container "Windsor" teaching the fundamentals of IoC with a practical bent - lots of people liked them, and I still get feedback every now and then from people starting to use windsor and finding them useful.

At any rate Michael McGuire was once such person who read those tutorials a year or so ago and has now started a series of his own - mirroring my castle container tutorials but with the P&P Unity container instead - you can find it here.

As someone who has not given Unity much more then a brief skim it's a nice way to quickly get up to speed on some of the key differences.

So far after reading a couple of articles I've learnt.

  • You need to implement your own type converters for things like arrays or dictionaries in configuration.
  • Configuration syntax is not particularly human-friendly, obviously designed for management via a tool  - requiring the entry of full types all over the spot like "Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration" - just to register a component!
  • Default lifestyle is transient... hmmm.. personally I think singleton is more-often the norm for me when writing applications, but it really depends on how the container is being used/abused I guess.
  • Support for multiple configurations looks a little more baked in - but this is trivial stuff to implement in most containers.


I'll be interested to see how decorator chains etc. are implemented in Unity.

Good work Michael.

Read More

Architecture Chat #28

5 people turned up This week.

Peter kicked off t1he discussion with a review of the Agricultural Field days in a disheartening lack of anything IT there, this sparked an interesting discussion around what's holding back adoption of technologies such as RFID's for animal identification and some possible inhibiting factors, like the cost to early adoptors, education etc.

After this we returned to more mundane things... first off we Discussed Velocity a bit, comparing it to memcached and some of the interesting features like tagging and the current lack of push functionality in the CTP.


Silverlight 2 beta 2
was next... talked about the new visual state manager and designer integration into Expression Blend.  I noticed after the chat that Ivan has posted an

Interesting discussion
around why he believes the Visual State Manager isn't a great idea - during the chat we did puzzle a little over why silverlight is diverging from WPF, and just how cross-polination between WPF and Siliverlight will occur.

Other things that interested us about the silverlight 2 beta 2 release were Inking & Stylus support (and incidentally second-hand tablet PC's are becoming dirt cheap, so no excuse not to have one lying on your desk!).

Multi-tile source, which could prove interesting for providing information generated on the fly or integrated with existing GIS sources etc.

Cross-domain support, background thread support for networking and duplex WCF communications - I could see this providing interesting possibilities, i.e. a silverlight control that makes the web client a temporary member of a grid network, perhaps distributed virally as a facebook app.  Not to mention the more mundane business applications.

After talking silverlight for a while Jamie then mentioned the OAuth library I'd written - so I went through what OAuth is/does vs. OpenID (there seems a bit of confusion in some peoples minds of what each of these projects aims to achieve) and then what's been
implemented, and what is yet to come - for more info on the OAuth library check out this wiki page.

A rambling discussion sparked off by Peter mentioning IBM having broken the
"petaflop barrier"
and the gradual approach towards a platform for an accurate simulation of the human brain, I made some references to "I am a strange loop" and everyone talked about the general difficulties with artificial inteligence and the current predictions regarding when computers will have enough horsepower to emulate brain function.

Thanks all for coming - see you all in a couple of weeks (Thursday 26th June).

Read More

Splicer 1.0 released.


Version 1.0.0.0 of splicer (the little video/audio composition library that leverages DirectShow which I started a few years ago) is now available on Codeplex
here
this marks a milestone in stability, and probably the main "feature" of this release is 64bit support, something that's been bugging me for ages as I could only work on the project in a VM!

A quick list of changes since the last release are:

  • Now uses DirectShow.Net 2.0 (thanks to felix, a fellow NZ'r).
  • RenderProgress event.
  • Renderers are disposable.
  • Support for 64bit operating systems.
  • Vista fixes/support.
  • Additional samples (i.e. SampleTimeWatermarkParticipant, and a few others).
  • Tests updated for NUnit 2.4.7.
  • Solution upgraded to VS2008.

What's splicer?


With this library and a little imagination you can:
  • Encode video or audio suitable for use on a website.
  • Create slide shows from images, videos and audio.
  • Apply effects and transitions to audio and video.
  • Grab System.Drawing.Image clips from a video at certain times.
  • Modify individual video frames during encoding via standard C# mage Drawing code.
  • Add new soundtracks to existing video clips.
  • Watermark videos.
  • Build a video editing suite, if you were so inclined.

Read More