Weblog
Reflections on Systems, Software, Tools, and Ideas
2010-03-06
Throwing Season
Spring is in the air, so I carried my 28# weight out to the open space for some weight for distance practice.

2010-02-28
First DenHUG Meeting
We had our first DenHUG meeting yesterday. It was just Ben Atkin and myself, but we had a good chat about Haskell and why we're interested in it. We're taking different approaches to learning Haskell, Ben is downloading and studying applications written in Haskell, while I'm reading Real World Haskell, and we're both experimenting as we explore the Haskell ecosystem.
Ben asked me what my expectations were for the DenHUG meetup group. I told him that it was an experiment to see if it would help me learn Haskell. This got me to thinking that I should probably have better defined goals for the group. Here's a rough cut:
- Learn Haskell and explore it's potential.
- Meet others interested in Haskell, and more generally, Functional Programming.
- Determine where Functional Programming works better then other programming paradigms and where it is a poor fit.
- Find out why one would choose Haskell over functional languages like Erlang, Ocaml, or Scheme.
2010-02-26
Data Parallel Haskell
Data Parallel Haskell: a status report presents promising results from the project. While still a work in progress, good multi-core speedups have been demonstrated. The approach maps the data parallel computations to a gang of threads whose execution can be interleaved with task parallel threads by the scheduler.
2010-02-23
MongoDB
MongoDB is a scalable, high-performance, open source, schema-free, documented oriented database written in C++. It has interfaces for Haskell, Python, and a number of other languages. "Documents" consist of binary JSON like data structures called BSON. It looks promising for real time analytics.
2010-02-20
Eucalyptus
The Eucalyptus Open-source Cloud-computing System provides a way for organizations to build private cloud computing infrastructures to flexibly provide computer resources to their users. Eucalyptus implements Amazon's EC2 and S3 cloud computing interfaces and runs user applications on virtual machines on a computer cluster for isolation and redundancy. It features a virtual network so that user applications need have no knowledge of the physical network.
2010-02-14
Cassandra
Cassandra is a distributed database for structured data developed by the facebook team. They open sourced it in 2008 and is now an Apache incubator project and used by a number of other companies for data sets as large as 150 TB. It's written in Java with bindings for a number of other languages including Python, Haskell, and Erlang. Combining Amazon's Dynamo distribution model with Google's Big Table data model, Cassandra looks promising for Ultra Large Scale (ULS) systems.
2010-02-11
2010-02-09
PyCon Regrets
Things are getting very busy at work, with travel that conflicts with PyCon 2010, and I've had to cancel my talk there. I was looking forward to it. Maybe next year.
2010-02-07
Palm Pre Plus
I've been interested in the Palm Pre and WebOS since they debuted at the 2009 CES, but it was only available on Sprint and I prefer Verizon. The Palm Pre Plus is now available on Verizon so I've upgraded to it from my trusty Palm Treo. The graphics are stunning, touch screen interaction intuitive, and mult-tasking outstanding. The biggest down side is the unimpressive battery life, it's been making it through the day with moderate use, but there isn't much reserve. I think WebOS has a lot of potential, but it'll take some time to get used to doing some things differently than Palm OS.
2010-02-05
Revisiting Cyber Renaissance
I've been doing some thinking about Cyber Renaissance and the system management problems the company is trying to solve. It's still an early stage startup and we're exploring some ideas about using autonomic clusters of computers to do useful work. This is an interesting problem domain, and may prove to be profitable.
We're looking at using a functional programming language such as Erlang or Haskell to implement this since they promise improved reliability and effective use of the multi-core processors that are now mainstream. As we develop our ideas, we'll experiment with the functional programming paradigm to see how well it fits both the problem domain and our brains.
2010-01-30
DenHUG
I've begun playing with Haskell a bit and thought it might be worth while to meet others interested in Haskell and Functional Programming. When searching for a local user group failed to turn anything up, I decided to be proactive. I started a meetup for DenHUG, the Denver Area Haskell Users Group. We'll see how it goes.
2010-01-23
FANN
FANN, the Fast Artificial Neural Network library, is an open source project from the University of Copenhagen. It is written in C with bindings for C++/Java, Haskell, Python, and other languages. It is well documented and seems to have an active community.
2010-01-21
How the Scots Invented the Modern World
In How the Scots Invented the Modern World Arthur Herman recounts Scots history from the 16th through the 20th centuries. While the Scots didn't create the modern world by themselves, they certainly played a key role. They rapidly transformed their martial feudal/tribal clan society into the first modern literate one.
The Scottish Enlightenment championed the voice of reason and inspired the framers of the Constitution of the United States. Scottish engineers, entrepreneurs, and soldiers powered the expansion of the British Empire. While embracing the world of science and commerce, Scots thinkers were aware of the dangers of forgetting the virtues of war which include courage, honor, loyalty, and perseverance and promoted citizen militias to counter this.
Today Scottish culture is celebrated in festivals and Highland Games around the world. While the Scottish people and culture are popularly considered Celtic, they were also shaped by Scandinavians, Anglo Saxons, and Normans. The surge of Scottish influence had subsided by the mid 20th century, but the effects permeate western civilization.
2010-01-15
Brian Neural Simulator
The Brian Simulator is a Python package for rapid development and testing of large neural network models. It achieves relatively quick execution speed by using NumPy to execute many calculations in each time step. For large models it up to 75% of the speed of a pure C implementation, but smaller ones suffer more from Python's interpretive overhead.
2010-01-10
The Gluten Connection
In The Gluten Connection Shari Lieberman surveys the gluten sensitivity issue. Celiac Disease is the most severe form of gluten sensitivity and once thought to be rare, is now known to be rather common with an estimated global occurrence of almost 1% of the population. Celiac is not curable, but symptoms are relieved by avoiding gluten from wheat, barley, and rye.
Less serious sensitivity seems to be more common, but the data is ambiguous. It's been associated with many gastrointestinal and autoimmune ailments and there are many anecdotal accounts of such ailments improving once the sufferer adopted a gluten free diet. Research provides some support for this but looks inconclusive. Still, a gluten free diet may be worth trying for those suffering from chronic ailments which have been associated with gluten.
2010-01-09
Exploring SLAPP
I recently downloaded the 2009-11-10 version of SLAPP (Swarm Like Agent Protocol in Python) and worked through the examples to see how it's coming along. It's still alpha quality and not organized as a package, but improving. Some file and directory names include spaces which is inconvenient for working on the command line. The code looks like Objective C written in Python. Tutorial 6 is under development but is functional. It converts a schedule.xls file to schedule.txt and fails if you don't have the xlrd module installed. Tutorials 7 and 8 are simply placeholders at this point. I also downloaded the Swarm documentation and Objective C source to help fill in the gaps.
I'm using Tutorial 6 as the starting point for a simple traffic simulation model. This consists of a four way stop intersection with the base case of drivers (agents) following the standard rule of proceeding through the intersection in the order they stop and yielding to the driver on the right when multiple drivers arrive at the intersection at the same time.
I'll massage the code from the tutorial to make it a little more Pythonic, package the core pieces to better support multiple models, and ensure compatibility with both Python 2.6 and 3.1. The tutorial has the beginning of a GUI interface using Tk which I may work on, though I'd like to see OpenGL and browser based interfaces as well.
2010-01-04
McGregor Mountain
We celebrated the New Year and my birthday at the McGregor Mountain Lodge. We went showshoeing, watched the birds, elk, and deer that visited the birdfeeders near our cabin, and relaxed.

