I'm presently debating between using Haskell or Clojure for data analysis here at work (or most likely some combination of the two), so the timing couldn't be better.
This is a really shallow analysis, and I'm not claiming it's the god given truth. I've been following clojure for awhile, I've listened to--I think--all of Rich Hickey's talks. I've also been recently reading more and more about Haskell. I always come away feeling like they're two of the most "pure" language I've encountered. I don't mean that in a functionally pure way (though there's that too) but ideologically and vision-wise. They both just feel really clean and focussed compared to a lot of languages I use.
I think I lean toward haskell right now just because I'm doing .net full time and doing .net and anything even remotely related java ecosystem at the same time would probably make me crazy. It's my own mental hangup, but there it is.
Yeah, I've followed Clojure from afar for the past two years or so, but haven't yet had a reason to use it at work. I like a lot about the way the language is laid out, and whenever I watch one of Rich Hickey's talks I find myself instinctively wanting to sell all my possessions and walk the earth handing out "Data is Code, Code is Data" tracts. The few times it's seemed like Clojure might be a good fit for something small, I've ended up using Racket (for whatever reason I find all the infrastructure around writing and deploying Racket to be less cumbersome than all of Clojure's Java-ness)
So far, I've written all the "collection" type stuff in my system in Haskell, and I'm glad I ignored everyone's hemming and hawing about it, because it was actually a really pleasant experience. Now that I'm gathering a lot of disparate data, I'm in the "what the hell do I do with it?" phase of my project. I'm trying to resist sucking it all into Hadoop (partly because I'm a one-person operation and even a small Hadoop cluster would be larger than all of the systems that are generating the data that I'm monitoring, and partly because I can keep about a years worth of data comfortably in memory).
So I'm basically using this as an opportunity to try out whatever kinds of data analysis I think sound interesting, and then hopefully learning what is a good fit and what isn't. This is all uncharted territory for me, and I'm fortunate to be in a position where I can do what I want and don't have any time pressures.
I figure I can try to use this data to learn about statistical modeling, graph analysis, and machine learning. For the time being, I'm favoring Haskell for this, but that's not really any type of requirement. I just find that I enjoy Haskell a lot right now, so I should see how far I can go before the honeymoon ends and the awfulness is revealed.
Sometimes I feel like programming paradigms are philosophical sects and I like thinking about them more because they can be incredibly abstract but have really concrete applications.
Glad to hear that you're digging haskell. The initial push into a language always has me a bit nervous, especially with something like haskell where I feel like I really need to dig in to get the feel for it. I know they say you don't need to know category theory to appreciate it, but I'm pretty interested in it anyway.
I'm sort of in a similar position (except in a corporate job). I have my day to day responsibilities, but I can keep those at bay with some diligence. I also have access to lots of really interesting data (I work for a really large retailer and can access 100% of our chat transcripts, for instance). It makes me really interested in text analysis, clustering, etc, and while there are other languages that seem like they might make more sense, pragmatically, this would be a side track and I think using haskell would be more interesting for myself, especially if I end up doing most of the work on it in my spare time, as kind of a for-fun but useful project.
Good luck with your data. Let me know if you decide to walk the earth talking about nonduality in programming; maybe I'll join you.
I recently did data (log) analysis with Clojure. So far, really enjoyed it. I use gorilla-repl, which is the reason I picked Clojure in the first place. Be able to use (in browser) REPL to play with data, and display table/charts just using Clojure in browser really helps.
I have studied and still a fan of Haskell, only did some small sideline project with Haskell before. Would love to read this book. and maybe use it in the future.
There is also the sequel to the Clojure Data Analysis Cookbook, Mastering Clojure Data Analysis[0].
While I don't know for certain I'm going to theorize the Haskell Data Analysis Cookbook began as a Haskell version of the Clojure books since they've were written by a student and professor, respectively, at UVA.
Both of the Clojure books are excellent - you can look at them as a practical hands on way of learning Clojure as an experienced programmer. I'm familiar with Nishant's excellent quality of work so I imagine the Haskell Data Analysis Cookbook would help a curious programmer learn practical Haskell. (I intend to pick up a copy for just this purpose.)
Any plans for a Kindle or other ebook version? This looks like a fun presentation of an interesting topic, but I'd love to read it electronically on a laptop so I can try out the examples.
Thanks! I lazily only clicked through to Amazon and didn't see it there.
I don't know what's involved in getting the Kindle version into Amazon's store, but it might be worth it, as their buying experience is very slick - one click and you're reading the book in 60 seconds.
Having purchased a few of of Packt's books, I have to say that I have not missed the Amazon store infrastructure to get things on to my Kindle. Having a choice in the formats from Packt is kind of awesome. If I want Kindle, I can send to Kindle. If I want proper pagination and the ability to make sure figures haven't been mangled, PDF.
Easy enough to get it onto a Kindle after buying from the Packt site, but +1 to looking into getting it on Amazon's Kindle store as dealing with Packt was less than stellar.
On first visiting Packt site (thru link on your website) the paper+ebook bundle was shown as $43.99, and I sometimes spring for those if they're discounted enough, especially pre-order (as this is, or used to be anyway). On clicking through that to add to cart, it showed up as $54.99, and on going back to original page it now showed price at $54.99 also. Now the eBook showed up as $9.99 (don't recall what it was on original version of page) so I just went for that instead, as that was pretty well discounted... and it shows up as $10.00 when added to the shopping cart, not $9.99. Upon that, on completing purchase they announced a failure to deliver email to my supplied address (very rarely an issue.) hahaha not worth pinging Packt over a $.01 difference, and I suspect the earlier price changing issue might have been a sale promotion that was changing to a different price effective today (publication date?) or thereabouts, and perhaps old versions of the page were being served... but still... good thing Packt takes Paypal as that kind of thing leaves me a bit disinclined to supply them with my CC number...
Anyway, once purchased on Packt's site, they have an 'Email to Kindle' delivery option which worked within a few minutes.
Book looks very interesting, and likely a great way to dive in and learn Haskell. Looking forward to it!
I got the same error message - "Unable to send e-mail. Please contact the site admin, if the problem persists." Packt also signs me up to 5 newsletters (not that Amazon doesn't, but that's a problem I already had :)).
Still, an ebook this substantial for $10 is awesome. I hope the Packt discount isn't eating into the author's profits :(
I bought the book for $10 also. Yes it does cut into the author's profits, but tech book authors generally don't write motivated for making a lot of money :-) Rather, the advantages are sharing knowledge and meeting a lot of cool people. I have written several books, and writing is a pathway to meeting interesting people.
Out of interest, why not just self publish on the net avoiding the whole money angle altogether? Is there another advantage in going down that route if it basically doesn't pay?
Same here. Was showing $43.99 for the bundle, ends up as $54.99 when checking out. Going back to the main page still shows it at $43.99 (but it says "Print cover: $54.99" in small print, whatever this means).
Well, after lunch when I went to pay for it, somehow the ebook was $10. I removed the book and was able to get the ebook for $10. As others have said, while it's a nice price, I like to see the author get rewarded for their effort, so I'll probably do the "upgrade to print".
I also picked Paypal because I'm not sure if this is some clever dynamic pricing/optimization engine or if the site is buggy!
Exciting to see this, but it's painfully clear how much work there is to be done for Haskell to be a competitor to, for example, what is available in Python.
Nice! I've been wanting to get further into haskell (I'm a newb with it) and get into some data analysis/machine learning, specifically on text. Going to pick up a copy of this.
Looks very interesting. I briefly skimmed the code samples on GitHub for Chapter 3 (about strings) and was surprised to see no mention of Text or ByteString. Surely those are integral for real world Haskell use when dealing with strings?
This is an excellent landing page for a technical book. I haven't seen this style before, but the code snippet and details for each chapter gave me a good idea not just of the book's content, but of its emphasis and assumptions.
It suggested that this was a book about solving practical problems (e.g. all the bullet points about file formats, integration points like databases/Twitter/IRC, visualisation), assuming some Haskell knowledge (little time spent on Haskell concepts) but little machine learning knowledge (bullets showed elementary topics like MD5 alongside more advanced topics like perceptual hashing).
Based on this landing page, I bought the book; I probably would not have done so based only on the title and a synopsis.
I just wanted to say I agree entirely with this. It gives me great confidence that this book was well thought out when the chapter by chapter snippets are so clear and concise. I like the drawings too that gives my imagination something to grab onto and breaks it up a little.
Hello Nishant, I bought the book today and it looks very useful. Thanks! I am in the process of using Haskell for most of my new projects after using Clojure for years.
37 comments
[ 2.5 ms ] story [ 88.5 ms ] threadI'm presently debating between using Haskell or Clojure for data analysis here at work (or most likely some combination of the two), so the timing couldn't be better.
I think I lean toward haskell right now just because I'm doing .net full time and doing .net and anything even remotely related java ecosystem at the same time would probably make me crazy. It's my own mental hangup, but there it is.
So far, I've written all the "collection" type stuff in my system in Haskell, and I'm glad I ignored everyone's hemming and hawing about it, because it was actually a really pleasant experience. Now that I'm gathering a lot of disparate data, I'm in the "what the hell do I do with it?" phase of my project. I'm trying to resist sucking it all into Hadoop (partly because I'm a one-person operation and even a small Hadoop cluster would be larger than all of the systems that are generating the data that I'm monitoring, and partly because I can keep about a years worth of data comfortably in memory).
So I'm basically using this as an opportunity to try out whatever kinds of data analysis I think sound interesting, and then hopefully learning what is a good fit and what isn't. This is all uncharted territory for me, and I'm fortunate to be in a position where I can do what I want and don't have any time pressures.
I figure I can try to use this data to learn about statistical modeling, graph analysis, and machine learning. For the time being, I'm favoring Haskell for this, but that's not really any type of requirement. I just find that I enjoy Haskell a lot right now, so I should see how far I can go before the honeymoon ends and the awfulness is revealed.
Sometimes I feel like programming paradigms are philosophical sects and I like thinking about them more because they can be incredibly abstract but have really concrete applications.
Glad to hear that you're digging haskell. The initial push into a language always has me a bit nervous, especially with something like haskell where I feel like I really need to dig in to get the feel for it. I know they say you don't need to know category theory to appreciate it, but I'm pretty interested in it anyway.
I'm sort of in a similar position (except in a corporate job). I have my day to day responsibilities, but I can keep those at bay with some diligence. I also have access to lots of really interesting data (I work for a really large retailer and can access 100% of our chat transcripts, for instance). It makes me really interested in text analysis, clustering, etc, and while there are other languages that seem like they might make more sense, pragmatically, this would be a side track and I think using haskell would be more interesting for myself, especially if I end up doing most of the work on it in my spare time, as kind of a for-fun but useful project.
Good luck with your data. Let me know if you decide to walk the earth talking about nonduality in programming; maybe I'll join you.
I have studied and still a fan of Haskell, only did some small sideline project with Haskell before. Would love to read this book. and maybe use it in the future.
[0] http://www.packtpub.com/clojure-data-analysis-cookbook/book
[1] http://www.packtpub.com/clojure-for-machine-learning/book
While I don't know for certain I'm going to theorize the Haskell Data Analysis Cookbook began as a Haskell version of the Clojure books since they've were written by a student and professor, respectively, at UVA.
Both of the Clojure books are excellent - you can look at them as a practical hands on way of learning Clojure as an experienced programmer. I'm familiar with Nishant's excellent quality of work so I imagine the Haskell Data Analysis Cookbook would help a curious programmer learn practical Haskell. (I intend to pick up a copy for just this purpose.)
[0] http://www.packtpub.com/mastering-clojure-data-analysis/book
I don't know what's involved in getting the Kindle version into Amazon's store, but it might be worth it, as their buying experience is very slick - one click and you're reading the book in 60 seconds.
On first visiting Packt site (thru link on your website) the paper+ebook bundle was shown as $43.99, and I sometimes spring for those if they're discounted enough, especially pre-order (as this is, or used to be anyway). On clicking through that to add to cart, it showed up as $54.99, and on going back to original page it now showed price at $54.99 also. Now the eBook showed up as $9.99 (don't recall what it was on original version of page) so I just went for that instead, as that was pretty well discounted... and it shows up as $10.00 when added to the shopping cart, not $9.99. Upon that, on completing purchase they announced a failure to deliver email to my supplied address (very rarely an issue.) hahaha not worth pinging Packt over a $.01 difference, and I suspect the earlier price changing issue might have been a sale promotion that was changing to a different price effective today (publication date?) or thereabouts, and perhaps old versions of the page were being served... but still... good thing Packt takes Paypal as that kind of thing leaves me a bit disinclined to supply them with my CC number...
Anyway, once purchased on Packt's site, they have an 'Email to Kindle' delivery option which worked within a few minutes.
Book looks very interesting, and likely a great way to dive in and learn Haskell. Looking forward to it!
Still, an ebook this substantial for $10 is awesome. I hope the Packt discount isn't eating into the author's profits :(
I also picked Paypal because I'm not sure if this is some clever dynamic pricing/optimization engine or if the site is buggy!
It suggested that this was a book about solving practical problems (e.g. all the bullet points about file formats, integration points like databases/Twitter/IRC, visualisation), assuming some Haskell knowledge (little time spent on Haskell concepts) but little machine learning knowledge (bullets showed elementary topics like MD5 alongside more advanced topics like perceptual hashing).
Based on this landing page, I bought the book; I probably would not have done so based only on the title and a synopsis.
I found it weird that Packt Publishing changed the currency from USD to British pounds when I input my address, which is in Brazil.