I finally finished Seveneves last night. I’ve been a fan of Neal Stephenson’s writing for years, going all the way back to Snow Crash. Seveneves did not disappoint.

If you’re familiar with Stephenson’s other work then you already know this is a dense, thick book. It’s 850+ pages filled with dizzying details about current and future technology. Stephenson does his homework. He deals with everything from robotics and orbital mechanics to nuclear power and even genetics. All of these complex subjects are seamlessly interwoven with a compelling story.

The book is divided into three parts. It might be better to think of it as a trilogy rather than a single book. Especially when you learn that part three starts with “Five thousand years later.” It’s here that Stephenson’s imagination runs wild and his talent really shines. His vision of the far future is fantastical, but explained so precisely and thoroughly that it is somehow still believable.

This is not a book to be undertaken lightly. It will take a while to finish, even for the fastest readers. But if the idea of an adventure spanning generations with a believable cast of characters and amazing settings sounds intriguing, you can’t go wrong with Seveneves.

The Vanishing Middle Class

A few days ago Jason Kottke linked to this review of a new book on the growing economic divide.

As someone who worked full time through college and financed classes and books with the help of my wife and our credit cards, I can relate. Passages like this bring back memories:

Here, the world of possibility is shrinking, often dramatically. People are burdened with debt and anxious about their insecure jobs if they have a job at all. Many of them are getting sicker and dying younger than they used to. They get around by crumbling public transport and cars they have trouble paying for. Family life is uncertain here; people often don’t partner for the long-term even when they have children. If they go to college, they finance it by going heavily into debt. They are not thinking about the future; they are focused on surviving the present. The world in which they reside is very different from the one they were taught to believe in. While members of the first country act, these people are acted upon.

Thankfully, that was almost 14 years ago and my family has moved on. For others, the situation is only getting worse.

I believe there are those in the “first country” who are willing to help (I like to think I’m one of them), but the current political climate makes this almost impossible.

» America is Regressing into a Developing Nation for Most People

Interesting Reads

I’m paid to spend my days staring at a softly glowing LCD. In the midst of writing code and attending meetings, I also browse the web. Most people would consider me an old-school web surfer. I still follow blogs and read posts in an RSS reader (Feedly if you must know).

I realize that long-form writing has mostly fallen out of favor, but I still enjoy it. As a matter of fact, I frequently come across articles that I feel need to be shared with the world. In the past, I’ve posted these articles on Facebook or Twitter, but I find that the less time I spend in the social media cesspool, the better I feel.

Having said all that, I plan to start adding links to articles that I particularly enjoy to this site. I’ll probably include a pithy comment along with a qoute or two. My interests are fairly varied — I still read a lot about programming, but trending towards more Python for data science and machine learning. I’m also interested in the current political situation and its effect on economics and the world.

If your interests overlap mine, you might enjoy some of the same articles. If not, feel free to keep on scrolling.

Hello Jekyll

If you’re reading this, then the migration from WordPress to Jekyll is complete. WordPress is a great blogging platform, but it just doesn’t fit the way I work anymore. I spend my days using git and GitHub and everything I write is plain text in Markdown.

With Jekyll I can write posts using Markdown in my favorite text editor, Byword on iOS or Atom on everything else, then commit to GitHub to update the blog. Hopefully this will result in more frequent updates, but no promises…

Where Are The Comments?

I’m very grateful for all of the awesome comments I’ve received over the years. Unfortunately, comment spam is still a big problem. Even with tools like Akismet to filter comments, some manual labor is still required. Here are the numbers for my blog as of today:

Wordpress Spam

That’s right – there are 123 comments on the site and 170,348 were blocked as spam. There are also 94 comments that might be spam. Those need my attention. I exported all of the non-spam comments from the old WordPress blog. Those may come back someday, but probably not. In the mean time, you can find my contact information at the bottom of every page.

Unfollowing Users

A few readers have also asked me to add an Unfollow button for the sample social network in Rails Crash Course. Here’s how I made that happen:

I created a new branch called unfollow-user and added the Unfollow button.

Here are the steps I followed:

  1. Update config/routes.rb to include a route for unfollow_user. Since this removes a row from the database, I used the DELETE HTTP verb.
  2. Add an unfollow! method to app/models/user.rb, similar to the follow! method.
  3. Add an unfollow action to app/controllers/users_controller.rb, similar to the follow action.
  4. Add a Unfollow button to the view at app/views/users/show.html.erb. I also added some logic to show the correct button.

The changes are in this commit: 29fa67a

Hope this helps!

Destroying Comments

A reader asked if I could add the destroy action to CommentsController for the sample blog in Rails Crash Course. The changes are summarized below.

I created a new branch called comments-destroy and then added the destroy action.

Here are the steps I followed:

  1. Update config/routes.rb to include a route for comments destroy
  2. Add a destroy method to app/controllers/comments_controller.rb
  3. Add a Destroy link to the comment partial at app/views/comments/_comment.html.erb

The changes are in this commit: f410496

Note this is the same as Exercise 3 at the end of Chapter 5. The answers for all exercises are in the back of the book.

Hope this helps!

No “Getting Started” Tonight

The Getting Started with Ruby on Rails workshop has been cancelled due to lack of signups. That’s a shame, I was really looking forward to this one. Obviously I didn’t do the best job of getting the word out about this event.

Let me know if you were also looking forward to it and I’ll see if I can set up another session in the future. Another alternative might be something like a screencast or Google Hangout.

Keep Talking

I’m giving the beginner talk at this month’s Austin on Rails meeting. Come to Capital Factory at 7:00pm on January 27 to learn about Active Record Associations. After my talk, Steve Madere is covering Hobo. Austin on Rails is always a lot of fun. The Rails community in Austin is great, there’s free pizza, and drinks and socialization after the meeting.

I’m also leading an evening workshop called Getting Started with Ruby on Rails for General Assembly on Monday, February 2 from 7:00pm – 9:00pm. General Assembly is new in Austin, but the company has been around since 2011. Today they teach classes all over the world.

This workshop covers the tools used by Ruby on Rails programmers, the basics of the Ruby programming language, and the components of Rails and how they work together. If you know the basics of web development, and are curious about building web apps with Rails, come spend the evening with me and see what Rails is all about.

Rails Crash Course

After way too many nights and weekends, and way too much iced coffee, it’s finally done…

Rails Crash Course Cover

Rails Crash Course is my new book on the Ruby on Rails web framework. This book is based on the curriculum I’ve used in the past to teach Ruby on Rails to both new programmers and experienced web developers.

The first section teaches the fundamentals of both Ruby and Rails. It covers the model-view-controller pattern used by Ruby on Rails in detail. At the end of the first section you learn how to set up a git repository for your application and deploy it Heroku.

The second section covers more advanced topics such as authentication, testing, performance optimization, security, and debugging. These concepts are explained as you build a simple social network app. It also covers creating your own Web API. The book concludes with a chapter on setting up your own Amazon EC2 server and deploying your application using Capistrano.

The book should ship around the middle of October (I already have my copies). You can preorder the book directly from No Starch Press or from Amazon.