Blogs

tech.ed Australia 2009

Wow, I have seriously neglected this site. I guess my experiments with sleep hacking have taken their toll on my consistency.

Anyway, today I fly up to the Gold Coast for tech.ed Australia, which starts tomorrow. Really looking forward to the experience, although I hope I will be a little better prepared for the onslaught than I was last year.

I hope to be able to keep up some form of blogging schedule from the event, if for no other reason than to keep a log of what I found interesting there.

I have specifically been learning WPF so that I can catch a few sessions on that too. Impressive technology. Also looking forward to find out whether the complimentary Visual Studio is a full version or if it expires. *fingers crossed*

API Design Research: The Basics

Coming from a .NET perspective, the place to start this journey is obviously Microsofts' Design Guidelines for Developing Class Libraries and the blogs of Krzysztof Cwalina and Brad Abrams. I have read most of this material before, but I think it'd be a good idea to refresh my memory before adding any additional material to the mix.

What also occurred to me as I was thinking this journey through is that a lot of the advice I will find should lend itself to static code checks. I would sincerely hope that StyleCop and FxCop already cover most of the material on "API Design" by Microsoft, but there may be gaps. Moreover, any additional materials I add to the mix after the basics is almost certainly not going to be covered by these tools.

What this means is that I hope to build up a list of rules as I go along which with some luck I might be able to implement as honest-to-goodness static checks so that my APIs henceforth will always be perfect (within some value epsilon).

As such I will need to keep a list of all the "rules" and "guidelines" that I come upon and carefully classify them along the axes:

  • "objective" / "subjective"
  • "always true" / "usually true" / "sometimes true"
  • "all APIs" / "specific types of API"

I think I have a serious amount of work ahead of me.

API Design Research: Kick-off

