The story of round rectangles
folklore.org
folklore.org
Here's another example, cited in the design and creation of the Palm Pilot:
"Jeff Hawkins, the team leader, wanted the Palm Pilot to be simple. It would handle only four things: calendars, contacts, memos, and task lists, but it would do them well. Hawkins fought feature creep by carrying around a wooden block the size of the Palm. Hawkins would pull out the wooden block to "take notes" during a meeting or "check his calendar" in the hallway. When someone would suggest another feature, Hawkins would pull out the wooden block and ask them where it would fit. Hawkins knew that the core idea of his project needed to be elegance and simplicity. In sharing this core idea, Hawkins and his team used what was, in essence, a visual proverb. The block of wood became a visual reminder to do a few things and do them well."
taken from http://www.gsb.stanford.edu/news/bmag/sbsm0702/feature_ideas...
Uproot it from reality and use it in isolation, and it has no life in it to persuade. Therefore: improve at seeing, not persuading.
(He'd have been more savvy at persuasion techniques if he'd complimented the poor guy first.)
You can see a lot by just looking.
It's really nicely structured and has lots of comments!
EDIT: The code is in the BumpOval procedure in DrawArc.a
Generalized to ellipses: http://homepage.smc.edu/kennedy_john/belipse.pdf
http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
I'm not sure how correct this is, as I don't have access to the full text of the papers involved. But it looks like if Bresenham did write the algorithm (and wasn't beaten to it by, say, Pitteway as Wikipedia implies), it wasn't until his 1977 paper, "A linear algorithm for incremental digital display of digital arcs".
Steve turned to look at Bill. "Bill, how long did you spend writing Quickdraw?"
"Well, I worked on it on and off for four years", Bill replied.
Steve paused for a beat and then turned back to the Byte reporter. "Twenty-four man-years. We invested twenty-four man-years in QuickDraw."
Obviously, Steve figured that one Atkinson year equaled six man years, which may have been a modest estimate.
http://folklore.org/StoryView.py?story=Mythical_Man_Year.txt
I bought the 3G nano, but very seldom use it because the scroll wheel is too small. I didn't buy the 4G precisely because it had the same sharp edge problem as the 2G.
Wait, really? You never worked out in school (or on your own before it ever came up in school) that
1 + 2 + 3 + ... + n = n * (n + 1) / 2
and likewise that 2 + 4 + 6 + ... + 2n = n * (n + 1)
and 1 + 3 + 5 + ... + (2n - 1) = n * n
? (of course, it also comes up geometrically if you start looking at the number of little squares in a big square, and count the next row)What got me thinking about it (at perhaps 11 or 13 or so) was trying to turn it into a way of calculating the square root.
1. accomplish something pretty darn tricky to try to impress the boss/client
2. boss is only impressed for a split second before giving you a harder to accomplish task
EDIT: I find the bouncing up and down of votes for this interesting, particularly the reasons people give for disagreeing.
Nor do we need more "I told the programmer we needed this thing he said was problematic and he did it" management just-so stories.
Why would that be? Is this a kind of story you disagree with for some reason? Are you arguing that it's a bad story because it's badly composed or because you don't like the theme?
This story wasn't written by the manager in question, so I also don't see how you can personify the author in the first person in your pseudo-quote.
Also, I was not personifying the author.
Well, either that or Hertzfeld never got around to learning how roundrects were implemented.
I get your complaint, because that's not the conflict you wanted the story to center around, but given the conflict it does center around, I don't think it's that poorly composed.
It's easier to dismiss something as "entirely too hard" than to get into an argument about whether it's worth implementing.
It could also be that he thought it would be too hard because he knew he only had 42 bytes of ROM space to play with.
What is really interesting in this story is not the algorithm itself, but how Steve Jobs convinced Bill Atkinson by taking a walk outside with him to show how common rounded-corners are in "real-life".
It does not matter how relevant you find some aspect of this story, it's still poorly told - and this should be especially clear if the focus on the the interaction between Atkinson and Jobs is what you consider key. Half of the story is about details of an algorithm that simply don't matter if the core of the story is Jobs badgering Atkinson into being willing to code rounded rectangles.
I agree that it's probably too detailed in the first bit, but I don't see it as a major flaw for a series of articles about the development of the original Macintosh. The intended audience consists of hackers and developers who get intrigued by technical details.
A bad story that is about some subject no one cares about, can not.
Edit: Luc already linked to the source archive in this thread, so I changed my link specifically to the RRects.a file.
Of course, if I'd actually read the code before linking to it, I'd have realized that this file doesn't really answer avgarrison's question because the algorithm is in DrawArc.a (see Luc's post earlier in this thread for an archive with the rest of the files).
When you relate events, you inevitably "engineer" them, even if only unconsciously or by your judgement of what's relevant or not. Storytelling is about how to engineer usefully and usually entertainingly, particularly to the people you're telling the story to.
See the comment I quoted here:
Thanks for more interesting reading material, HN!
I'm 99.99% sure it's coincidence and confirmation bias, but some part of me wonders if this story played any part. But, if anyone in the southwest bought a window or glass table in that shape today, I might have played a part in doing the CAD.
I remember 48KB of memory and 4 MHz, no lowercase, no multi-tasking, only 40 columns text width, the keys were almost painfully hard to press down and you had to pay for all documentation, what little of it anywhere you could find.
“At MacHack, when most of the original team was there and
Andy told this story, Jef Raskin spoke up to say that he
had told Steve about round rectangles being everywhere,
and that's what got Steve obsessed about them.
But what I found interesting was something Bill Atkinson
said about creating the RoundRect routines. He said they
turned out to be a lot easier to create than he thought
they would be. I can't tell you how many times I've
over-estimated something easy. I think it's something
inherent in computer work.”Reason: Most of us that have been around a while have read this entire site, more than once usually, but most of the stories there are good enough to keep getting upvoted for any youngsters that haven't discovered it yet. Eg, it's one of the few links that can keep getting reposted over and over, and revoted to the front page over and over, probably till the end of the Internets. So lets just make it a cron job already.
Bill: Who cares?
Steve: Round rectangles.
Bill: Not important.
Steve: Round rectangles.
Bill: They're impossible.
Steve: Round rectangles.
Bill: Okay I'll try to figure out how to do them.
Steve: Okay now send in that Andy guy about that Switcher thing. And bring my checkbook.