Posts by Jeff Geerling about life, marriage, religion, philosophy and technology. Formerly titled 'Matthew 12:37 - Blog by a God-fearing Man'.

Il bambino / La bambina and retrospective

This is old news to some, but my wife and I are expecting a baby early in this new year. Please say a prayer that everything goes well! (No, we don't know the gender; and no, we will not be sharing pictures or other info publicly at this time, Mr. Zuckerberg's thoughts on privacy notwithstanding!)

On another note, I have at least five large bits of writing that I'm still working on—a photography book, a few articles and tutorials for this site, and some other things. Hopefully I'll be able to find some time to get thoughts on paperscreen soon!

For now, check out some of these popular bits from 2012 you may have missed:

In addition to helping Flocknote grow by leaps and bounds this past year, I've launched Server, a website monitoring service, moved into a new home (giving me incentive to write about things like Tips and Tools for New Homeowners), and done a ton of Drupal development. Not a bad year!

More Christian Allegory in The Dark Knight Rises: Peter Foley and Sampietrini

There was a thought-provoking article by Catholic Veritas titled The Dark Knight Rises: Sacred Art. Most of the main characters, locations, and themes were related to similar Christian names, places, and themes, but one character left unexplored was Peter Foley, the deputy police commissioner who had a rather large role in the film, considering the number of other leading cast members.

I noticed, in watching the movie a second time, a certain scene where police are martyred by the main protagonist (to the words of "Shoot them. Shoot them all."), and the camera moves to a closeup of one of the police officers (Peter Foley), laying murdered in the street, in his dress attire.

Sampietrini Officer killed in the Dark Knight Rises

An observant person would notice a few things about this scene:

  • Like Peter the Apostle (and first Pope), this particular officer (Deputy Commissioner Peter Foley) had earlier denied the call by commissioner Gordon to come out of hiding for fear of the angry mobs that were wont to kill people in positions of authority (including the police).
  • Foley, who had seemed a coward when he was in hiding while his compatriots were hopelessly imprisoned in the city sewers, was the first to step forward into the battle to defend the city, and all the other police officers followed his lead.
  • The stone pavement underneath the Foley is made up of small, square stones—hearkening to the sampietrini, found throughout ancient Rome. (More on this later).

Like C.S. Lewis, it seems that Christopher Nolan sometimes hits his audience with an allegorical 2x4 sometimes! That officer matches very well the profile of the Apostle Peter—and Christopher Nolan seems to make his allegorical statement even more blindingly obvious through the subtler things. In this case, the pavement.

Sampietrini – 'Little Peters'

Jeff Geerling standing on Sanpietrini pavers outside of St. Peter's square
Yours truly, trying to make a happy face just outside St. Peter's square (Rome, Italy).

When my wife and I visited Roma after we were married, our tour guide gave us a short history lesson about the distinctive pavement found throughout the streets and sidewalks of most of Rome. Instead of using concrete, asphalt, or any other kind of pavers, Rome uses thousands of small squares of volcanic stone, nicknamed 'sampietrini'.

The reason for this name is that the stones were originally chosen by Pope Sixtus V as the pavement for St. Peter's Square (in the Vatican), and eventually for most of Rome, Italy. St. Peter's square is built around an egyptian Obelisk that was originally placed in Rome by the Emporer Caligula in 37 A.D., and was in a Roman circus. It just so happens that this particular circus was the one in which Peter the Apsostle was matryed—thus, the Church built the magnificent namesake basilica in that location.

The stones received the nickname sampietrini—'little St. Peters'.

So, is it simply coincidence that the 'martyered' police officer (who denied the police force and later became its de facto leader in its great battle) died in a square paved with stones hearkening to the sampietrini—or is Nolan really that deep with his allegory? Looks like we'll have to go all Inception on this thought and see how many more layers Nolan has placed in this movie!

Server - Website and Server uptime monitoring

Server is a simple and inexpensive server and website uptime monitoring service I've recently launched.

Server logo

If you have a website or online service you need to make sure is running, Server is a great way to get notified when there's a problem. Unlike most other monitoring solutions, Server offers free SMS (text) messages and email notifications, and it only costs $15/year (just $1.25/month!).

The Motivation

There are probably thousands of other uptime monitoring services on the web, and it's typically a good idea to use existing tools rather than build your own—if they're practical for your needs!

I had three main requirements for any service I wanted to use:

  1. I needed to monitor a few websites (at least three).
  2. I didn't want to spend more than ~$20/year.
  3. I needed SMS (text message) notifications, and I didn't want to pay a bunch extra to get them.

Many services hit one or two of these marks—some extremely well! However, no service I found could meet all three of these requirements, though a few did come close.

Knowing that SMS messaging is relatively cheap (typically around $0.01 or less per message), and knowing that I needed a new challenge, I decided to build myself the best possible server monitoring and notification system I could—for myself. I built every feature I wanted, and made it fit my workflow perfectly. It's ridiculously simple, it lets me get email and SMS notifications, and it even shows me how my sites are performing over the past day and month.

