<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>I have no idea what I’m doing.</description><title>Clueless</title><generator>Tumblr (3.0; @bryanjswift)</generator><link>http://tumblr.bryanjswift.com/</link><item><title>Great talk about the psychology of choice.</title><description>&lt;object width="400" height="375"&gt;&#13;
&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="bgColor" value="#ffffff" /&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2005G/Blank/BarrySchwartz_2005G-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BarrySchwartz-2005G.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=93&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=barry_schwartz_on_the_paradox_of_choice;year=2005;theme=what_makes_us_happy;theme=unconventional_explanations;theme=how_the_mind_works;event=TEDGlobal+2005;tag=Business;tag=Culture;tag=choice;tag=consumerism;tag=economics;tag=happiness;tag=personal+growth;tag=potential;tag=psychology;tag=shopping;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="400" height="375" allowfullscreen="true" allowscriptaccess="always" flashvars="vu=http://video.ted.com/talk/stream/2005G/Blank/BarrySchwartz_2005G-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BarrySchwartz-2005G.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=93&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=barry_schwartz_on_the_paradox_of_choice;year=2005;theme=what_makes_us_happy;theme=unconventional_explanations;theme=how_the_mind_works;event=TEDGlobal+2005;tag=Business;tag=Culture;tag=choice;tag=consumerism;tag=economics;tag=happiness;tag=personal+growth;tag=potential;tag=psychology;tag=shopping;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;&lt;/object&gt;&#13;
&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Great talk about the psychology of choice.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/14302799316</link><guid>http://tumblr.bryanjswift.com/post/14302799316</guid><pubDate>Fri, 16 Dec 2011 03:41:50 -0500</pubDate></item><item><title>Ice covered car.  (Taken with instagram)</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lijcc0UhAj1qzb9xco1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Ice covered car.  (Taken with &lt;a href="http://instagr.am"&gt;instagram&lt;/a&gt;)&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/4052661881</link><guid>http://tumblr.bryanjswift.com/post/4052661881</guid><pubDate>Thu, 24 Mar 2011 00:07:14 -0400</pubDate></item><item><title>Kyle Kinane - Bunnies (via isoSasquatch) shared with me by...</title><description>&lt;iframe width="400" height="245" src="http://www.youtube.com/embed/vLs9ozsGFi0?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=vLs9ozsGFi0&amp;feature=player_embedded"&gt;Kyle Kinane - Bunnies&lt;/a&gt; (via &lt;a href="http://youtube.com/user/isoSasquatch"&gt;isoSasquatch&lt;/a&gt;) shared with me by &lt;a href="http://twitter.com/jeremyswift"&gt;Jeremy Swift&lt;/a&gt;&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/2405506702</link><guid>http://tumblr.bryanjswift.com/post/2405506702</guid><pubDate>Tue, 21 Dec 2010 14:39:16 -0500</pubDate></item><item><title>And a tree too.  (Taken with Instagram at New York Penn Station)</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lctzluOadh1qzb9xco1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;And a tree too.  (Taken with &lt;a href="http://instagr.am"&gt;Instagram&lt;/a&gt; at New York Penn Station)&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/2077460855</link><guid>http://tumblr.bryanjswift.com/post/2077460855</guid><pubDate>Thu, 02 Dec 2010 21:44:20 -0500</pubDate></item><item><title>Penn Station has totally decked the halls.  (Taken with...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lctza4ghXq1qzb9xco1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Penn Station has totally decked the halls.  (Taken with &lt;a href="http://instagr.am"&gt;Instagram&lt;/a&gt; at New York Penn Station)&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/2077378879</link><guid>http://tumblr.bryanjswift.com/post/2077378879</guid><pubDate>Thu, 02 Dec 2010 21:37:18 -0500</pubDate></item><item><title>Bunny ear tickets (Taken with instagram)</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lcq20jeniJ1qzb9xco1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Bunny ear tickets (Taken with &lt;a href="http://instagr.am"&gt;instagram&lt;/a&gt;)&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/2053135998</link><guid>http://tumblr.bryanjswift.com/post/2053135998</guid><pubDate>Tue, 30 Nov 2010 18:45:57 -0500</pubDate></item><item><title>Just sone floor action (Taken with instagram)</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lcoqv5xOro1qzb9xco1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Just sone floor action (Taken with &lt;a href="http://instagr.am"&gt;instagram&lt;/a&gt;)&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/1983994177</link><guid>http://tumblr.bryanjswift.com/post/1983994177</guid><pubDate>Tue, 30 Nov 2010 01:47:31 -0500</pubDate></item><item><title>Helping Perch Out</title><description>&lt;p&gt;I just &amp;#8216;finished&amp;#8217; building my first site using &lt;a href="http://grabaperch.com"&gt;Perch&lt;/a&gt; which is a great little CMS. I did have a couple of usability issues with editing long lists of items so I whipped up a JS file that can be included as a perch plugin to help out.&lt;/p&gt;

