Mitch Fournier

My Pleasantly Uneventful Open Mesh Umbilical Hernia Recovery

My new belly button...yeah, not so much, but it's closer to this than before the umbilical hernia repair

I recently passed the 40th day since my open umbilical hernia repair with mesh surgery.

Thank you all for the comments and email about my first post: what to ask your doctor prior to an umbilical hernia repair.

For the benefit of the community, I’ve included a few of your messages below with your names redacted (please pop me an email if you’d rather I remove your messages altogether).

As I mentioned in my first post, I was very nervous about having this procedure done. Yes, my belly button was disfigured and slightly uncomfortable when touched, but really, was that such a big deal?

I was at the tail end of an intensive 3-month exercise program and was very much enjoying the unencumbered physical exertion: jumping jacks, ab crunches, push-ups, resistance training, stretching and yoga. A week prior to my scheduled surgery, I had cold feet.

That’s when I reached out to my doctor with a bunch of questions and wrote up the previous blog post. Today, I’m happy to say that the entire procedure and recovery went exceedingly well, better than I expected even. Throughout the day, I have no reminders of the surgery short of a nicer looking belly button.

I’ve had no lingering pain, no “tugging” that others reported and no restriction at all when exercising (even ab crunches). Here are some day-by-day details of my umbilical hernia recovery experience:

Umbilical Hernia Recovery Day 1: the procedure and the first day

Continue reading »

My Atari 2600 MacBook Air Decals

For a while now, I’ve been looking for a good vinyl decal for my 13″ MacBook Air. Etsy has a bunch of great ones but none really capture the nostalgia or emotion that I want.

Tonight during the Patriots/Chiefs football game I created a few Atari 2600 inspired designs. I chose three of the games that I played a lot as a kid. I will probably pick one of these and cut my own decal unless someone chimes in with a good alternative.

Missile Command: The Atari game with the lamest easter egg of all time.

Atari Missile Command MacBook Decal

Continue reading »

What to Ask Your Doctor Prior to Umbilical Hernia Repair

My impression of umbilical hernia repair

My impression of umbilical hernia repair

(You can read the update on my recovery here: My Pleasantly Uneventful Umbilical Hernia Recovery)

Fair warning: this post is well off-topic from my typical Python/Django/tech focus. It does, nonetheless, share some useful information that I had a hard time compiling from Google searches alone, which is well in line with this blog’s purpose.

Next week I will be having my small and typical umbilical hernia repaired. Since this is my first surgery, I have been freaking out a bit. I have done a lot of Google searches looking for recovery stories and similar cases to mine. I have been particularly interested in the benefits of open vs. laparoscopic surgery as well as the mesh vs. suture repair method.

Over the past few months, I have been doing a lot of intense home boot camp fitness routines and am eager to learn what the recovery time for my umbilical hernia repair will be for various activities.

Continue reading »

How to capture and remotely save a webcam screen grab

Remote capture webcam images

I’ve had this WiFi enabled webcam looking down my driveway for over a year now. Since I work at home, it’s great for monitoring when deliveries, Jehova’s Witnesses and family members approach the house.

It is also useful for checking on home when I am away on vacation. I have grown to rely on it daily and I keep a small browser window with the video stream always up on one of my work monitors.

Up until this week, however, I didn’t remotely save any captured data from the camera. After reading about a home break-in over the weekend I decided to fix this. Below are the steps to quickly and easily store and display a series of 5-minute increment snapshot from your home webcam to a remote server.

Continue reading »

How To Import a CSV (or TSV) file into a Django Model

How to import a CSV file into Django

Recently I downloaded a US zip code data file in comma separated (CSV) format. Below are the steps and python script that I used to import that data into a django model for my site Wantbox.com.

The Steps to Import CSV Data into Django:

  1. Create your django model (mine is called “ZipCode”, see below).
  2. Create a python script called “load_data.py” with your correct django project and directory info (see mine below).
  3. Put the CSV file and “load_data.py” script in the same directory.
  4. From that directory run: python ./load_data.py”

