Archive for the ‘Uncategorized’ Category

Software Engineering Quotes

Saturday, December 1st, 2012

Every now and again I get an urge to repeat some quote on programming. But I can’t always find what I’m looking for when I go search for it on Google, in order to quote it accurately and cite the source. So here’s a list of some of my favorites which I’ll try to keep up to date as I find new ones:


“The essence of architecture is the suppression of information not necessary to the task at hand, and so it is somehow fitting that the very nature of architecture is such that it never presents its whole self to us but only a facet or two at a time.”Documenting Software Architectures: Views and Beyond

“Increasingly, people seem to misinterpret complexity as sophistication, which is baffling—the incomprehensible should cause suspicion rather than admiration. Possibly, this trend results from a mistaken belief that using a somewhat mysterious device confers an aura of power on the user.Niklaus Wirth

“90% of a program’s execution time is spent in only 10% of its code. The standard inference from this rule is that programmers should find that 10% of the code and optimize it … But a second inference is just as important: programmers can deoptimize the other 90% of the code (in order to make it easier to use, maintain, etc.)”Richard Pattis

“Some facets of usability such as cancellation, undo, progress bars, and others require software architecture support. Because they reach so deeply into the architecture of a system, these facets must be built into the system from its inception rather than added after an initial system design and user interface has been achieved.”Len Bass

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”C.A.R. Hoare

“Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.”Stan Kelly-Bootle

“If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.”Robert X. Cringely

“That’s the thing about people who think they hate computers. What they really hate is lousy programmers.”Larry Niven

“There’s an old story about the person who wished his computer were as easy to use as his telephone. That wish has come true, since I no longer know how to use my telephone.”
Bjarne Stroustrup

“I once wrote a database using only the letter O.” — Wally from Dilbert

“I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself “Dijkstra would not have liked this”, well, that would be enough immortality for me.”Edsger R. Dijstra

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” — Martin Golding

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”Brian W. Kernighan

“It’s been proven there are at most three numbers you should use when programming: 0, 1, and N. I’ve long been of the opinion that 1 should be avoided. But lately I’m becoming increasingly skeptical about zero.” — self

Failures of Sprint Hotspot As Home Internet: Stay Away

Monday, September 17th, 2012

This is definitely a rant (which is not uncommon for this blog), but it’s on a non-programming topic. Yet sometimes when I stray off topic, those posts somehow become the most popular. (Example: people prefer to comment on .Trashes, .fseventsd, and .Spotlight-V100 instead of Computer Languages as Artistic Medium. I think the latter is far more insightful, but Google Analytics doesn’t lie.)

Anyway…as a technical person, I depend on connectivity. The rise of 4G networks brought modest speeds to mobile…it was enough to watch Netflix and 480p YouTube. I’d spent some time reducing my material possessions and traveling light, so I decided to keep that going with a tiny unlimited internet that fit in my pocket. I paid for hotspot/tethering (I didn’t root the phone and try to slip it past the carrier)…and legitimately used my Sprint Evo 4G’s unlimited data plan as my Home Internet.

It was a bleeding-edge idea…the sort of thing you’d expect from the category of people who call themselves “technomads”. But Sprint appeared to mitigate the risk by giving me a whole month to try out the phone and the plan…and return it for a full refund (for any reason). That first month had modest performance, but I convinced myself that a 1.5 mbps downlink was acceptable for the convenience of not having wires and routers. Plus my connection followed me wherever I went.

(Perhaps I was kidding myself about the speed being fine, but as those who know me can attest…I’m quite good at fooling myself.)

Of course I knew that carriers didn’t want people doing what I was doing. The writing has been on the wall that unlimited tethering has no immediate future. Sprint was just the last to allow it—they’d purchased most of Clear, had a lot of WiMax (”non-LTE 4G”) bandwidth, and not enough customers using it. They’d certainly not renew it…but a 2-year contract seemed long enough to get by; I didn’t know how long I’d be staying in Austin at that point anyway.

It went very wrong, and I want to talk about it. I’ll detail why I canceled my Sprint contract, paid the early termination fee, and had AT&T U-verse fiber optics installed. I’ll also tell you a little bit about the agony & the ecstasy of switching to no-contract. I’ve settled for the moment for T-Mobile, after an ordeal with a company called Simple Mobile…which was only simple in the sense of “Simple Jack”. :-/

