Technology and Compromise 

"I can't use [X] because of this small feature which I find objectionable."  I have some other places where a sensible compromise was discarded in favor of an "all-or-nothing" strategy.  I don't know why someone would take an all-or-nothing demand for the impossible.  But it does tell me how valuable the software is if they'd prefer none of it when they could have had some of it.


Posted at 06:10 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

What's Central Here?

The requirements describe a kind of "broker" application that makes heavy use of a vendor's web services.  Sadly, the requirements also give a lopsided view that leads to heavy refactoring.  Lesson learned: don't take the requirements literally.


Posted at 11:25 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Voice of the Customer

Or What do people want in a book on programming?


Posted at 03:06 PM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

The "Which Language" Question

A recent email said "I've read a little about C++, and Objective-C.  My next step will be to read a bit about Perl, Python and Ruby."  I have a suggestion... 


Posted at 11:45 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Wrestling with REST

REST has some advantages over SOAP.  Django totally rules.  But the Django-REST interface causes me hand-wringing as I learn more about it.


Posted at 06:18 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Building Skills in OO Design

Revised some additional things that have confused readers.  And -- bonus -- added four appendices on testing and documentation.


Posted at 08:27 PM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Denormalization or "What did you mean by that?"

Denormalization -- like Normalization -- is a buzzword that can be interpreted several ways.  It can mean "duplicated data", or it can mean "alternate forms of normalization."  It's a loaded word, and it leads directly to at least five different kinds of objections.


Posted at 07:59 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Genius Move -- Characteristic Functions

The name is obscure, the math isn't obvious,  but this is a genius play for data analysis applications.  Thanks!


Posted at 09:54 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

My Query Is Slow -- What To Do?  Or Dumb-As-A-Post SQL (Revised)

When in doubt, step away from the IDE -- stop typing -- start thinking.  Here are some epic non-solutions to a standard, well-understood problem.


Posted at 06:30 PM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Tech Visionaries

Christopher Null lists top 50 tech visionaries in a PC World article.  My personal hero makes the cut.


Posted at 06:00 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

In Praise of Serialization via __repr__ (Revised)

The Pythonic distinction between __repr__ ("If at all possible, this should look like a valid Python expression that could be used to recreate an object with the same value") and __str__ ("the 'informal' string representation of an object... a more convenient or concise representation [than __repr__]") is very, very cool.


Posted at 05:50 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Building Skills in OO Design -- Updated

In response to reader comments and questions, I've made a few updates to the OO Design book.


Posted at 04:20 PM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

My Peers Don't Get PL/SQL, What Can I Do?

Give up.   First, no amount of "evidence" -- like blog entries -- will change their minds.  Second, PL/SQL isn't a very good programming language.

Or, rewrite things in your preferred style and quit explaining to your peers how wrong they are.


Posted at 08:29 PM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Brain Dead and Visual Basic: Coincidence?

Here's something I stumbled across.  A bunch of VB versions of the same algorithm; all of which are bad in the same unthinking way.


Posted at 07:04 PM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Some "Duck Typing Can't Scale" crap-ola

I've run into this vague hand-wringing that lifts up "trust" among programmers.  They use the buzzword "scalability" to differentiate between a small team (where there are no trust issues) and enterprise-scale programming where "someone" doesn't "play by the rules".  What?

The paranoid claim that these "others" can't be trusted, and specific defensive measures are required to protect "us" from the malfeasance of "them".  They call it defensive programming and waste endless brain calories on writing pointless junk code.

It's simpler than that.


Posted at 07:05 AM Read More
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to: