Oh, so being a programmer is *still* like that?

compile

It would appear that things haven’t changed much from the days of programming in Fortran, PL/1, COBOL, and JCL  in the IBM environment.

I share with you a poem by Dan Nessett. I have no idea who this brilliant man is, but he has written some classic DP humor. This one was collected in 1980; old-school programmers will probably relate more than today’s OOP whizkids, but there may be echoes that even the newer generation can relate to.

“I Was Wondering About This Error Message,” I said

Beneath my stare began to blur
10,000 lines of print.
Buried alive by 0C5[1]
Which gave not clue nor hint.

Up from my chair, I neared the lair
Branded “Consultants’ Room.
With puzzled gaze I paraphrased
My mind’s perplexing gloom.

“That bilious sty of wire,” said I,
“Has dumped its DUMP on me.
I cannot guess where in that mess
I’ll find the missing key.”

“The clues are everywhere,” he said.
And I began to think
Of : “Water, water everywhere
But not a drop to drink.”

“Aha!” said he, “Your DCB
Has lost BUFL.
MSHI is far to high
And BLKSIZE looks not well.”

“BLDL in this case will
Cause 0C5 or 4.
To BSP hex ‘503’
Will backspace low cost store.”

“You FREEMAIN twice and GETMAIN once’
This cannot be advised.
And all of this, I’m positive
Has caused your 0C5.”

My jaw had slackened to my knees;
A fly flew in my mouth.
I gathered up my SYSUDUMP
And crawled off in a slouch.

Back to my desk; I placed to rest
My chin upon my hand.
My weary eyes seemed quite surprised
To gaze on print again.

Beneath my stare began to blur
10,000 lines of print.
Buried alive by 0C5
Which gave not clue nor hint.

-Dan Nessett

The Old Wolf has spoken.


[1] 0c5 and 0c4 are basically the IBM compilation error codes that mean “You screwed up big-time somewhere, and I have no idea what’s wrong.”

2.1.3 ABEND CODE 0C4
1. ERROR ID: none
2. DESCRIPTION: This is a storage protection violation generally caused by your program trying to STORE data in memory that is not allocated for your use.
3. CORRECTIVE PROCEDURE: Make sure any subscripts used do not exceed the boundary specified. Correct all bad addresses in a store-type statement.

2.1.4 ABEND CODE 0C5
1. ERROR ID: none
2. DESCRIPTION: The computer tried to ADDRESS an area in a non-existent part of memory (beyond the bounds of our installation memory).
3. CORRECTIVE PROCEDURE: Check for improper subscripts and for inconsistent lists for subprograms.

This reminds me of my very first FORTRAN programming class in 1969, working on a Univac 1108. The instructor told us about various compilation errors we could get, and what they meant. He went on to say that there was one high-level error we were unlikely to see, because in essence it meant that we were smarter than the computer: “unresolvable ambiguity in source code” or some such thing. Guess what the machine gave me when I submitted my very first deck?

The IBM 702 and the Univac 1

?????????????????????????????????????????????????????????????

 

The IBM 702 was a business answer to the Univac 1 computer, which was the first mainframe computer which used magnetic tapes. The 702, using Williams Tubes (CRT Memory) had some technical problems and did not last long on the market, being replaced by the 705, which used magnetic core memory instead.

Early Laptop

 

The Eckert-Mauchly Univac 1, 1951. 1000 words of 12 characters. $159,000.00.

The Old Wolf has spoken.

Someone is an Excel freak.

Someone spent a long time doing this. It rather blew my mind. I thought I’d share it.

  1. Download this file and open it with Microsoft Excel. (225K, scanned with Microsoft Security Essentials – Virus-free, contains no macros)
  2. Select all cells [Press CTRL+A]
  3. Clear cell borders [From the Format menu, select “cells”, choose the “border” tab and click “none”]
  4. Set row height to 15.33 [From the Format menu, select “row” and “height”, and 15.33]
  5. Set column width to 2.4 [From the Format menu, select “column” and “width” and enter 2.4]
  6. Click  in the picture to display the actual colors.
  7. Admire the result. Brilliant.
  8. If for some reason you’re not able seeing what looks like a beautiful Indian village scene, click here to see the result.

The Old Wolf has spoken.

