I just got a really interesting message last night from my old college roommate Dan. He's got a couple of kids now, and his son Alexander is learning Java, because he plans to take a programming course this summer to learn programming for Minecraft. Obviously, I can understand his motives. Aside from my own experience with the game, my godson Sean, who's the same age as Alexander, is a Minecraft fiend, and may be looking into similar esoteric matters.
So Dan set him up with NetBeans on his Mac, which is a good choice, though I prefer Eclipse myself. And the kid is just going to town with it, apparently. The thing that concerns Dan is, he refuses any kind of formal instruction in the language or object-oriented development in general, or even reading one of the many books about programming Java. He just watches various YouTube videos, and Googles for snippets of code that he copies and pastes, trying to come up with something that does what he wants. To Dan, who has more formal computer-science education than I do (he went up to UC Davis for grad school after we graduated from UCSB), this is somewhat dismaying. It even seems a little haphazard to me.
Yet, if you look back on it, is this really that much different from the way people like Dan and me first learned programming? Of course, we were working with much less-powerful machines and tools; I had a TI-99/4A back in those days, and I was lucky enough to have the (expensive!) Peripheral Expansion Box with the disk drive (all of 90K of storage on a single-sided 5-1/4" floppy disk!) and the 32K memory expansion card, for a grand total of 48K of RAM. And the most powerful language I was using was the Extended BASIC cartridge. As for outside information resources, all I had was the occasional book and a subscription to an early computer magazine. I didn't even have a modem to dial into BBSs; I think my parents were afraid I'd turn into a system cracker ala David Lightman in WarGames. And, needless to say, I'd never even heard of the Internet in those days. So I persevered, spending long hours at the keyboard, scrawling out lines of BASIC in endless pages in notebooks, tracing out sprite designs on graph paper left over from my Dungeons & Dragons gaming and converting those patterns to hex numbers to put in source code, patiently organizing sound-chip calls (such-and-such a frequency, at such-and-such a duration, for each individual note, to play tunes), and impressing my friends with the results whenever they came over to see. I had no notion of even structured programming, let alone more modern and esoteric techniques; I just did what worked. And it managed to hold my interest long enough to get me to the University, where I started really tearing into code development. (Even there, I was still learning. I think of all the computer time I blew through on an old PDP-11/70 they had there, creating code for an adventure-type game, because I hadn't yet learned how to properly design a lexical analyzer.)
In the modern age, of course, it's much easier to get started. Since he has a Mac, Alexander already has a Unix system much more powerful than anything Dan and I were using in college. All the tools he needs to start programming are freely available. Thanks to the open-source movement, there is a plethora of code out there he can use, learn from, and improve on, all of it easily findable via Google. And there are tutorials, both printed and audio-visual, right at his fingertips. Yet, at the same time, there's much less motivation to actually learn programming. Computers these days do many useful things right out of the box, as opposed to my TI, which popped up a title screen, then a menu, then just the prompt "TI BASIC READY" and a blinking cursor. Most kids these days don't seem to get beyond game-playing, Microsoft Office, and the browser, and, even in the schools, "computer classes" have been limited to just learning how to use computers, rather than program them. (That was, in fact, the inspiration for the Raspberry Pi Foundation, which designed its $35 Linux machine for kids to learn programming on. Of course, a "real" computer that cheap lends itself to all sorts of other uses.) So Alexander is already noteworthy among kids for getting as far as he has. Still, if he decides to actually go into the field, I suspect he'll have a lot of bad habits he'll have to unlearn. That's not necessarily a problem; for many years, Linus Torvalds was able to develop, and coordinate the development of, his famous kernel without even proper version control. (And he wound up writing that himself, too.) Talent can substitute for proper technique, at least, up to a point.
For Dan, this is a great opportunity for father-son bonding, much as dads in earlier years would help their sons with model airplanes, or play catch with them out in the yard. At least once, Dan speaks of being involved in an intense debugging session with his son, only to have his wife and daughter get home and be dismayed because they hadn't started dinner yet. (Hey, ask Sabrina how hard it is to drag me away from the console when I've been coding!) And he was able to impress his son with a simple recursive function that calculated the Fibonacci series, something we all learned pretty early on in our programming education. I suspect, though, that soon enough, it'll be Alexander that's impressing Dan, as he starts moving into areas Dan hasn't dealt with. Something tells me, though, that he'll turn out all right.
And as I hung up the phone it occurred to me,
He'd grown up just like me,
My boy was just like me
Harry Chapin, "Cat's In The Cradle," 1974
I may never get around to doing a full report on our vacation that we took in July, but I do want to write about a few things from that trip...especially the second day, when we visited the Kansas Cosmosphere in Hutchinson, KS. And, if you're a space buff like me, you need to visit it. Let's just say it's everything I hoped it would be...and more.
When we got there, it was pretty early, so the foyer (dominated by an SR-71 Blackbird and a mock-up of the side of the Shuttle Endeavour) was pretty empty. When I paid for our "All-Day Mission Passes," they were even nice enough to scrounge up a motor scooter for Sabrina, not unlike the carts she rides through the aisles of Walmart, so she could enjoy everything, too. We took the elevator downstairs to The Hall of Space, which covers aspects of spaceflight from the German V-1 and V-2 programs up through to the present day, with examples of real hardware or very-exacting replicas all along the way...including many examples of Soviet hardware, such as an unflown backup for the original Sputnik satellite and original Vostok and Voskhod capsules. American hardware is also well-represented, with such items as Gus Grissom's Liberty Bell 7 capsule (dredged up from the ocean floor and painstakingly restored), the Gemini X capsule, an honest-to-God Titan II booster rising majestically into the Kansas sky in an outdoor display, and the Odyssey command module from Apollo 13. That area, I think, impressed me the most, and was about where I started to inwardly lose my shit; aside from looking right into Odyssey, past the control panel and seats into the lower equipment bay, I entered one of the original Apollo "white rooms," complete with the signature of longtime pad leader Gunther Wendt ("I vonder vhere Gunther Wendt?", and sat at some of the original Mission Control consoles...It felt like I was watching The Right Stuff and Apollo 13 all over again. Unlike most of the people walking through these halls, I knew what I was looking at. It really brought home to me how much we've accomplished...and how much we've lost as short-sighted politicians continually prioritize other things ahead of the dreams of humanity.
The cheeseburgers in the Lunar Port food court were surprisingly good, at least as good as some I'd eaten in Hana on Maui. We saw the Tornado Alley IMAX movie, in a domed theater like that back at the Reuben H. Fleet Space Theatre in San Diego, and it was most impressive; Sabrina certainly liked it. (Featuring narration by Bill Paxton!) She also got a kick out of the planetarium show, demonstrating the night sky as viewed in all seasons from Hutchinson, which was narrated with plenty of good humor and leavened with some nice pop music clips, including Clint Black's rendition of Monty Python's "Galaxy Song." Then, in "Dr. Goddard's Lab," we got some impressive explanations and live demonstrations of rocket technology, delivered with all the zeal of a Mythbusters episode by a young man who clearly has a lot of knowledge of, and love for, the material. I spent entirely too much on souvenirs and gifts in the Cargo Bay gift shop, which was totally worth it, and nearly ran my iPhone's batteries dead taking about half a gigabyte worth of pictures. All mission objectives complete!
I can't even begin to describe everything there. You need to go there and see for yourself. But, until then, I've assembled an extensive album of pictures, on Facebook and annotated for your enlightenment, that you can gawk at. Thatisall.
April 4, 2012
I'm still not quite sure how it happened. One minute, I was cruising up Colorado Boulevard, on my way to King Soopers to fetch a sandwich for Sabrina after getting off work. The next, the Ford Escape was stopped at the light at Amherst in front of me. I jammed the brakes to the floor, but not even the anti-lock braking system could keep me from striking the Escape.
The Saturn jerked to a stop; I could see the hood folded up and in on itself, but no other damage was apparent from where I sat, and the air bags, significantly, had not fired. I wasn't injured...but the car certainly was.
The first thoughts that went through my head were, "No, no, no, no, no..." Little did I know that, a week later, I would wind up, perhaps, better than I deserved to.[Read More]
Sabrina has a very nice article up about pets today, in which she talks about her cat Deamon, my late cat Miss Star Kitty, and our present cat, Her Serene Highness, Princess Penelope Ponderosa Pollyanna Peachfuzz ("Penny" to her hoomans). But "pets" doesn't necessarily mean "dogs" or "cats." Let me tell you about some of the non-traditional companion animals our family has had.[Read More]
"Sheila needs $60 to be able to see her cardiologist," said Sabrina, turning to me, having muted the microphone that was sending her words to Sheila via Skype. "There's no way they can get that money. Is there any way you--"
I thought for a minute, sipping at the remnants of the large Pepsi I'd brought home from Subway. "Don't we have to go out and look at Walmart for your books? What day do they come out?"
"Well, it's the 29th. Tell Sheila we'll be coming by on our way up to Westminster, to pick up that computer from her that I'm going to be working on." The machine had lost its video twice already, and probably needed a new motherboard at this point. Which meant long, tedious hours to reinstall the operating system, but not for a couple days yet at least. "And then you might want to get dressed."
"I'll wear my new dress," Sabrina said, referring to the dress that she had literally just received from HolyClothing.com, after I'd placed the order over two weeks ago. It had to be shipped in from Germany, which accounted for the delay. "Sheila wants to see it."
She got ready as I slipped into the computer room, raised the lid on the Cr-48, and set up a transaction or two. Not long after I finished, we were off.
I pulled in at the Creekside King Soopers on Leetsdale, because I knew there they had a FirstBank ATM where I could score the needful. While I was there, I decided to toss in another wrinkle. I rushed over to the aisle with the greeting cards and flipped through the "Get Well Soon" cards until I found a good, funny one, which I paid for at the self-scan registers. Back in the car, Sabrina inscribed the card, then we tucked the three crisp $20s inside it before she sealed it up and wrote "Sheila" on the envelope, underlining it several times.
Of course, I went through downtown to get to the express lanes north, then carefully merged right to exit at Thornton Parkway and the drive to Sheila's place. To say she was surprised with the card would be an understatement.
. . .
The computer tower in the trunk was accompanied by several bags from the Westminster Walmart. We were taking it easy on the way back, driving down Sheridan Boulevard because we'd seen something going on on I-25 on the way up there, with only one lane getting by in the southbound direction. (Accident? Construction? No way to tell.) I had stopped at another Walmart further south, almost at US-36, to look for something I couldn't find at the first one. As I returned to the car empty-handed, I heard Sabrina talking on the phone. Whatever it was, it sounded serious.
"Sweetheart," she said, pulling the iPhone away from her face for a moment. "Jasmine is stuck over at the Walgreen's on Leetsdale. You know, the one where we get our meds? You think we can go get her and bring her back up to Sheila's place?"
She quickly explained. Jasmine was a friend of Sheila's who was eight months pregnant and had recently been kicked out of her apartment; she'd be staying with Sheila for a few days, then going home to her parents for a time. Somehow, she was stranded down there, and no one else Sheila knew could get there to give her a ride.
"All right," I said. "I'm headed that way double-time." As I said so, I cut south on Sheridan to pick up the US-36 East onramp, headed for I-25 and a quick trip towards home.
En route, Sabrina got a phone call which, confusingly, said "Portland, ME" on the caller ID display. The call turned out to be from Jasmine herself, who had made her way to a nearby friend's place. She gave us the apartment complex name and unit number, and I had Sabrina Google it to get a definitive address and get a proper fix on it with the map. In the meantime, the route there was much like the route home, so it was no trick to get there quickly.
At the destination apartment complex, we were met by Jasmine and her friend, and we loaded Jasmine's possessions into the trunk and back seat. Seeing how crowded she was, I made a quick stop by our home first, offloading the computer and Walmart bags and adjusting the rest of the load so she could have a more comfortable ride. Then off we went to Sheila's again.
Once we got there, I helped offload Jasmine's belongings, helped get enough of her bedding inside to sleep (Sheila's son had graciously offered Jasmine the use of his room), and even got her charger plugged in to provide some power to her nearly-dead smartphone. She was certainly in the best of hands when Sabrina and I left once more to head for home.
. . .
The way I look at it, I've accumulated a good amount of good karma this evening, first by helping Sheila, then by helping Jasmine. That's good. I have a feeling that, one day, I'm going to need all the good karma I can get, and then some.