Links of the Week: September 29th

I’ve been neglecting my links. If I keep this up, they’ll disown me. Don’t worry, they’re worth waiting for. I still need to get around to that Scala article, too.


I posted about Norman Borlaug’s death on the 16th of this month. Earlier last week, I ran across yet another article you really ought to read about him. It still annoys me to no end that the death of some actor overshadowed Borlaug to the extent that the latter was never much heard of in his passing. Really, what is wrong with our society? We’ll shed tears over some actor or entertainer but shrug our shoulders in apathy when a man credited with saving billions from the pangs of starvation passes on…


If you’ve ever wanted to know how AES worked and you’re fond of stick figures, here’s a guide to AES… using stick figures.


During the end of the Cold War, tons and tons of weapons-grade uranium and plutonium went unaccounted for in various Soviet satellite nations. Here’s a great article on one such incident where the US was able to recover about a half ton of highly refined uranium from Kazakhstan.


Over at the DadHacker blog, there is a really, really good post on 30 years of C. I’m not smart enough to be a C programmer, but I do believe that this gentleman makes points so important that every programmer ought to read them. I cannot praise this article enough.

Added October 1st: After having a little bit of time away from paid projects, I decided to refresh my though processes in the realm of functional programming. It’s new to me, and I figured the exercise would be a good start so that I could finally write my next “Learning Scala” installment. Unfortunately, I got side tracked! I did stumble across something pretty fascinating: It’s a guide to learning functional Python. Okay, so it’s not exactly a tutorial, but it has so much great information in it for anyone remotely considering the use of Python as a semi-functional language. It’s worth reading.

Added October 1st: Java is dead. Yeah, okay, I’m joking. There’s a really good article over here written by Chas Emerick. I came across it at a most ironic time: a time right when I was getting ready to pick up my Scala book again! You’ll want to read it as I feel the contents of this article are perhaps the most important things you’ll ever read in the coming months.


Did you know that Amazon’s excursion into other markets is shaking up retail? It’s true, and it’s probably a good thing. For as much revenue as Amazon generates, its yearly profits in 2008 weighed in at a mere $645 million compared to Walmart which made $13,400 million (I’m retaining the numeric magnitude to give you an idea of just how little profit Amazon makes compared to big retails firms like Walmart–thanks to XKCD for keeping me honest!).


Is the Shaken Baby Syndrome (SBS) a farce after all? It might be. Yes, there are plenty of cases where babies have been shaken violently, and those people should spend a very long time behind bars. However, after reading this article, I’m inclined to feel that there might be some people who were falsely accused, tried, and punished because of the shaky science. (Of course, those cases where a babysitter is video taped committing horrific acts of violence against children aren’t what I have in mind; in those cases, the babysitter is a dangerous and terrifying person who ought to be punished to the fullest extent possible.)

There are some attributes of entrepreneurs that might surprise you.


I ran across a very interesting post titled The Problem with Design and Implementation. It fascinates me precisely because it takes a completely different look at the design and implementation processes of software. The author points out dangerous follies that some development shops make during the design phase and illustrates why writing software isn’t like building a bridge.

Update May 27th, 2010: The author of “The Problem with Design and Implementation” has pointed out some really great additional research! Check out it out below in the comments! Thanks for adding to my (admittedly very minuscule) corner of the web, Yamin!


3 Responses to “Links of the Week: September 29th”

  • Jonah H. Harris writes:

    First, the AES cartoon was great. Never have I seen a cryptographic algorithm discussed in such an amusing way.

    Second, as a C developer, I agree with the DadHacker suggestions.

    Lastly, I find The Problem with Design and Implementation extremely naive and reeking of that new NoSQL, Ruby on Rails, Agile Development crap that is becoming the bane of team-based software development’s existence. Regardless of how well it’s written, source code cannot replace design, research, and requirement specification documents. The author’s type of thinking is what continues to push out these new half-baked, poorly-designed applications that can only be improved by throwing more hardware at them or hacking new features into them. I suspect the author is a lone developer-for-hire that’s sitting in his mom’s basement, eating Pop-Tarts, and wearing a tin foil hat :-)

  • Yamin writes:

    Good to see you found the article useful.
    Just FYI, as I did more research into, I found someone more authoritative had pretty much said what I was talking about.

    I’m still puzzled by businesses that don’t understand this.

    Martin Fowler

  • Yamin writes:

    I just looked back on this link and found the comment by Jonah.
    I found it common to have several types of comments on the article.

    1. Focusing on the exaggerated claim in the article that compilers are ‘perfect’.
    2. Thinking I was advocating not having a design or gathering requirements.

    2 is the kind of argument that baffled me, when I was making no such claim in the article.
    Although I anticipated as much and thought I would take care it by stating it in the introduction. I never suggested getting rid of requirements documents or anything along those lines. It was the business mentality to separate this phase as ‘skilled’ work from the software as dumb implementation work that was causing the problem. I was arguing that you need ‘high level design’ (documents, diagrams, architecture…) and ‘low level design’ (code).

    Before I begin my analysis (read attack) on this attitude, let me first say that I am probably the last person that just starts hacking away at code. I really do believe in design and properly thinking about a problem first. So keep this in mind and for the rest of this article; understand that I am in no way advocating hacking as a legitimate way to write software. Let me also suggest that you read this article focusing on the mentality of the people in the business and how it works out in practice.

    We should use valid design documents were possible. It should aid in the source code specification, but should not be the specification itself as that is not what the implementers (compilers) use to produce the final result. Putting emphasis on useful design documents will allow for more man hours to be spent here instead of on useless items. I tire of seeing someone copying the header file of a c++ class, pasting it into a word document and claiming that is valid documentation. Designing GUI prototypes, timing diagrams for network protocols, class and interface maps, overall design choices... are all essential in guiding the source code.

    In any case, then I read

    and realized why people make such attacks when I made no such claim :P
    But I learned a lot how to write an article like that and how to respond to people’s comments.

Leave a comment

Valid tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>