Does Your Debugger Sing to You?
ZahrGnosis writes "TRN Mag Online is carrying an article titled Programming tool makes bugs sing. '[The researchers] set up software that mapped pitch and melodic contour information to structural elements in the programming language Pascal. "[We] aimed to see if information about the structure of Pascal programs could be communicated using such musical phrases".' They even found a practical application for software debugging."
I'll program so badly it'll end up sounding like Aphex Twin
Je t'aime Stéphanie
Bug in the program - P.U.!
Somebody wrote it - THATS YOU!
Yes, my debugger _does_ sing as it smites bugs!
namely:
"Another one bytes the dust. Another one bytes the dust. And another and and another bug bytes the dust."
For those of you who need the background music, think Queen, or uh, I guess Weird Al Yankovic
PDHoss
======================================
Writers get in shape by pumping irony.
So that's why I get that song every time I boot into windows.
--
Does anyone remember
>They even found a practical application for software debugging
It's good to know that software debugging has a practical application.
Ninety-nine off-by-one bugs in the code,
Ninety-nine off-by-one bugs,
Take one down,
Fix it up,
One hundred off-by-one bugs in the code!
-Joe
Lose = not win
I wonder if they could create an interface that would allow you to fix bugs by dancing?
Gnu Debugger, the real Dance Dance Revolution?
Haha, only parlty serious. Just as we need new ways to "view" information, it could also be helpful to be able to respond in a way that goes beyond the keyboard and mouse.
byroniverse
A generalize form of this application was applied to the source for Windows XP (tm) with no startling results. However, when the resulting tune was played backwards, the listener could plainly hear "bill is god" and "linus is satan" over and over.
if i ran this kind of debugger, it would go thru the effort to say "stop programming!!"
Jesus saves souls and redeems them for valuable cash prizes
I can re-factor my code just by re-mixing the tunes????
You think that's bad? The .NET code samples play The Imperial March.
The musical sound of Windows blue-screening.
You could even have a nice menu:
Select your musical preference:
1) Death-metal guitars
2) Funeral dirge
3) Cat-in-heat-at-12:00-am
Ohhh, the possibilities....
It would be better than the anguished "NOOOOOO!" frequently heard around the office.
Comment removed based on user account deletion
The UPS Debugger Song: "Just One More Hack (and then I'll put it on the 'net)
(Ah, thank you Google, for the historical reference to first puclication!) UPS - The Song!"
I installed it on Visual Studio and now my computer keeps singing Unforgiven by Metallica, what do I do?
Objects in the blog are closer then they ap
My debuger sings and my IDE tells me to kill people.
But wait..... I've said to much.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
Back when I first started experimenting with full-screen graphics programming, I went through a phase where I could switch screen modes, but not get anything to show up. This meant that I had no way to print diagnostic messages to the screen to figure out when something went wrong. The solution was to play sounds to track the progress of the program and report error conditions.
"Oh, the program went Boink-Ding and Bloop, but not Clunk... that must mean that palette creation failed!"
If I combine this with the morse code panic patch, I could have my own techno dance studio! Flashing lights and all!
Objects in the blog are closer then they ap
--Chag
A singing debugger can't be worse than Britney spears.
actually, this sounds like an excellent idea, and this should without doubt be a basic feature of gdb for example. This also reminds me of my Spectravideo SVI-318 and lousy green, year was 1984, the combination worked at so low frequency that was able to hear and understand what I typed through radio. And it really was very helpful.
... if there is a bug in your music routine in your game, I guess this will be useless debugging tool.
I don't have a reference to it, but I thought that Admiral Grace Hopper and her crowd had done something just like this generations ago simply by hooking up the accumulator of a Univac to a D/A converter, which in those days resulted in audible frequencies! A quick search on Google found something similar was done on a CDC 3300 (search for CDC 3300 in this page).
Cheers,Richard
And they used continuous tones, or drones similar to those used by bagpipes, to indicate continuous states like loops where many nested operations may take place. "The use of a continuous tone can indicate that the program is inside the loop," said Vickers.
Interesting. Back when I first got into computing I used a BBC Micro. This was a primitive machine by today's standards, with no fan (the 2MHz 6502 CPU didn't get hot), no disk drive of any sort, basically nothing to make any noise except the CPU. In a quiet room you could hear the processor humming. It would change pitch as a program ran - you could tell when you hit an infinite loop because the pitch would change to a continuous whine. It was actually useful - and used - for debugging. Fun days,
Sailing over the event horizon
In the news, the VC++ debugger has come under fire from the RIAA for producing melodic tunes that sound very similar to several copyrighted materials.
"Whoever wrote the code that produced these tunes, we want to find them and bring them to justice." said Hillary Rosen, of the RIAA. "Neither Microsoft, nor the developer in question, has paid royalties to the artists whose songs they have violated. Renegade debuggers must be stopped, for they pose the greatest threat to the artists' intellectual property we've ever seen!"
<sigh> Fact is often stranger than fiction
Sound based debugging + gesture based computing = a future where we work with computers like that cooky french guy from Close Encounters of the Third Kind.
"I'm a leaf on the wind. Watch how I soar."
-Hoban Washburn
Britney, the BS boys, and nSync have already been doing this for years. How else can they come up with that crap they call music. The language they use is C# though, not Pascal.
(B) + (D) + (B) + (D) = (K) + (&)
"Buffer Overflow in C#"
pi = 3.141592653589793helpimtrappedinauniversefactory7
To me, I think PHP would sound somewhat like System of a Down. C is more like Stratovarius, and C++ should sound more like Mercyful Fate.
Perl? uuuh... Within Temptation? Python... hmmm... Definately something like After Forever..
Right, I guess you kinda gather from that that I like heavy rock with some pretty symphonic tendencies. It would be pretty cool if you could tune your debugger to a certain style of music.
I somehow also think my code would sound line Tristania, or sometimes (depends on my inebriatedness) Bal Sagoth... But that's just me :)
Well, the cycles we're all burning today to come up with clever examples is pretty close! ;)
PDHoss
======================================
Writers get in shape by pumping irony.
I've been looking through my gnu emacs sources, there's some interesting things in here already that people don't know about, like the strokes package where supposedly you just wiggle your mouse around and that will execute your command.
:)
Now I think gnu emacs supports sound, so who knows elisp and is curious enough to set this kind of thing up?
I've noticed several folks who seem to think this is silly, dumb, etc. I don't think it is. Think back to the days (if you're old enough) of monochrome displays. Even the addition of a few colors made it easier to process information by taking advantage of human sensitivity to color in our environment. To say that music, or at least sound, could be incorporated makes sense to me.
.0001 share of Berkshire Hathaway's Class B worth...
Particularly in applications where you're trying to track status over time, having some background that varies with changes can be very helpful (I seem to recall the game Populous using this to good effect to help you get a quick idea of how you were doing overall). In the context of a debugger, having clashing noises that become more melodious as the program gets closer to completion and perhaps also asit comes closer to defined standards seems to bea good motivator.
Just my
Could you run a melody through and have programming structures returned? Metaphors are sunny days.
sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.
Man, just 3 more days and we could have had Coda Statement Considered Harmful.
Java == glossy emo pop
Python == British novelty songs
LISP == modernist symphony
BASIC == music from a casio keyboard bought for $5 at a garage sale
pi = 3.141592653589793helpimtrappedinauniversefactory7
Well, if you're going to go posting lyrics...
....
This came out years ago, I found a printout of it a couple of days back while going through some papers. Picture Weird Al Yankovich singing this to Michael Jackson's "Beat It" (this isn't a Weird Al though, he did "Eat It"):
Boot It
You're processing some words when your keyboard goes dead,
Ten pages in the buffer, should have gone to bed,
The system just crashed, but don't lose your head,
Just BOOT IT, just BOOT IT.
Better think fast, better do what you can,
Read the manual or call your system man,
Don't want to fall behind in the race with Japan,
So BOOT IT,
Get the sys admin to
BOOT IT, BOOT IT,
Even though you'd rather shoot it.
Don't be upset, it's only some glitch.
All that you do is flip a little switch.
BOOT IT, BOOT IT,
Get right down and restitute it.
Don't get excited, all is not lost.
CP/M, UNIX or MS-DOS
Just BOOT IT, boot it, boot it, boot it...
You gotta have your printout for the meeting at two,
The system says your jobs at the head of the queue,
Right then the thing dies but you know what to do,
BOOT IT.
You always get so worried when the system runs slow,
And when it finally crashes, man you feel so low,
But computers make mistakes (they're only human you know)
So BOOT IT,
Call the local guru to
BOOT IT, BOOT IT,
Go ahead re-institute it.
If you're not lucky, get the book off the shelf,
But if you are, it'll do itself.
BOOT IT, BOOT IT,
Then go find the guy who screwed it! Operating systems are built to bounce back,
Whether it's a Cray or a Radio Shack.
BOOT IT, BOOT IT,
Sorry I don't know who deserves the attributes for that.
-- Alastair
(* Bug in the program - P.U.! *)
That's it! Associate *smells* with bugs.
Stack_overflow_error ==> Dirty_Socks_Smell
That will encourage programmers be more careful. Then again, single programmers are probably use to all those smells anyhow.
Nevermind.
Table-ized A.I.
I sometimes sing to my debugger:
---
Hello bluescreen my old friend,
You are my program's bitter end.
All my random poke and peeking,
Didn't stop the memory leaking.
And the Interrupt, I set so long a go,
did never throw...
My only option... is viloence.
Slam the mouse in to the desk.
Pound the keys and beat my chest.
Do what I say not what I mean,
Open the window, thow out this machine.
And as it falls, and crashes on the street
Debugging complete
my only option... was violence.
Krispy Cream is people
...windows makes a sound everytime you start it up, click on something, shut it down etc..?
"The worms crawl in,
The worms crawl out.
The bugs play pinochle
On my shout."
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
R2D2's voice may be due such a bug-to-tone translator. That is probably how my code would sound under the Bug-A-Phone.
Better fix that bot.
Table-ized A.I.
"Memory, you have used up all your Memory"
Table-ized A.I.
With Palladium, I suspect that there will be more variety. Normally, it will still be "Money" at about 120db, but if you click on an mp3, you'll hear the "Dragnet" theme and sounds of wailing police sirens followed by the Monty Python ditty "There's Nothing Quite as Wonderful as Money".
Sigs are bad for your health.
I was thinking that BSOD's could play Beethoven's "death" symphony:
Duh Duh Duh Doooooooo
Duh Duh Duh Doooooooo
Table-ized A.I.
Researchers from the University of Northumbria in England are tapping the auditory sense by allowing programmers to listen, rather than simply look, for software bugs....
Techie unemployement pressue seems to be doing to computer scientists what cyclitron shut-downs did to those "Higgs Boson discoverers".
Table-ized A.I.
Yes, my debugger sings, but Simon belittled its abilities as 'third-rate COBOL', so it went into a tizzy and crashed my system.
Mod Karma -1: I sed bad wurds. If I cep my mouf shut, I wud be at riyses.
ninety-nine little bugs in the code,
ninety-nine little bu-u-u-gs,
fix a bug,
compile again,
one hundred and one little bugs in the code!
The next verse went from 101 to 105, then from 105 to 113, then from 113 to 129, and so forth, adding a new power of two on each loop.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Hmmm...
Well the first computer I ever had free reign of was one of those Commodore Pet computers with the little tiny calculator keyboard. Little memory, little keyboard, no disk, and I still managed to learn a little assembler to pep up my BASIC programs.
When I came out to the Silicon Valley to go to college in 1978, I left the PET behind, but still checked out the computer shops when I had free time (anybody remember The Byte Shop in Palo Alto? Computerland in Los Altos?). One of the things that I found pretty entertaining at a Commodore shop was a guy that was debugging by putting a little AM radio next to the computer. If you tuned to the right frequency (and I'm embarassed that I don't remember it), you'd hear the sound of your code executing as static. If you had the right loop coded, you would hear a burst of static when it executed, and this guy would drop in the little flag routine as a debugging aid. By putting in a marker like that in the different long-running repetious sections,you could actually tell where your code was running, or if you were stuck in an infinite loop.
Kind of cool back then, although I have to admit that I don't remember writing anything that ever took 2 minutes to execute. Well, intentionally anyway...
David Fung
Strangely enough, I developed a similar application and ran some Open Source code through it.
The resulting melody was "Please, release me... let me go...."
--- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
They could get network traffic to produce musical tones? Imagine the sounds made of a server getting Slashdotted....
So rise up, all ye lost ones, as one, we'll claw the clouds.
This puts a new meaning to using DevStudio to put together a program composed in C#.
That's true. On the other hand, I hear so many people blame Windows problems on drivers, like the only way to crash Windows is to install some rogue hardware with some unstable driver that you pulled off of www.warez-drivers.com, and here I had a factory-configured machine, with factory-configured drivers (nothing "rogue" until the modem got fried), and the configuration was (presumably) tested to some degree before it was sold, and it still crashed all the time. It is a rare day that we don't have to reboot the thing. The fact is, Windows 95 sucked hard, Windows 98 was little better, and Windows ME is just W98 Third Edition. I haven't tortured myself with XP yet. Windows 2000 is the only MS OS that I can use with minimal pain.
Today's Sesame Street was brought to you by the number e.
I'll take that as a challenge.
And now introducing:
TASTE-BASED DEBUGGING!
You'll never miss another semi-colon after one spoiled milk dose!
Infinite loops will fade into myths after the first few developers get a taste of dead-fish-left-in-the-sun-for-a-week.
And for those minor offenses such as not commenting code and choosing horrible names? A few times through with the Taste'O'Soap and you'll be cured for life!
This project brought to you by the Federal Government. Always looking for more ways to make your life unpleasant.
With my dying breath, I curse Zoidberg!
There were also programs designed just to place music on the radio with their EMI.
This is not as strange as it sounds. (pun intended) I've seen precursors to this, and have actually experienced something similar about 25 years ago.
I see this research as an interesting step that continues along that path.
As for me, I'm much more a visual person than auditory. I'd find it much more valuable if I could "see" my program execute. Once in a while, I've messed things up with my postscript printer and the listing came out at what appeared to be 1 point sized text; at 300 DPI, that worked out to being about 5 dots high. At times it was almost possible to make out the words, but realiistically, it was too small to be legible. But it WAS sufficient to show the structure of the program, especially since I consistently use indentation. If different colors were used to denote different structural items (conditional, loop, assignment, key words, etc.) AND there was an indicator that would highlight each statement as it was executed, then I'd be able to see the actual flow of the program. I could tell what functions and subroutines were executed most often. Hmmm, this seems like such an obvious idea... does anyone know if such a tool already exists?
On another note, It would be interesting to combine visual profiling of a program with a touch screen -- I could use different gestures to debug my program! Double-tap to zoom in/out on text; single tap to set a breakpoint on entrance/exit of a subroutine, etc.
And to whoever mentioned dancing, I've seen Richard Stallman dance too. Thanks for the image. Really.
You'd better hope your debugger doesn't start singing this ditty.
I hooked up the innards of the DEC Ultrix C++ debugger (then called "Ladebug" internally)to a homebrew FM synthesis toolkit to do exactly this. The debugger allowed tracepoints to be hooked to particular instruments and note values. It was cool.
No, I mean something else entirely. You need to read Dirk Gently's Holistic Detective Agency. :-)