DIY: Fall off the bone BBQ Ribs in 2 hours

My grandpa made ribs this way and as a kid I would watch and even help.  My mom continued on the tradition and now this is one of my favorite meals to serve for friends and family.  I mentioned at lunch today at a great BBQ place that I don’t order ribs because I always wish I was eating my own!

Here’s what you need:

  • Heavy duty aluminum foil.  As good and strong as you can find.  I buy mine at costco.
  • Soy Sauce
  • Liquid Smoke ( Your favorite flavor)
  • St. Louis Style Pork Spare Ribs – This cut of ribs is just the right thickness to get meaty, delicious, fall-off-the-bone ribs in 2 hours
  • A large tray for carrying the ribs around and working on them during cooking.
  • BBQ sauce –  Know your audience.  More on this later.
  • Spices ( Optional if you buy pre-rubbed ribs ).

Here’s what you do:

  • Open up the ribs, apply your rub and stick the ribs in the fridge for a couple hours.  Sometimes I buy a couple slabs that have already been rubbed and skip this step.
  • Take everything down by your grill and fire the grill up hot enough to sear.  I usually go to 500 degrees.
  • Sear each side of the slab 6-8 minutes with a quarter turn halfway through so you get real good grill marks and seal the juices in.
  • After searing, quickly place the ribs into the heavy duty aluminum foil.  Put a light line of liquid smoke down the ribs.  Similarly sprinkle the ribs with Soy sauce.  Put on your bbq sauce.  A couple of notes about this step.  The soy sauce seems to soften up the meat a little bit more than normal.  For the BBQ sauce, if everyone likes the same kind of sauce, put a bunch of that on.  If your group all likes different, some sweet, some hot, etc…  then just put a little bit of a traditional sauce and they can pick their own sauce later.
  • Foil them up real good.  With the heavy duty foil and some good tongs, you shouldn’t puncture the foil.  If you’re worried that you might, go ahead and wrap in foil a second time.  We want to keep those juices in there.
  • Place the foiled ribs back on the grill on indirect heat at about 300 degrees for 90-120 minutes depending on the thickness of the ribs.  If your grill isn’t big enough to get truly indirect heat, do the best you can and rotate the ribs every 15 or 20 minutes turning a burner or two back on to get the grill back up to temperature.
  • Final step, cut them with kitchen scissors!  Using a knife can pull the meat off the bone.

Now I know a lot of BBQ smoker experts don’t like their ribs this way, but nearly everyone else I’ve ever met thinks these are the most delicious ribs they’ve ever tasted.

If I’ve forwarded this recipe and you’ve got questions, let me know.

Happy grilling!



Download Latest iTunes Reviews with a Quick Python Script

Ever wanted to be able to download the latest itunes reviews for your app to display on your website, understand & analyze user requests better, or just have a copy for yourself?

I was trying to do just that and was happy to find that itunes support RSS feeds for every app in iTunes using the app id.

It’s super simple once you know the format to start fetching your reviews and doing whatever you want with them programmatically.

How to Download Latest iTunes Reviews

1.  Find your app’s id by looking at the url to your app on itunes.

2.  Construct the url to your RSS feed by replacing the <id> with your id (just the number part).<app-id-goes-here>/json

3.  Start writing code to do whatever you want with reviews

A Quick Python Demo

This sample is pretty simple but quickly shows what is possible by printing out the rating and review for the most recent reviews of the app.

import json
import requests

resp = requests.get('<app-id-goes-here>/json')
itunesrssjson = json.loads( resp.content)