“The Flash Plugin has Crashed”

It’s a common enough scenario. You experience a problem on the computer. You call the hardware vendor, who blames the software. You call the software vendor, who blames the hardware. In each case, you’re dealing with a chaiwallah in India who has nothing to go on but a script targeted for the least-competent computer user in the universe, and you waste precious time in order to get no answers. Which explains this XKCD comic. “Dammit” is right.

My problem: Flash 11.5.502.146 and Firefox 18.0.1 (both the latest versions) are incompatible, and the flash plugin crashes every ten minutes, with a cute little “submit a crash report” link. I’d be curious to know where those reports go, and if anyone cares, because the problem has been going on for a long time. For me, the problem began with Firefox 16 and have continued to date. Mozilla blames Adobe’s Flash 11.3 update, and the fora appear to bear out the fact that there are problems in Flash that Mozilla can do nothing about, and Adobe appears to be unwilling to fix, given the current version numbers.

Today I chatted with Adobe’s customer support, and you can see the result below:


Thank you for choosing Adobe. A representative will be with you shortly. Your estimated wait time is 2 minute(s) and 30 second(s) or longer as there are 1 customer(s) in line ahead of you.

You are now chatting with Vikas.

Vikas: Hello. Welcome to Adobe Technical Support. How may I assist you?

Me: I would like to know when Adobe will resolve its issues with Mozilla. This has been going on for over a year now. I’m using Flash – 11.5.502.146 and Firefox – 18.0.1, and the flash plugin crashes constantly. I have visited every online forum I can find, and everything points to the fact that the problem lies with Adobe’s refusal to fix certain bugs, and nothing to do with Firefox. It’s depressing, and I want it fixed.

Vikas: I can understand your concern. There could be multiple reasons for this error, we need to look into the issue and fix it. However,if you need our assistance then you need to purchase a support contract for $39. As the support for flash player or any other free software is paid.

Me: I don’t want to pay a fee, and I don’t want support to take me through a whole lot of idiot-checks only to find out in the end that the problem is the same one everyone knows about. I simply want the product fixed. Can you give me assurances that the problem is being addressed by Adobe, and a date when the fix will be implemented?

Vikas: I really apologize Chris. If you dont wish to pay I can escalate your feedback to our engineering team so that they can look into the issue. However, cannot assure you the time frame.

Me: Is Adobe aware of the issue, and are they working on it?

Vikas: We work on every feedback provided to us by the customers. We are currently working on the issue. As explained that cannot assure you the time frame.

Me: Thank you for your time. I appreciate your being there to answer questions.


I do my best to be polite to phone agents because they’re just trying to make a buck like me, but you can see that the corporate script they have to work with is hqiz. Even if I had paid the $39.00 fee (an insult!), the result is fore-ordained: “Is your computer plugged in? Have you rebooted? I suggest you re-install Windows 7…”

What bothers me the most is the insouciance. When companies get so large that their budgets move into the billions of dollars, some problems are deemed not worth fixing, and users are nothing more than dollar signs, some of which can be sacrificed as collateral damage in the pursuit of even greater profits elsewhere. It can be downright depressing.

I’m getting close to my only real solution at this point – ditching Mozilla altogether. I have it configured just the way I like it – no ads, no trackers, and a number of very useful add-ons, which are the main factors which keep me hanging around. Chrome has no such problems, and my patience is almost at an end. I’m surprised the Mozilla community has been unable to bring any pressure to bear on Adobe, Mogg knows they’re big enough.

The Old Wolf has whined enough for now.

Warning: Facebook’s Mobile Photo Sharing

With little or no fanfare (as usual), a recent change to Facebook’s iPhone and Android mobile apps will forever change the way people share photos and the way Facebook finds out where you are and what you are doing.

Here’s a screen grab from my Android phone, just a few minutes ago.

DoNotClick

With an innocent-looking “Start Now” button and the very misleading[1] insinuation that your friends are doing this, Facebook is trying to corral you into sharing every photo you take with your mobile device onto its cloud-based, minable storage. Just two taps, and the last 20 photos you have taken with your phone or tablet, and every image thereafter, will be automatically uploaded to Facebook’s cloud storage. Including photos that you never, ever ever ever ever ever want anyone to see. What kinds of photos those might be I will leave up to your individual imaginations.

