<?xml version='1.0' encoding='utf-8' ?>
<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Joel Boehland's Blog</title>
<link href='http://joelboehland.com/feed.atom.xml' rel='self' />
<link href='http://joelboehland.com' />
<updated>2012-10-26T11:33:06-07:00</updated>
<author>
<name>Joel Boehland</name>
<email>joel.boehland@evocomputing.com</email>
</author>
<id>http://joelboehland.com/</id>
<entry>
<title>All your datasets R belong to us</title>
<link href='http://joelboehland.com/posts/all-your-datasets-r-belong-to-us.html' />
<id>tag:joelboehland.com,2010-02-03:1265227200</id>
<updated>2010-02-03T12:00:00-08:00</updated>
<content type='html'>&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;p&gt;&amp;#x000A;I would like to introduce &lt;a href=&quot;http://github.com/jolby/rincanter&quot;&gt;Rincanter&lt;/a&gt;, a binding for &lt;a href=&quot;http://clojure.org&quot;&gt;Clojure&lt;/a&gt;/&lt;a href=&quot;http://incanter.org&quot;&gt;Incanter&lt;/a&gt; to&amp;#x000A;the &lt;a href=&quot;http://www.r-project.org&quot;&gt;R language&lt;/a&gt; for statistical computing. This is a thin layer over&amp;#x000A;the existing Java/R bindings done by the folks at &lt;a href=&quot;http://rosuda.org/software/&quot;&gt;rosuda.org&lt;/a&gt;. Why did&amp;#x000A;I write this? Thanks to the hard work of Rich Hickey, David Liebke and&amp;#x000A;others, you can already do impressive statistical data-mining tasks&amp;#x000A;using only Clojure. However, the R project has a huge body of work of&amp;#x000A;libraries and datasets that the much smaller Incanter community won't&amp;#x000A;be able to match, at least in the short term. Unless&amp;hellip;we can provide&amp;#x000A;an easy to use bridge that would allow us to work mostly in Clojure&amp;#x000A;and break into the R cookie jar for its datasets and function&amp;#x000A;libraries when we need to. So, the goals for this project are:&amp;#x000A;&lt;/p&gt;&amp;#x000A;&lt;ul&gt;&amp;#x000A;&lt;li&gt;&amp;#x000A;Short Term:&amp;#x000A;&lt;ul&gt;&amp;#x000A;&lt;li&gt;&amp;#x000A;Provide access to the vast datasets available in R&amp;#x000A;to Clojure/Incanter users. This requires that we can convert&amp;#x000A;between R data types and Clojure/Incanter data types. For the most&amp;#x000A;part this is working.&amp;#x000A;&amp;#x000A;&lt;/li&gt;&amp;#x000A;&lt;li&gt;&amp;#x000A;Provide access to the large body of R packages and function&amp;#x000A;libraries to fill in the gaps where Clojure and Incanter don't&amp;#x000A;have functional coverage. This is partially working, but there&amp;#x000A;are probably quite a few places where the Clojure side and the R&amp;#x000A;side just won't match up without some serious fudging.&amp;#x000A;&amp;#x000A;&lt;/li&gt;&amp;#x000A;&lt;/ul&gt;&amp;#x000A;&lt;/li&gt;&amp;#x000A;&lt;li&gt;&amp;#x000A;Long Term&amp;#x000A;&lt;ul&gt;&amp;#x000A;&lt;li&gt;&amp;#x000A;Provide a scaffold for porting R packages, functions and&amp;#x000A;datasets over to what many people believe is a stronger base&amp;#x000A;language. While R is an impressive language in many ways, even&amp;#x000A;some of its &lt;a href=&quot;http://www.stat.auckland.ac.nz/%7Eihaka/downloads/Compstat-2008.pdf&quot;&gt;Founders&lt;/a&gt; think that a full featured lisp could be a&amp;#x000A;better way forward for basing an interactive statistical&amp;#x000A;environment on. I would like people to strongly consider Clojure&amp;#x000A;for that position.&amp;#x000A;&amp;#x000A;&lt;/li&gt;&amp;#x000A;&lt;/ul&gt;&amp;#x000A;&lt;/li&gt;&amp;#x000A;&lt;/ul&gt;&amp;#x000A;&amp;#x000A;&lt;/div&gt;&amp;#x000A;&amp;#x000A;&lt;div id=&quot;outline-container-1.1&quot; class=&quot;outline-3&quot;&gt;&amp;#x000A;&lt;h3 id=&quot;sec-1.1&quot;&gt;A quick walkthrough &lt;/h3&gt;&amp;#x000A;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1.1&quot;&gt;&amp;#x000A;&amp;#x000A;&lt;p&gt;This will show a quick example showing how we can access R datasets&amp;#x000A;available remotely on CRAN and import them into Incanter. We will be&amp;#x000A;interacting with Incanter and R inside a REPL session. &amp;#x000A;&lt;/p&gt;&amp;#x000A;&lt;p&gt;&amp;#x000A;To start with, you will need to get Rincanter up and running. There&amp;#x000A;are some fairly detailed instructions for doing this on the project&amp;#x000A;&lt;a href=&quot;http://github.com/jolby/rincanter&quot;&gt;Home Page&lt;/a&gt;.&amp;#x000A;&lt;/p&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;pre class=&quot;src src-sh&quot;&gt;$ cd /path/to/where/you/downloaded/rincanter&amp;#x000A;$ lein repl&amp;#x000A;&lt;/pre&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;p&gt;&amp;#x000A;You should now have a REPL running with the required classes and&amp;#x000A;packages loaded. Now we are ready for an interactive session. This&amp;#x000A;will just be a very simple example showing how we can access R&amp;#x000A;datasets available remotely on CRAN and import them into Incanter.&amp;#x000A;&lt;/p&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;pre class=&quot;src src-sh&quot;&gt;$ cd /path/to/where/you/downloaded/rincanter&amp;#x000A;$ lein repl&amp;#x000A;&lt;/pre&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;p&gt;&amp;#x000A;As you can see, it's fairly easy to grab any existing package and&amp;#x000A;dataset on CRAN, download it, and pull the data into Incanter.&amp;#x000A;&lt;/p&gt;&lt;/div&gt;&amp;#x000A;&lt;/div&gt;</content>
</entry>
<entry>
<title>Blog Resurrected</title>
<link href='http://joelboehland.com/posts/blog-resurrected.html' />
<id>tag:joelboehland.com,2012-10-23:1351058400</id>
<updated>2012-10-23T23:00:00-07:00</updated>
<content type='html'>&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;p&gt;&amp;#x000A;For over two years I have neglected this blog. I intend to begin writing posts&amp;#x000A;again (sporadically). Look for new posts soon. I will start with some thoughts&amp;#x000A;about the current state of Clojure's web development capabilities.&amp;#x000A;&lt;/p&gt;&lt;/div&gt;</content>
</entry>
<entry>
<title>Funding Clojure</title>
<link href='http://joelboehland.com/posts/funding-clojure.html' />
<id>tag:joelboehland.com,2009-12-18:1261185577</id>
<updated>2009-12-18T17:19:37-08:00</updated>
<content type='html'>&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;/div&gt;&amp;#x000A;&amp;#x000A;&lt;div id=&quot;outline-container-1.1&quot; class=&quot;outline-3&quot;&gt;&amp;#x000A;&lt;h3 id=&quot;sec-1.1&quot;&gt;Supporting the further development of Clojure &lt;/h3&gt;&amp;#x000A;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1.1&quot;&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;p&gt;&amp;#x000A;Quoting Rich Hickey:&amp;#x000A;&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;&amp;#x000A;   It is important when using open source software that you consider who&amp;#x000A;   is paying for it, because someone is. There is no such thing as free&amp;#x000A;   software.&amp;#x000A;&lt;/pre&gt;&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;p&gt;&amp;#x000A;Rich makes a great case: &lt;a href=&quot;http://clojure.org/funding&quot;&gt;read the whole article here&lt;/a&gt;. I have chipped in&amp;#x000A;despite it being a rather tight year, and if you are a user of&amp;#x000A;Clojure, you should consider it as well. I think Rich is one of&amp;#x000A;those rare individuals who makes our entire profession better. If&amp;#x000A;you have followed any of the Clojure development lists, you can&amp;#x000A;quickly pick up how thoughtful he is in furthering the design of&amp;#x000A;Clojure.&amp;#x000A;&lt;/p&gt;&amp;#x000A;&lt;p&gt;&amp;#x000A;A language designer must contend with many opposing forces when&amp;#x000A;bringing a feature of a language to fruition. Is the feature&amp;#x000A;powerful enough to justify the added complexity? Is the feature&amp;#x000A;approachable to the bulk of the users of the language? Does the&amp;#x000A;feature fit into the existing language as a whole? Time and time&amp;#x000A;again I have seen proposed features go through the fire of Rich&amp;#x000A;and the Clojure community's scrutiny, and I think they have&amp;#x000A;succeeded in creating a language that has a great balance of&amp;#x000A;power, elegance and beauty. It's also really fun to use.&amp;#x000A;&lt;/p&gt;&amp;#x000A;&lt;p&gt;&amp;#x000A;I will comment on one other important aspect of Clojure that I have&amp;#x000A;noticed as well- the welcoming environment that Rich encourages and&amp;#x000A;enforces in the Clojure community. Trolls are not allowed to roam&amp;#x000A;free, and usually are quickly (but politely) guided to either be&amp;#x000A;civil, or to the exit. I think this has been a big component in the&amp;#x000A;quick growth we have seen in the Clojure community, and I hope it&amp;#x000A;survives as more and more people are drawn to the language.&amp;#x000A;&lt;/p&gt;&amp;#x000A;&lt;p&gt;&amp;#x000A;I hope this unique funding strategy works. Already the response has&amp;#x000A;been very positive (over 50% of the desired goal as of this&amp;#x000A;writing). I look forward to seeing the further growth of the&amp;#x000A;Clojure language and its community in 2010.&amp;#x000A;&lt;/p&gt;&lt;/div&gt;&amp;#x000A;&lt;/div&gt;</content>
</entry>
<entry>
<title>Hello Blog</title>
<link href='http://joelboehland.com/posts/hello-blog.html' />
<id>tag:joelboehland.com,2009-11-23:1259042400</id>
<updated>2009-11-23T22:00:00-08:00</updated>
<content type='html'>&amp;#x000A;&amp;#x000A;&amp;#x000A;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&amp;#x000A;&amp;#x000A;&lt;p&gt;This is the first post of my blog. Expect posts related to my&amp;#x000A;favorite programming languages (&lt;a href=&quot;http://python.org&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;http://clojure.org&quot;&gt;Clojure&lt;/a&gt;, &lt;a href=&quot;http://ruby-lang.org&quot;&gt;Ruby&lt;/a&gt;), and my&amp;#x000A;favorite development tools (&lt;a href=&quot;http://orgmode.org&quot;&gt;Emacs Org Mode&lt;/a&gt;).&amp;#x000A;&lt;/p&gt;&lt;/div&gt;</content>
</entry>
</feed>