for entry in itunesrssjson['feed']['entry']:
 print "{1}".format( entry.get("im:rating").get("label"), \

Let’s say you only want to look at 5 star reviews.  Just add a quick little if statement in there.

for entry in itunesrssjson['feed']['entry']:
 if entry.get('content') and entry.get("im:rating").get("label") in ["5"]:
   print "{1}".format( entry.get("im:rating").get("label"), \


That’s it!  Use or learn some python skills to sort, filter, fetch additional reviews and more.  Or you can always use whatever language you’re best at.

Have fun getting your reviews the quick and easy way.

Family Friendly Internet: Free Tips for a Safer Home

These are the basic steps I have taken to getting family friendly internet and device usage in my home.  If you’re concerned that your kids are seeing things they shouldn’t or are tired of stumbling onto things yourself, these steps make it much less likely that anyones eyes will accidentally fall onto some of the terrible content that’s online.

What made me put these steps for Family Friendly Internet together?

I was trying to purchase school pictures this morning and mistyped the url from the form by one character.  You know what happens next; bam…ton’s of sinful garbage I don’t want to see spewed into my face during the morning coffee.  It’s not the first time it’s happened but I was finally motivated to try and make it the last time that garbage comes up by accident.

My Strategy

I do not believe it’s completely possible to block all of the filth.  If an intelligent person knows what they are doing, there are many ways to trick filters and other systems into letting you find content if you would like.  However, in this case, I have made it more difficult to either accidentally or intentionally find the garbage on my home network.

This only supplements the need for a strong policy on how and where devices can be used in the home.  In a world with so many social sites full of user uploaded content, at some point, anyone who wants to find the filth is going to find it.

  • Block Content at the Router
  • Limit Device Usage to Open Rooms

How to Block Content at the Router

Implement a content filtering policy at the router level so that every device connected to your network will have it’s content filtered.  Software filtering is too big of a pain since it requires an installation of every device.

Implement Basic Content Filtering

I use OpenDNS Family Shield to setup my router.  It’s very straightforward and there are really only two steps to getting free basic family filtering on your router.  Once this is setup, any device that connects to the wireless network will by default have a family friendly internet setup that can only connect to web domains that are considered appropriate for a family audience.

Point the router DNS static IP addresses to the OpenDNS family friendly filter IP Addresses:

Once the router is updated, restart your devices so that they will pick up the new DNS settings from the router.

Test after restarting using the link at the bottom of the OpenDNS Family Shield web page.

Note that this only “suggests” to every device on the network what DNS servers to use and that an adept user can override this from each device.

Limitations With Most Routers

Even after telling the router to use OpenDNS, safe sites like Google will still be able to find all the garbage.  While only the cached content will be there, using the safe search option on each search engine should keep the filth away.  In order to keep the garbage out of search engines, the average router cannot be setup to always force a Safe Search!

I am currently shopping for routers that can provide this level filtering.  I will update this post once I’ve found and tested a better router.  A koala router that was on kickstarter recently appears to be the best right now.

Restrict Device Usage

Finally, discourage or eliminate usage of devices behind closed doors.  No matter how good the routers get, there will be ways for smart kids to get past them.  Be especially careful with devices that have access to the mobile network since none of these steps will help with that problem.

In our home, we don’t allow devices into the bedrooms or bathrooms and when the kids are old enough for their own phones, they will stay downstairs as well.



No Scan Options: Scan from an HP OfficeJet to a Mac

I was getting “No Scan Options” when pressing the scan button on the machine. For awhile I thought the scanner was broken but I finally figured out how to scan from the HP OfficeJet to my Mac.

Why “No Scan Options”

The root of the problem is that you have to issue the command to scan from the computer and not from the scanner as with many other machines.

Once I tried things from the mac, it was really quite easy to get the HP OfficeJet to scan both from the document feeder and the single page glass scanner onto my mac.

How to scan from an HP OfficeJet to a Mac

Step 1.  Plug in the usb cord from the printer to your mac and make sure all of the latest software is installed.

Step 2.  Open System Preferences from Spotlight and navigate into “Printers and Scanners”.  If you are new to mac, to open Spotlight either use command+space or click on the magnifying glass in the top right.  Then search for anything.  For more on using spotlight, visit this page from apple:

Step 3.  Select the HP OfficeJet you are trying to scan from.  If you don’t see your printer, then go back and make sure that the printer is on, it is plugged in to your computer and the software drivers have all been installed.

Step 4.  From the scan tab, choose to “Open Scanner…”

Screen Shot 2016-03-23 at 5.30.12 PM


Step 5.  Scan away. Notice the option to use the document feeder or scan from the screen.
Screen Shot 2016-03-23 at 5.30.40 PM


Enjoy your scanner

Now that I know how to scan from my HP OfficeJet, I am much more effective at my home office.

DGF510SBP-D Dyna Glo 5 Burner Review

My old grill had the last two of its burners finally fail yesterday so I went out today and picked up the Dyna Glow DGF510SBP-D 5 Burner as a replacement.

I got the whole thing assembled in a little over an hour and didn’t have anyone to help me out.  I was also watching all my kids at the time so you can probably get it put together in less time.

Why I chose the DGF510SBP-D from Dyna Glo?

I was looking for an economical grill but I am also picky in the features and like the grill to last.  I got my last grill which I used all the time for $160 and it made it ten years.  I bought the DGF510SBP-D grill at Home Depot today for $199.  I think this one will make it 5 or more years too.

Here are a few of the main reasons I decided to go with this grill.

  • There is an igniter for each of the five burners.  The igniter tends to be one of the first things to stop working and having a handful of igniters instead of one makes it easy to know this common failure is unlikely why I will need to replace this grill.
  • The number of burners and the BTUs that they put out was a step above anything else I was looking at in the price range I was interested in under $300.  It delivered.  A few minutes after kicking all five burners on to high, my new Dyna Glo is glowing hot at over 700 degrees!
  • The size of the grilling surface is great.  While it wasn’t the absolute largest in terms of size that I found, it was very competitive.  I cooked my first meal on it tonight and used 3 burners for a hot side with plenty of room over the 2 burners I left off for indirect cooking.
  • The drip pan.  The entire pan is easy to remove.  My last grill was impossible to remove the area where all the drippings go.  Not the little cup that collects drippings so you can add some to your sauce….the whole thing.  My old grill ended up failing because the drippings built up and caught fire eventually wearing out the burner.  It was just too difficult to clean it so I ended up only cleaning it two times in ten years on my old grill.  The drip pan on this guy just slides right out.  I’ve got no excuse not to clean it every season.


Pre-purchase one of my hesitancies was that I had never heard of the company.  But then on a call with Home Depot they told me Brinkman had gone out of business so I decided this meant less to me than making sure the features were right.

The only issue I encountered was similar to a video I had seen while researching the grill. My side burner wouldn’t ignite right out of the box. I ended up just bending the ignition piece a little bit closer to where the gas comes out and it started working.

So Far So Good

After bringing home the grill, unwrapping the box, assembling, and getting great results on the first meal, I would definitely recommend this grill to anyone looking to squeeze the most out of their dollar.  There are definitely better grills out there, but I think you’ll have trouble finding one better in this price range.

Android ISO8601: How to Convert a Date to call APIs

I have needed to get a date in java converted to ISO8601 on android for awhile and struggled through a few different issues on my way to a working solution.

Since it’s an app that I’m asking people to download, I don’t like to increase the download size by even a few MBs. So even though Joda Time is great, I need a different way. In researching, I had to piecemeal a solution from various blogs and stackoverflow posts.

If you’ve ever been wondering,
– Does android have a standard way to convert to iso8601 format?
– Why isn’t it easier to get a UTC date that follows iso8601 so I can just call the APIs?
Then hopefully I can save you some time.

Android ISO8601: UTC SimpleDateFormat

The following is a straightforward way to get a UTC ISO8601 string of a date object without using any external libraries.

SimpleDateFormat ISO8601DATETIMEFORMAT = new SimpleDateFormat("yyyy/MM/dd 'T'HH:mmZ");
TimeZone  tz = TimeZone.getTimeZone("UTC");
String isoDate = ISO8601DATETIMEFORMAT.format( dtobject);

Android ISO8601: APIs Don’t like Arabic Chars

But wait, sometimes this still sends over Arabic characters like:


We don’t want that.  The solution turns out to be fairly simple.  Make sure that the SimpleDateFormat is always converting using the English language locale.

SimpleDateFormat ISO8601DATETIMEFORMAT = new SimpleDateFormat("yyyy/MM/dd 'T'HH:mmZ",Locale.ENGLISH);

**Credit goes to this StackOverflow Comment Suggesting Locale.English

Android ISO8601: A Convenience Class

To wrap it all up, here’s a convenience method.  It can be dropped in without adding any major overhead to your app in terms of size or performance.

public class AndroidISO8601Util{

      static SimpleDateFormat ISO8601DATETIMEFORMAT = new SimpleDateFormat("yyyy/MM/dd 'T'HH:mmZ",Local.ENGLISH);

      //Note: this method is not thread safe because SimpleDateFormat is not thread safe
      public static String getISO8601forAPI( Date dt){
      TimeZone tz = TimeZone.getTimeZone("UTC");
      return ISO8601DATETIMEFORMAT.format( dtobject);

Export Unsigned APK with Android Studio

For years I developed with eclipse and used the Android Tools option to Export Unsigned APKs.

Eclipse Android Tools had an easy option to Export an Unsigned APK
Eclipse Android Tools had an easy option to Export an Unsigned APK

I could then take the unsigned .apk file and upload it to Amazon’s developer console.

This was one of the last items I was still using eclipse for after over a year of Android Studio development.  I finally spent some time figuring out how to make the same thing happen without needing eclipse any longer.  I found many of the questions and answers on stackoverflow to be confusing and inaccurate.  For example, many seem to think that using the debug apk is the same as using the unsigned release apk…which is not accurate.

This is the comment that ended up helping me get it right:

Here’s How to Export Unsigned APK in Android Studio

1. Edit the gradle build file for the project to specify an unsigned release signing.

buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard.cfg'

releaseUnsigned {
signingConfig null


2. Generate Signed Apk using the releaseUnsigned Build Type.  This is on the 3rd or 4th screen in the flow of version 1.4 of Android Studio.

Release unsigned apk in android studio
Release unsigned apk in android studio

Enjoy the Unsigned APK

Once the build finishes, there will be an unsigned apk in the location you specified. You can then upload that apk to an emulator or to Amazon to start the process of letting amazon sign the app.

Fix: part of the process of setting a preferred domain is to verify that you own error

I was trying to set naked domain as preferred domain in google webmaster tools and it showed an error “Part of the process of setting a preferred domain is to verify that you own Please verify”

If you’re not familiar with the terminology, a naked domain is the domain name without anything preceding it.  So no www., blog. or anything.  Just plain is a naked domain.  I prefer this setup to the www. prefix when I can because it makes urls shorter and easier to read.  There’s still debate about it’s impact on SEO.

Fix the “part of the process of setting a preferred domain is to verify that you own” warning

First, create both the and versions of your site in google webmaster tools.  This is exactly the step I had skipped which led to the confusing error.

Make sure that both versions show up as verified sites in google.

Then, navigate into the version of the site and change the site’s preferred domain to be

Add both sites to Set Naked Domain as Preferred Domain
See that both versions of site are verified

From there, things are straightforward and you shouldn’t see any errors.

Just go into each sites site settings.  Tap the site name, then Settings->Site Settings in the top right and choose to have the preferred site domain be naked domain.

More Information

For more information and tips about the whole process of setting your preferred site, there are many good detailed posts out there.  For example, this one.  However, I couldn’t find a clear answer to the problem I was running into while getting the “part of the process of setting a preferred domain is to verify that you own” error which led to this post.

Untangled Christmas Lights: How to avoid detangling

If you use mini-lights and mini-light icicles, use zip ties to make sure you have untangled Christmas lights when they come out of the box next year.

I love the “Little knot here” scene from Christmas Vacation where he just hands Russ a huge ball of tangled lights.

Storage Methods I’ve Tried

I am talking about strands of 200+ outdoor mini-lights.  If you have the huge kind that line the roofline, I would use the method on the following post for storing  with cardboard for large C7 or C9 bulb strings.  For shorter strands like most indoor ones, I like this method to pack short indoor mini lights.

I’ve tried using the cardboard from inside paper towel rolls, wrapping into a ball, coat hangers and for awhile I liked using the plastic bags from the grocery store was my favorite method until I discovered zip ties.

Use Zip Ties for Untangled Christmas Lights

Here’s all you need to do.  Wrap the lights around your elbow by making a hook around your thumb similar to how most people wrap up an extension cord.  Once you’ve got the strand wrapped up, snap a zip tie around it.  A second zip tie on the other side makes it nearly impossible to get a tangle.  I normally just do a single zip tie and place things into the storage bin neatly.

So that’s the easiest way to have untangled christmas lights when you go to put them up next year.

Here’s what a strand that’s ready to go in the storage bin looks like:

Untangled Christmas Lights using a zip tie


Advice for Next Year

To keep from getting tangles, I take the zip tied strands out and set them next to where I plan to use them.  Then I only snip the zip tie when I am going to use that strand of lights.

If you like my tip for having tangle free Christmas lights, check out these links to advice for making it easy to put them up next year:

Putting Up Christmas Lights: 3 Tips to Save Time

Hang Christmas Lights In Outdoor Trees

Hang Christmas Lights In Outdoor Trees

Our neighborhood has professionals come in and install lights in the trees on the way in and out of the subdivision and they look fantastic. My wife wanted the same thing at our house but I didn’t know how to hang Christmas lights that high in the trees.  I also didn’t want to pay the steep price for the pros.  I’ve given other advice on how to make the whole job easier at Make Putting Christmas Lights Up Easy.  Since I’ve had others that live near me ask me quite a few times how I hang Christmas lights up in the trees, I thought it’s worth sharing.

Here’s what one of our big trees looks like this year:

Hang Christmas Lights in a Big Tree

Hang Christmas Lights in Your Trees

Here’s how I did it. We got a ton of lights from Target in and after Christmas sale. These trees use up the lights really quickly. For the tree in that picture, I used 4 strands of 200 to make 800 lights. Only 200 are down on the base.

I made a basic tool from a $15 pole extension at Lowe’s, the top of a wire closet hanger, and some duck tape.  This thing doesn’t require any instructions.  I have an 8 foot step ladder, am 6 foot tall, and with this extension tool I can get the lights up about 30 feet into the tree.


The Story Behind the Tool

I grew up with my dad climbing the step ladder and using the neighbor’s limb cutting extension to get the lights up.  Repurposing the tree trimming tool was cumbersome and he even cut a strand of lights at one point.  The tool also didn’t extend far enough to get a professional look.

Since I couldn’t recall what to do from childhood, I just went up to the local hardware store and started looking around for things that might work.  The window washer’s extension pole was a good price and looked like it would work so I grabbed it.

Hang Christmas Lights in Trees