And so but anyway, did I ever tell you about my most humiliating experience as a skilled and successful computer programmer?
And so but anyway, did I ever tell you about my most humiliating experience as a skilled and successful computer programmer?
@GeePawHill Delightful thread -- and you lived to laugh about it! Also happy at the mention of Canadian icebreakers. My grandpa was a merchant sea captain and was responsible for delivering a much-needed icebreaker abroad during the war (to Russia, maybe?). Got a medal for it and they used his silhouette in a poster. Bc when you need an icebreaker, even when lots else is going on, you NEED an ICEBREAKER. 😸
@GeePawHill what a great story! I'll be using it to teach juniors about fun... And talking to your users before even planning anything 😉
@GeePawHill Thank you for the story!
@GeePawHill
Fantastic story!
Another way of summing up the issue: When doing data analysis, get real world data as quickly as possible
What an awesome story. And congrats on helping an icebreaker momentarily attain lightspeed!
@GeePawHill This is a great story. Thanks for sharing.
@GeePawHill wonderful story, thanks! 😃
@GeePawHill a good read, you made my lunch break, thanks!
@GeePawHill A great story, and well told. Thank you for this!
Canada has serious ports that are, well, kinda up-north-ish. In order to get ships in to those ports, which include some significant manufacturing and other supplies, one must use a kind of ship called an icebreaker.
Icebreakers are, basically, a big-assed razorblade at the prow, and big-assed engines at the stern.
Being an icebreaker captain is one of the most stressful jobs you can imagine.
You're working in harsh weather. You can't see shit. You have these client ships that are very slow and very large and very expensive. If you even *touch* one of the client ships, that's $3m, minimum, instantly.
An icebreaker would go right through an oil tanker, and come out the other side of it with a broken radar antenna, covered in oil.
And the icebreaker runs in front of the client breaking ice so it can get where it's going.
There are three main modern tools you can use, versus the old days: You have a radar system, you have a speed log, and you have GPS.
All of those tools have serial outputs on them, good ol' RS-232.
So here was the concept: take a PC and make a custom "ice breaking" UI, taking input from the three devices, and rendering it in such a fashion that the icebreaker skipper could get all the info in one place.
And I was sub-contracted to do that. It was about a six month long project. I wrote an entire windowing system on top of DOS to use VGA to show the display.
(I'm a good fucking programmer, and that's not the only time I've written a graphical UI from scratch.)
And. A comical note: about six weeks before the project was due, my hard drive died. And. My backup drive died.
All I had were some two-month old printouts.
@GeePawHill I’m fairly sure Fred Brooks didn’t mean that when he said “Plan to throw one away”, but whatever floats your boat… 🤷♂️😉
@thirstybear Yeah, he wasn't talking about dead drives. :)
Fun, fun, fun!😉
So, for my juniors, when I tell you "typing is not the bottleneck", I know what I'm fucking talking about.
It took me a couple of weeks to re-create 4 months worth of work. If I had to bet, I'd bet my second edition was *better* than the edition I lost.
So we come down to the day, and I am ready.
@GeePawHill
It's a terrible thing to experience when it happens, but this is exactly my experience too.
And it's probably a variant on Fred Brook's "throw one away".
Coding is primarily a way to come to understand the problem, and so to understand what the solution/program should look like.
Once you know, the typing usually isn't the bottleneck.
First, I had to go before the admiral's board of the Canadian Coast Guard and give a demo.
*Second* comical note: the fucking app froze in the middle of the demo, and w/o in any way acknowledging this, I used it as an opportunity to demonstrate that even if we lost power, the app would restart correctly.
Yep. That's right. I rebooted the computer and startup.bat did its magic.
Anyway, the admiral's board is like, "cool, let's try it in the field."
So I fly to Newfoundland, and I get on an actual icebreaker ship.
Oh my people, it was so fucking cool. Icebreakers aren't gigantic, like container ships or tanker ships, but they're *big*, just the same.
And the Canadian Coast Guard is a commercial service, not a military one, so even tho they spend months at sea, they take very good care of their sailors, so, broadly speaking, the place was all modern cons.
(You still have to take navy showers, but other than that.)
Now. I was afraid of sea sickness. I'd been on fishing trips on the open ocean, and had been very sick. So I wore a patch.
You may not know this, but there are still Royal Navy traditions practiced aboard ships.
One of the important ones: there's always a comedy officer. Someone whose job it is to be funny, to make sailors smile.
You think that's silly, but sometimes these people are on board these ships for a *year*. It is important that they be amused.
And the other Royal Navy tradition: Captains are inviolate commanders, at all times in all settings. They present "serious". They eat and drink separately from the crew. They have only three or four other officers that they ever get to, comparatively, relax with.
So, you have a comedy officer, and you have a captain, and the captain simply looks the other way when the comedy officer is up to their hijinks.
He *knows* the hijinks. He *sees* the hijinks. But he pretends not to.
@[email protected] Fun fact: my mother has expert card shuffling skills because as the daughter of a merchant navy captain she was one of the only people the sailors trusted to deal for money games in or out of port (she would have been around 10 at the time and didn't normally travel with the ship). The captain, of course, couldn't be involved but the crew preferred having relatives of the captain run the game than the local casino.