<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DU4FQns5eip7ImA9WhVUFE0.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286</id><updated>2012-05-19T02:11:53.522-04:00</updated><category term="ruby" /><category term="discussion" /><category term="gsoc" /><category term="packaging" /><category term="cryptography" /><category term="finance" /><category term="web" /><category term="trolls" /><category term="latex" /><category term="projects" /><category term="brainstorm" /><category term="youtube" /><category term="benchmarks" /><category term="settings" /><category term="thermodynamics" /><category term="ezbl" /><category term="worst idea ever" /><category term="encryption" /><category term="summer" /><category term="minecraft" /><category term="intelligence" /><category term="git" /><category term="activism" /><category term="python" /><category term="browser" /><category term="rails" /><category term="org" /><category term="internet" /><category term="video" /><category term="cities" /><category term="elisp" /><category term="droid" /><category term="code" /><category term="invention" /><category term="greed" /><category term="advi" /><category term="barcode" /><category term="science" /><category term="thinking" /><category term="mods" /><category term="voting" /><category term="linux" /><category term="constitution" /><category term="facebook" /><category term="scheme" /><category term="rendering" /><category term="system" /><category term="scala" /><category term="emacs" /><category term="java" /><category term="cloud computing" /><category term="law" /><category term="uzbl" /><category term="financial crisis" /><category term="politics" /><category term="programming" /><category term="distraction" /><category term="experience" /><category term="music" /><category term="lisp" /><category term="hate" /><category term="atheism" /><category term="concurrency" /><category term="blog" /><category term="incentives" /><category term="networks" /><category term="publishing" /><category term="patents" /><category term="milk" /><category term="mode" /><category term="boring" /><category term="ballroom" /><category term="copyright" /><category term="android" /><category term="country" /><category term="desktop" /><category term="opinion" /><category term="software" /><category term="brown" /><category term="languages" /><category term="intellectual property" /><category term="god" /><category term="drupal" /><category term="madoff" /><category term="whizzytex" /><category term="testing" /><category term="race" /><category term="hilarious" /><category term="lawsuits" /><category term="json" /><category term="google" /><category term="svn" /><category term="sha1" /><category term="chainmail" /><title>This Week in Hax</title><subtitle type="html">I have carved out a small slice of the great Intarwebs to share with you my goings on.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.haxney.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.haxney.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/haxney" /><feedburner:info uri="haxney" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/3.0/" /><entry gd:etag="W/&quot;DEUGQnc7fCp7ImA9WhVWEU4.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-8643376412488717061</id><published>2012-04-22T19:09:00.000-04:00</published><updated>2012-04-22T19:10:23.904-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-22T19:10:23.904-04:00</app:edited><title>Simple recursive file traversal in Elisp</title><content type="html">&lt;p&gt;
  Really quick: I wrote a simple bit of elisp to &lt;code&gt;eval&lt;/code&gt; a body over
  each of the files in a directory, recursively. Looking around for a little
  bit, I found a couple of options, including &lt;a
  href="http://www.emacswiki.org/emacs/FindrPackage"&gt;Findr&lt;/a&gt;, which has its
  own queue implementation (pretty short), and whose main function is a whopping
  55 lines!
&lt;/p&gt;

&lt;p&gt;
  &lt;emph&gt;There has to be a quicker way&lt;/emph&gt;, I thought. I didn't need anything
  terribly fancy, I just wanted something that worked cross-platform (which
  ruled out &lt;code&gt;find&lt;/code&gt;) and was simple. I ended up with this little guy:
&lt;/p&gt;

&lt;script src="https://gist.github.com/2467266.js?file=simple-recursive.el"&gt;&lt;/script&gt;

&lt;p&gt;
  11 lines for the main function, &lt;code&gt;recursive-files&lt;/code&gt; itself, and
  another 3 (including docstring) for simplifying macro. It's main weakness at
  this point is that it incorrectly ignores any files with leading dots. So not
  only does it (wisely) avoid &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;..&lt;/code&gt;, it rather
  foolishly avoids &lt;code&gt;.foo&lt;/code&gt; as well. I couldn't easily figure out how
  to exclude &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;..&lt;/code&gt; in a single regex easily without
  also excluding leading-dot files. For what I'm doing, it's not important.
&lt;/p&gt;

&lt;p&gt;
  Also, note that this barfs on symlinks. It thinks they're directories and
  tries to call &lt;code&gt;directory-files-and-attributes&lt;/code&gt; on them. Again, a
  more careful implementation would deal with this.
&lt;/p&gt;

&lt;p&gt;
  I was surprised that Emacs didn't have a "recursively visit files" function or
  macro built in, but this gets me close enough. Enjoy!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-8643376412488717061?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qhfzxeX_VG5AqV-xksiNwtMwRrU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qhfzxeX_VG5AqV-xksiNwtMwRrU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qhfzxeX_VG5AqV-xksiNwtMwRrU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qhfzxeX_VG5AqV-xksiNwtMwRrU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/Gdjm4c5TnCo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/8643376412488717061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2012/04/really-quick-i-wrote-simple-bit-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/8643376412488717061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/8643376412488717061?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/Gdjm4c5TnCo/really-quick-i-wrote-simple-bit-of.html" title="Simple recursive file traversal in Elisp" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2012/04/really-quick-i-wrote-simple-bit-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEDQX04fSp7ImA9WhVTE0Q.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-7296075127036748439</id><published>2012-02-27T20:47:00.001-05:00</published><updated>2012-02-27T20:47:50.335-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-27T20:47:50.335-05:00</app:edited><title>The Ongoing Saga of Making Ubuntu 11.10 Usable</title><content type="html">&lt;p&gt;
  Alright, I installed Ubuntu 11.10 (aka "lost all common sense" edition) on a
  new computer, so I have the memory of trying to make it bearable still in my
  head. The absolute necessary first thing to do is:
&lt;/p&gt;

&lt;script src="https://gist.github.com/1926395.js?file=compiz.sh"&gt;&lt;/script&gt;

&lt;p&gt;
  And set your login session to "Gnome fallback". This gives you a
  &lt;em&gt;passable&lt;/em&gt; facsimile of Gnome 2 (aka "worked and was not useless"
  edition). I am a little... offended is to strong, but miffed that "fallback"
  means "what to use if you want to get work done and are not, in fact, a
  hipster," but whatever.
&lt;/p&gt;

&lt;p&gt;
  You have to &lt;code&gt;Alt+right click&lt;/code&gt; (&lt;code&gt;M-&amp;lt;mouse-3&amp;gt;&lt;/code&gt; for
  the enlightened Emacs users) in order to right click on the panels now. Now I
  know what you're thinking, "what did they set to right click which
  necessitated bumping &lt;code&gt;right click&lt;/code&gt; to &lt;code&gt;Alt+right
  click&lt;/code&gt;?" The answer is "nothing". That's right, if you right click on
  the panel in Gnome 3, nothing happens. Which naturally might lead you to
  wonder "so why take something which worked and was simple and make it more
  complicated while substituting nothing in return?" Because "liquid intuitive
  natural human smooth &lt;em&gt;desktop metaphor&lt;/em&gt;", that's why. Probably
  something to do with netbook/tablet/&lt;code&gt;$CURRENT_FAD&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
  Anywhoo, the next step is installing Compiz, which gives you more (read: any)
  customization and, most importantly, wobbly windows. It used to be a simple
  click in System &amp;rarr; Preferences &amp;rarr; Appearance &amp;rarr; Effects and away
  you wobbly went! Now, you have to dig into
  &lt;code&gt;compiz-config-settings-manager&lt;/code&gt; a bit. First, install compiz and
  the settings manager:
&lt;/p&gt;

&lt;script src="https://gist.github.com/1926395.js?file=compiz.sh"&gt;&lt;/script&gt;

&lt;p&gt;
  I won't go into all the options here, but if you open &lt;code&gt;ccsm&lt;/code&gt; (short
  for "compiz config settings manager") and look around, you can fix the lack of
  wobbly windows as well as focus-follows-mouse. I really can't use a computer
  without those two.
&lt;/p&gt;

&lt;p&gt;
  To get rid of the global menu bar (in what drug-fueled rage did this seem like
  a good idea), just run:
&lt;/p&gt;

&lt;script src="https://gist.github.com/1926395.js?file=global-menu.sh"&gt;&lt;/script&gt;

&lt;p&gt;
  Who doesn't love the idea of scroll bars which try their darnedest to evade
  your mouse pointer? I know that it becomes even more of a &lt;strike&gt;huge
  pain&lt;/strike&gt; metaphorical adventure with focus-follows-mouse. If you move
  the mouse off of the scroll... thing, it changes your window focus. Oh, and
  did I mention that "off of" can mean "above or below, if the scroll thing
  thinks you shouldn't have moved your pointer that direction?" Well, it does.
  If you anger the scroll-thing gods, they will become cross and punish you for
  your wickedness by making the scroll thing forever evade your grasp. It's kind
  of like Sisyphus, but you are forever chasing a scroll thing you can never
  quite catch.
&lt;/p&gt;

&lt;p&gt;
  Anyway, to make it die the horrible flaming death it so rightly deserves, run
  the following (you may need to log out and back in for it to take effect):
&lt;/p&gt;

&lt;script src="https://gist.github.com/1926395.js?file=scroll-bars.sh"&gt;&lt;/script&gt;

&lt;p&gt;
  Now, to make the window decorators okay again, like they were when everything
  was fine, run this (you'll probably have to log out and back in again):
&lt;/p&gt;

&lt;script src="https://gist.github.com/1926395.js?file=window-decorator.sh"&gt;&lt;/script&gt;

&lt;p&gt;
  And no, I couldn't find an easier way to do this. The advantage the default
  decorators have over the crappy (aka new) ones is that you can actually tell
  the difference between the active window and background ones. In both
  "Ambiance" and "Radiance" the (only) theme options, the difference between the
  current and background windows is that the window title &amp;mdash; not the window
  &lt;em&gt;bar&lt;/em&gt;, but just the title text &amp;mdash; goes from gray to grayish.
  Thanks Ubuntu.
&lt;/p&gt;

&lt;p&gt;
  This also has the advantage of restoring the window borders, so that if, for
  example, you are trying to resize a window, you don't have to hit the
  one-pixel-wide target area in order to resize. Apparently, according to
  the geniuses in charge of designing the new interface, being able to resize
  windows easily is not &lt;em&gt;NEW INTERFACE METAPHOR&lt;/em&gt;-y enough.
&lt;/p&gt;
&lt;p&gt;
  At this point, you have restored your computer to a reasonably-functional
  state. You may be wondering, as I did, why the developers of a distribution
  would take something which was &lt;strong&gt;just fine&lt;/strong&gt;, did what you
  needed, and was instantly familiar to everyone who has used a computer before,
  and replace it with the user-interface version of &lt;a
  href="http://knowyourmeme.com/memes/interior-semiotics"&gt;Interior
  Semiotics&lt;/a&gt;. I have two hypotheses:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    A couple guys glanced at an iPad, saw that it couldn't do as many useful
    things as a real computer, and thought "hey, we could make &lt;em&gt;our&lt;/em&gt; OS
    not be as useful as a real computer too!" So they set out to build the worst
    piece of useless filth they could imagine. One thing that sprung to mind
    immediately was

    &lt;blockquote&gt;
      I know! Let's make it so that to launch any application, the user has to
      move the mouse over to the left of the screen, but not the top-left,
      that's for the close-maximize-minimize buttons.
    &lt;/blockquote&gt;

    But that was thinking too small. It took another act of
    &lt;strike&gt;auto-lobotomy&lt;/strike&gt; brilliance to take it to the next level.

    &lt;blockquote&gt;
      Oh, how about, when the user has opened an application, any indication of
      other applications on the system or how to launch them disappears! Then,
      in order to launch other applications, the user needs to go back over to
      the "Dash" &amp;mdash; which is &lt;em&gt;totally&lt;/em&gt; not a stupid name, concept,
      or idea &amp;mdash; and try to select something!
    &lt;/blockquote&gt;

    The designers were proud of their progress, but frustrated that novice users
    might still figure out how to launch applications not in the small list of
    things included by default on the &lt;strong&gt;DASH HOME DOCK METAPHOR
    PANEL&lt;/strong&gt;. Then came the final piece of brilliance:

    &lt;blockquote&gt;
      Aha! How about instead of having an "Applications" menu which contains a
      list of applications organized by their function &amp;mdash; Graphics,
      Internet, Sound &amp;amp; Video, etc. &amp;mdash; we only have
      &lt;strong&gt;four&lt;/strong&gt; applications, and if the user wants to launch
      something else, they can start typing its name! No one will
      &lt;strong&gt;ever&lt;/strong&gt; be able to get work done once we include that! We'll
      finally be competitive with tablets in the "least amount of useful
      functionality" race!
    &lt;/blockquote&gt;

    Finally, they were satisfied. Nobody who had ever used a computer before
    would be able to figure out this turd, and the designers could live their
    life-long dream of turning something useful into a CES tech demo. Surely,
    the highest aspiration of any piece of software is to look kind of novel
    for a couple minutes when filmed over the shoulder of a PR representative at
    a loud and crowded tech convention. In other words, you want this:

    &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="http://4.bp.blogspot.com/-1qX5U91PkOQ/T0wmnnG_I-I/AAAAAAAAAMQ/EeZdfRqki3I/s1600/great.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="249" width="320" src="http://4.bp.blogspot.com/-1qX5U91PkOQ/T0wmnnG_I-I/AAAAAAAAAMQ/EeZdfRqki3I/s320/great.png" /&gt;&lt;/a&gt;&lt;/div&gt;

    Yeah. That's what people want.
  &lt;/li&gt;
  &lt;li&gt;
    Drugs. &lt;strong&gt;LOTS&lt;/strong&gt; of drugs.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
  Now, armed with these tools, you can venture forth into the world and use your
  computer like a computer, rather than an imitation magazine. If you want a
  magazine you can read while you lean back on your postmodern sofa, go buy a
  copy of &lt;em&gt;Clash&lt;/em&gt; magazine (it's pretty underground, you've probably
  never heard of it). If you want to lean back and watch TV, then watch TV. If
  you want to lean back and listen to music, get an iPod, or better yet, an
  Android phone with a vast multitude of listening options.
&lt;/p&gt;

&lt;p&gt;
  But if you have any interest in &lt;strong&gt;doing actual work&lt;/strong&gt;, you get a
  computer and pray to Turing that the Metaphor Brigade hasn't left the coffee
  shop and ruined it yet. I suppose if your work entails filming a tech demo of
  you performing the three tasks you can do with a hypothetical tablet that
  nobody would pay (or even receive) money to acquire, then keeping up with the
  latest fads might be important. For those of us who want to open up the
  computer, start composing a document, and have characters appear on the screen
  as buttons on the keyboard are pressed, we have been immensely harmed now that
  "creative" people discovered they could ruin whole operating systems, not just
  individual websites.
&lt;/p&gt;

&lt;p&gt;
  The one kernel of solace is that, because there are users of these
  formerly-useful operating systems who posses the skills to fix these
  monstrosities, solutions will continue to exist. And hopefully, once the
  project leads sober up, all of the trash of the last year can safely be
  discarded.
&lt;/p&gt;

&lt;p&gt;
  Anything is possible, I suppose.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-7296075127036748439?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fTvFAQ17j0cuR2DiWljybqYcAvQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fTvFAQ17j0cuR2DiWljybqYcAvQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fTvFAQ17j0cuR2DiWljybqYcAvQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fTvFAQ17j0cuR2DiWljybqYcAvQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/olhuY8XdyDo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/7296075127036748439/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2012/02/ongoing-saga-of-making-ubuntu-1110.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/7296075127036748439?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/7296075127036748439?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/olhuY8XdyDo/ongoing-saga-of-making-ubuntu-1110.html" title="The Ongoing Saga of Making Ubuntu 11.10 Usable" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-1qX5U91PkOQ/T0wmnnG_I-I/AAAAAAAAAMQ/EeZdfRqki3I/s72-c/great.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://www.haxney.org/2012/02/ongoing-saga-of-making-ubuntu-1110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIDQXo8fip7ImA9WhRaE0s.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-8190555292849356648</id><published>2012-02-15T23:46:00.001-05:00</published><updated>2012-02-15T23:46:10.476-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T23:46:10.476-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="projects" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Set ordering in Python: why I didn't sleep last night</title><content type="html">&lt;p&gt;In yesterday's class of the &lt;a href="http://www.cs.brown.edu/courses/csci0530/"&gt;Python-infused&lt;/a&gt; Linear Algebra course I'm taking, a fellow student noted the strange ordering of items in a &lt;code&gt;set&lt;/code&gt; when printed. It seemed that the printed order of the set items always swapped the first two items, but left the rest unchanged. I don't know what sets he tried, but I was interested in the general behavior, and so began my quest through the Python source code...&lt;/p&gt;

&lt;h4&gt;BIG IMPORTANT WARNING!!!&lt;/h4&gt;
&lt;blockquote&gt;&lt;p&gt;These are some interesting properties of the order of iterations over Python's &lt;code&gt;set&lt;/code&gt; objects. They are &lt;strong&gt;NOT&lt;/strong&gt; to be relied upon for the correctness of your program! There are a bunch of hardcoded, opaque magic numbers which determine the order, so it could easily change across micro version, platforms, or compilations with different options. &lt;strong&gt;Treat sets as having undefined ordering!&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;
All of this is looking at the tag "&lt;code&gt;v3.1.1&lt;/code&gt;" in the &lt;a href="http://hg.python.org/cpython/"&gt;
&lt;code&gt;cpython&lt;/code&gt;
&lt;/a&gt; repository on the &lt;a href="http://hg.python.org"&gt;Python repositories&lt;/a&gt; site. "3.1.1" is the version of &lt;code&gt;python3&lt;/code&gt; on the computers here, so I figured that would be the one to check, though I assume the set code hasn't changed that much. The root of that version is &lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;
Sets are defined in the source files &lt;code&gt;"&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Include/setobject.h"&gt;Include/setobject.h&lt;/a&gt;"&lt;/code&gt; and &lt;code&gt;"&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Objects/setobject.c"&gt;Objects/setobject.c&lt;/a&gt;"&lt;/code&gt; for the headers and implementation, respectively. The relevant part of sets is that their elements are stored in a hash table using &lt;a href="http://en.wikipedia.org/wiki/Open_addressing"&gt;open addressing&lt;/a&gt; for collision resolution. Python (version 3.1.1, anyway) uses the following algorithm for resolving collisions, in Python (with cheats):&lt;/p&gt;

&lt;script type="text/javascript" src="https://gist.github.com/1841325.js?file=gistfile1.py"&gt;
&lt;/script&gt;

&lt;p&gt;
&lt;code&gt;entry&lt;/code&gt; is actually a pointer (the whole function is in C); I'm fudging the specifics here a lot. &lt;code&gt;mask&lt;/code&gt; is &lt;code&gt;table.array_size() - 1&lt;/code&gt; where &lt;code&gt;table.array_size()&lt;/code&gt; is the size of the underlying C array. The essence is the updating of &lt;code&gt;index&lt;/code&gt;; it is intended to distribute keys all over the array, making collisions less likely. There are a bunch of trade-offs, and they are described in "&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Objects/dictnotes.txt"&gt;dictnotes.txt&lt;/a&gt;" and "&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Objects/dictobject.c"&gt;dictobject.c&lt;/a&gt;". One interesting fact is that basic integers hash to themselves (and are ANDed with &lt;code&gt;mask&lt;/code&gt; for indexing into the array).&lt;/p&gt;

&lt;p&gt;
The use of open addressing means it can get all objects simply by walking the table. Entries in the set are defined as:&lt;/p&gt;

&lt;script type="text/javascript" src="https://gist.github.com/1841437.js?file=gistfile1.c"&gt;
&lt;/script&gt;

&lt;p&gt;
The set object itself comprises an array of setentries and some additional fields, like the number of in-use entries and the size of the array.&lt;/p&gt;

&lt;p&gt;
Calling &lt;code&gt;list(o)&lt;/code&gt; converts a "sequence object" (there is an abstracted interface at the C level) by calling &lt;code&gt;PySequence_List&lt;/code&gt;, declared in &lt;code&gt;"&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Include/abstract.h"&gt;Include/abstract.h&lt;/a&gt;"&lt;/code&gt; and implemented in &lt;code&gt;"&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Objects/abstract.c"&gt;Objects/abstract.c&lt;/a&gt;"&lt;/code&gt;. &lt;code&gt;PySequence_List&lt;/code&gt; does some basic checks and calls &lt;code&gt;_PyList_Extend&lt;/code&gt;, in &lt;code&gt;"&lt;a href="http://hg.python.org/cpython/file/8b9c0f573ab2/Objects/listobject.c"&gt;Objects/listobject.c&lt;/a&gt;"&lt;/code&gt;, which creates a new list and calls &lt;code&gt;listextend(self, iter(o))&lt;/code&gt; for the real work. It then simply walks through the iterator, appending the items returned to itself, doubling its length if it runs out of space. So the ordering is determined by the iterator for sets.&lt;/p&gt;

&lt;p&gt;
The work is done in the &lt;code&gt;setiter_iternext()&lt;/code&gt; function, which walks through the backing array until it finds a non-NULL entry and returns that. So the order of objects from the result of &lt;code&gt;list(s)&lt;/code&gt; is determined by the order of elements in the table. That is determined by &lt;code&gt;PySet_Add&lt;/code&gt; which calls &lt;code&gt;set_add_key&lt;/code&gt; which uses &lt;code&gt;PyObject_Hash&lt;/code&gt; to get the hash of the object to add.&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;PyObject_Hash&lt;/code&gt; looks into the object's vtable (Python doesn't call it that, it's stored in the object's &lt;code&gt;ob_type&lt;/code&gt; field) to find its &lt;code&gt;tp_hash&lt;/code&gt; function and calls that. &lt;code&gt;tp_hash&lt;/code&gt; returns a &lt;code&gt;long&lt;/code&gt;. Each object has its own hash function; this is what is used for a couple of common types:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;code&gt;double&lt;/code&gt;: uses the integer part of the float (with some extra
  stuff)&lt;/li&gt;
  &lt;li&gt;
    &lt;code&gt;pointer&lt;/code&gt;: rotates the pointer right by 4 bits (since the lower
  3-4 bits are likely to be zero)&lt;/li&gt;
  &lt;li&gt;
    &lt;code&gt;int&lt;/code&gt;: the absolute value of the int modulo the platform's
    maximum &lt;code&gt;long&lt;/code&gt; value. This actually can get interesting, since Python
    &lt;code&gt;long&lt;/code&gt;s are arbitrary precision. The hash is computed through some
  additions, rotations, and fun stuff like that.&lt;/li&gt;
  &lt;li&gt;
    &lt;code&gt;tuple&lt;/code&gt;: the hashes of its objects, XORed together and multiplied
    by a sequence of constants to mix up the value, and something having to do with
  primes.&lt;/li&gt;
  &lt;li&gt;
  &lt;code&gt;string&lt;/code&gt;: XOR of bytes (not "characters"! Know your Unicode!).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  So the order items from &lt;code&gt;list(s)&lt;/code&gt; is "mostly" stable for sets containing the same objects. The exception is when objects with the same hash are inserted in different orders; because of open addressing, the order of insertion determines their place in the array. The following case &lt;strong&gt;should&lt;/strong&gt; hold true:&lt;/p&gt;

