Many appreciate what he has to say, but then again, he is basically articulating what we all know, and plenty figure that maybe his writing is no longer fresh, and he is just cranking out articles in order to shill his warez:
“This might be a neat opportunity to use Scrum. Once a week, the team gets together, in person or virtually, and reviews the previous week’s work. Then they decide which features and tasks to do over the next week. FogBugz would work great for tracking this . . .”
My position is that most stuff we read is mediocre, and Joel at least writes well, and Joel wears his ulterior motives on his sleeve, so when he starts figuring FogBugz can cure what ails CS curricula, I just figure “and now a word from our sponsors” and my brain hits the fast-forward button.
I think Tom actually has the best reaction to the issue Joel brings up, in that he adds that different people have different learning methods:
We all know there are students that are “visual learners”, “audio learners” and “kinesthetic” learners.
We all know what? Okay, yeah, and “everyone” is talking about this, right? Anyway, Tom, like me, is a learning-by-doing kind of guy who didn’t always “get” the formal CS curriculum:
When I took my undergraduate class on software engineering methodology I felt it was useless because I couldn’t see the point of most of what I was being taught. Most of my programming had been done solo or on a small team. I could not take seriously the problems that were being “fixed” by the software methodologies discussed in our lectures. “Code size estimation? Bah! Impossible, so why even try!”
In my CS days, the bits I enjoyed most were the learning-by-doing: compiling my first C program, bending my mind around recursion and functional programming to complete assignments in MIT Scheme, implementing a virtual spanning tree, and coming up on my own with the idea of a finite-state automaton to parse NWS weather forecasts. (Okay, that wasn’t a CS assignment and I didn’t know how to talk to girls.)
The parts where I fell completely flat were the theoretical classes where we considered bizarre hypothetical problems that didn’t make sense, using Greek letters that didn’t seem to have anything to do with reality. One day my ECE roommate asked how, as a CS major, I would go about sorting one million integers. My response was “why would you want to sort one million integers?” Later I slept through multiple lectures where the best methods of sorting integers were discussed at length. I skimmed the slides so I know that Quicksort performs well and in-place, but that Bubble Sort may work better if your data is mostly sorted, so in my mind that just means that if anybody asks how you would sort one million integers, the correct answer is to ask some questions as to why they need to sort one million integers.
Uh, yeah. Anyway, what was I nattering on about? Joel’s schtick is that CS students aren’t taught to manage large, complex, “real world” projects with lots of moving pieces. CS mostly focuses on the “interesting 10%” like how you would sort a million integers and skips over the boring 90% of hard work like implementing the interface for the customer to provide their million integers and retrieve the results. And Mark Dennehy’s reaction was “of course we focus on the interesting ten percent: the other 90% is constantly changing and best learned on the job!”
But, addressing the “how do you tackle big projects” thing, I think Joel has a point. And his point isn’t new. The point is extra-curricular activity.
Whether you’re a visual learner or whatever, the biggest secret to learning things is to find the thing that you are studying interesting. The very best computer programmers are all fucking fascinated by the challenge of getting the computers to do things within given parameters. Computer programming is fun because when you get down to it, it is a lot like computer games: a person at the interface banging away until they get their dopamine fix by either beating the level boss or getting the damn thing to compile and spit out the correct result.
Well, that is for the learning-by-doing types. Some computer programmers get their jollies by trying to fathom a new and novel method of sorting one million integers. Whatever floats their boat, I guess.
Anyway, long story short, I’m thinking the learning-by-doing types tend to get a little queasy after a few CS theory classes and end up majoring in English in order to score a bachelors degree, but they keep tinkering with the computers along the way, and end up, like Tom and me, as systems administrators, figuring out the best way to keep 1,000 computers running in order to make it possible to sort billions of objects with map-reduce algorithms in constant time.
Oh yeah, and that I agree with Joel that motivated CS students ought to find non-class projects that they are passionate about, and thereby gain chances to collaborate with others on the sort of “real world” challenges that they are likely to face in their professional careers. Back at Illinois the ACM played a big role in this. I myself did some time apprenticing at NCSA and at an ISP, and the big win these days it would seem are the oodles of Open Source projects ready to put interested volunteers to work. And that’s why Google’s “Summer of Code” just sounds like a fantastically great idea.
Barack Obama stumps for his mayoral candidacy near Grand Army Plaza, Brooklyn.
Here in New York City, there is a Democrat running a seemingly futile campaign against Mike Bloomberg. As far as I can tell the campaign platform is that Bloomberg is ambitious and power-hungry, with delusions of grandeur. Which, from what I can tell, must surely be a ringing indictment of character for the Mayor of Lake Woebegone, MN.
Anyway, His Holiness recently passed through town, bestowing upon Bloomberg’s Democrat opponent the ringing laurel of endorsement that his colleague was “in the house” . . . somewhere . . . they didn’t have time to meet . . . and then President Obama was off to New Jersey to stump hard for the governor there.
This morning the lamp posts in my black neighborhood are adorned with photographs of Barack Obama, who would surely be an awesome mayor . . . of Chicago.
A comment I made on an e-mail thread that was well-received:
Intelligence is the product of basic brainpower, passion, and education. The brain is like a car engine: whether you have a little two-stroke or a V-12 you still aren’t going to get anywhere without some passion fuel, and the going will be really tough without some nice, smooth educational asphalt to help guide you to where you want to go.
Also, to those endlessly debating nature-versus-nurture, the answer is usually “both” . . . you start with a certain genetic baseline, then a childhood you don’t have much control over, and you make of your life what you will. Some folks receive a terrible start in life and are going to have it hard whatever they do, but most people have something they can work with, and with the right sort of ambition, positive attitude, and tenacity, can achieve some sort of success in life.
It feels like it has been longer, but at just over a month our apartment building has installed the window screens. Boy is it nice to have window screens! Of course, it would have been nicer if we had had the window screens during the really hot days of August, but I try not to gripe too much.
Of course, when the guy came by to install the window screens, he had to explain that management had instructed that screens not be installed on windows opening on to fire escapes. Since this is an idiotic request, and since I had explicitly requested window screens on those very same windows, he installed screens anyway, explaining that if the management company later insisted, he would have to remove them. I was happy to take the chance.
Later I mentioned the issue to our superintendent, who agreed that window screens do not belong next to fire escapes, and that is just one of the tragic outcomes of a city with so many complex rules governing it. I found that a bit unsettling.
Sometimes I find it hard to sleep at night, and my mind will churn with the great questions of our day, like “is there really a restriction against installing window screens on windows that open on to fire escapes in New York City?” Well, the wisdom of the Internet led me to the Rules of the City of New York, which explains in Chapter 15-10(k)(2):
Wire screens and storm windows. Wire screens are permitted on a door or window giving access to a fire-escape. Such screens may be of the rolling type, casement or of a type that slides vertically or horizontally in sections, providing that there shall be a clear unobstructed space two feet (2′) in width and two feet six inches (2′-6″) in height when the screens are opened and further provided that no such screen shall be subdivided with muntins or other dividing or separating bars into spaces less than two feet (2′) in width by two feet six inches (2′-6″) in height.
So yeah, window screens are completely legitimate. I don’t know if this contrary idea is actually with the management or some fanciful notion that has somehow been implanted into our superintendent, but should the issue need revisiting I can leverage my powers as Internet Man to defend the placement of these window screens for which I have long waited.
Download Speed: 12988 kbps (1623.5 KB/sec transfer rate)
Upload Speed: 2039 kbps (254.9 KB/sec transfer rate)
Twelve megabits?! That is a lot of bandwidth. So much so that my old 802.11b local wireless network will actually have less bandwidth than my uplink. Gadzooks!
And the cable comes with some HD channels to watch on our CRT, and a crude DVR which can record shows on multiple channels simultaneously. Not bad, I suppose, for a tad over $100/mo. Yeah, and free long distance, so I gotta start calling up relatives again.
This past Saturday one Muni train rear-ended another at the West Portal station, half a mile from my house. I decided to stay away from the scene, so as not to crowd an accident scene where authorities were attending to around fifty injuries.
I have ridden these trains a great deal. They run under computer control through the subway and then convert to manually-operated streetcar service at West Portal station. Apparently, after switching to manual control at West Portal station, the driver blacked out, so his train rolled down the track at 20-23 MPH, colliding with the train in front of it.
The Chronicle points out that there is a consideration of the practice that Muni has been allowing trains to switch out of automatic mode in the tunnel before entering West Portal station: by overriding the computer control, a second train can get in to the station platform, allowing passengers a chance to change trains. Had this train remained on automatic, it would not have been allowed into the station, and the accident would not have happened.
But, to me, the thought of switching to manual control early doesn’t sound like the problem. The problem appears to be that the driver blacked out while operating a train, possibly due to a diabetic condition. In this case it may have been a blessing that he blacked out at West Portal, where his train was stopped by the train before it. Had he blacked out outbound of west Portal, his L train could well have been rolling downhill on Taraval across 19th Avenue, with little more substantial than automobiles and pedestrians to slow its descent.
I spent a little time researching whether the Breda vehicles are equipped with a dead-man’s switch or not, but couldn’t find anything conclusive. I found some reference to dead-man’s switches being required on all vehicles after 2000, while the Bredas were introduced from 1995 to 2003. My hunch is that there is a dead-man’s switch or other vigilance device, but it may not kick in automatically: had the train been rolling down Taraval maybe the brakes would have kicked, but a few seconds pulling up to the platform at West Portal was enough time for an accident between vehicles operating with minimal distance.
I don’t know . . . NTSB gets to figure it all out. I’m just glad nobody got killed.
I rode an older Talgo in Spain, which was delayed due to a fire on the tracks ahead of us. They passed out soft drinks as we sat, and the Spaniards began playing music.
Virgin America has wireless access on its flights. For $13 you get enough bandwidth to video conference. It was fun.
I tried not to talk too much or too loudly from my seat. To be sure, everyone on Virgin America is pretty much immersed in their personal entertainment anyway so its not so much of a thing.
I’m flying to New York. Fortunately, I needn’t lose a work day because for $15, Virgin America has got me on the Internet!
It is zippy enough, and the latency is perfectly fine, so I am guessing it is a terrestrial network. VPN works fine, too.
http://www.speakeasy.net/speedtest/
Last Result:
Download Speed: 964 kbps (120.5 KB/sec transfer rate)
Upload Speed: 337 kbps (42.1 KB/sec transfer rate)
It is a bit cramped, for sure. Fortunately, my Dell Mini 10 arrived yesterday, with Ubuntu pre-installed. (Vendor Linux!) I hope to write more about that later, but this is a zippy little thing that is probably about as usable as you’re ever going to get in a coach class airplane seat. Yay!
Virgin claim to have power plugs at each seat. I haven’t seen mine, but given the battery life this thing claims, I shouldn’t need to plug in for the duration of this continental crossing.
That looks like . . . Nevada. No . . . we’re above US Route 6 in Utah. 2112 miles to go. That’s another thing I dig about Virgin America: an interactive map at the seat terminal, and an adjustable headrest, which Southwest lacks . . .
Well, this is a work day, better get back to working.
When I was younger and earned less money, I was encouraged to save. Put a little away each month into savings! That is a wonderful sentiment, but after meeting expenses, what is ever left over?
Some years back after hard times I took a new job, set up new bank accounts, and had my paychecks direct-deposited into Savings. Using the online banking interface I set up a monthly recurring transfer from savings to checking. I began saving money without effort.
It is hard, though, to start from nothing. A windfall helps. If you are me you don’t want to squander good fortune, which is what one naturally does without some sort of system. It is harder, though, to start from nothing.
When you have some savings, you see interest accumulating on the monthly statement. You’re getting money for free! Neat! Sure, it isn’t much but dang it is nice to get ahead of the curve. Times have been good these past years, my savings account has enough money in it to maintain my normal monthly allowance for 3-6 months. (And somewhat more than that if I am layed off and collect Unemployment Insurance.)
Once I have about six months worth of expenses saved up, I usually purchase a CD, which means the bank holds on to my money for a certain period of time, with a certain guaranteed return. Anything beyond six months of income I invest in stock market index funds (ETFs) because I have read that over a long enough time horizon, the stock market provides a better average rate of return than banks do. I can afford that risk, but it is nice to have that one pool of money in a CD coming back to me with a certain return at a certain date, in case things have gotten squirrelly.
While we are in the middle of a nasty recession, my own job is fairly secure. Last time I had savings enough to roll over, I decided to forego the currently-low interest rates and instead buy straight into an ETF. This was in March, when the market had pretty well bottomed out, so although my other stocks and 401(k)s and the like have lost value, that lot of stock purchase has grown in value by 40% and I can smile and claim to be a financial mastermind.
Oh yeah, those 401(k)s . . . and my employer’s stock-purchase program. Times are good: my salary is considerably more than my expenses, so lots of money is drained away from my paychecks into retirement savings, and another pool of capital, before it hits the reservoir of my savings account, which I then tap into my checking to meet expenses. A wiser person than me would manage investments such that one pool is for retirement, another for a house, or a college fund, or whatever . . . I’m not that clever, which is why contributing to 401(k)s is nice: that money is set aside by government mandate! My main financial ambition these days is to buy a house, probably after I get married. (That is a different topic.)
Another financial ambition I have been putting off is college money. For the one part, I don’t have kids of my own yet, and there’s no guarantee I ever will. But I am also an Uncle and a God-father: there are children I know whom I want to succeed . . . on the other hand my own experience is that after I was discharged from the Army, I was a non-dependent and eligible for a lot of financial aid, and I attended an inexpensive state school. It is nice if you can rely on your parents’ generation to help you through school, but I also know that “God bless the child that’s got his own.” That’s not to say I don’t want to help, only that I know that even if I can not help, a way can be found.
All the same, it is a challenge and a strain sometimes to live on a “fixed” income, when there is plenty of money that could be spent so easily. To be sure, I kind of enjoying saying “no” to fancy stuff, and driving around in my old car, making do with less, as generations before have done. But I also like to eat out for lunch, take my girl out, fly home for holidays, buy nice clothes, and support my hobbies. I’ll squeeze a little extra out of the piggy bank for the holidays, maybe a vacation, and other one-time expenses like maybe a new computer, and the occasional needs of broke relatives, but I am mostly tight-fisted. The past few months I have had a growing credit-card balance. I raised my “allowance” for the first time in years to pay it off quicker, but I’d rather endure the sting of interest rates that encourage me to say “no” more often than to raid the piggy bank . . . even when times are good, money is a hassle.
If things continue to go well, I like to think there will be a day in the future where I stand proudly in the newly-purchased house that is the fruit of my labors and discipline. Then I’ll have decades of mortgage payments to look forward to. I’ll feel even more nostalgia for the earlier lean times, when life was full of possibilities. But I will also have the thrill of knowing that my settled, successful, middle-class life offers possibilities of its own.
0-14:22 djh@ratchet ~> ls -lh mail/archive-*
-rw------- 1 djh djh 18M Jun 14 17:17 mail/archive-1997
-rw------- 1 djh djh 29M Jun 14 17:16 mail/archive-1998
-rw------- 1 djh djh 18M Jun 14 17:13 mail/archive-1999
-rw------- 1 djh djh 26M Jun 14 17:13 mail/archive-2000
-rw------- 1 djh djh 25M Jun 14 17:11 mail/archive-2001
-rw------- 1 djh djh 18M Jun 17 2004 mail/archive-2002
-rw------- 1 djh djh 25M Jun 14 17:09 mail/archive-2003
-rw------- 1 djh djh 15M Jun 14 17:08 mail/archive-2004
-rw------- 1 djh djh 63M Jun 14 17:05 mail/archive-2005
-rw------- 1 djh djh 202M Jun 14 16:54 mail/archive-2006
-rw------- 1 djh djh 362M Jun 14 18:06 mail/archive-2007
-rw------- 1 djh djh 202M Jun 14 19:17 mail/archive-2008
I recently went through, and using mutt’s date-range filters, revised my e-mail archives, most notably saving messages stored in Gmail into these annual mbox archives.
I think it was around late 2005 that I started using Flickr, so the ramp up in sizes is pictures being e-mailed from mobile devices.
I delete most e-mail that I receive, but I pretty much archive all personal correspondence, and anything I send.
Also, I was disappointed that when I tried to copy archival messages into Gmail, via IMAP, Gmail would interpret the message date as the date it was copied in to the archive, and not the date the messages was created. That was disappointing. I like Gmail’s search capability, so it would have been nice to give it access to my corpus.
Mainly though, I dig Gmail’s interface, especially while traveling. But I recently got mutt running again because it is a much faster way to step through an Inbox and delete / reply / Archive than clicky click web interface. If only I could give it access to my Gmail contacts . . .
You may think you speak “Standard English straight out of the dictionary” but when you step away from the Great Lakes you get asked annoying questions like “Are you from Wisconsin?” or “Are you from Chicago?” Chances are you call carbonated drinks “pop.”
Back in 2005, Marissa Mayer, VP of Search Products & User Experience at Google, stated:
“There will not be crazy, flashy, graphical doodads flying and popping up all over the Google site. Ever.”
Apparently Google lacks the same sort of respect for the web sites of its AdSense customers, because they started putting animated advertising on my site.
“Say it aint so.”
According to Google’s “self-service tech support” there is no way to turn them off, short of reverting to text-only ads.
This is wrong on a few levels. And I’m not sure if Google is just being its regular sloppy self or if they are getting desperate for revenue such that they’re finding more wiggle room in the “don’t be evil” philosophy.
Whatever is going on down in Mountain View, I will just get along without the $10/mo or so I’ve gotten from AdSense revenue.
I hate spam at least as much as the next guy. Heck, fighting spam is my day job. But I just gotta say, this little guy who made it through the Gmail spam filter this morning just made me smile: