A cheeky intern nearly turned MS-DOS into NSFW-DOS
theregister.com
theregister.com
I had a habit of hiding my face in little hard to spot places of sites I worked on in very low contrast. Over my five years there I worked on probably hundreds of sites.
A couple weeks after I'd left for my new gig, I get a message from a coworker that a different coworker had pushed up an untested change that broke the navigation on one of their biggest clients. The HTML had become malformed in such a way as to make the entire page a repeating pattern of my very low contrast face, which had been hiding under the navigation.
The client thought it was some sort of hack. My friend and coworker knew what I'd been up to and explained to the team. I have no idea what was said to the client.
A couple weeks later it happened again with a different site. Same developer pushed bad code and my face hidden under the contents of the page were revealed.
They ended up going on an Easter Egg hunt and removed most of my hidden faces.
It's not something I would do these days as it's very unprofessional but I still get a little smile thinking about it.
Putting a site live just involved FTP-ing the files up to one our shared webservers.
IMHO, it's better to be a cowboy and reluctantly follow 'best practices' for the most part, than to be a 'best practices' person and be unprepared to be a cowboy when it's needed.
Sometimes, the best way forward is to force an update on production, even if the only method you have is modifying the executable on disk, while it's running. It's mmaped, so you can do this. But you wouldn't know this if you hadn't broken production by using cp instead of install to update a binary you wanted to modify for the next load.
We wrote a system for a client once. And there was a particular functionality that I had to iterate over quite a bit, trying to nail down evasive, frustrating bugs.
Needless to say, later, when the client was printing out some invoices and discovered one with several notes reading "F** F** F**!!!!", we got a phone call. We, clearly, didn't managed to scrub the DB properly when we installed it. We were graced by the fact the clients children were in during the weekend, and they felt maybe one of them had managed to add commentary to the data. "Yea! That's what it was allright! It's all fixed now!"
Anyway, software never forgets. Version control is forever. Be gentle when adding commentary to code.
I ended up making the front page panel of the new team twiki page where we had the team structure laid out a small random chance of showing the bulldog licking the screen in a full screen mouse-over, then I completely forgot I'd done it and went on vacation.
The boss was demoing the new site to the global team, with our MD there, and moused over it, triggering the screen licking gif, then moused off it and came back and it wouldn't retrigger and couldn't work out what had happened. It caused bit of a stir, but I was allowed to leave it in place with a very low chance of appearing.
What I didn't realize was that deleting the registry was a common action our tech support had people try when they called in. Turns out I ended up Rick Rolling a bunch of our customers!
They (THEY(TM)) also took away typing "man" at 00:01 (or later 00:30) would print "gimme gimme gimme"
https://unix.stackexchange.com/questions/405783/why-does-man...
And they took away the "MAKE LOVE" (returns "NOT WAR?") easter egg in MIT's TECO editor on the PDP-6
https://www.acriticalhit.com/make-love-not-war-first-softwar...
In this case, the lame corporate kind of people.
Everyone knows who They(tm) are, especially Them.
The trick was to keep the message text the same length, so as to not upset byte offsets.
https://en.wikipedia.org/wiki/AARD_code
> The AARD code was a segment of code in a beta release of Microsoft Windows 3.1 that would determine whether Windows was running on MS-DOS or PC DOS, rather than a competing workalike such as DR-DOS, and would result in a cryptic error message in the latter case. This XOR-encrypted, self-modifying, and deliberately obfuscated machine code used a variety of undocumented DOS structures and functions to perform its work.
> Internal memos released by Microsoft revealed that the specific focus of these tests was DR-DOS. At one point, Microsoft CEO Bill Gates sent a memo to a number of employees, reading "You never sent me a response on the question of what things an app would do that would make it run with MS-DOS and not run with DR-DOS. Is there [sic] feature they have that might get in our way?"
> Microsoft Senior Vice President Brad Silverberg later sent another memo, stating: "What the [user] is supposed to do is feel uncomfortable, and when he has bugs, suspect that the problem is DR-DOS and then go out to buy MS-DOS."
> Microsoft Co-President Jim Allchin stated in a memo, "If you're going to kill someone there isn't much reason to get all worked up about it and angry. Any discussions beforehand are a waste of time. We need to smile at Novell while we pull the trigger."
Where is the specification explicitly asking for it?
All we have are some memos asking Will no one rid me of this turbulent priest?
My point is that internal QA processes mean nothing if the company itself has nefarious intent. It can approve every violation of trust it wants to. But here we are cheering Dave Plummer reminiscing about 1990s Microsoft firing an intern and overlooking their underhanded behaviour as a company.
Microsoft did unforgivable shit like this all the time, which is why some of us have never forgiven them. Bill Gates is a piece of shit trying to buy his way into heaven.
I was going to make a joke about Melinda Gates deserving a Nobel, not Bill. In doing so I just learned that Bill tried to persuade the Nobel committee by using Jeremy Epstein’s help. What kind of help could Epstein provide other than blackmail?
On the one hand, he fucked over some tech bros. On the other, he's using the money he made off that to cure malaria. What a garbage human being.
Do you think if Bill Gates and Larry Ellison didn’t exist, that Google’s original mantra would have been, “Don’t Be Evil”? I don’t.
Edit: actually check the docs [1], there are some specs. But anyway, assuming that memo was all...
I never worked for Microsoft, and I know they did do some real design and specification work in this time period, but in my experience, this looks like as much of a specification as I usually get:
> Microsoft Senior Vice President Brad Silverberg later sent another memo, stating: "What the [user] is supposed to do is feel uncomfortable, and when he has bugs, suspect that the problem is DR-DOS and then go out to buy MS-DOS."
Tell me what the user's outcome is (user with DR-DOS is uncomfortable and thinks they have bugs), tell me what the desired user response is (buy MS-DOS and retry), and let me figure out the rest.
Sounds like detect DR-DOS explicitly or implicitly, and fail occassionally, and cast asperssions in the error messages. Something like relying on internal layout of memory where MS-DOS always does it one way but DR-DOS doesn't always would be great (add comments to make sure MS engineers don't change it!) ; but I think they went with direct detection and intentional breakage.
I don't think this was a good choice for MS, but I don't think the specification was unclear even if it wasn't detailed. I've done similar work that I don't feel bad about; unapproved 3rd party clients were using my service and I held them to a very strict API; not my fault they didn't have API docs and only reverse engineered 2/3rds of the requests.
[1] https://web.archive.org/web/20180803194008/http://antitrust....
For years, our yearly training specifically warned against using violent metaphors when referencing our competitors. It was probably because of that memo, huh?
Once, when I was a student employee, there was a massive outage, leading to one of those redirect pages that's usually not visible and I had forgotten to clean up afterward, displaying for many people.
I no longer put quite such memorable messages in visible places.
Huh? Sounds like he was trusted, but they verified his work. Trust != blindly accepting someone's work. And in the end, this intern violated the trust that _had_ been placed in him, and he was shown the door. Rightfully so.
Yes, part of growing up is making mistakes. But, part of growing up is also living with the consequences of your mistakes. And, yes, I've made some mistakes in my youth (hell, even as an adult) that have led to professional consequences, including termination.
Further, it's up to every manager and employer if they want to continue this kind of fear and punishment, or accept and correct mistakes. I don't think the entire professional world acts like this in reality, only in dystopian entertainment and nightmares.
Such a treat getting someone with his experience just telling stories of the old days.
Makes me doubt he wasn't involved :>
In Windows, you can type characters in the Latin1 character set by holding down Alt, then typing a zero on the numeric keypad, then the code you want, such as Alt+0233 for "é". The leading zero disambiguates Latin1 characters from the traditional DOS character set, so you'd have to type Alt+130 to get the same character that way.
In later versions of windows you could change the folder icon to be an empty image, then have it on your desktop where nobody could see it.
♥ is code 3, which is the same as Ctrl+C - typing this at the DOS prompt would cancel any input on the current line (and also flush disk buffers IIRC - something left over from CP/M)
It is possible to detect if the user pressed Ctrl+C or Alt+3, using BIOS calls or direct hardware access. However, the DOS console driver wouldn't do it this way, and instead convert both into the same ASCII code.
The only possible way to pass this character to the "copy" command (which was built into the command interpreter) would be to write a program that invokes "COMMAND.COM /C COPY /♥".
Story seems suspicious, if it happened at all it might have displayed "I ♥ SEX" when some other switch was present, then someone mixed things up?