&lt;script type="text/javascript" src="https://gist.github.com/1841760.js?file=gistfile1.py"&gt;&lt;/script&gt;
&lt;p&gt;
  So it is possible for sets with the same contents to have different orderings, but it requires a collision of &lt;code&gt;hash(a) % mask&lt;/code&gt;. Remember, (for ints) &lt;code&gt;hash(i) == i&lt;/code&gt; when &lt;code&gt;i&lt;/code&gt; is not an arbitrary-precision numeric. You can create a collision easily by exploiting knowledge of the initial size of the internal array. Rather cleverly, the set object includes an immediate array of &lt;code&gt;PySet_MINSIZE&lt;/code&gt; elements (defaulting to 8) within the structure itself. This means that if your set doesn't grow beyond 5 elements (the hard-coded load factor is 2/3), there is no extra memory allocated for the table. Given those two facts, all you need is &lt;code&gt;(a, b)&lt;/code&gt; such that &lt;code&gt;a &amp;amp; 7 == b &amp;amp; 7&lt;/code&gt;. How about &lt;code&gt;(0, 8)&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;
  You can then do:&lt;/p&gt;

&lt;script type="text/javascript" src="https://gist.github.com/1841863.js?file=gistfile1.py"&gt;&lt;/script&gt;

&lt;p&gt;
  I'm not sure why the order of the elements is reversed; this only happens for certain combinations:&lt;/p&gt;

  &lt;script type="text/javascript" src="https://gist.github.com/1841869.js?file=gistfile1.py"&gt;&lt;/script&gt;

&lt;p&gt;
  I started investigating deeper into how Python fills its hash tables, but I decided to stop after a dozen hours, reading through Python's parser code, and trying to figure out pixel offsets to pass to PyCairo during visualization. My progress thus far is &lt;a href="https://github.com/haxney/set-investigate"&gt;here&lt;/a&gt;. I'm trying to get a visualization of exactly how the entries are being added, but porting Brandon Rhodes' dictionary code to work for sets is non-trivial. Also, getting the visualization to display in a Gtk window rather than writing to a file took some fiddling around with PyGtk and PyCairo.&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;tl;dr&lt;/strong&gt;: the order of objects in a set when converted to a list (such as during display on the repl) is dependent on the hash of the object and the collision resolution strategy. The pattern found by the student in which the first two elements of the set were reversed was a coincidence, as the indexing function attempts to distribute keys uniformly over the table.&lt;/p&gt;

&lt;p&gt;
  I spent &lt;strong&gt;WAY&lt;/strong&gt; too much time on this. Interesting, though.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-8190555292849356648?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N9QMUqWIwAryc8nEjfGUrlpFHaY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N9QMUqWIwAryc8nEjfGUrlpFHaY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N9QMUqWIwAryc8nEjfGUrlpFHaY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N9QMUqWIwAryc8nEjfGUrlpFHaY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/D9J9yu-zvIs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/8190555292849356648/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2012/02/set-ordering-in-python-why-i-didnt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/8190555292849356648?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/8190555292849356648?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/D9J9yu-zvIs/set-ordering-in-python-why-i-didnt.html" title="Set ordering in Python: why I didn't sleep last night" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>217 Thayer St, Providence, RI 02906, USA</georss:featurename><georss:point>41.82755473872867 -71.40027523040771</georss:point><georss:box>41.82163873872867 -71.41014573040772 41.83347073872867 -71.39040473040771</georss:box><feedburner:origLink>http://www.haxney.org/2012/02/set-ordering-in-python-why-i-didnt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcFSXs4eSp7ImA9WhRQGE8.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-3728655170917790413</id><published>2011-12-13T21:00:00.001-05:00</published><updated>2011-12-13T21:00:18.531-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-13T21:00:18.531-05:00</app:edited><title>What a functional desktop looks like</title><content type="html">As a followup to my first &lt;a href="http://www.haxney.org/2011/10/un-terrible-ize-ubuntu-1110.html"&gt;Un-Terrible-ize&lt;br /&gt;
