143 comments

[ 2.2 ms ] story [ 216 ms ] thread
My wife and I made this site to make it easier to find tech-related books.

It's fairly simple so far and more features are planned.

I'm submitting early on to get some wider feedback. Thanks to all the HNers that reviewed this before today already!

Very useful and damn fast!
As quite a few have asked via the comment form: it's a nginx + passenger + ruby 1.9.2 stack, with solr for indexing, mongodb for data back-end, rails fragment caching in redis, and a warmup script to fill the caches.
That's a great stack. Any reason you went with Redis for the caching instead of memcached?
Well I'm more used to Redis, as I've used more than a couple of times with Resque (job processing in Ruby).

I started the crawler behind HackerBooks with Resque and Redis, but ended up saving some RAM by going back to a simple daemon. I reused Redis to provide the caching.

So well: I mostly used what I was used too.

Definitely makes sense if you're already using Redis for something else.
Sweet domain name. Did you have to shell out a lot for it?
I spent a bit of time on that, I must admit :)

In the end I paid 90$ for 3 years, which is OK I guess.

on that note, hackertext, hackermenu, hackerledger, hackerconventions, hackerelite, hackerplans, hackermanifest, hackerstatement, hackerplay, hackersection, hackervolumes, etc... all seem to be free. (shameless plug for nametoolkit.com - downvote me if you wish ;))
Those who code together, stay together!

Or was it the opposite?

We're going to work together on a SAAS product and became associates (after moving to the countryside).

Wish us luck :) (and communication, it's needed :-)

Thank you for building this. I admire the simplicity and elegance. Would be cool if the "Mentioned 2 times at Hackernews" was hyperlinked to the mention. Can this be done?
It will totally be done :)

Next iteration will be on making the navigation better, so that you can click on everything that's possible.

just curious... how do you parse (and find the titles) from SO and HN? Only checking from publishers/distributors links?

Keep the good work. I love it :)

My only suggestion is to offer a ranking and order the results by # of quotes

Glad you like it! Really :)

On parsing: it's actually a somewhat fastidious process that involve digesting a couple of GB of data, but here is the bottom line.

I look for amazon.com links in the content in general - I will broaden that to other publishers and full-text extraction too later on.

The content itself comes from the StackOverflow dump (for SO) and a mixture of a crawler allowed by PG + the previous database dump that was available at some point.

I extract all the books, quotes, users data from both, conform these into a common schema, and index the whole result.

Hope I answered your question properly - feel free to ask again if you'd wish.

On ranking: I know what you mean! I need to find some way to balance number of quotes with textual relevance, which requires me to dive a bit more into solr. I currently use textual relevance first because it gives more useful results so far.

Are you making any revenue from referrals?
The site is just released, so it's currently 0$ :)

We'll see how it goes.

Thanks :)

For ranking, instead of textual relevance (which will be hard to achieve :/) and # of quotes (it can be easily hacked/spammed or new announced books will have a huge weight on the ranking), I suggest you to check timelines: if a book is quoted once/twice/... a month regularly, I'm pretty sure it worths reading it

I'll love to read about the architecture behind the site... yep, technically curious :)

I will offer a more advanced search with similar features, definitely!

On the architecture: I'll create a side-blog that will outline all I learned while working on this. It's been a crazy ride actually (especially because I started using chef and vagrant full speed).

I'll post it back here in all cases.

Looks like a very useful site, thanks!

Questions: Apart from the "Quoted by" section, is any of the content from SO or HN displayed on the site? E.g. are any comments incorporated in the book descriptions, or are those written by you/wife?

Glad you like it!

Currently, no content from HN/SO is displayed apart from the Quoted by area.

We're not editing anything manually; what I will do is display the actual conversations in the "Quoted by" area, either when you click on a conversation.

I may ove the quotes above to make them stand out more.

Did I properly answer your question ?

Ok, so the book description is written manually?

Was justing wondering if the content might be touched by any copyright issues etc.

Aaah - I see :) The book description is provided by the Amazon API itself; I'm not aware of any issue with publishing it if you are a registered API user.
Tweaking relevance is not super-easy with Solr. We designed IndexTank to have a very simple way to play with ranking. You can modify your formulas in your dashboard or through the API and see the results order change in real time.

I really love what you got here. I'd be happy to help you try out IndexTank and make it better. It would really take the Solr configuration burden off of you.

Hi!

well I considered using IndexTank earlier on, especially because I didn't know yet how to deploy Solr. The relevance is mostly done already, I just needed to learn to use formulas :)

One thing that put me off is your cap in queries per day. The smallest paid plan (50k items in index) is capped at 1,000 queries per day.

