It was a Windows / VB / MFC shop with a really horrorshaw case of very bad code and unclear mission, one of the few real life cases of Cargo Cult Programming that I've encountered. Some of the people there were good, but they were mired in a bunch of people's work who, ah . . . weren't that good. A classic case of "Okay, the VCs bought the song and dance, and we hired some bodies at the job fair, now what?"
I won't mention (much) the shrink they brought in to interview the engineering staff, or the VC fight, or the guy who swore at me when he was interviewing (then later resubmitted his resume under another name), or the build staff whose jobs I eliminated with a makefile (they were literally copying files around by hand for each release).
I once left a company that tried to reduce my final check by "negative sick hours" or something like that. Legally they were allowed to do this. However...
I politely pointed out that I had gotten sick as a direct result of working 80+ hour weeks for them, that they had gotten a good deal out of it, and that reducing my check was unacceptable. I was firm, but very polite.
I waited in the lobby for 30 minutes and they came back with a check for the full amount.
If they hadn't . . . well, I had no real plans. Probably would have told all the employees that I knew "socially" there, and then just left it alone.
[Earlier the previous day, the CEO of the company pulled me off to a lunch meeting where he started bawling and tried to get me to stay. A good place to be out of; their "technology" could have been replaced by 1,000 lines of Perl]
Once, just/once/, I wanted to see the puppy save the ship.
[That very first scene with the "bio gel" set the tone for the whole series; shallow and uninventive. Backed ourselves into an unreconcilable plot corner again? No problem! Just whip out the goddamned time machine and hit "undo" a couple more times... sheesh]
Who needs documentation? Just wade in with something like Scrum. Most documentation is out of date anyway (about a month after you're coding, it's useless).
Go read Chaisson's book _The Hubble Wars_. Many of the technical problems that the Hubble Space Telescope had (wiggling solar masts, various areas of electromagnetic interference) had already been encountered by some of the black satellite programs, only the people in those programs couldn't say anything because their projects were classified. Not even a hint of "you might want to beef up those struts." Took a shuttle mission to fix that.
HST science was delayed *years* and costs skyrocketed because of this bogosity. This attitude of the military "blank check" projects really pisses me off and makes me want to stop paying for their projects. (Thus, letters to my senators and representatives).
Just about anything to replace the overly complex, badly designed and horribly insecure piece of hammered rhinocerous poop that is SNMP (which is not simple, nor really a management protocol) sounds great to me.
Even if I have to pay money for it. Have you priced commercial SNMP tools? Good God.
The MMU wasn't used to aid NewtonScript's garbage collection; that was a fairly pedestrian (but effective) mark-sweep-and-compact algorithm, using memmove equivalents to shuffle bytes around. NewtonScript memory was just a big hunk of heap.
The fine-grained MMU *did* let the OS get away with many fewer pages than it would otherwise have needed (1K granularity of protection -vs- 4K, plus some -- ahem -- clever page sharing basically saved the platform in 512K of RAM). There was a similar page-sharing deal for patching the ROM. The MMU was also used to efficiently do safe "cross-domain" calls for various platform services, such as the object store).
Ha. Remember when stuff that ran on IBM mainframes were "Problem programs?" (Well, maybe only the stuff in user mode...).
I have respect for ...
on
Latest SP2 News
·
· Score: 5, Insightful
I have respect for folks who can find buffer-overruns, heap-mangling attacks and so forth. These people are smart, hard-working and diligent. They give evil a good name.
I have nothing but contempt for someone with an axe to grind whose only response is the "exploit" in the linked article. It's pretty lame. Come back when you've written enough of your own code to present an attack surface.:-/
Like all tools, stored procedures can be used to good effect, or they can be very, very evil. In my experience, projects with people who "knee-jerk" to stored procedures often wind up as train-wrecks, with the engineers begging for mercy-killing. Sure, you can write crap in any language. But it seems that some languages attract the crap writers more than others.
On one project I converted a stored procedure that was an undebuggable mass of 300 lines that took 18 hours to run, and recoded it in Java, using in-memory operations; it ran in a few minutes. Tried to explain that to the developer who wrote it, got a stoney face and some shrugs. Guess who doesn't work there any more?
An old 10M (this will date me) hard disk at work was on its last legs. I had always wanted to see a head crash, so we opened up the case and brought over one of the marketing folks, a notorious smoker, and had him blow cigarette smoke directly on the disk head. Smoke particles are supposed to be 10x larger than the distance between the flying head and the platter. There should have been a glorious kaboom. Or something.
Nada. It spun away, and happily booted and stuff.
We considered getting Jack, our CEO, to blow his cigar smoke at it, but he was a mean bastard and would probably have asked us "Why aren't you working?" So...
Okay, little disk drive. We poked the disk head with a pencil, driving it into the platter. Happy. We dropped the drive. Happy. We finally poured soda on the platter, which *did* generate a head crash, which was anticlimactic -- just a little screeching, and the inability to boot.
I would gladly have traded this valiant little drive, tested to destruction, for any six of the Apple Profile drives we were also using at the time. Those things died if you looked at 'em funny...
If Cthulhu wrote software, he might come up with something like PeopleSoft. It is unbelievably, unspeakably horrible.
Halfway through the install of it (about five years ago), with the manual marked-up and plastered with yellow stickies, and a voice mailbox full of offers of help from high-priced, pushy consultants, I realized what the profit model was: Ship crap, and charge oceans of money to patch it up in the field.
Say what you like about MS (right or wrong), this stuff is pure garbage, and you won't escape with your sanity intact.
Things I have used in debugging: A debugger, when available. No debugger, when the available debuggers have been worse than the disease (MPW, augh). The venerable printf, or its equivalent. Logs of all kinds. Whole machine state that you get from a machine through a serial port (tap foot for several hours). Nano logs written to memory (to catch race conditions). Flashing LEDs. Speaker beeps. Floppy disk track seeks. An AM radio held next to the machine. A photocopy machine (to get a permanent record of a register dump from the face of a hand-held machine). Cans of coolant spray. Heat guns. Logic analyzers (yay!).
This is just another tool, and it looks like it doesn't even work that well on the really hard problems, or even moderately complex multithreaded apps. It's more like an assert tool. Reminds me a lot of the stuff that Tandem was doing to scale availability (read Gray's Transaction Processing for a good description).
In 1988 or so, when I was working as a developer at Apple, we were told by management not to write anything virus-like "because it was so easy." The first virus-response lab at Apple was a cordoned-off area next to the networking folks.
Right before everything fell apart at Atari (in 1984) there was this headband controller. The designer thought he was a genius. Atari was losing millions of bucks a day, but he was wandering the halls with this thing strapped to his head, certain that he was going to make millions on royalties.
You wrapped the band around your noggin and a couple of electrodes picked up changes in resistance caused by tensing your muscles. So you could furrow your brow (and move a paddle to the left...) or unfurrow (and move the paddle to the right...) and thus play pong, hands-free. (After five or ten minutes, users generally had a headache). Of course, the sweat of exertion changed the skin resistance as you played, and you had to recalibrate the thing every couple of minutes.
You can clean joysticks. But a sweaty headband, just used by someone else? Ick!
Seriously: A controller with fewer than "a few nines" of reliability isn't much of a controller, unless you're handicapped or something and can do nothing else.
So now any whiner with an inferior product who has "lost market share" to MS can complain to the EU?
I use Windows daily. I use an editor that I bought from a small company, diffing programs that I also bought elsewhere, a better (for me) email client, and so on. I don't hear those companies complaining about Notepad or WinDiff, they went out and did a better job than the built-in or free stuff from MS.
If you can't build a better product, maybe you shouldn't be in the damned business.
IIRC, the Newton has one truly custom chip (which does memory interfacing, DMA, interrupts, timers, A/D for the tablet and so forth).
The kernel makes extensive use of the ARM 610's MMU (especially its domain and sub-page-granularity protection features), so porting the OS to another platform would be quite exciting, but the application (Newtonscript) world is pretty isolated from the wacky stuff going on the OS. You could probably fake-out a fair amount of the OS and the apps would run.
Here's a reference to a paper on the Newton OS that we presented at CompCon in 1994.
Enterprise has been well in line with Sturgeon's law: 90% of the episodes have been crap. Instead of buying decent scripts, they (hmmm) "borrowed" and rehashed old, hoary plots, substituted random nudity in favor of developing characters you could care about, and have saved so many impossible situations with the deus ex machina time-travel garbage that, well...
I just want to see the puppy save the ship. Once. I'll Tivo episodes and fast-forward 'til I see that.
One thing *could* save the show: Solicit scripts from old heavies. I know it's painful, but buy some writing from the likes of Harlan Ellison, David Gerrold and other people with reasonable horsepower. Doesn't even have to be their best work; I'm sure they've got something stashed away that could be adapted quickly. Heavily publicize the eps. Watch the ratings spike.
Until some good writing happens, Enterprise will be good riddance as far as I'm concerned. Bring back Firefly. Jesus, what a business.
Ray Kurzweil is dead at age 2?
Even though the Death Star II has been blown up, there are still plenty of perfectly good Star Destroyers in orbit above Endor.
They turn their turrets on the ground, toasting the Ewoks to a crisp....
Easy -- I didn't know Perl then. :-)
It was a Windows / VB / MFC shop with a really horrorshaw case of very bad code and unclear mission, one of the few real life cases of Cargo Cult Programming that I've encountered. Some of the people there were good, but they were mired in a bunch of people's work who, ah . . . weren't that good. A classic case of "Okay, the VCs bought the song and dance, and we hired some bodies at the job fair, now what?"
I won't mention (much) the shrink they brought in to interview the engineering staff, or the VC fight, or the guy who swore at me when he was interviewing (then later resubmitted his resume under another name), or the build staff whose jobs I eliminated with a makefile (they were literally copying files around by hand for each release).
A very entertaining place to work.
I once left a company that tried to reduce my final check by "negative sick hours" or something like that. Legally they were allowed to do this. However...
I politely pointed out that I had gotten sick as a direct result of working 80+ hour weeks for them, that they had gotten a good deal out of it, and that reducing my check was unacceptable. I was firm, but very polite.
I waited in the lobby for 30 minutes and they came back with a check for the full amount.
If they hadn't . . . well, I had no real plans. Probably would have told all the employees that I knew "socially" there, and then just left it alone.
[Earlier the previous day, the CEO of the company pulled me off to a lunch meeting where he started bawling and tried to get me to stay. A good place to be out of; their "technology" could have been replaced by 1,000 lines of Perl]
Once, just /once/, I wanted to see the puppy save the ship.
[That very first scene with the "bio gel" set the tone for the whole series; shallow and uninventive. Backed ourselves into an unreconcilable plot corner again? No problem! Just whip out the goddamned time machine and hit "undo" a couple more times... sheesh]
Who needs documentation? Just wade in with something like Scrum. Most documentation is out of date anyway (about a month after you're coding, it's useless).
Whatever movie they do see on opening day will be better than the movie they got in line for...
Damn you, Microsoft!
Okay, who's not releasing patches for all the undiscovered Linux vulnerabilities? Oooooh, vast, incompetent menace! Switch to something else, quick.
One word describes a system, nearly ANY system more recent than an Atari ST or C-64, that isn't regularly patched: "0wn3d"
Bash bash bash. You guys are boring.
Go read Chaisson's book _The Hubble Wars_. Many of the technical problems that the Hubble Space Telescope had (wiggling solar masts, various areas of electromagnetic interference) had already been encountered by some of the black satellite programs, only the people in those programs couldn't say anything because their projects were classified. Not even a hint of "you might want to beef up those struts." Took a shuttle mission to fix that.
HST science was delayed *years* and costs skyrocketed because of this bogosity. This attitude of the military "blank check" projects really pisses me off and makes me want to stop paying for their projects. (Thus, letters to my senators and representatives).
Just about anything to replace the overly complex, badly designed and horribly insecure piece of hammered rhinocerous poop that is SNMP (which is not simple, nor really a management protocol) sounds great to me.
Even if I have to pay money for it. Have you priced commercial SNMP tools? Good God.
SNMP deserves to die.
The MMU wasn't used to aid NewtonScript's garbage collection; that was a fairly pedestrian (but effective) mark-sweep-and-compact algorithm, using memmove equivalents to shuffle bytes around. NewtonScript memory was just a big hunk of heap.
The fine-grained MMU *did* let the OS get away with many fewer pages than it would otherwise have needed (1K granularity of protection -vs- 4K, plus some -- ahem -- clever page sharing basically saved the platform in 512K of RAM). There was a similar page-sharing deal for patching the ROM. The MMU was also used to efficiently do safe "cross-domain" calls for various platform services, such as the object store).
Ha. Remember when stuff that ran on IBM mainframes were "Problem programs?" (Well, maybe only the stuff in user mode...).
I have respect for folks who can find buffer-overruns, heap-mangling attacks and so forth. These people are smart, hard-working and diligent. They give evil a good name.
:-/
I have nothing but contempt for someone with an axe to grind whose only response is the "exploit" in the linked article. It's pretty lame. Come back when you've written enough of your own code to present an attack surface.
Grow up. Sheesh.
Like all tools, stored procedures can be used to good effect, or they can be very, very evil. In my experience, projects with people who "knee-jerk" to stored procedures often wind up as train-wrecks, with the engineers begging for mercy-killing. Sure, you can write crap in any language. But it seems that some languages attract the crap writers more than others.
On one project I converted a stored procedure that was an undebuggable mass of 300 lines that took 18 hours to run, and recoded it in Java, using in-memory operations; it ran in a few minutes. Tried to explain that to the developer who wrote it, got a stoney face and some shrugs. Guess who doesn't work there any more?
An old 10M (this will date me) hard disk at work was on its last legs. I had always wanted to see a head crash, so we opened up the case and brought over one of the marketing folks, a notorious smoker, and had him blow cigarette smoke directly on the disk head. Smoke particles are supposed to be 10x larger than the distance between the flying head and the platter. There should have been a glorious kaboom. Or something.
Nada. It spun away, and happily booted and stuff.
We considered getting Jack, our CEO, to blow his cigar smoke at it, but he was a mean bastard and would probably have asked us "Why aren't you working?" So...
Okay, little disk drive. We poked the disk head with a pencil, driving it into the platter. Happy. We dropped the drive. Happy. We finally poured soda on the platter, which *did* generate a head crash, which was anticlimactic -- just a little screeching, and the inability to boot.
I would gladly have traded this valiant little drive, tested to destruction, for any six of the Apple Profile drives we were also using at the time. Those things died if you looked at 'em funny...
If Cthulhu wrote software, he might come up with something like PeopleSoft. It is unbelievably, unspeakably horrible.
Halfway through the install of it (about five years ago), with the manual marked-up and plastered with yellow stickies, and a voice mailbox full of offers of help from high-priced, pushy consultants, I realized what the profit model was: Ship crap, and charge oceans of money to patch it up in the field.
Say what you like about MS (right or wrong), this stuff is pure garbage, and you won't escape with your sanity intact.
Overnight, my 1G drive (this was a while ago) developed about 10,000 bad sectors. Obviously bad news.
Gateway Tech Support: "How many sectors are there on the disk?"
Me: "Oh, about two million."
GTS: "That's really not very many then, is it?"
I never bought another computer from them.
Things I have used in debugging: A debugger, when available. No debugger, when the available debuggers have been worse than the disease (MPW, augh). The venerable printf, or its equivalent. Logs of all kinds. Whole machine state that you get from a machine through a serial port (tap foot for several hours). Nano logs written to memory (to catch race conditions). Flashing LEDs. Speaker beeps. Floppy disk track seeks. An AM radio held next to the machine. A photocopy machine (to get a permanent record of a register dump from the face of a hand-held machine). Cans of coolant spray. Heat guns. Logic analyzers (yay!).
This is just another tool, and it looks like it doesn't even work that well on the really hard problems, or even moderately complex multithreaded apps. It's more like an assert tool. Reminds me a lot of the stuff that Tandem was doing to scale availability (read Gray's Transaction Processing for a good description).
In 1988 or so, when I was working as a developer at Apple, we were told by management not to write anything virus-like "because it was so easy." The first virus-response lab at Apple was a cordoned-off area next to the networking folks.
No viruses. Very funny.
Nah, TOS sucked. (I was on the team that shipped it. TOS *definitely* sucked, even 15 years ago).
Right before everything fell apart at Atari (in 1984) there was this headband controller. The designer thought he was a genius. Atari was losing millions of bucks a day, but he was wandering the halls with this thing strapped to his head, certain that he was going to make millions on royalties.
You wrapped the band around your noggin and a couple of electrodes picked up changes in resistance caused by tensing your muscles. So you could furrow your brow (and move a paddle to the left...) or unfurrow (and move the paddle to the right...) and thus play pong, hands-free. (After five or ten minutes, users generally had a headache). Of course, the sweat of exertion changed the skin resistance as you played, and you had to recalibrate the thing every couple of minutes.
You can clean joysticks. But a sweaty headband, just used by someone else? Ick!
Seriously: A controller with fewer than "a few nines" of reliability isn't much of a controller, unless you're handicapped or something and can do nothing else.
So now any whiner with an inferior product who has "lost market share" to MS can complain to the EU?
I use Windows daily. I use an editor that I bought from a small company, diffing programs that I also bought elsewhere, a better (for me) email client, and so on. I don't hear those companies complaining about Notepad or WinDiff, they went out and did a better job than the built-in or free stuff from MS.
If you can't build a better product, maybe you shouldn't be in the damned business.
IIRC, the Newton has one truly custom chip (which does memory interfacing, DMA, interrupts, timers, A/D for the tablet and so forth).
The kernel makes extensive use of the ARM 610's MMU (especially its domain and sub-page-granularity protection features), so porting the OS to another platform would be quite exciting, but the application (Newtonscript) world is pretty isolated from the wacky stuff going on the OS. You could probably fake-out a fair amount of the OS and the apps would run.
Here's a reference to a paper on the Newton OS that we presented at CompCon in 1994.
Enterprise has been well in line with Sturgeon's law: 90% of the episodes have been crap. Instead of buying decent scripts, they (hmmm) "borrowed" and rehashed old, hoary plots, substituted random nudity in favor of developing characters you could care about, and have saved so many impossible situations with the deus ex machina time-travel garbage that, well...
I just want to see the puppy save the ship. Once. I'll Tivo episodes and fast-forward 'til I see that.
One thing *could* save the show: Solicit scripts from old heavies. I know it's painful, but buy some writing from the likes of Harlan Ellison, David Gerrold and other people with reasonable horsepower. Doesn't even have to be their best work; I'm sure they've got something stashed away that could be adapted quickly. Heavily publicize the eps. Watch the ratings spike.
Until some good writing happens, Enterprise will be good riddance as far as I'm concerned. Bring back Firefly. Jesus, what a business.