January 2008
19 posts
Jan 30th
Jan 29th
RailsConf 2008: Speaker: Dave Fayram →
“I want to be you after reading that [bio]” - Paul Saab
Jan 29th
Jan 28th
Jan 28th
1 note
Jan 26th
Jan 25th
Jan 25th
New York Times on the new Blue Bottle →
Man, I really want to go! Schedule is so tight though… 
Jan 25th
“At some point, your definitions have to make contact with the outside world. Or...”
– Stuart Robinson, fellow Powersetter
Jan 25th
Incredibly Stupid People on freenode#ruby
kirindave: We're trying to figure out why http://pastie.org/142875 might leak so badly.
RubyPanther: "leak?"
kirindave: Yes.
RubyPanther: why do you think it leaks?
kirindave: RubyPanther: Run the code.
RubyPanther: kirindave: it's an endless loop, I'm not going to run it ;)
kirindave: RubyPanther: Why do you think it doesn't leak?
RubyPanther: kirindave: leaks are to be proven, not disproven :)
JamesKilton: kirindave: Define "leak". This code doesn't seem like a real use case
magicwindow: joined the channel.
kirindave: JamesKilton: This is a reduction of some code that's used in a json-rpc service app that sits over BDB. It leaks memory horrendously.
kirindave: JamesKilton: We've removed the socket listens and whatnot and reduced it down to this, which reproduces the leak.
kirindave: RubyPanther: Then run the fucking code?
RubyPanther: kirindave: the most common reason for "leaking" is, it's not really leaking, there is a loop, and, I know this doesn't sound right, but please trust enough to try it... you have to paste the inside of the loop into a method, and just call the method from inside the loop, without doing any work inside the loop that isn't in a method
RubyPanther: because of closures, and scope
RubyPanther: I had a loop with Hpricot once that was eating over 1G of RAM, I thought it was a leak, but _why told me this sollution, and to my surprise, the memory usage reduced to 50M
JamesKilton: kirindave: "should" is a dangerous word
kirindave: JamesKilton: I was under the impression that ruby was a garbage collected language.
JamesKilton: that implies you know exactly how the GC works. Obviously the resulting arrays and strings of that method are still "in-use"
RubyPanther: if closures are laying around, it shouldn't ever be able to free it, until you return from the method and let them drop out of use..;
JamesKilton: By what we don't know
kirindave: JamesKilton: But that's the whole program.
RubyPanther: even if it doesn't "look like" they are still being used
kirindave: If they _are_ being retained by the loop context, that's a bug.
RubyPanther: lol
kirindave: There is no reasonable justification for this code to leak memory.
RubyPanther: tsk tsk
JamesKilton: sighs
RubyPanther: it's not a leak
sepp2k: RubyPanther: I'd be very surprised if loop would store the closure.
RubyPanther: it you misusing the memory
JamesKilton: sepp2k: It's you refusing to accept that a language may work slightly differently than you expect it to
kirindave: RubyPanther: I'm confused how you could classify this as anything but a memory leak.
sepp2k: JamesKilton: Me? What'd I do?
RubyPanther: sepp2k: I was very surprised when pasting the inside of the loop into a method with no other changes reduced the memory consumption by over 900M, but luckily I was A) smart enough to ask _why and B) smart enough to listen to him
JamesKilton: sepp2k: I know it's not your code, but you're fighting like it is
sepp2k: JamesKilton: I'm not fighting at all. This is the first thing I said in this discussion.
RubyPanther: well, not literally
sepp2k: No, second. First was the thing about the GC
kirindave: This entire discussion is blowing my mind. This is a memory leak. If the GC isn't collecting these then it is not doing its job.
RubyPanther: kirindave: if you believe it is a memory leak, you will probably have difficulty solving it
kirindave: RubyPanther: It was a mistake to come into #ruby
kirindave: RubyPanther: People like you render it useless.
RubyPanther: of the 100 people with "memory leaks" in Ruby proggies that I've seen, there was like 1 who had a leak
JamesKilton: kirindave: Wow.
JamesKilton: just wow
RubyPanther: the ones who insisted it was a leak, spent a long unhappy time getting the memory usage down
kirindave: RubyPanther: Please identify the leak in that code then.
JamesKilton: kirindave: It's you refusing to accept that a language may work slightly differently than you expect it to
RubyPanther: it might use a surprising amount of memory
RubyPanther: it probably uses more than is needed
kirindave: JamesKilton: So why would it leak? Where is that code retaining memory?
JamesKilton: besides, memory leaks by definition don't happen in Ruby
JamesKilton: RubyPanther already answered that kirin!
JamesKilton: it seems to have to do with closures and how they operate with the GC
kirindave: He answered with TomCrusian nonsense.
JamesKilton: what?!
JamesKilton: what the hell does that even mean?
RubyPanther: he's calling me a scientologist
kirindave: Look, every loop in ruby is done via a closure.
LegendaryPenguin: anyone?
kirindave: RubyPanther: No, I'm calling you stupid *like* a scientologist.
JamesKilton: you're pathetic kirindave. You come asking why, and then insult people who try to help.
narcoclepsy: ziiiiing!
kirindave: JamesKilton: I'm insulting people who aren;t helping, but arguing the language _should_ behave this way.
sepp2k: JamesKilton: This isn't about closures. He said it works fine, when starting the GC right away.
kirindave: sepp2k: Thank you for listening at least. :)
Editor's Note: The offending bug was reported and fixed. It had to do with "pure" functions and an excessively clever regex optimization losing pointers when run iteratively. The temporary fix was to put "x = 1" at the top of the function to trick ruby into running the function with a full stack frame.
Jan 24th
1 note
“And because of the digital chip age in which we live - “Mass Effect”...”
– Townhall.com::The “Sex-Box” Race for President::By Kevin McCullough IT’S THE END OF THE WORLD! PEOPLE ARE THINKING ABOUT SEX! AUUUGH! SAVE YOURSELVES!  
Jan 16th
“Look, if the Gamers need outlets to find adult oriented gaming options - then...”
–  Kevin MucCullough Townhall.com::Blog  Kevin’s mistake is equating consensual adult organisms having sex with rape.  Everyone is here because their parents had sex. Society runs from this simple fact, but that doesn’t change its truth.  The idea that sex is something to be ashamed of or...
Jan 16th
Jan 16th
Jan 16th
“If the Bible is wrong when it tells us it is infallible, then it contradicts...”
– uscchica09, BibleForums.org [2006-Sep-03] via the FSTDT Top 100 
Jan 15th
Jan 14th
Fuzed
Recently, Zed Shaw posted a long rant about the Rails Community in which he mentions a lot of things, including my current open source project, Fuzed. Zed doesn’t seem to be up to speed on what Fuzed is, and so maybe it’s understandable that he seems to feel threatened by it. But he shouldn’t be, because Fuzed is not a replacement for mongrel. Fuzed is an alternative approach to...
Jan 8th
Andrew Olmsted: Final Post →
There is something indescribably poignant about anything like this. As much as I have right to, I salute this complete stranger.  On a less gloomy note, this is step one of immortality. His will persists beyond the passing of his earthly coil. 
Jan 7th