Isn't that an issue for most sites ? Do people usually cache your results ?

The 1k cap for the 50k doc plan is old, we will be upping that significantly. What would be a number of queries per day that would make you comfortable?
That's a good news I think :)

I can't really tell yet, but my guess is that at least around the number of indexed documents could give a more usable subscription.

It would also be nice for people to know what happens if you go beyond the cap: do you offer some tolerance ?

We don't deny the service no matter how far beyond the cap you go. In case the cap is overpassed very often, we just contact the user.
I like it! You might add links to the questions so people can see from the references what ground the book covers.
Glad you like it - it's planned really: you will be able to click on discussions, "quoter", author etc. I will make it more explorable.
I'm a nobody, but consider making the pages less clicky and more product page-y, with the external references that provide the structure of your site constituting something of a "topics covered in this book." I think the references/links should be at least as prominent as the book blurb that currently serves to authoritatively describe the contents. My point is that the contents may actually be described (for sufficient numbers of refs) better by listing how people are actually recommending it, how its readers are using it. You could even implement a semantic parser that constructs a new book blurb based on the words and sentences in the recommendations and references. :) Anyway, good luck!
Awesome site. Is there any way you can add a filter for "free" for ebooks?
Should be doable most likely. I added it to the backlog, thanks!
Awesome site! Verrrry useful for SOers and HNers.

I dont know if there is an API for it or not but if you can get the Amazon rating of a book and display it on the book description page, it will be great. :)

Thanks!

On AZ ratings: I wrote that down. It's somewhat complicated because Amazon just made it a bit harder to embed that. It now has to be an iframe; the iframe url must be refreshed every 24 hours.

But overall this should be doable to, I'll see if I can make it usable.

Thank you!

I found AZ ratings to be mostly useless, what would be better is the total number HN/SO points accumulated from all the recommendations for that book.

edit: not a mix, but separate points for each community

Mmm - a kind of book karma. Something like mixing the karma of the commenter with the heatness of the discussion etc ?

I think being able to filter on SO vs HN would definitely give different results, too.

The topics are sometimes fairly different on both sites.

You should sort the books by the number of times they have been quoted.
That was what I was doing initially, but actually it has (big) sideeffects: if you search Ruby and get the most quoted book, you get... an ASP.Net book!

So I'm currently working on balancing textual relevance (eg: Ruby) with the number of quotes.

Thanks for your feedback!

Useful, and also a neat way to make some side-cash via your affiliate link. I suspect I'll be checking this regularly.

One thing that would be really handy - or at least interesting - is a "most recently mentioned" list. For example, when people were talking a lot about Program or be Programmed a while back, it would have been fun to see that rise to the top.

It may generate some side-cash via the affiliate links - it would certainly be useful to us. We'll see how it goes anyway :)

The most recently mentioned list is a very good idea. I had something similar in mind, like a news-letter that would send the "most mentioned this month", so you can get the trends.

Would you find that useful ?

I think it could be useful for sure. Both a most recently mentioned list, and most often mentioned list. I'm more interested in the latter as it is more telling.
Overall I must work on making the data more exploreable, definitely.

My pet peeve is allowing to find books quoted by X, where X is some instance of someone I appreciated on HN :)

I think I will create a labs section with various experimentations like these, so people can try them out and see if it's useful.

Perhaps a combination, like a sort of TechMeme for books?
If making cash via an affiliate link is the goal, it would make sense to have the link to the user's localised Amazon site. I much prefer to buy from Amazon.co.uk as I'm UK-based so right now I'll just highlight-> right-click-> google the title and end up bypassing the affiliate link.
Well it's only a secondary goal, as I don't expect to make loads of money with it, but it would certainly be nice.

Being able to select your amazon store is planned as well (I'm in France so I totally understand your point :-)).

I choosed to ship without that though, to see if people like the site first or not. It will require a bit of work underneath to do well, things such as verify in the background if a book is actually available on amazon.co.uk, .fr etc to avoid sending the person to the wrong place.

I'd track the comments page. http://news.ycombinator.com/newcomments

In this respect you'll see new Amazon links every so often in: http://twitter.com/hackerlinks (the tweet will begin with Amazon) http://hackerbra.in/links

This site is really a good idea. The Amazon links can get quite popular (I know from looking at my Amazon stats on @hackerlinks when I had the affiliate code inserted.)

I didn't know about this page - I'm currently doing a 2-days late crawling, so this will help me make it realtime instead. Thanks!

I didn't know about hackerlinks either - just subscribed!

Wow, good idea. I've browsed it this morning and it's an excellent website. Some things I might add is a link to the context of where the book was cited and also better categorization. (i.e. effective C++ in compiler book). But otherwise, amazing. Thank you
Thank you!

I plan to display the actual conversation in some way on the site itself, if I can. Lot of people told me it would be useful.

I will also work on some topic extraction, yes!

I agree about the context, very important to judge the value of the suggestion!
This is a great idea, and executed well! Awesome!
Thanks for the kind words! Really glad you (and others) like it after the time I spent on it :)
This is a great idea. Simple, yet effective, and well executed.

