Tuesday, January 31, 2006

Use Cases +1

In doing some research online, I re-read a post by Paul Hartley (Intentional Software) that brought up Use Cases.

His basic premise is that the practice of law specifically relating to the drafting of contracts is very similar to the practice of software engineering in the implementation of code. This seems like one of those things that should be obvious, seeing as how we use the word contract to describe interface relationships often enough. Once you've finished the article however, it's obvious that the challenges extend beyond just component interactions.

Specifically, his illustrations in how Use Cases are a tool to help in both practices were enlightening. I now have yet another tool when explaining the value and approach for Use Cases.

The Morass of Chaos

Recently I have been struggling with a new architecture. Not the architecture itself, mind you, the process being used to derive it. It's no secret that I am competent and capable when it comes to synthesizing requirements into an architecture supported by solid design trade-offs. In my own mind I like to think this is because I'm quick to assimilate data, I have a robust breadth of experience, and an unwillingness to compromise on correctness. In this particular environment, none of these tools have value. Instead, I find myself without a reliable resource for requirements, forced to propose pseudo-architecture with no foundation in design, and pseudo-design with no context in an architecture. How did this become the norm?

Don't get me wrong, I'm no stranger to highly fluid (some would say volatile) situations in which even the baseline defies definition daily. No small portion of my repute lies in just such distinction. However, success on those terms comes from discipline in the art of the architecture. From a strategy of systematically adding structure on the foundation of designed components. Without some handle, some thread to hold onto, it becomes impossible to weave through the morass of chaos.

In the world of software engineering, like most industries I suppose, we tend to pretend that our challenges and concerns are unique. This self-delusion allows us the confidence to explore these issues without bias or prejudice, supposedly open-mindedly. As often as not I feel it hems us in and inhibits our ability to take the learning done by others and simply apply it. This has been resonating in my thoughts quite a bit lately.

Have I become too rigid in my approach? Should I be more compassionate in my practice? While empathy is not my style by any means, perhaps some allowances need to be made. How do others handle the impotence created by managerial ignorance? Surely not everyone takes the Dilbertian approach towards their workplace. There must be a middle position here. There must exist a way to become if not supportive of, at least less frustrated by, mediocrity. What a pathetic path this is to ponder. Is this the normalcy so many discuss of which I have been blatantly ignorant? I miss my bliss.

Monday, January 09, 2006

Playing Catch Up

If you can't tell, I'm kind of playing catch-up today on some topics that I have been sorely neglecting.

Joel posted a new entry a few days ago and I'm just now getting around to going through it.  Turns out he must have been reading my journal.  Now most of the time, I think the Joel comes off as a blow-hard, but then he puts up a post like this one and redeems himself complete.

That should spell out exactly how self-centered I am. It is is easy for me to pooh-pooh his exceptional work until it lines up with my own ramblings. What can I say, I'm a jerk sometimes.  In any case, read the flippin' article. It's good.  Even if he pretty much ripped off what I've been ranting about for past 8 years.  ;-)

Better than JasJar?

There is an interesting review of the new DualCor device in PC Magazine (details here).  At first glance, it appears like it might even be an improvement over my much prized JasJar. I've been in love with my phone for quite a while now, since it truly is a great convergence form-factor for me.  But being able to take it just a smidgen further when necessary is pretty seductive.

The thing I would be worried about is the same thing I'm always worried about with equipment like this. With the JasJar, the cover can be closed like a clam-shell. Then I can open it and leave it open like a tablet when I desire. Unfortunately, the DualCor is always in tablet mode. Which means the screen is constantly being exposed to dirt, oil, grim, and whatnot. I just don't need that kind of stress in something so vital to my every day.

And of course, it's just big. I mean really.  People said the JasJar was big, but this thing is huge!  Sexy...but huge.

Wednesday, January 04, 2006

New Amazon Controls

If you are reading this on blog.tempusfugate.com then you have probably noticed the cool new additions to the template.  Namely the two new sections on Books & Movies.  These are examples of a new control I've made available that uses Amazon Wishlists to store collections of books, movies, and cds.  Using the Amazon Wishlist service means I can maintain as many lists as I want, and they can hold any Amazon products I desire.  So I have lists for Top Movies, Mentoree Reading Lists, and Favorites Tunes.  Since they come from Amazon, the details are provided their service and can include information like artist, publication or release date, track information, director, cast, and so forth.

The script that draws the controls is embedded using an ASPX wrapper around a special control I've created in C# using the .NET Framework.  You can download the assemblies here or just reference the wrapper directly as I have done.  If you are hosting your own pages, you might want to pull down the assemblies and embed them directly within your own ASPX pages.  By referencing the control directly in your own host environment, it will improve the performance and make it easier for you to customize the look and feel.  Let me know if you'd like access to the assemblies.

If you aren't capable of hosting your own ASPX pages, then you can reference the wrapper page I have provide at scripts.neodiem.com.
To embed the script, add the following code to your template:

<script type="text/javascript" src="http://scripts.neodiem.com/showlist.aspx?

You can then change the listid property to point to a list of your own choosing.

The output of the wrapper is JavaScript which will render the items in the WishList as an UnOrdered List.  You can control the look and feel using ClassNames.

Feel free to play with these as much as you like and use them to host your own lists of Amazon items!  You can choose how many items to show, whether they show in random order, and the level of detail associated with each entry.

Any feedback is appreciated.