Ubuntu 11.10&lt;/a&gt; post, I thought I'd show everyone what my computer looks like&lt;br /&gt;
after reverting the desktop to a working state.&lt;br /&gt;
&lt;br /&gt;
Here is what it looks like now:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-kV-S6royhK8/TufZMxU52PI/AAAAAAAAAFE/2we8do9zs68/s1600/working.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/-kV-S6royhK8/TufZMxU52PI/AAAAAAAAAFE/2we8do9zs68/s640/working.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Nice, neat, with all of the things I want and none of the things I don't want. I&lt;br /&gt;
have a couple of customizations for Firefox (like the tabs on the side), and&lt;br /&gt;
along the top is the "System Monitor" applet, which displays (from left to&lt;br /&gt;
right) the current CPU usage, memory usage, network activity, swap space, load&lt;br /&gt;
average, and disk usage. That's undoubtedly overly geeky for many people, but I&lt;br /&gt;
find it quite useful.&lt;br /&gt;
&lt;br /&gt;
Now, for comparison, here is what the default Ubuntu 11.10 interface looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1JTlSKQlp98/TugCX7WgKuI/AAAAAAAAAFU/AyhKYC-a2Ow/s1600/unity.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="358" src="http://4.bp.blogspot.com/-1JTlSKQlp98/TugCX7WgKuI/AAAAAAAAAFU/AyhKYC-a2Ow/s640/unity.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;This is a direct screen shot. True story.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
Later on, I may post a step-by-step description or even a script for getting&lt;br /&gt;
from the bottom image to the top.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-3728655170917790413?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dfMRje3K71wLydLosFYMAiEt4lc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dfMRje3K71wLydLosFYMAiEt4lc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dfMRje3K71wLydLosFYMAiEt4lc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dfMRje3K71wLydLosFYMAiEt4lc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/YpZmWo8xWb4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/3728655170917790413/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/12/what-functional-desktop-looks-like.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/3728655170917790413?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/3728655170917790413?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/YpZmWo8xWb4/what-functional-desktop-looks-like.html" title="What a functional desktop looks like" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-kV-S6royhK8/TufZMxU52PI/AAAAAAAAAFE/2we8do9zs68/s72-c/working.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2011/12/what-functional-desktop-looks-like.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BQXszeyp7ImA9WhRQGEw.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-7018654767675824727</id><published>2011-12-13T17:55:00.002-05:00</published><updated>2011-12-13T17:55:50.583-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-13T17:55:50.583-05:00</app:edited><title>Configuring Printers in Ubuntu 11.10</title><content type="html">Welcome back to my ongoing adventures in &lt;a href="http://www.haxney.org/2011/10/un-terrible-ize-ubuntu-1110.html"&gt;making&lt;br /&gt;
Ubuntu work&lt;/a&gt; once again. Today's episode features printing!&lt;br /&gt;
&lt;br /&gt;
So upon trying to print a document, I found that my printer hadn't been set up.&lt;br /&gt;
No problem! I guess I had forgotten to do so. So I jetted on over to the "System&lt;br /&gt;
Settings" application, which helpfully had a "Printers" button. "Why hello Mr.&lt;br /&gt;
Printers button," I said. "Let's go on a magical printer-configuring adventure,&lt;br /&gt;
just the two of us!" Clicking on Mr. Printers, I was greeted with the Nice™,&lt;br /&gt;
Shiny™, Sexy™ Interface below:&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/--ByLQQu_iN4/TufKgpyTZRI/AAAAAAAAAEc/smcvt3LuWVo/s1600/Screenshot+at+2011-12-13+16%253A57%253A52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/--ByLQQu_iN4/TufKgpyTZRI/AAAAAAAAAEc/smcvt3LuWVo/s320/Screenshot+at+2011-12-13+16%253A57%253A52.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Since my objective was to add a new printer to Mr. Printers' Magic List™, I&lt;br /&gt;
thought I'd click the "+" button.&lt;br /&gt;
&lt;br /&gt;
"Not so fast!" Mr. Printers said gleefully. "That button is grayed out, so&lt;br /&gt;
clicking on it does nothing!" I should confess that he didn't actually say this,&lt;br /&gt;
since clicking the grayed-out button did exactly nothing, but I like to think&lt;br /&gt;
that this is what he meant, in his silence.&lt;br /&gt;
&lt;br /&gt;
Despondent, I searched for a clue. My eye caught sight of the "Unlock" button in&lt;br /&gt;
the upper-right corner of Mr. Printers' window:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-c5exv-aD-oU/TufNkf6RSWI/AAAAAAAAAEk/fDlTlyoHAwU/s1600/Screenshot+at+2011-12-13+16%253A57%253A52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/-c5exv-aD-oU/TufNkf6RSWI/AAAAAAAAAEk/fDlTlyoHAwU/s320/Screenshot+at+2011-12-13+16%253A57%253A52.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
"Aha!" I exclaimed with joy, "I bet this will unlock the secrets of the&lt;br /&gt;
printer!" I clicked on the button, entered my password to confirm that yes, I&lt;br /&gt;
did want to modify system settings, and lo and behold, the "+" button was no&lt;br /&gt;
longer grayed out! Being the masterful designers they are, the team responsible&lt;br /&gt;
for the "+" button saw fit to make the difference between "stubborn, indignant&lt;br /&gt;
Mr. Printers" and "helpful, charitable Mr. Printers" as clear as day. Just take&lt;br /&gt;
a look!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-XfaEuV1Nv6o/TufUNeUZPrI/AAAAAAAAAEs/6UK5ig9vVjc/s1600/together.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-XfaEuV1Nv6o/TufUNeUZPrI/AAAAAAAAAEs/6UK5ig9vVjc/s320/together.png" width="198" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
What could be clearer?!&lt;br /&gt;
&lt;br /&gt;
After that, I clicked on the now-enabled "+" button which whisked me away to&lt;br /&gt;
this lovely dialog:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Qvd5y2ravY0/TufU8OB4tBI/AAAAAAAAAE0/HbUKmPeBI0c/s1600/add.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://2.bp.blogspot.com/-Qvd5y2ravY0/TufU8OB4tBI/AAAAAAAAAE0/HbUKmPeBI0c/s320/add.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Now, I should clarify, in older versions of Ubuntu, the "Add Printer" dialog&lt;br /&gt;
would automatically detect any printers on the network, allow you to connect&lt;br /&gt;
with them, and figure out which driver to use, all without needing to wade&lt;br /&gt;
through lists of devices. Now, with Mark Shuttleworth's Amazing&lt;br /&gt;
Intuit-Interface™, that pesky problem of things working has finally been solved!&lt;br /&gt;
&lt;br /&gt;
So after a bit of Googling, I found out that you could use the old, Actually&lt;br /&gt;
Working™ printer-adding interface by opening a terminal (yes, yes, I know) and&lt;br /&gt;
running the program &lt;code&gt;system-config-printer&lt;/code&gt;. That opens this old&lt;br /&gt;
friend:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sT9Volr3Gqo/TufWtpls36I/AAAAAAAAAE8/_PJKLKCwpNc/s1600/working.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="189" src="http://1.bp.blogspot.com/-sT9Volr3Gqo/TufWtpls36I/AAAAAAAAAE8/_PJKLKCwpNc/s320/working.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Whose "Add" button actually works!&lt;br /&gt;
&lt;br /&gt;
So thank you, Mark Shuttleworth, for once again taking something that worked and&lt;br /&gt;
turning it into something that doesn't work. This clearly is progress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;TL;DR&lt;/b&gt; If you want to add a printer, skip the "Printers" option&lt;br /&gt;
in System Settings and run &lt;code&gt;system-config-printer&lt;/code&gt; instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-7018654767675824727?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KcoBiIFEud-Z-3CbAtLOvVnTCWc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KcoBiIFEud-Z-3CbAtLOvVnTCWc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KcoBiIFEud-Z-3CbAtLOvVnTCWc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KcoBiIFEud-Z-3CbAtLOvVnTCWc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/rIn-Y4NykIw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/7018654767675824727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/12/configuring-printers-in-ubuntu-1110.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/7018654767675824727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/7018654767675824727?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/rIn-Y4NykIw/configuring-printers-in-ubuntu-1110.html" title="Configuring Printers in Ubuntu 11.10" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/--ByLQQu_iN4/TufKgpyTZRI/AAAAAAAAAEc/smcvt3LuWVo/s72-c/Screenshot+at+2011-12-13+16%253A57%253A52.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.haxney.org/2011/12/configuring-printers-in-ubuntu-1110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFQnw4eyp7ImA9WhdaFE4.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-6058877871310265071</id><published>2011-10-24T01:33:00.000-04:00</published><updated>2011-10-24T01:33:33.233-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-24T01:33:33.233-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="worst idea ever" /><title>Un-Terrible-ize Ubuntu 11.10</title><content type="html">Oh my god. After years of being a great, easy-to-use Linux distribution, Ubuntu finally has failed me and may need to be dumped. I just upgraded to 11.10 (Oneiric Ocelot) and they have made it more difficult than before to return to a not-terrible window manager. I think the idea behind Ubuntu's new "Unity" interface are cute, but is just god-awful for people who want to use their computer for things and don't like desperately trying to hunt them down. What was wrong with an "applications" menu that had an "Office" tab under it with office-related applications? Now, you open the side panel overlay bar thing and it takes up the whole screen but presents you with almost exactly zero useful information. It has something like 3 applications along the top and then says "fuck you, go figure it out" if you want anything more. Alt-F2 doesn't work to open a launcher to launch an application. Alt + middle-click doesn't resize windows any more. Just getting out of my damn way and letting me use the computer like I have for years doesn't even close to work.&lt;br /&gt;
&lt;br /&gt;
GNOME 2 was just fine. Why did you have to take something which worked, in a non-terrible fashion, and remove all of the useful, discoverable, productive parts of it? I've spent a couple hours at this point trying to get back to the level of non-uselessness I had with Ubuntu 11.04, which was not useless. I even tried installing GNOME 3 in the hope that it would have a "stop doing stupid bullshit" mode, but it only kind of does. I've gotten close, but the "system" menu is AWOL, and I can't figure out how to get it back. It doesn't seem to want to let you customize the theme at all or even have something as simple as focus-follows-mouse. Yes, I've opened &lt;code&gt;gconf-editor&lt;/code&gt; and set &lt;code&gt;/apps/metacity/general/focus_mode&lt;/code&gt; to &lt;code&gt;mouse&lt;/code&gt;, which seems to be the closest thing to focus-follows-mouse available, but it doesn't do it.&lt;br /&gt;
&lt;br /&gt;
I'll post what information I've found to get it to the minimally-crappy state it's in now, but I'm still searching for how to de-terrible-ize it further. Alternatively, I might just dump Ubuntu altogether until it gets some sense beaten into it. I hear &lt;a href="http://http://www.linuxmint.com/"&gt;Linux Mint&lt;/a&gt; is supposed to have remained safe from the "enshittening" of Linux user interfaces of late. Also, I could try Xubuntu, though I've never really been a fan of XFCE. It's a heck of a lot better than Unity or GNOME 3.&lt;br /&gt;
&lt;br /&gt;
No, nevermind. Not using XFCE.&lt;br /&gt;
&lt;br /&gt;
Okay, after a few more hours of wasted time, I'm going to bite the bullet and back up all of my documents, wipe 11.10 off of my computer, and go back to 11.04, aka "the last sane version of Ubuntu". It really sucks because I used to recommend Ubuntu to my relatively non-technical friends, but with the crap they're pulling now, there's no way I'd let their first Linux experience be with this trash. Sad day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-6058877871310265071?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KhJVSTepmvCJS9md3VzlSaFLMd4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KhJVSTepmvCJS9md3VzlSaFLMd4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KhJVSTepmvCJS9md3VzlSaFLMd4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KhJVSTepmvCJS9md3VzlSaFLMd4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/hRixrA8MBXg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/6058877871310265071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/10/un-terrible-ize-ubuntu-1110.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6058877871310265071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6058877871310265071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/hRixrA8MBXg/un-terrible-ize-ubuntu-1110.html" title="Un-Terrible-ize Ubuntu 11.10" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>12</thr:total><feedburner:origLink>http://www.haxney.org/2011/10/un-terrible-ize-ubuntu-1110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEHRnYyfyp7ImA9WhdbGUo.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-887143604803534288</id><published>2011-10-18T17:17:00.000-04:00</published><updated>2011-10-18T17:17:17.897-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T17:17:17.897-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><category scheme="http://www.blogger.com/atom/ns#" term="settings" /><category scheme="http://www.blogger.com/atom/ns#" term="boring" /><title>Changing up the style</title><content type="html">You may have noticed a change in the style of the site. That's because I changed the style of the site.&lt;br /&gt;
&lt;br /&gt;
Okay, seriously, I switched to the new Blogger interface/template, so things look a bit different. I tried fiddling around with some things, and hopefully nothing broke. To all of you massive numbers of readers of this blog, let me know if anything went wrong in the upgrade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-887143604803534288?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5xTX-6M4V0JesKkHdygmDO9cqdo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5xTX-6M4V0JesKkHdygmDO9cqdo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5xTX-6M4V0JesKkHdygmDO9cqdo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5xTX-6M4V0JesKkHdygmDO9cqdo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/WZr9lCq-71k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/887143604803534288/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/10/changing-up-style.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/887143604803534288?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/887143604803534288?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/WZr9lCq-71k/changing-up-style.html" title="Changing up the style" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2011/10/changing-up-style.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08NQXs9fip7ImA9WhdQGUU.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-8885122031364127402</id><published>2011-08-21T22:18:00.000-04:00</published><updated>2011-08-21T22:58:10.566-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-21T22:58:10.566-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="rendering" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="json" /><title>Genericizing Rails view templates</title><content type="html">In keeping with my previous post, I have put together a way of greatly reducing the redundant code in Rails views. On the HTML side, this really only applies to the simple case of rendering the default REST views provided by Rails' scaffolding mechanism.&lt;br /&gt;
&lt;br /&gt;
Rather than have an &lt;code&gt;index.html.haml&lt;/code&gt; (or &lt;code&gt;erb&lt;/code&gt; if you're a bad person ;) for every model you have, why not consolidate all of those into a single template? They all do the same thing anyway: render a table of objects along with a few actions. Using the wonderful &lt;a
href="https://github.com/codez/render_inheritable"&gt;&lt;code&gt;render_inheritable&lt;/code&gt;&lt;/a&gt; gem, you can define a single &lt;code&gt;index.html.x&lt;/code&gt; file in a central location (such as &lt;code&gt;app/views/application&lt;/code&gt;) and have all of the customization occur at runtime.&lt;a name='more'&gt;&lt;/a&gt; Thanks to &lt;code&gt;render_inheritable&lt;/code&gt;, the 4 index files for my 4 models can be reduced to this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161502.js?file=index.html.haml"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
You'll need to define a &lt;code&gt;entry_class&lt;/code&gt; method in each of your controllers which returns the model's class. So in the &lt;code&gt;UsersController&lt;/code&gt; you would have:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161502.js?file=users_controller.rb"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
The same applies to the &lt;code&gt;_form.html.x&lt;/code&gt; file. Using the wonderful &lt;a
href="https://github.com/justinfrench/formtastic"&gt;&lt;code&gt;formtastic&lt;/code&gt;&lt;/a&gt; gem, creating a form which works for all of the models is as simple as this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161502.js?file=_form.html.haml"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
These are all pretty trivial and contrived; in any real application you wouldn't reuse the exact same view for all of your models. Where it becomes more useful is when crafting API responses, which tend to have more regular formats. Using the great &lt;a href="https://github.com/nesquena/rabl"&gt;&lt;code&gt;rabl&lt;/code&gt;&lt;/a&gt; gem, you can create view templates for JSON responses like you would for HTML responses. Instead of mucking about with &lt;code&gt;to_json&lt;/code&gt; in your models or controllers, define the format of responses in a view, where it belongs.&lt;br /&gt;
&lt;br /&gt;
Used with &lt;code&gt;render_inheritable&lt;/code&gt;, you can do some truly awesome things with your JSON (or XML) output. To create an index template which returns a per-model customizable collection of objects, simply create a file at e.g. &lt;code&gt;app/views/application/index.json.rabl&lt;/code&gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161502.js?file=index.json.rabl"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
You'll need to define a function called &lt;code&gt;entry_views_folder_path&lt;/code&gt; in your &lt;code&gt;ApplicationController&lt;/code&gt; which returns e.g. &lt;code&gt;users&lt;/code&gt; for responses concerning &lt;code&gt;User&lt;/code&gt; objects endpoint or &lt;code&gt;groups&lt;/code&gt; for responses with &lt;code&gt;Group&lt;/code&gt; objects.&lt;br /&gt;
&lt;br /&gt;
Doesn't look like much, but mix that together with &lt;code&gt;base.json.rabl&lt;/code&gt; files for each one of your models, such as:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161502.js?file=base.json.rabl"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
you now have a set of templates which render a collection of models, specialized for each class. That's pretty cool if you ask me.&lt;br /&gt;
&lt;br /&gt;
Stay tuned for a way to render these customized API templates when errors are encountered, while still preserving the original error codes. It took me hours of digging through the Rails source to figure out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-8885122031364127402?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1AiRP1bN45URgEaZ-7rkVig0gJY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1AiRP1bN45URgEaZ-7rkVig0gJY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1AiRP1bN45URgEaZ-7rkVig0gJY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1AiRP1bN45URgEaZ-7rkVig0gJY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/gpPLOnb3PQI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/8885122031364127402/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/08/genericizing-rails-view-templates.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/8885122031364127402?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/8885122031364127402?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/gpPLOnb3PQI/genericizing-rails-view-templates.html" title="Genericizing Rails view templates" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>382-394 Eddy St, Providence, RI 02903, USA</georss:featurename><georss:point>41.81712886667111 -71.4065408706665</georss:point><georss:box>41.814170366671114 -71.4114763706665 41.82008736667111 -71.4016053706665</georss:box><feedburner:origLink>http://www.haxney.org/2011/08/genericizing-rails-view-templates.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08BQHsycCp7ImA9WhdQGUU.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-5451979296231006953</id><published>2011-08-21T21:25:00.002-04:00</published><updated>2011-08-21T22:57:31.598-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-21T22:57:31.598-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><category scheme="http://www.blogger.com/atom/ns#" term="scala" /><title>Scala on Android with Eclipse</title><content type="html">Yes, I'm back from the dead. I've been busy starting a &lt;a href="http://getrenown.com"&gt;company&lt;/a&gt; of late and have been pretty much full speed ahead on that, leaving less (read: none) time for blogging.&lt;br /&gt;
&lt;br /&gt;
Anyway, on with the main event: a working setup for developing Android applications in &lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt;. I spent about 3-4 days total trying to get this setup working, using various different schemes such as the &lt;a href="https://code.google.com/p/treeshaker/"&gt;Treeshaker&lt;/a&gt; plugin for Eclipse, the &lt;a href="https://code.google.com/p/maven-android-plugin"&gt;Maven Android plugin&lt;/a&gt; and others. After hours and hours of fiddling, I finally found a solution that works: a custom &lt;a href="https://code.google.com/p/simple-build-tool"&gt;SBT&lt;/a&gt; setup with the &lt;a href="https://github.com/jberkel/android-plugin"&gt;SBT Android&lt;/a&gt; plugin. The key is to avoid building the Android app in Eclipse itself, but to use SBT for the heavy lifting.&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Eclipse seems to have some very non-deterministic behavior when building applications, especially Android applications. When you add Scala and Treeshaker into the mix, the whole thing falls apart. Furthermore, the build process is very opaque, so it's hard to figure out what is even going wrong, let alone to try to fix it. A build which was fine before might suddenly stop working, raising some exception or simply pegging the processor and making Eclipse totally unresponsive. There doesn't seem to be any pattern to the madness, so it's impossible to fix.&lt;br /&gt;
&lt;br /&gt;
Anyway, as I mentioned, SBT with the Android plugin works beautifully for building apps, but as much as I love Emacs, it is easier to work with Scala in an environment that gives you clear and immediate feedback about type failures and requirements. On the downside, in order to do all of this wonderfulness along with the Android helpers, Eclipse expects a very specific directory layout, and will complain if it does not exist. SBT, by default, uses a completely wacky layout, with the Android manifest files (usually at the root of the project) in &lt;code&gt;src/main/&lt;/code&gt;. This means that the actual source code files are in &lt;code&gt;src/main/src/main/java/com/example/...&lt;/code&gt;. For a single project without references to other projects, this is unnecessarily complicated and destroys the tiny brain of Eclipse. So the solution is to change SBT's layout to something sane.&lt;br /&gt;
&lt;br /&gt;
Note: I'm using SBT 0.7.x since the SBT Android plugin hasn't yet been ported to 0.10.x&lt;br /&gt;
&lt;br /&gt;
First of all, you need to declare the plugins you will be using (for now just the SBT Android plugin) in &lt;code&gt;project/plugins/plugins.scala&lt;/code&gt;. The actual filename doesn't matter, as long as it is in the &lt;code&gt;project/plugins&lt;/code&gt; folder. The &lt;code&gt;plugins.scala&lt;/code&gt; looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161421.js?file=plugins.scala"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
Standard fare for SBT plugins.&lt;br /&gt;
&lt;br /&gt;
Next is the SBT project file. This is where the magic happens, though there isn't really that much magic to it. It simply changes some paths so that SBT looks in the correct place. Here's the file:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161421.js?file=project.scala"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
The keys are the five lines in the middle setting the path info. The &lt;code&gt;androidManifestPath&lt;/code&gt; assignment causes SBT to look for &lt;code&gt;AndroidManifest.xml&lt;/code&gt; in the project root, as do &lt;code&gt;mainResPath&lt;/code&gt; and &lt;code&gt;mainAssetsPath&lt;/code&gt;. Setting the scala and java source paths to &lt;code&gt;src&lt;/code&gt; means that SBT will look in that folder instead of the redundantly redundant &lt;code&gt;src/main/src&lt;/code&gt; directory. Finally, overriding &lt;code&gt;aaptGenerateTask&lt;/code&gt; simply makes &lt;code&gt;aapt&lt;/code&gt; write the generated resource files (&lt;code&gt;R.java&lt;/code&gt; and friends) to the &lt;code&gt;gen&lt;/code&gt; folder, as the Android Eclipse plugin expects.&lt;br /&gt;
&lt;br /&gt;
With the hard stuff out of the way, you "simply" need to configure Eclipse to use the appropriate builders and classpaths, included in the &lt;code&gt;.project&lt;/code&gt; and &lt;code&gt;.classpath&lt;/code&gt; files, respectively. Here they are:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;.project&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161421.js?file=.project"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
and &lt;code&gt;.classpath&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1161421.js?file=.classpath"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, since the config files include the Scala libraries and builder, you'll need to install the &lt;a href="http://www.scala-ide.org/"&gt;Scala Eclipse IDE&lt;/a&gt;. With all of this in place, you should be able to issue a simple &lt;code&gt;sbt start-emulator&lt;/code&gt; to build, Proguard, package, deploy and start your application.&lt;br /&gt;
&lt;br /&gt;
Hopefully this post will save you from the pain I endured of trying to get Scala working on the one hand, and the thought of having to use Java on the other.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-5451979296231006953?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UQRMGzVh2eBmoARRqJoPEKvOTGY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UQRMGzVh2eBmoARRqJoPEKvOTGY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UQRMGzVh2eBmoARRqJoPEKvOTGY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UQRMGzVh2eBmoARRqJoPEKvOTGY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/I1zaQ5keEOI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/5451979296231006953/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/08/scala-on-android-with-eclipse.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/5451979296231006953?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/5451979296231006953?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/I1zaQ5keEOI/scala-on-android-with-eclipse.html" title="Scala on Android with Eclipse" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.haxney.org/2011/08/scala-on-android-with-eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYHQnkyfip7ImA9Wx9UFEg.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-572806442087266336</id><published>2011-02-11T15:45:00.000-05:00</published><updated>2011-02-11T15:45:33.796-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-11T15:45:33.796-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mods" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="minecraft" /><title>MineCabinet - a database-backed chunk manager for Minecraft</title><content type="html">As I alluded to in my &lt;a href="http://www.haxney.org/2011/02/size-of-minecraft-chunk-files.html"&gt;last post&lt;/a&gt;, I have been working on modding &lt;a href="http://www.minecraft.net"&gt;Minecraft&lt;/a&gt; to use the excellent &lt;a href="http://1978th.net/tokyocabinet"&gt;Tokyo Cabinet&lt;/a&gt; database to store the chunk data. I have finally gotten it to the point where it is ready to be released to the masses.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a &lt;a href="http://db.tt/HOq9W9a"&gt;link&lt;/a&gt; to the zip file. It contains installation instructions in the README.txt. All of the basic installation information is contained there, so if you're really interested in how it works, hit that download link! :)&lt;br /&gt;
&lt;br /&gt;
Basically, I replaced Minecraft's current ChunkLoader implementation with a new one based on Tokyo Cabinet. Rather than saving each chunk in a separate file, MineCabinet stores everything in a single Tokyo Cabinet database, which reduces the number of files for a 60MB world from 17,000 to 1. It also boosts performance by roughly a factor of 4, according to my basic profiling results. here are a few runs from JVisualVM for vanilla Minecraft, McRegion, and MineCabinet. There are two sets of results, one for creating a new world and running around for a few minutes and then saving and exiting the world, and another for reloading that same world.&lt;br /&gt;
&lt;br /&gt;
First, the profiling for initial world creation:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tTEOYpZyPPE/TVWSfXD-rCI/AAAAAAAAABs/Ap3PeB7_avE/s1600/mc-std-init.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="201" width="400" src="http://3.bp.blogspot.com/-tTEOYpZyPPE/TVWSfXD-rCI/AAAAAAAAABs/Ap3PeB7_avE/s400/mc-std-init.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;center&gt;Vanilla Minecraft - initializing new world. 1030 calls to &lt;code&gt;oj.a(dn, ib)&lt;/code&gt; (aka &lt;code&gt;saveChunk&lt;/code&gt;) in 4522 ms or 4.4 ms/call&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wQyyl4bHcFQ/TVWSp7ck37I/AAAAAAAAAB0/HvucmIb7h3k/s1600/mc-region-init.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="201" width="400" src="http://3.bp.blogspot.com/-wQyyl4bHcFQ/TVWSp7ck37I/AAAAAAAAAB0/HvucmIb7h3k/s400/mc-region-init.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;center&gt;McRegion - initializing new world. 1076 calls to &lt;code&gt;oj.a(dn, ib)&lt;/code&gt; in 4060 ms or 3.8 ms/call&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-AxUrpXQxvVw/TVWSx8sEtDI/AAAAAAAAAB8/63UNdrtJJBY/s1600/mc-tc-init.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="201" width="400" src="http://3.bp.blogspot.com/-AxUrpXQxvVw/TVWSx8sEtDI/AAAAAAAAAB8/63UNdrtJJBY/s400/mc-tc-init.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;center&gt;MineCabinet - Initializing new world. 996 calls to &lt;code&gt;saveChunk&lt;/code&gt; in 728 ms or 0.73 ms/call&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
And for loading that world back from disk:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IS6XNcBzKO4/TVWUl1QCReI/AAAAAAAAACE/4I8TpDrABLc/s1600/mc-std-reload.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="201" width="400" src="http://1.bp.blogspot.com/-IS6XNcBzKO4/TVWUl1QCReI/AAAAAAAAACE/4I8TpDrABLc/s400/mc-std-reload.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;center&gt;Vanilla Minecraft - loading existing world. 570 calls to &lt;code&gt;oj.a(dn, ib)&lt;/code&gt; in 2605 ms or 4.5 ms/call&lt;br /&gt;
&lt;br /&gt;
566 calls to &lt;code&gt;oj.a(dn, int, int)&lt;/code&gt; (aka &lt;code&gt;loadChunk&lt;/code&gt;) in 868 ms or 1.5 ms/call&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_iFSwEya1rE/TVWUqBraLEI/AAAAAAAAACM/0X-WWjP1WRE/s1600/mc-region-reload.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="201" width="400" src="http://2.bp.blogspot.com/-_iFSwEya1rE/TVWUqBraLEI/AAAAAAAAACM/0X-WWjP1WRE/s400/mc-region-reload.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;center&gt;McRegion - loading existing world. 590 calls to &lt;code&gt;oj.a(dn, ib)&lt;/code&gt; in 2424 ms or 4.1 ms/call&lt;br /&gt;
&lt;br /&gt;
581 calls to &lt;code&gt;oj.a(dn, int, int)&lt;/code&gt; in 528 ms or 0.91 ms/call&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-TlrtCDPte50/TVWUum4SOjI/AAAAAAAAACU/N0l-ZmCFHwE/s1600/mc-tc-reload.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="201" width="400" src="http://4.bp.blogspot.com/-TlrtCDPte50/TVWUum4SOjI/AAAAAAAAACU/N0l-ZmCFHwE/s400/mc-tc-reload.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;center&gt;MineCabinet - loading existing world. 562 calls to &lt;code&gt;saveChunk()&lt;/code&gt; in 259 ms or 0.46 ms/call&lt;br /&gt;
&lt;br /&gt;
556 calls to &lt;code&gt;loadChunk()&lt;/code&gt;  in 643 ms or 1.2 ms/call&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
So as you can see, a very large speedup. Additionally, Tokyo Cabinet has a number of tuning parameters which could affect performance, including switching from using a B+ tree-based database to a hashtable-based database. The hashtable apparently has higher space overhead, but can be more efficient in some circumstances. I didn't really investigate the impact of various tuning parameters on performance, so there is some potential for even more speedups.&lt;br /&gt;
&lt;br /&gt;
One thing to note, though, is that MineCabinet spends a large amount in &lt;code&gt;saveExtraData()&lt;/code&gt;. This is because I put a call to &lt;code&gt;db.sync()&lt;/code&gt; in there (it was a noop before). It gets called when a world is unloaded, so it seemed like a good time to sync. Although this is a large amount of time, it is only done when switching worlds, so five seconds here isn't as noticeable as a lot of little pauses throughout the game. A more intelligent mod could force a sync (in a dedicated thread) periodically, say after a (configurable?) number of in-game ticks.&lt;br /&gt;
&lt;br /&gt;
Another nice thing about using Tokyo Cabinet is that it obviates the need for managing the "session.lock" file in each world directory. In vanilla Minecraft, this file is checked (twice) for each chunk save to make sure that the directory isn't being written by another Minecraft process. This adds more (though not much) overhead to each chunk save, and can be avoided entirely with Tokyo Cabinet. When opening a database, TC takes a file lock on the file it's opening, so any other process (reader or writer) is blocked from opening that same file. Since a database is opened for the entire session of a world, no other process can modify or read the database while it is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Current limitations&lt;/h2&gt;&lt;br /&gt;
All is not perfect, however. Currently, I only provide a native library for 32-bit Linux, since that is the only build environment I have access to. Building Tokyo Cabinet (and the Java bindings) for Mac OSX shouldn't be hard, and it &lt;a href="https://github.com/lancepantz/tokyocabinet"&gt;looks like&lt;/a&gt; someone already has a build made.&lt;br /&gt;
&lt;br /&gt;
Windows is harder, since Tokyo Cabinet does not officially support it. It may be possible to build with MinGW, though I've never used it. Tokyo Cabinet doesn't have many dependencies (zlib, bzip2, and pthreads), so it may be possible to get it to build and run on Windows. I'll have to see.&lt;br /&gt;
&lt;br /&gt;
Another possibility is to use the newer and improved-er &lt;a href="http://fallabs.com/kyotocabinet"&gt;Kyoto Cabinet&lt;/a&gt;, the successor to Tokyo Cabinet which includes (among other things) official binary packages for Windows. The downside is that unlike Tokyo Cabinet, Kyoto Cabinet is licensed under the GPLv3, making it ineligible for use in Minecraft without a commercial license. Mojang may decide that it's worth it to go for the commercial license, but I didn't want to assume that, plus, I wanted to remain closer to the side of legal distribution (Minecraft mods are always a gray area).&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Closing remarks&lt;/h2&gt;&lt;br /&gt;
My ultimate hope is that MineCabinet (or something similar using an efficient DB) is included in the main Minecraft client, since I think using an embedded DB would provide a number of advantages over even a well-done custom format (such as McRegion). One of the biggest benefits is simply letting someone else deal with the tricky problem of managing persistence and concurrent access. My opinion is that if you can make your problem someone else's problem, go for it, especially when they specialize in solving that problem. Also, databases like Tokyo/Kyoto Cabinet have effective methods for dealing with both intra- and inter-process concurrent access, which is a notoriously difficult problem to get right.&lt;br /&gt;
&lt;br /&gt;
There's plenty more I could say, but this post is long enough as it is. Please feel free to give feedback and suggestions, especially in the form of code ;)!&lt;br /&gt;
&lt;br /&gt;
P.S. A big thank you to Scaevolus, author of &lt;a href="http://www.minecraftforum.net/viewtopic.php?f=25&amp;t=120160"&gt;McRegion&lt;/a&gt; and Minecraft modding expert. Without his help, I never would have been able to navigate the Minecraft sources and make the modifications to put the whole thing together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-572806442087266336?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/spF3Ayr9CW3uftka3WLO9dgAa_0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/spF3Ayr9CW3uftka3WLO9dgAa_0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/spF3Ayr9CW3uftka3WLO9dgAa_0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/spF3Ayr9CW3uftka3WLO9dgAa_0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/9LGKrw6Nrg0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/572806442087266336/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/02/minecabinet-database-backed-chunk.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/572806442087266336?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/572806442087266336?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/9LGKrw6Nrg0/minecabinet-database-backed-chunk.html" title="MineCabinet - a database-backed chunk manager for Minecraft" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-tTEOYpZyPPE/TVWSfXD-rCI/AAAAAAAAABs/Ap3PeB7_avE/s72-c/mc-std-init.png" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://www.haxney.org/2011/02/minecabinet-database-backed-chunk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAERXc9fyp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-854928275306439559</id><published>2011-02-06T08:06:00.001-05:00</published><updated>2011-02-06T19:31:44.967-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-06T19:31:44.967-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><category scheme="http://www.blogger.com/atom/ns#" term="minecraft" /><title>Size of Minecraft chunk files</title><content type="html">So I'm working on a replacement for Minecraft's save file format, since the format it currently uses is rather busted. In a world that I've been playing with 4 other friends for just under a month, the save directory is 50MB and contains a whopping 17,684 files!&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I heard of the excellent &lt;a href="http://www.minecraftforum.net/viewtopic.php?f=25&amp;t=120160"&gt;McRegion&lt;/a&gt; mod which used a custom save format to speed up chunk loading. I thought it would be interesting to try my hand at a similar modification, but using one of the real, full-fledged embedded key-value databases I've heard about. After a bit of Wikipedia-ing, I settled on &lt;a href="http://1978th.net/tokyocabinet/"&gt;Tokyo Cabinet&lt;/a&gt;, as it had Java bindings and seemed speedy and modern.&lt;br /&gt;
&lt;br /&gt;
I'm not yet done making the changes, but I did take a closer look at the size distribution of chunks in Minecraft. To do so, I used the Unix command &lt;code&gt;du -Sba /path/to/world/&lt;/code&gt; to get a listing of the size, in bytes, of each file and folder in the world directory. It looks something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/813325.js?file=du-example"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
where all of the lines ending with &lt;code&gt;".dat"&lt;/code&gt; are the data files and &lt;code&gt;./1c/1c&lt;/code&gt; and &lt;code&gt;./1c/1m&lt;/code&gt; are directories. A big giant list of all of the files and directories isn't terribly useful, which leads me to my next step...&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;All Hail Emacs!&lt;/h2&gt;&lt;br /&gt;
&lt;br /&gt;
To make things really useful, I pasted all of it into Emacs, removed all the directories from the listing with &lt;code&gt;M-x keep-lines \.dat$&lt;/code&gt;, removed the filenames with the &lt;code&gt;cua-rect&lt;/code&gt; family of rectangle-editing commands, wrapped it in an &lt;a href="http://orgmode.org"&gt;Org-mode&lt;/a&gt; table, and used Org-mode's "Babel" feature to generate and embed a &lt;a href="http://www.gnuplot.info/"&gt;gnuplot&lt;/a&gt;-generated graph in the file. Out of all of that, figuring out how to use gnuplot was the hardest part; getting it to display a histogram the way I wanted turned out to require a bit of Googling.&lt;br /&gt;
&lt;br /&gt;
But you're not interested in all that. You want to see pretty pictures! Well, without further ado, here is the graph this all produced (grouped intervals of 512 bytes):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_fMJoWMsDcZs/TU88xqZUXTI/AAAAAAAAAAk/Y76We0D1nTM/s1600/output.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="300" width="400" src="http://4.bp.blogspot.com/_fMJoWMsDcZs/TU88xqZUXTI/AAAAAAAAAAk/Y76We0D1nTM/s400/output.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
So, as you can see, the vast majority of chunks are under 4K, and most are around 2-3K. I did this all to figure out a good starting size to allocate for the byte buffer which is to hold the chunk data before it's written out. Java's &lt;code&gt;ByteArrayOutputStream&lt;/code&gt; takes an optional constructor argument to set the initial size of the backing array. It will grow automatically, but it would be nice to avoid a bunch of memory copies.&lt;br /&gt;
&lt;br /&gt;
More on my modification as I near completion.&lt;br /&gt;
&lt;br /&gt;
P.S. &lt;a href="https://gist.github.com/813325"&gt;Here&lt;/a&gt; is the Org-mode file used to generate that graph. It seems to have slightly broken GitHub, though...&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;EDIT:&lt;/strong&gt; Fixed the label on the X-axis. If one were to read it like it was written (as opposed to how I imagined that it was written in my sleep-deprived head), you might have thought that the files were 3-4 MB rather than KB. Thanks to Stiltskin on Reddit for pointing this out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-854928275306439559?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V0YryHUtb744C_Jg3B7-T9xvuoo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V0YryHUtb744C_Jg3B7-T9xvuoo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V0YryHUtb744C_Jg3B7-T9xvuoo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V0YryHUtb744C_Jg3B7-T9xvuoo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/xz8Y66pThKQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/854928275306439559/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/02/size-of-minecraft-chunk-files.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/854928275306439559?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/854928275306439559?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/xz8Y66pThKQ/size-of-minecraft-chunk-files.html" title="Size of Minecraft chunk files" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_fMJoWMsDcZs/TU88xqZUXTI/AAAAAAAAAAk/Y76We0D1nTM/s72-c/output.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2011/02/size-of-minecraft-chunk-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECRXw_fyp7ImA9Wx9VGUQ.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-4476893236275757046</id><published>2011-01-07T19:52:00.002-05:00</published><updated>2011-02-06T08:07:44.247-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-06T08:07:44.247-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="hate" /><title>Why I hate Java</title><content type="html">I ran into this fun time while trying to install the &lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt; bindings to &lt;a href="http://neo4j.org"&gt;Neo4j&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
First, I had to install Maven:&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$ sudo apt-get install maven2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
ant ant-optional antlr bsh bsh-gcj fop gcj-4.4-base gcj-4.4-jre-lib groovy ivy java-wrappers junit4
libantlr-java libasm2-java libasm3-java libavalon-framework-java libbackport-util-concurrent-java
libbatik-java libbsf-java libclassworlds-java libcommons-beanutils-java libcommons-cli-java
libcommons-codec-java libcommons-collections-java libcommons-collections3-java libcommons-configuration-java
libcommons-digester-java libcommons-httpclient-java libcommons-io-java libcommons-jxpath-java
libcommons-lang-java libcommons-logging-java libcommons-net2-java libcommons-validator-java libdoxia-java
libdoxia-sitetools-java libexcalibur-logkit-java libganymed-ssh2-java libgcj-bc libgcj-common libgcj10
libgeronimo-jms-1.1-spec-java libgnuinet-java libgnujaf-java libgnumail-java libgoogle-collections-java
libhamcrest-java libitext1-java libjaxp1.3-java libjdom1-java libjline-java libjsch-java libjtidy-java
liblog4j1.2-java libmaven-archiver-java libmaven-clean-plugin-java libmaven-compiler-plugin-java
libmaven-dependency-tree-java libmaven-file-management-java libmaven-filtering-java
libmaven-install-plugin-java libmaven-jar-plugin-java libmaven-plugin-tools-java
libmaven-reporting-impl-java libmaven-resources-plugin-java libmaven-scm-java libmaven-shade-plugin-java
libmaven-shared-io-java libmaven2-core-java libmockobjects-java libmodello-java libnekohtml-java
libnetbeans-cvsclient-java liboro-java libplexus-ant-factory-java libplexus-archiver-java
libplexus-bsh-factory-java libplexus-build-api-java libplexus-cipher-java libplexus-classworlds-java
libplexus-compiler-api-java libplexus-compiler-javac-java libplexus-compiler-manager-java
libplexus-component-api-java libplexus-container-default-java libplexus-containers-java
libplexus-digest-java libplexus-i18n-java libplexus-interactivity-api-java libplexus-interpolation-java
libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java libplexus-velocity-java libqdox-java
libregexp-java libsaxon-java libservlet2.4-java libservlet2.5-java libslf4j-java libwagon-java
libwerken.xpath-java libxalan2-java libxbean-java libxerces2-java libxml-commons-external-java
libxmlgraphics-commons-java libxpp3-java libxstream-java rhino velocity
0 upgraded, 112 newly installed, 0 to remove and 0 not upgraded.
Need to get 67.8MB of archives.
After this operation, 131MB of additional disk space will be used.&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Then, I downloaded &lt;a href="https://github.com/jawher/neo4j-scala"&gt;neo4j-scala&lt;/a&gt; and ran Maven, as it suggested:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$ mvn clean install
[INFO] Scanning for projects...
[INFO] artifact org.apache.felix:maven-bundle-plugin: checking for updates from scala-tools.org
[INFO] artifact org.apache.felix:maven-bundle-plugin: checking for updates from central
Downloading: http://repo1.maven.org/maven2/org/apache/felix/maven-bundle-plugin/2.1.0/maven-bundle-plugin-2.1.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/felix-parent/1.2.1/felix-parent-1.2.1.pom
[INFO] Unable to find resource 'org.apache.felix:felix-parent:pom:1.2.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/felix-parent/1.2.1/felix-parent-1.2.1.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/apache/5/apache-5.pom
[INFO] Unable to find resource 'org.apache:apache:pom:5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/apache/5/apache-5.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/maven-bundle-plugin/2.1.0/maven-bundle-plugin-2.1.0.jar
[INFO] Unable to find resource 'org.apache.felix:maven-bundle-plugin:maven-plugin:2.1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/maven-bundle-plugin/2.1.0/maven-bundle-plugin-2.1.0.jar

Downloading: http://scala-tools.org/repo-releases/biz/aQute/bndlib/0.0.357/bndlib-0.0.357.pom
[INFO] Unable to find resource 'biz.aQute:bndlib:pom:0.0.357' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/biz/aQute/bndlib/0.0.357/bndlib-0.0.357.pom

Downloading: http://scala-tools.org/repo-releases/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.pom
[INFO] Unable to find resource 'net.sf.kxml:kxml2:pom:2.2.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.pom

Downloading: http://scala-tools.org/repo-releases/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom
[INFO] Unable to find resource 'xmlpull:xmlpull:pom:1.1.3.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom
[INFO] Unable to find resource 'xmlpull:xmlpull:pom:1.1.3.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom
[INFO] Unable to find resource 'xmlpull:xmlpull:pom:1.1.3.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/org.apache.felix.bundlerepository/1.6.2/org.apache.felix.bundlerepository-1.6.2.pom
[INFO] Unable to find resource 'org.apache.felix:org.apache.felix.bundlerepository:pom:1.6.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.bundlerepository/1.6.2/org.apache.felix.bundlerepository-1.6.2.pom

Downloading: http://scala-tools.org/repo-releases/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.pom
[INFO] Unable to find resource 'org.osgi:org.osgi.core:pom:4.1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.pom
[INFO] Unable to find resource 'org.osgi:org.osgi.core:pom:4.1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.pom
[INFO] Unable to find resource 'org.osgi:org.osgi.core:pom:4.1.0' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.pom

Downloading: http://scala-tools.org/repo-releases/org/easymock/easymock/2.4/easymock-2.4.pom
[INFO] Unable to find resource 'org.easymock:easymock:pom:2.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/easymock/easymock/2.4/easymock-2.4.pom
[INFO] Unable to find resource 'org.easymock:easymock:pom:2.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/easymock/easymock/2.4/easymock-2.4.pom
[INFO] Unable to find resource 'org.easymock:easymock:pom:2.4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/easymock/easymock/2.4/easymock-2.4.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/org.osgi.core/1.0.0/org.osgi.core-1.0.0.pom
[INFO] Unable to find resource 'org.apache.felix:org.osgi.core:pom:1.0.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/org.osgi.core/1.0.0/org.osgi.core-1.0.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/felix/1.0.0/felix-1.0.0.pom
[INFO] Unable to find resource 'org.apache.felix:felix:pom:1.0.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/felix/1.0.0/felix-1.0.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/apache/4/apache-4.pom
[INFO] Unable to find resource 'org.apache:apache:pom:4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/apache/4/apache-4.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.pom
[INFO] Unable to find resource 'org.apache.felix:org.osgi.service.obr:pom:1.0.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/felix/felix/1.0.2/felix-1.0.2.pom
[INFO] Unable to find resource 'org.apache.felix:felix:pom:1.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/felix/1.0.2/felix-1.0.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.7/maven-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/5/maven-parent-5.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/5/maven-parent-5.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/apache/3/apache-3.pom
[INFO] Unable to find resource 'org.apache:apache:pom:3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/apache/3/apache-3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.11' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.11' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.11' in repository neo4j-public-repository (http://m2.neo4j
.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-co
ntainer-default-1.0-alpha-9-stable-1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-9-stable-1' in repository scala-to
ols.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-co
ntainer-default-1.0-alpha-9-stable-1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-9-stable-1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-9-stable-1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-containers:pom:1.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-containers:pom:1.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-containers:pom:1.0.3' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom

Downloading: http://scala-tools.org/repo-releases/junit/junit/3.8.1/junit-3.8.1.pom
[INFO] Unable to find resource 'junit:junit:pom:3.8.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/junit/junit/3.8.1/junit-3.8.1.pom
[INFO] Unable to find resource 'junit:junit:pom:3.8.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/junit/junit/3.8.1/junit-3.8.1.pom
[INFO] Unable to find resource 'junit:junit:pom:3.8.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.0.4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom

Downloading: http://scala-tools.org/repo-releases/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
[INFO] Unable to find resource 'classworlds:classworlds:pom:1.1-alpha-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
[INFO] Unable to find resource 'classworlds:classworlds:pom:1.1-alpha-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
[INFO] Unable to find resource 'classworlds:classworlds:pom:1.1-alpha-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/4/maven-parent-4.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/4/maven-parent-4.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-parent/4/maven-parent-4.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/4/maven-parent-4.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-api:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-archiver:pom:2.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-components/3/maven-shared-components-3.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-components/3/maven-shared-components-3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0/maven-project-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0/maven-project-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-project/2.0/maven-project-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0/maven-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0/maven-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven/2.0/maven-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0/maven-2.0.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-archiver:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-archiver:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-archiver:pom:1.0-alpha-7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-components:pom:1.1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-components:pom:1.1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-components:pom:1.1.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.8' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.5' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-8' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-dependency-tree:pom:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/8/maven-parent-8.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/8/maven-parent-8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.8' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.8/maven-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.8/maven-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven/2.0.8/maven-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.8' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/6/maven-parent-6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/6/maven-parent-6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-parent/6/maven-parent-6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/6/maven-parent-6.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.7/plexus-utils-1.4.7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.7/plexus-utils-1.4.7.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.7/plexus-utils-1.4.7.jar
Downloading: http://scala-tools.org/repo-releases/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.jar
Downloading: http://scala-tools.org/repo-releases/org/easymock/easymock/2.4/easymock-2.4.jar
Downloading: http://scala-tools.org/repo-releases/biz/aQute/bndlib/0.0.357/bndlib-0.0.357.jar
[INFO] Unable to find resource 'biz.aQute:bndlib:jar:0.0.357' in repository scala-tools.org (http://scala-tools.org/repo-releases)
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:jar:1.4.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
[INFO] Unable to find resource 'xmlpull:xmlpull:jar:1.1.3.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
[INFO] Unable to find resource 'org.apache.maven:maven-archiver:jar:2.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.jar
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.7/plexus-utils-1.4.7.jar
[INFO] Unable to find resource 'org.easymock:easymock:jar:2.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/easymock/easymock/2.4/easymock-2.4.jar
Downloading: http://repo1.maven.org/maven2/biz/aQute/bndlib/0.0.357/bndlib-0.0.357.jar
[INFO] Unable to find resource 'xmlpull:xmlpull:jar:1.1.3.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
[INFO] Unable to find resource 'org.easymock:easymock:jar:2.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/easymock/easymock/2.4/easymock-2.4.jar

[INFO] Unable to find resource 'org.easymock:easymock:jar:2.4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/easymock/easymock/2.4/easymock-2.4.jar
[INFO] Unable to find resource 'xmlpull:xmlpull:jar:1.1.3.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar




Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-dependency-tree:jar:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/felix/org.apache.felix.bundlerepository/1.6.2/org.apache.felix.bundlerepository-1.6.2.jar
Downloading: http://scala-tools.org/repo-releases/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.jar
[INFO] Unable to find resource 'org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.bundlerepository/1.6.2/org.apache.felix.bundlerepository-1.6.2.jar
[INFO] Unable to find resource 'org.osgi:org.osgi.core:jar:4.1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.jar
[INFO] Unable to find resource 'org.osgi:org.osgi.core:jar:4.1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.jar

Downloading: http://scala-tools.org/repo-releases/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.jar
[INFO] Unable to find resource 'net.sf.kxml:kxml2:jar:2.2.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.jar
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar


Downloading: http://scala-tools.org/repo-releases/org/apache/felix/org.osgi.core/1.0.0/org.osgi.core-1.0.0.jar
[INFO] Unable to find resource 'org.osgi:org.osgi.core:jar:4.1.0' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.jar
[INFO] Unable to find resource 'org.apache.felix:org.osgi.core:jar:1.0.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/org.osgi.core/1.0.0/org.osgi.core-1.0.0.jar



Downloading: http://scala-tools.org/repo-releases/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.jar
[INFO] Unable to find resource 'org.apache.felix:org.osgi.service.obr:jar:1.0.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.jar

[INFO] ------------------------------------------------------------------------
[INFO] Building Neo4j Scala
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-clean-plugin/2.3/maven-clean-plugin-2.3.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-clean-plugin:pom:2.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.3/maven-clean-plugin-2.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-plugins:pom:12' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/9/maven-parent-9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-clean-plugin/2.3/maven-clean-plugin-2.3.jar
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-clean-plugin:maven-plugin:2.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.3/maven-clean-plugin-2.3.jar

Downloading: http://scala-tools.org/repo-releases/org/scala-tools/maven-scala-plugin/2.12.2/maven-scala-plugin-2.12.2.pom
7K downloaded  (maven-scala-plugin-2.12.2.pom)
Downloading: http://repository.jboss.org/maven2/org/scala-tools/scala-tools-parent/1.5/scala-tools-parent-1.5.pom
[INFO] Unable to find resource 'org.scala-tools:scala-tools-parent:pom:1.5' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://scala-tools.org/repo-releases/org/scala-tools/scala-tools-parent/1.5/scala-tools-parent-1.5.pom
9K downloaded  (scala-tools-parent-1.5.pom)
Downloading: http://scala-tools.org/repo-releases/org/scala-tools/maven-scala-plugin/2.12.2/maven-scala-plugin-2.12.2.jar
71K downloaded  (maven-scala-plugin-2.12.2.jar)
[INFO] artifact org.apache.maven.plugins:maven-eclipse-plugin: checking for updates from scala-tools.org
[INFO] artifact org.apache.maven.plugins:maven-eclipse-plugin: checking for updates from central
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclipse-plugin/2.8/maven-eclipse-plugin-2.8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-plugins/17/maven-plugins-17.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-plugins:pom:17' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/17/maven-plugins-17.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/16/maven-parent-16.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:16' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/apache/7/apache-7.pom
[INFO] Unable to find resource 'org.apache:apache:pom:7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/apache/7/apache-7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-eclipse-plugin/2.8/maven-eclipse-plugin-2.8.jar
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-eclipse-plugin:maven-plugin:2.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclipse-plugin/2.8/maven-eclipse-plugin-2.8.jar

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.6/maven-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-api:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:file-management:pom:1.2.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:10' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-io:pom:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-io:pom:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-io:pom:1.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:8' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/7/maven-parent-7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/7/maven-parent-7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-parent/7/maven-parent-7.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/7/maven-parent-7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.2/maven-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.2/maven-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven/2.0.2/maven-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-alpha-6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-alpha-6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-alpha-6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon:pom:1.0-alpha-6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon:pom:1.0-alpha-6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon:pom:1.0-alpha-6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.5.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.5.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.5.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.12' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.12' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:1.0.12' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-9' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:jar:1.5.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
[INFO] Unable to find resource 'org.apache.maven.shared:file-management:jar:1.2.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar


Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-io:jar:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-io:jar:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-io:jar:1.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar

[INFO] [clean:clean {execution: default-clean}]
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-resources-plugin/2.3/maven-resources-plugin-2.3.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-resources-plugin:pom:2.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.3/maven-resources-plugin-2.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-resources-plugin/2.3/maven-resources-plugin-2.3.jar
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-resources-plugin:maven-plugin:2.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.3/maven-resources-plugin-2.3.jar

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-plugins/8/maven-plugins-8.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-plugins:pom:8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/8/maven-plugins-8.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.jar
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-compiler-plugin:maven-plugin:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.jar

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-surefire-plugin/2.4.3/maven-surefire-plugin-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-surefire-plugin:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.4.3/maven-surefire-plugin-2.4.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire/2.4.3/surefire-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire/2.4.3/surefire-2.4.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-surefire-plugin/2.4.3/maven-surefire-plugin-2.4.3.jar
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-surefire-plugin:maven-plugin:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.4.3/maven-surefire-plugin-2.4.3.jar

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-install-plugin/2.3/maven-install-plugin-2.3.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-install-plugin:pom:2.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.3/maven-install-plugin-2.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-plugins/13/maven-plugins-13.pom
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-plugins:pom:13' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/13/maven-plugins-13.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/11/maven-parent-11.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:11' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/11/maven-parent-11.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/plugins/maven-install-plugin/2.3/maven-install-plugin-2.3.jar
[INFO] Unable to find resource 'org.apache.maven.plugins:maven-install-plugin:maven-plugin:2.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.3/maven-install-plugin-2.3.jar

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-filtering:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-core:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-core:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-core:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-file/1.0-beta-2/wagon-file-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-file:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-file/1.0-beta-2/wagon-file-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-file:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-file/1.0-beta-2/wagon-file-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-file:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file/1.0-beta-2/wagon-file-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-providers:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-providers:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-providers:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-parameter-documenter:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-parameter-documenter:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-parameter-documenter:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-lightweight:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-lightweight:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-lightweight:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-shared:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-shared:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-shared:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.pom
[INFO] Unable to find resource 'jtidy:jtidy:pom:4aug2000r7-dev' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.pom
[INFO] Unable to find resource 'jtidy:jtidy:pom:4aug2000r7-dev' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.pom
[INFO] Unable to find resource 'jtidy:jtidy:pom:4aug2000r7-dev' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.pom

Downloading: http://scala-tools.org/repo-releases/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
[INFO] Unable to find resource 'xml-apis:xml-apis:pom:1.0.b2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
[INFO] Unable to find resource 'xml-apis:xml-apis:pom:1.0.b2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
[INFO] Unable to find resource 'xml-apis:xml-apis:pom:1.0.b2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-api:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-api:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-api:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-sink-api:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-sink-api:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-sink-api:pom:1.0-alpha-7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia:pom:1.0-alpha-7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-error-diagnostics:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-error-diagnostics:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-error-diagnostics:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/commons-cli/commons-cli/1.0/commons-cli-1.0.pom
[INFO] Unable to find resource 'commons-cli:commons-cli:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/commons-cli/commons-cli/1.0/commons-cli-1.0.pom
[INFO] Unable to find resource 'commons-cli:commons-cli:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/commons-cli/commons-cli/1.0/commons-cli-1.0.pom
[INFO] Unable to find resource 'commons-cli:commons-cli:pom:1.0' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh-external:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh-external:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh-external:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh-common:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh-common:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh-common:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivi
ty-api-1.0-alpha-4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interactivity-api:pom:1.0-alpha-4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interactivity-api:pom:1.0-alpha-4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interactivity-api:pom:1.0-alpha-4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-container-default:pom:1.0-alpha-7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom

Downloading: http://scala-tools.org/repo-releases/plexus/plexus-containers/1.0.2/plexus-containers-1.0.2.pom
[INFO] Unable to find resource 'plexus:plexus-containers:pom:1.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/plexus/plexus-containers/1.0.2/plexus-containers-1.0.2.pom
[INFO] Unable to find resource 'plexus:plexus-containers:pom:1.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/plexus/plexus-containers/1.0.2/plexus-containers-1.0.2.pom
[INFO] Unable to find resource 'plexus:plexus-containers:pom:1.0.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/plexus/plexus-containers/1.0.2/plexus-containers-1.0.2.pom

Downloading: http://scala-tools.org/repo-releases/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom
[INFO] Unable to find resource 'plexus:plexus-root:pom:1.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom
[INFO] Unable to find resource 'plexus:plexus-root:pom:1.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom
[INFO] Unable to find resource 'plexus:plexus-root:pom:1.0.3' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom

Downloading: http://scala-tools.org/repo-releases/plexus/plexus-utils/1.0.2/plexus-utils-1.0.2.pom
[INFO] Unable to find resource 'plexus:plexus-utils:pom:1.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/plexus/plexus-utils/1.0.2/plexus-utils-1.0.2.pom
[INFO] Unable to find resource 'plexus:plexus-utils:pom:1.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/plexus/plexus-utils/1.0.2/plexus-utils-1.0.2.pom
[INFO] Unable to find resource 'plexus:plexus-utils:pom:1.0.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/plexus/plexus-utils/1.0.2/plexus-utils-1.0.2.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-descriptor:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-descriptor:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-descriptor:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-monitor:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-monitor:pom:2.0.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
[INFO] Unable to find resource 'org.apache.maven:maven-monitor:pom:2.0.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh:pom:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh:pom:1.0-beta-2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom

Downloading: http://scala-tools.org/repo-releases/com/jcraft/jsch/0.1.27/jsch-0.1.27.pom
[INFO] Unable to find resource 'com.jcraft:jsch:pom:0.1.27' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/com/jcraft/jsch/0.1.27/jsch-0.1.27.pom
[INFO] Unable to find resource 'com.jcraft:jsch:pom:0.1.27' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/com/jcraft/jsch/0.1.27/jsch-0.1.27.pom
[INFO] Unable to find resource 'com.jcraft:jsch:pom:0.1.27' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/com/jcraft/jsch/0.1.27/jsch-0.1.27.pom

Downloading: http://scala-tools.org/repo-releases/classworlds/classworlds/1.1/classworlds-1.1.pom
[INFO] Unable to find resource 'classworlds:classworlds:pom:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/classworlds/classworlds/1.1/classworlds-1.1.pom
[INFO] Unable to find resource 'classworlds:classworlds:pom:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/classworlds/classworlds/1.1/classworlds-1.1.pom
[INFO] Unable to find resource 'classworlds:classworlds:pom:1.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/classworlds/classworlds/1.1/classworlds-1.1.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interpolation:pom:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interpolation:pom:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interpolation:pom:1.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interpolation:jar:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-filtering:jar:1.0-beta-2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interpolation:jar:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar

[INFO] Unable to find resource 'org.codehaus.plexus:plexus-interpolation:jar:1.6' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar

[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /tmp/neo4j-scala/src/main/resources
Downloading: http://scala-tools.org/repo-releases/org/scala-lang/scala-library/2.7.7/scala-library-2.7.7.pom
1K downloaded  (scala-library-2.7.7.pom)
Downloading: http://scala-tools.org/repo-releases/junit/junit/4.7/junit-4.7.pom
[INFO] Unable to find resource 'junit:junit:pom:4.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/junit/junit/4.7/junit-4.7.pom
[INFO] Unable to find resource 'junit:junit:pom:4.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/junit/junit/4.7/junit-4.7.pom

Downloading: http://scala-tools.org/repo-releases/org/scala-tools/testing/specs/1.6.1/specs-1.6.1.pom
11K downloaded  (specs-1.6.1.pom)
Downloading: http://scala-tools.org/repo-releases/org/neo4j/neo4j-kernel/1.0/neo4j-kernel-1.0.pom
[INFO] Unable to find resource 'org.neo4j:neo4j-kernel:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/neo4j/neo4j-kernel/1.0/neo4j-kernel-1.0.pom
4K downloaded  (neo4j-kernel-1.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/neo4j/parent-pom/6/parent-pom-6.pom
[INFO] Unable to find resource 'org.neo4j:parent-pom:pom:6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/neo4j/parent-pom/6/parent-pom-6.pom
5K downloaded  (parent-pom-6.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.pom
[INFO] Unable to find resource 'org.apache.geronimo.specs:geronimo-jta_1.1_spec:pom:1.1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.pom
[INFO] Unable to find resource 'org.apache.geronimo.specs:geronimo-jta_1.1_spec:pom:1.1.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/geronimo/specs/specs/1.4/specs-1.4.pom
[INFO] Unable to find resource 'org.apache.geronimo.specs:specs:pom:1.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/geronimo/specs/specs/1.4/specs-1.4.pom
[INFO] Unable to find resource 'org.apache.geronimo.specs:specs:pom:1.4' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.4/specs-1.4.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/geronimo/genesis/config/project-config/1.2/project-config-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis.config:project-config:pom:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/geronimo/genesis/config/project-config/1.2/project-config-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis.config:project-config:pom:1.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/geronimo/genesis/config/project-config/1.2/project-config-1.2.pom

Downloading: http://people.apache.org/repo/m2-incubating-repository//org/apache/geronimo/genesis/config/config/1.2/config-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis.config:config:pom:1.2' in repository apache-incubator (http://people.apache.org/repo/m2-incubating-repository/)
Downloading: http://scala-tools.org/repo-releases/org/apache/geronimo/genesis/config/config/1.2/config-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis.config:config:pom:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/geronimo/genesis/config/config/1.2/config-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis.config:config:pom:1.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/geronimo/genesis/config/config/1.2/config-1.2.pom

Downloading: http://people.apache.org/repo/m2-incubating-repository//org/apache/geronimo/genesis/genesis/1.2/genesis-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis:genesis:pom:1.2' in repository apache-incubator (http://people.apache.org/repo/m2-incubating-repository/)
Downloading: http://scala-tools.org/repo-releases/org/apache/geronimo/genesis/genesis/1.2/genesis-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis:genesis:pom:1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/geronimo/genesis/genesis/1.2/genesis-1.2.pom
[INFO] Unable to find resource 'org.apache.geronimo.genesis:genesis:pom:1.2' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/geronimo/genesis/genesis/1.2/genesis-1.2.pom

Downloading: http://scala-tools.org/repo-releases/org/neo4j/neo4j-shell/1.0/neo4j-shell-1.0.pom
[INFO] Unable to find resource 'org.neo4j:neo4j-shell:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/neo4j/neo4j-shell/1.0/neo4j-shell-1.0.pom
5K downloaded  (neo4j-shell-1.0.pom)
Downloading: http://scala-tools.org/repo-releases/jline/jline/0.9.94/jline-0.9.94.pom
[INFO] Unable to find resource 'jline:jline:pom:0.9.94' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/jline/jline/0.9.94/jline-0.9.94.pom
[INFO] Unable to find resource 'jline:jline:pom:0.9.94' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/jline/jline/0.9.94/jline-0.9.94.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar
Downloading: http://scala-tools.org/repo-releases/org/scala-lang/scala-library/2.7.7/scala-library-2.7.7.jar
Downloading: http://scala-tools.org/repo-releases/org/neo4j/neo4j-kernel/1.0/neo4j-kernel-1.0.jar
Downloading: http://scala-tools.org/repo-releases/jline/jline/0.9.94/jline-0.9.94.jar
[INFO] Unable to find resource 'org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
[INFO] Unable to find resource 'org.neo4j:neo4j-kernel:jar:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar
Downloading: http://m2.neo4j.org/org/neo4j/neo4j-kernel/1.0/neo4j-kernel-1.0.jar
[INFO] Unable to find resource 'jline:jline:jar:0.9.94' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/jline/jline/0.9.94/jline-0.9.94.jar
422K downloaded  (neo4j-kernel-1.0.jar)
Downloading: http://scala-tools.org/repo-releases/org/neo4j/neo4j-shell/1.0/neo4j-shell-1.0.jar
[INFO] Unable to find resource 'org.neo4j:neo4j-shell:jar:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/neo4j/neo4j-shell/1.0/neo4j-shell-1.0.jar
[INFO] Unable to find resource 'org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar

149K downloaded  (neo4j-shell-1.0.jar)
[INFO] Unable to find resource 'jline:jline:jar:0.9.94' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/jline/jline/0.9.94/jline-0.9.94.jar

3701K downloaded  (scala-library-2.7.7.jar)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-api:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler-api:pom:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler/1.5.3/plexus-compiler-1.5.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler:pom:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler/1.5.3/plexus-compiler-1.5.3.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler-manager:pom:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler-javac:pom:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compilers/1.5.3/plexus-compilers-1.5.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compilers:pom:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compilers/1.5.3/plexus-compilers-1.5.3.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.0.5' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:jar:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler-api:jar:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.jar

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler-manager:jar:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.jar

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-compiler-javac:jar:1.5.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.jar

[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-api:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
1K downloaded  (maven-plugin-api-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.9/maven-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven/2.0.9/maven-2.0.9.pom
17K downloaded  (maven-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
2K downloaded  (maven-project-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
1K downloaded  (maven-settings-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
2K downloaded  (maven-model-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.5.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
2K downloaded  (plexus-utils-1.5.1.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
1K downloaded  (maven-profile-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
2K downloaded  (maven-artifact-manager-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
1K downloaded  (maven-repository-metadata-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
1K downloaded  (maven-artifact-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0.9' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
1K downloaded  (maven-plugin-registry-2.0.9.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-impl:pom:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.pom
1K downloaded  (maven-reporting-impl-2.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting/2.0.4/maven-reporting-2.0.4.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting:pom:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/reporting/maven-reporting/2.0.4/maven-reporting-2.0.4.pom
700b downloaded  (maven-reporting-2.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.4/maven-2.0.4.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom
11K downloaded  (maven-2.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.4/maven-project-2.0.4.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-project/2.0.4/maven-project-2.0.4.pom
1K downloaded  (maven-project-2.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
[INFO] Unable to find resource 'commons-validator:commons-validator:pom:1.2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
8K downloaded  (commons-validator-1.2.0.pom)
Downloading: http://scala-tools.org/repo-releases/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
[INFO] Unable to find resource 'commons-beanutils:commons-beanutils:pom:1.7.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
357b downloaded  (commons-beanutils-1.7.0.pom)
Downloading: http://scala-tools.org/repo-releases/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
[INFO] Unable to find resource 'commons-logging:commons-logging:pom:1.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
866b downloaded  (commons-logging-1.0.3.pom)
Downloading: http://scala-tools.org/repo-releases/commons-digester/commons-digester/1.6/commons-digester-1.6.pom
[INFO] Unable to find resource 'commons-digester:commons-digester:pom:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-digester/commons-digester/1.6/commons-digester-1.6.pom
974b downloaded  (commons-digester-1.6.pom)
Downloading: http://scala-tools.org/repo-releases/commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
[INFO] Unable to find resource 'commons-beanutils:commons-beanutils:pom:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
2K downloaded  (commons-beanutils-1.6.pom)
Downloading: http://scala-tools.org/repo-releases/commons-logging/commons-logging/1.0/commons-logging-1.0.pom
[INFO] Unable to find resource 'commons-logging:commons-logging:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-logging/commons-logging/1.0/commons-logging-1.0.pom
163b downloaded  (commons-logging-1.0.pom)
Downloading: http://scala-tools.org/repo-releases/commons-collections/commons-collections/2.1/commons-collections-2.1.pom
[INFO] Unable to find resource 'commons-collections:commons-collections:pom:2.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-collections/commons-collections/2.1/commons-collections-2.1.pom
3K downloaded  (commons-collections-2.1.pom)
Downloading: http://scala-tools.org/repo-releases/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
[INFO] Unable to find resource 'commons-logging:commons-logging:pom:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
5K downloaded  (commons-logging-1.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/oro/oro/2.0.8/oro-2.0.8.pom
[INFO] Unable to find resource 'oro:oro:pom:2.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/oro/oro/2.0.8/oro-2.0.8.pom
140b downloaded  (oro-2.0.8.pom)
Downloading: http://scala-tools.org/repo-releases/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
[INFO] Unable to find resource 'xml-apis:xml-apis:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
346b downloaded  (xml-apis-2.0.2.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-core:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.pom
1K downloaded  (doxia-core-1.0-alpha-7.pom)
Downloading: http://scala-tools.org/repo-releases/oro/oro/2.0.7/oro-2.0.7.pom
[INFO] Unable to find resource 'oro:oro:pom:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/oro/oro/2.0.7/oro-2.0.7.pom
141b downloaded  (oro-2.0.7.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-api/2.0.4/maven-plugin-api-2.0.4.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-api:pom:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-plugin-api/2.0.4/maven-plugin-api-2.0.4.pom
643b downloaded  (maven-plugin-api-2.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-api:pom:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.pom
902b downloaded  (maven-reporting-api-2.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-7/doxia-site-renderer-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-site-renderer:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-7/doxia-site-renderer-1.0-alpha-7.pom
1K downloaded  (doxia-site-renderer-1.0-alpha-7.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-i18n/1.0-beta-6/plexus-i18n-1.0-beta-6.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-i18n:pom:1.0-beta-6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-i18n/1.0-beta-6/plexus-i18n-1.0-beta-6.pom
771b downloaded  (plexus-i18n-1.0-beta-6.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-components:pom:1.1.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom
2K downloaded  (plexus-components-1.1.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-velocity/1.1.2/plexus-velocity-1.1.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-velocity:pom:1.1.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-velocity/1.1.2/plexus-velocity-1.1.2.pom
7K downloaded  (plexus-velocity-1.1.2.pom)
Downloading: http://scala-tools.org/repo-releases/commons-collections/commons-collections/2.0/commons-collections-2.0.pom
[INFO] Unable to find resource 'commons-collections:commons-collections:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-collections/commons-collections/2.0/commons-collections-2.0.pom
171b downloaded  (commons-collections-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/commons-logging/commons-logging-api/1.0.4/commons-logging-api-1.0.4.pom
[INFO] Unable to find resource 'commons-logging:commons-logging-api:pom:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-logging/commons-logging-api/1.0.4/commons-logging-api-1.0.4.pom
168b downloaded  (commons-logging-api-1.0.4.pom)
Downloading: http://scala-tools.org/repo-releases/velocity/velocity/1.4/velocity-1.4.pom
[INFO] Unable to find resource 'velocity:velocity:pom:1.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/velocity/velocity/1.4/velocity-1.4.pom
2K downloaded  (velocity-1.4.pom)
Downloading: http://scala-tools.org/repo-releases/velocity/velocity-dep/1.4/velocity-dep-1.4.pom
[INFO] Unable to find resource 'velocity:velocity-dep:pom:1.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/velocity/velocity-dep/1.4/velocity-dep-1.4.pom
1K downloaded  (velocity-dep-1.4.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-7/doxia-decoration-model-1.0-alpha-7.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-decoration-model:pom:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-7/doxia-decoration-model-1.0-alpha-7.pom
1K downloaded  (doxia-decoration-model-1.0-alpha-7.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-site-renderer:pom:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.pom
1K downloaded  (doxia-site-renderer-1.0-alpha-8.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia/1.0-alpha-8/doxia-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia:pom:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia/1.0-alpha-8/doxia-1.0-alpha-8.pom
2K downloaded  (doxia-1.0-alpha-8.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-parent/1/maven-parent-1.pom
[INFO] Unable to find resource 'org.apache.maven:maven-parent:pom:1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-parent/1/maven-parent-1.pom
6K downloaded  (maven-parent-1.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/apache/1/apache-1.pom
[INFO] Unable to find resource 'org.apache:apache:pom:1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/apache/1/apache-1.pom
3K downloaded  (apache-1.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-core/1.0-alpha-8/doxia-core-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-core:pom:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-core/1.0-alpha-8/doxia-core-1.0-alpha-8.pom
1K downloaded  (doxia-core-1.0-alpha-8.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-velocity:pom:1.1.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom
976b downloaded  (plexus-velocity-1.1.3.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-components/1.1.5/plexus-components-1.1.5.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-components:pom:1.1.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-components/1.1.5/plexus-components-1.1.5.pom
2K downloaded  (plexus-components-1.1.5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.pom
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-decoration-model:pom:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.pom
1K downloaded  (doxia-decoration-model-1.0-alpha-8.pom)
Downloading: http://scala-tools.org/repo-releases/jline/jline/0.9.93/jline-0.9.93.pom
[INFO] Unable to find resource 'jline:jline:pom:0.9.93' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/jline/jline/0.9.93/jline-0.9.93.pom
[INFO] Unable to find resource 'jline:jline:pom:0.9.93' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/jline/jline/0.9.93/jline-0.9.93.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-dependency-analyzer/1.1/maven-dependency-analyzer-1.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-dependency-analyzer:pom:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-dependency-analyzer/1.1/maven-dependency-analyzer-1.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-dependency-analyzer:pom:1.1' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-dependency-analyzer/1.1/maven-dependency-analyzer-1.1.pom

Downloading: http://scala-tools.org/repo-releases/asm/asm/3.0/asm-3.0.pom
[INFO] Unable to find resource 'asm:asm:pom:3.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/asm/asm/3.0/asm-3.0.pom
360b downloaded  (asm-3.0.pom)
Downloading: http://scala-tools.org/repo-releases/asm/asm-parent/3.0/asm-parent-3.0.pom
[INFO] Unable to find resource 'asm:asm-parent:pom:3.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/asm/asm-parent/3.0/asm-parent-3.0.pom
2K downloaded  (asm-parent-3.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
[INFO] Unable to find resource 'org.apache.maven:maven-project:pom:2.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
1K downloaded  (maven-project-2.0.5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven/2.0.5/maven-2.0.5.pom
[INFO] Unable to find resource 'org.apache.maven:maven:pom:2.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom
5K downloaded  (maven-2.0.5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
2K downloaded  (maven-model-2.0.5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
727b downloaded  (maven-artifact-2.0.5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-common-artifact-filters:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom
1K downloaded  (maven-common-artifact-filters-1.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact:pom:2.0.8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
1K downloaded  (maven-artifact-2.0.8.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom
[INFO] Unable to find resource 'org.apache.maven.shared:maven-plugin-testing-harness:pom:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom
6K downloaded  (maven-plugin-testing-harness-1.1.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom

[INFO] Unable to find resource 'org.apache.maven.shared:maven-shared-components:pom:7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom
2K downloaded  (maven-shared-components-7.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-core/2.0/maven-core-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-core:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-core/2.0/maven-core-2.0.pom
5K downloaded  (maven-core-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-settings:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom
1K downloaded  (maven-settings-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-file:pom:1.0-alpha-5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.pom
5K downloaded  (wagon-file-1.0-alpha-5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-provider-api:pom:1.0-alpha-5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.pom
4K downloaded  (wagon-provider-api-1.0-alpha-5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-parameter-documenter:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom
1K downloaded  (maven-plugin-parameter-documenter-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-http-lightweight:pom:1.0-alpha-5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.pom
5K downloaded  (wagon-http-lightweight-1.0-alpha-5.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-api:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom
1K downloaded  (maven-reporting-api-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom
504b downloaded  (maven-reporting-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-profile:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom
1K downloaded  (maven-profile-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-model/2.0/maven-model-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-model:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom
2K downloaded  (maven-model-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom
1K downloaded  (maven-repository-metadata-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-error-diagnostics:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom
812b downloaded  (maven-error-diagnostics-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-registry:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom
1K downloaded  (maven-plugin-registry-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-plugin-descriptor:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom
1K downloaded  (maven-plugin-descriptor-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-artifact-manager:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom
1K downloaded  (maven-artifact-manager-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-monitor:pom:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom
400b downloaded  (maven-monitor-2.0.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.pom
[INFO] Unable to find resource 'org.apache.maven.wagon:wagon-ssh:pom:1.0-alpha-5' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.pom
6K downloaded  (wagon-ssh-1.0-alpha-5.pom)
Downloading: http://scala-tools.org/repo-releases/com/jcraft/jsch/0.1.23/jsch-0.1.23.pom
[INFO] Unable to find resource 'com.jcraft:jsch:pom:0.1.23' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/com/jcraft/jsch/0.1.23/jsch-0.1.23.pom
485b downloaded  (jsch-0.1.23.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.4.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
1K downloaded  (plexus-utils-1.4.2.pom)
Downloading: http://scala-tools.org/repo-releases/org/apache/commons/commons-exec/1.0/commons-exec-1.0.pom
[INFO] Unable to find resource 'org.apache.commons:commons-exec:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/commons/commons-exec/1.0/commons-exec-1.0.pom
[INFO] Unable to find resource 'org.apache.commons:commons-exec:pom:1.0' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/commons/commons-exec/1.0/commons-exec-1.0.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/commons/commons-parent/11/commons-parent-11.pom
[INFO] Unable to find resource 'org.apache.commons:commons-parent:pom:11' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/commons/commons-parent/11/commons-parent-11.pom
230b downloaded  (commons-parent-11.pom)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.5.15' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:pom:1.5.15' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:2.0.2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus:pom:2.0.2' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom

Downloading: http://scala-tools.org/repo-releases/oro/oro/2.0.7/oro-2.0.7.jar
Downloading: http://scala-tools.org/repo-releases/commons-digester/commons-digester/1.6/commons-digester-1.6.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.jar
Downloading: http://scala-tools.org/repo-releases/junit/junit/3.8.1/junit-3.8.1.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/commons/commons-exec/1.0/commons-exec-1.0.jar
[INFO] Unable to find resource 'oro:oro:jar:2.0.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/oro/oro/2.0.7/oro-2.0.7.jar
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-core:jar:1.0-alpha-7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.jar
[INFO] Unable to find resource 'commons-digester:commons-digester:jar:1.6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-digester/commons-digester/1.6/commons-digester-1.6.jar
[INFO] Unable to find resource 'junit:junit:jar:3.8.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar
[INFO] Unable to find resource 'org.apache.commons:commons-exec:jar:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/commons/commons-exec/1.0/commons-exec-1.0.jar
[INFO] Unable to find resource 'org.apache.commons:commons-exec:jar:1.0' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/commons/commons-exec/1.0/commons-exec-1.0.jar

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.jar
63K downloaded  (oro-2.0.7.jar)
[INFO] Unable to find resource 'org.apache.maven.reporting:maven-reporting-impl:jar:2.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.jar
Downloading: http://scala-tools.org/repo-releases/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
[INFO] Unable to find resource 'commons-validator:commons-validator:jar:1.2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
164K downloaded  (commons-digester-1.6.jar)
118K downloaded  (junit-3.8.1.jar)
13K downloaded  (maven-reporting-impl-2.0.4.jar)
225K downloaded  (doxia-core-1.0-alpha-7.jar)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
Downloading: http://scala-tools.org/repo-releases/jline/jline/0.9.93/jline-0.9.93.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-dependency-analyzer/1.1/maven-dependency-analyzer-1.1.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:jar:1.5.15' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
Downloading: http://scala-tools.org/repo-releases/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
[INFO] Unable to find resource 'jline:jline:jar:0.9.93' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/jline/jline/0.9.93/jline-0.9.93.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-dependency-analyzer:jar:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-dependency-analyzer/1.1/maven-dependency-analyzer-1.1.jar
[INFO] Unable to find resource 'commons-logging:commons-logging:jar:1.0.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:jar:1.5.15' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
[INFO] Unable to find resource 'jline:jline:jar:0.9.93' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/jline/jline/0.9.93/jline-0.9.93.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-dependency-analyzer:jar:1.1' in repository jboss.releases (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-dependency-analyzer/1.1/maven-dependency-analyzer-1.1.jar
88K downloaded  (commons-validator-1.2.0.jar)
Downloading: http://scala-tools.org/repo-releases/velocity/velocity/1.4/velocity-1.4.jar
37K downloaded  (commons-logging-1.0.4.jar)
[INFO] Unable to find resource 'velocity:velocity:jar:1.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/velocity/velocity/1.4/velocity-1.4.jar

Downloading: http://scala-tools.org/repo-releases/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar

[INFO] Unable to find resource 'commons-beanutils:commons-beanutils:jar:1.7.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
Downloading: http://scala-tools.org/repo-releases/asm/asm/3.0/asm-3.0.jar
Downloading: http://scala-tools.org/repo-releases/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
[INFO] Unable to find resource 'asm:asm:jar:3.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/asm/asm/3.0/asm-3.0.jar

Downloading: http://scala-tools.org/repo-releases/commons-collections/commons-collections/2.0/commons-collections-2.0.jar
[INFO] Unable to find resource 'xml-apis:xml-apis:jar:1.0.b2' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
[INFO] Unable to find resource 'commons-collections:commons-collections:jar:2.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/commons-collections/commons-collections/2.0/commons-collections-2.0.jar
41K downloaded  (asm-3.0.jar)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.jar
184K downloaded  (commons-beanutils-1.7.0.jar)
352K downloaded  (velocity-1.4.jar)
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.jar
106K downloaded  (xml-apis-1.0.b2.jar)
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-i18n/1.0-beta-6/plexus-i18n-1.0-beta-6.jar
88K downloaded  (commons-collections-2.0.jar)
Downloading: http://scala-tools.org/repo-releases/velocity/velocity-dep/1.4/velocity-dep-1.4.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-i18n:jar:1.0-beta-6' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-i18n/1.0-beta-6/plexus-i18n-1.0-beta-6.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar
[INFO] Unable to find resource 'velocity:velocity-dep:jar:1.4' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/velocity/velocity-dep/1.4/velocity-dep-1.4.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-common-artifact-filters:jar:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar
33K downloaded  (doxia-site-renderer-1.0-alpha-8.jar)
11K downloaded  (plexus-i18n-1.0-beta-6.jar)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.jar
[INFO] Unable to find resource 'org.apache.maven.doxia:doxia-decoration-model:jar:1.0-alpha-8' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.jar
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.jar
26K downloaded  (maven-common-artifact-filters-1.0.jar)
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-velocity:jar:1.1.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar
[INFO] Unable to find resource 'org.apache.maven.shared:maven-plugin-testing-harness:jar:1.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar
7K downloaded  (plexus-velocity-1.1.3.jar)
39K downloaded  (doxia-decoration-model-1.0-alpha-8.jar)
31K downloaded  (maven-plugin-testing-harness-1.1.jar)
505K downloaded  (velocity-dep-1.4.jar)
[INFO] [scala:compile {execution: default}]
[INFO] Checking for multiple versions of scala
[INFO] includes = [**/*.scala,**/*.java,]
[INFO] excludes = []
[INFO] Compiling 1 source files to /tmp/neo4j-scala/target/classes
Downloading: http://scala-tools.org/repo-releases/org/scala-lang/scala-compiler/2.7.7/scala-compiler-2.7.7.jar
6210K downloaded  (scala-compiler-2.7.7.jar)
Downloading: http://scala-tools.org/repo-releases/org/scala-lang/scala-compiler/2.7.7/scala-compiler-2.7.7.pom
1K downloaded  (scala-compiler-2.7.7.pom)
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /tmp/neo4j-scala/src/test/resources
Downloading: http://scala-tools.org/repo-releases/org/scala-tools/testing/specs/1.6.1/specs-1.6.1.jar
Downloading: http://scala-tools.org/repo-releases/junit/junit/4.7/junit-4.7.jar
[INFO] Unable to find resource 'junit:junit:jar:4.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/junit/junit/4.7/junit-4.7.jar
[INFO] Unable to find resource 'junit:junit:jar:4.7' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/junit/junit/4.7/junit-4.7.jar

2545K downloaded  (specs-1.6.1.jar)
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [scala:testCompile {execution: default}]
[INFO] Checking for multiple versions of scala
[INFO] includes = [**/*.scala,**/*.java,]
[INFO] excludes = []
[INFO] Compiling 1 source files to /tmp/neo4j-scala/target/test-classes
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-booter/2.4.3/surefire-booter-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-booter:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-booter/2.4.3/surefire-booter-2.4.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-api:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-api:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-api:pom:2.4.3' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
[INFO] Unable to find resource 'org.apache.maven:maven-toolchain:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-booter/2.4.3/surefire-booter-2.4.3.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-utils:jar:1.5.1' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-booter:jar:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-booter/2.4.3/surefire-booter-2.4.3.jar


Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.jar
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-api:jar:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.jar
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-api:jar:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://m2.neo4j.org/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.jar
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-api:jar:2.4.3' in repository neo4j-public-repository (http://m2.neo4j.org)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-api/2.4.3/surefire-api-2.4.3.jar

[INFO] [surefire:test {execution: default-test}]
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-junit4/2.4.3/surefire-junit4-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-junit4:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-junit4/2.4.3/surefire-junit4-2.4.3.pom

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-providers/2.4.3/surefire-providers-2.4.3.pom
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-providers:pom:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-providers/2.4.3/surefire-providers-2.4.3.pom

Downloading: http://scala-tools.org/repo-releases/junit/junit/4.0/junit-4.0.pom
[INFO] Unable to find resource 'junit:junit:pom:4.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/junit/junit/4.0/junit-4.0.pom

Downloading: http://scala-tools.org/repo-releases/junit/junit/4.0/junit-4.0.jar
Downloading: http://scala-tools.org/repo-releases/org/apache/maven/surefire/surefire-junit4/2.4.3/surefire-junit4-2.4.3.jar
[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-junit4:jar:2.4.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
[INFO] Unable to find resource 'junit:junit:jar:4.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-junit4/2.4.3/surefire-junit4-2.4.3.jar
Downloading: http://repo1.maven.org/maven2/junit/junit/4.0/junit-4.0.jar


[INFO] Surefire report directory: /tmp/neo4j-scala/target/surefire-reports

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.neo4j.scala.Neo4jWrapperSpecTest
Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.363 sec

Results :

Tests run: 13, Failures: 0, Errors: 0, Skipped: 0

[INFO] [bundle:bundle {execution: default-bundle}]
Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-digest:pom:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-components:pom:1.1.7' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom

Downloading: http://scala-tools.org/repo-releases/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.jar
[INFO] Unable to find resource 'org.codehaus.plexus:plexus-digest:jar:1.0' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.jar

[INFO] [install:install {execution: default-install}]
[INFO] Installing /tmp/neo4j-scala/target/neo4j-scala-0.9.9-SNAPSHOT.jar to /home/haxney/.m2/repository/org/neo4j/neo4j-scala/0.9.9-SNAPSHOT/neo4j-scala-0.9.9-SNAPSHOT.jar
[INFO] [bundle:install {execution: default-install}]
[INFO] Writing OBR metadata
[INFO] Installing org/neo4j/neo4j-scala/0.9.9-SNAPSHOT/neo4j-scala-0.9.9-SNAPSHOT.jar
[INFO] Writing OBR metadata
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 minutes 1 second
[INFO] Finished at: Fri Jan 07 19:49:05 EST 2011
[INFO] Final Memory: 22M/164M
[INFO] ------------------------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Mind you, I already had Scala installed and working, Neo4j installed and working, and Maven installed and working. So why in the hell did it take 7 minutes to compile 3KB of Java? People wonder why Python or PHP is more appealing...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-4476893236275757046?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GD3v6i9l4vV5yHFcjntXVth7uPk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GD3v6i9l4vV5yHFcjntXVth7uPk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GD3v6i9l4vV5yHFcjntXVth7uPk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GD3v6i9l4vV5yHFcjntXVth7uPk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/HdOomoGJeZQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/4476893236275757046/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2011/01/why-i-hate-java.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/4476893236275757046?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/4476893236275757046?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/HdOomoGJeZQ/why-i-hate-java.html" title="Why I hate Java" /><author><name>Daniel Hackney</name><uri>https://profiles.google.com/114139496531318962673</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-wADb4DtR17g/AAAAAAAAAAI/AAAAAAAAAGY/6i80aceZzbc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2011/01/why-i-hate-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4BRHk_fSp7ImA9Wx5XFEw.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-2281483295242213157</id><published>2010-09-13T19:01:00.002-04:00</published><updated>2010-09-13T19:02:35.745-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-13T19:02:35.745-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="org" /><category scheme="http://www.blogger.com/atom/ns#" term="mode" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><title>Test of org-googlecl</title><content type="html">&lt;p&gt;I heard about this great project called &lt;a href="http://github.com/rileyrg/org-googlecl"&gt;Org-GoogleCL&lt;/a&gt;, which allows for publishing of blog posts to Google's Blogger from within Emacs' &lt;a href="http://orgmode.org/"&gt;Org-Mode&lt;/a&gt;. This is a test of that library.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Hmm, there seem to be some issues with it not posting the full thing. I'll have to dive into the code at some point&amp;hellip;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Edit: Oh, looks like it is working now. Still are some problems with filling paragraphs, though.&lt;br /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-2281483295242213157?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xr_54hg925kn3JLMpdbYar5Nro4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xr_54hg925kn3JLMpdbYar5Nro4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xr_54hg925kn3JLMpdbYar5Nro4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xr_54hg925kn3JLMpdbYar5Nro4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/mkOrXp_heJI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/2281483295242213157/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/09/test-of-org-googlecl_4065.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/2281483295242213157?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/2281483295242213157?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/mkOrXp_heJI/test-of-org-googlecl_4065.html" title="Test of org-googlecl" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.haxney.org/2010/09/test-of-org-googlecl_4065.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GQXg9cCp7ImA9Wx9VGUQ.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-5894868760733668417</id><published>2010-08-11T12:52:00.001-04:00</published><updated>2011-02-06T08:12:00.668-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-06T08:12:00.668-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="brainstorm" /><category scheme="http://www.blogger.com/atom/ns#" term="software" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="concurrency" /><title>On the value of knowing the lower levels</title><content type="html">While digging around some of the &lt;a href="http://wiki.python.org/moin/PythonSpeed/PerformanceTips"&gt;Python documentation&lt;/a&gt; (read: procrastinating), I stumbled across &lt;a href="http://wiki.python.org/moin/PythonSpeed/PerformanceTips#PythonisnotC"&gt;this section&lt;/a&gt; comparing Python performance to C in some very simple and contrived "benchmarks." The point of the section was that Python is not C, and you should be careful when trying to apply knowledge of C to Python. On a simple test of adding &lt;code&gt;i&lt;/code&gt; to itself 10 million times, Python was about 50 times slower than C (which isn't really surprising, given that the C code just executes a series of single assembly &lt;code&gt;addl&lt;/code&gt; instructions).&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
But this isn't about C vs Python (since those trade-offs are obvious, well-known, and boring in 2010), but about C vs... well, C. Taking a look at the code, I saw this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=original.c"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
I know what you're thinking, "Great, it adds 47 to itself to get 94 500,000,000 times in a row. This is so fascinating, only a dissertation by Lady GaGa on the readability of her poker face could be more laden with philosophical insights and epiphanies of the greater meaning of the cosmos." By itself it isn't really much of anything.&lt;br /&gt;
&lt;br /&gt;
However, can we make that C version even faster? One of the immediate problem's you'll hit with any optimization from GCC is that it quickly zaps the loop right out of existence (since it can prove that removing it has no external impact on the application). I simplified the program a bit to remove all that extra verbosity:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=memory.c"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
Ah, much better! From my old C days, I remembered the good old &lt;code&gt;register&lt;/code&gt; keyword could speed things up on some occasions. Like so many things C, the &lt;code&gt;register&lt;/code&gt; keyword means little more than, "hey GCC, if you're not too busy or tired, I'd really like this variable to sit in a register, rather than memory. Oh, you don't feel like it right now? That's fine, registers are silly anyway, forget I ever brought it up. What's that? Why yes, of course I'll get off your lawn." But for old times' sake, I chucked it in there to get this radically-different piece of code:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=register.c"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
For shits and giggles, I benchmarked the two head-to-head and wound up with this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=benchmarks.txt"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
Yes, you read that right: just over 2 seconds for the non-registered version and around 0.3 seconds for the register-beggar. Running these each not nearly enough times to achieve statistical significance, I got pretty stable numbers, so it's not just a fluke.&lt;br /&gt;
&lt;br /&gt;
What is really going on here? To get a better idea, we have to dive down into the actual assembly output of GCC. Luckily, by slapping a little &lt;code&gt;-S&lt;/code&gt; on the compiler options, GCC dumps the assembly version of each program. Here is the "memory-based" version:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=memory.s"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
And here is the "registerized" version:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=register.s"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
To get a clearer idea of the differences, here is a diff between the two assembly outputs:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/519139.js?file=assembly.diff"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
changing those five(six in the register version) little instructions seem to cause a nearly ten-fold increase in speed, so what is going on?&lt;br /&gt;
&lt;br /&gt;
First off, let me say that I am no 30-year veteran of x86 programming (or even a 3-year vet), so I'm almost certainly going to get some of the details wrong, but the general gist of things remains the same.&lt;br /&gt;
&lt;br /&gt;
It turns out that really the only instructions that matter are those immediately after the labels &lt;code&gt;.L2&lt;/code&gt; and &lt;code&gt;.L3&lt;/code&gt;. These (along with the &lt;code&gt;jle .L3&lt;/code&gt;) are the only instructions being run within the loop (including the loop guard). The loop begins when the program jumps to label &lt;code&gt;.L2&lt;/code&gt;. From there, it compares the loop counter (&lt;code&gt;-4(%ebp)&lt;/code&gt;) with 499,999,999 (one less than the upper bound of the loop) and jumps back to &lt;code&gt;.L3&lt;/code&gt; if the loop counter is smaller. We then add 1 to the loop counter and continue on our way.&lt;br /&gt;
&lt;br /&gt;
But wait, why does the memory version take so much longer? Notice that the register version uses &lt;code&gt;-4(%ebp)&lt;/code&gt; for both the &lt;code&gt;addl&lt;/code&gt; and &lt;code&gt;cmpl&lt;/code&gt; instructions, whereas the register version simply uses &lt;code&gt;%ebx&lt;/code&gt;. It may not look like much, but what is going on there is a memory access (to a variable on the stack) in the memory version and a direct register access in the register version. We have a loop with two memory reads and a single write (since &lt;code&gt;addl&lt;/code&gt; has to read the memory location, add 1 to that value, and then write it back out), and this cuts performance by a factor of 10!&lt;br /&gt;
&lt;br /&gt;
One of the big things they drove home in the multiprocessor synchronization course I took was that how nicely you play along with the memory hierarchy has huge implications for performance. This is doubly true when you're talking about multiprocessor contention over a lock or shared memory where the various processors could be invalidating each others' caches if you're not careful, causing heavy cache-coherency traffic.&lt;br /&gt;
&lt;br /&gt;
Long story short, these impossibly low-level details can add up to make a huge difference, especially if you're paying for them hundreds of millions of times!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-5894868760733668417?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZAdt8Y30zIulKp3uBltFLBm5zhg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZAdt8Y30zIulKp3uBltFLBm5zhg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZAdt8Y30zIulKp3uBltFLBm5zhg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZAdt8Y30zIulKp3uBltFLBm5zhg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/NTJeOg7jBgA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/5894868760733668417/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/08/on-value-of-knowing-lower-levels.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/5894868760733668417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/5894868760733668417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/NTJeOg7jBgA/on-value-of-knowing-lower-levels.html" title="On the value of knowing the lower levels" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.haxney.org/2010/08/on-value-of-knowing-lower-levels.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMFQHsyeyp7ImA9Wx5TFEk.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-6623770191863664955</id><published>2010-07-29T19:50:00.000-04:00</published><updated>2010-07-29T19:50:11.593-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-29T19:50:11.593-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="thinking" /><category scheme="http://www.blogger.com/atom/ns#" term="race" /><title>On cluelessness and racial self-identification</title><content type="html">This was a response to Eric Raymond's &lt;a href="http://esr.ibiblio.org/?p=2404"&gt;recent blog post&lt;/a&gt; about "the perils of ethnic identification" and why his racial identity isn't a big deal to him. It is an interesting article in its own right, but my response was prompted by a comment made by a "William O. B'Livion", in which he said:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;So I was born to a couple of college kids at a midwest school, put up for adoption, raised by a father who’s parents were Balkan/Mediterranean immigrants, and mother who's parents were Mediterranean. Raised in a different Mid-west college melting pot (seriously melting pot. &lt;em&gt;I was a teenager before I realized that other people judged someone by the color of their skin&lt;/em&gt;) and have NO cultural affinity other than "American".&lt;/blockquote&gt;&lt;br /&gt;
(emphasis mine)&lt;br /&gt;
&lt;br /&gt;
This reminded me of a similar event from my life so I wrote the following:&lt;br /&gt;
&lt;br /&gt;
Glad I wasn't the only one blissfully unaware of widespread intolerance!&lt;br /&gt;
&lt;br /&gt;
My dad's an African-American descendant of former slaves, though I don't know the story any further back than his parents; never bothered to ask. My mom's 3rd (or 4th? I dunno) generation Polish or Lithuanian Jew, and I was raised 99% secular atheist, 1% Quaker in the suburbs of Philadelphia. I was pretty ignorant of religious denominations, histories, and traditional rivalries outside of having a vague sense that Christianity and Judaism shared part of the bible. It wasn't until 9th grade, when I saw the movie "&lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/School_Ties"&gt;School Ties&lt;/a&gt;" that the idea of discrimination against Jews (outside of the Holocaust, obviously) ever occurred to me. From my perspective, Judaism and Christianity were 90% identical, and I was completely confused as to why the kids at the new school would care at all about a kid being Jewish.&lt;br /&gt;
&lt;br /&gt;
Perhaps semi-relatedly, I have always considered it a point of pride that I'm not much of a "typical" anything. Through school, I wrestled, programmed, sang, acted, played soccer, and spent hours at a time playing computer games. I liked the fact that I wasn't the typical black kid, or Jew, or nerd, or gamer, or jock, or anything. It's the things I've done during my life which define me, not who or what my long-dead ancestors were or did.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-6623770191863664955?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZxtoZ_3f4kyfCRUy0QHY-aNJZok/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZxtoZ_3f4kyfCRUy0QHY-aNJZok/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZxtoZ_3f4kyfCRUy0QHY-aNJZok/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZxtoZ_3f4kyfCRUy0QHY-aNJZok/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/tOQFwmHHK74" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/6623770191863664955/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/07/on-cluelessness-and-racial-self.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6623770191863664955?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6623770191863664955?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/tOQFwmHHK74/on-cluelessness-and-racial-self.html" title="On cluelessness and racial self-identification" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/07/on-cluelessness-and-racial-self.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4ERn09cCp7ImA9WxFaGUQ.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-701996173967580329</id><published>2010-07-24T13:51:00.000-04:00</published><updated>2010-07-24T13:51:47.368-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-24T13:51:47.368-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="droid" /><category scheme="http://www.blogger.com/atom/ns#" term="benchmarks" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><category scheme="http://www.blogger.com/atom/ns#" term="browser" /><title>FroYo on the Droid, a Browser Benchmark Update</title><content type="html">Yesterday I rooted my Droid to install the "FRG01" leaked version of Android 2.2 (FroYo) for my Droid. I figured I'd run the SunSpider browser benchmark again to see what (if anything) had changed as far as the browser went. I knew that there were supposed to be speed improvements in FroYo, both to the underlying Android system and also with the browser specifically, so I figured I'd put the fancy new JIT to the test.&lt;br /&gt;
&lt;br /&gt;
If you remember from the &lt;a href="http://www.haxney.org/2010/04/great-smartphonepad-shootout.html"&gt;last test&lt;/a&gt; the Droid got a total of 22264.3ms. With the newly-installed FroYo browser, that time dropped to 11520.6ms. Yes, the browser on the newest release is almost exactly twice as fast as it used to be. Behold the power of the JIT!&lt;br /&gt;
&lt;br /&gt;
Here is an updated spreadsheet with the new Droid versus the old Droid browser results:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width='500' height='300' frameborder='0' src='https://spreadsheets.google.com/pub?key=0ArP0BYejFuyVdHp2NzdYbkhKWlFUM09xaDV6RVFQREE&amp;hl=en&amp;single=true&amp;gid=1&amp;output=html&amp;widget=true'&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, Eclair is about half the speed (twice the time) of FroYo, and this is running on the exact same phone. I haven't overclocked the phone or anything, so this should be a pretty representative test. This also means that a Droid with FroYo does JavaScript at almost exactly the same speed as an iPad (at least when I tested the iPad). Not bad, little Droid!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-701996173967580329?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A9o_0yhNiTVfBbSe_v-qx5mm6Vw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A9o_0yhNiTVfBbSe_v-qx5mm6Vw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A9o_0yhNiTVfBbSe_v-qx5mm6Vw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A9o_0yhNiTVfBbSe_v-qx5mm6Vw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/8RMTm3PTqNk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/701996173967580329/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/07/froyo-on-droid-browser-benchmark-update.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/701996173967580329?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/701996173967580329?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/8RMTm3PTqNk/froyo-on-droid-browser-benchmark-update.html" title="FroYo on the Droid, a Browser Benchmark Update" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/07/froyo-on-droid-browser-benchmark-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMRH46eyp7ImA9WxFSEUs.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-1472255823485955068</id><published>2010-04-13T10:23:00.000-04:00</published><updated>2010-04-13T10:23:05.013-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-13T10:23:05.013-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="droid" /><category scheme="http://www.blogger.com/atom/ns#" term="benchmarks" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><category scheme="http://www.blogger.com/atom/ns#" term="browser" /><title>The great smartphone/pad shootout!</title><content type="html">While waiting for my Droid to be serviced at the Verizon store, I went down to the Apple store in the mall to check out the much-ballyhooed iPad. I'll save my full reactions for later (though it's not anything you haven't heard before) to bring you a comparison of browser speed between the iPad and Droid.&lt;br /&gt;
&lt;br /&gt;
This is not a terribly scientific study, but it should give you a rough idea of who each device performs in a roughly average environment. I ran SunSpider 0.9.1 on each device, operating over wifi and with nothing really going on in the background (but also without any specific avoidance of background apps). I'm using a stock Droid at 2.1 with the free version of the Xscope browser. Other than that, everything is standard config, with whatever apps happen to be on the iPad or Droid.&lt;br /&gt;
&lt;br /&gt;
Without further ado, here is the spreadsheet:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width='500' height='300' frameborder='0' src='https://spreadsheets.google.com/pub?key=0ArP0BYejFuyVdHp2NzdYbkhKWlFUM09xaDV6RVFQREE&amp;single=true&amp;gid=0&amp;output=html&amp;widget=true'&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the iPad is about twice as fast as the Droid for most tests, with the Droid pulling ahead on the single "nbody" test. *Cue long tirade about how nbody is the only test which actually matters and the Droid is therefore superior to the iPad in every way, especially at raw browsing speed ;)*&lt;br /&gt;
&lt;br /&gt;
I was actually surprised that the Droid did as well as it did, considering that it is a couple months older and has a significantly less-powerful processor. Hooray for mobile competition!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-1472255823485955068?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Np_cjdII5Np6p2EKok_zSAtvdHo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Np_cjdII5Np6p2EKok_zSAtvdHo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Np_cjdII5Np6p2EKok_zSAtvdHo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Np_cjdII5Np6p2EKok_zSAtvdHo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/7IiSRZ6WqvE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/1472255823485955068/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/04/great-smartphonepad-shootout.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/1472255823485955068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/1472255823485955068?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/7IiSRZ6WqvE/great-smartphonepad-shootout.html" title="The great smartphone/pad shootout!" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.haxney.org/2010/04/great-smartphonepad-shootout.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCRH09eyp7ImA9WxBaFE0.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-4719346207119853796</id><published>2010-03-23T23:31:00.000-04:00</published><updated>2010-03-23T23:31:05.363-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-23T23:31:05.363-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="opinion" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><title>A Response to "Victimology bites"</title><content type="html">This started out as a comment on Eric Raymond's "&lt;a href="http://esr.ibiblio.org/?p=1848"&gt;Victimology bites&lt;/a&gt;" blog post, but got long enough that I figured I'd turn it into its own blog post.&lt;br /&gt;
&lt;br /&gt;
I think his attacks on liberals and colleges are probably a little overstated, but are are certainly not inaccurate. There have been plenty of self-proclaimed conservatives who have played the victim card: think of things like the complaints about the "war on Christmas/Christianity" or the "Real American, Main Street people" suffering at the hands of "Predator Lenders," or the "War on Marriage." While the second example especially might have some merit, Liberals and Liberal Democrats are not the only ones who do this.&lt;br /&gt;
&lt;br /&gt;
Now, it is entirely reasonable to say that the current Republican party and some of those who call themselves "conservative" do not actually subscribe to a truly Conservative philosophy, in the traditional sense of the term, and are actually Liberals in their view of the role of how involved government should be in people's daily lives. I can certainly buy that.&lt;br /&gt;
&lt;br /&gt;
While I don't doubt that there are those (particularly the powerful, who have something to gain) who are consciously pushing Victimology as a stealth power grab, he seems to implicitly suggest a level of malice that I believe is untrue. My take is that many people would say that forcing businesses to provide handicapped parking spaces at least comes from a place of compassion. I agree that it is possible (and easy) to take this too far, but I doubt the majority of people do it out of some kind of desire for a tyrannical takeover.&lt;br /&gt;
&lt;br /&gt;
My (uninformed) opinion is that the current state of Victimology arose from an overreaction to the very real problems of discrimination, disadvantage, and structural barriers to success. There definitely has been a subversion of some of the structures designed to help those who help themselves; the problem is that it is often hard to tell who is interested in helping themself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-4719346207119853796?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6phvz9-UX4_trpEDD3tfs_jipL0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6phvz9-UX4_trpEDD3tfs_jipL0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6phvz9-UX4_trpEDD3tfs_jipL0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6phvz9-UX4_trpEDD3tfs_jipL0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/hJS0gPlvLA4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/4719346207119853796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/03/response-to-victimology-bites.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/4719346207119853796?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/4719346207119853796?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/hJS0gPlvLA4/response-to-victimology-bites.html" title="A Response to &quot;Victimology bites&quot;" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/03/response-to-victimology-bites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGR304eCp7ImA9WxBaEUk.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-7900770879578518845</id><published>2010-03-20T23:33:00.000-04:00</published><updated>2010-03-20T23:33:46.330-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-20T23:33:46.330-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><category scheme="http://www.blogger.com/atom/ns#" term="ballroom" /><title>yt-bulk-py: A good program with a bad name</title><content type="html">So I just finished another exhausting Ballroom competition, and once again, there are a ton of videos to upload (133, to be exact). Since I found myself doing this more and more, I decided to make my life easier by some code to help the process out.&lt;br /&gt;
&lt;br /&gt;
For all of you (yes, in Dan's secret magic world, there are people other than myself who read this blog) who don't know how a Ballroom competition works, let me give you a brief overview so you get what the video situation is like. There are a total of 19 dances divided into 4 sections (Rhythm, Latin, Smooth, and Standard) and spread across 5 levels. Each section is run sequentially, so all of Rhythm is finished before any Latin starts, and so on. At the beginning of a section, they run all of the preliminary rounds, from the Newcomers up to Championship (it's a bit more complicated than this, but it's not important for our purposes). So for example, you would run the first round of Newcomer Waltz, followed by Newcomer Tango, then Bronze Waltz, then Bronze Tango, and so on.&lt;br /&gt;
&lt;br /&gt;
Each round has about 90 seconds of dancing, and because there are usually more people than fit on the floor at a time, there will be multiple heats for each round. A typical Silver couple (the middle-ish level where most of the people are) might compete in around 10 dances, with 3-5 rounds per dance for a total of 30-50 heats of 90 seconds just for that one couple. Multiply this by the number of dancers on the team, and you can easily reach over &lt;s&gt;9000&lt;/s&gt; 100 videos from even a small competition.&lt;br /&gt;
&lt;br /&gt;
The issue then becomes, "what do you do with all of these videos?" Well, before Brown's web hosting system decided to crap out on me, I had this nifty &lt;a href="http://en.wikipedia.org/wiki/Faceted_search"&gt;faceted search&lt;/a&gt; system on the team website where you could drill down by category and find exactly the videos you wanted, without running afoul of YouTube's "helpful suggestions" of what you might want. The problem is then that nobody wants to tag and upload hundreds of videos, so you need a way to automate as much as possible.&lt;br /&gt;
&lt;br /&gt;
What I have now is a multi-step system which removes as much of the manual tedium as possible, without developing advanced graphics algorithms to figure out the dances entirely by machine learning (if only).&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Freedom from Tape&lt;/h1&gt;&lt;br /&gt;
The camera we use is a surprisingly nifty 720p Panasonic MiniDV camera, whose only major flaw is that you have to remove the battery to charge it, plug the camera into AC, or even connect it to FireWire. Seriously, dumbest idea ever.&lt;br /&gt;
&lt;br /&gt;
Anyway, the first step generally is to copy all of the raw video off the camera. This isn't so bad, since you can essentially set it and forget it, coming back every hour to pop in a new tape. I had about 4 hours of video from this past competition, so there was some quality waiting to be done. The nice thing is that essentially every DV capturing program at this point will automatically create separate files when the clip ends, so I usually don't have to scrub through the video and chop it up into little, 1 minute 30 second pieces.&lt;br /&gt;
&lt;br /&gt;
Once this is done, the second, and still most time-consuming step takes place.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;The Naming Ceremony&lt;/h1&gt;&lt;br /&gt;
From here, there are a lot of nice little video files sitting on the hard drive with names like "video00001.avi", "video00010.avi", and who could forget, "video9999.avi". The task now is to make some sort of sense of these names, turning them from something like "video0019934_good_god_how_many_are_there.avi" into "Holy Cross 2010 Bronze American Cha Cha - Round 2, Heat 3.avi", which is only slightly more useful to humans. Until someone feels like writing me an image recognition algorithm that is able to determine the type of dance and the level of an arbitrary video, this part will always have to be done by hand. Luckily, I have Emacs, so my hands are fusion-powered nanobot swarms capable of forging entire worlds from nothingness.&lt;br /&gt;
&lt;br /&gt;
So here is what the process looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm5.static.flickr.com/4051/4449704092_157b502b8d_d.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://farm5.static.flickr.com/4051/4449704092_157b502b8d_d.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Whaaa? It's not actually that crazy once you see what's going on. The video on the right is, obviously, the video I'm tagging. On the upper half of the screen is my current progress on this very blog post, and on the bottom is the list of videos. You can see that some have nice names like "Holy Cross 2010 Newcomer International Rumba - Round 1, Heat 1.avi" and some are hideous like "Holy Cross 2010 Latin066.avi", which is pretty useless. The key is what is going on down in the lower-left corner, which I'll blow up for you:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm5.static.flickr.com/4008/4449704094_a8c894f6e0_o.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" src="http://farm5.static.flickr.com/4008/4449704094_a8c894f6e0_o.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
So first, I select the section, in this case Newcomer, by typing the name of the section. The cool thing is that, thanks to Emacs' &lt;a href="http://www.emacswiki.org/emacs/InteractivelyDoThings"&gt;Ido-mode&lt;/a&gt; it narrows down the choices as I type, meaning that in reality, I only actually have to hit one key ("n" in this case), and press enter, and the bolded option will be selected. Much nicer than typing out the whole thing and worrying about mistakes, since it forces you to choose one of the available options.&lt;br /&gt;
&lt;br /&gt;
From there, I select the dance. Again, only one keypress (and then enter) is required:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm5.static.flickr.com/4015/4449704096_07f84209b2_o_d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" src="http://farm5.static.flickr.com/4015/4449704096_07f84209b2_o_d.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Then the round (it defaults to 1):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm5.static.flickr.com/4013/4449704100_5aee9ba1da_o_d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" src="http://farm5.static.flickr.com/4013/4449704100_5aee9ba1da_o_d.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
And finally the heat:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm5.static.flickr.com/4071/4449704102_a26b5850d6_o_d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" src="http://farm5.static.flickr.com/4071/4449704102_a26b5850d6_o_d.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
And it then names the file "Holy Cross 2010 Newcomer International Jive - Round 1, Heat 2.avi" and immediately starts playing the next file, and so on down the list.&lt;br /&gt;
&lt;br /&gt;
That took me only 8 keypresses, including enter ("n", enter, "j", enter, "1", enter, "2", enter). At this point, the limiting factor is how quickly I can determine which dance it is, which takes only a few seconds (since the music gives most of it away).&lt;br /&gt;
&lt;br /&gt;
So now I have 133 video files with nice, human-consumable names, how do I get them online with a minimum of fuss?&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;The Uploadening&lt;/h1&gt;&lt;br /&gt;
For a while, I had used Google's Gears-based bulk uploader to upload the videos to YouTube, but this had two very important drawbacks. First, you had to manually specify a title and description for each video, which isn't so bad when you have 10 videos, but with 133, it gets old very quickly. This wouldn't be the end of the world if it weren't for the second snag, the disconnections.&lt;br /&gt;
&lt;br /&gt;
I don't know if my computer was just feeling malicious or if Gears was haunted with an evil spirit, but I always found that the upload would mysteriously stop after a few videos, and Gears didn't much feel like resuming the upload, so I ended up having to close and re-open the page, which of course caused me to lose all of my hard-copied video titles and descriptions. Major no funsies.&lt;br /&gt;
&lt;br /&gt;
The solution came in the form of a program I wrote called &lt;a href="http://github.com/haxney/yt-bulk-py"&gt;yt-bulk-py&lt;/a&gt;, for YouTube Bulk uploader in Python. Inspired name, I know. The idea was that uploading a big series of videos should be the easy part once you know what you want to call them. I ended up making a simple Python program which used the YouTube APIs to fully automate all of the uploading. The file name of the video would become the title, and I created a simple config file which filled in the description and tags (since they would be the same for each video).&lt;br /&gt;
&lt;br /&gt;
The best part is that it is fully resumable, so if I have to take my laptop somewhere and stop uploading for a while, once I get back, I can just restart the program and pick up from where I left off without having to re-enter anything at all.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Oh, the Waiting!&lt;/h1&gt;&lt;br /&gt;
This now means that what used to take hours of micromanaging agony now takes about an hour of dedicated tagging time (probably even less than that) and a few seconds of checkups to switch the tapes or start the upload process. Were the team website working, I would show off the searching hotness, but alas. The cool thing to note is that it automatically watches the YouTube feed for the Ballroom team's account and automatically processes any new videos it hasn't yet seen. Essentially, once the video is named, I can start off a process which sends it from my computer, to YouTube, to the Ballroom website, which then automagically processes the video's name (as in, it notices that the video has "Newcomer" in the title and files the video under "newcomers").&lt;br /&gt;
&lt;br /&gt;
Ah, the simple joys of modern life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-7900770879578518845?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3HM2SaSAQAfSxMueGiWiENzKQGI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3HM2SaSAQAfSxMueGiWiENzKQGI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3HM2SaSAQAfSxMueGiWiENzKQGI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3HM2SaSAQAfSxMueGiWiENzKQGI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/bOk9NaX1tXo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/7900770879578518845/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/03/yt-bulk-py-good-program-with-bad-name.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/7900770879578518845?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/7900770879578518845?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/bOk9NaX1tXo/yt-bulk-py-good-program-with-bad-name.html" title="yt-bulk-py: A good program with a bad name" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/03/yt-bulk-py-good-program-with-bad-name.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08NR3w4fSp7ImA9WxBUFEg.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-1593668758270804570</id><published>2010-03-01T11:11:00.000-05:00</published><updated>2010-03-01T11:11:36.235-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-01T11:11:36.235-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="elisp" /><category scheme="http://www.blogger.com/atom/ns#" term="packaging" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><title>Comparing Emacs Version-parsing Libraries</title><content type="html">Recently, I've become interested in advancing the (currently sad) state of Emacs package management. It is a well-documented problem (see &lt;a href="http://www.emacswiki.org/emacs/RationalElispPackaging"&gt;here&lt;/a&gt; for more detail), so I won't discuss it generally.&lt;br /&gt;
&lt;br /&gt;
One important aspect of a package-management system is the ability to deal with the different versions of a package. Because of the current state of packaging, there is no real standard format for version numbers. Any potential package manager must be able to figure out the version of a given package without being told it explicitly by a user (otherwise maintaining the packages would be way too hard). Currently, &lt;a href="http://tromey.com/elpa/"&gt;package.el&lt;/a&gt; has a simple-ish way of dealing with version numbers: it uses the &lt;code&gt;lisp-mnt&lt;/code&gt; library (which comes with Emacs) to pull out the &lt;code&gt;Version&lt;/code&gt; or &lt;code&gt;Package-Version&lt;/code&gt; headers, strips RCS info (some version numbers are like &lt;code&gt;$Id: linkd.el,v 1.63 2007/05/19 00:16:17 dto Exp dto $&lt;/code&gt;, and we really only want &lt;code&gt;1.63&lt;/code&gt;), and then split the result by periods and convert the pieces to integers. This means that it only works for versions like &lt;code&gt;1.2.3&lt;/code&gt; and not &lt;code&gt;1.2.3alpha&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
It would be nice if we could get everyone to use only dotted-numeric version numbers, but that's not happening any time soon. Instead, a package manager must be able to make sense of more complex version numbers, such as &lt;code&gt;6.34a&lt;/code&gt; (which is what &lt;a href="http://orgmode.org/"&gt;org-mode&lt;/a&gt; uses), &lt;code&gt;1.0pre7&lt;/code&gt; or (&lt;a href="http://cedet.sourceforge.net/"&gt;cedet&lt;/a&gt;). I'm going to look at the following three version parsing solutions:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;version-to-list&lt;/code&gt;, included in Gnu Emacs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;inversion&lt;/code&gt;, from CEDET, now included in Gnu Emacs (not sure which version).&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/tarsius/vcomp"&gt;&lt;code&gt;vcomp&lt;/code&gt;&lt;/a&gt; Written by Jonas Bernoulli, creator of the &lt;a href="http://www.emacsmirror.org/"&gt;Emacs Mirror&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
I'll take a bunch of examples and show the output that each one produces. If you have any suggestions for additional version formats, please let me know :)&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;"1.0pre7"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(1 0 -1 7)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(prerelease 1 0 7)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"1.0.7pre"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(1 0 7 -1)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"6.34a"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(6 34 -3)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;((6 34) (104 0 96 0))&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"1.3.7"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(1 3 7)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(point 1 3 7)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;((1 3 7) (104 0 96 0))&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"1.0alpha"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(1 0 -3)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(alpha 1 0 1)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"1.0PRE2"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(1 0 -1 2)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(prerelease 1 0 2)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"0.9alpha"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(0 9 -3)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(alpha 0 9 1)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"2009.04.01"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(2009 4 1)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(point 2009 4 1)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;((2009 4 1) (104 0 96 0))&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"2009.10.5"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(2009 10 5)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(point 2009 10 5)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;((2009 10 5) (104 0 96 0))&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"20091005"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(20091005)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;((20091005) (104 0 96 0))&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"20091005pre"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(20091005 -1)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"20091005alpha"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(20091005 -3)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;"20091005alpha2"&lt;/code&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;version-to-list&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;(20091005 -3 2)&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;inversion-decode-version&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;vcomp--intern&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
Looking at this, it seems like &lt;code&gt;version-to-list&lt;/code&gt; is the way to go, as it handles the different possibilities better than any of the other functions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-1593668758270804570?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/otbQqBF-NSSu7LL95XY8_Dbf-kQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/otbQqBF-NSSu7LL95XY8_Dbf-kQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/otbQqBF-NSSu7LL95XY8_Dbf-kQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/otbQqBF-NSSu7LL95XY8_Dbf-kQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/utpUNvDX2Qc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/1593668758270804570/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/03/comparing-emacs-version-parsing.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/1593668758270804570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/1593668758270804570?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/utpUNvDX2Qc/comparing-emacs-version-parsing.html" title="Comparing Emacs Version-parsing Libraries" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total><feedburner:origLink>http://www.haxney.org/2010/03/comparing-emacs-version-parsing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EERngyfyp7ImA9WxBWGEo.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-6093098497800488530</id><published>2010-02-11T04:13:00.000-05:00</published><updated>2010-02-11T04:13:27.697-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-11T04:13:27.697-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="law" /><category scheme="http://www.blogger.com/atom/ns#" term="copyright" /><category scheme="http://www.blogger.com/atom/ns#" term="activism" /><title>Letter to the US Trade Representative</title><content type="html">From &lt;a href="http://arstechnica.com/tech-policy/news/2010/02/care-about-balanced-copyright-let-the-us-government-know.ars"&gt;this Ars Technica article&lt;/a&gt;, the US Trade Representative, the body in charge of negotiating the &lt;a href="http://en.wikipedia.org/wiki/Anti-Counterfeiting_Trade_Agreement"&gt;Anti-Counterfeiting Trade Agreement&lt;/a&gt; (ACTA), has a &lt;a href="http://www.regulations.gov/search/Regs/home.html#submitComment?R=0900006480a7bbba"&gt;section open for comments&lt;/a&gt; about the treaty. Let them know that you favor an open Internet and balanced copyright laws. I've copied my comment to them (which was too long to fit in the form, blah) here.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Letter to the USTR&lt;/h1&gt;&lt;br /&gt;
I am very concerned with not only what leaked content I have been able to find about the Anti-Counterfeiting Trade Agreement (ACTA), but also with the lack of public involvement and visibility of this far-reaching and dangerous piece of legislation. For something that has a profound potential to damage the way the Internet, free speech, and the development of culture work, it is unacceptable that the only interested parties who have been allowed into the negotiations are those with the greatest interest in restricting new outgrowths of culture that the Internet can provide.&lt;br /&gt;
&lt;br /&gt;
The companies that make up the Motion Picture Association of America (MPAA), Recording Industry Association of America (RIAA), the Business Software Alliance (BSA), the Association of American Publishers (AAP), and others currently have far too large of a sway over the decisions involved in the treaty, and represent a very lopsided view of copyright and patent laws. Despite their widely-publicized claims of the massive damages caused by piracy, there is little actual evidence in support of, and a great deal of evidence against their conclusions. The movie industry, especially, has been posting record profits, so the claim that innovation and creativity will be destroyed by Internet-based piracy is clearly false.&lt;br /&gt;
&lt;br /&gt;
These industries' support of stricter copyright and patent laws is little more than an attempt to persuade the government, Internet service providers, or website operators to foot the bill to support their own business model. After having realized that directly suing their own customers was prohibitively expensive and generated a huge amount of bad will, these companies decided that they could pass the unpopular job of attacking music and movie consumers to someone else.&lt;br /&gt;
&lt;br /&gt;
It is not the US government's job to support the business model of these few companies. The small, if any, increase in economic activity that might result from stricter laws would not nearly be worth the chilling effects on cultural expression, free speech, and innovation. Many of the companies most heavily involved in the ACTA negotiations are products of an industrial age in which reproducing and transporting information is a difficult task and requires a large, organized infrastructure in order to be feasible. With an increasing number of homes now having high-speed Internet access, this difficult problem of transporting information no longer exists. As such, a large component of the reason for these companies to exist has disappeared as well, leading to an existential crisis for them. These companies are the candle makers and buggy-whip manufacturers of the 21st century, and rather than allowing them to continue to seek economic rent from the former audience turned participants in culture who no longer need them. Even if the claimed "worst case" does come to pass, and these large media companies do fold under the weight of Internet piracy, they will not be missed, as their once-useful purpose has been superseded.&lt;br /&gt;
&lt;br /&gt;
It is extremely important for the future of Democracy, freedom of speech and expression, and the continued development of our culture that the negotiations be opened to the public, the full and current version of ACTA be made available, and those companies whose interests run counter to those of the country at large not be given undue influence over one of the most important treaties of our time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-6093098497800488530?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qwcwmVvKokXEKI1EIvA9geAKH6Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qwcwmVvKokXEKI1EIvA9geAKH6Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qwcwmVvKokXEKI1EIvA9geAKH6Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qwcwmVvKokXEKI1EIvA9geAKH6Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/8YHUGcFKpC0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/6093098497800488530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/02/letter-to-us-trade-representative.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6093098497800488530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6093098497800488530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/8YHUGcFKpC0/letter-to-us-trade-representative.html" title="Letter to the US Trade Representative" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/02/letter-to-us-trade-representative.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cCQ3w5eSp7ImA9WxBWFkU.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-443576590223146791</id><published>2010-02-08T21:04:00.000-05:00</published><updated>2010-02-08T21:04:22.221-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-08T21:04:22.221-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="discussion" /><category scheme="http://www.blogger.com/atom/ns#" term="copyright" /><category scheme="http://www.blogger.com/atom/ns#" term="distraction" /><title>Copyright: You know the drill</title><content type="html">This is a reply to my father's reply to my &lt;a href="http://www.haxney.org/2010/02/copyright-in-context.html"&gt;earlier post&lt;/a&gt; about copyright. Here, for your viewing pleasure, is my full response.&lt;br /&gt;
&lt;br /&gt;
Let me first just say that I think we agree much more than we think we do, but the verbiage that we are using construes our positions as being more antagonistic than they actually are.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Well, I cannot accept the premise. If one does not own one's intellectual property, then there is a major disincentive to creating it.&lt;/blockquote&gt;&lt;br /&gt;
Theoretically, but how does this play out in practice? There is a certain amount I would need to expect to be able to earn off of something in order for me to prefer that activity to some other form of employment. One way of trying to hit that minimum of income would be to grant me exclusive use of the thing that I have created, and allow me to sell it. This is the strategy behind copyright. On this point, we (and essentially everyone else) agree.&lt;br /&gt;
&lt;br /&gt;
There are various other methods of inciting me to do the work, such as patronage, donations, and grants. Many of these have worked in the past (and continue to work) for certain kinds of works (music comes to mind), but do not appear to be general solutions to the problem of inciting people to produce the kinds of works that we as a society are interested in.&lt;br /&gt;
&lt;br /&gt;
The issue that most people have with copyright is what happens when the incentive to create a particular work rises well above what its value is to society? If I am to write a program, and it will cost me $50,000 worth of opportunity cost to do so, what happens when I am paid $500,000 for it? Clearly, if I was willing to write the program for $50,000, then someone is over-investing and is wasting money. The problem that people have is that the costs imposed by the current copyright laws are higher than what is required to incite the works produced.&lt;br /&gt;
&lt;br /&gt;
There is also the added "cultural morality" notion that applies mainly to things like movies, music, and books, that says that works that are old enough become a part of the culture, and claiming ownership of them is unethical. A prime example of this is the fact that the "Happy Birthday Song" is still under copyright, even though it could be considered a basic part of our culture at this point. I find this argument reasonably convincing, but believe that a strong case can be made against the current scope and duration of copyright protection even without invoking matters of morality.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;I do not read radiological studies for free. If I could not charge for it, I would not do it. I would (have to) find another line of work.&lt;/blockquote&gt;&lt;br /&gt;
I agree. Nobody (well, except for the VERY fringe people) is suggesting an abolition of compensation for intellectual endeavors; they are merely saying that past a certain point, extremely long copyright terms lead to a kind of rent-seeking behavior.&lt;br /&gt;
&lt;br /&gt;
An analogy to radiology would be that you wouldn't expect someone to continue paying you for the rest of their life for use of their brain after you had performed a radiological examination. They will pay you enough to cause you to perform the exam instead of seeking another line of work, but once you have performed the service, the payment relationship ends. This analogy is by no means perfect, since a third party would have no use for a diagnosis made of someone else, but the general idea applies.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;So performing intellectual work, as a job rather than a hobby, must include the ability to be compensated for it.&lt;/blockquote&gt;&lt;br /&gt;
Yes. Absolutely. I completely agree with this, and as time goes on, this fact will only become more important in an increasingly abstract-creation-based economy. The challenge is determining how much to compensate and for how long someone holds a monopoly over their creation.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;The notion underlying this analysis is that new intellectual work is of such limited importance that all increments in units are of constant value. Hence formulations such as &lt;blockquote&gt;"the term of a copyright must not be one second longer than is required to induce a creator to produce new works"&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;
I disagree with your assessment of that statement. I believe that a copyright term should be as short as possible so that the creation can be re-integrated into the common pool of knowledge and reused without transactional friction by as many people as possible.&lt;br /&gt;
&lt;br /&gt;
What I did not make sufficiently clear in that quote is what kind of "new works" to which I am referring. An ideal copyright system would assign a specific level of compensation to each individual work which would exactly match the amount of money needed by the creator to incite her to work on that creation rather than some other endeavor. Somehow, society would determine which new works were worth supporting, and grant monopoly privileges only to those which were worthwhile, or at least only subsidize an activity up to its value to the whole society.&lt;br /&gt;
&lt;br /&gt;
Obviously, no system will ever be able to perfectly predict what amount of compensation is needed for each individual creator, nor will it be able to accurately predict ahead of time what the value of a new work is to society, but this is the ideal toward which we are aiming. The job of determining the value of a work to society is left to the market, which is (like anything) imperfect, but the best mechanism we currently have of determining value to a wide group. The other factor, the amount that the creator needs to prefer working on her creation rather than something else is currently solved by the promise of exclusive control over that work for 70 years after the creator's death. My argument is that life + 70 years is drastically over-estimating the compensation required to incite the creator to spend her time on the project.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;I am not at all interested in the minimum incentive that will get one more copyrightable one-column post on a newspaper site. The sort of thing that could be thrown off in the time it takes to type may get copyright protection, but does not need it. No one cares whether it is published, and no one has any reason to use it at all.&lt;/blockquote&gt;&lt;br /&gt;
I agree. One of the hardest problems is that the compensation required to incite a one-column newspaper article and the development of a distributed, soft-real-time database are totally different, yet the laws to support both of them are essentially the same.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;I am very interested in the incentives that would lead to important and substantive contributions. These may require sustained long term effort by people who are able to provide this only because they derive their income from this work.&lt;/blockquote&gt;&lt;br /&gt;
Absolutely. One thing to consider, though is that none of the work that these people are doing occurs in a vacuum. Essentially everything that is done today (and this trend is only accelerating with the increased ubiquity of the Internet and accessible programming tools) is built off of the work of people who came before. If the cost of integrating and building off of existing work is lower, then each person can do more with less. The ubiquitous availability of blogging software has meant that anyone who wants to blog no longer has to be a programmer, leading to more time spent blogging and less time spent rewriting blogging programs.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;So I would not equate an improved design for a hybrid engine, which might save billions of dollars in transportation costs with some rant posted on the FoxNews website.&lt;/blockquote&gt;&lt;br /&gt;
Exactly.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;If one takes the "not one second longer" criterion, and the structure of the legal system requires that the duration be the same for all, then you would wind up with zero for the duration of protection.&lt;/blockquote&gt;&lt;br /&gt;
This is where the heart of the problem lies. My position is that the copyright duration for new hybrid engines should be "not one second longer" than is required for the new hybrid engine to be produced, while the copyright duration for a rant should be "not one second longer" than is required to incite the production of the rant. Essentially, I want to do away with the "and the structure of the legal system requires that the duration be the same for all." This is not an easy problem to solve!  However, I think that the current term is far longer than is needed for even the most involved of production.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;People will produce trash for free, and a huge amount of it. If you make the standard the minimum required to produce that, then this will drown the much smaller number of truly productive accomplishments.&lt;/blockquote&gt;&lt;br /&gt;
Yes, with the caveat that numerically speaking, there will always be much more trash than useful stuff, but you always have the luxury of ignoring the trash. This is not a dismissal of the concern of the loss of quality, involved creations, but a side-note against the distress that people have when they see a lot of junk. For instance, a common criticism of Twitter, Facebook, and blogs in general is that "most of the stuff there is crap." Yes, this is absolutely true, but especially in the Internet age, it is trivial to completely ignore the crap and only look at the worthwhile content. What would be a problem is if a great deal of crap is produced to the detriment of the production of worthwhile content.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;If you cannot protect your creations legally, then you will be forced to hide them. Instead of patenting your hybrid design, and selling it. Making the servicing and repair widely available would benefit society. The alternative is to put the engine in a sealed compartment, and require them to shipped to the factory for all service. You would have to build it so that unauthorized attempts to open the unit would destroy it. That way no one can buy one, take it apart and copy it, since this would be legal. Of course, the benefit to society of the more efficient engine would be reduced by the costs of replacing them, shipping them back to the manufacturer, etc. You could get to this situation although you still had huge numbers of short articles published online, so you can induce A creator to produce ONE more work, in her spare time, for free.&lt;/blockquote&gt;&lt;br /&gt;
Buried in there is an argument for more open sharing of information. You mention that "making the servicing and repair widely available would benefit society." This is the key balance to find. You want there to be enough of an incentive for the manufacturer to produce the engine, but it is also more efficient if anyone can service the engine without needing special permission. Obviously, there is the matter of being qualified to service the engine, but this is a matter of certifying someone's expertise, and not of restricting the knowledge or use of the knowledge.&lt;br /&gt;
&lt;br /&gt;
Also, you are making a "benefit to society" argument here, and the only area in which we differ is specifically how to tweak things to achieve that maximum benefit. Again, our positions are not as different as they seem.&lt;br /&gt;
&lt;br /&gt;
This is also more of a patent issue than a copyright one, and while the two issues are similar (and derive from the same section in the Constitution), there are key differences which make it dangerous to conflate the two.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;If you cannot keep something as a trade secret, and there is no legal impediment for others to copy them, then it has no value to the creator.  Even though it may have huge value to society. So no one will do it.&lt;/blockquote&gt;&lt;br /&gt;
I wouldn't say that it has _no_ value to the creator. There have been numerous businesses (including my beloved Open Source companies) which are able to find value in giving things away for free. An (admittedly contrived) example would be that the engine manufacturer gives away the designs for the engines for free, without copyright protection, but by employing the engineers who designed the engine, would be in the best position to service the engine when it needed work. In that case, the engines would essentially be loss-leaders for the repair service.&lt;br /&gt;
&lt;br /&gt;
Now, this is not likely to work for the auto industry specifically, but this is how a great many Open Source companies (including Red Hat and IBM) sustain themselves. The software is essentially given away for free, and the money is made off of customizing and managing that software installation.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Consider the tragedy of the commons. Say you would grow much more grass and hay in the pasture if someone were to fertilize, water and rotate crops on the land. But you insist that the only claim on the result is the minimum that will incent anyone to do anything. One may well say "once my cattle are fed I will NOT set the field on fire. Therefore there is currently enough incentive to generate the lowest possible level of socially useful activity.  Therefore there should be no further payment to the person who will care for the field." Of course under these circumstances, no one will fertilize or water, society will be worse off, but the "not one second longer" standard would be upheld.&lt;/blockquote&gt;&lt;br /&gt;
My position is not that the duration should be set to "generate the lowest possible level of socially useful activity," but to generate the highest. Going in the opposite extreme, I could say "in order to feed my cattle, I will maintain exclusive use of the fields for one year, extendable to 70 years after my death." This might benefit me (assuming I took well enough care of the fields that my cattle could survive), but would be under-utilizing the common resource of the field. I do not need exclusive use of the entire field in order to raise my cattle, and by preventing other people from using it, I am hurting everyone else for little to no benefit to myself.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;This does not begin to address the moral element. We do not have laws against stealing only because an empirical analysis of the economy suggests that those with laws against stealing grow faster than those without. I suspect this is true, but it is possible that societies with fewer laws, or lax enforcement, grow rapidly. We have laws against stealing because stealing is wrong. We would still have laws against stealing, even if one could show that stolen money has higher velocity and provides more fiscal stimulus. At least I hope so.&lt;/blockquote&gt;&lt;br /&gt;
This is a very different argument, and I hope that it does not get conflated with the other points I have made, because I believe they are able to stand on their own without invoking the moral aspect.&lt;br /&gt;
&lt;br /&gt;
That said, I would say that, even though it is hard to imagine, if a society with ubiquitous stealing actually was better for everyone than one without, I would certainly prefer the former. Again, it is difficult to even conceive of a situation in which this might be true, but if it were, I would choose the option which left me better off. If I were somehow better off being able to freely steal from others, with the knowledge that they could freely steal from me, then I would choose that system. I don't care so much about the particular items and property which I own, but what I am able to do with them. If I can do more with the same amount of property by letting others "steal" it from me, then that would be the obvious choice, to me.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;In the case of digital music, one could certainly argue that this has already happened. The rewards to issuing a new CD have fallen. Although the cost of simply recording music and burning it onto a CD also has fallen, there is simply less reason to do it.&lt;/blockquote&gt;&lt;br /&gt;
I'm not actually sure about this. It is hard to get data on this, but one large (possibly even primary) reason for the decline in CD sales (aside from the shift to online music) is that most of the people who are interested in purchasing back-catalog music on CDs have already done so. When they first came out, there was a windfall of people repurchasing the old music they owned on cassettes or LPs on CDs, which boosted the sales numbers. This was clearly unsustainable, as eventually people would have purchased all of their old music on CDs, and would only purchase new music from that point forward.&lt;br /&gt;
&lt;br /&gt;
The record industry has not clearly shown statistics of the relative sales of new releases versus back catalog music over the years, but the general attitude among those who follow this more closely is that the decline in CD sales is mostly attributed to the end of the back-catalog windfall, rather than piracy.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;One outcome, which I contend is already underway, is for musical performers to release fewer CD's, and leave fans to the much lower quality of bootleg recordings from live events. If you cannot be paid for creating a studio performance, why do it?&lt;/blockquote&gt;&lt;br /&gt;
Well, one of the main reasons for artists creating fewer CDs is that the current state of recording industry deals means that artists stand to make vastly more money off of live shows than from recorded music. An artist makes about &lt;a href="http://bit.ly/5qEiA4"&gt;7x as much money from live shows&lt;/a&gt; as they do from recorded music , and that ratio is increasing.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Hence the greater focus of musicians on live touring and much less on recorded music. As time goes by, the rational performer would never create a recording of a full song. They might record the refrain and use it for marketing, but a full CD? Are you crazy? The mere existence of such a recording would be equivalent to giving it away.&lt;/blockquote&gt;&lt;br /&gt;
Yes, that does seem to be where things are headed, though this is largely the result of the recording companies taking 90% of the revenue of recorded music, leaving 10% to the artists, versus the 90% of the revenue which goes to the artists from live shows.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;So if you want to hear this performer, you had better show up in person.&lt;/blockquote&gt;&lt;br /&gt;
I am personally kind of bummed by this, since I'm not all that interested in live shows.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Now I am not clear on why society is better off as a result of this, and it is clear that vigorous enforcement of laws against stealing would have prevented this from occurring.&lt;/blockquote&gt;&lt;br /&gt;
Not really, and actually the opposite seems to be true. It is primarily the recording companies who are seeking increasingly strict copyright enforcement, whereas artists seem to do better with less enforcement (which allows their recorded music to be more easily promoted, serving as an advertisement for their live shows).&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Fortunately for me, I am not looking for anyone to create new music. Essentially all the music I am interested in hearing was composed long ago. And once there is one recording available for legal purchase, I can buy it and listen to my heart's content. If I were a fan of contemporary music this would be a disaster.&lt;/blockquote&gt;&lt;br /&gt;
I do worry somewhat about a shift away from recorded music, though that doesn't seem to be happening (since obscurity is a far greater threat to artists than piracy).&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;And all because of a de facto legalization of music stealing.&lt;/blockquote&gt;&lt;br /&gt;
No, more like a set of increasingly artist-unfriendly contracts for recorded music, coupled with an increasing interest in live shows (which I don't get, but still).&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;These arguments also do not address the "clean up the streets" argument. If you lock up those whose respect for property rights is so weak that they feel no impediment to stealing music then you leave a more honest set of people walking around free. If you encourage stealing, then those who steal will prosper, and you will have a less honest society.&lt;/blockquote&gt;&lt;br /&gt;
This is back to the separate moral argument, but I'm not that convinced by the "clean the streets" argument. To me, it seems a bit like (a more moderate version of) declaring something common and generally accepted as illegal, and then using that as an excuse to lock everyone up. Imagine if you made "saying mean things about the president" illegal, as is the case in Indonesia. You could then say "we need to clean up the streets of all those people who have so little respect for the president that they feel no impediment to saying mean things about him." Just because something is illegal, doesn't mean it's wrong. It also doesn't mean that every instance of law-breaking is an act of protest in the form of civil disobedience.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;I could not care less about what a bunch of ignorant, racist, sexist, alcoholic, landed gentry who never did a lick of work in their lives (the framers of the Constitution) thought about the purpose of copyright. Not a one of them could have created anything of value. The idea of doing useful work was so alien to them that I am sure someone had to be brought in to explain the concept. Work was for servants. Laws were to protect the interests of the aristocracy.&lt;/blockquote&gt;&lt;br /&gt;
Lol.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-443576590223146791?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4YtmN_eFdyxkIKOY8MnVW3nMbg4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4YtmN_eFdyxkIKOY8MnVW3nMbg4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4YtmN_eFdyxkIKOY8MnVW3nMbg4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4YtmN_eFdyxkIKOY8MnVW3nMbg4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/0ZkwJ4VIA_A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/443576590223146791/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/02/copyright-you-know-drill.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/443576590223146791?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/443576590223146791?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/0ZkwJ4VIA_A/copyright-you-know-drill.html" title="Copyright: You know the drill" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/02/copyright-you-know-drill.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UCQXo-cCp7ImA9WxBWFkg.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-713786665550546804</id><published>2010-02-08T15:01:00.000-05:00</published><updated>2010-02-08T15:01:00.458-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-08T15:01:00.458-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="copyright" /><title>Copyright in Context</title><content type="html">This is my response to this &lt;a href="http://arstechnica.com/tech-policy/news/2010/02/contextualizing-the-copyright-debate-reward-vs-creativity.ars"&gt;Ars Technica article&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you look at all of the foundational arguments for copyright, they are about a benefit to society, while only secondarily being about the authors or creators. Since the beginning, copyright, or a monopoly on ideas, has been regarded as an acceptable evil in the pursuit of the creation of new works. Copyright, like any enforcement strategy in a social-contract-based form of government, is a deal between the governors and the people which is only acceptable if the restrictions on personal autonomy are outweighed by the benefits that the restrictions bring.&lt;br /&gt;
&lt;br /&gt;
Currently, there is little thought given to whether a copyright term that extends 70 years after the author's death actually makes the author more likely to produce a new book. Whether or not "Steamboat Willy" is still restricted by copyright has little bearing on whether Walt Disney produces more cartoons, because he is dead. According to the constitution and every western (possibly others as well) system of copyright ever, the term of a copyright must not be one second longer than is required to induce a creator to produce new works. The author's "property right" has never been a basis of copyright law and was even explicitly rejected by the Supreme Court of the US in 1985.&lt;br /&gt;
&lt;br /&gt;
The problem nowadays is that wealthy corporate interests (not to beat the "rah, corporations r teh evil!!!11" drum too much) have a large vested interest in extending the copyright term as long as possible. Since their primary motive is profit, they don't care whether the money they make is on new creations or the back catalogue; they are perfectly content to resell "Snow White" over and over indefinitely, regardless of whether doing so encourages the production of new works. Indeed, a compelling argument could be made that continuing to sell 50+ year-old works actually decreases the incentive to produce new works, as it crowds out any new content and reduces the money available to finance new creations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-713786665550546804?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FPBWyTirt4j9m2iPbx1M_7IHMy4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FPBWyTirt4j9m2iPbx1M_7IHMy4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FPBWyTirt4j9m2iPbx1M_7IHMy4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FPBWyTirt4j9m2iPbx1M_7IHMy4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/6dBLnCcIamw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/713786665550546804/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/02/copyright-in-context.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/713786665550546804?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/713786665550546804?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/6dBLnCcIamw/copyright-in-context.html" title="Copyright in Context" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/02/copyright-in-context.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YBQX09fCp7ImA9WxFTE0k.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-5875057786493104279</id><published>2010-02-05T09:15:00.001-05:00</published><updated>2010-04-03T21:39:10.364-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T21:39:10.364-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Just to make your lives difficult...</title><content type="html">I finally bit the bullet and renamed my &lt;a href="http://github.com"&gt;GitHub&lt;/a&gt;account from "dhax" to "&lt;a href="http://github.com/haxney"&gt;haxney&lt;/a&gt;". I did&lt;br /&gt;
this to increase the consistency of my online names, so hopefully things will be less confusing overall.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this means that all existing URLs to my old "dhax" repositories are broken, and GitHub unfortunately doesn't offer redirection for changed usernames. Though, to be fair, the Git and SSH protocols probably don't support any fancy redirection anyway, so there isn't much they could do. Plus, just offering the ability to change an account name while still preserving all the links and info is noteworthy in and of itself, so they should be commended for that. Yay GitHub!!&lt;br /&gt;
&lt;br /&gt;
Anyway, if you find any place that has a broken link to my old "dhax" account, please let me know so I can fix it.&lt;br /&gt;
&lt;br /&gt;
I figured I would do this now, before anything of mine gains much in the way of popularity so that in the unlikely event that anything should gain some degree of usefulness, I will have avoided a much more painful switch later. We'll see if it pays off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-5875057786493104279?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bId7qkrXO1p6qMg0YbaMYkJuawk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bId7qkrXO1p6qMg0YbaMYkJuawk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bId7qkrXO1p6qMg0YbaMYkJuawk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bId7qkrXO1p6qMg0YbaMYkJuawk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/ZDCVL-KHmTA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/5875057786493104279/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/02/just-to-make-your-lives-difficult.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/5875057786493104279?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/5875057786493104279?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/ZDCVL-KHmTA/just-to-make-your-lives-difficult.html" title="Just to make your lives difficult..." /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/02/just-to-make-your-lives-difficult.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8FQX47cSp7ImA9WxBXGE4.&quot;"><id>tag:blogger.com,1999:blog-7770370347473031286.post-6620111583527259952</id><published>2010-01-30T02:33:00.000-05:00</published><updated>2010-01-30T02:33:30.009-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-30T02:33:30.009-05:00</app:edited><title>News Flows</title><content type="html">Just like old times, I'm turning an email reply into a full-fledged blog post.&lt;br /&gt;
&lt;br /&gt;
This is in response to an email my dad sent me, which I have quoted inline.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;http://www.newyorker.com/reporting/2010/01/25/100125fa_fact_auletta&lt;br /&gt;
&lt;br /&gt;
You can probably find the full text.&lt;/blockquote&gt;&lt;br /&gt;
I didn't bother. There are enough other interesting things to read out there that I'm not going to spend the time (let alone money) to jump through hoops to read the full version of this.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;The article is mainly about how the Obama administration relates to the press and tries to control the stories published about it. But buried in there are some interesting comments about the process. They claim that reporters now must file numerous daily reports- blog posts, tweets, updates for the paper or network website, do on air interviews for their site, or networks... They are so busy doing all of this that they do not have time for reporting. They cannot discuss issues with other people at the White House, or call up experts elsewhere for feedback.  Instead, they just print whatever someone at the White House said, and are thankful they managed to get a quote in time to file their report.&lt;/blockquote&gt;&lt;br /&gt;
I think this is indicative of a larger shift in the news ecosystem. My prediction/idea is that there will be a split between the people reporting on the basic facts of the situation -- who said what when -- and those writing interesting narratives that tie things together.&lt;br /&gt;
&lt;br /&gt;
Until now, each newspaper or TV station had to have its own person physically present in the room at a press conference in order to write down what was said and then type it up or say it on the air. With the ease of duplicating information, we don't need 50 people to write down the exact same thing. We probably want more than one person to be doing this to avoid mistakes and such, but there is no need for every national news outlet to have someone recording what the press secretary is saying, especially when it can -- and should -- be streamed live online and archived.&lt;br /&gt;
&lt;br /&gt;
What we do need multiple people in the room for is asking questions of the press secretary and not accepting vague answers or avoidance. I don't know enough about the environment in these kinds of press conferences to know how this would play out, but it seems like a shift of focus would be inevitable.&lt;br /&gt;
&lt;br /&gt;
Likewise, most news nowadays comes in the form of stories that are designed to be informative, relatively entertaining (or at least not completely dry), and contain some context of the situation (if it is a part of a larger unfolding event). What could certainly happen, however, is a separation of the basic facts -- Obama said this during his state of the union speech; 7 people were killed in Iraq at this location -- from any sort of narrative tying them together. As a programmer, my hope would be that the facts are reported in a standard, open format which could be read by any application and mashed up in interesting ways, but I doubt something like that will happen.&lt;br /&gt;
&lt;br /&gt;
This could ease the burden on journalists, who are now expected to do both of these roles; both collecting raw data and synthesizing it into a "story." Just like we don't need a multi-paragraph article each time the Dow changes (we can just look at the number directly), we don't necessarily need an article to make us aware of what was said at the State of the Union. Of course, most people are less interested in the exact value of the Dow or what was said in the SotU and are more interested in what the facts mean or imply. That is where I see the role of journalists and reporters thriving, in the making sense of large collections of data.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;One can imagine that this lessens the value of what they have to say, but it forces one to wonder why the media have taken this route.&lt;/blockquote&gt;&lt;br /&gt;
Some have said that the media (especially cable news) is responding so strongly to things like Twitter because they don't want to miss the boat like they did with blogging. There is definitely a sense of "we have to use this because it is cool, regardless of whether it is useful" with the cable news outlets, and reeks of trying to get on board with what the cool kids are doing.&lt;br /&gt;
&lt;br /&gt;
There are probably other reasons as well, but I suspect that a lot of the push from the old-guard media outlets to use Twitter is due to this, especially if they are forcing people to do it, rather than letting them use Twitter because the journalist finds it to be a useful tool.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;It is one thing to say the days of one article per day, all issues the same time on the morning paper are over. It is quite another to claim that the public demands a constant flow of near meaningless "news".&lt;/blockquote&gt;&lt;br /&gt;
There was a part in the &lt;a href="http://www.youtube.com/watch?v=dn9TAcBsL9E"&gt;Shirky and Rosen&lt;/a&gt; video series (I forget where) where they were talking about the notion that the main "hard news" stories were never really for the general public. They are sort of positioned that way, but most people simply don't care about most of what is going on in the world on any kind of day-to-day basis. For example, the center story on the New York Times site is "Full of Tricks, White Dazzles in Superpipe," which is about a snowboarder. Now, I certainly don't care about that, and neither do most people, but it is there nonetheless. The real purpose of the front page of the newspaper, according to them, is occasionally present everyone with the few truly important stories: US goes to war; Lehman collapses, bringing down economy; etc.&lt;br /&gt;
&lt;br /&gt;
Most people don't really care about what Obama said on one particular night, but do care about the general direction the country is moving. A newspaper comes in multiple sections, in this view, not so that a sports fan can stumble across an interesting article about climate regulation in Eastern Pennsylvania, but so that the sports fan can completely ignore everything except the sports section.&lt;br /&gt;
&lt;br /&gt;
What people do anyway, and what they've always done, since the beginning of the notion of "public opinion" as something rulers cared about (which they discuss in the video; it is fascinating), is pick and choose only those things which they find interesting or applicable to their daily life, and only occasionally read about anything outside of that.&lt;br /&gt;
&lt;br /&gt;
What a "flow-based" news ecosystem needs to achieve, then, is to allow people to filter out all of the news about which they are uninterested, but occasionally push to them stories about the few things outside their regular interests that are genuinely important: major corruption, war, major economic decisions, etc. This is essentially what news has always done, even if it has the pretense of providing everyone with a broad, daily summary of events across multiple areas of interest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7770370347473031286-6620111583527259952?l=www.haxney.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IgL-IkQV3T0Eqv3IrIdJxdJBWdc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IgL-IkQV3T0Eqv3IrIdJxdJBWdc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IgL-IkQV3T0Eqv3IrIdJxdJBWdc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IgL-IkQV3T0Eqv3IrIdJxdJBWdc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haxney/~4/nJMTf7jfT-M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.haxney.org/feeds/6620111583527259952/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.haxney.org/2010/01/news-flows.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6620111583527259952?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7770370347473031286/posts/default/6620111583527259952?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haxney/~3/nJMTf7jfT-M/news-flows.html" title="News Flows" /><author><name>haxney</name><uri>http://www.blogger.com/profile/02301593085374030863</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.haxney.org/2010/01/news-flows.html</feedburner:origLink></entry></feed>

