<story><title>Suffering-oriented programming</title><url>http://nathanmarz.com/blog/suffering-oriented-programming.html</url></story><parent_chain></parent_chain><comment><author>3pt14159</author><text>&quot;With Storm, I distilled the realtime computation problem domain into a small set of abstractions: streams, spouts, bolts, and topologies. I devised a new algorithm for guaranteeing data processing that eliminated the need for intermediate message brokers, the part of our system that caused the most complexity and suffering.&quot;&lt;p&gt;As someone who has gone through the storm source in very fine detail, let me tell you how he did this. He hashed each tuple that needed to be processed then XOR&apos;d it into a variable that started at a value of zero.&lt;p&gt;When the piece that needed to be processed was complete it would get XOR&apos;d back into the variable. Once the variable hit 0 he knew everything was done! Pretty neat if you ask me.</text></comment>
<story><title>Suffering-oriented programming</title><url>http://nathanmarz.com/blog/suffering-oriented-programming.html</url></story><parent_chain></parent_chain><comment><author>csl_</author><text>The biggest problem I have with this approach (and believe me, I love this approach), is that it makes it hard to finish things.&lt;p&gt;For example, over Christmas, I built a small pretend-natural-language CLI controller for iTunes. I made a working version in something like four hours, spent a few days adding in crazy half-thought-out features like speech recognition and a web interface - and then I basically stopped development.&lt;p&gt;I didn&apos;t stop development because it got boring - I stopped development because I&apos;d solved my own problem. Not beautifully (certainly not from a coding perspective), not efficiently, but the problem I had was solved.&lt;p&gt;The problem, then, is that once the &quot;suffering&quot; is gone, or sufficiently lessened, there is no real reason to keep building.&lt;p&gt;(oddly, my password for my old account no longer seems to work. I was hebejebelus)</text></comment>