<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1230460733059093971</id><updated>2012-02-16T00:38:12.766-08:00</updated><category term='ffi'/><category term='jquery'/><category term='parsec'/><category term='prime numbers'/><category term='compojure'/><category term='clojure'/><category term='profiling'/><category term='C'/><category term='haskell'/><category term='optimizing'/><category term='ghc'/><category term='database'/><title type='text'>Mostly Technical</title><subtitle type='html'>A web log about stuff I've worked on. Mostly about programming in Haskell and things I've discovered along the way.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-2886391870281813152</id><published>2010-02-15T17:35:00.000-08:00</published><updated>2010-02-15T17:47:19.156-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='parsec'/><title type='text'>Parsing with Parsec</title><summary type='text'>At work I deal with geospatial data a lot. One of the formats I often work with lot is called RMX. It's a text based format for describing geometry and attribution on geometry. If I want to do any complicated work with RMX using Haskell I need to parse it in Haskell. I've chosen to use Parsec as the parser to learn a bit more about using parser combinators, and I've chosen to parse RMX because it</summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/2886391870281813152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=2886391870281813152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/2886391870281813152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/2886391870281813152'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2010/02/parsing-with-parsec.html' title='Parsing with Parsec'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-5915969646063002572</id><published>2009-08-08T16:04:00.000-07:00</published><updated>2009-08-08T23:10:43.293-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='ghc'/><title type='text'>GHC 6.10.4 on RH4</title><summary type='text'>Getting GHC 6.10.4 working on RHEL4 is a bit of a task. Certainly RH provides no RPM for such an old version of their OS and the Linux binary provided by the GHC team doesn't work on such an old libc. So I had to build it. Unfortunately, trying to build it from scratch (boot strapping) resulted in an error that I needed a newer version of gnu make. It needs gmake 3.81, and RH4 has gmake 3.80. </summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/5915969646063002572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=5915969646063002572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/5915969646063002572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/5915969646063002572'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2009/08/ghc-6104-on-rh4.html' title='GHC 6.10.4 on RH4'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-2634942684213022072</id><published>2009-06-28T15:31:00.000-07:00</published><updated>2009-06-28T16:17:09.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compojure'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Compojure and SQLite Part 2</title><summary type='text'>Continuing from the previous post, I added table inserts. In addition, I started adding some decorators to help avoid repeating code. Since there was some refactoring, many functions changed a lot.Here's the top chunk:(ns db-edit (:require [clojure.contrib.sql :as sql]) (:use clojure.contrib.json.write) (:use compojure)); Information about the SQLite database(def db-params {:classname   "</summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/2634942684213022072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=2634942684213022072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/2634942684213022072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/2634942684213022072'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2009/06/compojure-and-sqlite-part-2.html' title='Compojure and SQLite Part 2'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-7527027554429673550</id><published>2009-06-22T21:39:00.000-07:00</published><updated>2009-06-28T16:12:48.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compojure'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Compojure and SQLite</title><summary type='text'>Continuing with learning Clojure and Compojure better, I decided I'd wade through some basic DB access. Eric Lavigne has a great post with all the basics. I decided to write a small web app that allows a database to be viewer and (eventually) modified. Again, fairly simple so I don't confuse myself. The full clj file is include at the bottom of the post. The app starts with some basic definitions</summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/7527027554429673550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=7527027554429673550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/7527027554429673550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/7527027554429673550'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2009/06/compojure-and-sqlite.html' title='Compojure and SQLite'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-6303119213402585585</id><published>2009-06-09T08:16:00.000-07:00</published><updated>2009-06-09T08:43:43.564-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compojure'/><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><title type='text'>Basic Compojure Calculator</title><summary type='text'>Compojure turned out to be relatively simple for making a basic URL driven calculator. Go to a URL like http://localhost:8080/add/4/5 and you get a page that simply says, "9". The Compojure documentation isn't complete yet (the site is quite upfront about that, and honesty is always nice), but along with examples online, there's probably enough to make a real web app. The full code is at the end </summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/6303119213402585585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=6303119213402585585' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/6303119213402585585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/6303119213402585585'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2009/06/basic-compojure-calculator.html' title='Basic Compojure Calculator'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-3508977600433307732</id><published>2009-06-08T22:08:00.000-07:00</published><updated>2009-06-16T20:35:15.449-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compojure'/><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><title type='text'>Clojure and Compojure</title><summary type='text'>A while back I tried out Clojure. It was my first real foray into the land of Lisp like languages, other than copying, pasting, and slightly modifying elisp chunks for Emacs which doesn't really count. It was very... interesting. I was writing a small IM bot to try it out, but couldn't find any reliable Java libraries for protocols other than XMPP. Nevertheless, I did get a basic bot working with</summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/3508977600433307732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=3508977600433307732' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/3508977600433307732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/3508977600433307732'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2009/06/clojure-and-compojure.html' title='Clojure and Compojure'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-7029950603536405112</id><published>2008-06-07T22:18:00.000-07:00</published><updated>2008-06-10T19:18:16.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='optimizing'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='prime numbers'/><category scheme='http://www.blogger.com/atom/ns#' term='profiling'/><title type='text'>Prime Number Profiling</title><summary type='text'>I've been trying to write an efficient prime number generator. So far the best I've been able to do is about 2.3 seconds for the prime numbers less than one million. Using a normal sieve, it is possible for a C++ program to generate the primes in less than 0.05 seconds. So my goal is to get it to 0.5 seconds without having to resort to funky unsafe operations or basically writing the C solution </summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/7029950603536405112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=7029950603536405112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/7029950603536405112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/7029950603536405112'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2008/06/prime-number-profiling.html' title='Prime Number Profiling'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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></entry><entry><id>tag:blogger.com,1999:blog-1230460733059093971.post-1831391480607979056</id><published>2008-05-02T00:16:00.000-07:00</published><updated>2008-05-02T21:35:32.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='ffi'/><title type='text'>Foreign Function Interface in Haskell</title><summary type='text'>I'm messing around learning to make foreign function interfaces in Haskell. It was sufficiently annoying that I decided to actually document what I did. I picked something, anything. It didn't have to be useful, and I would certainly not implement it in a sane way. The point is to get a chance to try various aspects of the Haskell FFI. I settled just boolean operator evaluation. And not even any </summary><link rel='replies' type='application/atom+xml' href='http://dufflebunk.blogspot.com/feeds/1831391480607979056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1230460733059093971&amp;postID=1831391480607979056' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/1831391480607979056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1230460733059093971/posts/default/1831391480607979056'/><link rel='alternate' type='text/html' href='http://dufflebunk.blogspot.com/2008/05/foreign-function-interface-in-haskell.html' title='Foreign Function Interface in Haskell'/><author><name>dufflebunk</name><uri>http://www.blogger.com/profile/16745901322657722222</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></entry></feed>
