Incanter



Incanter is a Clojure-based, R-like statistical computing and graphics environment for the JVM.
oh i like this, very many :)

Again to note, the bliss of being on a huge platform while using a lean language gets you the best of both worlds: nice pleasant development with the possibility of leveraging mature libs to build your own killer app.

Video: Europe according to Estonians



Flavored with Estonian humor and with the right Eesti-English accent. (via JLM)

on the same page


Estonia can get as hot as a southern country :)

re-post: Software for NASA

The group has so much data accumulated about how it does its work that it has written software programs that model the code-writing process. Like computer models predicting the weather, the coding models predict how many errors the group should make in writing each new version of the software. True to form, if the coders and testers find too few errors, everyone works the process until reality and the predictions match.
from here

on Javascript

This Just In: JavaScript is a Real Language, and from a comment of that post:

Of course JavaScript is a real language, in fact you could go so far as to say JavaScript is a real functional programming language! Its native support of closures and higher-order functions puts it in a league that most developers never even considered it to be capable of.

On Douglas Crockford talk JavaScript: The Good Parts (worth checking) he mentions that Brendan Eich, the inventor of Javascript, actually wanted to code in Scheme, but was not allowed at Netscape so he inserted Scheme features into Javascript, thus the existence of closures and higher-order functions in Javascript.

And for the ones about to code:

Here's Douglas, javascript coding guidelines. Luckily, he's also created (and shared) a Javascript validator that we can use to check how correct and safe our javascript is, called jslint.

jslint can be run directly from web, but might be more convenient to integrate it into your work flow. For example, using Textmate (or command line), you can use Rhino(a Javascript Java interpreter) to run it like:

java -jar /dir/rhino1_7R2/js.jar /dir/jslint.js ${TM_FILEPATH}

Also, when using jslint don't forget to check the options to adjust the warnings and errors you want to see, when validating your code.

re-post: A Third Order Quine in Three Languages

This is a Haskell program that outputs a Python program that outputs a Ruby program that outputs the original Haskell program.
from sigfpe blog
How cool is that!

going up the abstraction ladder

The central idea behind functional programming is that of building new functions by composing existing ones. Monads move up a level of abstraction by hiding the plumbing necessary to compose functions whose parameters and return values are different. Monad transformers move up yet another level of abstraction by allowing monads to be combined so that the plumbing that each monad does is combined and abstracted away, but without having to write new code.
from: monads in clojure
And a some references of Monads tutorials:

clojure, twitter and test-is

Here’s a way, using clojure, to get your tests alerts on twitter.

Go get jtwitter, put it in your classphath and create:


(update "username" and "password" with your twitter login)

Then hook it up to the “test-is” library(test library in clojure): just overwrite the report summary method that by default prints out the summary of the executed tests.

Before:

After:

Just added a line calling the twitter-update method.

And thats it, now every time you run your tests, you will have the failures and errors twittered:

I've created a 2nd account on twitter where i post these automated messages. And have my clojure tests(regression tests actually) running every week, and letting me know if all is good.

This little twitter-update is very easy to use for any kind of alerts and automations.

ack is the new grep

This is a great improvement on your toolkit(if you use grep, that is).

Checkout ack, auto-entitled better than grep.

There's also a very nice Textmate plugin to replace the Find in Project. Its so much faster, does not block your textmate when searching and you are able to copy-paste the end results.

ps: I found it, from the tools on the edge article. Go have a peek you might find some more gems for your toolbox.

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

1980 - Alan Kay creates Smalltalk and invents the term "object oriented." When asked what that means he replies, "Smalltalk programs are just objects." When asked what objects are made of he replies, "objects." When asked again he says "look, it's all objects all the way down. Until you reach turtles."

1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.

1995 - Yukihiro "Mad Matz" Matsumoto creates Ruby to avert some vaguely unspecified apocalypse that will leave Australia a desert run by mohawked warriors and Tina Turner. The language is later renamed Ruby on Rails by its real inventor, David Heinemeier Hansson. [The bit about Matsumoto inventing a language called Ruby never happened and better be removed in the next revision of this article - DHH].

hilarious

HTML2Wiki converter tool

For those who work with Wikis, but already have HTML content. here's a little tool to help converting HTML to Wiki Format. Several Wiki's & Formats supported.