InfoQ

Presentation

Recorded at:
Recorded at

Conceptual Algorithms

Presented by Tom Preston-Werner on Jan 17, 2009

Community
Ruby
Topics
Software Troubleshooting ,
Software Testing ,
Methodologies ,
Delivering Quality ,
Programming ,
Debugging
Tags
Patterns and Practices ,
github ,
RubyFringe
Summary
In this talk from RubyFringe, GitHub's Tom Preston-Werner talks about a methodical approach to solving problems and debugging. Also: he explains how to use the "Deathbed Filter" for choosing projects.

Bio
Tom Preston-Werner is one of the founders of GitHub. He's created various Ruby tools such as the monitoring tool god, and many more.

About the conference
RubyFringe is an avant-garde conference for developers that are excited about emerging Ruby projects and technologies. They're mounting a unique and eccentric gathering of the people and projects that are driving things forward in our community.
Entertaining talk by Markus Kohler Posted Jan 21, 2009 1:59 AM
Re: Entertaining talk by Werner Schuster Posted Jan 21, 2009 4:48 PM
Re: Entertaining talk by Markus Kohler Posted Jan 28, 2009 11:14 AM
Re: Entertaining talk by William Louth Posted Jan 29, 2009 5:24 AM
Wau!!! by Jure http://blog.regulus.si Posted Jan 22, 2009 10:37 AM
  1. Back to top

    Entertaining talk

    Jan 21, 2009 1:59 AM by Markus Kohler

    It's a little bit shocking how difficult it is in Ruby to analyze memory leaks.
    Analyzing memory leaks is easy in Java (Eclipse Memory Analyzer).
    Analyzing memory usage is much more difficult, but still can be done with MAT. Check my blogs posts

  2. Back to top

    Re: Entertaining talk

    Jan 21, 2009 4:48 PM by Werner Schuster

    I'm not so sure - the memory leak Tom's talking about is a leak in the Ruby interpreter not an application leak.
    There are a bunch of leaks - although recently a fix for many of them was found:
    www.infoq.com/news/2009/01/ruby-patches-fix-leaks
    (turns out it was naughty GCC + the conservative Ruby GC).

    For the nice kind of memory leak (the self-inflicted one in user code) Ruby doesn't need outside tools since it can look at the objects in the heap and iterate over the reachable ones. Eg here's a simple homegrown profiler using ObjectSpace:
    scottstuff.net/blog/articles/2006/08/17/memory-...

    Obviously - you'll still need some of the algorithms for analyzing the object graph and figuring out what might be a memory leak or not, and tools like MAT have these of course.

  3. Back to top

    Wau!!!

    Jan 22, 2009 10:37 AM by Jure http://blog.regulus.si

    Thanks a lot for this presentation, Tom!
    I would listen to audio versions of this in a regular podcast :)
    Jure Sršen

  4. Back to top

    Re: Entertaining talk

    Jan 28, 2009 11:14 AM by Markus Kohler

    Sure that was a leak caused by the GC not working correctly.
    I never heard of such a bug in the JVM GC within the last 9 years.

    You typically need an external tool, because if you don't have enough memory anymore you cannot use additional memory within the same process.

  5. Back to top

    Re: Entertaining talk

    Jan 29, 2009 5:24 AM by William Louth

    Entertaining? This guy would put you to asleep with his long drawn out project promotion, language (not just ruby itself), and inability to get to the point without meandering off the course in mid-flight. I find it amazing that the lesson in this session needed to said and in such a excruciating manner. And I thought Java conferences were bad filled with the same repeating talk show (sales) hosts.

    William

Educational Content

QCon SF Keynote: Techie VC's Talk About Trends & Opportunities

Kevin Efrusy and Salil Deshpande talk about what makes a business successful or not, presenting three actual cases they have been involved with: Hyperic, G2One, SpringSource.

Project Lead Mark Fisher Discusses the Spring Integration Project

InfoQ talks to Mark Fisher, project lead for the Spring Integration project, about the framework.

How HTML5 Web Sockets Interact With Proxy Servers

Peter Lubbers explains in this article how HTML5 Web Sockets interact with proxy servers, and what proxy configuration or updates are needed for the Web Sockets traffic to go through.

Rails in the Large: How Agility Allows Us to Build One Of the World's Biggest Rails Apps

Neal Ford shows what ThoughtWorks learned from scaling Rails development: infrastructure, testing, messaging, optimization, performance.

Stuart Halloway on Clojure and Functional Programming

Stuart Halloway discusses Clojure and functional programing on the JVM in depth, and touches on the uses of a number of other modern JVM languages including JRuby, Groovy, Scala and Haskell.

Oren Teich and Blake Mizerany on Heroku

Oren Teich and Blake Mizerany talk about the technology behind Heroku and the benefits of the new add-on system.

Security for the Services World

Chris Riley presents security issues threatening service based systems, examining security threats, presenting measures to reduce the risks, and mentioning available security frameworks.

Navigating The Rapids:Real-World Lessons in Adopting Agile

This talk investigates technical issues encountered when moving to an Agile process.