Offline Maps for Android

Offline Maps and Navigation for Android
Offline Navigation with NavDroyd

After August’s 2 week trip to Africa and not having net access with my Incredible (running Android), I wanted to find a solution that let me pull maps and have them cached offline. With my upcoming trip to Italy, now seems like a good time to test a solution.

There are a ton of paid options, but I’m looking for a free offline map option. The best one so far seems to be MyDroid which is currently downloading maps onto my phone.

At first glance, the maps seem great, but there’s no search or routing options available. Seems good for finding yourself on a map and navigating the old school way, but not much more.

MyDroyd is their companion product that does some routing, but is limited to certain published cities. Boo.

NavDroyd, another companion product that is currently €4.99, that seems to offer turn-by-turn, offline, driving and walking directions. This might be the win.

Oddly, the apps don’t share the same map data, so you have to store multiple copies of maps for apps from the same company – and the map files are BIG! (Italy is 68MB alone)

After I return from Italy, I’ll post on how it all worked out. In the mean time, any suggestions for alternate apps?

Vegan Black Bean Burgers

Vegan Black Bean Burger
Vegan Black Bean Burger

As summer gives way to fall and the hot nights of August give way to the cooler evenings of September, I found myself not quite ready to let go of the Summer BBQ. Thank goodness we live in sunny California and can BBQ almost all year round!

With that in mind, we cracked open Veganomicon and searched for a delicious BBQ like recipe and found an easy enough looking recipe for Black Bean Burgers. As usual, we modified the recipe a bit and ended up with fresh off the grill burgers and two extra to toss in the freezer for next time.

Even though the recipe says that the yield is 6, I say it’s more like 3 or 4.

I also made a few modifications as follows:

  1. Grill ’em: The recipe says to cook them in a heavy pan with oil. Instead, I grilled the burgers after putting some olive oil on each side.
  2. Forget the buns: Even though burgers are usually done on a bun, there’s something delicious and healthy about serving a burger on a bed of greens. Emily sauteed up some spinach (briefly as we still wanted some leafy structure) in lemon juice, olive oil, garlic (or “gahlic” as we say, being from Massachusetts and all) and fresh ground black pepper.


  • 1 can (15oz) of black beans (You can also use 2 cups of cooked black beans) drained and rinsed
  • 1/2 cup vital wheat gluten
  • 1/2 cup plain whole wheat bread crumbs (we used crushed corn flakes, just cuz)
  • 1 tsp chili powder
  • 1/2 tsp cumin
  • 1/4 cup water
  • 1 tbsp ketchup (or tomato paste)
  • 1/4 cup finely chopped cilantro (or freezer cilantro)
  • 2 cloves garlic (or 2 cubes of freezer garlic)
  • 1/2 small onion (be brave! we used a whole one)
  • 3 tbsp olive oil


  1. Pre-heat (and clean) your grill
  2. Mash the beans up with a fork in a mixing bowl so that they aren’t any whole beans left, but you still have some half beans in the mix.
  3. Add all the rest of the ingredients in and mix with a fork. If you’re using fresh garlic, grate it with a micro plane. If you have a box grater, grate the onion using the larger slots on the grater. We just threw the onion into our Magic Bullet and let it do the heavy lifting.
  4. Kneed the “dough” with your hands for a minute or two until everything is well combined.
  5. Divide the dough in half and in half again so you have four balls of dough
  6. Pat each piece into a burger patty the size and shape of your dreams
  7. Pour the olive oil in a small flat plate and touch each side of the burger in the oil
  8. Put some fresh oil on the grill, and cook the burgers. I like to turn them 90° for cross hatch grill lines, but that’s just for style. Flip and continue cooking on the other side. If you undercook the burgers, they’ll be soft and gooey in the middle which is not a pleasant texture. The oil gives you the freedom to cook these a little longer to make sure you don’t get that.
  9. Serve and plate however you like! Buns, beds of greens, etc…

Some Tips:

  • A clean grill is a happy grill. Clean before and after use and always apply some fresh oil before cooking. This prevents food from sticking and makes everything you grill all the more nomnom.
  • Veganomicon specifically says NOT to manipulate the mix until ALL the ingredients are in there. Heed this warning. Mixing before everything is in (oops) results in super doughy, tack, gluteny, tough “dough” that you don’t want. I made this mistake as I kept forgetting ingredients.
  • Experiment with other ingredients. Next time we make these, I plan to throw some corn in, shredded carrot, maybe even potato and rice! The most perfect vegan burger ever is from The Counter and I seek to get close to their mastery.

In the end, we had a delicious and healthy dinner paired with a glass bottle of our favorite True Red from Fenestra Winery.

How to Remove Someone from a Skype Chat

Ever created a group chat and then had to remove someone from the conversation?

Sure, you can just start a new chat and leave them out of the invite, but now you have two chat histories, two chat groups with the same topic, and more.

Turns out that Skype has some hidden commands that you can use ala IRC.

Specifically, to boot someone from a group chat, type:

/kickban skypeusername

This will remove the specified skyper user from the group chat and prevent them from getting back in. Please note that you need to type their username, not their display name. You can find their username by hovering over their display name in the contact list or viewing their profile.

Everyone in the chat – including the person you just booted – will see a message that you have ejected and banned said user, so it’s not a secret, but it does the job.

Restarting the Dock on OS X

Everyone once in a while things go awry for me on OS X.

Symptoms often include hot corners suddenly no longer working, and spaces not switching when I switch applications.

