Elliott C. Back: Internet & Technology

Fixing Bugs with Genetic Algorithms

Posted in Code, Errors by Elliott Back on September 28th, 2009.

Wow, check out this preprint: A Genetic Programming Approach to Automated Software Repair. Essentially, the researchers used a suit of positive and negative unit tests as the distance scoring function for a genetic algorithm which operated on code to mutate branches. More interestingly, they did this on off-the-shelf legacy C programs.

Genetic programming is combined with program analysis methods to repair bugs in off-the-shelf legacy C programs. Fitness is defined using negative test cases that exercise the bug to be repaired and positive test cases that encode program requirements. Once a successful repair is discovered, structural differencing algorithms and delta debugging methods are used to minimize its size. Several modifications to the GP technique contribute to its success: (1) genetic operations are localized to the nodes along the execution path of the negative test case; (2) high-level statements are represented as single nodes in the program tree; (3) genetic operators use existing code in other parts of the program, so new code does not need to be invented. The paper describes the method, reviews earlier experiments that repaired 11 bugs in over 60,000 lines of code, reports results on new bug repairs, and describes experiments that analyze the performance and efficacy of the evolutionary components of the algorithm.

Literally, they wrote some small samples of code that said “here’s what I want this buggy program to do” and then their genetic algorithm actually went off and hacked away at the code (much like many of us flesh-and-blood programmers) and made it work. They have several nice examples, including one on automatically fixing the infamous Zune date bug.

The dream of automatic programming has eluded computer scientists for at least 50 years. Although the methods described in this paper do not evolve new programs from scratch, they do show how to evolve legacy software to repair existing faults.

Vote for Google’s Final 10^100 Projects!

Posted in Google by Elliott Back on September 24th, 2009.

Google’s Project 10100 is about gathering the world’s best ideas and sifting them to produce meaningful agents of change. After thousands of people from hundreds of different countries submitted over 150,000 ideas, dedicated Google staffers aggregated them into 16 different “Big Ideas,” up to 5 of which will be funded. Here’s a little more info about the project:

Thanks to ReadWrite Web for pointing out this video.

If you head on over now to the Project 10100 voting page, let your voice be heard! Voting will end on October 8th, so you don’t have much time! Proposals include:

  • Promote health monitoring and data analysis
  • Enhance science and engineering education
  • Create real-world issue reporting system
  • Create genocide monitoring and alert system
  • Help social entrepreneurs drive change
  • Make government more transparent
  • Provide quality education to African students
  • Create real-time natural crisis tracking system
  • Build real-time, user-reported news service
  • Drive innovation in public transport
  • Make educational content available online for free
  • Create more efficient landmine removal programs
  • Work toward socially conscious tax policies
  • Build better banking tools for everyone
  • Collect and organize the world’s urban data
  • Encourage positive media depictions of engineers and scientists

I’ve voted for Work toward socially conscious tax policies. Let me know what you think in the comments!

Google Chrome 3’s “New Tab” Thumbnails Sucks

Posted in Browsers, Google by Elliott Back on September 19th, 2009.

So I recently restarted my computer to find a new version of Google Chrome which has a pathetic “New Tab” page. Where the old one gave me a ton of recently viewed thumbnail icons (12, I think), the new only has 8! And they pathetically take up a mere fraction of the available real-estate on the monitor. If you don’t believe me, check out this screenshot of the feature-crippled Chrome 3 in action:

google chrome thumbnails

I’m not the only one to notice, there are a couple support threads on the Google Chrome Forums about this. More, sure to come.

« Previous PageNext Page »