I wish I'd thought of it.

You need to adjust your tokenization settings. --Searching for C, C++, and C# all return the same results right now.
Thank you - need to learn a bit more of solr to do that. I Will definitely to it!
It's probably not too difficult, although my guess is you'll have to refeed your content. Unfortunately I've never worked with solr so I can't offer suggestions on where the modifications need to be made.
No worries really - thanks already for giving the feedback.

I know for sure it can be done with some configuration tweaking, not even sure I'll need to reindex.

Thanks!

I can't see any book details / list now. I haz error 500.
Thanks, I'm diving into it currently.
Works now.
I've reduced the number of passenger instances, in hope to keep things alive until I can upgrade.

Thank you for mentioning this!

Fixed - I was out of memory slightly, which sent solr and mongodb to the graveyard. I need to upgrade memory a bit.
Is it possible to sort in different ways? Am guessing it's sorted by latest recommendation at the minute?

I searched PHP and would like to see by # of recommendations...

Not yet! But I need to work on more sorting/filtering, definitely.

It's currently sorted (in that order) by 1) textual relevance and second 2) number of quotes.

Perhaps you should put a note about this on the result page, as currently it looks like it's random.
What language/tools did you use to build it?
I used: ruby 1.9.2, ETL (extract-transform-load), vagrant, chef, mongodb, redis, sunspot/solr, rails 3, cucumber, rspec.

I plan to write a couple of blog posts explaining the "how" later on! It's been an interesting ride really.

Awesome. I recently ordered the well-grounded rubyist as I've heard great things about the book (though its on page #2 on your site). How long did it take you to complete the project?
It took much too long: around 300 hours as of today.

But a large part of it (the 2/3rds) was a learning exercise around chef and vagrant, which wasn't necessary to the project.

Of the remaining third, I've got around 70% for data processing in general and 30% on pure front-end code and design.

I really wanted to learn how to deal with sysadmin in a more productive fashion, so I took the plunge :)

would be interested to hear your learning experience in sysadmin.
Since I started freelancing in 2005 I've always deployed my stacks myself, learning gradually.

I always felt that doing it manually (even using well-written notes) then gradually home-baked tools was a loss of time.

I looked at chef more than a couple of times, waiting for the documentation to be more available, and for feedback from people I know.

I started using chef with the opscode platform, then went back to chef-solo as it really fits my needs already.

I'm using it for client work as well as for everything behind HackerBooks (including Rails app deployment without capistrano anymore).

The consequence is that I can boot a new ubuntu instance from scratch, completely configured with the whole stack (rvm, rails 3, passenger, nginx, solr, god, the properly configured crawler, data restored from a S3-like etc) in less than 15 minutes.

I will never go back to manual sysadmin (apart from small tips) - this really fits my way of working.

But it has been a time-sink to get in :)

Hope I replied to your question properly, if I didn't, ask again!

Click on our website:

==== ( http://asso.in/url/hp ) ====

Christan Audigier bikini $23

Ed Hardy Bikini $23

Smful short_t-shirt_woman $15

ed hardy short_tank_woman $16

Sandal $32

christian louboutin $80

Sunglass $15

COACH_Necklace $27

handbag $33

AF tank woman $17

puma slipper woman $30

==== ( http://asso.in/url/hp ) ====i ~ ¤ ╭⌒╮ ╭⌒╮ ╭⌒╭⌒╮╭⌒╮~╭⌒╮ ,)))),'')~~ ,''~) ╱◥█◣ ╱◥█◣ |田|田||田|田| ╬╬╬╬╬╬╬╬╬╬╬╬╬╬

"Which is the most quoted book"? or "What are the top 10 among most quoted books"? these were the questions going in my mind, while I'm browsing.
Just wrote that down, thanks!

I will probably come up with some kinds of list, and will definitely work on better sorting/filtering.

I wonder sometimes if it'd be worth creating a site that aggregates all the most useful and interesting information from social news sites like Reddit, HN, etc. like this site does for books on HN. I spent a long time finding all the best "life hacks" on Reddit the other day and really found some gems.
Well working on this definitely gave me other ideas. I think overall, the online data should be more easily searchable/sliceable, at a user level...
Interesting resource. Another related site would be DanielBMarkham's http://www.hn-books.com/ ...
Yes I know about Daniel's site, which was released while I was working on hackerbooks.com. I decided to keep working on it anyway, but it took me a fair amount of time to release.
I recently registered fivegoodbooks.com with the plans of trying to reduce choice aversion for technical books. i.e. the top 5 referenced books by the community to start learning a subject. This is really nice work, now I'm the one to have to decide if I keep working on it :)
Thanks for your kind words! Well I can see myself using both sites, really :)

That' what I learned from working on http://www.learnivore.com too - at the same time came out http://rubytu.be/, but I used both actually, and some people preferred one, some other the other.

I encourage you to ship anyway :)

