Faith in overclocking officially restored

It's been a long time since I've really felt "pleased" by the results of overclocking... probably back in the days of the 300A if truth be told, which is in the long long ago ;o) ... and for the last year I've been mostly using a laptop, and having really kept track of desktop tech.

... So I have to admit to being very pleasantly surprised when I built myself a Core Duo machine (to be used while my Laptop is getting a labotomy) with a bottom of the barrel 4300 processor and then proceeded to overclock it from 1800mhz to 3042mhz ... that's a serious leap in performance :) very pleasing... and I still haven't hit the ceiling which is even more pleasing, I just had to stop fiddling and get on with doing some actual work.

Read More

Decorators & ReSharper

More parts in the container tutorial series are on the way, I've
just been a little busy these last few days.



However I had a discussion with someone about decorators this week
- they eluded to them being too hard to "create" and maintain, and
that opportunities to get them wrong abound (manually writing the
code to call all the members of the inner service) - I was a little
astounded that they didn't know how to do this using
ReSharper.



So heres a quick 1 minute tutorial for those that don't know, first
an interface.


public interface IBondService
{
void Smoke50Cigarettes();
void RegisterEnemy(string name);
void GetOfBed();
bool GunLoaded();
}


Now let's write the start of our decorator.


public class BondService : IBondService
{
private readonly IBondService _innerService;

public BondService(IBondService innerService)
{
_innerService = innerService;
}
}



And then generate the rest... by going to: ReSharper
->Code->Generate...->Delegating Members


Or just type Alt-insert (if your using the default
key bindings) and select "Delegating Members".



At that point select the only option, the inner service.







And then select all the members to delegate for.







And then we get the results... joy


public class BondService : IBondService
{
private readonly IBondService _innerService;

public BondService(IBondService innerService)
{
_innerService = innerService;
}

public void Smoke50Cigarettes()
{
_innerService.Smoke50Cigarettes();
}

public void RegisterEnemy(string name)
{
_innerService.RegisterEnemy(name);
}

public void GetOfBed()
{
_innerService.GetOfBed();
}

public bool GunLoaded()
{
return _innerService.GunLoaded();
}
}


Read More

Family.Show

So I quite like Family.Show as an end to end solution of WPF goes... but I think what's been more fascinating is seeing how my (beautiful) Financee is finding it as a working product.

So she's a big genealogy zealot - and for the first time when saying "hey have a look at this" for some random piece of tech I could see here interest was piqued, so we click-once'd it onto her machine and she's been playing around with it for the last day or so - having loaded around 300 people into it so far.

First off the good - it's pretty, and very fluent - you can see immediately who's being edited, current vs. past relationships, dead vs. alive (hollow people are dead... ) And it performs nicely... 200+ vector "people" on screen and the machines not sweating a bit.

Surprisingly it's also pretty quick for data entry, something I had my doubts about when first looking at the application vs. something a little more traditional - after about 5 minutes of experimentation she was an expert.

Second the bugs... well the main one is that certain characters in a name like a double quote causes the "stories" data screen to crash upon saving...  And every now and then it just flakes out completely... I might throw some logging into and see just what's going on, it doesn't even let you get a stack trace *erk*.

Interaction - well here's where she's getting pissed with it and I'll probably need to enhance it a little - and it's all to do with relationships...  there doesn't appear to be any way to establish a relationship between two people once their added to the tree... a pretty big oversight - they expect you to add all relationships by adding a brother/mother/father/sister/spouse/child to the person currently being edited, but that means you cant actually implement something like:

  • Joe marries Jane
  • Bob marries Martha
  • Jane & Bob die
  • Joe marries Martha


A big problem during times of war because it was not uncommon for widows to marry the brother of their dead husband.  This seems like a big oversight (though it is just a tech demo).

Interesting though, and this sample is definitely the best WPF app with source code I've had to play/learn from... great stuff Vertigo.

Read More

Astoria... got the "so what" ... just waiting for the "ah hah"...

So looking at Astoria
very briefly today ... a good starting point is probably Alex James blog and all the linked
posts - and so far I'm left with a "so what" attitude to the
technology releases so far (but it is very early days).



I feel like what's being presented is something I could cobble
together using Dream
and ActiveRecord/NHibernate
or Base4 with a couple of weeks
work at best... I'm probably being a little optimistic though ;o)
Devil is always in the detail... but what's in the wild so far
hasn't made me sit up and take notice, I hope the next couple of
drops will though.



However in the mean time, what does interest me:

  • Standardization of a query scheme... so far I've only seen
    examples of search/get queries.. I'm particularly interested in
    any update related queries... this is where the opportunities for
    doing evil live, and where community input will be vital I think.
  • How does WebDAV fit into the Astoria picture at the
    moment?

  • Astoria SaaS ... I find the idea of being able to design and
    provision REST'ful stores on the web (with my own schema) quite
    intriguing.
    • That said - I'm not sure what I'd do with it, but I still
      want it ;o)

    • And thinking out loud, but besides the obvious uses for
      web/ajax/flash/silverlight fraternity *yawn* - could this
      kind of thing actually give new life to some desktop based
      applications - It could certainly smarten them up a bit, so
      that using the same application on multiple machines (i.e.
      work/home) could optionally give you the same
      experience.




Read More

Things I'd like to know about the DLR, but don't...

Has anyone had a chance to really dig into the DLR??... I've
briefly browsed the source code in IronPython 2.0 for the
Microsoft.Scripting project, it looks promising... but I really
need to sit down and write myself a simple little DSL from
end-to-end to get a handle on it (when I get time, I'll be sure to
post a mini-series on it ;o)



Things I have been wondering though are:

  • Is it possible to decorate dynamic classes with attributes
    yet? (i.e. create say an WCF message class and decorate it with
    [DataMember] attributes dynamically) - no attribute support in
    IronPython 1.x was a problem for Ivan a while ago.

  • Are continuations supported (and how) ?
  • Just how well does the language mixing work... Can I grab an
    instance of an IronPython class and change just a single
    instances methods using features particular to (Iron)Ruby


I'd love to know a few things, but just don't have the time at
the moment to find out right now.



Also I wonder if pushing IronPython & IronRuby into the
mainstream is going to see a surge in interest for projects like
FePy ?  I still
feel the value proposition for a lot of the dynamic languages on
the CLR/DLR is weakened by the fact that the BCL isn't as much fun
to use from a dynamic langauge as the native equivalents for the
ruby or python (or certainly makes it difficult to port python or
ruby knowledge of the managed equivalents) ... I'm sure I could
write a YAML parser in C# that would be "good" - but it's not going
to feel as nice to use as say Why's Syck parser which is built
with dynamic languages in mind.
Read More