Technology and Compromise

Two recent conversations with the Non-Compromisers.

NC: "I can't use Yahoo! mail"

Me: "What?"

NC: "Yahoo! mail has a "Home" tab which isn't the inbox. It always lands there."

Me: "Yep. That's a javascript thing. The tab isn't bookmarkable."

NC: "The fact that I can't land directly on the "Inbox …

more ...

What's Central Here?

The requirements are a sequence diagram showing a complex back-and-forth with the vendor's web service. Each request and reply is detailed, but there's no overview or summary stated. It's implied, and all of the business folks can articulate it, but no one wrote any of it down.

This looks like …

more ...


The "Which Language" Question

Here's how it shakes out from my point of view. You could say that my bias is showing. I think, however, I have solid evidence for my opinions.

C++. Fine if you like memory management. Don't get me wrong, some people love the nitty-gritty details. Some people would prefer to …

more ...

Wrestling with REST

REST is cool because there's less protocol there -- little more than HTTP and some kind of representation for objects (XML, JSON or whatever.) It seems to me that REST with JSON is a very lightweight approach to implementing web services. Doing this in Python further trims down the technology stack …

more ...

Building Skills in OO Design

I want to thank folks for their thoughtful comments.

I clarified a few design points.

Most importantly, I added four new appendices. For Python programmers, I provided examples of unittest, doctest and epydoc. For Java programmers, I provided examples of JUnit and javadoc.

more ...

Denormalization or "What did you mean by that?"

I use the word denormalization heavily, to make a point to a certain class of developers. Other developers object to the term, since it doesn't have a precise meaning.

The point I often have to make this:

  1. 3rd Normal Form is for Updates.
  2. Data Warehousing is about Insert and Select …
more ...

Genius Move -- Characteristic Functions

The comment was eaten by Haloscan, but here's the text...

You need to read Rozhenstein on characteristic functions.

select
sum(case when a < .5 then 1 else 0 end) 'A'
,sum(case when a >= .5 and a < .75 then 1 else 0 end) 'B'
,sum(case when a >= .75 then …
more ...