Data Sorcery
data-sorcery.org · Personal blog · on HN since 2010
A Clojure-focused blog on data analysis, visualization and the Incanter statistics library, with posts on parallelism and development practice.
What HN saysHN suggests it as the home of Incanter, a JVM data environment, and links its Hammock Driven Development cheat sheet from Rich Hickey's talk.
22HN people shared it
13linked it in comments
12stories submitted
204story points
8 years agolast shared
2010people per year2026
Most-shared posts
- 1Infix math6 people · first shared 2010
- 2Data Sorcery with Clojure3 people · 37 points · first shared 2010 · discussion on HN
- 3Hammock Driven Development Cheat Sheet3 people · 23 points · first shared 2010 · discussion on HN
- 4Contents2 people · first shared 2014
- 5An Illustrated guide to multi-core parallelism in Clojure1 people · 76 points · first shared 2010 · 7 comments on HN
- 6Incanter now has standalone executables1 people · 25 points · first shared 2010 · 1 comments on HN
- 7Data Sorcery with Clojure & Incanter: Introduction to Datasets & Charts1 people · 17 points · first shared 2010 · discussion on HN
- 8Creating Processing Visualizations with Clojure and Incanter1 people · 13 points · first shared 2010 · discussion on HN
- 9Getting started with Incanter using labrepl1 people · 4 points · first shared 2010 · discussion on HN
- 10Reading and writing Excel (xls) files with Incanter1 people · 3 points · first shared 2010 · discussion on HN
- 11Incanter 1.5.0 has been released1 people · 3 points · first shared 2013 · 1 comments on HN
- 12Statistical Learning in Clojure1 people · 1 points · first shared 2012 · discussion on HN
- 13New name for blog: Data Sorcery with Clojure1 people · 1 points · first shared 2010 · discussion on HN
- 14Statistical Learning in Clojure Part 1: LDA & QDA Classifiers1 people · 1 points · first shared 2012 · discussion on HN
- 15Pdf charts1 people · first shared 2012
What HN people wrote when they linked it
dkersten · 2019-02-21
There's Incanter[1], but I've never used it, so can't comment on how good or complete it is. And of course there are the article author's libraries: https://dragan.rocks/software/
[1] https://data-sorcery.org/
Chris2048 · 2017-11-01
Julia seems similar to python, and even runs fine on Jupyter. I think https://data-sorcery.org/ (incanter) might be good JVM environment.
vijucat · 2014-11-28
It just occurred to me that Hackathons which stress on the caffeine-induced sleepless continuous-production aspect of programming are the opposite of what Rich Hickey termed "Hammock driven development" : http://data-sorcery.org/2010/12/29/hammock-driven-dev/
I guess the "furious activity IS productivity" approach of such hackathons is appropriate if you're building the next great website where the assembly of components is the challenge but they are probably not great for solving open-ended problems such as designing an algorithm or figuring out how to solve a puzzle (a business puzzle, a programming puzzle, a life puzzle).
gte525u · 2014-12-04
Fundamentally it's macros and homoiconicity of code and data that give lisp it's expressive power. Combined they grant you the power to inject new syntax / domain specific languages (DSLs) directly into your code. Any new syntax you create can look like normal lisp or can have different syntax evaluation rules like infix math notation [1]. A number of years ago I did a short write-up on stack overflow giving a basic explanation of how macros work in common lisp which may be worth a read [2].
Macros in general work by being a syntax tree -> syntax tree transformation. The neat trick is it's not a static pattern like C - you can leverage functions, conditions, etc to build that syntax tree.
As for comprehensions themselves, if you want to see the power of lisp look at the loop macro. It's a single macro yet gives you the power of normal control loops, list comprehensions, for-each all rolled into one package. [3]
[1] http://data-sorcery.org/2010/05/14/infix-math/
[2] http://www.gigamonkeys.com/book/loop-for-black-belts.html
[3] http://stackoverflow.com/questions/267862/what-makes-lisp-macros-so-sp…
phillc73 · 2019-03-25
I've only very briefly used it and am by no means an expert, but perhaps Incanter?[1] Specifically the Plotting section on the Data Sorcery page[2] has more information.
[1] http://incanter.org/
[2] https://data-sorcery.org/contents/
vorg · 2014-10-25
> Now to get it working in Clojure
Perhaps you've seen the macro for infix operators in Clojure: http://data-sorcery.org/2010/05/14/infix-math/
Use that and all you'd need to implement for infix ops is a parser that translates {...} to ($= ...) for any sequence ... of tokens.
hashtree · 2014-05-31
Incanter, similar to R but based upon Clojure: http://data-sorcery.org/contents/
Another good mention, in addition to D3, for client-side graphing is highcharts: http://www.highcharts.com/
tensor · 2013-06-25
This can easily be addressed with a DSL.
http://data-sorcery.org/2010/05/14/infix-math/
evangineer · 2012-06-18
The cheat sheet:
http://data-sorcery.org/2010/12/29/hammock-driven-dev/
alexott · 2012-02-17
currently there is no such support in Incanter. Chars are implemented via JFreeChart that can export to JPEG & PNG out of box, although it's possible to export charts to other formats, such as PDF and Incanter supports it out of box with incanter.pdf/save-pdf function (http://data-sorcery.org/2010/02/05/pdf-charts/)
JoshCole · 2010-12-17
I think your defining "human" based on norm. I would prefer to define "human" based on a humans ease of use given familiarity with the notation. I prefer this definition because if you use what I take to be your definition you get oddities like Roman Numerals being more human than what we use today. Given this definition I'm not sure you can say he is purely rationalizing his choice, since he gives a clear example of a situation in which he finds that the notation is easier to use.
I don't feel strong one way or another on this issue, though I do program in Clojure. If you want infix math in clojure: http://data-sorcery.org/2010/05/14/infix-math/
nathanmarz · 2010-08-31
Here's infix math from the Incanter library for Clojure:
http://data-sorcery.org/2010/05/14/infix-math/
nnq · 2015-08-22
You're probably a verbal thinker, and English-like code matters a lot to you I guess. Probably lots of programmers are.
For me, a mostly visual thinker that ends up building and visualizing a code tree in his head anyhow, Lisp is very readable because I can more clearly see the tree without all the noise.
And when it comes to math, staying close to standard math notation is a clear winner, and this is why all lisps have ways of writing infix for formula-heavy code, stuff like http://data-sorcery.org/2010/05/14/infix-math/ and others. But lispers don't use them that much because they simply get used to the Lisp notation more.
...oh, and Common Lisp is NOT an example of readable Lisp. It's probably the most unreadable and obsfucation-friendly of them all :)
Take a look at some Clojure code for something that's just as readable as Python after you "get you eyes used to it" (jargon for learning to ignore the parentheses and learning the special meanings of the "funny symbols" like :, ~, # and a few more): https://github.com/weavejester/compojure/blob/master/src/compojure/cor…