January 23, 2013

As programmers, we need to know at least a little about a whole lot of things. Sometimes we have to skate along not knowing topics in depth. And every so often we get an opportunity to fix that. Like now.

We use math all the time, but do you really understand the foundations of math? Unleash your inner geek and revel in the beauty of mathematics. It’s surprising, it’s not what you expected, it will make you a better programmer, and its available now in beta from pragprog.com/book/mcmath.

Similarly, we use sockets all the time. But do you have the practical skills to use sockets and really understand how to do it right? Now you can, using pragprog.com/book/jstcp.

And if you need hands-on training in Rails or iOS, read on for details.

Enjoy!

### Good Math: A Geek’s Guide to the Beauty of Numbers, Logic, and Computation

Why do Roman numerals persist? How do we know that some infinities are larger than others? And how can we know for certain a program will ever finish? In this fast-paced tour of modern and not-so-modern math, computer scientist Mark Chu-Carroll explores some of the greatest breakthroughs and disappointments of more than two thousand years of mathematical thought. There is joy and beauty in mathematics, and in more than two dozen essays drawn from his popular “Good Math” blog, you’ll find concepts, proofs, and examples that are often surprising, counterintuitive, or just plain weird.

Mark begins his journey with the basics of numbers, with an entertaining trip through the integers and the natural, rational, irrational, and transcendental numbers. The voyage continues with a look at some of the oddest numbers in mathematics, including zero, the golden ratio, imaginary numbers, Roman numerals, and Egyptian and continuing fractions. After a deep dive into modern logic, including an introduction to linear logic and the logic-savvy Prolog language, the trip concludes with a tour of modern set theory and the advances and paradoxes of modern mechanical computing.

If your high school or college math courses left you grasping for the inner meaning behind the numbers, Mark’s book will both entertain and enlighten you.

Now available in beta from pragprog.com/book/mcmath.

### Working with TCP Sockets

The book is organized to start with the lowest-level concepts, then work up to the high-level Ruby wrappers, and finally up to more complex stuff. In the beginning you’ll find out how to create sockets using the lowest-level calls that Ruby offers. Following that, you’ll see the bind/listen/accept or bind/connect lifecycle methods for servers and clients, respectively. You’ll then learn about the various high-level wrapper classes that Ruby provides so you don’t have to worry about the boilerplate details.

The middle section of the book is all about more advanced topics such as properly implementing socket timeouts, SSL sockets, buffering, and more. The last section puts all the abstract stuff into practice by building an FTP server several times over using different concurrency patterns.

All the code in the book is written in Ruby, but this stuff doesn’t just apply to Ruby. The Berkeley Sockets API has been in use for more than 25 years and has bindings in any modern programming language. You can learn the fundamentals in Ruby, then take them with you when you’re programming in Python, Go, C, or whatever. This is portable knowledge that will serve you for many years to come.

This book was written and produced entirely by the author. We are proud to be distributing it from pragprog.com/book/jstcp.

### Learn to Build Rails or iOS Apps: Hands-on, Live Instruction

If you made a New Year’s resolution to learn how to build iOS or Rails apps, but need a hands-on, in-person kick start, The Pragmatic Studio has two courses just for you! Learn how to design and build high-quality apps from start to finish using best practices and expert techniques. Our next courses are:

• iOS Programming on February 11 – 14 in Reston, VA or April 9 – 12 in Denver, CO

### Don’t Get Left Out

Are your friends jealous that you get these spiffy email newsletters and they don’t? Clue them in that all they need to do is create an account on pragprog.com (email address and password is all it takes) and select the checkbox to receive newsletters.

Are you following us on Twitter and/or Facebook? Here’s where you can find us and keep up with the latest news and commentary, and occasional discounts.

### Coming Soon:

• OpenGL ES for Android: A Quick-Start Guide
• 3D Game Programming for Kids