Haskell: Initial reactions Mar 29

Background

I had never actually used any of the modern functional programming languages until a couple of weeks ago. However, I’ve worked quite a lot with the functional features of more multi-paradigm languages: python, R, ruby, javascript, etc. so I didn’t expect to be caught off guard by Haskell.

Introducing rhive Mar 28

Motivation

This fall, I found myself writing a number of Hive SQL queries, which was fun. The problem was that I was trying to do some not entirely simple things. In particular, I was trying to implement some of the R functions for data frames, e.g. melt, aggregate, etc. I started out writing these as shell scripts, but

Designing rsql: S3, S4 and expression evaluation in R Mar 27

S4 for rsql

For a variety of reasons, some good and some bad, I wanted to use S4 classes for the table objects in rsql. Among other things, S4 gives you inheritance, prototypes, and some other neat stuff. Just as important to me, but totally superficial is the fact that the contents (ie slots) of an S4 object are

Introducting rsql: programming SQL in R Mar 26

SQL is great, but it’s not R

SQL is a powerful language for manipulating data. R is a powerful language for manipulating data. Frequently, data to be analyzed in R actually comes from a database using a SQL query. Fortunately, there are a variety of great R

Hive, Hadoop and TypedBytes Mar 24

Hadoop Streaming and TypedBytes

Typedbytes is a binary format for serializing data that is supported by Hadoop streaming. Several different Hadoop applications have found dramatic performance improvements by transitioning from text formats (e.g. csv) to

Rewriting commits with git is easier than you think Mar 21

Trying to help

One of the things I’ve liked about git is how much it encourages responsible and clean commits. Personally, I’m not there yet. I commit when I think to, usually when I’m at a reasonable stopping point, which means I just end up doing git commit -a rather than adding and committing clean groups of related

Javascript's Nearly Unforgiveable Sins Mar 18

Logic

Implicit conversion with ==

0=="0"

But no unboxing with ===

0!==new Number(0)

Equality is not transitive

"" == 0 
0 == "0" 
"" != "0"

parseInt is not base ten!

parseInt("8"); //8
parseInt("08"); //0

Deploying a site with Middleman and Git Mar 7

Installing Middleman

First things first, so install rvm and all your dependencies.

\curl -L https://get.rvm.io | bash -s stable
source $HOME/.rvm/scripts/rvm
rvm install 1.9.3
rvm use 1.9.3
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile