Wednesday, August 27, 2008

Electronic Voting

So GCN had an article Lab certifying voting equipment failed to meet requirements so here we go again. What now? Legislators are trying to govern/regulate/enforce processes that they don't really understand. Anybody remember the internet being a "series of tubes"?

What particularly stands out in the article was "the manufacturers are not allowed to play a role in the testing process" and "In July, EAC sent a letter to SysTest about concerns that the lab 'is allowing and inviting manufacturers to play an inappropriate role in the development of test plans'".

This is not to say that an independent testing committee isn't needed. It is needed. What is also needed is the colaboration of development AND testing in order to verify that the software is in fact doing what it intends to be doing. Any tester worth their salt would agree that this dialog is a necessity. Rule #2 of the Sociopathic Obsessive Compulsive: When give a choice - pick both!

Friday, August 22, 2008

How-to Fail Using Scrum

If you are using Scrum and/or XP - you must see this video! Do not pass go. Do not collect $200. Even if you're not "Agile" it is well-worth watching 10 Ways to Screw Up with Scrum and XP presented by Henrik Kniberg. This is exactly the type of dialog that needs to be happening in our industry.

Kudos to you Henrik!

Trust me when I tell you I do NOT give those out freely!

Domain Driven Design

I've been noticing a great deal of talk about DDD. InfoQ has made a freely available PDF on-line DDD quickly. It is interesting enough; it seems to reflect a great deal of "common-sense". The most important aspect I've noticed (I haven't read this in its entirety yet - and I'm by no means an expert) is the facilitation and constant communication feedback which is often missing (especially in larger companies). Ayende is working on a book around this topic, using BOO the "wrist-friendly" language. Food-for-thought and some decent ideas anyway...

Thursday, August 21, 2008

Espresso, anyone?

I usually start the day with a 4-shot espresso (they just don't make regular coffee strong enough anymore) - but that's not the one I'm talking about. I'm talking about Expresso 3.0 . If you are like me and resort to having use Regular Expressions once every other harmonic convergence - this is a good tool to use. One of the most valuable features is the ANALYZE window - which breaks down your cryptic string into a logical instruction set; a.k.a - is this expression really doing what I think its doing? You can check out RegEx Designer.NET if you help compiling your expressions into .NET assemblies as well.

Tuesday, August 19, 2008

F# Download (Is it a floor-wax or dessert topping?)

Hint: It's both. Things are about to get a lot more interesting. As the object-orientated world and functional programming world beget a love-child. First-class NET citizen, dynamic-linking and preemptive threading? What's not to love? Can't wait to try this one on for size...F# Download

For a decent discussion on the topic look at Matthew Podwysocki's Blog.

Be sure to check out Retlang which seems to be an outstanding open-source library for managing concurrency!

Monday, August 18, 2008

The secret is in the constructor...


Having used mutex-like code in numerous projects I was quite surprised to see that when a process was lauched as a system account; access to that was limited to that security context. That makes perfect sense but it seemed a bit "flaky" - for one since each process was asking for it by unique name - and it was solely for the purposes to synchronize a critical resource. If a service application initialized the mutex any other user-based application could NOT get access to the mutex (wtf?). I saw multiple examples about impersonation (DACL and ACL); granting access etc. I took the path of least resistance. We check to see if the error code returned is NO_ACCESS and if we are NOT concerned with preserving the context we signal that we are only using it for synchronization. Since this particular project still lives in "classic" VB and for reasons I can't even begin to justify, the .NET runtime is not present on the machine - spelunking to the framework objects was NOT an option. Hopefully this saves someone some time.

Tuesday, August 12, 2008

Free ISO buster

Seriously. Being an MSDN subscriber and still having to deal with iso files is annoying (at best). Found this site that documents how to use xp to "mount" the iso image as a drive ->without having to install "trialware/freeware" etc. Extremely simple to use and useful. Tech Recipe - ISO Buster

Monday, August 11, 2008

Incremental Death March

For those of you interested enough in Agile methodology and hold on to the hope that one day you will be able to implement this in your respective day job - I have news; "Culture eats methodolgy for breakfast". No, that's not my quote. I heard it from Ken Schwaber as I attended a scrum training seminar. And I'm not quite sure where he got it from. The prospect of having everybody participate in quality software development (Q/A, BA, Dev, Sales) sounds like a no-brainer. It's what eventually happens ANYWAY. Except instead of days, weeks, months or (dare I say it) even YEARS later - everyone who has a vestage interest in the outcome (or pigs/perhaps chickens) see each other everyday. You report your progress (or lack thereof to your respective co-workers) and "hopefully" everyone pitches in with their best effort to deliver on what the team decides is what is best for the product. Does it happen? Well sometimes, only under the best of circumstances - and with the RIGHT PEOPLE in place. Read Good To Great if you haven't already. Historically, management has gotten so used to dictating the what and when and the vast majority of developers have capitulated to such an extent that it is business-as-ususal. Cram in everything possible, to meet the DATE, letting quality slip as a direct consequence. The longer a "bug" lives (either unintentional or intentional - yes there are intentional bugs! These are bugs that are design-compromises made in the "heat" of a deliverable;"hopefully" with copiously scattered comments of TODO or FIX) With waterfall, I can give you software you don't want in 10 months, whereas with agile methodologies I can get you the same software in 1 month. At worst you lose 30 days as opposed to 9+ months. Is that good? Considering that "conservatively" 45% of program features are never utilized, it makes sense to take smaller bites of the most value than trying to swallow the elephant all-at-once. See Cargo Cult Methodology: How Agile Can Go Terribly, Terribly Wrong. Is software doomed? I think not. Takes a brass set to change and a lot of hard work. We're not there yet - but we're pushing the fly-wheel...

Friday, August 8, 2008

Shovelglove?

After spinning around and checking in with LifeHacker - I stumbled across this guy's low-cost way to fitness heaven. http://www.shovelglove.com/

I give him "props" for putting this out in the ether...My secret has been to buy a "fix-er-upper" and do the work repairs myself.

I don't deny the value of staying active - but I do have a contention with the shovel glover's Karate Kid reference. It's "Wax on. Wax off". And they were CARS not FENCES.

Hey, I'm getting ready to change out the fence - want to drive some posts?

Wednesday, August 6, 2008

Day late and a dollar short...

I'm throwing my hat into the ring - now that it's no longer "kewl". Like so many other would be bloggers I expect to, at the very least, share my personal experiences (read "pain-points") about certain aspects of software development. Maybe something I share will save someone some time. Maybe it will confuse. It may befuddle. Annoy. Perhaps even aggravate. It may warrant further investigation - read "google". I make no claims to be a guru. There are probably many different ways to acheive the same tasks. Better, stronger and faster. I'm pragmatic and have ADD when it comes to technology. I am currently engulfed in C#. I love the language. I "twitter" (can you use that word as a verb yet?) in various languages and technologies hoping to find the "razor" to my current dilemna. I promise to share what I deem worthwhile about my problem of the moment. I will not apologize for anything I say. Consider yourself warned.