Wasn't there a reason that EventMachine <i>wasn't</i> pure Ruby? I remember someone else trying to build an event library in Ruby, failing, and then yelling at Francis Cianfrocca that EventMachine wasn't possible to build reliably under MRI --- maybe because of greenthread timeouts? I know, this sounds like gobbledygook even to me.<p>I am all for new programming books, and this one might be great, and the author has a good reputation. But in case you're wondering: the native sockets API hasn't changed much since Stevens wrote Unix Network Programming (are there any major changes at all besides sendfile?); UNP is one of the all-time great programming books. Also, you are absolutely well served by pulling down EventMachine, following the examples, and just using EventMachine's abstractions instead of Ruby's socket code. We virtually never use Ruby sockets; EventMachine is better.
My mini-review, from about halfway through WWTCPS:<p>Just as in "Working with Unix Processes", Jesse really knows how to explain things clearly and concisely, which is a rare gift among tech authors. The frequent code examples reinforce without excessive repetition, and he smartly limits the topic to just the socket API rather than trying to teach all of Ruby, HTTP, low-level TCP and so on. The result is not just an effective learning tool, but an enjoyable read as well.<p>I'd also like to note that rather uncommonly among programming books, both WWUP and WWTCPS come with a version of the book in plain text format. The plain text versions are suitable for viewing with 'less' in a terminal or (after stripping the color codes in WWUP's case) in your favorite text editor. It's a nice touch, the plain text book feels right at home in a tmux pane alongside a shell or two to run the examples.
I've been following Jesse on Twitter as he's worked on this book and he has really put lots of care into making this a good book. Sadly I didn't have time to review it yet but read his previous book in full and it was pretty good so Jesse is the real deal :-)
I'm a new Ruby developer. I came across Jesse's "Working with Unix Processes" by chance. I thought it might be too advanced, but it was actually perfect for even a newbie like myself.<p>Jesse's writing style is clear and concise, and he offers examples as to how one might implement these in the real world. (I think most books fail in providing examples of practical applications.)<p>His first book was so well-written and informative, I didn't hesitate to purchase his new one when I saw the announcement land in my Inbox.
If anyone is interested in understanding IP programming in the most technical way, Stevens' Unix Network Programming (UNP) is the bible: <a href="http://unpbook.com/" rel="nofollow">http://unpbook.com/</a>. I've dragged mine across 3 continents over 15 years and still refer to it regularly.<p>Jesse's book and release style is a fantastic resource for Ruby programmers who are digging down the stack. Well done.
The first book was pure gold and I desperately needed something that packed all that information so nicely. Really looking forward to this one on TCP Sockets.