What is the Best Bug-as-a-Feature?
Bat Country wonders: "The workflow system, at the department I develop for, was hand-coded by my predecessor in a rather short amount of time, resulting in somewhat unreadable code with a number of interesting 'features.' When I took over maintenance of the code base, I started patching bugs and cleaning up the code in preparation for a new set of features. After I was done, I got a pile of complaints about features that had disappeared, which turned out to be caused by the bugs in the code. So, that leads me to ask: what is your favorite bug that you either can't live without or makes your life easier?"
Windows Genuine Advantage
My favorite:
"404 File Not Found
The requested URL (askslashdot/07/03/30/0116246.shtml) was not found."
That little error saved me from having to read a bunch of replies.
it pops up all sorts of porn pages I never even asked for!
Monstar L
Comment removed based on user account deletion
Microsoft keeps trying to clean up their code, and as a result, sometimes, features that SPAMmers etc. are relying on stop working.
Give a hand, not a hand-out.
rm * .old
Everytime it happens, I just smack myself in the forhead for not rebooting sooner. Usually I can just reboot with a better memory state than before the BSOD.
... 15 minutes of coffee break time!! 15 more minutes of paid time!!!
The guy who wrote the Windows version actually allows you to turn it on! Overpay the money lender and your money grows at 10% a month! The bug was in the original Apple 2 version and then subsequent ports, like the one to Palm, removed it.
I remember getting Godly Plate of the Whale in Diablo at the sacrifice of a single potion with the duping bug. I can't think of anything better than that.
buffer overflows are great - they allow you to get root on all sorts of devices that some bastard tried to lock you out of.
ncpmount on linux... at least in our configuration... allows us to overwrite files that have "locks" on them by users. It appears to be happy to ignore the locks. I'm guessing this is a bug... because I can't do it with the same user from Windows.
This allows us to deploy our java Jar's to our Folders on our network where the users launch the app from.
Yay.
--------========+++Dont Feed The Lab Techs+++========--------
And although, ultimately, its a pain in the arse that they're there at all, when you get get down to the practical day-to-day business of writing/maintaining websites, some of those bugs turn out to be very handy in concocting freaky work-arounds for inconsistencies in the ways that browsers support (or don't support) the standards.
- you-out, then there can hardly be a better place to look than Internet Explorer 6.
I'll leave the provision of an exhausitive list to somebody else, but suffice to say if you're looking for a sizeable seam of bugs-which-simultaneously-screw-you-over-and-help
OMG!!! Ponies!!!
Easily the best bug ever. Its been paramount in enabling continous "innovation" as people speed jump through maps.
They screwed up alot of our web-based financial software. If i set the number of items purchased to zero, the whole thing reboots and i get to go home for th
---------
No matter how thin you slice it, its still baloney.
Error
Nothing for you to see here. Please move along.
Nothing beats a good dose of pot-kettle interaction.
This flies in the face of science.
The famous undocmented 320x240 VGA video mode, pre-VESA, and other tweaked VGA modes.
I've heard the 6502 (or, more specifically, RP2A03) had some useful undocumented opcodes. I think they weren't intentional, so they might count.
On the software side...how about exploitable buffer overflows on the Xbox and PSP to enable execution of arbitrary code?
Ping of Death (http://insecure.org/sploits/ping-o-death.html) entertained me quite a while :)
thomasdamgaard.dk.
I've seen trace before that said something like: "FunctionName: line 434 : Error: (Not an error)"
Michael C. Hollinger
Not a software bug but a design flaw in a car I used to own.
The Vauxhall Astra Mk.2 (Opel Kadett E) had a design flaw in the steering column. Specifically, the steering column was rather weaker than the steering lock.
The upshot of it was when some little scrote decided to try and steal my car (this was way before cars were fitted with immobilisers), when he tried to break the steering lock the steering column snapped and the steering wheel came straight off in his hand.
It was supposed to be a unix clone, but actually came out useful in the end.
I don't need no instructions to know how to rock!!!!
"Subscribe to view" webpages that are still visible to users browsing as GoogleBot.
User agent switcher extension + Browse pretending to be GoogleBot = Annoying "register/pay to see me!" pages go away. I have no idea how many sites it works on now, but I think it still gets into a lot of archived newspaper articles and suchlike.
"We have to go forth and crush every world view that doesn't believe in tolerance and free speech." - David Brin
For me, the physics bug that enabled "skiing" in Starsiege: Tribes was the best bug as a feature. It's a bug that became a key defining point of the series.
A description of skiing is here.
Why, Microsoft Windows, of course.
Sendmail
This sig used to be really funny...
PC LOAD LETTER? What the f*ck does that mean?
Perl is perhaps one large bug that works so well that it's a great feature. For example in perl when you compare two things you get an answer that is stable no matter what the items are. In python you can't and even when you can the answer is not stable. The order of a sorted list can depend on it's orginal ordering! You cant compare floats to Complex numbers but you can compare strings to complex numbers. Sets are grouped by equality not identity so 4.0 and 4 are the same thing for a set. Which one stays and which one get added to the set depends on the ordering of the lists that were put in the set.
it's nuts. And the origin of the nutty ness is an obsessive desire not to have default behaviours. Whereas perl is all default behaviours. In the end perl does what you really meant, and python does what you told it.
in case you think I'm python bashing google what python evangelist david mertz says about python warts.
Some drink at the fountain of knowledge. Others just gargle.
This barely qualifies as bug, more on an inconsistency, but...
In Firefox, when you make a new bookmark, you need to give it a name. FF grays-out the OK button until you do. This implies that bookmarks weren't meant to be nameless. Here's the "bug": if you go to rename the bookmark, you can make it blank and the OK button remains active.
So what good is a nameless bookmark? I place all of my frequently-visited bookmarks on the menu bar, to the right of the menus (it's normally wasted space). I have over 25 bookmarks marks there, and if they had names (even one-letter names), they wouldn't fit by a long-shot. The favicons are all I need, so this ability is pretty helpful, and isn't likely to be fixed.
"When the atomic bomb goes off there's devastation...but when the atomic bong goes off there's celebraaaaation!"
In Second Life, if you zoom your camera up to a wall, you will normally just zoom in to see closer detail of the wall. But once up against the wall, swing the camera around to the side, and you can "back your way in" through the wall. Release and click again, and the camera is now "mounted" inside the house. Its so much fun to watch people inside their homes, especially when your avatar is prevented from entering the property. Some even pay for a little orb that still tells them that no one is detected within 30m. Its fun because the clicks still work, too, like right clicking on someone and IM'ing them.. to tell them that you liked their last outfit more than this one, or the couch looked better in the other corner.. really freaks them out. That is definitely a "bug" (or feature) I couldn't live without... not in SL at least.
Intelligent Life on Earth
If the code is "unreadable" how can you be sure they are bugs and not intended features you happened to overlook?
My favorite bug -> feature was the doing a jumping kick to the back back side of enemies. This was not intended but has become mainstay in fighting tactics in the SF series ever since
There were two oversights in the older VW's electrical system:
... ooops, that's more hardware than software. sorry.
(1) You needed the key to close the sunroof.
(2) But.. a sneak path in the headlight wiring meant you could instead just turn on the headlights and pull on the high-beam flasher (on the turn-signal lever). Enough electricity would flow backwards through the sneak path to operate the sunroof motor.
Sorry posted to the wrong thread. Mod it down please. It is a lame joke anyways.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
A related "bug" is the ability to boot Linux "fail safe" with the notation 'initrd=/bin/sh' on the boot line. As MVS would say, "Thou art God!"
World -1 in Super Mario Bros.
Without that mail forward bug, I'd never have been able to get root when I wanted it.
The original metroid's "hidden worlds".
2 503
If you let a door close on you and kept crouching/standing up, you could go outside the map, and the game would end up filling in new areas as best it could. Easy to get stuck, one way doors, and other nasty traps, but endless fun.
http://www.gamefaqs.com/console/nes/file/519689/4
-JDF
I'd have to go with strafe jumping in Quake2. What better way to get the 100 health pack in q2dm1 w/out having to sacrifice precious life w/a rocket jump. w00t!
In high school I wrote a program for a physics project that showed electromagnetic wave propagation and interference. Nothing that special, the end result was basically a pretty screensaver with some relevence to physics. In light of that, one of the features I added was a pull-down menu for selecting what color you wanted to use. This was back in the VGA days with a 256 color pallette and manually poking the VGA frame buffer. Due to an off-by-one error in calculating the bounding box of the pull down menu, it was possible to select an invalid index for the color, so instead of selecting a row of the pallette with my nice color gradients set up, it was one of basically random colors. The result was really trippy, so when I discovered the bug, I decided to leave it in. At the open house where my program was running through a projector some bystander discovered the bug and thought it was indeed cool and trippy.
:)
That's about it. Most of my bugs just break shit.
The enemies of Democracy are
No, you posted it to the wrong story, not the wrong thread. You started a new thread.
It means you (the "Personal Computer user") have to put more paper in the Letter Tray. It's companion error is "PC Load Legal".
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
How about being able to use the memory segment for monochrome video adapters as extra memory, back in those days?
I support a lotta desktops and its always a pain to log off user, do your admin, log on user especially if youre trying to do something profile specific.
I found that with IE6/XP if you enable quick launch, rt-click properties, find target on IE6 (lazy way to get to it) I could do a runas admin and have free roam to do what I needed without logging the user off. Killed with IE7. Thx.
I used to play too much Starsiege: Tribes about five or six years ago. It is a multiplayer first person shooter with enormous maps. When it first came out, everyone walked around, or hitched a ride on a vehicle. The game was fun, but it was a bit slow for my tastes (I grew up on NetQuake). Somebody discovered a physics bug that allowed players to move very fast over terrain by rapidly tapping the jump button as players slid down a hill. This process was scripted, and the overall dynamics of the game (terrible pun) changed dramatically. The game went from being fairly slow to being one of the most intense games I've ever played. Different hills would give different amounts of speed, and the process of 'skiing' itself required that you constantly look for ways to maintain your speed while fighting off other players.
When the developers saw the potential it gave the game, they left it in. They realized how it made the game unique and exciting, and this bug became the standard feature that sets Tribes far apart from almost all FPS games out there, even to this day. This bug resulted in probably the closest simulation to virtual athleticism that I have ever seen, which was responsible for the fanatical, but small fanbase the Tribes series had.
The bug in evolution which allowed Homo Sapiens to gain language and self awareness. Gaia knows it never should have happened! But I am sure it will corected shortly (that being shortly in the cosmic scale of time).
Going on means going far
Going far means returning
most of those web-based rich text editors you see use the same core functionality that's built into the browser. it's sometimes called "design mode" because to initialized it you have to set the designMode property of an iframe element to "on".
there's a set of commands that you can execute on the iframe after you've set this property. one of them is "indent". when handled properly, this should create a new div element with some kind of margin or padding on the left. well in IE executing that command actually creates a blockquote element.
completely wrong, right? yes, but convenient. in our CMS we need to be able to create a blockquote, and have no use for indentation, and i cant find any other way to do it in IE. fortunately, in better browsers blockquote is handled with the command "formatblock: blockquote".
http://en.wikipedia.org/wiki/Winnuke
This was the handiest thing for getting rid of idiots on chat.
Runner-up: ALT-F4 to close a window. Also handy for getting rid of idiots on chat:
Idiot: Hey, my computer is broken, how do I fix it?
Me: Well, first, hit ALT-F4
*** User 'Idiot' has left the room. ***
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
I was always fond of the bug in the Apple ][ version of Taipan that let you overpay a loan which would turn it into a negative loan that would grow more negative as the game went on. You could then borrow against this negative amount. With the usury rates on loans in the game, it was effectively an ultra-high interest savings account.
Daylight savings time...
In one of the older versions(after they dropped the codename raptor and went live) of oracle's sqlDeveloper, after your session with the DB had timed out you could just execute a query a couple times to renew your session rather than logging out and logging back in. I know its a considerable security flaw but it was damn handy.
jumping rapidly while going downhill caused you to gain speed at a rate that defied physics (both real and virtual). it became such a hit with players that macros and other mods were built to automate the process. the "feature" became so essential to game play that it was built into tribes 2.
sarcasm:
-noun
1. harsh or bitter derision or irony.
UNIX!!! Just partially kidding :-)
- This can't be... - Be what? Be real?
I'm unclear how Windows qualifies as a feature.
Avoid Missing Ball for High Score
mertz article
Some drink at the fountain of knowledge. Others just gargle.
A couple of friends of mine in high school CS wrote a Tetris clone for class, but they had a bug where occasionally, blocks would spontaneously appear or disappear. They couldn't figure out how to fix it, so they claimed (in the docs, not to the teacher) that they had AI adjusting the difficulty to match the players' skills.
Media that can be recorded and distributed can be recorded and distributed.
-kfg
Minor quibble, PC means Paper Cartridge in that context, not user.
Not me, but one of my colleagues took over maintenance of a system which included a date library. The dates and times were treated as floating-point, leading to much conversion and adjustinging. Eg. 12:30 was 12.30, so when adding 40 minutes getting 12.70, and then adjusting that to 13.10, No input validation was done. My colleague tried cleaning that up, but then got complaints from the users. They had discovered the "features" and were now using eg:
January -6th
meaning december 24th the previous year.
My colleague had to remove the input validation again and keep the features.
I gotta put my money on the numerous video game bugs of the last few decades which don't really do anything but invoke a "hey, that's kinda cool" response. Ones like the negative worlds bug in the original Super Mario Bros, or the Pac-Man "perfect game" crash.
There's probably at least one out there each of us has stumbled over at one point.
8==8 Bones 8==8
It stands for:
Paper Cartridge LOAD LETTER sized paper, you retarded git you can't figure out what the error message means that always occurs when you run out of paper.
I'm positive that if you read the documentation, it would say exactly that. =)
...used by ADSM for making backups of document level... the bug allowed users to restore documents (from ADSM server) directly from their Notes Client too.
This bug/feature dissapeared in Domino 5 (and later), when we called IBM (the great mothership of both Lotus and ADSM) we were told that it wasn't a feature but a bug and it has been corrected.
The Volkswagen Beetle.
Programmers are "users" as well. A bug is often caused by a simple error like a space in wrong place, not only errors in design.
Would the answer to that be Windows, by any chance?
"Come Here. I need you."
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
It also means you haven't seen or don't remember Office Space
Who in this world has not yet seen "Office Space"????
The Rockwell 6502 was a hard-wired processor; there was no "illegal instruction" check. So, any bit-patter you loaded as an instruction would try to do something. Sometimes, because of the internal open-collector busses, you'd get neat "something OR something" that wouldn't normally happen.
Here's the I'm Feeling Lucky hit on it: 6502 Opcodes.
Thing is, the results might vary from implementation to implementation. So they might not work usefully on the 6510, which was otherwise a 6502 with an I/O register at $0000-$0001.
Circa 1991, I used to move large files to servers around the world with good ol' ftp. With a slow connection to Europe, it would take hours. I didn't particularly like having the ftp process going for so long, especially since some of my buddies would get nosy about the files.
I forget what exactly I did, but by severing the login connection a specific way, the process would become a zombie. I think maybe I just killed the shell. Anyway, it wouldn't show up on any process list, much less show the owner, but the file would continue to transfer. Hours, days, however long it took.
It probably mucked up the servers pretty badly in some way I don't know about (so I used it rarely). If anyone knows what was really happening, I'd be curious to learn.
When you choose a place to sit down in Second Life, it tries to put your avatar's rear end right there on the surface where you clicked. But since many things you may want to sit on/in require you to be in a particular place (driver's seat, hanging upside-down by your ankles, etc) a script command was added that lets the script pick the spot.
Linden Lab forgot to set a limit on this function. (Read: bug)
But people started getting creative with it. "Sit" on a signpost who's sit offset is 150 meters straight up. The signpost then forces you to stand up. You are now in your private "skybox" and are free to hang upside-down by your ankles in semi-relative privacy.
This unintentional form of teleportation bug is so ingrained in that virtual world now that it can never be fixed. Though Linden Lab did at least cap it to 300 meters, and prevent it from crossing simulator boundaries, which keeps the "bug" flavor to a minimum.
(Of course, there is a better method these days that transcends those limits, using llSetPrimitiveParams and a list of many repeating, distant position commands... Another "keeper" bug?)
In old [real, proper] VWs -- back when they were air-cooled -- for some reason you could shift gears without using the clutch. I did this on more than one occasion when I had stripped the clutch. If you had to stop, e.g. at a stoplight, you slipped it into neutral, braked, and shut off the engine. Then you put it into first, and when the light turned green, started it up. Of course it lurched horribly, since it was in gear, but once the engine caught you could proceed on your way, shifting into higher gears when the engine sound was "just right." It required a certain amount of trial and error to find out when this was. I learned this from the VW Idiot Book and was incredibly glad I had it. The trick was comparatively easy in highway driving, but much more awkward in towns.
I piss off bigots.
You should've just claimed it was a bug in /. that turned out to be an interesting feature of some sort. Problem solved!
If we can hit that bull's-eye, the rest of the dominoes will fall like a house of cards... Checkmate.
In the olden days (DOS) version of X-Com: UFO Defense, a save game consisted of a whole bunch of individual files in a directory tree. After some tinkering around, I realized that one particular file stored nothing except a list of what equipment you had "on order" and after how much more game time it was going to arrive.
By ordering a bunch of equipment and saving your game just before it was due to arrive (call that save game A) then saving again immediately after it arrives (call that save game B), and then copying this file from save game A to save game B, you could get whatever equipment you had ordered to arrive again. And again, and again. And you could turn around and sell all the extra stuff for cash.
Lather, Rinse, Repeat. I used to start off a game by repeating this trick until I had maxed out my cash. I found the corresponding file that allowed you to improve your tech without actually performing the research, but that was less of an advantage, since the game used your tech-level to decide how difficult the scenarios it gave you should be.
If fate makes you a motorcycle, you become a motorcycle.
On the software side...how about exploitable buffer overflows on the Xbox ...
Which has led to the creation of an incredible piece of software: XBMC
This was a fun one. I had one of the first MINI Coopers, and ordered it with the CD player ('Wave' option? Seem to remember that name). I forget exactly when I took possession of the car, but I think it was around September or October. Something like that.
Anyway, at roughly 2:00am every morning the car alarm would go off, much to the 'delight' of myself, my neighbours and everyone in the vicinity. I'd go out, stop the alarm and then try to sleep. After which it would go off again, every hour or so.As if we weren't losing enough sleep with our then new-born daughter.
The cause was eventually traced, and it's one of the more obscure bugs I've ever come across. Turns out that the car had a low-power rather than completely off mode, and the CD player retained a tiny amount of power going through it. When it was cold, say at 2:00am on an autumn morning for example, the CD player would detect that condensation was forming and would wake up the car's electrics to create some warmth to clear the condensation. This is deliberate, and quite clever I think.
However, the problem came in that it did this too often and started causing a big drop in battery reserves. The security system interpreted this as an attempt to start the car by hotwiring it, and so the alarm would be set off. I'd come out to switch it off, then go back to bed on the cold autumn night at which point condensation would form again, the CD player would switch itself on again, the security system would sound the alarm again and a bleary-eyed version of me would stagger out to turn the alarm off again. At which point condensation would start to form again and...
Bah.
Cheers,
Ian
when i first started playing that game i couldnt stand those evil, sadistically accurate, one shotting across maps jackal snipers.
while the bug was still pretty easy to activate i used to beat a cheat with a cheat ; )
"ooh.. so you can one shot me across a level while turning and jumping? well EFFF YOU I CAN FLY MOFO!"
VLC FOR MAC IS DYING! IF YOU DEVELOP, PLEASE SAVE IT!!
I love when I get the BOD memory leak. It's like a game. Can I read the error before the computer reboots itself or not?
I'd argue that C++ Template Metaprogramming as a fully Turing-complete functional programming language was probably an unintended result of the definition of templates.
General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
His post was funny, yours sounds more like a troll... and if you love Windows so much why don't you marry it
There are two bugs here that I know of, one which is a problem all the time, and one that can be used to solve that problem.
The one that is a problem is that if you are listening to a track when you power it off, then remove that track, it will lock up the next time you power up, because it can't find the track you were listening to before.
The other one is that if the key-lock switch is on when you push power to turn it on, it will start to boot up, and get most of the way there before checking the state of the key-lock switch.
However, you can use the second bug as a workaround for the first, because, when it discovers that the key lock switch is set, it will turn around and save its state to the flash. The only thing is, it hadn't loaded its state from the flash yet, so it ends up saving back a clean state.
www.wavefront-av.com
While it made the game, more or less, a one race game, it added a huge element to the end game, which is where War2 multiplayer shined for some time. It brought the need to micromanage to the board, which, while always a factor, was not essential to victory.
So in essence, it brought heavy macromanagement and micromanagement together.
Invexi - a Phoenix, AZ based web design and web development company.
It really is more of an amorphous blog of bugs & features. It's a bug, comprised of features that are buggy features and feature bugs. This is one of those things where if you think about it too hard, the Mac / Linux ambulance will have to try to reassmble the fragments of your exploded head.
It wasn't a bug, just manual adjustment of the VGA timings and setup. VGA was designed to allow that. It had preset modes for convenience, but it was (as far as I know) deliberately able to be programmed to do other things. Mode X just got named (along with a couple others) because it was so widely used.
I have a wildcarded domain name (which we will call example.com, because I don't wish to get slashdotted). Anything prefixing that, e.g. glurph.example.com, will get resolved to stimpy.exmample.com's address.
In turn, my border box has a DNS server on it, which serves all internal addresses. All machines are configured to search example.com as the default domain.
The practical upshot is that if you enter a non-existent domain, e.g. www.thisdomainofficallydoesnotexist.com, after the DNS lookup fails, it gets tried as www.thisdomainofficallydoesnotexist.com.example.co m, and you get my home page rather than getting shunted off to some sort of error page. Sometimes this is a bad thing, but it is usually not.
www.wavefront-av.com
in Science and Industry, a mod for Half Life, there was a bug where you could type something in the console, then kill yourself, then you could move your corpse around the map as if you were still alive.
i'm sure it's fixed by now, but god was it fun. i would often use it to permanently block others inside rooms (the physics still acted like you were 6 feet tall, so you could block a doorway).
I like Automated Teller Machines that let me withdraw amounts less than zero.
Guess he didn't get the memo...
though Windows does this with flying (Blue) colors, I would nominate DRM. it screwed music and spurred development of P2P
- Minutus cantorum, minutus balorum, minutus carborata descendum pantorum.
Best bug ever? Errors in the CSS encryption algorithm which enable me to play my DVDs anywhere DeCSS has been ported.
Second best? The various holes in AACS, which let me play BLU-RAY and HD-DVD on one cheap player (my PC).
My college dorm elevator had bug/feature. If you briefly pulled and then reset the "emergency stop" button as the elevator was stopping at a floor it would skip that floor. I lived on the third floor and we routinely skipped folks on the second floor waiting for the elevator. This was a great time saving feature (except, of course, when the fourth floor residents would skip the third floor).
The only misfeature of this bug was that the bell would briefly ring alerting those waiting that they had been skipped. One time, some second floor residents heard us skip their floor and we heard them running down after us. We skipped the lobby and went back to the fourth floor. We could have kept it going all night if they tried chasing us, but they didn't. Anyone too lazy to walk to the lobby from the second floor sure isn't going to race up to the fourth floor.
Eventually, they upgraded the elevator and we had to stop for the second floor whenever they wanted.
-- Don't Tase me, bro!
Coke machines that unload their entire change drawer when you hit the change button. How can you beat that? Maybe when an ATM malfunctions :)
The hinge on our office door-closer, that's intended to close the door, is tweaked so that it rubs against he top of the door jam--it's a perfect door stop.
*removes head from fourth point-of-contact*
Setting the tamagotchi clock to 23.59 then 00.01 to condense days worth of evolution into minutes, then feeding it snacks in a bizzare childhood experiment to see what it mutated into
For me and my friends in high-school dying to program something, anything, there was a whole world in there.
I can't believe no-one has mentioned the belly-flop "bug" in Joust yet. That's my favorite bug-as-feature!
If you do a regex search and replace in Open office and replace all contents of cells with themselves (search for .*, replace with &, or something like that) the contents of the cells will be reformated to whatever default you set for the columns. You can use it to change a column of numbers into a text field (to sort alphanumerically) or vice versa,, (if you have a spreadsheet that imported numbers as text and and you want to change them back into numbers)
This trick is even included in the help documentation.
the self checkout machines at my local grocery had a NICE bug.
1. scan candy bar.
2. choose finish and pay.
3. choose credit, control shifts to the credit card reader thing
4. wait... (about 30 secs)
5. back to choose payment screen.
6. select cash.
7. insert $100 bill
8. proper change dispenses
9. PROFIT!!1 = change dispenses AGAIN! (and a 2nd receipt!)
i found it once while selecting credit and finding that the stores network was down, so while trying to decide what to do, or fetch a human, it fell back to 'select payment' and my new spare-cash fund was born!
Well, the only bug I've had with remotely positive effects was a 2D graph control. Two properties I gave it were Vertical padding and horizantal padding (area of blank space around the plot for captions, etc.). The control plotted dissipation & static pressure vs. air flow. Of course, you have to scale the values into pixels on the screen, and the control was re-sizable. If your padding was high and your control size was small, the scale factor could end up negative and the whole thing would end up mirrored (both vertically and horizontally. Well, if you dragged the control around just right, it would appear it was rotating around on a 3D axis. Figuring I'd chew up some CPU time and give the engineers a bit of a show, I then had the curves rotate into place when they were initially displayed. Not much of a useful feature, but I guess its the only bug that wasn't really negative.
err, amorphous *blob* not blog :-)
The old NES game Blaster Master had a great bug that made the game a lot easier. If you shot an enemy, and paused right as your bullet was hitting him, it would continuously drain his health until the game was unpaused. Instant kill.
Be careful though, because the same thing happens to you if you're the one being hit.
Security bugs are more appropriately names insecurity bugs.
Lots of security bugs are really insecurity features.
I had a Unix system where i had a normal user login, but did not have
the root login. It was noticed that a mail client, usual for Unix,
was setuid to root - which was unusual. So, it was fired up, and
then, the shell escape command was issued. Presto. Root shell.
Very handy.
The Daily WTF has this kinda stuff:
http://forums.worsethanfailure.com/forums/
Any sufficiently advanced bug is indistinguishable from a feature.
-- Rich Kulawiec
-- Stephen.
I have to use Outlook at work, and in previous editions (OL97,OL98, OL2000) you did not have this "favorites" box at the top of the Folder List. However, with OL2003 you do, and Microsoft provides no way to turn it off, except through a bug in Outlook. By turning off a lot of the crap, and then switching to calendar and back using the buttons at the bottom of the Folder List, you can get the Favorites to disappear. With the number of folders I maintain in Outlook it makes this bug one killer feature to get rid of a very annoying part of Outlook 2003. Now if I could only figure out the same bug-feature for keeping Outlook 2003 from enabling the Reading Pane and Preview windows for newly created folders (or when upgrading).
P.S. BTW - before you all start complaining about Outlook, if you do configure Outlook properly it is just as secure as anything else. In all the years I've used Outlook (since December 1997), I have only had 2 virii run in it - and I did those myself purposely. The trick - turn off any kind of Autopreview functionality (e.g. Reading Pane, Preview, Autopreview, etc.), and set Outlook to use the Restricted Internet Zone - those two will prevent most things from being functional or running automatically.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
My favorite bugs as features are the old Netscape multiple- feature and the Doom silent-jump bug.
The Netscape multiple-<body> technique let Web page designers insert more than one body element, and color them each a shade lighter, so it would appear to cascade. It was removed from the next version.
The Doom silent-jump bug allowed Doom deathmatch players to silently fire the BFG-9000 at someone. Due to a limitation in the game engine, if you jumped off of a ledge at the exact time you fired the BFG-9000, only the sound of the jump would be heard.
It totally made Quake 1. I was wondering if anyone was going to bring that up as a bug...
aMSN has a cool bug that pops a window open on your end as soon as someone clicks on your name on their end
it's fun to pre-empt conversations with girls:
me: hey how's it goin?
her: OMG I was just thinking about you
me: ya right
her: I'm serious!
me: *gush* (L)
The one where you touch Bowser and the axe at the same time, and then on the next world, you go small when you get a mushroom.
I play OGame http://ogame.org/ when it first started you could ship more resourses than you had. When you put them on the ship you could specify how much to send (and they had a button for max resources) but if you put in more than you had it would deliver to your other planet the amount you told it to send and it did not show you with negative (-) amounts from the first planet. This was great, until it was fixed. For just plain bugs tho it has to be Slashdot. Using Firebug you will see and error on EVERY slashdot page "urchinTracker is not defined urchinTracker(); comments.pl (line 467)" the page shown is this but every page does it..... so my question is what would urchinTracker do if it was defined and if you are not going to define it why not remove it????
*whooooooosh!!!!*
All the bugs in Windows are certainly featured in my decision to stay far, far away from it.
This is a sig. Deal with it.
Apple recently tried to prevent people from using ipods to transfer music. It is now impossible (using iTunes and the Mac GUI) to pull your music back off your ipod once it is there. But the Mac is built on BSD, and the mp3 files are accessible using the UNIX CLI -- they've just moved them to "/Volumes//Ipod_control/./*.mp3".
Super Metroid has all kinds of fun bugs that enhance replayability. I'll list just a couple:
:)
Mockball: If you start running, then do a spinning jump/somersault, and morph into ball form just as you're landing, you can roll around at running speeds. The main benefit of this little maneuver is to get super missiles early, allowing you to skip the Spore Spawn miniboss.
Damage avoidance: If you shoot an enemy just as it is about to hit you it won't damage you...until the flashing animation stops, at any rate.
Murderbeam: Normally the game doesn't allow you to equip all beams at once (IIRC Plasma and Spazer conflict with each other). However, if you time some button presses in the status menu correctly you can glitch the game into enabling all the beams. Normally, the game will freeze immediately when you try firing this beam, but there are at least two or three places you can use it to your advantage.
1) If used at the right time during the battle with Motherbrain, you can make the battle go much more quickly (and create some interesting graphical glitches, too!).
2a) If you open a door and then fire the murderbeam into the door and then manage to jump through the door before the game crashes on you, chances are you'll find yourself in a completely different room than you intended. More importantly, all game events seem to be reset including items. Using this trick, you can collect over 100% of the items in game.
2b) I haven't seen/done this myself, but I hear if you use the murderbeam reset glitch in the right spot, you can flat out skip Ridley and Motherbrain by somehow triggering the final escape sequence early. Apparently this one only works on emulators, but I need to research it more. For the record, 2a tends to be more successful on the console although I hear there is one location that works in ZSNES.
Anyone who enjoyed Super Metroid back in the day should check out some of the Metroid fansites. There are several more tricks and glitches that allow you to complete the game in just about any order you like. It all comes together to pretty much seal the game's position as my all-time favorite. But no one cares what I think.
Looks like the slashdot parser mangled my path -- it should be: "/Volumes/[your-ipod-name]/Ipod_control/.[mumble]/ *.mp3"
I was writing code in lisp to remove duplicates from an unordered list.
How do you do it? Well, here is one reasonable way.
Sort the items in the list.
Duplicate items will be adjacent, so scan through the list and add items when they aren't equal to the last item.
Since it was lisp, I naturally started writing a recursive quicksort.
My code looked something like.
quicksort (list)
if list has size less than 2, return list
Pick pivot from list
L = filter items in list < pivot
G = filter items in list > pivot
return quicksort(L) + pivot + quicksort(R)
However, my quicksort had a bug in it.
Look closely.
It didn't append copies of pivot to the returned sorted list. Thus, it removed them. Since every item eventually ends up as the pivot, all duplicates are removed. It's the only bug that has ever ended up saving me time.
Before they nerfed it, the assassin in D2X had damage multipliers and bonuses that also applied to the poison damage - which worked over time.
so you had weapons that did like 30 normal damage + 4/sec for 10 sec - that would kill a monster in 5 hits or so.
if you got a +100% multiplier and +20 damage bonus you were at 90 + 28/sec for 10 sec - you just tried to touch every opponent and then hid until they died. It even got worse exponentially when adding more damage multipliers.
This was at a stage in the game, when normal chars would only do like 20-30 dmg per hit.
This sig is made from 100% recycled bytes. No keys were typed in the creation process.
In the 70s I played a Pac-Man game written by some mainframe programmers and run on the one video display they had. If things got hairy there was a bug that allowed you to park next to the monster exit and wait for them to come to you from one direction but stall just before they got to you. With all of them gathered it was easy to grab a pill and off them all.
Bunny hoping!
My old roommate at MIT used to make free phone calls to Israel by tricking the old Dormline phone system. I don't remember how he did it. Ah, good old Dormline. "I'm sorry, the number you have dialed is imaginary. Please rotate your telephone 90 degrees and try again."
"The Fly" was the greatest bug as a feature (film).
don't use windows I take it
Some of these are warts, to be sure. Nothing near as bad as Perl's though. Try, for example, to describe--or even find out--what /$foo[123]/ will match. Good luck.
"Not an actor, but he plays one on TV."
a wart.
Don't start modifing code until you understrand how the users use the product.
It is only refactoring if the users sees no change, with the sole exception of performance gains.
The Kruger Dunning explains most post on
Bug in the Diablo I engine allowed the duping of items by simply picking them in a well timed manner. You could convert potions into items.
Long time ago, but I think it wasn't fixable at all because of the system design.
Back in '94 or '95, I was working the night shift in the QC dept of a small local machine shop. We had a manually-operated, computer-controlled measuring machine. (Aside: The software ran on OS/2, which I loved.) When "writing" an inspection program, the machine would ask you to measure a part feature, then input the ideal location, ideal size and tolerance data. The program would pop-up a dialog box with the measured data and spaces for the ideal data. There was a button to bring up a second window to enter this ideal data. Version 1 of the program allowed us to enter the data directly in the 1st dialog box, so I never understood the need for a second box to do the same thing. After about 6 months, version 2 came out. The first time I tried my normal routine of entering in the main dialog, I found that the text boxes were disabled. I called the company to report this bug, and they told me the bug was in Version 1 - it should never have allowed me to input ideal dimensions into the main window. I asked nicely if they would consider putting it back, as I now had to move my hands to the mouse and click around a few times instead of just tabbing and typing. Happily, version 2.1 included the "bug" again. This has to be the only time I ever asked for a bug to be included.
I once had a job doing Windows development using Visual C++. Every time I had to compile, the machine would start thrashing away, and I had time to go to lunch, take an "in-cube sabbatical", etc. Now, there's a feature you won't read about in any manual...
"Not an actor, but he plays one on TV."
The bacteria in my digestive tract are bugs I would definitely miss.
http://alternatives.rzero.com/
My favorite undocumented opcode: HCF
Halt and Catch Fire
With the key in or out of the ignition (don't turn it to ACC or ON) hit the AC button and turn your fans to full. Then pull your highbeams. Your fans will suddenly turn on. Found it on a forum years ago...was pretty funny the first time I tried it.
Remember the days when everyone ran Windows 9X and you could make an "undeletable" folder? I always used to make a folder called "Îgayporn" on my buddy's desktop (which would show up as "_gayporn") and he wasn't able to delete it. It was a feature in my book!
minus world
Lots of bugs in my line of work are caused by input not being validated by the person who wrote the original code. The user will enter bunk data because of no validation, then call in a month or two later to complain when the program crashes. I try to tell my manager, for fucks-sake, lets validate the flipping user input. They don't want to hear it saying that the clients will lose "features." I tell the that the data doesn't make any sense. The problem comes with indexes defined as unique, and programs not forcing the user input to be unique. Instead of validating the input to make sure it's unique, they want to add a time stamp to the fn index. WTF!
Better now:)
This one time, I was hacking into this system, and I decided to play a game I found called "Global Thermonuclear War". Needless to say, I think next time, I'll just try a nice game of chess.
My favourite bug-thats-a-feature is the bank account in iLarn. If you win, the money in your bank account becomes the default value when you start a new game.
This means:
You could argue that this makes the game too easy, and you may be right, but I find it makes it more fun.
Hands down.
The basic programming language of the Texas Instruments Ti-85 Graphing Calculator was rather limited and had to compile at every edit of the program, and generally didn't produce more than text icons fighting other text icons. It was noted that the 'custom menu' which was a bottom-bar on the screen with unmapped buttons below it, pointed to places in memory rather than just copying the item to/from the buffer. Using a memory backup to inject a shell program into this menu (Such as ZShell), this was exploited to execute assembly code programs on the calculator to produce grayscale graphics and fast processing for many applications. This assembly code access was incorporated into later model calculators, but the dynamic buttons of the Ti-85 make it a long prized item for many of us geeks that know what came of it. http://en.wikipedia.org/wiki/TI-85
Slashdot: Where opinions are just opinions until you have mod points.
N00B: How do I get feature X to work in this chat room?
Clued in 1: Try +++ATH
N00B: Than......(N00B has left the chat)
-Charlie
"Click here to be removed from our mailing list" Can't figure out why I still get emails from you...
DOOM I/][
BF1942 with DesertCombat mod (v.2? or v.3?)
Unreal Tournament with the RB Car mod
Infinite City Sprawl.i te_City_Sprawl
The devs had to make sure it won't work in later versions of the game...
http://en.wikibooks.org/wiki/Civ:The_Basics#Infin
Indeed, Young Grasshopper mentions pulling on "the high beam flasher" when everyone knows that real Bugs had a proper floor mounted button to change high-low beams.
Some mornings it's hardly worth chewing through the restraints to get out of bed.
A NASA engineer told me about how some debugging code was inadvertently left in after production. Later they had in-flight problems that they couldn't fix. Finally an engineer remembered the "mighty mouse" code that would cause a reboot, and they invoked it remotely and everything was fixed.
I guess I'm a little disturbed that they had to reboot the space station... LINK.
Myspace's HTML filtration is very poorly done. I'd argue that the ability to customize a profile by CSS injection is a bug that turned into a feature.
I had a game for my Acorn Electron called Blagger. It was a 2d platform game. This was back in the 80s.
You wandered around rooms negotiating obstacles and (I think) stealing things. You had to go as fast as possible to complete the level before the time ran out. Time available was a thin vertical line to the right of the display which started off the full height of the graphical area and shrunk vertically downwards as you used time. When you completed the level the remaining time bar would shrink much faster giving you bonus points proportional to the remaining length, so the quicker you did it the more points you got.
Just one time, however, I did a level where I think I completed it simultaneously with running out of time, as the time bar decremented ... from zero downwards. I scored a large number of points.
Never could do it again.
Don't know if its still there, but the Coruscating Mines in DAOC (Dark Age of Camelot) used to have an invisible 'crack' in the geometry model at one particular point. You had to run the gauntlet to get to this lowest level of the mines, and getting back up after a long session always seemed like a huge hassle. So the solution was the 'crack'; there was generally a line up of people jumping and hopping, trying to drop through the crack of the DAOC world.
The DAOC system would recognise when someone left the propoer geometry, would think it an error situation, and had a recovery mode which would return people to their last bind site. In other words, it was a nice quick exit from the mines (without having to die).
It was a bug exploit that everyone seemed to think was perfectly OK, perhaps because no one was a loser and everyone gained.
As a programmer, and a former student in at least one other math-related discipline, it's clear to me that 4 and 4.0 are equal. But they are not equivalent. Knowing 'Accuracy', 'Precision' and 'Proper Use Of Units' like the back of your hand will help you in any career.
[Ego]out
Maybe not "bug" but "unexpected software interaction".
I was playing my electric guitar into Garageband using my external
preamp and effects and just listening to it.
I installed an app called "Jack" which is an internal audio routing
app and started it up while doing the GB listening session and it
added a weird, intense ring modulation effect to every audio signal
going thru the computer...
My guitar sounded like the rings of Saturn falling apart, it was
incredibly weird.....just great!
It means it wants you to load letter sized paper into the printer. In the same manner, "PC LOAD A4" means to load A4 sized paper. http://en.wikipedia.org/wiki/PC_Load_Letter
The Apple ][ software maker Beagle Brothers was well known for finding features that were either bug results, easter eggs, or just plain strange behavior. My favorite was their discovery of the ROM routine addressing command "call 985". When invoked from Applesoft* BASIC, a distinct "MOOOO" would come from the internal speaker. This was almost certainly a bug, as its behavior depended on other, uninvestigated and unknown events in the machine's memory. Sometimes it would do it only once, sometimes it could be invoked in a row, and sometimes it would not work at all. If it worked and then quit, it would not do it again unless the machine was rebooted.
Beagle Bros. cranked out such a volume of utilities/goofy-stuff software for the Apple ][ that something very much like the following appeared in the letters to the editor in one edition of the Apple users' magazine Softalk:
"I think the monthly 'Top 10 Utilities' list should be renamed 'The Top 10 Beagle Bros.' list."
Mark Pelczarski
Penguin Software
"I agree."
Bert Kersey
Beagle Bros. Software
It remains a mystery as to whether these letters were done by pre-arrangement between Pelczarski and Kersey (a distinct possibility, considering the closeness of the Apple community at the time) or a prank printing by the editors of Softalk (also a distinct possibility, considering the irreverent nature of the Apple community).
* The argument as to whether it was a bug-as-feature or an easter egg is exacerbated by the fact that the Applesoft ROMs were not written by Wozniak: they are stamped "Copyright 1981, Microsoft". The "routine" at address 985 (almost certainly a point internal to some other routine that started earlier) was not within the Applesoft ROMs, but it only worked when invoked through Applesoft.
"I may be synthetic, but I'm not stupid." -- Bishop 341-B
The BFG was never supposed to kill everything in the room it was shot, but damn the thing was a cool mistake.
So when I was first starting out sometime in '93, I was a wet-behind-the-ears PC Technician for a medical claims processing division of a hospital. We had Groupwise for messaging, and at the time I thought it was really cute to setup auto-execution of registered file types, so that it would open attachments and stuff on the fly for me. Viruses? Malware? Bah, we were flying fast and loose in those days.
So I work late one Friday night getting a bunch of PCs updated to the latest Novell client, and I had turned up the volume on my PC and speakers so I could listen to music while I worked. Saturday, I went over to a buddy's place and he had a bunch of sound files from different comedy movies. A bunch of them were really cool, so I told them to send them to me for mail alert sounds and whatnot. (see where this is going yet?)
I get into work late on Monday morning, and the claims processor ladies are all sitting around me, quietly typing away. I boot up my PC, bleary eyed, and then open mail. I'm scrolling through, and at ear splitting volume I get
WHERE ALL THE WHITE WOMEN AT?
from Blazing Saddles. I flushed crimson and jabbed the power on my speakers way too late.
The claims processing department was mostly fiftysomething African-American women, who all burst out laughing and didn't stop for the next 5 years I worked there. Sometimes I'd walk down the aisle and they'd just start cracking up, and then it'd get contaigous and flow through the whole department. Lucky for me they all knew me really well, knew I wasn't a bigot/rascist pig, knew the movie reasonably well, and had a good sense of humor about it. My buddy is fond of telling the story whenever anyone brings up the preview-window feature of Outlook, or any other automatic mail processing features. Me, I don't use any of them anymore.
As a software developer, I am amused by you all. "4" is quite obviously a string, and can not be compared with 4.0 without a set of business rules.
:)
Multiplying it in silly ways will not help you either.
Lies about crimes
The university I attended started a debit card program in 1992, so that parents could give money to their kids to spend on food and books at the student union. It seemed to work normally for almost everyone, but a friend's card added the debited amount to his balance every time he used it at the bookstore, rather than subtracting it.
Unfortunately, the error was discovered after only a few weeks, and he was too cautious to buy stuff for all his friends...
I don't think my PC can load paper into my printer?!? WTF
Paying taxes to buy civilization is like paying a hooker to buy love.
Some modems used to listen to commands in ICMP packets. During debates on webbbs if the other guy was winning a 'ping -p 2B 2B 41 54 48 30 HIS_IP ' +++ATH0 would at least give one the satisfaction of reading his posts about a suckass ISP disconnecting him. After 5 or 10 of these he would forget the argument and be ranting about crappy ISP's.
The lumber bug!
Two of my favorites:
(1) The Z80 is basically an 8080 with some extra 16 bit registers. If you look at the way the opcodes
are laid out you'll see that a pair of one byte prefix instructions are used to implement this - you
specify the right prefix in front of an instruction that modifies HL and it operations on IX or IY
instead. But there are also instructions that operate on the 8 bit parts of HL (H and L). And sure
enough, you can use the prefix to get a bunch of additional 8 bit registers. There are also several
other tricks that show up in similar ways, but you get the idea...
(2) The KA model of the PDP-10 had a bug in the AOB (add one to both) instruction, which adds one to
each 18 bit half of a given 36 bit register. There isn't supposed to be carry between the halves
when this is done, but there is. So a value of -1 in the lower half will, after an AOB, end up
adding 2 to the upper half.
Why is this interesting? Because a lot of system calls in TOPS-10 indicate success or failure by
skipping one instruction when they return. And this is implemented by (you guessed it) using an
AOB instruction on the program counter, which has the nice property that it does the skip and
clears the exec mode flag (low bit in the upper halfword) at the same time. So what you do is
allocate enough memory that you can put a system call at address 777777 that succeeds. When it
it returns you get control back at location 0, but in exec mode. The trick then is to do
whatever nasty you want with code in the accumulators and then turn off exec mode. Or you can
simply crash the entire machine, but that's not considered sporting.
In VB 6.0, if you were selecting multiple widgets and then you made the mistake of again selecting one you had already selected, the whole IDE crashed and burned. Everything lost. This little feature screwed with me enough that I abandoned all MS development and learned Java. Never had to care about MSDN again.
Ironically today I was in the middle of developing some error handling code, and to test it I immediately threw in a messagebox to display 1/0... when i run the code, I got a message box saying "Infinity"... after some laughing I went back and changed it to 0/0, which it replied "NaN" (not a number)
:)
I just wanted to force an error!
The bug in the 80286 that made it _not_ wrap around addresses at 1MB in real mode enabled all kinds of hacks that allowed 8088 code to access over 1MB in real mode.
I always enjoyed cars with "child-safe rear windows" which don't roll all the way down. In many cases, this is because the rear wheel well cuts into the door, reducing the space available for the window.
My favorite bug-as-a-feature occurred in the original Mario bros. game for the NES. I suppose it wasn't so much a feature as simply a bug in the game Since it was only availible at one point in the game. Somewhere, I thing in the third world, as you were climbing the end pyramid you could jump on a descending koopa and, provided you did it just right, Mario would keep bouncing off the koopa shell as it would ricochet back and forth off the step. Soon, you would begin receiving credit for your continued bouncing in the form of extra lives. After a time your number of lives would climb so high that the game began representing them as various other graphical elements from the game; bricks, pipes etc. Unfortunately, if you left it too long (20 mins. +) the game would simply kill Mario. I suspect that the console simply ran out of memory to hold your fantastic number of lives and this was a safeguard to prevent the console from locking up.
The only time I've ever been able to exploit this was on the original NES. Even the Super Mario all-stars SNES version will not reproduce this.
As a much younger individual, this nearly unlimited lives 'feature' was the only way I could beat Bowser and it led to some interesting conversations with my school friends at the time.
Me: So I beat Bowser last night!
Friend: Cool! How many lives were you down to?
Me: Uhhh, pipe?
Friend: Riiiiiiiiiiiiiiiight.
This game is base on the programming Bug!
jump dash slash dash fire!!!
www.gunzonline.com
In X-Wing, the last level required you to assault the Death Star. The horde of badguys was nearly impossible to get by in time, but if you instead jumped to hyperspace, as though you were leaving the mission, and then cut out the hyperspace engines a split second after they engaged, you'd jump right past the huge wave of badguys and get to the Death Star to start your trench run before poor Yavin IV bought it.
[Ego]out
Sorry.
"Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
Management (i.e. the PHBs) had mandated a 'one way' solution without realizing that each engineering group did things a little bit differently and needed their own view of the data. They finally took over and started re-designing the system to remove these 'bugs'. Half a billion dollars later, they aren't finished yet. Meanwhile, each engineering group has gone back to tracking their system configuration data using spreadsheets, hidden from management, since they don't comply with the 'one way' mandate.
Have gnu, will travel.
As a WWI flying ace I would cross the river into enemy territory and drop my one bomb on the enemies air strip while all their planes were scrambling after my old Sopwith Camel biplane. A few minutes after that I was dodging bullets and loosing fuel like a sponge made out of swiss cheese. When all hope seemed lost I had my trusty old 'physics trick' that would always bring me home to fight another day. By shutting off the throttle to idle and flipping the plane over I could "fall upwards" under the force of gravity (to most planes gravity is down, but my plane was special). In fact I would fall upwards even after the engine died from lack of oxygen. Since back in 1918 the turbo had not even been invented yet so I was soon above the enemy's normal flight ceiling and I could just flip back over and glide back home across the river and land at my own base. Good thing I could hold my breath that long, for lack of oxygen! Yes, Sonny, after landing back home I'd just dust myself off spend the night at a local saloon and go back for more the next day! That red Barron never could figure out how to shoot me down and they never figured out how to follow after me either. Yep, those were the good old days!
I can't believe noone mentioned the Elite II: Frontier hyperjump bug! Ok, the game had many bugs and it was easy to get one of those infinite cash deals, but the best bug was definatelly the Hyperjump. So, you could only hyperjump to something like 20 Light Years (don't remember exactly, it's been years), but the distances were kept with a 16 bit variable apparently, so at multiples of 655.36 ly your jump was considered 0 ly length (so you could select something another 20 ly or so from that distance). The effect was that you could in the end go ANYWHERE in the galaxy with just two jumps if you were good at triangulation.
Then, I have to mention "Hangly Man". This cheapo Pacman knockoff would be just another arcade clone if it didn't have a bug that made it hard as hell. I don't remember exactly, but somewhere probably at the second round a bug would make the walls dissapear! No, you could not go through them, it was a display bug. So, the corridors that had dots were navigatable, for the rest you were in hard luck if you were chased by a ghost and not have photographic memory. Anyway, for years I thought that this thing was on purpose, until I also realized "Hangly Man" was really a Japanese attempt at "Hungry Man".
Violence is the last refuge of the incompetent. Polar Scope Align for iOS
My favorite bug is the ability to circumvent the type system in C.
The invisibility effect would break whenever you performed certain actions, e.g. picking up an item. The important thing here is that it broke after the action completed, so you could cast invisibility, steal something, lose invisibility, and NPCs wouldn't react because you were invisible while the theft took place. My character had 0 stealth skill and yet I was able to clean out highly guarded vaults using this trick.
Also, it wasn't exactly a bug but you could layer clothing like crazy and enchant it all. I loaded so much health regen onto my wardrobe at one point that my vampire character could walk around in broad daylight and outheal the damage.
I'm so excited I just made water in my pantaloons!
If you don't get the title you'll never get this post.
;) )
I just loooved the Vanish - Doom "bug" in FF VI (after all, was it a bug? Vanish made physical hits never hit and magic always hit and Doom was supposed to be able to kill almost everyone as long as it hit. I just think it sounds fair and clever.)
(But I'm against the Vanish - X-Zone bug
It used a psuedorandom RNG that reset every time you entered a dungeon. Once you found a chest on the first floor with an amulet that would turn you into a lizard man (lower all your stats except increase your HP, you could boost your HP into the millions by exiting/re-entering the dungeon until extreme boredom set in.
And in Ultima, you could format a character disk, then start a game w/out running the character generation program, & start life as a level 0 lizard man & access some otherwise unavailable content (if you could avoid starving long enough to get to a town).
Only works if you have a ps/2 keyboard. If your system only has a usb keyboard, then the usb drivers won't get loaded, and no keyboard input (but you still have a nice shell prompt to look at).
The original answer of 5000 is pretty close to the middle of that range, so that means that in some sense the OP was actually correct!
...brand new, all over again.
cdrecord always complains about how opening by device name (as opposed to a SCSI LUN) is a bug and unsupported, however, thanks to this little oversight, I and other people with IDE CD writers (=everyone) can use it.
The way color graphics on the Apple II worked, some of the bits in video memory shifted the subsequent pixels by half a pixel width, which changed the colors when you were using a color TV or NTSC monitor.
On a monochrome TV or monitor you got to see the pixels shift.
I used this hack to create super-hi-res characters that were more rounded and fully formed than normal hi-res, by carefully taking advantage of the offsets. Some of the characters looked a little odd if you inspected them closely because it was hard to use it without making verticle lines zig-zag, but I was able to hide most of the offsets in serifs. The people seeing it were generally too freaked out about how I was getting super-hi-res to inspect things that closely, unless they'd already figured it out first...
Many years ago, I was tasked to add some more robust search features to our company's helpdesk software. Being a novice developer, I ended up leaving the search fields wide open to SQL injection exploits. Thankfully, to my knowledge it was never abused, and once you got the hang of it, it became a pretty powerful reporting tool. Those were my young and foolish days though, I now realize that the potential for disaster was dangerously high :)
In the mid 90s, I worked in our computer lab in college which was primarily populated with Macs. FileGuard was used to protect data used by professors and the actual IT employees. I figured out that they had configured security on a folder-by-folder basis so you couldn't navigate into a folder where you didn't have access. However, the security admins hadn't implemented file-level security or prevented you from seeing the contents of a protected folder in a search window.
So, I discovered that the search window allowed you to view, open, and edit files identified by this exploit. It probably wasn't an actual bug, but the tool sure didn't help ensure you had appropriately protected your data. A few searches for *.* helped me figure out where I should focus my nefarious searches and chaos ensued from there.
Tasty stuff.
It seems every so often I need somebody at the White House dot gov to send a reminder email to my boss expaining to him what a wonderful job we are all doing. As a pointy haired boss/security researcher one day he might just catch on, but until then it is just a lot of fun to watch your boss being in such a good mood. Good thing that the Clues-Are-Us stores in our area have not had a good sale recently. Catburt would be proud!
Hows about triple faulting the 80286 processor to drop out of protected mode?
AT&ROFLMAO
Canceling a crouching forward into a dragon punch or fireball. :)
Of course they're not equal.
Someone forgot to Format Cells/Decimals=1.
Then you discover the other cell is holding 4.4 rounded to 4.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
In fact, there were even "DRM" (before we knew that acronym!) schemes that depended on some of the "illegal" operations in the 6502. Actually, I believe the original NMOS Synertek SY6502 had some of these, because IIRC, the Apple II never used a Rockwell R65C02A (maybe in the Apple IIc), and it was in the context of Apple II games that I first heard of the undocumented opcode hacks. In fact, IIRC, the games that used those wouldn't load once people replaced their SY6502 CPUs with the Rockwell R65C02, because they "fixed" the "opcode leak" "error".
Oh, and the 6510 was the Commodore (who bought Synertek's foundry) variant of the 6502, that went into the Commodore 64. I do believe that Rockwell had a chip called the R6510; but it wasn't the same thing.
Acid2 has my vote for favorite bug-as-a-feature.
For those who don't know, Acid2 is a browser-testing CSS page with many intentional bugs in the code. The result of a fully-compliant browser rendering is a smiley face. Wiki entry with examples.
Did you know that "FTW" ("for the win") is a direct translation of "Sieg Heil"?
Seeing the "So-and-So has left the game." message is so fulfilling.
Now if anyone remembers how this could have happened, that would be a bug I would love hearing explained.
--Chag
Like most cars, my Taurus needs to be in Park or Neutral to start; in fact, it can't normally be removed from Park without the key in the "on" position after being started. Then at one point it wouldn't shift out of Park even when the engine was running. Most people have experienced something like this -- usually you have to jiggle the steering wheel a little to release the steering lock and then shift. No luck doing this. After a lot of trial and error, the only way to start the car and actually drive it was to turn the ignition from lock, past off, to on, then off (not lock), shift into neutral and then start it normally.
Usually a problem like this is something to check out right away -- something's probably loose and it's only going to get looser and then fail completely at the most inopportune moment. However, I put it off. The car was used by several people (who then knew how to start it) and the keys were hung in a very public space. Twice in the month before I got around to taking the steering wheel apart, teenage car thieves tried to steal it during evening hours when there weren't many people around. They weren't successful because they couldn't get it into Drive before somebody noticed what was happening.
When I finally checked out the problem I found nothing loose or otherwise obvious problem in the mechanical or electrical systems and it's operated fine for the last six months -- including one more theft attempt -- as long as you follow the correct sequence. Kind of a freebie anti-theft feature.
I read in the news that the creators of MySpace were very upset when they found people were customizing their profiles with HTML.. They thought the custom profiles looked hideous.. but the users loved it, so they haven't blocked it.
In the original X-Wing, you could assign other pilots to be your wingmen. It didn't help much -- they flew faster and were more aggressive -- but it was nice. The better pilots were very good at certain roles, particularly capital ship bombing and dogfighting. The higher ranked pilots would also listen to your commands better. It was especially nice when the expansion pack came with Top Ace pilots (the highest rank) which were very difficult to get. You pretty much had to beat the game to get a Top Ace rank.
The problem was, if the pilots died the file got wiped (they had a 75% chance of being rescued if you won, 0% if you lost). Until I discovered that the pilot file was just data about how good they were and the name of the file was the pilot name. I wrote a batch script to copy pilots when I ran out. I had a Red squadron, a Gold squadron, and a Blue squadron.
The road to tyranny has always been paved with claims of necessity.
The Z80 processor (related to the 8088 that was released by Intel) has a number of flags that are technically undefined, but still operate very effectively, and pretty much across the board of implementations of the Z80.
What happens is that there are actually 3 bits of the flag that are just simply mapped from the result into the flag register. These are the sign bit, the 6th bit, and the 4th bit (starting from C=1st bit)
As I recall there's a version of Ghosts and Goblins that required this emulation support to be there, or it would work wrong.
There were quite a few other "undocumented" opcodes, that none the less made it into the Gameboy's processor and the Z80 processors in common use (like in the TI-8x series) and ended up being very commonly used.
WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS
Crouching Fierce Punch canceled into Fireball.
My favourite bug as a feature, is in Temco Super NBA basketball for SNES, the most amazing player for his 3-pt shooting ability is Jon Sunvold!
k etball):
He had a 99 3pt FG% and a 60% long range shooting bar... he could single handedly beat teams 140 to whatever...
From the wikipedia (http://en.wikipedia.org/wiki/Tecmo_Super_NBA_Bas
Miami Heat's guard Jon Sundvold, who retired in 1992 suffering from an injury, is the game's best 3-pt shooter. He was 1 for 1 in 3pt Field goals before retiring and has a high shooting range bar (60% or so) from being a career sharp shooter. In this game, if Jon gets across half court he can sink just about any 3 point shot with amazing levels of success.
actually, it`s init=/bin/sh is documented in bootparam(7). Therefore, not a bug.
Stock Market: The Game (http://www.the-underdogs.info/game.php?id=1468) had a similar bug.
The game had 10 turns. You were allowed one trip to the bank each round. On odd rounds you could borrow millions from the bank and invest it. On even rounds you could go to the bank with little or no cash in hand. When the banker asked how much you wanted to repay, you simply said the full amount and he took what you had on you at the time (if anything). This allowed you to borrow about $35 million over the course of the game.
At the end of the game the announcer made fun of you for having made such a pitiful amount of money. The only way to get a high enough score to not be ridiculed was to exploit the bug.
Now that I think about it, the game wasn't very much fun before I found the bug...
Wow, I didn't see that joke coming at all.
Back in the early days of Everquest, there was a point in North Karana (one of the widest zones in the original game) where you could walk between two trees into the water at one end of the zone, fall below the world, and be teleported to the "Safe Spot" all the way on the other side of the zone near Qeynos. Saved a lot of time if you were heading towards Qeynos. Sadly it was eventually "fixed".
Regarding the clothing thing, Exquisite clothes can hold rather big enchantments. Exquisite Rings and amulets can take extreme enchantments. If you put as much Chameleon on these as possible, you can walk around with over 100% chameleon without even wearing any armor. Why is that so good? Because 100% chameleon is the same as invisiblity except it can't be broken. With 100%+ Chameleon, anyone you attack will not attack you back; they'll run around aimlessly without being able to spot you. This is true even for Dagoth Ur. With 100%+ Chameleon you are free to loot and steal all you want and not get caught. Another exploit that was fun was getting the "Summon Golden Saint" spell and getting Azura's Star. Summon a Golden Saint, cast Soul Trap on it, and kill it, and you get a free Golden Saint soul. Excellent for making "constant effect" enchantments such as the aforementioned "chameleon clothes".
Montezuma's Revenge, AtariXL/XE. What likely was a bug made into a feature by the authors.
:) And then you could walk out of the door, go use your newly-gained items and then come back for more. Once I managed to kill every single skull and spider within reach, by duplicating a single-use sword enough times :)
When you got to the Montezuma's room, there was a blue door on the upper floor. You didn't want to open it (despite posessing the key). Instead, you'd enter the middle level and climb a ladder to the top level, which ended right below the door. So you'd continue climbing - climbing the door, like a ladder. Which leads to... the score box. So now you're in the small box with your score on the right side of the screen. You exit it right, and you land in the previous room, but on corresponding level - in your inventory box! And now the best part, as you jump up to reach an item in your inventory, it's added to your inventory - a copy of it, that is! Instant item duplication trick! Then you go back to Montezuma's room, stand above the door, then let Montezuma's stomping push you back into the door. (This seems like an added feature to make exploiting the above bug feasible
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
on xbox that allowed users to run code on an unimodified xbox and install linux.
EQ had a similar point or two. One I remember was in East Commonlands, zone in from West Commonlands on the left wall, walk up to the top and run along it until you fall through. When the server detects a fall through, it puts you in the safe spot which happened to be on the other end of the zone. Quick transport to town!
Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
The original home video game system, the Atari 2600, has an interesting feature, now known as "frying," that could cause just about any game to produce undocumented game play. Usually it was something silly like garbled graphics or messed up sound effects, but every once in a while it would produce an interesting spin on the game. For example, in Space Invaders, the player's cannon could fire only one shot at a time, but frying the game would allow two shots. Outlaw produced new game variations not mentioned in the instruction manual. Yars' Revenge made the game extra challenging by making the player black, the same color as the background. And so on.
I used to play a game called Warheads. Very similar to Q-BASIC Gorilla, Scorched Earth, and Worms. The game allowed you to create your own weapons using specific payloads and stages. If you did it right, there were specific combinations that took advantage of a bug in the game that would sink a multiplying warhead into another players shield. The multiplying warhead would bounce back and forth for a long time multiplying the payload. Inside the shield would turn completely white and the payload would explode causing massive amounts of point damage. The way the weapon worked was a bug, and was left in in the game when new versions were released.
There was an urban legend in our building about being able to press and hold some button when entering the elevator that would cause it to "express" back down to the lobby, skipping any calls to other floors on the way down.
Our building had the lobby on 2, but the full bank of elevators would go to the 1st floor, exiting in a dimly lit elevator lobby that was exit-only and presumably only for emergencies. "Normal" traffic had to walk across the first floor, ride the escalator to 2, and then walk around the security desk to get to the elevators and vice-versa to exit.
The elevators all had a blank button that presumably went to 1 if it was only button pressed; pressing any other floor (like 2) would cause it to be ignored. Whenever you got on the elevator with a courier as the only occupant, the blank button was lit and the couriers would all groan when you hit any other floor button since they then had to walk an extra 100 yards or so and ride the escalator to get out of the building.
Neither trick worked for me when I tried them. Occasionally the elevator would go to 1 on its own (it must have been a fail-safe exit floor in the event of a mechanical problem that put the elevator out of service), and it was kind of weird when you were the only one on the elevator and not paying attention -- the doors would open and you'd be presented with this weird, empty space that was rather dark.
I recently picked up a Sansa e280, nice device overall.
Normally, to recharge the unit, you have to plug it into the USB adapter, at which point it syncs with the computer, and leaves the screen turned on until you disconnect it.
Now, those of you who like to sleep in dark rooms know how distracting bright LCDs can be, but luckily the hardware was designed with an unintended feature: if you plug in the USB adapter part-way, only the power leads make contact. Using this trick, the player has a charge indicator but remains in "play" mode, so the screen automatically turns off after 15 seconds.
The reason for this is just good connector design: you want to connect your power contacts before you connect your signal contacts, to prevent glitches when the cable connects...so, the power leads are longer.
Man is the animal that laughs.
And occasionally whores for Karma.
DRM has not spurred the development of P2P. Everyone wanting quick easy access to *FREE* music has spurred P2P.
Your minor quibble is incorrect: the "PC" in the "PC Load Letter" error stands for "Paper Cassette", not "Paper Cartridge".
:-)
I don't know what the original source is of that erroneous piece of information, but I've just corrected Wikipedia's article on the subject (they had "cartridge" also).
Don't believe me? Go to one of the many technical documents at the HP site itself. I don't understand why so many people are getting this wrong. Knowing that it stood for "printer cassette" is one of those pointless, geeky credentials I assumed more Slashdotters had.
Whoever designed level 61 in Frozen Bubble is a sadistic bastard.
I'm a personal fan of the linksys wrt54g bug that let you load your own firmware. Not only did this send the sales for this model through the roof, it also got several books published on how to hack the thing to bits. Eventually linksys caught on and got greedy around version 4 when they started cheaping out on the hardware and closing the firmware bugs. Now they market the version 3 as the WRT54GL (linux edition) for $20 more.
*currently using an overclocked wrt54g v3 with extra fans and a 2GB sd card for storage running openwrt*
OMG!!!
If you've played this game, you know what I'm talking about. You could 'tap' someone's bumper and they would go flying. That was one of the most fun PC multiplayer games ever. You never knew what was going to happen. Eventually, you figured out which situation were going to have the highest likelihood of sending you or someone else flying, but it was still unpredictable.
My university had an old low end cash card for things like copying, laundry, and vending machines. seperate from the dining cards I might add.
if you managed to get your card below the lowest threshold selling point in the system ($.07 or less IIRC) a certain machine on campus would error and write a - amount. every reader at that point would read the card as $199.00 and then write a corrected number after use. everything was available. the worst part was, I never even managed to use up one of those cards in 4 years.
really cool and so barely worthwhile since how much vending machine food can one person eat...even for slashdotters.
Ah, the indirect jump bug. It was "fixed" in the 65c02 used in the //c.
From wikipedia: The 6502's memory indirect jump instruction, JMP (), was partially broken. If was hex xxFF (i.e. any word ending in FF), the processor would not jump to the address stored in xxFF and xxFF+1, but rather the one in xxFF and xx00. This defect continued through the entire NMOS line, but was fixed in the CMOS derivatives.
I seem to remember that the indirect memory access (not just jumping) had a similar bug, but I didn't immediately find a reference.
HIV Crosses Species Barrier... into Muppets
Put your BIOS into USB legacy mode first. Then it'll work.
Not so much a bug, but an unintended effect of their protection scheme. The (Ultima like) game was written BASIC and circumvented the break key by restarting the program in some parts. This proved helpful in the casinos.
Bet all of your cash and if you win, great, keep it rolling. If you lose, immediately hit Ctrl-C and the casino game restarts with your money restored, and not with whatever value the casino program began with, but with whatever you had at the time of the break!
The game would also close the casino if you won too much money. Not a problem, just hit the break key and keep playing!
Your assumption seems interesting to me. In a production environment end users are using an application that obviously is useful. In your attempt to "clean up unreadable code", it no longer works. What you did instead was make the code perhaps more readable, but you changed the functionality. Perhaps more pejoratively, you broke what was previously working. Instead of looking at your self to see what you broke, your assumption is that it all worked by accident.
Before committing any changes to a production system, I would expect that a developer would test the functionality before making change and compare the results after changes were made. This would have uncovered that you changed functionality. Another tact would have been to create unit tests before making your changes, and then run those test as you were making changes. You have have discovered that you changed functionality. Instead, you did neither, and you broke a feature.
I'm a little long in the tooth, working 18 years as a programmer. I've seen this situation many times. Every young new hire thinks that they are smarter than the people hired before them and that all of the existing code is crap. It all needs to be rewritten because the previous coders were bad programmers and if it were redone, it would be cleaner. So they rewrite existing code and they break things. I can only assume that you work for a PHB.
Any manager worth their salt would initially halt a rewrite of WORKING code. If you want to modify something that is working and has been working and has had the bugs worked out, you will really need to prove that there are benefits to doing so. And as a manager of a development group, anytime someone who is still wet behind the ears wants to rewrite code, I tell them to step back and look at the code again. Is the code really crap or is it that you just don't understand what it is doing? Perhaps having an older coder walk through some of the code, maybe explain why the code was written a certain way, might shed some light on how it is really functioning. The fact that in your case you changed functionality, it shows that you didn't understand what was going on in the first place.
"Microsoft has made computing accessible to a population who would otherwise not be able to use computers" - B. Kernigha
He was probably distracted with his TPS reports.
My blog. Good stuff (when I remember to update it). Read it.
another example:
create identical sets in different orders.
x = set((1,2,4.0+0.0j, 4))
y = set(( 1,3,4, 4.0+0.0j))
a = y | x
b = x | y
a == b
# result is TRUE
yx = list(a)
xy = list(b)
xy == yx
# result is TRUE
sorted(xy) # not an error
sorted(yx) # is an error
The funny thing is that you are not even guarnteed which of those will work and which will be an error. This is because the storage order of the set is not stable so it can change the order of the underlying lists.
oddly enough for some reason the lists come out of the set the same order they went in. This is appropos the topic of this discussion of a non-guarentteed feature that I am relying on.
Some drink at the fountain of knowledge. Others just gargle.
I just remembered a... I guess it was a bug or something like that... my classmates discovered they was about 13 years old...
If you used Winpopup to send messages to another computer on the school network which hadn't Winpopup running it would hang the other computer after three messages... they got kinda busted when every computer except the one they were using hang up =P But they had longer time doing whatever we were supposed to do.
Back in the day, oh around 1995, my college buddies and I used to play on the Realms of Despair MUD. The Gods that be were heavily improving the codebase and adding new classes. Our favorite class at the time was the Vampire. It seemed to have all of the benefits of a Thief, Mage, and Fighter class all rolled into one.
Instead of mana, vampires used blood points. Young vampires did not have the feed skill, but could drink from a pool of blood created under their slain victims. In any case, there was a bug with the feed skill, probably intended as a feature. When a vampire fed, it both replenished the blood point pool, but also the health points. It took a while to tweak the system to the correct balance, but until then, we had no need of healing spells or potions. Just script tinyfugue or tintin++ to always throw in a few feeds whenever the blood points or health points were getting low, and violla! The most effective attack was to cast invisibility, backstab, feed, and then go into whatever sequence of attack you might have in mind.
Our other favorite bug was to duplicate equipment. Characters and their equipment were not always saved whenever a "transaction" occurred. For example, if a character picked up a sword, the MUD didn't automatically save this to the inventory. Characters were saved periodically, though they could force it through the "save" command.
If you could find a way to crash the MUD (exit a room out a door that didn't exist or some such gem of secret information) you were golden. Character A hands character B a piece of equipment, be it a weapon, gold, or bag containing any number of items. Character B types "save", and A or B then crashes the server. When it comes back up, Character A and B have a copy of the equipment in their inventory.
Of course, the Gods quickly figured this out and started tacking unique serial numbers onto pieces equipment and running periodic audits...
Chewie, a.k.a. Spieler
assert(expired(knowledge));
Since hardware items seem acceptable... the pop and snack vending machines at my university accepted our meal plan cards, which worked like debit cards. The pop was all the same price so you swiped your card, money was debitted, you made your selection. No big deal. But the vending machines, which were the rotating-coil-full-of-things type, had items of varying cost. So the sequence went 1. swipe card 2. make selection 3. money gets debitted. If you interrupted the machine before it sent off the debit transaction by, say, unplugging it just as the coil started to turn, it would loose the transaction. But when you plugged it back in it would finish turning the coil and you'd get free chocolate. We weren't greedy and would just take a few items each a couple of times a week from one of the machines. Then some other fool cleaned one out and made what probably looked like an accounting error an obvious bug. They stopped allowing meal cards in snack machines after that.
noone mentioned how windows gives you a 5 minute break from your work everytime you
need to reboot?
My old company had a firewall that blocked all the net security sites I needed for my job. However, you could get around this by adding a /. to the end of the URL. Of course, Google cache worked too, and later I found I could just turn off the proxy... It was a defense company.
Long ago I played Ultima 6. If you got on and off a boat two many times the game and your save file were irreversible corrupted. I accidentally discovered that pressing alt and typing characters would transport you around the map, and soon my friend and I had figured out the hex coordinates for everything important in the game. Thus, one bug was cured with another bug.
My all time favorite has to be a straight to desktop bug I stumbled across in IRIX 6.2. If the screen is locked and has external SCSI devices you don't have to remember your password. Just disconnect the device from the machine and after a little reassurance you have access to the desktop.
Xlock never comes back after you tell the dialog that you realize something has gone away.
It's amazing how spiritual an elaborated beer commercial can be. -- Philip K. Dick
I like the flickr bug that let's anyone see the original size images even though the photographer has elected not to share it. I use it allthe time.
First entomology, then virology, and finally bioinformatics systems. Bugs follow me wherever I go.
You've just learned the lesson that Backwards Compatibility in bugs is as important as Backwards Compatibility in functionality.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
I think one of the best bugs as features came from a bug in Intel processors that didn't reset the segment registers when you cancelled protected mode, resulting in Unreal Mode, a 32 bit flat memory real mode. It got used to good effect by a number of PC Games and Demos.
The fact that Zonealarm will ignore any data to/from the terminal emulator program under certain conditions.
:(
Otherwise my P4 is slower than 386 since i have to run firewall/AV underneath.
I lost all hope in the future after finding we need P4 HT computers to emulate a dumb terminal under windows now
The bug on the dryer machine next door that got it stuck on 1 minute left.
Shakespeare poems - infinite monkeys with infinite time.Computer tech support - a few trained ones working from 9 to 5.
Right!
;-)
Wow! I remember the xFF Jump Indirect thing for sure!
I swear, that's still my favorite instruction set for hand-coding in Assembler.
Or perhaps you prefer ARM assembler...
At Christ's College, NZ, in 1978, they ran the southern hemisphere's largest high school computer/network, a Digital PDP-11 and a whole bunch of gigantic dumb terminals. As students a few of us continually busted the system wide open, just as fast as the PC "Techs" at school, and the coders at Digital could close the holes. The fact that any file prefixed with a 9, as in "9cat" always allowed previous "Privileged Status" programs to run again, until we cracked our way in again...
:)
:)
However, the best and most reliable way to hack in was to simply reboot the system, and when you got the Dec-Writer output that said "RT-11 Basic Loaded", you could pop the door open on the DX01 (System) 8" floppy drive, and the boot process would fail before any security had been applied to the system, so all logins were priveleged...
When some idiot spilled the beans on that they simply put a lock on the power supply system which fed the computer with power. They didn't figure on us walking 40 metres to an electrical control panel in a small tunnel leading under the building, and flicking the circuit breaker for the computer lab, did they?
Then, although not a bug, we created a program to copy out the password file to readable text. Our system administrator used the following passwords for his "00" login; JFMAMJ, JASOND, BOSS, SYSAD, and the list continued, hilariously, including the name of his dog, too, from memory.
I created a hack on our school outdoor sports scoring system, which exploited the fact that if you left the username blank, and put something in the password field, it logged you on as admin... I didn't do any sports for a whole semester.
How many escape pods are there? "NONE,SIR!" You counted them? "TWICE, SIR!"
Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02)
[GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 4*1200
4800
>>> 4.0*1200
4800.0
"Debug Assertion Failure".
;P
Probably the most (or least) useful "bug" when it comes to software development / testing (depending on how you want to look at it). A hardcore programmer (especially in Assembly or straight C) would think its heaven, a high-level programmer (especially those Java folks would be like WTF?)
My favorite bug was in a beta version of BeOS. They had a utility to monitor CPU usage in a pretty graph. It would also allow you to click a checkbox to turn off or on each CPU on a multi-CPU box. The bug was that it would allow you to turn off the last CPU. This resulted in have 0 CPUs in use, and the machine would hang. This was fixed in a later version, such that if you tried to turn off the last remaining CPU it would pop up a warning dialog and not let you do so.
Also, my favorite license plate was on a VW Beetle and was "FEATURE".
"Those who would sacrifice essential liberty for temporary safety deserve neither liberty nor safety."
I would say that the extra 64K-64(?) bytes you could access in real mode on 286 and higher processors would be my fave bug. Quarterdeck discovered it and used it to their advantage in their DESQview product. Microsoft, of course, stole the idea and created himem.sys.
I really shouldn't have used someone else's email address for this account.
On a real VT100 (no emulators, please) send an ESC [137q
In other words, even though your keyboard only has 4 LEDs, pretend you wanted to turn on the 137th one. Don't ask, just do it.
Now your keyboard will repeat at an insane rate. Go into Setup B, and turn on keyclick (which might be kind of hard given how crazy your keyboard is acting; maybe you should do that before you send the weirdo escape sequence).
Now hold down a key. Listen. Hold down a different key. Listen. Hey, it sounds a little different.
Now play music.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Does the mean that sofware imitates art, or art imitates software?
How many of you worked out that by repeatedly flicking the power switch from on to off quickly, eventually you would see two bullets go up the side of the screen and viola, start a game and you have double fire (ie it would let you have two bullets in action at once).. ..
I can't have been the only one who found this..
Never happened. True story.
Yes. Whereas normal 6502 opcodes did things like OR a byte of memory with A and put the result in A, the undocumented ones that occurred based on the internal design would do things like AND the A and X registers, subtract an immediate value, then store the result in X, all in the same time it took for a simple NOP. The behavior was somewhat dependent on the particular manufacturer and phase of the moon, but I think some were actually used in software as optimizations.
NB #1: This only works with the DOS version, not the Windows re-release as far as I know.
NB #2: It's been a long time since I've done this lovely little trick, so YMMV.
Take a large UFO landing site.
You only have to do it once.
Then immediately go after and shoot down every UFO, terror site, whatever for the next couple of days.
When it leaves the Geoscape to go into the battle mode, hit Ctrl-Break.
The game will return to the Geoscape with the mission status report from the last successfully completed battle mode - the report file remains put until after a battle begins.
You'll get all of the loot from the large landing site again.
The land shall stone them with the bread of his son.
I like taking advantage of bugs in IE so I can install applications without bothering my users. ;)
No, I will not work for your startup
In Windows explorer, up to W2K3, when you were watching a sorted list of files and performed file operations that added files to the folder (e.g., paste a bunch of files copied from a different folder), those new files would always appear at the bottom of the list and you would have to refresh if you wanted a correctly sorted view. I got used to this behavior for a quick visual verification of the operation. Now this "bug" has been fixed in Vista which re-sorts automatically :( it sucks!
I did a lot of development on early Apple machines, of one flavor or another, and I had one assembler library that would run fine on the original MOS Technology chips but not on either Rockwell's or Synertek's parts. I remember that that particular program had some self-modifying page-zero code. The routine that copied the code down there mangled one byte, and it happened that the resulting illegal instruction did nothing on the MCS6502. It must have done something on the others because the program would lock up. Never did figure out exactly what was going on. I couldn't believe it when I finally realized that it was the damn processor causing the problem.
The higher the technology, the sharper that two-edged sword.
Does the mean that sofware imitates art, or art imitates software?
No, it means that some programmers imitate buffoons.
The higher the technology, the sharper that two-edged sword.
Wall walking. A fine example of circumvention. The true hacker mindset: getting things done within the bounds of what you're given.
While I take your point, I just drove back from a chicken plant today and I dealt there with a number of people much older and more experienced than me and making a hell of a lot more money, and I seriously doubt that any of them would have had their careers enhanced by knowing more about those things you mention. In the few instances where those things become important they just hire people like me to sort it all out, and even that doesn't happen very often. (Of course these same people have a "seat of the pants" knowledge of their industry that would blow away most engineers trying to learn what they do from scratch, but they can't quantify or justify a lot of their knowledge in the sense that a scientist or engineer can.)
Brackets contain world's first nanosig, highly magnified:[.]
The Z80 had a plethora of undocumented opcodes many of which were actually useful (and sometimes used). DD and FD prefixes could be used to mess with the index registers in a bunch of different ways (preceding the LD H,A instruction with a DD prefix, for example, would give LD IXl,A - load A into the lower 8 bits of the index register IX) - completely undocumented, but very logical if you studied the instruction set organisation. Actually, having written a Z80 emulator I will state that the painful opcodes weren't these undocumented but logically consistent ones, but the documented exceptions to the otherwise simple rules of index register substitution. Then there were the DDCBddxx opcodes which while not all that useful were, if not useful then definitely, ummm, "interesting". And a major pita to emulate.
The z80 even had undocumented hardware features that got used in some computers. For example, the contents of the A register would appear on the upper 8 bits of the address bus for some port operations, which were occasionally used to do weird and wonderful "magic". For example, on a microbee 256 the clock rate of the CRTC could be changed using the following code:
LD A,1 - load the A register with 1
IN A,(9) - load the A register from port 9
which makes absolutely no sense until you realise that LD A,1 actually sets bit 8 of the address bus during the the IN instruction, and putting 9 on the lower 8 bits would cause bit 8 to be latched.
I started patching bugs and cleaning up the code in preparation for a new set of features. After I was done, I got a pile of complaints about features that had disappeared, which turned out to be caused by the bugs in the code.
"I like the old payroll version better; I can't give myself a free raise anymore, dammit!"
Table-ized A.I.
On Civ the settlers did all the work of irrigation and mining and stuff as well as found cities. There was a bug when ordering a settler to do work, so you ordered a settler to irrigate a square, for instance, and then revoked the order and did it again, keeping this up until you could no longer revoke the order, and only then finish the turn. On the next turn the irrigation job would be done. It worked for all kinds of settler work, so you could do anything you wanted on a square in only one turn. I always delayed founding my cities for a couple of turns so I could irrigate and build a road on the square where I would be founding my city, in just 2 turns. It was really great to get cities up and running fast and to build roads in super-fast speed :)
shana
In Ultima Exodus for the NES, which I played as a kid (with no graph paper, mind you), there were two wonderful bugs. Somehow I ended up with a lot of dragon armor, which I was able to sell. The best bug, though, was being challenged in battle by an old woman in one of the last dungeons at the deepest level. "Old Woman attacks!". Perfect. The sad thing, though, is that the only way one could proceed was by smiting the brave, but insane, lady. She did 1 damage per hit, of course. Super Mario Bros. 1 for the NES has a bizarre "minus world" that one can get to by jumping through a wall. I've only managed to do it twice, and the world is pointless because it loops. In Super Mario Bros. 2, it's extremely difficult, but possible, to get a coin to come out of the shadow world into the real world and stick in the ground. I only managed to do this once, when I was a kid. Also in that game, it's possible to keep the music from the shadow world playing in the light world in one level by exiting the door at the moment when the shadow world vanishes. When I was really young, my favorite bug was in the Fairchild Entertainment System game Dodge It. Sometimes two bricks would collide to form a scary super brick that would grind along the side of the wall, and even explode.
I was able to hit ^C before it generated a file list and destroyed a bunch of billing records. I was happy to be on a slow slow boxfor once.
So, is it "paper cassette" or "printer cassette", then? You've used both above.
but I want pythonic beauty, what Plato would have invented if he wasn't so fucking repressed.
-pyrrho
More like a user's bug, but still...
/dev/port
...
About ~7 yrs ago I entered an IRC channel called #linux_hackers (or something like that).
At some point I wrote something like:
me - Have you guys tried
me - $ find / >
me - Very weird stuff, but really cool. Only works as root, though.
me - hello?
me - helloooo?
After a while...
user1 has left (timeout)
user2 has left (timeout)
etc
Can't play Star Control 2 without it.
Well we can cook the books for 4 to be whatever gives you the best tax break. You want 4 to equal 5? Sure no problem.
Engineering is the art of compromise.
Any of the bugs/features that allow access to windows boxes as the system service account are my favorite.
I would have to say that people who take themselves out of the gene pool (Matthew Carrington, I'm looking in your direction here) by willfully making unbelievably stupid choices are the best "bugs".
They become features when the story of their undoing appears on the news, and serves to provide hem masses with an almost endless supply of joke material.
The only thing worse than buggy code are buggy humans.
Knowing Google's lust for data collection, the Soviet Union is still alive and well inside the psyche of Sergey Brin....
All sillyness aside, the ability of Ruby to add to any class (in particular, the core library - Integer, String, Float, etc etc) is a very powerful feature, much like operator overloading in C++. I'll admit it's not quite convenient to do real operator overloading for a new class, though, but I've never actually run into that problem.
Brought to you by the numbers π, e, and 0x1B.
Yeah, I know. My roommate laughed at me for not catching that. :-(
Paper cassette. PAPER!
Whoever designed level 61 in Frozen Bubble is a sadistic bastard.
It's Valentine Michael Smith, hence, VMS, not MVS. If you are going to quote Heinlein you might as well do it correctly.
I had an '82 Suzuki GS550 bike that was easy to steal. Just pop open the fuse box (no key or tools needed to do that on that model), and there you see four old-style glass tube fuses. The top two were main and headlight i believe, and if you just took one of those fuses and put it between the two spots you'd notice that it fits quite snuggly, almost like it was meant to fit there. You'd also notice that the bike is now lit up as if there was a key in the on position. Everything works, including the starter and spark.
My steering lock was broken, so security through obscurity boo yeah! Along with security-through-parking-next-to-shinier-bikes.
boldly going forward, 'cause we can't find reverse
There was a 'bug' in the design of the body around the doors in Toyota's Carina E cars in the 90s - they weren't the shape they were supposed to be according to the spec. The reason this was a feature was that the doors were also the wrong shape, so everything fit. This was only discovered when they switched to the new Avensis, which in its first incarnation used the same doors as the Carina E. It took a while to work out why they wouldn't fit the Avensis, which had a door opening that was 'right', and therefore 'wrong'.
In 1977 or so, the "cc" compiler on official Bell Labs Unix for the PDP-11 would automatically detect an infinite loop in your program by actually going into an infinite loop itself while compiling! Quite the feature. It turned out to be due to a simple optimization it was attempting to do: Any branch (conditional or unconditional) to an unconditional branch instruction would have its target changed to the target of the later; repeat until the branch no longer targeted an unconditional branch. So, any chain of branches that cycled back on itself would cause the optimizer to eventually reduce the first one to "here: goto here" and subsequently loop forever, chasing its own tail.
For historical reasons, Python 'str' is an array of octets, and 'unicode' is a character string; 'str' is used for ASCII. Here you're mixing uses: '\xf0' is an octet, u'a' is a character, and 'b' is whichever you want it to be.
I've done some pretty crazy things in Python, but I don't know why you'd ever want to sort a list with these things in it. Lists can have any objects as elements, but generally they all have some common interface (especially if you want to sort them!); you've picked things which look similar, but are actually different.
Python 3.0 will fix this, BTW. It's just a temporary situation because he felt it would be a better short-term solution than "ignoring Unicode" (the Ruby way), or "breaking everybody's code" (the VB way).
It was possible to get rid of the Start button and its associated menu in Windows 95. The trick was as follows:
1. Click the start button to open the menu
2. Hit ESC (closes the menu, leaves start button in focus)
3. Hit ALT+MINUS (pops up a menu)
4. Click "Close"
Start menu goes the way of the dodo until explorer.exe is restarted. Great for a practical joke back in the day.
"Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
Or insightful, as the observation is certainly true!
(For those who don't get the joke, SPAMers regularly use a virus to build a botnet where they can send (or relay) their SPAM from.)
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
I had an early Apple ][ that came with Integer Basic (couldn't do floating point numbers) and then bought an extra 16 KB language card to run Pascal and Applesoft floating point basic. Started with a green screen monitor and color Taxan monitor later, 2 5 1/4" floppy drives.
Anyway, the system could only show a couple colors IIRC, green and violet. However, two other colors could be shown by IIRC setting a high bit which would shift the byte being displayed slightly to the side, if I am right about how it really worked, with the effect that you could get two other colors (IIRC a yellow-orange and blue).
Anyway if you treat all colors displayed as white then you realize you actually have double the horizontal resolution. This was exploited (in a good sense) to draw extremely fine lines. It was a while ago so I can't remember if it was someone else or me who discovered it, I just remember seeing it. Anybody else with this experience please post.
Incidentally there is an emulator called Catakig that might give a hint.
Another feature I found myself was that you could write to display memory with a 6502 assembly program fast enough to make wild zigzaggy colored lines in a richer visual display than you could normally see on an Apple ][, by coinciding nearly with the raster scan frequency. Also one game I know used the disk drive to play a rhythm, the sound of dragging the head all the way to the disk edge being a funny snorting kind of sound.
Total Annihilation had a intresting bug in the artillery, using which you could shoot over the maximum range just by targeting the ground right in front of the unit instead of the enemy, and by varying the distance between the artillery piece and the ground targeted you could "aim" the cannon to fire where you wanted.
My laptop's i945 graphics controller has a buggy Vista driver that results in drawing shadows even when the other players are not visible. So when I see a black spot moving along the wall/ceiling towards an entrance, I send a couple of rockets there :-)
There's lots of other cases where strings and numbers, unicode strings and raw strings can all be in a list that you want to sort into a rank stable list. Often this occurs when one wants to process a list that was generated from a set of hash keys in a reproducible fashion. You don't want the result to change from run to run. So you sort the list of keys. The type of sort does not matter just as long as it always produces the same rank order for the same collection. The keys could be heterogenueous objects. In many cases you can't reliably anticipate what types the keys might be so even writing your own comparison algorithm can't be done gracefully.
example 2: Suppose you have a collection of objects extracted from two data bases. Now you want to compare them to find all the duplicates. You could do an all-against-all comparison of the two sets. That would be an N^2 operation. Or you could sort the two lists in some stable way. It makes no difference what the order is just as long as it's rank preserving. Now you can do a merge compare. That's more like N log N. Humungous difference.
One could go on all day.
Some drink at the fountain of knowledge. Others just gargle.
Too easy.
``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
I probably do use such a list, but only rarely; I can't think of the last time I have (well, apart from writing Lisp code, where the code itself is such a list). And yes, my job is writing and using an object-oriented database with Python. Is what I do. Where you get nonhomogeneous objects is in the values of the {key:value} dict of attributes attached to each object in the database, not the database object keys (which would be silly).
I suppose if I ever needed to do this, I'd take the extra 0.1 second to type ", key=id". They're guaranteed to be unique, unlike the result of a stable sort (which you seem to call "unstable").
You keep using that word. I do not think it means what you think it means.
All these examples presuppose you have an object database which has as a primary key a value which is sometimes a Unicode string, sometimes a number, sometimes an octet array
Yes, I can come up with fake examples all day, too. It doesn't demonstrate anything, except that I can come up with fake examples.
I probably do use such a list, but only rarely; I can't think of the last time I have (well, apart from writing Lisp code, where the code itself is such a list). And yes, my job is writing and using an object-oriented database with Python. Is what I do. Where you get nonhomogeneous objects is in the values of the {key:value} dict of attributes attached to each object in the database, not the database object keys (which would be silly). No it's not silly. it's not at all uncommon to want to sort a list on values. Moreover, sometimes the point is to reconcile lists of things gathered from multiple databases or tables that do have different key types. I guess we work in different arenas. I assume in your work you are used to dealing with your own curated data bases. In the Bioscience arena one is always interacting with multiple databases from all of the world trying to gather records in whatever form they come in and reconcile differences and similarities in the storage formats for the same entity.
I suppose if I ever needed to do this, I'd take the extra 0.1 second to type ", key=id". They're guaranteed to be unique, unlike the result of a stable sort (which you seem to call "unstable"). This would fail. the ID of two identical instances of an object are not identical. It's not guaranteed in python that two identical immutables will _always_ share the same ID. (python tries to do so when it can). Moreover in computer science one generally wants comparisons to be fast because comparing a million objects against a million objects always takes more than "0.1" seconds. That dimissall is uncalled for.
You keep using that word. I do not think it means what you think it means. I'm afraid I do. But I'll give you that the word is being tossed about colloquially here, though I think its meaning is clear in context.
All these examples presuppose you have an object database which has as a primary key a value which is sometimes a Unicode string, sometimes a number, sometimes an octet array
Some drink at the fountain of knowledge. Others just gargle.
ALT-F4 for cheats.
I had an easier way of disconnecting an idiot,
by sending bot commands to him and having his antivirus disconnect him for me.
http://it.slashdot.org/it/06/03/03/004215.shtml
[rob]
There's something like this in OSX. Renaming files leaves them where they are for several seconds, then the re-sort happens.
You're right - it's intentional, the result of a design decision.
the way you put it, it sounds kind of interesting,...
If GM cheaps out on this the way they do some other things, I'm willing to bet the safety interrupt is on a common circuit with the other windows. Normally if it sees a higher load, it's an obstruction. Running multiple windows on the same circuit probably creates a load that triggers the "obstructed" condition. Also I know Grand Ams could occasionally trip the power window breaker if you ran all four windows at once. (At least they were nice putting a breaker there and it was also the type that would usually reset after cooling a while.) They were on a common circuit, but it seemed designed to operate no more than two at a time.