Be aware of these things:

  1. Your photos will only be visible to others if you explicitly share them
  2. Whether shared or not, Facebook will be able to mine your geolocation data (if you have not purposely disabled that feature), meaning they will have a good idea of where you are at any given time, what stores you are close to, and what ads they wish you to see.
  3. Given the ability of Google to identify photos (think of Google’s image search or Google Goggles), along with facial-recognition software, Facebook would very feasibly have the ability to automatically identify and tag your friends in photos that get sent to its database. You may have to authorize those tags to be visible, but doing that for you without your permission seems to me a gross violation of privacy.

You can read more about this over at TechCrunch. I’m not going to insist you “like and share” this, because I think that’s obnoxious – but I felt that folks should know about this new “feature.”

The Old Wolf has spoken.


[1] Yes, these three friends do share photos on Facebook. They are probably not, however, using this “insta-share” feature.

How Software Companies Die

Almost 20 years on from when this was originally written by Orson Scott Card – one of my favorite writers, for what it’s worth – the hackneyed stereotype of programmers and hackers as brilliant but maladjusted Asperger-types persists… largely because there remains an element of truth in it, witness the smashing success of “Big Bang Theory.”

However, what remains true without question is how management and marketing continues to operate in the 21st century. Here then, for your gratuitous enjoyment, is a reprint from the March, 1995 issue of “Windows Sources.”

How Software Companies Die

By: Orson Scott Card

The environment that nurtures creative programmers kills management and marketing types – and vice versa. Programming is the Great Game. It consumes you, body and soul. When you’re caught up in it, nothing else matters. When you emerge into daylight, you might well discover that you’re a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. But you don’t care, because your program runs, and the code is fast and clever and tight. You won.

You’re aware that some people think you’re a nerd. So what? They’re not players. They’ve never jousted with Windows or gone hand to hand with DOS. To them C++ is a decent grade, almost a B – not a language. They barely exist. Like soldiers or artists, you don’t care about the opinions of civilians. You’re building something intricate and fine. They’ll never understand it.

BEEKEEPING

Here’s the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. You can’t exactly communicate with them, but you can get them to swarm in one place and when they’re not looking, you can carry off the honey.

You keep these bees from stinging by paying them money. More money than they know what to do with. But that’s less than you might think. You see, all these programmers keep hearing their fathers’ voices in their heads saying “When are you going to join the real world?” All you have to pay them is enough money that they can answer (also in their heads) “Geez, Dad, I’m making more than you.” On average, this is cheap.

And you get them to stay in the hive by giving them other coders to swarm with. The only person whose praise matters is another programmer. Less-talented programmers will idolize them; evenly matched ones will challenge and goad one another; and if you want to get a good swarm, you make sure that you have at least one certified genius coder that they can all look up to, even if he glances at other people’s code only long enough to sneer at it.

He’s a Player, thinks the junior programmer. He looked at my code. That is enough. If a software company provides such a hive, the coders will give up sleep, love, health, and clean laundry, while the company keeps the bulk of the money.

OUT OF CONTROL

Here’s the problem that ends up killing company after company. All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Either he cashes out, or he brings in management types who end up driving him out, or he changes and becomes a management type himself. One way or another, marketers get control.

But…control of what? Instead of finding assembly lines of productive workers, they quickly discover that their product is produced by utterly unpredictable, uncooperative, disobedient, and worst of all, unattractive people who resist all attempts at management. Put them on a time clock, dress them in suits, and they become sullen and start sabotaging the product. Worst of all, you can sense that they are making fun of you with every word they say.

SMOKED OUT

The shock is greater for the coder, though. He suddenly finds that alien creatures control his life. Meetings, Schedules, Reports. And now someone demands that he PLAN all his programming and then stick to the plan, never improving, never tweaking, and never, never touching some other team’s code. The lousy young programmer who once worshipped him is now his tyrannical boss, a position he got because he played golf with some sphincter in a suit.

The hive has been ruined. The best coders leave. And the marketers, comfortable now because they’re surrounded by power neckties and they have things under control, are baffled that each new iteration of their software loses market share as the code bloats and the bugs proliferate. Got to get some better packaging. Yeah, that’s it.


OldWolf(Spoken) = 1;