2010-01-01
2009-12-30
Mark's Daily Apple
I stumbled upon Mark's Daily Apple, the blog of "Primal Blueprint" author Mark Sisson. It presents his take on the paleolithic/evolutionary fitness and diet lifestyle. In a nutshell:
- Primal Blueprint Law #1: Eat Lots of Plants and Animals
- Primal Blueprint Law #2: Avoid Poisonous Things
- Primal Blueprint Law #3: Move Frequently at a Slow Pace
- Primal Blueprint Law #4: Lift Heavy Things
- Primal Blueprint Law #5: Sprint Once in a While
- Primal Blueprint Law #6: Get Adequate Sleep
- Primal Blueprint Law #7: Play
- Primal Blueprint Law #8: Get Adequate Sunlight
- Primal Blueprint Law #9: Avoid Stupid Mistakes
- Primal Blueprint Law #10: Use Your Brain
One could do worse.
2009-12-27
JavaScript: The Good Parts
After taking another look at JavaScript, I'm still not inclined to use it for server side or command line scripting. When I do need to use it, I'll keep JavaScript: The Good Parts handy. This slim volume tells you what you really need to know to write good programs with the language. In addition to showing you how to use the good parts of JavaScript, it provides guidance for avoiding or working around the bad parts. Since JavaScript has more than its share of warts, this is invaluable.