(more…)

A Word on Programming Education and SpaceChem

Tuesday, March 6th, 2012

I have a lot to say about the game SpaceChem, and have lately been organizing thoughts and educational materials surrounding it. But because the question of “how to teach programming to the kids of today” came up on Slashdot, I posted a comment there about it.

But I’m not interested in having a Slashdot account for all the usual reasons people don’t jump into that fray. That makes me an “Anonymous Coward” in their lingo, so my comment starts out with a score of 0 where it won’t be shown to people. I’ll cache it here so that the whims of moderation on an aggregator site that’s yesterday’s news (both literally and figuratively) won’t censor my thoughts. :)

The question I was responding to was this:

I have been wondering lately if there are any kids interested in programming for its own sake anymore. When I was my nephew’s age, computers were still fascinating: There wasn’t a laptop on every table, facebook wasn’t splattered on every screen, and you couldn’t get any question answered in just a couple seconds with Google. When I was 10, I would have done anything for a close programming mentor instead of the 5-foot high stack of books that I had to read cover-to-cover on my own. So I was happy when my nephew started asking about learning to do what “Uncle Jay does.” Does the responsibility now shift to us to kindle early fires in computer science, or is programming now just another profession for the educational system to manage?

Here’s my response:

There is no turning back the clock. You can’t bring up a blinking terminal with [10 PRINT “HELLO WORLD”] [20 GOTO 10] and expect the average kid to feel motivated. Also, you will not learn much…all the while being frustrated by their reactions.

But I have a suggestion. First sit down with him and the two of you can watch “The Karate Kid” (the original one) all the way through. Afterward go back and review the entire “Wax on, wax off” / “Paint the fence” / “Sand the floor” scene, and what Mr. Miyagi says about “Karate Do” vs. “Karate Don’t”. Make sure he groks that getting your fundamentals right can have profound effects on reaching your goals, even if they *seem* unrelated. Remind yourself of that fact as well.

Then open up your wallet and spend ten measly bucks to buy SpaceChem, which the creator of Team Fortress has called “Pretty much the greatest game ever made”. I’ve known for a long time that such things would be *possible* to create, but hadn’t seen it done in a way that satisfied me…until now. I’m hopeful it is a prelude to many more such teaching tools:

(Note: Some real non-tutorial gameplay illustrates some of the amazing machinery you make in this game…

…it’s not much of a spoiler as there’s lots to see in the many levels. Though if you spend too much time watching YouTube videos you will take away from the experience of playing!)

There have long been games that gave the appearance of indoctrinating one with “programming”, merely because they gave you automatons that act independently to solve problems (such as “The Incredible Machine” or even pared-down systems like Logo). But SpaceChem blows them away. It has the requirement to build “stable reactors” and pipeline them to build something that works…but must do so iteratively…it is self-testing. Your solutions might turn out to be complex or inefficient, but the production quotas keep raising the bar to keep you from being sloppy. Plus the leaderboard for “elapsed cycles” and “symbols used” creates an incentive to go back and hone the craft.

I cannot say enough good things about this game and the direction it’s pointing. Your nephew won’t be the only one enjoying it, either.

I’m hoping to have a lot more to say about SpaceChem in the future. But for now I just want to tell people to give this game a fair shot. It’s not 100% user-interface polished at this point, there are some rough edges…but for me it’s been very inspiring.

A Great Customer Service Experience with Amazon.Com

Thursday, August 11th, 2011

This is off-topic for a programming site. But I am going to say that Amazon.Com customer service has been great, and did something very accommodating for me recently. They kept me from being out $150, due to something that may have possibly (or probably) been my mistake.

I don’t run a super famous blog, but after everything got resolved I told the customer service rep that I’d give them a shout-out for fixing the issue. If you’re interested in hearing about it, read on…

(more…)

South By Southwest and Austin Migration

Friday, March 11th, 2011

Sorry for the lack of updates to the blog, but February was a busy month of leaving Los Angeles for Austin, March was taken up by SXSW, and April will involve finding a new apartment and furnishing it. But I hope to return to recreational programming and writing articles about it soon enough!

(Note: If you’re visiting the site because you met me in Austin and got my card & want to talk more then please feel free to email/call or leave a comment.)


Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported