Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Debugging Expert Wins ACM Dissertation Award

ScuttleMonkey posted more than 8 years ago | from the just-a-programmer-with-a-really-big-shoe dept.

83

An anonymous reader writes "The Association for Computing Machinery (ACM) is reporting that Ben Liblit has been awarded the 2005 Doctoral Dissertation Award for his study on understanding and fixing software 'bugs' in the real world. From the article: 'Liblit's dissertation proposes a method for leveraging the key strength of user communities - their overwhelming numbers. His approach uses sparse random sampling rather than complete data collection for gathering information from the experiences of large numbers of software end users. It also simultaneously ensures that the observed data is an unbiased, representative subset of the complete program behavior across all runs.' Slashdot broke the story on this research back in 2003. Apparently the project is still going strong."

cancel ×

83 comments

Sorry! There are no comments related to the filter you selected.

dissertation: (1, Funny)

sxtxixtxcxh (757736) | more than 8 years ago | (#14969400)

they're not bugs, they're features.

blargh (1, Offtopic)

MarkPNeyer (729607) | more than 8 years ago | (#14969409)

'leveraging'

*tears out own hair and screams*

Re:blargh (3, Funny)

Neo-Rio-101 (700494) | more than 8 years ago | (#14969489)

*tears out own hair and screams*

Shouldn't that be "leveraging out own hair and screaming"?

Re:blargh (3, Informative)

Anonymous Coward | more than 8 years ago | (#14969579)

tr.v. leveraged, leveraging, leverages 1.
a. To provide (a company) with leverage.
b. To supplement (money, for example) with leverage.
2. To improve or enhance: "It makes more sense to be able to leverage what we [public radio stations] do in a more effective way to our listeners" Delano Lewis.

So listen and listen good all you academic paper writers: unless what you really mean by "leverage" is "improve", don't use it.

"Liblit's dissertation proposes a method for leveraging the key strength of user communities - their overwhelming numbers." WRONG. "improving the key strength of communities -their overwhelming ..." does not make sense. The overwhelming numbers are there they do not need improvement. What you may want to say is sthng like: "for using the key strengh of user communities as a leverage to blah blah blah"

Just because a word sounds good it does not mean it should be used as a wild card ...

Re:blargh (3, Interesting)

Tony-A (29931) | more than 8 years ago | (#14969751)

The root word is lever and the basic idea is that you use something under your control to effect control over what would normally be outside your control. Like a very long handle on a pipe wrench.

The money aspect you refer to has to do with debt financing whereby you manage to use your equity to finance something larger than your equity. I don't think the article is referring to corporate finance.

In a perfect world you would use a few people who would recognize and fix the bugs. These people would never talk to the users. They would have no need to and neither would gain from the experience.
In the world that I exist in, users are the ones who spot the bugs, specifically the circumstances under which the bugs exhibit themselves. I use my user's eyes to leverage {user's eyes, my skills}.

If all you mean is "improve", you would not use a word which essentially demands a discrepancy in the metrics between cause and effect.

b. To supplement (money, for example) with leverage.
If you add money to an account because of a margin call, does this increase or decrease your leverage? That is a horrible excuse for a definition.
 

Re:blargh (0)

Anonymous Coward | more than 8 years ago | (#14969779)

"The money aspect you refer to has to do with debt financing whereby you manage to use your equity to finance something larger than your equity. I don't think the article is referring to corporate finance."

Are you retarded? I just listed the dictionary definition which included the usage of leverage in finance. Of course finance has nothing to do with the paper smart ass!!!

As for the rest of your comment, you make no sense at all. Please read posts better before you reply.

Somebody mod that idiot down!

Sounds like Doc Watson (4, Insightful)

BadAnalogyGuy (945258) | more than 8 years ago | (#14969415)

No, not the wild-eyed madcap scientist from Back to the Future. Doctor Watson is an OS service present in Windows that monitors the running process list for terminal assertions. When a program hits an exception that it can't handle, it terminates immediately and Doctor Watson is on the scene to read the last gasps of the process before its bits get blasted. Microsoft even came up with a way to harness this to allow users to send real-time feedback to Microsoft HQ whenever a crash occurred in a program. No one I know ever sends that data back, but I'm sure someone must have once.

The current idea seems to be tracking the same termination events in the same way as Doctor Watson and sending the relevant data back to UWisc without informing the user. It sounds like a good idea, but I doubt it is in Liblit's power to fix Windows OS bugs.

Re:Sounds like Doc Watson (1)

Bob54321 (911744) | more than 8 years ago | (#14969488)

Microsoft even came up with a way to harness this to allow users to send real-time feedback to Microsoft HQ whenever a crash occurred in a program. No one I know ever sends that data back, but I'm sure someone must have once.

My Grandfather was having trouble running FlightGear under windows and sent one of those to Microsoft. Even got a response telling him it was a driver problem.

I send Firefox errors, just to give them some hope :)

Re:Sounds like Doc Watson (5, Informative)

Benoni (132028) | more than 8 years ago | (#14969493)

sending the relevant data back to UWisc without informing the user.

Informed participation is a really big deal for me. No user should ever find themselves participating in the Cooperative Bug Isolation Project without their knowledge. Opt-in is explicit and revokable, and if the opt-in system runs into trouble of any kind, the fallback position is no data reporting at all.

The whole thing collapses if users don't trust me. So I've taken every measure I can think of to ensure that they can. Please see the relevant project page for more details about privacy matters [wisc.edu] .

It sounds like a good idea, but I doubt it is in Liblit's power to fix Windows OS bugs.

Working on it! Check back in with me in a few years ... maybe less. :-)

Request for more information (3, Interesting)

BadAnalogyGuy (945258) | more than 8 years ago | (#14969518)

The installation of CBI is implicit consent to such monitoring, of course, and I didn't mean to imply that there was no consent involved at all.

However, asking us to read 170-odd pages of your dissertation is a little much. Would it be possible to describe the data collection system, how reports are generated and if the reports are sent automatically or as in the case of Dr. Watson sent with user approval. Also, what types of bugs you found using your statistical methods, as well as what types of bugs you think would be difficult to find using such methods.

A quick comparison to related mainstream debugging techniques would be useful to give us out here in the trenches a firmer grip on the techniques you describe.

And finally, if you wouldn't mind, could you describe a real-world scenario where a generalized product (codename: CBIMax) would be marketable. If such a general product is impossible, is it because each product is different and the methods you describe would need to be revised each time? What is the maximum level of abstraction of these techniques from specific scenarios that is achievable yet still retaining enough so as to not require largescale retooling for each project?

Thanks!

Re:Request for more information (5, Informative)

Benoni (132028) | more than 8 years ago | (#14969559)

However, asking us to read 170-odd pages of your dissertation is a little much.

Hey, it's a real page-turner. Well, it has pages and they turn, at least.

The other questions you ask are all good ones, but a bit much to address in a Slashdot comment. Please see the project home page [wisc.edu] for more information. The "Learn More" [wisc.edu] page may answer some of your questions, and there are additional drill-down pages from there with even more technical material on selected topics.

Please understand that I don't mean to brush off your insightful questions. They are just questions for which satisfactory answers are hard to give in a sentence or two.

Re:Request for more information (0)

Anonymous Coward | more than 8 years ago | (#14969584)

Then perhaps you could expand on why you'd be able to fix Windows bugs in the future (maybe nearer). Got an interview loop with MSR or WinCore?

Funny moderation (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14969785)

"I won't answer any of your questions because I don't think most Slashdotters could benefit, being borderline retarded as they are. Here are some links to my stuff that is really long and tedious and way over the head of anyone here. Have at it. Glad to be of help!"

+5 Informative!!!11!!

Re:Request for more information (1)

jschrod (172610) | more than 8 years ago | (#14970372)

asking us to read 170-odd pages of your dissertation is a little much.
Why? If you're really interested in that area, that's not much material and it's important research. I know that I'm going to read it just because it's interesting.

But if you're not deeply interested, you will be able to pick the most interesting bits by looking at the table of contents, won't you? Or is that too much effort, too? Besides, the project has a Web site that is even referenced in the /. blurb -- did you even bother to look there for an answer?

Please note: I'm not connected to the CBI project, don't use the software, and don't know Ben Liblit.

Shaka, when the walls fell (1)

BadAnalogyGuy (945258) | more than 8 years ago | (#14970404)

Well, we've got Ben Liblit RIGHT HERE! Right here in the thread! Replying to my question!

Doesn't it make sense to ask him while he's here to discuss the topic in a simplified manner since he's the world's leading expert on the topic? This is a discussion forum, so being able to hear him express the concepts allows us to participate with him in a two way transfer of ideas.

The alternative is to write everything down and simply refer to documents instead of engaging people in conversation.

Re:Shaka, when the walls fell (1)

jschrod (172610) | more than 8 years ago | (#14970438)

I don't think that a request to reiterate the main points of his research is a good start for a sensible discussion here. (Not that I expect many sensible discussions on /.) Especially not if some of these questions are answered on the homepage and the `About this project' page. Your telling that the data is sent without user consent -- when the first paragraph on the home page tells that data is sent back -- and then slowly backpedalling is not a good start for a /. discussion either.

If you would have concentrated on one issue (e.g., the relation to Dr.Watson and/or Mozilla's Talkback) you would have had a point, IMHO. Otherwise, it was simply an overbroad request that looked as if you're too lazy to inform yourself before posting.

Re:Shaka, when the walls fell (1)

BadAnalogyGuy (945258) | more than 8 years ago | (#14970461)

I see. I must inform myself by reading his dissertation so that when I come back in several hours with questions he will be able to field them and we can all have a rousing conversation.

I'll keep that in mind the next time I have an interest in something and have the opportunity to have direct access to an expert and have essentially carte blanche to ask anything. Read up on it first, then hope that the expert hangs around while I'm busy informing myself.

As for the thrust of my main post, it was not about spying, but rather about the similarities of such a remote bug collection system (CBI) with Dr. Watson. The act of installing the software gives implicit permission to retrieve the software errors. Nowhere in the article or on "About this project" page is the exact mechanism for sending this data given. I assume it is somewhere in those 170 pages of dissertation. What's the harm in asking the expert how it works? He's already posting on Slashdot, it's not like his time is very important to him.

Re:Sounds like Doc Watson (5, Interesting)

Anonymous Coward | more than 8 years ago | (#14969551)

No one I know ever sends that data back, but I'm sure someone must have once.

Plenty of users do. There's a great blog posting by Raymond Chen called There's an awful lot of overclocking out there [msdn.com] where he talks about investigating some of these "Watson" crashes.

The crashes were impossible - instructions like

xor eax, eax

Turns out unscrupulous vendors were selling overclocked computers without informing buyers. Pretty cool article.

Re:Sounds like Doc Watson (1)

poot_rootbeer (188613) | more than 8 years ago | (#14972424)

The crashes were impossible - instructions like
        xor eax, eax


Watch out -- you may have just reverse-engineered Sony's latest DRM enforcement mechanism!

Re:Sounds like Doc Watson (1)

kamochan (883582) | more than 8 years ago | (#14972980)

The crashes were impossible - instructions like

xor eax, eax

How is that impossible? It's a single-byte, single-clock, u/v pipe op to zero eax... How do you (or the original author of the comment) do it? mov eax,0? *snicker* That'd certainly explain some of the Windows bloat...

Re:Sounds like Doc Watson (0)

Anonymous Coward | more than 8 years ago | (#14977741)

What was impossible was that the program was crashing on that instruction. As you say, that shouldn't happen. However, with the CPU cranked up past its tolerances, it wasn't guaranteed that the contents of EAX would be XOR-able with itself to result in zero. Something to do with slow pipelines or something. Recommend reading the linked blog.

Not really (1)

ROBOKATZ (211768) | more than 8 years ago | (#14969604)

If you even just skim the page, you'll see that only the fact that it sends a feedback report is similar. Most of the project consists of 'sparse' weighted sampling of instrumented code, research into what are useful metrics to use to instrument the code, and how to correlate the collected data with patterns to auomate finding bugs.

Re:Sounds like Doc Watson (2, Interesting)

gzearfoss (829360) | more than 8 years ago | (#14969612)

My main issue with the good Doctor is that most of the time, when I had a program that crashed and invoked him, it wasn't a Microsoft product. Typically, it's because I was working on a programming assignment and it 'burped.' So unless Microsoft was willing to help me debug my homework, I didn't see much point in sending the data on to Redmond.

Not that I mind sending back data when it can be useful; if someone is going to look at the error logs, memory, etc., and try and make it so that it won't crash again, I'm all for it. I just pity the poor person who accidentally leaves a major bug in the code, and swamps the system with error reports.

Re:Sounds like Doc Watson (2, Interesting)

Animats (122034) | more than 8 years ago | (#14970094)

It goes back much further than that. See "The ALCOR Illinois 7090/7094 post mortem dump" [acm.org] , a famous paper from 1967.

Automated dump analysis is an old idea in the mainframe world, but almost unknown outside it. The microprocessor world grew up with interactive debuggers and an early user-as-programmer assumption. This hasn't translated well to the modern software world.

In the mainframe world, there have even been mainframes that recorded the last 64 or so branches using dedicated hardware, so that after a crash, the control path could be recovered.

What does the Mozilla project do with the data from their "quality feedback agent", anyway?

Doctor Brown, you mean. (1)

Grendel Drago (41496) | more than 8 years ago | (#14970270)

The mad scientist from "Back to the Future" was named Emmett Brown, not Doctor Watson.

Re:Sounds like Doc Watson (1)

oaksong (894169) | more than 8 years ago | (#14975141)

I always send my error records to microsoft, then either they fix it or they pass it on to the purveyor of the software. I've had a number of issues identified and remediated because of this feedback loop. There's no reason not to send the crash report to MS. It contains no data about your machine or it's contents. If MS passes the bug along, they don't identify the source. So where's the problem?

Re:Sounds like Doc Watson (0)

Anonymous Coward | more than 8 years ago | (#14992408)

You mean Doctor Emmett Brown from BTTF.

Re:Sounds like Doc Watson (1)

arvindn (542080) | more than 8 years ago | (#15031284)

The mad scientist from Back the Future was Dr. Emmett Brown.

Check out FindBugs for finding bugs in Java (5, Informative)

licamell (778753) | more than 8 years ago | (#14969423)

This reminded me of work going at at UMD (University of Maryland, College Park). I know it's not quite the same thing, but I feel as though this is a good place to mention it and the slashdot community would appreciate this software. FindBugs is a very cool tool for finding bugs in java code. And no, I am not affiliated with this project, I just saw a talk on it a couple months ago.

http://findbugs.sourceforge.net/ [sourceforge.net]

Re: (1)

kindyroot (962747) | more than 8 years ago | (#14969470)

i think if people knew there were any probability that their bug reports would not be taken into consideration, maybe they wouldn't post them at all!!

Re:Check out FindBugs for finding bugs in Java (1)

shadow0_0 (59720) | more than 8 years ago | (#14969845)

Hey, this is the second time I hear about the FindBugs project today! Thanks, I will have to check out the Eclipse plugin.

Re:Check out FindBugs for finding bugs in Java (1)

cerberusss (660701) | more than 8 years ago | (#14970092)

I tried FindBugs as well as PMD. Although the latter only examines sources per file, I found it much easier to use because it had so much less "false positives". Also, I found the PMD Eclipse plugin is better integrated. The author is also a slashdot user, by the way.

Re:Check out FindBugs for finding bugs in Java (1)

tcopeland (32225) | more than 8 years ago | (#14971933)

> The author is also a slashdot user, by the way.

Heh, you're right, and thanks for the mention! :-)

Re:Check out FindBugs for finding bugs in Java (1)

Doctor Memory (6336) | more than 8 years ago | (#14972932)

I really wanted to like PMD, but unfortunately it only finds problems in code that's there, not the code that isn't. That sounds kind of obvious, but consider this: you have a situation where you allocate some resource, and you need to free it within the same routine (a commonly-accepted Good Programming Practice). PMD can't tell you if you forget to make the call to free the resource. It would be nice if it had some way to specify what must be there, as well as what must not.

I guess I'm just grumpy because I really liked what PMD did, and I was crushed that I couldn't recommend it as a standard part of our code review kit.

Re:Check out FindBugs for finding bugs in Java (1)

shadow0_0 (59720) | more than 8 years ago | (#14976966)

I know I am being lazy :) but can you install and run both of them as Eclipse plugins? That way maybe you will screen out the false positives?

Re:Check out FindBugs for finding bugs in Java (1)

cerberusss (660701) | more than 8 years ago | (#14978940)

Yeah, you can install both. However, they work somewhat different. FindBugs works on the whole codebase. You can run it as a plugin, but it doesn't really integrate. It just starts up in a different window. PMD works on the file level and sits in the context menu of the Java source editor.

Since they have a different field of analysis (directory vs. file), you get completely different findings...

Re:Check out FindBugs for finding bugs in Java (1)

shadow0_0 (59720) | more than 8 years ago | (#14985138)

Thanks :) I actually went and installed both after I posted.
Now I just have to push it to the other people in the company.

Re:Check out FindBugs for finding bugs in Java (1)

cerberusss (660701) | more than 7 years ago | (#14986116)

Now I just have to push it to the other people in the company.

You can try, but you'll succeed anyway using it yourself. I used it on a piece of the codebase and in the next teammeeting, said I'd "found some potential bugs with this new tool". People will get interested. That's actually how I found out about FindBugs, because of a colleague who was impressed with me using PMD.

Standup Fight? (1)

drewzhrodague (606182) | more than 8 years ago | (#14969449)

"Sir, is this a stand-up fight, or another bug hunt?"

Seriously, congradulations, Ben!

Thank you, open source community (5, Informative)

Benoni (132028) | more than 8 years ago | (#14969458)

This research has been a wonderful collaborative effort, and many people deserve to share the credit. To quote from part of the Acknowledgements section of my dissertation [wisc.edu] :

I am indebted to the many members of the open source community who have supported our work. My thanks go out to the many anonymous users of our public deployment, and to the developers of the open source projects used in our public deployment and case studies.

So thanks, Slashdot, for helping me find those users (or helping them find me). The exposure was invaluable. And thanks, open source community, for your participation. I've benefitted greatly from standing on your massed shoulders. This could not have happened without you.

Thank you, BenGay. (0)

Anonymous Coward | more than 8 years ago | (#14969510)

"I've benefitted greatly from standing on your massed shoulders."

You're welcome. Now could you get down? I'm getting a cramp.

Re:Thank you, open source community (1)

loconet (415875) | more than 8 years ago | (#14969593)

Thank you for loving what you do (or so it seems from what I've read).

Re:Thank you, open source community (2, Funny)

SEWilco (27983) | more than 8 years ago | (#14970108)

You're welcome.
We will now debug your dissertation.

Now at the University of Wisconsin-Madison (2, Informative)

DrDitto (962751) | more than 8 years ago | (#14969463)

Ben Liblit is now an assistant professor at the University of Wisconsin-Madison. He joins a fantastic Computer Science department. Good luck Ben!

Closed versus open source comparison (1, Interesting)

Anonymous Coward | more than 8 years ago | (#14969473)

It would have been interesting to know the difference in number and type of bugs between a closed source product and an equivalent open source product... let's say the MS Office suite versus OpenOffice.org suite.

Re:Closed versus open source comparison (1)

ROBOKATZ (211768) | more than 8 years ago | (#14969618)

Well that will never happen because this system requires the source code. Did you even look at the page?

Re:Closed versus open source comparison (0)

Anonymous Coward | more than 8 years ago | (#14969629)

Yes.

Heh... (4, Funny)

the_skywise (189793) | more than 8 years ago | (#14969484)

So somebody went and formalized the theory of "the users are the beta testers"...

Re:Heh... (5, Informative)

Benoni (132028) | more than 8 years ago | (#14969501)

Yes, exactly. The users are beta testers; we may as well admit it. I want to make them better beta testers. :-)

Heh...Beta Drugs. (0)

Anonymous Coward | more than 8 years ago | (#14969544)

"Yes, exactly. The users are beta testers; we may as well admit it. I want to make them better beta testers. :-)"

Recreational drugs help.

Re:Heh... (1)

CodeBuster (516420) | more than 8 years ago | (#14969627)

It has been my experience in software development that sharp users can give valuable feedback in the areas of usability and expected behaviors, but this is no substitute for trapping errors and logging failures on the user's machine when it comes to tracking down less visible faults.

Re:Heh... (1)

calyxa (618266) | more than 8 years ago | (#14969900)

having wrangled beta testers, I know that I totally spoiled the engineers at my last/psuedo-current gig by writing coherent and complete bug reports... sigh.

(hi, Ben! ;)

Re:Heh... (1)

Benoni (132028) | more than 8 years ago | (#14970002)

(Hi Calyxa!)

Re:Heh...users are the Beta (1)

oaksong (894169) | more than 8 years ago | (#14976191)

Ahh...the many years I've spent trying to make managment understand.... And why Open Source makes so much sense, at least from a got broke/get fixed perspective. Still haven't figured out the financial incentives. :)

Re:Heh...users are the Beta (1)

Benoni (132028) | more than 8 years ago | (#14977156)

Still haven't figured out the financial incentives. :)

If you mean incentives from the users' perspective, I like to pitch it this way. My statistical methods naturally tend to "learn" the most, most quickly, about the failures that happen most often. So the more a user participates, the more the developers' attention will be swayed to the bugs that user cares about. Thus, users can help steer bug triage.

Open source bug trackers can work the same way. When you report bugs in some project's Bugzilla system, you're helping that project see what they need to work on. At the same time, you're being selfish by drawing the developers' attention to your issues. It's a sort of enlightned self-interest.

Re:Heh... (0)

Anonymous Coward | more than 8 years ago | (#14972082)

So somebody went and formalized the theory of "the users are the beta testers"...

No, someone formalized the theory of the users are the testers. They always were. Using software is testing it.

Almost like infinite monkeys writing Shakespeare (2, Interesting)

gzearfoss (829360) | more than 8 years ago | (#14969583)

I know that in one particular http://www.kingdomofloathing.com/ [kingdomofloathing.com] game, they tend to follow this approach. Once a new feature is created, and debugged enough so that it's stable and doesn't break anything, the feature is released to the general populace. After all, once all of the important bugs are found, a thousand users will find the minor bugs through general usage faster than a small dedicated team of testers. Also, the time the testers save by not having to verify every single minor detail can be used to work on new material.
Add into the equation that without some elaborate software (such as Mercury LoadRunner, or an open-source equivalent), it's hard to simulate the effect the entire population will have when they start hammering on the server. It can also help track down extremely low-occurance bugs, because with enough people working on it, those one-in-a-million cases will eventually come up.

Kinda reminds me of infinite monkeys eventually producing the works of Shakespeare.

Re:Almost like infinite monkeys writing Shakespear (0)

Anonymous Coward | more than 8 years ago | (#15022846)

Kinda reminds me of infinite monkeys eventually producing the works of Shakespeare.

Or the kind of comments you get on Slashdot, which is very similar to an infinite number of monkeys typing on the internet, except the monkeys are VERY EGOTISTICAL and tend to engage in mindless FLAME WARS and eventually call one another NAZIs. Just like they'll do to this comment.

HI, my name's Dave (0, Flamebait)

threedognit3 (854836) | more than 8 years ago | (#14969617)

I have a doctorial thesis up for review and evaluation. Thank you for inviting me here to discuss my thesis. To be honest... This thesis is a composite of what has been offered to me by Microsoft, Oracle, Novell, Oracle, Microsoft, SAP, OpenSource and companies who wish not to be named..cough SUN...cough..SUN. Uh..what? Questions?...please see the index and feel free to look at the appendix. Thank you for the compliments...is that a Oracle teamwear shirt you're wearing?

Re:HI, my name's Dave (0)

Anonymous Coward | more than 8 years ago | (#14969635)

What the hell are you talking about?

Re:HI, my name's Dave (0)

Anonymous Coward | more than 8 years ago | (#14970018)

i think the fact this summary is more of a "my 'friend' thinks 'his' 3 year old dissertation is still doing good stuff and that 'he' is one bad ass mutha!"

Re:HI, my name's Dave (0)

Anonymous Coward | more than 8 years ago | (#14971631)

Ah yes, I see.

Drinking Club (1)

joefish_only_1 (695119) | more than 8 years ago | (#14969637)

You mean the ACM is more than just a drinking club? The way they advertised themselves at my university, one wouldn't have thought so...

Re:Drinking Club (1)

ROBOKATZ (211768) | more than 8 years ago | (#14969650)

ACM itself is a real professional organization; however most of the student chapters are primarily drinking clubs. I had to disassociate myself after the new officers started running a porn business out of the office.

More than a Drinking Club?? Nope. (0)

Anonymous Coward | more than 7 years ago | (#14986523)

Most recent CS papers I've seen seem to take every measure possible to avoid any math beyond 8th grade...

The fact that this guy actually used things like Statistics and Probability in a CS problem is probably what got him the dissertation in the first place. When some people in ACM couldn't understand a thing, they decided to give him an award.

Do you think this is flamebait?

If so, sit in on a 3D Graphics Course when the frequency domain and "Fourier Transform" are mentioned. I have personally witnessed a class of ~25 CS grad students [at a top 10 university in the USA] fiercely complain that taking a simple integral (to find the 1D fourier transform of a signal) was too hard for a test question. (And average grade for the class was about 20 points lower than previous classes, mainly due to that question).

For those not familar with this, computing a 1D fourier-transform requires little more than the level of a high-school calculus course [and yes, they do teach calculus in high schools!]

[I'm posting AC because many mods are probably CS people]

Alternative (complementary?) approach (1)

Anthony Boyd (242971) | more than 8 years ago | (#14969682)

I think that automated unit testing is the future of killing bugs. In layman's terms, this involves a program trawling your code and automatically trying to break it. If done well, the system can replace some of your QA team, and QA goes a lot faster. I hadn't even heard of such a thing until I did some contract work for Agitar, one of the companies doing this stuff. Here's a link with an overview & screenshots:

http://www.agitar.com/products/20051101-agitator.h tml [agitar.com]

They only work with Java. Here is a link to a page where they ran some Open Source products through their tool & published the results:

http://www.agitar.com/openquality/ [agitar.com]

But Agitar's product isn't Open Source itself. :(

-Tony

Re:Alternative (complementary?) approach (1)

DaveAtFraud (460127) | more than 8 years ago | (#14969907)

Unit testing tends to only confirm that the program under test works as designed. It does not catch design errors or requirements errors. To catch these, you need to design a test that confirms that the system works as its supposed to work. Where "as its supposed to work" is some arbitrary, external criteria. You should also note that I said "system" and not "program" where system is some larger assembly of components including the hardware and user environment.

You do better if you actually force the developers to create and run high quality unit tests so they fix the code before it gets into integration and becomes subject to automated testing. Peer and QA review of such unit tests tends to increase the quality of the software by ensuring that the unit tests actually test the functionality of the code against the requirements, are complete, coverage is complete, off nominal and boundary conditions are exercised, etc. Merely automatically running (and rerunning) poorly designed unit tests only turns the CPU into an inefficient space heater.

Of course this all presupposes testable functional requirements or user stories and corresponding test cases. Then you at best end up with a system that works as specified and you can turn it over to the users who will still manage to break it and/or complain that it doesn't do what they want it to do.

Please stop saying 386 (0, Offtopic)

ArcherB (796902) | more than 8 years ago | (#14969719)

From the Centos about page:
CentOS-4 supports x86 (i586 and i686),

In other words, it won't run in a 386, I wouldn't want it if it was compiled so low as to be optimized for a 386. Please start using x86 something other than 386.

(Sorry, it just irks me)

Dammit, wrong article (1)

ArcherB (796902) | more than 8 years ago | (#14969743)

I hate it when that happens.

Speaking of debugging through sampling... (0)

Anonymous Coward | more than 8 years ago | (#14969747)

Interesting. I thought I recognized the name Libit.
He's one of the authors of a NIPS paper from three years back: Statistical Debugging of Sampled Programs [cmu.edu]

Re:Speaking of debugging through sampling... (1)

Benoni (132028) | more than 8 years ago | (#14970227)

Liblit. There's an off-by-one-error in your count of L's. (It doesn't matter what they say about you, as long as they spell your name right.)

Yeah, that's me along with a truly fantastic team of collaborators. And there's more where that came from [wisc.edu] .

this FP f0r GNAA (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14969794)

FP?! (0)

Anonymous Coward | more than 8 years ago | (#14970284)

this FP

You keep using that word. I do not think it means what you think it means.

Has anyone ever failed an FP so badly as you have? How embarrassing for you.

Yes! 74 (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14969940)

of the founders of End, we need you shitheads. *BSD driven out by the PERFORM KKEPING

reminds me of my rules on reporting list outages (2, Funny)

SuperBanana (662181) | more than 8 years ago | (#14970211)

This reminds me of a method on reporting mailing list outages I devised back in 2001 or so.

I told people we were switching to new software (Mailman)- and that if they got an error message or similar, to flip a quarter X times (I forget how many) and ONLY email me if they got all heads. I didn't want to get a couple dozen reports of the same problem, and I figured that if there were any problems, they'd affect a large set of the 1000+ users of the list.

It worked brilliantly.

Guardian doesn't think so (1, Interesting)

Anonymous Coward | more than 8 years ago | (#14970317)

'Liblit's dissertation proposes a method for leveraging the key strength of user communities - their overwhelming numbers.`
'Of all the myths that have grown up around open source software, perhaps the most pervasive is Eric Raymond's aphorism that "Many eyes make bugs shallow",`
- Andrew Brown [guardian.co.uk] Dec 08 2005

Ep..? (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14970443)

OBLIGATED TO cARE

Where are the results? (1)

dozer (30790) | more than 8 years ago | (#14970763)

I would like to see the data that they're collecting but I can't find it anywhere on their site. Am I just missing it?

I learned my lesson with the cddb disaster: don't submit your own data unless you can mirror it yourself. Otherwise, if someone gets bored or greedy, everybody's hard work gets lost forever. Or, worse, it gets subverted to make profit for Gracenote.

Mirroring is easy enough even if you have almost no bandwidth: use bittorrent. So, where are the submitted results?

Computer Science is dying... (0)

Anonymous Coward | more than 8 years ago | (#14971464)

This just goes to prove how stupid academic computer science has gotten these days. This particular research is cheesy observational crap not even worthy of a degree at ITT Tech.

Sorry, dude, but you're a chode.

pfft..logical conclusion from Adams' 1984 paper (0)

Anonymous Coward | more than 8 years ago | (#14971789)

E. N. Adams, "Optimizing Preventive Service of Software
Products," ZBM Journal of Research and Development
28, No. 1, 2-14 (1984).

Real world bugs are not about a language (1)

roman_mir (125474) | more than 8 years ago | (#14972008)

Example: yesterday I had to solve a problem in the application I am developing for Bell that was absolutely independent of the programming platform.

The QA reports that there is an error on the screen while they are trying to save some data. The error is intermittent, it happens for some data sets but not for others. Investigation shows the following:

1. The data records that need to be saved must be first compared to existing data records for the same primary keys, if there are records, then the data is updated, otherwise it is inserted. Each normal record also can have one satellite record. These records share some of the primary key but are also different by one primary key component.

2. When the records are retrieved they are joined with data from another table. The application expects that all records from the other table that are related to the records from the first table have the same value in a particular field. However it happens that another application was used on the second table, which introduced data inconsistency between the records. Thus a work-around was introduced by the first application. The workaround consisted of selecting a Maximum value from the second table and joining that value to the records from the first table. This worked fine, until another application introduced NULL values into the second table. This caused the selection procedure used by my application to not return existing records when trying to save data. Since no records were returned on the select, my application assumed that the data was new and needed to be inserted rather than updated. Thus the application inserted multiple records where only one record had to exist.

3. An update procedure relied on having either 0, 1 or a maximum of 2 records per primary key. If it is 0 records, the data must be inserted as a new record. If it is 1 or 2 records, than one of the existing records is always a primary record, and the second one is the satellite. However, more than 2 records were found by this procedure because of the select/insert problem identified above. This created an error, because the code actually has a hard limiter built in: if there are more than 2 records returned by the database, an Illegal State Exception is raised.

--

What I described here is a software bug that caused another problem that caused another problem. But the bug in the first place was not expected, because it was assumed that other applications would not modify data in the secondary tables in an incosistent manner.

So, here is the actual chain of events: one application modifies some of the data data in the database in an way that is unexpected by the application that is being developed, this causes an incorrect interpretation of results in one of the operation in the new application, which does not actualy raise an exception, but it causes another independent procedure to cause an error.

The error is intermittent because only some of the data is modified in an incorrect manner. The procedures that cause the error to happen are asynchronous and are not necessarily executed in any particular order but rather depend on the user intervention to be executed.
--

The way that I found the problem was by eliminating all impossible logical branches. I was left with an improbabl logical branch: a SELECT statement returning an empty list, when in fact there is data in the database. Since all other logical paths were impossible, I had to assume that the improbable happened, investigated into it and found specific cases when SELECT statement did not return any records. From there I had to figure out what caused the incosistent data. The end solution was to change the SELECT procedure to return records even when joined with an empty set from a different table (the unexpected situation.)

--

Certainly if I had total control of the Data Model, this wouldn't have happened, because the data inconsistency would be impossible in the first place, but in the real world you don't always get to chose what you are working with. I was given an existing data model, and had to adopt the application to it.

Now, is it really of any relevance that the application is written in J2EE/BEA/Oracle? No, it is not.

Scumballs (0)

Anonymous Coward | more than 8 years ago | (#14975981)

ACM are a bunch of scumballs who should not be allowed to operate.
They are no better than spammers.

Minor Rants (1)

cant_get_a_good_nick (172131) | more than 8 years ago | (#14976285)

RANT #1
I always think it's weird, something about the art and craft of getting better code out gets little notice, but some FireFox alpha (which is feature INcomplete, really only for extension developers) gets 200,000 messages. Mabe a third of them will be flames "(IE/FireFox/Whatever) is so buggy, you suck unless you switch to (whatever)". But tools to debug these get ignored. How much work is going into KDE vs GNOME, and even a group that wants to fork KDE (deity() help us).

RANT #2
I really think we're reaching some of the limits of the current programming models. Think of how many states there are in a 1GB machine? 2^(2^30) is
a lot of states. This is one of the best things about Java, trying to restrict the number of states, pointers massive complicate the state diagram, allow stray code from a totally unrelated segment fuck up yours if there is a bug. But we have the same 1 segment architecture that back with monolithic apps fitting into 10Kb or so. The security threats are radically different (stand alone machines to always on TCP/IP connctions) but we haven't isolated code much better, W^X just now making it's way into modern UNIXen. Why the hell do you have execution state (return address on the stack) next to data that can be overwritten? Maybe back in the old days of register poor architectures, but we shouldn't have that now. But there's so much code out there, can't rewrite it all.

If i link a library in, i should have a defined set of things that it can do. It should have it's own sandbox, and only do the things it specifies. If it does anything different, terminate the app and not let it do something crazy. I'm sure modern MMUs could be programmed to subsegment like this, but we don't.

OK, rant over.
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>