Trivia
Trivia
Having worked on many rewrites, I often use The Roast was Too Big for the Pan analogy to explain why we need to understand why the code was written the way it was rather than parroting the system we are rewriting.
It's not necessarily safer to copy existing algorithms, because there are often interdependencies (read: kludges) between different steps of a long chain of calculations or transformations.
You need to make a conceptual model of the current system and then abstract the total effect of all the variables to really understand what is going on. This is a process called rationalization.
Take the time to really understand the algorithms and you will be much further along the road of both ending up with a working system and having a new system that is far more maintainable than the previous one.
Solutions Configuration Management
n. The soup-to-nuts configuration management of Software Systems through SDLC and into product deployment in an enterprise data center. It is more encompasing than Software Configuration Management, becuase it includes the provisioning, configuration, and customization of shared enteprise resources in the data center. It also prescribes a Configuration Management workflow based on Solutions Management rather than individual applications.
Update:
Note that this does not cover Production Change Management, but, rather Change Management during development.
Meticulity: The capacity for or degree of meticulousness. One's ability to be detail oriented. One's meticulity quotient is a large factor in one's success as a software developer.
Usage: Sam does not demonstrate a high degree of meticulity in his code.
Scientific American news shares that the seat of the Risk/Reward decision in the brain's frontopolor cortex and intraparietal sulcus. (Nature article.) Some people have especially large ones...
I've just been through another review where we wanted to use Meat Cooking terminology for an artifact. I had looked this up before, but had neglected to blog on it so I didn't have the "Doneness" lost handy. This link at AskTheMeatMan.com clears it up. The Doneness levels are:
|
Doneness |
Tempurature |
|
Very Rare |
130º F |
|
Rare |
140 º F |
|
Medium Rare |
145 º F |
|
Medium |
160 º F |
|
Well Done |
170 º F |
|
Very Well Done |
180 º F |
I've wondered for years if you could recalculate the average over some values if you only knew the change to one value. It turns out that you can as long as you know the total number of values. The derivation is fairly trivial, too. I just never did it until I actually had to do it for a client. I spend too much speculating, I guess. You can also calculate the new average if new values are added. Formulas and derivation below.
To calculate the change to the Average aggregation you need to keep the prior total count N and the prior total T.
If the value of one component of the aggregation changed by d the new total T' is calculated as:
T' = (NT + d)/N
If an additional component is created and it's value is v then new aggregation T' is calculated as:
T' = (NT + v) / (N + 1)
This can be generalized for a sum s of n values as:
T' = (NT + s) / (N + n)
Derivation:
For sum S of N values the average T is:
[1] S/N = T
For a change d to a value in S we have the new average T' as:
[2] (S + d)/N = T'
From [1] we have
[3] S = NT
Plugging that into [2] we have:
[4] (NT + d)/N = T' QED
If n values with a sum of s are added to the aggregation you have:
[5] (S + s)/(N + n) = T'
Plugging [3] into [5] we have:
[6] (NT + s)/(N + n) = T' QED
Don Box in his SOA talk referenced a classic quote about someone writing a long letter because he didn't have time to write a short one. This analogy has stuck with me and I wanted to get a hold of the true reference. Here it is:
Blaise Pascal, Lettres Provinciales, Letter XVI, December 4, 1656. (tr. Thomas M'Crie)
Reverend fathers, my letters were not wont either to be so prolix, or to follow so closely on one another. Want of time must plead my excuse for both of these faults. The present letter is a very long one, simply because I had no leisure to make it shorter. You know the reason of this haste better than I do. You have been unlucky in your answers. You have done well, therefore, to change your plan; but I am afraid that you will get no credit for it, and that people will say it was done for fear of the Benedictines.
In the original French:
Mes Reverends Peres, mes lettres n'avaient pas accoutume de se suivre de si pres, ni d'etre si etendues. Le peu de temps que j'ai eu a ete cause de l'un et de l'autre. Je n'ai fait celle-ci plus longue que parce que je n'ai pas eu le loisir de la faire plus courte.
Now we know!
Term: Brownian Architect
Related Terms: Brownian Architecture
Noun:
Application architect that makes snap decisions for various design problems by using the first design pattern that comes to mind without regard to long term effects or maintaining an overall architectural plan. Applications managed by Browning Architects are characterized by Brownian Architecture.
Strategy for Avoiding Brownian Architecture:
The primary way to produce a coherent architecture when dealing with a Brownian Architect is to employ a Brownian Motor. The concept is to ignore architectural decisions and continue to discuss the design problem until the Brownian Architect randomly lands on the correct decision. Note that great deal of energy must be spent to produce a coherent architecture in this way.
Term: Brownian Architecture
Related Terms: Brownian Architect
Noun:
Software architecture designed by a Brownian Architect. Marked by a random juxtaposition of conflicting software design patterns and procedures.
Et al., I was introduced to this beauty in 8th grade. This was when we were doing deed searches in a school project, and I learned not to abbreviate et, which means, of course, “and”. I was trying to remember what al. was an abbreviation for, so I googled it. There are no less than six words for which al. may be the abbreviation: alius (singular), alii, aliae, alia (masculine, feminine, neutral plural for others), alter (perhaps the infinitive?), alibi (for other references, it says).
No wonder it's abbreviated!
Some of you may be wondering why I've had a dry spell here. One reason is below:

This third installment of the Brubaker family came on November 21, 2004.
Also, since the end of November I've been made the Temporary Acting Enterprise Architect for one of my company's Business Units and have been in constant meetings for three weeks. So I haven't missed the news about Oracle CLR and other items and hope to blog a bit while I'm on vacation this week.
Our company's starting a massive effort to move ALL of our US region server software to an outsourced Data Center running Windows Server 2003 on the wintel stack. Also, all the desktops/laptops are moving to Windows XP SP2. Let me assure you that the current installed base is all over the map. The last juicy morsel to this yummy pie is that all the software must go through external configuration management to get into the new environment...and it all has to be done in under two years!
For someone who wants to effect change, (e.g., establish a corporate .NET practice) this is a time of unprecedented opportunity. However since I own the entire Windows stack, the Microsoft relationship and, currently, the corporate enterprise perspective with the business unit with the most wintel software developed over they largest geographical area, I'm getting spread very thin.
It looks likely that during the month of January 2005, I'll be flying all over the country, listening to teams of developers describing what they remember of how over 200 applications are currently designed, so I can help them migrate to the new environment. I doubt I'll be able to blog much...
.Text tells me that about 300 pairs of eyes look at my postings. I realizes that many of these are Googling or Feedstering eyes. However, between the dotnetjunkies shared feed (Please patronize these generous folks) and my personal feed, I think there are some regulars.
To serve you better, please respond with a comment as to why you read my blog. My current rule for posting is whatever I think is interesting and don't want to lose track of myself. What interests you?
Ken·flu·enced KEN-flue-inst ppt. of Kenfluence
- having begun using kenglish terminology
- having begun abstract thinking using verbose language
Pretension is a great way to lose respect of your peers. As my friend Brad has commented:
“If he were only half as good as he thinks he is, he would be a great developer.”
Brad likes to emphasize the idea of negative ability: that quality that allows one to say “I don't know”. You can never reach your potential if you think you know it all and are always right.
This discussion relates to this issue. As does this study summarized here.
Synonym: Incompetence
I looked up the word Artifice recently. Very good Kenglish word in that it can have both a positive and negative connotation. Even the sound of it has two meanings: Artistic Ediface and Artificial Edifice. All in all it's almost as good as an old Kenglish standby, Fulsome.
The PC Police are careful to ensure that everyone uses inclusive language, however we must all draw the line somewhere. I draw mine at the Phylum Chordata. I address all my co-workers Gentlechorates, for example. It seems to me the spinal chord is what separates us humans, sharks and hagfish from the ganglion driven world of worms. I call making things second nature, “Putting it in the spinal chord.” Like any good reflex, that is where our quickest surest actions take place. To whit: we're really not that much different from chickens!