That’s it. For a CSV file with about 42,000 rows this import took about 15 seconds. You can verify that the data loaded correctly by checking your django admin.

Continue reading »

Reducing Page Load Times Dramatically Increased my Googlebot Crawl Rate

We’ve heard it many times before: Google loves fast loading websites. Towards the end of this past June, I completed a move of my site Wantbox from a Dreamhost shared server to a dedicated Linode virtual server.

I really like Dreamhost’s hosting service, their nice dashboard and great customer service, but Wantbox had grown beyond shared hosting. I needed an environment that I could fully control and could no longer tolerate the downtime caused by other sites on my shared server.

I chose to move to Linode because of the competitive price, the positive experience from some friends and the great Django/Apache/MySQL StackScript setup script by Filip.

Perceptually, I noticed that the pages seemed to be loading faster, and confirmed an approximate 35% page load improvement using WebPageTest.org.

Continue reading »

What a Google Penalty Looks Like

Google penalty logoMy site Wantbox (find someone for remodeling the bathroom) recently recovered from a sitewide Google algorithmic penalty. With Google, you never know for sure why you were penalized, but after reading a lot of posts, interacting with a few SEO experts and doing some thoughtful head scratching I made a bunch of changes to the site and waited it out.

In the end, I believe that Google felt I had too many links from my online birth announcement site into Wantbox. I removed most of the links and added “rel=nofollow” to the remaining ones. I admitted my error in a reconsideration request to Google (Google’s response to my request included below), documented specifically what I had done to fix the problem and waited it out.

Below is the graph of how the Google penalty played out. I wasn’t surprised by the 90-day duration of the penalty: I had read other reports of similar link-based actions. I didn’t expect, however, the gradual ramp-back of the the “penalty release” period. In all, it took about 4 months to get back to normal traffic.

What a Google penalty looks like
Source: Clicky Search Traffic (my favorite analytics service)

Continue reading »

Debugging Nginx and Django: Viewing HTTP headers in Google Chrome

It seems like every time I setup a new Django project, I spend an inordinate amount of time getting the site and admin media (IMG, CSS, JS) to display correctly in my templates.

It doesn’t help that I haven’t standardized on a best-practices Django layout. Dreamhost shared servers require one site structure while the Linode StackScript I use (thanks Filip) suggests another. A move from Django 1.2 to 1.3 hasn’t helped either.

On my home development environment (Debian in VirtualBox on Windows), I use Nginx to serve static media for my Django development server. Although this improves my dev server performance, it complicates the setup of a new environment.

Continue reading »

Getting Started with AJAX in Django: a Simple jQuery Approach

AJAX in Django using jQuery

AJAX in Django using jQuery

I recently created a side project to explore a few tech areas I wanted to learn more thoroughly. One of those areas was how to implement AJAX in Django using jQuery.

In a nutshell, the site, TruthTruthLie.me presents three facts about you and challenges your friends to click on the one that is a lie.

When your friend clicks on a fact, I send the clicked fact_id via AJAX to a url. A Django url pattern routes the click to a view where I check what “type” the fact is, return the result via JSON to the client and update the page dynamically without a page refresh.

Continue reading »

Distilled Pro SEO Seminar: Day Two Recap

Pro SEO Seminar Boston Logo
Pro SEO Seminar Boston

Yesterday I attended day two of Distilled’s Pro SEO Seminar in Boston. Once again, the lineup of speakers was impressive and the tips, tricks and advice was mind-blowingly awesome.

I have so many notes, ideas and tests to try coming out of this conference that I’m looking into cloning myself as an SEO intern. We all saw how well that worked out for Michael Keaton’s character in Multipicity.

Similar to the Day One Pro SEO Seminar recap that I posted yesterday, as I track down the slides for each presentation I will link to them here.  If you attended, please feel free to leave updates in the comments and I will elevate them to the post if appropriate. Each presenter’s Twitter account is linked below. Follow them.

Continue reading »

Web Analytics