<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Friends of crispy</title><link>http://disqus.com/by/crispy/</link><description></description><atom:link href="http://disqus.com/crispy/friends.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Mon, 06 Oct 2008 14:29:05 -0000</lastBuildDate><item><title>Re: RockStarProgrammer - Greetings</title><link>(u'http://www.rockstarprogrammer.org/post/2006/jul/28/greetings/',%202728860L)#comment-2728860</link><description>&lt;p&gt;That's "conceited bastard" to you.  :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Tue, 15 Aug 2006 04:07:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - More Than You Want to Know About Java Serialization</title><link>(u'http://www.rockstarprogrammer.org/post/2006/jul/29/more_you_want_know_about_java_serialization/',%202728856L)#comment-2728856</link><description>&lt;p&gt;Hey, thanks.  I wasn't even aware that they added XMLDecoder and XMLEncoder.  Most of the effort that led to this post was in regards to space efficiency of serialization.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Thu, 17 Aug 2006 15:49:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Day One</title><link>(u'http://www.rockstarprogrammer.org/post/2006/aug/28/day_one/',%202728851L)#comment-2728851</link><description>&lt;p&gt;Yeah, I get the feeling that people are generally pretty smart here.  At my Last Company (I really hate saying that), it definitely started out that way, but they slowly lost interest in hiring good people.  Not that they were opposed to it, but hiring people had a higher priority than hiring good people.&lt;/p&gt;&lt;p&gt;It's mostly the weird tools that are making things more of a burden to an open and productive development team than anything else I'd consider being in the way at this point.  I don't want to walk in and try to chane everything right away, though.&lt;/p&gt;&lt;p&gt;I've got a machine that's unsupported by IT.  I'll be quiet with it or a while, and then maybe see if I can get people using something like a real wiki or similar communication tool.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Tue, 29 Aug 2006 22:44:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Space Efficient Encrypted Backups</title><link>(u'http://www.rockstarprogrammer.org/post/2006/aug/26/space_efficient_encrypted_backups/',%202728849L)#comment-2728849</link><description>&lt;p&gt;That is correct.  My data is a stream, and the largest things going into it are append-only.  I have occasionally done larger changes that have caused huge stream changes, but those are more rare.&lt;/p&gt;&lt;p&gt;I've done similar work with other types of things as well.  For example, mail folders.  Those are also append-mostly (assuming order is enforced).  Deltas are small.&lt;/p&gt;&lt;p&gt;This mechanism is working so well for me, I thought it'd be a good idea to write about it in case it's a fit for anyone else.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Thu, 31 Aug 2006 14:32:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Outsourcing IT?</title><link>(u'http://www.rockstarprogrammer.org/post/2006/sep/18/outsourcing-it/',%202728847L)#comment-2728847</link><description>&lt;p&gt;Yeah, I guess that's about it.  It's similar to the feeling I got when I stopped running NetBSD on my desktop and started running OS X.  It seemed wrong in a way, but left me doing more.  I no longer have my pimped out twm config that lets me point to focus and just press “x” on the background to get an xterm to pop up instantly, but I can write much better software in Cocoa than I ever did in...well, any X toolkit I tried.&lt;/p&gt;&lt;p&gt;I still like doing portable software development when there's not a GUI component, but some projects aren't going to be interesting forever.&lt;/p&gt;&lt;p&gt;BTW, do you get to keep your inferior human organs?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Tue, 19 Sep 2006 12:22:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - If I Could Remove Two Keywords from Java...</title><link>(u'http://www.rockstarprogrammer.org/post/2006/dec/13/if-i-could-remove-two-keywords-java/',%202728838L)#comment-2728838</link><description>&lt;p&gt;Jonathan,&lt;/p&gt;&lt;p&gt;The syntax isn't as important to me as the semantics.  Of course, none of this matters as nobody is going to change java to suit my desires.  These are just a couple of things I've seen used in ugly ways that were bothering me.&lt;/p&gt;&lt;p&gt;You make a good point about single entry, single exit checking being something that could be implemented by the compiler or another code checking device that could be plugged into the build system can validate that nobody is doing such a thing in a particular team.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Wed, 28 Feb 2007 03:17:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Fast and Easy Token Classification in C</title><link>(u'http://www.rockstarprogrammer.org/post/2007/may/09/fast-and-easy-token-classification-c/',%202728836L)#comment-2728836</link><description>&lt;p&gt;It's possible...I don't have K&amp;amp;R handy.&lt;/p&gt;&lt;p&gt;A for loop over the structs would yield similar performance to the original, so I don't know that I'd worry about that one too much.  One could sort the array, but it'd still be more comparisons than what I'm doing now.&lt;/p&gt;&lt;p&gt;The hash function could certainly work, and someone else had suggested that.  I suppose it is an obvious way to do it and would still apply to case insensitive searches.&lt;/p&gt;&lt;p&gt;I think the main reason I didn't use the hash function was because I sort of approached this problem completely backwards.&lt;/p&gt;&lt;p&gt;I wasn't trying to actually create a fast routine for matching strings.  I was looking at a piece of someone else's C code that was doing this sort of matching and wondering if it was really worth it.  So I started wondering how I'd do something like that.  Then I wondered if it mattered anyway.&lt;/p&gt;&lt;p&gt;Somewhere along the way, I'd completely forgot what the original point was and just went to bed.  I figured someone might be able to use the results, though.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Tue, 15 May 2007 01:01:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Java Exception Antipatterns</title><link>(u'http://www.rockstarprogrammer.org/post/2007/jun/09/java-exception-antipatterns/',%202728833L)#comment-2728833</link><description>&lt;p&gt;This is what I meant when I said I understand the theoretical value in checked in exceptions.  In theory, you're correct and proper use of checked exceptions would raise awareness and people would deal with problems sooner rather than later.&lt;/p&gt;&lt;p&gt;In practice, you're also correct in that the JDK itself has a lot of bad uses of checked exceptions that make it more difficult to do things right.&lt;/p&gt;&lt;p&gt;It's rarely a specific caller that can do anything useful with an exceptional condition.  It's generally something that's useful way up top.  If I'm ten or so frames down a stack trying to initialize something and a network resource is unavailable and I can't do my part, it seems that the only right thing to do is to throw an exception...which is what is going to happen anyway.&lt;/p&gt;&lt;p&gt;And this is the basic issue.  People catch exceptions when they absolutely shouldn't because the compiler tells them they have to deal with a particular problem.&lt;/p&gt;&lt;p&gt;Personally, I have seen way more bugs from people catching exceptions than not catching them.  Keep in mind an exception has to have occurred either way.  Whatever actually caused the exception is where the problem with the code is.  Your best bet in most parts of most applications is to leave that information alone and let your top level error handler sort it out as a general failure.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Mon, 11 Jun 2007 13:37:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Empty Catch Blocks are Always Wrong</title><link>(u'http://www.rockstarprogrammer.org/post/2007/jun/15/empty-catch-blocks-are-always-wrong/',%202728829L)#comment-2728829</link><description>&lt;p&gt;@nope&lt;/p&gt;&lt;p&gt;Well, first, that's not an empty catch block.  That's a catch block with a comment describing why you *always* assume that any NumberFormatException means don't run your batch job.&lt;/p&gt;&lt;p&gt;However, your code still has bugs that it's hiding from you.  For example:&lt;/p&gt;&lt;p&gt;What if the code providing profileId as a string is providing a valid number with leading and/or trailing whitespace?   It's not hard to think of ways this might happen with user-supplied input.&lt;/p&gt;&lt;p&gt;What if you burn through enough IDs that suddenly your IDs are greater than Integer.MAX_VALUE?  I don't know where your IDs come from, but many places like to use DB sequences which are actually much larger than ints, but still represent them in an int type.&lt;/p&gt;&lt;p&gt;In either of these cases, your batch job is *mysteriously* not run while providing no information as to why.&lt;/p&gt;&lt;p&gt;If you honestly consider that an integer that cannot be parsed *always* means you've run into a case where you don't want to run your batch job, what's wrong with at least logging the decision at debug or trace?  Personally, if my system is receiving invalid input, I like to at least be able to know what it looks like.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Sun, 17 Jun 2007 14:35:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Please Wake Me From My Hibernation</title><link>(u'http://www.rockstarprogrammer.org/post/2007/jun/22/please-wake-me-my-hibernation/',%202728826L)#comment-2728826</link><description>&lt;p&gt;@Jay&lt;/p&gt;&lt;p&gt;Hey, thanks for the useful info.  I actually agree with much of what you said.&lt;/p&gt;&lt;p&gt;Regarding IDs, I generally ID my objects in my own projects at creation using an incrementing integer mechanism that's DB backed.  It works somewhat like a sequence, but nodes cache chunks of them.  It's absolutely no performance difference, but you end up with IDs that are a little easier to deal with.&lt;/p&gt;&lt;p&gt;For unit testing DB stuff, I've written a JDBC driver that makes it really easy to write DB tests.  There's no DB involved, and I can simulate any sort of behavior for any sort of request.&lt;/p&gt;&lt;p&gt;The upgrading is interesting.  We're deploying an .ear, but it sounds like it might be similar.  I've run into conflicts with different versions of the same class in different classloaders, so I try to avoid that.&lt;/p&gt;&lt;p&gt;I agree that hibernate probably saves time relative to some other ways of doing things.  The mechanisms I've developed in my own projects are actually really efficient for both the developers and the machines.  Hibernate meets some edge cases that mine doesn't, of course.  However, I've been blocked by some of the things hibernate is supposed to do that it fails to do correctly.&lt;/p&gt;&lt;p&gt;I also agree that not everybody on the whole team should have to deal with it, but we shifted from working on layers to implementing vertical features.  In doing so, we each have to make a small data model change to support our respective tasks and things break.&lt;/p&gt;&lt;p&gt;I do not agree that I need to spend 5 or 6 hours reading a book before trying stuff out.  I did decent work in struts, gwt, guice and several other frameworks without reading a book.  Same with erlang, ocaml, etc...  It almost seems that if it requires reading a book, it's too complicated and non-obvious and needs to be simplified some.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Sun, 24 Jun 2007 14:52:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - The Fastest Month Parser in the West</title><link>(u'http://www.rockstarprogrammer.org/post/2007/jun/27/fastest-month-parser-west/',%202728824L)#comment-2728824</link><description>&lt;p&gt;I've looked at the listing and suppose I should qualify that I don't think that my binary has the fastest possible matching.&lt;/p&gt;&lt;p&gt;However, it seems to me that any additional optimization is really just working around a compiler bug that is likely to be fixed at some point.&lt;/p&gt;&lt;p&gt;There's no reason for a compiler to produce sub-optimal code for a switch.  However, I don't *really* know what's optimal on a given chip.  For example, my ancient SGI compiler generates the following at its highest optimization level:&lt;/p&gt;&lt;p&gt;blt $2, 1249209392, $34&lt;br&gt;    beq $2, 1249209903, $40&lt;br&gt;    beq $2, 1298231855, $37&lt;br&gt;    beq $2, 1298233647, $39&lt;br&gt;    beq $2, 1315927599, $45&lt;br&gt;    beq $2, 1331917871, $44&lt;br&gt;    beq $2, 1399156783, $43&lt;br&gt;    b   $47&lt;br&gt;$34:&lt;br&gt;    beq $2, 1097888303, $38&lt;br&gt;    beq $2, 1098213167, $42&lt;br&gt;    beq $2, 1147495215, $46&lt;br&gt;    beq $2, 1181049391, $36&lt;br&gt;    beq $2, 1247899183, $35&lt;br&gt;    beq $2, 1249209391, $41&lt;br&gt;    b   $47&lt;/p&gt;&lt;p&gt;It decided to break the switch into two parts and do six beq ops on each side.  It might be that the cost of doing more blt ops is greater than the worst-case on one side of the branch, so splitting it further would make things worse.&lt;/p&gt;&lt;p&gt;Of course, this is more balanced than the GCC listing, but it'd be good to consider icc's case.  I started doing that, but I'm at work and have spent more time than I intended to spend analyzing this problem.  Here's a poor-man's assessment, though:&lt;/p&gt;&lt;p&gt;% repeat 5 ./parsemonth-gcc&lt;br&gt;3.911u 0.024s 0:04.02 97.7%     0+0k 0+0io 0pf+0w&lt;br&gt;3.899u 0.021s 0:03.97 98.4%     0+0k 0+0io 0pf+0w&lt;br&gt;3.903u 0.022s 0:03.98 98.4%     0+0k 0+0io 0pf+0w&lt;br&gt;3.897u 0.025s 0:03.99 97.9%     0+0k 0+0io 0pf+0w&lt;br&gt;3.905u 0.021s 0:03.99 98.2%     0+0k 0+0io 0pf+0w&lt;br&gt;% repeat 5 ./parsemonth-icc &lt;br&gt;3.392u 0.018s 0:03.54 96.0%     0+0k 0+2io 0pf+0w&lt;br&gt;3.391u 0.015s 0:03.44 98.8%     0+0k 0+0io 0pf+0w&lt;br&gt;3.393u 0.016s 0:03.44 98.8%     0+0k 0+0io 0pf+0w&lt;br&gt;3.391u 0.016s 0:03.44 98.8%     0+0k 0+0io 0pf+0w&lt;br&gt;3.393u 0.017s 0:03.44 98.8%     0+0k 0+0io 0pf+0w&lt;/p&gt;&lt;p&gt;Note that the above is &lt;a href="http://hg.west.spy.net/hg/snippets/file/tip/c/misc/parsemonth.c" rel="nofollow noopener" target="_blank" title="http://hg.west.spy.net/hg/snippets/file/tip/c/misc/parsemonth.c"&gt;http://hg.west.spy.net/hg/s...&lt;/a&gt; modified to run 1,000,000 iterations on my old macbook.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Thu, 28 Jun 2007 16:55:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - The Fastest Month Parser in the West</title><link>(u'http://www.rockstarprogrammer.org/post/2007/jun/27/fastest-month-parser-west/',%202728821L)#comment-2728821</link><description>&lt;p&gt;@Kelvin&lt;/p&gt;&lt;p&gt;Well, that'd be a bug in whatever produced the logs in this case.  However, it's not a hard problem to deal with.  I just have to lowercase them in my switch and add a tolower() from ctype.h for each one.  It doesn't increase the algorithmic complexity.&lt;/p&gt;&lt;p&gt;In the current code, that'd be considered an invalid line (which I'm not too worried about).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Fri, 06 Jul 2007 23:32:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - How to Look Like an Idiot</title><link>(u'http://www.rockstarprogrammer.org/post/2007/sep/21/how-to-look-like-an-idiot/',%202728819L)#comment-2728819</link><description>&lt;p&gt;I do think yours is a fine argument, although it really hasn't affected me much in practice.&lt;/p&gt;&lt;p&gt;Your argument is welcome here.  This is my web server and I brought it up.&lt;/p&gt;&lt;p&gt;The *primary* point I had, though, was that a ``python is ugly and I'll never use it because it makes you indent properly and Guido is an idiot'' argument doesn't belong on an erlang list.&lt;/p&gt;&lt;p&gt;Specifically, there aren't a lot of people looking at this page hoping to learn something about erlang or python or any other specific topic, so if you wanted to argue that ocaml is so ugly and unmaintainable that you'll never bother trying to use it, you at least wouldn't be causing a large annoyance here.  I'd still disagree with my most recent consulting check in hand, though.  :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Fri, 21 Sep 2007 19:15:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Wanted:  Git Cheat Sheet for Collaboration</title><link>(u'http://www.rockstarprogrammer.org/post/2008/jan/29/wanted-git-cheat-sheet-collaboration/',%202728802L)#comment-2728802</link><description>&lt;p&gt;Codeless,&lt;/p&gt;&lt;p&gt;``git show | head'' is pretty close to ``hg id''&lt;/p&gt;&lt;p&gt;yada,&lt;/p&gt;&lt;p&gt;``hg bundle'' produces what is effectively a diff between what's available in a given repository and another repository.  It's a compressed binary format that contains all of the changesets in such a way that can be easily transported as a single file and applied to a repo (even if there's overlap).&lt;/p&gt;&lt;p&gt;So if you clone someone's tree, you can make some changes, do some commits, ``hg bundle /some/file'' and email the file.  The other side will ``hg unbundle /some/file'' and have your changes.&lt;/p&gt;&lt;p&gt;From what I can tell, ``git archive'' is the same as ``hg archive'' -- it just produces an export of the full tree in a tar or zip file.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Wed, 06 Feb 2008 13:10:00 -0000</pubDate></item><item><title>Re: The top 5 Digg Tools to Make you a Better Digger</title><link>(u'http://www.makeuseof.com/tag/the-top-5-digg-tools-to-make-you-a-better-digger/',%2044911663L)#comment-44911663</link><description>&lt;p&gt;All this talk of RSS, and no mention of diggwatch:&lt;/p&gt;&lt;p&gt;&lt;a href="http://bleu.west.spy.net/diggwatch/" rel="nofollow noopener" target="_blank" title="http://bleu.west.spy.net/diggwatch/"&gt;http://bleu.west.spy.net/di...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Fri, 15 Feb 2008 13:46:57 -0000</pubDate></item><item><title>Re: RockStarProgrammer - The Differences Between Mercurial and Git</title><link>(u'http://www.rockstarprogrammer.org/post/2008/apr/06/differences-between-mercurial-and-git/',%202728799L)#comment-2728799</link><description>&lt;p&gt;@confused - thanks, corrected the typo&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Mon, 07 Apr 2008 13:46:00 -0000</pubDate></item><item><title>Re: RockStarProgrammer - The Differences Between Mercurial and Git</title><link>(u'http://www.rockstarprogrammer.org/post/2008/apr/06/differences-between-mercurial-and-git/',%202728795L)#comment-2728795</link><description>&lt;p&gt;@robewald&lt;/p&gt;&lt;p&gt;That's true, the reflog is great.  I was referring more to the published history.  There are tools (mq again) that can do this same sort of thing in mercurial, but it's not common practice.&lt;/p&gt;&lt;p&gt;@Miran&lt;/p&gt;&lt;p&gt;That's true.  I *almost* mentioned it, but it was too wordy as it is.&lt;/p&gt;&lt;p&gt;A branch is any point where a changeset has more than one children.  You can have unnamed branches the same way as you have named branches, but it's a bit harder to keep up with.&lt;/p&gt;&lt;p&gt;You're right about fewer commands, though.  Darcs 2.0 is out today, and should be considered the goal to approach in user interface.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Mon, 07 Apr 2008 15:32:00 -0000</pubDate></item><item><title>Re: Some thoughts on git</title><link>(u'http://pcapriotti.github.com/2007/10/08/some-thoughts-on-git/',%20499660880L)#comment-499660880</link><description>&lt;p&gt;I don't see the problem with the source code.  I had the opposite experience, really.&lt;/p&gt;&lt;p&gt;I wanted to add a feature to git.  I found it fairly easy to figure out where to put it and how to write it.  I did make a couple of mistakes in my initial version (which were pointed out to me early).  Making git do what I wanted it to do was easy.  The hard part was getting it accepted.&lt;/p&gt;&lt;p&gt;Junio has got to be one of the busiest software volunteers on the planet, but he meticulously reviewed my code for both style and function.  I had to send it through several times and wrote *way* more unit tests than code.  In the end, it made my confidence *really* high.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Thu, 03 Jul 2008 04:21:31 -0000</pubDate></item><item><title>Re: Twitter Pseudotrack</title><link>(u'http://www.georgeology.com/technology/twitter-pseudotrack/',%205790546L)#comment-5790546</link><description>&lt;p&gt;Hey, it seems that a lot of people had the same idea around the same time.  It's unfortunate it has to happen, but the reaction is somewhat revealing (i.e. users like it a lot, but twitter, summize, et. al are at best neutral to the idea).&lt;/p&gt;&lt;p&gt;twitterspy in particular is ``slower'' in the sense that it polls for a given track no more than once every ten minutes (per configuration).  I configured it to be as nice to summize as possible.  For example, I've got a peak request rate against summize, so if online users and tracks grow great enough, it'll slow down even more as starts deferring updates.   Tracks are only updated for online users, and are shared, so it's possible that there are times of the day when I'm not hitting summize at all.&lt;/p&gt;&lt;p&gt;I could make it faster, but I get the impression that they already don't like me enough.  :/&lt;/p&gt;&lt;p&gt;Anyway, glad we have more people doing something about things that are annoying.  I kept dealing with the bait from twitter about how they're going to bring back XMPP RSN until I realized twitter was getting nearly useless for me.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Fri, 11 Jul 2008 17:23:44 -0000</pubDate></item><item><title>Re: RockStarProgrammer - What's Up? &amp;mdash; An XMPP-based Web Monitor</title><link>(u'http://www.rockstarprogrammer.org/post/2008/jul/06/whats-up-xmpp-based-web-monitor/',%202446792L)#comment-2446792</link><description>&lt;p&gt;Interestingly, there was very little response to this -- a service I figured everyone would like.  Everybody does seem to like twitterspy.  Oh well, I still like whatsup.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Fri, 19 Sep 2008 16:41:53 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Automating Git Bisection for Rails Apps</title><link>(u'http://www.rockstarprogrammer.org/post/2008/sep/25/automating-git-bisection-rails-apps/',%202715804L)#comment-2715804</link><description>&lt;p&gt;Hey, great idea.  That seems a lot less messy than my stash script.  Thanks.&lt;/p&gt;&lt;p&gt;Basically, that'd be something like this (assuming working on master with a bug that didn't exist about 50 changesets back):&lt;/p&gt;&lt;p&gt;git checkout -b findbug&lt;br&gt;[write and commit tests]&lt;br&gt;git rebase -i HEAD~51&lt;br&gt;[move test changeset to the top]&lt;/p&gt;&lt;p&gt;Then you should be able to do the easy case as described above.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Sun, 28 Sep 2008 12:33:47 -0000</pubDate></item><item><title>Re: RockStarProgrammer - What's Up? &amp;mdash; An XMPP-based Web Monitor</title><link>(u'http://www.rockstarprogrammer.org/post/2008/jul/06/whats-up-xmpp-based-web-monitor/',%202720814L)#comment-2720814</link><description>&lt;p&gt;Neat, glad someone found it useful.  :)  It's been indispensable to me.&lt;/p&gt;&lt;p&gt;I did use DM here just to learn it.  The one thing DM does *really* badly that I'm too lazy to fix is &lt;a href="http://wm.lighthouseapp.com/projects/4819/tickets/470-memcaching-can-t-marshal-dm-objects" rel="nofollow noopener" target="_blank" title="http://wm.lighthouseapp.com/projects/4819/tickets/470-memcaching-can-t-marshal-dm-objects"&gt;http://wm.lighthouseapp.com...&lt;/a&gt; (that is, you can't cache objects).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Sun, 28 Sep 2008 21:54:46 -0000</pubDate></item><item><title>Re: Memcache, keeping data in the handiest place: memory</title><link>(u'http://www.bytebot.net/blog/archives/2008/01/28/memcache-keeping-data-in-the-handiest-place-memory',%2018719808L)#comment-18719808</link><description>&lt;p&gt;Just for clarity (since this has come up on the list), every memcached operation is atomic, but the cache is not transactional.  The CAS operation exists in the text protocol for performing an atomic read/update operation, and is extended to every operation in the binary protocol.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Sun, 05 Oct 2008 01:04:07 -0000</pubDate></item><item><title>Re: RockStarProgrammer - What Matters in an Asynchronous Job Queue</title><link>(u'http://www.rockstarprogrammer.org/post/2008/oct/04/what-matters-asynchronous-job-queue/',%202882380L)#comment-2882380</link><description>&lt;p&gt;Thanks for the comment.&lt;/p&gt;&lt;p&gt;I agree that queue durability is desirable, it's just a really low priority for me.  I've just seen at least two queue systems built on top of memcached recently and it's getting a bit tiring.  In one of the recent ones, the author didn't want to use starling because their company had no ruby expertise, gearman because they had no perl expertise, and beanstalkd because it didn't have queue durability -- so they wrote a new one.&lt;/p&gt;&lt;p&gt;I crash job workers all the time.  We have various god config to kill the workers for various reasons so I get restart IMs at various points in the day.&lt;/p&gt;&lt;p&gt;The main point of this post was to challenge people who keep writing new job queue services to consider more than just this one aspect everyone seems to be focused on.  Or maybe it's to convince them that if an existing one doesn't do what they want, that they should work on enhancing it slightly.&lt;/p&gt;&lt;p&gt;If people want starling, they should just use it.&lt;/p&gt;&lt;p&gt;You're right, though, if you want to guarantee every job, you've got a huge task ahead of you and hopefully very simple jobs.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Sun, 05 Oct 2008 15:46:58 -0000</pubDate></item><item><title>Re: RockStarProgrammer - Using Git Bundle When Your Central Repo Fails</title><link>(u'http://www.rockstarprogrammer.org/post/2008/oct/05/using-git-bundle-when-your-central-repo-fails/',%202896534L)#comment-2896534</link><description>&lt;p&gt;Thanks a lot for the pull tip.  Admittedly, I was in a bit of a hurry to actually get my code deployed, so I just did the first thing that worked.  :)&lt;/p&gt;&lt;p&gt;pull definitely looks more natural.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dustin</dc:creator><pubDate>Mon, 06 Oct 2008 14:29:05 -0000</pubDate></item></channel></rss>