I do a lot of thinking when I am not developing libraries of abstractions in the hope they will make my (and my colleagues') work easier in the future. When I think I mainly think about how to make things better / easier / more foolproof.

Just recently I have seen the light of Dependency Injection as a solution to a problem that Steve Yegge is convinced does not exist (although from his comments on it I suspect he may have only seen a good idea mis-applied; I wholeheartedly agree with the main thesis of his post).

Via the vessel of NInject I have been exposed to the concept of Fluent Interfaces, how they (don't?) relate to DSLs, and tons and tons of misconceptions about the usefulness of Fluency as an API design choice under the right circumstances.

And all this has mushroomed into a Wikipedia-like meandering about topics of API design, only to come to the conclusion that there doesn't appear to be any well-reasoned discussion of how to come to a good API that does not involve trying to mesh several partially-orthogonal and incomplete discussions.

Maybe I am missing a site containing the holy grail somewhere. Not being able to find it however, its existence is indistinguishable from it's non-existence, so the best I can do is try to figure it out for myself.

As I go along digesting information I am going to try and build a series of "API Design Research" posts referencing the sources I am reading and my opinions and "lessons learned". Hopefully this will all end in one or more posts distilling it all down to practical advice, mainly for myself, but hopefully useful to others as well.

Disclaimer: I currently operate in a C# .NET universe, and as such, all my discussions will be biased towards what makes sense in that context. I am sure some of my conclusions are not going to be valid in "language X" for your favourite value of "X"... I am sorry, but I also do not care.

An urn!? Really??

I have a media PC for a television. It has its awkwardnesses, but on the whole I am very happy with the way it works. One of the greatest benefits is that I can have a library of all my media somewhere on the network and just play whatever I feel like without having to hunt for a DVD, put it in, take it out, wipe it down, put it in, take it out again, scratch the specks off, put it in again, then watch what I wanted to watch.

As a result I found myself recently ripping my West Wing DVD set to the media PC for future viewing. As I am wont to do I check the results of the rip before moving on to the next disc, and something happened...

I missed Josh... and Toby... and CJ... and Bartlet. As scene after scene of the show skipped by in my fast-forward I realised how much of a hole the cancellation of this show has left in my viewing spectrum, so I did the only sane thing that was available to me... I have started watching the West Wing again.

I am only up to episode 4 of the first season yet, but ... damn ... the writing is even better than I remembered. The pace of the show is phenomenal. Stuff just happens continually, and as a result it takes a while after the end of an episode for it all to sink in.

Some classic lines already, I just love dead-pan Toby "I don't understand... did you trip or something?". And Josh "drinking from the Keg of Glory" and wanting "all the bagels in the land". Watching the West Wing just makes me feel ... I dunno... happy?

Which brings me back to the first nit-pick, and the title of this post. At the end of Ep 4, Leo goes to the secret AA meeting in the white house for high level politicians... guard on the door... disguised as a card game.

As the door opens... ... ... there is a coffee (tea?) urn visible on a little table. First of all... WTF, ... a well-disguised poker game with an urn right in the doorway?! Nobody is going to believe that. Second, ... I have a very hard time believing that the wealthy and powerful would have an AA meeting and drink *anything* from an urn.

Clearly, alcohol is out, but comeon... a good coffee machine of some sort? Fresh squeezed whatevers maybe?

And even outside of the context of this setting... urns feel so "I'm not really trying". I wonder if on some level meetings with urns simply have them because it's "the done thing". Having a meeting? Oh, you're going to need an urn. And little cookies. Wrapped individually in plastic. Or a cake. Something home-baked. Preferably bland.

Trust online tools?

I love online dev support tools for bug tracking and source repositories... but I have some misgivings about trusting them as my sole store of important data.

I wish there were a set of general protocols that sites could support beyond RSS to make moving data both to and from such sites easier. I'd love to automatically keep a backup copy of all data on my local machine and just use the website as an online up-all-the-time proxy for my data.

Dev Tool Chain

I have been meaning to start doing some research into the best possible tool chain to use for my own development for some time now, and dammit... it's time to actually do something. So, to start gathering my initial thoughts, here are some of the main components I want to try and include.

  • C# .NET IDE (VS Express probably)
  • Source control (SVN or Git most likely)
  • Continuous integration
  • Unit testing
  • FxCop / StyleCop (altho there may be some rules I do not agree with)
  • Bug / issue tracking
  • A blog (this one probably)
  • A wiki (added here, hopefully)
  • ??? the unknown ???

Now, my main concern is going to be in finding a way of making this all integrate 'just right'... not sure how hard that is going to be, but really... if it's not automated, it's not done.

Gone to the Cove

Okay, so my hosting seemed fine at the time... then I decide I need to do a backup... *hits backup button* ... "Cannot generate backup, sent an error to hosting provider".

Hm, strange... let's see what HostDone has to say for themselves. I send in a support ticket, and wait for a response. Response arrives. "Yes, we don't do all-in-one backups, just use FTP, and MySQLAdmin" ... Uhm,... say what?

To make a long story short I tried to convince them simple full backups are not an optional extra but a necessity, but they did not seem convinced. I immediately moved to a local hosting provider www.cove.com.au, and dropped HostDone ASAP. Feeling a lot better about the world now.

Respect for Mike Huckabee

I just watched the Daily Show segment where Jon Stewart talks to Mike Huckabee about social conservatism and gay rights. Although I have to count myself firmly on the side of Jon on this issue, and I was once again blown away by how good Jon is when he puts on his 'reporter hat', I also have to admit my respect for Mike.

Don't get me wrong, I do not buy Mike's arguments for a second, but in this day and age we could all bring up some respect for those on the other side of the political isle from us that are prepared to come and discuss contentious issues without resorting to yelling or name calling or outright contrived argumentation.

Heroes No More

When Heroes first started broadcasting I had some misgivings about its apparent similarity to The 4400. I was however quickly won over in the first season.

There were a few times when I wished they'd done something better, but when you have a head-cutting villain with an evil glint in his eyes, an immortal cheerleader trying to get to grips with her situation, the comic relief of the asian peon with dreams of grandeur, and the hints of dark conspiracies that aren't all they seem everywhere, it seemed like the perfect mix to exploit for years in various ways.

I'm sad to say however that as of the first quarter of season 3 I have lost all faith and have decided to stop watching.

The show has become nothing more than a sci-fi soap opera where nothing is ever what it seems and allegiances shift for the most fickle and incredible reasons, just for the sake of shallowly exploring all the permutations of available heroes.

I have heard that for each of the major characters there are dedicated writers to work on their individual storyline. And it appears to me as if they have started an arms race for producing the most notable moments in every single scene of every single episode. As a result the natural highs-and-lows of a good story have been ironed into this flat homogenous surface with no definition and nothing to keep me hooked.

It is saddening for a show that had so much promise to go so far astray, but as-is, I just cannot bring myself to invest another 45 minutes in an episode that I am going to regret sitting through before it is even finished.

Inspiring, but done

I guess I can put my political-junkie inner self away again for another few years. It was fun to keep track of the US election, but now that it's all said and done it is time to wait and see what the outcome really means for the US and the world as a whole.

If nothing else, it has been inspiring to see a political win not fueled by corporate money and purely personal attacks.


Theme & Icons by N.Design Studio
Syndicate content