&lt;p&gt;The files from the &lt;a href="http://gist.github.com/618707"&gt;perch usability plugin gist&lt;/a&gt; should show up below.&lt;/p&gt;

&lt;script src="http://gist.github.com/618707.js"&gt; &lt;/script&gt;</description><link>http://tumblr.bryanjswift.com/post/1279085311</link><guid>http://tumblr.bryanjswift.com/post/1279085311</guid><pubDate>Sat, 09 Oct 2010 19:14:33 -0400</pubDate><category>programming</category><category>javascript</category></item><item><title>ScrollView vs EditText: FIGHT!</title><description>&lt;p&gt;I had a ScrollView wrapping an EditText in an application I was writing because I wanted the fling behavior ScrollView provided. EditText on it&amp;#8217;s own simply stopped moving when the user lifted a finger from the display and it felt awkward. However, when I had a lot of text in the EditView, enough that the fling mattered, things would jump all over the place. I spent hours trying to figure out which touch event or MotionEvent I needed to catch and stop from propagating and under what circumstances. Nothing seemed to do the trick.&lt;/p&gt;

&lt;p&gt;After sleeping on this bug for the third night I was looking through the source of the EditText class hierarchy (I&amp;#8217;m soooo glad this OS is open source) and I found &lt;code&gt;requestRectangleOnScreen&lt;/code&gt;. It turns out whenever I tapped the screen this guy was getting called and causing the ScrollView to jump all over the place, most frequently to where the cursor last was. So I created a custom EditText extension and overrode the method. The full source is below:&lt;/p&gt;

&lt;script src="http://gist.github.com/513128.js"&gt;&lt;/script&gt;</description><link>http://tumblr.bryanjswift.com/post/918898258</link><guid>http://tumblr.bryanjswift.com/post/918898258</guid><pubDate>Sat, 07 Aug 2010 16:03:47 -0400</pubDate></item><item><title>Is the End of Privacy the End of Shame?</title><description>&lt;a href="http://tweetagewasteland.com/2010/03/is-the-end-of-privacy-the-end-of-shame/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+tweetagewasteland+%28Tweetage+Wasteland%29&amp;utm_content=Google+Reader"&gt;Is the End of Privacy the End of Shame?&lt;/a&gt;: &lt;p&gt;This is an interesting take on the social consequences of the social web and a generally interesting read.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/470697012</link><guid>http://tumblr.bryanjswift.com/post/470697012</guid><pubDate>Wed, 24 Mar 2010 15:09:48 -0400</pubDate></item><item><title>melissa:

Reading C&amp;C in bed for the first time, having...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_kyskkoejQu1qz4atgo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://melissa.tumblr.com/post/427621845/reading-c-c-in-bed-for-the-first-time-having" class="tumblr_blog"&gt;melissa&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Reading C&amp;C in bed for the first time, having sufficiently worked through both as part of our “meet” “up” — I couldn’t justify taking it into the steamroom with me. Which is my substitute for wet-making, lick-the-salt-off-my-cheeks sex, but not a very safe place for much else let alone reading!&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The phrase “lick-the-salt-off-my-cheeks sex” is just too evocative to not love it. I’m quite excited for this book.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/427888496</link><guid>http://tumblr.bryanjswift.com/post/427888496</guid><pubDate>Fri, 05 Mar 2010 02:25:00 -0500</pubDate><category>books</category><category>sex</category></item><item><title>Apple vs HTC: a patent breakdown -- Engadget</title><description>&lt;a href="http://www.engadget.com/2010/03/02/apple-vs-htc-a-patent-breakdown/"&gt;Apple vs HTC: a patent breakdown -- Engadget&lt;/a&gt;: &lt;p&gt;Apple attacks HTC and it’s Android devices. Awesome. Some of these patents seem so broad it’s ridiculous.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/422542267</link><guid>http://tumblr.bryanjswift.com/post/422542267</guid><pubDate>Tue, 02 Mar 2010 15:25:28 -0500</pubDate></item><item><title>Seth's Blog: Everyone's model of work is a job</title><description>&lt;a href="http://sethgodin.typepad.com/seths_blog/2010/02/everyones-model-of-work-is-a-job.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+typepad%2Fsethsmainblog+%28Seth%27s+Blog%29"&gt;Seth's Blog: Everyone's model of work is a job&lt;/a&gt;: &lt;p&gt;Sometimes Seth Godin says some insightful shit, and sometimes he takes someone else’s insights and makes them better. This is the latter.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/421365419</link><guid>http://tumblr.bryanjswift.com/post/421365419</guid><pubDate>Mon, 01 Mar 2010 23:45:03 -0500</pubDate></item><item><title>tigs:

(via )
If Old Spice mad ads for Apple = recombinant...</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/xzwLOqC2kVI?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://tigs.tumblr.com/post/420676766/via-if-old-spice-mad-ads-for-apple" class="tumblr_blog"&gt;tigs&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;(via )&lt;/p&gt;
&lt;p&gt;If Old Spice mad ads for Apple = recombinant awesomeness.&lt;/p&gt;
&lt;p&gt;How else do we understand culture, except through the lens of itself?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;If I’m going to give the Old Spice commercial love, I have to give the Apple parody some love too.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/421190634</link><guid>http://tumblr.bryanjswift.com/post/421190634</guid><pubDate>Mon, 01 Mar 2010 22:22:22 -0500</pubDate><category>humor</category><category>advertising</category></item><item><title>The absurdity of this is just plain hilarious. “I’m...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/owGykVbfgUE?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The absurdity of this is just plain hilarious. “I’m on a horse.”&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=owGykVbfgUE&amp;feature=youtu.be"&gt;Old Spice - The Man Your Man Could Smell Like&lt;/a&gt; (via &lt;a href="http://youtube.com/user/oldspice"&gt;oldspice&lt;/a&gt;)&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/421118559</link><guid>http://tumblr.bryanjswift.com/post/421118559</guid><pubDate>Mon, 01 Mar 2010 21:49:00 -0500</pubDate><category>humor</category><category>advertising</category></item><item><title>User Agent Detection in Java</title><description>&lt;p&gt;I was looking for a way to detect mobile devices in Java and hoping someone had done the heavy lifting for me. It turns out someone had. There&amp;#8217;s a port of a PHP script I found at &lt;a href="http://www.hand-interactive.com/resources/detect-mobile-java.htm"&gt;Hand Interactive&lt;/a&gt; that looks like it does what I need.&lt;/p&gt;

&lt;p&gt;Basically if I detect a mobile device I want to use a different stylesheet on &lt;a href="http://www.quotecrate.com"&gt;Quote Crate&lt;/a&gt; but I didn&amp;#8217;t want to have to find all the user agent strings myself. This should work nicely. I&amp;#8217;ve loaded the file into a &lt;a href="http://gist.github.com/318237"&gt;Gist on Github&lt;/a&gt; and plan to make some improvements to it.&lt;/p&gt;

&lt;script src="http://gist.github.com/318237.js?file=UAgentInfo.java"&gt;&lt;/script&gt;</description><link>http://tumblr.bryanjswift.com/post/419616933</link><guid>http://tumblr.bryanjswift.com/post/419616933</guid><pubDate>Mon, 01 Mar 2010 04:56:25 -0500</pubDate></item><item><title>functional programming ftw</title><description>&lt;p&gt;&lt;a href="http://blog.harryh.org/post/167384715/functional-programming-ftw" class="tumblr_blog"&gt;harryh&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Simple, but fun:&lt;/p&gt;
&lt;pre&gt;def partition[T](items: List[T], p: (T, T) =&amp;gt; Boolean): List[List[T]] = {
  items.foldRight[List[List[T]]](Nil)((item: T, items: List[List[T]]) =&amp;gt; items match {
    case (first :: rest) :: last if p (first, item) =&amp;gt;
      (List(item)) :: (first :: rest) :: last
    case (first :: rest) :: last =&amp;gt;
      (item :: first :: rest) :: last
    case _ =&amp;gt; List(List(item))
  })
}&lt;/pre&gt;
&lt;p&gt;If you understand what this does, or know someone who does, I’m hiring.  Send me an e-mail.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It took me a bit but I did sort this out. I like Scala and how it lets you express powerful things concisely but I have to give my brain time parse stuff like this still.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/414850496</link><guid>http://tumblr.bryanjswift.com/post/414850496</guid><pubDate>Sat, 27 Feb 2010 01:13:16 -0500</pubDate></item><item><title>Task Queue Java API Overview - Google App Engine - Google Code</title><description>&lt;a href="http://code.google.com/appengine/docs/java/taskqueue/overview.html"&gt;Task Queue Java API Overview - Google App Engine - Google Code&lt;/a&gt;: &lt;p&gt;Today I implemented the &lt;a href="http://code.google.com/appengine/docs/java/taskqueue/overview.html"&gt;Task Queue&lt;/a&gt; functionality on &lt;a href="http://www.quotecrate.com"&gt;Quote Crate&lt;/a&gt; in an effort to speed up saving quotes. Basically instead of adding things to the index on save it fires off what is essentially a background task to add the quote to the index. Since it’s not getting much traffic (or any really) things are added almost immediately and the request to save quotes is sped up a bit.&lt;/p&gt;

&lt;p&gt;Next up, exposing search.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/414481637</link><guid>http://tumblr.bryanjswift.com/post/414481637</guid><pubDate>Fri, 26 Feb 2010 21:57:32 -0500</pubDate></item><item><title>Coming and Crying</title><description>&lt;a href="http://www.kickstarter.com/projects/1829982965/coming-and-crying-real-stories-about-sex-from-the-o"&gt;Coming and Crying&lt;/a&gt;: &lt;p&gt;I just backed this project on Kickstarter because I believe these ladies have got the right idea. Also because I like books and sex.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/411931227</link><guid>http://tumblr.bryanjswift.com/post/411931227</guid><pubDate>Thu, 25 Feb 2010 17:57:35 -0500</pubDate><category>books</category><category>sex</category></item><item><title>Quote Crate Works!</title><description>&lt;p&gt;Seriously, this is a big deal to me. About eight (8) months ago Alex Payne wrote a quick blurb about an idea he had for a site but wasn&amp;#8217;t going to work on. He called it Quotidian with a tagline of &amp;#8220;A place to store and organize quotes&amp;#8221;. The original text of the blurb he wrote is &lt;a href="http://al3x.net/2009/06/15/quotidian.html"&gt;on his site as an unfinished idea&lt;/a&gt; and when I read this in June of last year I was immediately inspired. I shot him an email that basically said &amp;#8220;I love this idea, I want to work on it&amp;#8221; and promptly got a response of (essentially) &amp;#8220;Have at it.&amp;#8221;&lt;/p&gt;

&lt;p&gt;So I started, thinking I&amp;#8217;d be able to get something up on the relatively (at the time) newly release Google App Engine for Java. This was a little off as it turned out. A key component of Alex&amp;#8217;s idea was being able to search the quotes that were stored by text or author and out of the box Google&amp;#8217;s App Engine has no text tokenizing, full-text search type capabilities. When I realized this I thought, &amp;#8220;no problem, I&amp;#8217;ll use Lucene.&amp;#8221; I&amp;#8217;d used &lt;a href="http://lucene.apache.org/"&gt;Lucene&lt;/a&gt; before, though a much earlier version of it, and it was pretty dead simple to set up and get things indexed.&lt;/p&gt;

&lt;p&gt;As it turns out, trying to use Lucene on the App Engine does in fact pose a pretty significant problem. Lucene by default is set up to write it&amp;#8217;s indexing data out to the file system, which is simply not possible in the sandboxed version of the App Engine JVM&amp;#8217;s. Since I was somewhat in search of a project at the time anyway I decided to implement the Lucene API to write to the App Engine datastore. I spent a lot of night&amp;#8217;s poring over Lucene API/Javadoc documentation trying to figure out what the expected results were when performing certain operations, trying to piece together the flow through the library and trying to understand exactly how my code was being called by the guts of Lucene.&lt;/p&gt;

&lt;p&gt;For a while this drove me a little crazy but I eventually got something together that passed (slightly) modified versions of Lucene&amp;#8217;s unit tests for &lt;code&gt;IndexInput&lt;/code&gt; and &lt;code&gt;IndexOutput&lt;/code&gt; implementations. I integrated it with the code to save quotes and threw it up on the App Engine servers. Once it was there I noticed something, it was &lt;em&gt;reaaallllllly&lt;/em&gt; slow. Knowing I still had a ways to go with the rest of the application I figured this was ok and I left it alone.&lt;/p&gt;

&lt;p&gt;Then my (former) day job at &lt;a href="http://akqa.com"&gt;AKQA New York&lt;/a&gt; got crazy, I mean super busy. For months. And I had learned enough Scala (the other motivation for working on this project) that my motivation to work on this simply disappeared. Time passed and I carried on with my life and started a different Scala project. Recently things changed a bit. I saw an opportunity at &lt;a href="http://arc90.com"&gt;Arc90&lt;/a&gt;, they were looking for a Java engineer. I decided to give it a shot and they brought me in for an interview where they asked me about things I&amp;#8217;d worked on in Java and I showed them Quote Crate without thinking. Fortunately, as I discovered later, it had lain completely dormant since my last batch of testing and one of the guys submitted a quote. It was slow, but I knew it would be. He said &amp;#8220;cool&amp;#8221; and we moved on but the encounter got this project back on my radar.&lt;/p&gt;

&lt;p&gt;A week or two passed, Arc brought me on and I started thinking about this code again and what I had wanted to do with it when I started. So I went back and tested it out again, firing it up in the dev server and adding a bunch of comments to see what happened. &lt;strong&gt;BOOM!!&lt;/strong&gt; 500 Error. Stack Trace. Looking at the error I saw it was in the Lucene indexing stuff I wrote and thought, shit. After some investigation I realized it blew up when adding the tenth (10th) quote. Yeah, that&amp;#8217;s not very many, I know.&lt;/p&gt;

&lt;p&gt;So I created a new branch, commented out the part where quotes get added to the Lucene index, called it stable and pushed it up. The stack traces were gone but now I was haunted by what was causing it. I had thought this problem solved and so I started digging again. Foolishly, I waited to create a unit test (or spec) for the situation until recently. Once I did I saw a different problem when I ran my tests something about the thread not having a datastore environment set up. I thought to myself &amp;#8220;Nothing should be creating threads&amp;#8221; and went on a hunt. It turns out, Lucene periodically does merging of index data after you get a sizeable enough in the index and this was spawning a background thread to clean it up in an attempt to not bog down the application. This is generally a good idea except you&amp;#8217;re not supposed to be able to manually spawn threads in the App Engine environment, maybe this was the problem. I changed the &lt;code&gt;MergeScheduler&lt;/code&gt; used by the &lt;code&gt;IndexWriter&lt;/code&gt; to be serial rather than concurrent and the errors have, so far, disappeared.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve pushed up a v2 of the &lt;a href="http://www.quotecrate.com"&gt;Quote Crate&lt;/a&gt; code and though it&amp;#8217;s still slow it doesn&amp;#8217;t, to my knowledge, throw errors. The best part of this though is I&amp;#8217;m mired in the &lt;a href="http://github.com/bryanjswift/quotidian"&gt;quotidian code&lt;/a&gt; again and really excited to keep on improving it and adding the missing features to the application.&lt;/p&gt;

&lt;p&gt;Thank you Alex for the inspiration. Thank you Chris Dary and Avi Flax at Arc90 for inspiring me to bring this application back from the dead.&lt;/p&gt;</description><link>http://tumblr.bryanjswift.com/post/410838452</link><guid>http://tumblr.bryanjswift.com/post/410838452</guid><pubDate>Thu, 25 Feb 2010 03:40:04 -0500</pubDate><category>programming</category><category>Scala</category><category>appengine</category><category>Lucene</category></item></channel></rss>