Turns out the restarting your dock can fix this in a jiffy.

I’m a command line kind of guy, so open up terminal and type this in to restart the dock:

killall -KILL Dock

It looks pretty scary (“Kill! KILL!”), but all it’s doing is telling OS X to kill the Dock process for you, which it will auto-restart. Your dock will disappear for a moment and then come back in working order.

Google Analytics Custom Variable Tracking Code Using The _gaq Global Object

Google Analytics Custom Variable Tracking Code
Google Analytics

This evening I was experimenting with adding custom variables to my Google Analytics tracking code, but when I checked Google’s custom variable documentation, it didn’t match the analytics code that I had.

Google Analytics changes their code for you to copy and paste quite often, seemingly every time I setup a new site to track.

The latest version of the analytics code that I was given used a new format, notably:

var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'youridhere']);
(function() {
 var ga = document.createElement('script');
 ga.type = 'text/javascript';
 ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
          'http://www') + '';
 var s = document.getElementsByTagName('script')[0];
 s.parentNode.insertBefore(ga, s);

The docs say to put the _setCustomVar code in before pageTracker._trackPageview() … but I no longer have that older style setup.

After a bit of digging around, I came up with a solution from documentation on the _gaq Global Object. The _setCustomVar code can be added as follows:

_gaq.push(['_setCustomVar', index, name, value, opt_scope]);

Just put this after the last push line up top and you’re good to go.

Hopefully Google Analytics will update their docs to reflect the newer code style using _gaq, but in the mean time, this is working for me.

Delicious Vegan Pancake Recipe

Vegan Pancakes! (Not my photo, though)

One of our most favorite weekend breakfast foods for entertaining is pancakes and we’ve looked high and low for a killer vegan recipe.

In our pre-vegan days, our hands down favorite was Alton Brown’s “instant” pancake recipe and we always had home “instant” mix on hand in the pantry.

Today, we had the family over for brunch and I looked high and low for a winning recipe that vegans and non-vegans alike would enjoy.

Most vegan pancake recipes call for egg substitutes that just don’t cut it or end up creating runny pancakes.

Enter with an egg free, dairy free, simple to make, all vegan, all delicious pancake recipe.

I made a few slight modifications and ended up with family pleasing vegan pancakes.

Change #1: Use coconut oil instead of vegetable oil. Remember you need to warm the jar in warm water and then pour out the amount you need.

Change #2: Add chocolate chips. We use Ghiradelli semi-sweet chocolate chips.

Change #3: We used almond milk instead of soy milk, just cuz.

So, without further ado, here’s the revised recipe that’ll feed 2-3 adults.


  • 1 cup flour
  • 1 tablespoon sugar
  • 2 tablespoons baking powder
  • 1/8 teaspoon salt
  • 1 cup almond milk
  • 2 tablespoons coconut oil
  • 1 cup chocolate chips

Cooking them is easy, too:

  1. Preheat a non stick pan over medium heat.
  2. Combine the 4 dry ingredients (flour, sugar, baking powder, salt) in a bowl.
  3. Add the almond milk and coconut oil to your mixture.
  4. Mix until smooth.
  5. Now the pan should be ready for your batter, so pour four pancakes into the pan.
  6. As soon as you are done pouring the batter, put chocolate chips on each pancake, press in with finger and smooth batter over the top of the chips so they’re INSIDE.
  7. Flip [carefully] when you see bubbles in the middle of the pancake, or if the edges are looking stiffened.
  8. Repeat until the batter is gone, and try not to eat them all while you’re cooking them.


Streaming Music from OS X to Android

AndroidIt seems like streaming music from iTunes, or any desktop app of sorts, to my android phone over my local WiFi network shouldn’t be anything new different or difficult, but I can’t seem to find a great way to do it.

If you know of a good option, please comment below. When I figure it out, I’ll update this post, too. 🙂

September 4, 2010 Updates:

From Diane Patterson: “It is to be hoped after iOS 4.2 is released that AirPlay will solve this problem:

California Affordable Housing in the News

California Affordable Housing
California Affordable Housing

Affordable Housing in California has been in the news quite a bit this week.

First, on Tuesday, it was announced that NSP2 funds would be available in San Jose. San Jose, right in my own backyard, received a $5.6 million award last year. On Tuesday, City Council members announced San Jose will receive an addition $25 million in NSP2 funding to be used on renovations to more foreclosed homes and loan assistance to low- and moderate-income residents. In addition, $6.25 million has been earmarked to develop additional affordable housing for very-low-income residents.

Secondly, on Wednesday, news was release about California’s Golden State Acquisition Fund to make financing more readily available for affordable housing developers in CA. Though the bond issuance was passed in 2006, guidelines for the Golden State Acquisition Fund were just released in July. Through the fund, Project Loans will be made to developers who have viable plans for acquiring, developing and/or preserving affordable housing.

Thirdly, in today’s news, neighboring CA county, Humboldt County, got approval for a it’s housing plan. This opens the door to get approval for it’s $3.5mm affordable housing proposal.

Lots happening in the affordable housing world, and more than usual out in my neck of the woods, sunny California. I’m interested to see what continues to develop.

Kilimanjaro Video – Day 2 from Machame Camp

Here’s a quick video from day 2 of our climb up Kilimanjaro. We were on our way from Machame Camp when we broke through the cloud layer just above 3,000m.

For the HD version, click on through to facebook. They won’t let me embed the HD. 🙁