Unlike many of my personal projects, though, I noticed that this service is one that would be good to share with others—I believe it's the simplest and most inexpensive solution for individuals and small businesses who want to monitor their servers and websites.

It doesn't have all the fancy bells and whistles of other more 'enterprise-level' solutions, but I don't need that. I just need to know when one of my sites goes down, so I can react to the outage quickly. Downtime is lost money!

The Execution

I often think of Drupal as a bit of a golden hammer, but it really is a flexible tool that can do a wide array of things very well. Drupal helped me build the core components of Server—user management, login, content management, and user interface—quickly and easily. The site is running on Drupal 7 (though I'm beginning testing with Drupal 8), along with a few stable contrib modules to fill out the UI.

Responsive design on Server website.

I used the excellent Zen theme framework to build a fully-responsive HTML5 theme, and jQuery (baked into Drupal) to add a little UI goodness here and there. I spent a lot of time trying to make sure that users on any device or viewport would receive an optimal overview of all the information they needed to see.

For the back end—the server checks, notifications, etc.—I have a mixture of a few custom Drupal modules, some drush scripts, and some other custom glue. I find a real value in using Drupal's APIs (Batch API, Queue API, Form API, Database API, etc.) along with drush to scale out certain kinds of services, instead of starting from scratch (though, at some point, I will probably need to break a few services away completely).

I've built everything in a modular fashion so it should be relatively easy to scale horizontally as I get constrained by the number of users. (Right now everything's running on one server, and I've projected that I can keep it this way for the first batch of users—hopefully I'll be able to expand soon, but I'll consider Server a success if it pays enough to cover the costs of email, hosting, and SMS (remember, I really just built it for myself ;).

I'm also experimenting with Python and Node.js to see if I can get HTTP checks and pings to happen more efficiently. In the end, though, I will stick with whatever's simplest, even if it doesn't incorporate the most amazing new technologies programming languages. (Notably, the majority of Server runs on MySQL, PHP, Apache and CentOS. I know this stack well, and I am loathe to change unless I have a good reason, or until the performance, scalability or structure is a crutch. So far this has not been the case on any project I've worked on in my career.)

Currently, I'm using cURL for HTTP checks, and a custom-built class for PHP, Ping for simple IP/domain pings.

Payments are processed through Stripe, and this is the first time I've ever actually built something on top of Stripe's excellent API—in the past I've used PayPal and some other payment processors who used SOAP, XML, or other protocols, and had very poor DX (developer experience). Many services don't have a test environment, or have a very poor test environment (cough PayPal), and barely comprehensible API documentation. And you can forget about helper libraries for common languages (Ruby, Python, PHP, Java...). Not so with Stripe. I'm extremely satisfied with Stripe so far, and I think their platform is a major boon to online payment acceptance.

Sign up now!

If you're interested in knowing when your servers or websites are down, or tracking their performance over time, please consider signing up for Server—it only takes one minute!

Any questions about the service, or suggestions to make it better? Please let me know below or in this Hacker News thread.

Pope Benedict XVI joins Twitter as @pontifex

While Pope Benedict has indirectly used Twitter and other forms of online media to promote the faith in the past, he has never had an account on any social network to which he (the royal he—the Papacy) has been personally connected.

Pope Benedict XVI signature on Twitter background

That's going to change as of December 12 (the feast of Our Lady of Guadalupe), when he tweets from the new @pontifex account (available there and in other languages at @pontifex_[language code]). The announcement made Twitter's own blog, and is detailed a bit more in this post:

“In concise phrases, often no longer than a verse from the Bible, profound thoughts can be communicated – as long as those taking part in the conversation do not neglect to cultivate their own inner lives.”

On the 12th, the Pope will be responding to questions posted with the hashtag #askpontifex (which is already lighting up with thousands of questions).

I welcome Pope Benedict to Twitter, and hope that the Vatican can help make the @pontifex account a viable means of communicating the faith and interacting with the world at large—in bite-sized chunks.

Here's to a new era of integrated Vatican communications!

Replacing the hard drive in a (non-unibody) MacBook Pro

A friend of mine had an older 2008 MacBook Pro (the kind that does not have the modern 'unibody' construction), and he noticed it was getting slower. He upgraded the RAM to max it out at 4 GB (I think it might be able to go to 6 or 8 GB if needed). But a lot of things took a long time to do, even though the Mac had a 1.86 Ghz Core 2 Duo processor (not a slouch by any means).

He asked me to replace the hard drive with an SSD, so I did. I followed this iFixIt guide, and put in a new OCZ Agility 256GB SSD, which is way faster (especially for random access, like when you boot the computer or launch an app) than the old disk drive that I removed from the MacBook Pro.

I recorded the entire process (about 23 minutes) using my Nikon D7000 along with a Audio Technica PRO88W wireless microphone, and posted it on YouTube:


Subscribe to Reviews Subscribe to Articles Subscribe to All Content Subscribe to Blog