Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In this blog posting by Uncle Bob

Author states a possible solution to the problem at hand. He writes "Try this. Break some long string of text up into columns that are 10 characters long. Each time you break a line, record the position of the break, and why you decided to use that position."

The problem is about breaking the Address into 13 character columns, so where does 10 come into play? Or is he using that as another example unrelated to the Gettysburg one?

I'd like to present this to my team in a presentation I have to do soon. I plan to describe the posting, describe the problem and ask my team members for their estimates. After I would go on to explain the rest of the postings premise about why estimations are often blown.

Feel free to offer suggestion on how I can make this a good presentation. I can visualize most of it but towards the end it feels light. After the quick survey, I focus on the problem of estimating the wrong thing and then offer the solution.

share|improve this question
I think that's imply a different example. – CodesInChaos May 11 '12 at 10:40
Probably the fact that most English words are less than 10 characters long and that length forces many breaks. – Oded May 11 '12 at 11:00
If you read it more carefully you will see that the font he is using is mono-spaced 10 characters per inch. The bookmark is 1 and a half inched wide so leaving some margin space at each edge he has limited you to 13 characters per line (including spaces). – James Anderson May 15 '12 at 7:44
You could code up a nifty web page and have a javascript "animate" the splitting task. – James Anderson May 15 '12 at 7:45

It's a tiny bit clumsy, but he's trying to separate the example at the end (take any long text and break it down into 10-character lines) from the more specific one earlier (take the Gettysburg address and break it into 13-character lines). But he could have picked any number there, 10 is just a nice round number from which to extrapolate the three parts of the procedure.

If I were using this as a presentation (assuming my audience have access to computers), I would:

  • pick a well-known text (probably an amusing one, just to inject some fun).
  • pick a number which hits as many test conditions as possible -- at least the three that Uncle Bob describes.
  • get each pair in the room to do the job manually and then estimate the programming task.
  • let them code it (within some kind of time limit).
  • see how many hit their estimates (or still believe they will, after the time limit expires).

I'll bet most don't.

In the spirit of interactivity but the absence of hardware, I'd do the coding myself, still letting the audience both estimate the task and tell me what to code and when. For example, let them identify a test, write it, make it pass until you're sure it's complete.

share|improve this answer
My audience is devs, qa, management and designers. No access to computers except my own as the presenter. Maybe we'll walk thru a psydo code exercise just to see how we would create the procedure. I'm thinking I'd put the text in a string variable and the method would out put it to the screen for simplicity sake. Thanks for the suggestions. – Mike R May 12 '12 at 13:31

Just over five minutes -- bless you python:-

ss = """Four score and seven years ago our fathers brought forth upon this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal…"""
wrds = ss.split()
lo = "";
lt = "";
print "-------------"
for wrd in wrds :
    lo = lt
    lt = lt + " " + wrd
    if len(lt) > 13 :
        print lo;
        lt = wrd;
print lt;
print "-------------"

The algorithm is the nearest I could come up with what you actually do as a human, count past 13 then backtrack to the last space.

share|improve this answer
Or one line of shell utility: sed -e 's/\(.\{1,13\}\) /\1\n/g' – Blrfl May 9 '13 at 20:47
@Blrfl yeah, but how long did that take you to write? – CandiedOrange Jun 3 at 22:14
@CandiedOrange: Probably no more than a couple of minutes, but I've been writing regular expressions since the 1980s. – Blrfl Jun 3 at 23:45

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.