Nice domain name... got me thinking. I wish there existed a community I respected that curated books on all topics. Like, I'd love to have fivegoodbooks extend from topics like Ruby and Python to Russian History and Urban Planning.

Another interesting idea maybe would be to map the annotations/bibliographies of all books, so I could start with books I've read and better see what kind of linkings exist. You could visually see the seminal works in a field and all the branchings. Maybe that already exists in some form?

Interesting. I had a shower idea(tm) one morning where the combination of a rating and user-supplied biographical data at the time of the rating (e.g. "I was a novice with Python when I read it") determined a book's effectiveness.

The idea was founded on the tendency that people are skill-biased when rating books. They might dislike a book for being confusing or too easy because it wasn't designed for them at the time of reading. This was an attempt to figure out which books were just bad, and which were only rated bad because they were read without proper experience (or too much).

Ultimately, using community data, a visitor would be able to discover a "bookpath" of great resources that syncs up with their level of skill.

I had something similar in mind for http://learnivore.com earlier on.

I wanted to create a community-edited wiki page providing a "training path" which would involve screencasts, books, articles.

I think it would really be useful actually.

Love the site and I intend to use it.

The wiki approach would be great if the data was laid out appropriately. Community-edited wiki might lead to a singular view of what a good path would be.

The benefit of a multi-axis rating system is that you could lay out data using different permutations and add/subtract inputs (e.g. rater's experience at time of rating/age/hell, maybe even personality type). I'm sort of modeling this off of robust scientific questionnaires.

It does seem to require some more user involvement, but nothing a fantastic UI couldn't fix.

Do you mean hackerbooks.com or learnivore ? (or both ? :-).

I would love to be able to build something like you describe, but I suspect it will be time consuming, that said!

I really like this idea, especially if the "bookpaths" converge.. i.e. the ruby path and python path converge to broader topics such as general software development (pragmatic programmer etc.)
Thanks for this amazing initiative. Looking forward to more features.
I welcome any feedback later on if you have ideas etc (use the form on the top of the site!).
Love it! Nice clean and simple without the clutter of non-hacker type books!
Site looks great - really great - on a macro level, but when you get down to it, it doesn't really have the content I'm looking for.

There's extreme misuse of the space on the page. When I was looking at Code Complete (a book I've been trying to get my hands on for a while), there is very little content about the book. The synopsis is cut off (!) and there are no reviews. But if you were trying to save space, why on the hells are there over 9000 books following in "quoted discussions"? You need to switch what you're truncating here. Also, I would suggest at least copying Amazon's ratings for some measure of book quality.

For reference: http://www.hackerbooks.com/book/code-complete-a-practical-ha...

Hey - I understand what you mean, really. I really want to work on this specific page, and I'm actually frustrated to have released it this way :)

Here's what's planned:

- instead of cutting the book description like it's done currently, you'll be able to expand with a click

- I'll do the same on books and quotes, because hundreds of books are not useful in the "suggested books list", definitely

- and I want to focus more on getting the actual quotes to the front (eg: allow to read the actual quotes by HNers etc) because I feel it brings significant usefulness

I'm mixed on the Amazon ratings, both because recent API changes made it unpractical to really use the content (it's now an iframe that must be used as is, and refreshed every 24 hours), and because sometimes the reviews are fake as well.

So I'll try to bring more value by letting users know what people think on HN and SO.

Would these points make the site more useful to you ?

Definitely yes, though I don't know why it would be necessary to trim the synopsis at all in most cases.
Thanks!

On the synopsis: well in some (too frequent) cases, the synopsis was just several pages long, so the related books and quotes were really, really hidden.

I need to find a better middle ground.

But in all cases, thanks for your critics, it will only help me make the site better.