Steve Yegge's foreword to Joy of Clojure
manning.com
manning.com
But then, I find out that you only get the pdf if you ordered from manning.. So, I email manning saying that had I know about the "order at manning instead of amazon", I really would have bought it there and that I'd be more then happy to blog about "Joy of Clojure" and give a link to manning's order web page.
So, then, I receive an email saying (summarized in my word): "Fu, it's your problem, next time buy it at manning, not amazon".
It really frustrated me.. I mean, isn't it the best way to demolish someone's best intention? I just feel like never ever buying anything from manning; never ever linking anything to their website, and spread the word about that story.
Am I over-reacting? What's your thought on that, fellow HN-users?
"[...]The Joy of Clojure can now be pre-ordered, which gives you access to the entire book as a PDF now, plus other formats including the printed book once they're available."
Which is misleading because you only get the pdf if it get pre-ordered FROM MANNING.
And, yes, you are right that I give a part of their profit to amazon, but I still give them money.
Maybe you are right that it is just "not nice" and not rage-worthy. Still, I don't like the idea of a company being "not nice" to someone giving them money.
Problem solved. If you don't want to do that, then you're over-reacting.
It looks like the page has been amended to say "The Joy of Clojure can now be pre-ordered from Manning".
Personally, they should work with you to remedy this situation through various steps. The first should be try to cancel your amazon order and place it through Manning. If that doesn't work, then ...
You have every right to be angry at your bad customer service experience.
Also, I seriously doubt that Manning responded to d0m's request by literally saying:
"Fu, it's your problem, next time buy it at manning, not amazon"
Pronounced "F-U" and not "foo".
The moment you twist someone's wording to sound that aggressive, you're overreacting.
I've given some paid members on setformarriage.com free lifetime accounts because they were consistently forwarding us emails from the spam profiles that made it through our filters. I think the value of overall goodwill to the customers is probably worth it.
For both of my comments, the score keep oscillating from +5 to -4. Which doesn't talk a lot because, if it continues like that, at the end, I will probably only have ~1 which won't give any clues about the opinion on HN-users. (i.e. people don't care about it vs half agree / half disagree!)
EDIT: Hmm, it only applies to the e-book only version.
As with many commodities, you can simply pass until the price is sufficiently low. Unless you really want the thing immediately.
I have a story that starts similarly to yours, but ends very differently. I discovered "The Joy of Clojure" from a post here on HN, and after some consideration, I decided to pre-order. I was familiar with Amazon, but not with Manning, so I checked them out a little. I read their page about MEAPs and preview releases and really liked what I saw, so I pre-ordered the e-book copy from them directly, got my MEAP copy immediately and started reading. Since then, I've purchased/pre-ordered a half dozen other titles from them (frequently on steep discount thanks to their daily deals and newsletter sales) and they've become my go-to publisher for tech e-books when O'Reilly doesn't have what I'm looking for. I can't help but feel that my life would be ever-so-slightly poorer if I had had a bad experience with them right off the bat and decided to avoid them in the future.
Regardless of which path you decide to take, I hope that you enjoy reading the book. As someone who's fairly new to Clojure and functional programming, I've found it to be a great way to get deeper into the language as well as expand my horizons by exploring concepts like laziness and immutability that I don't see often enough as a Python programmer. Happy reading!
The current page has been amended to say "can now be pre-ordered from Manning [link to the same MEAP purchase page], which gives you access to the entire book as a PDF now".
It looks like you helped them solve the "user reads about the preorder bonus and then chooses not to click on the nearby purchase link; instead bounces to Amazon, buys the book for half price, and then comes back asking for the PDF later" edge case.
They could certainly have just given you a copy of the PDF though. Probably not worth the hassle for Manning to argue the point.
If it is the only good Clojure book, then I guess you're just kind of stuck. I would probably just stick with the Amazon purchase then because it would feel like every additional dollar to Manning, I would't feel comfortable with. And you probably could get someone to donate their PDF to you.
I am in Germany, so ordering from Amazon seemed to be the fastest and cheapest way to get the book. But now I'm considering ordering from Manning.
I must admit that I would not think too badly about somebody who decided to torrent a PDF of a hardcover book he owns.
Thinking about it, maybe publishers could give out PDFs if there was a good way to prove ownership of the paper edition? If you ordered through Manning, they know you bought it, if you order through Amazon, they don't.
"Drinking through a fire hose", "understanding corner cases", and such are just euphemisms. Where's the beef?
The biggest advantage for my coding has actually been in my day-to-day Python work, where I'm much improved at designing functionally, parallelizing with multiprocessing, and building decorators and context functions to remove boilerplate code. So my Python is faster and cleaner; this is all thanks to being able to to think better about code design after working in Clojure.
For a good example of "why Clojure" take a look at Cascalog:
https://www.assembla.com/wiki/show/d9Z8_q-Omr35zteJe5cbLr
which leverages Hadoop/Cascading Java libraries and combines them with a Lisp-style custom query language.
http://www.paulgraham.com/avg.html
You'll want to not just read a book, but also get hands on experience with the language. That's where I found Clojure a good choice for me since I could work on problems of interest to my work and reuse existing Java libraries.
Joy of Clojure also presents a persuasive argument in the opening chapter for Clojure, Lisp and functional programming. There is a pdf of that chapter available for free from the author's website:
Since this is Clojure, and my DAG is build from Clojure's persistent data structures, iterating through all possible dags is easy. Clojure's "update" functions return new structs that share structure with the original, both the original structure and the new one exist at the same time. If I were using mutable data structures, I'd either have to deep copy a new DAG (slower), or write "rollback" code (buggy).
Additionally, because the Clojure data structures are purely functional, and Clojure includes tools for multi-threaded synchronization, parallelizing this algorithm is trivial.
A separate example: I have an existing function that can take several minutes to an hour to run. I wanted to add a button to the web UI that says "go run the function". Of course, you don't want multiple versions running at the same time, so you need to queue up the function call, and you don't want the user to queue up 5 calls when they only need 1. It took all of about 4 lines of clojure to make the function run in a separate thread and handle all of the above issues, and I'm guaranteed to never have multithreading bugs in that code.
In summary
* purely functional data structures greatly simply multi-threaded programming, and make some algorithms easier to write.
* Clojure is designed from the ground up to make multi-threading easy and painless. Many multi-threading tools are built into the language, and you don't have to deal with locking and deadlock unless you drop into the Java synchronization primitives.
However, it's a good thing you want a DAG, because with immutable data structures you're hosed if you want a cyclic graph. Or at least you won't be building them out of such structures, which means you aren't getting to use Clojure's functions for sequences, collections and maps. Thus Clojure does not seem to be a good tool for graphs.
I've built cyclical graphs in Clojure. The simplest form looks like
{:nodes #{:a :b :c}
:edges {:a #{:b}
:b #{:c}
:c #{:a}}}
(for non-clojurians, {} is a map, and #{} is a set)Clojure really shines in complex concurrent applications. In our case, it's a search engine for e-commerce, offered as SaaS, with instant search (so speed really matters). Without Clojure it would have been much more difficult to manage problems like concurrent switching to a new index while queries are being serviced.
I was initially skeptical and worried about implementation quality, but over 1.5 years of development we found exactly ZERO bugs in the language itself.
So there is beef. Start using Clojure and you'll find it.
Not sure if i prefer "class-five tropical storm" or a fire hydrant book shoved up. But those fire hydrant books, say,
- Wampler / Payne's Scala book, or
- Cesarini /Thompson's Erlang book
- Syme/Granicz/Cisternino for F#
- (dunno if real World Haskell is a fire hydrant; dunno which are scheme/common Lisp fire hydrants, and ocaml doesn't have one)
are very important, not to read in their entirety, but to figure out where to find stuff when you're hauling yourself out of intermediate developer-ness i.e. get you up to understanding production code, and cover the edge cases so you can figure out the corner cases and save you asking hundreds of questions on stackoverflow. Somewhere in amazon i wrote a book review that tutorial books cover 1 sigmas of the language, standard libs and dev environment, but books that cover 2 sigmas are rare.
And this is that book for clojure. And clojure does have that "perfect storm" feel
We certainly tried (and it ended up being 3x bigger than we planned): http://book.realworldhaskell.org/read/
[citation needed]
Unless the context is HN threads with "clojure" in the title.
Sadly, he's not written anything on his blog in a while.
Clojure hits the sweet spot between Yegge's "JVM languages shall inherit the earth" rhetoric in the fabulous "Rhinos and Tigers" talk and his longstanding fondness for Lisp. Clojure will probably never eclipse JS in mindshare even if it is a wonderful language.
http://steve-yegge.blogspot.com/2008/06/rhinos-and-tigers.ht...
Not really, no.
I work with Steve, and he's always been saddened that nobody really understood that the language he describes in his NBL article doesn't exist. He was hoping that someone would invent it.
http://sites.google.com/site/steveyegge2/
Of course ES4 was scuttled so I guess you're right. It can still be created.
"We are pleased to announce that The Joy of Clojure is now complete! As a MEAP subscriber you can download your copy of the finished ebook right now! "
I was starting to wonder if I was going to ever get a final copy.
When I pre-order from PragProg they update their PDFs much more often, and I can see the evolution of the book.
I was reading up on monads the last two weeks, these are the good sources I have found for Clojure: http://onclojure.com/2009/03/05/a-monad-tutorial-for-clojure... http://intensivesystems.net/tutorials/monads_101.html http://vimeo.com/20717301
Let me help. The "fever" line is an offhand reference to this fairly famous piece of American culture:
http://en.wikipedia.org/wiki/More_cowbell
You should obviously not feel ashamed for missing the reference completely. ;)
Not that I bought the book for the preface...
"So nobody could be more surprised than I was that a Lisp dialect ..."
"So nobody could be more surprised than me was that a Lisp dialect ..."
Then it becomes clear that "I" is correct.
No, it's not.
Your sentences are correct, though, but you altered them from the original by adding a verb, thereby requiring the presence of a subject. The original sentence doesn't have a verb, therefore they need the object form.
In other words:
"You're stronger than I am"
"You're stronger than me"
This last sentence is the form used in the article.
tl;dr Being a grammar nazi is a mug's game.
Conjunctions are supposed to connect whole sentences, and while "I am" is a complete sentence, "I" is not, which casts doubt on the correctness of "than I", thereby hinting that "than" in this case is a preposition, which mush therefore be followed by an object, e.g. "me".
It's a two century old debate, but I say we settle it right now, right here, on Hacker News, once and for all.
tl;dr: "than me" and "than I am" are correct. "than I" is not.
Sandy writes better than I. (Than I write.)
-- Strunk & White, 4th Edition, section 10.
I realize that grammar discussions are as boring as they come, but this is a case of someone learning English so it's important to be accurate.
It is unlikely that I'll convince you with any argument here, so I'll just recommend that you check out a reference on English usage. My favorite is Merriam-Webster's Dictionary of English Usage.
P.S. Clojure is great and I am enjoying this book so far.
Edit: Aha, I saw in a later response of yours that you're already aware that both usages are considered fine and just have a strong personal opinion. Carry on.