Installing Ubuntu Phone Demo on Galaxy Nexus from Mac OS X

Props to Mirko85 for this post which spelled it out for Windows.

STANDARD DEVICE WARNINGS: You’ll violate your warranty probably, and you might brick your phone. You have been warned.

  • Install adb and fastboot for Mac
  • Download these files from Ubuntu’s server
    • quantal-preinstalled-boot-armel+maguro.img
    • quantal-preinstalled-recovery-armel+maguro.img
    • quantal-preinstalled-system-armel+maguro.img
    • quantal-preinstalled-armel+maguro.img
    • quantal-preinstalled-phablet-armhf.img
  • Plug the device in via USB
  • Open Terminal and navigate to the directory you downloaded the files to
  • If you haven’t unlocked the device, execute “fastboot oem unlock” and follow onscreen instructions
  • Power down the device
  • Enter fastboot mode by pressing volume up, volume down and power buttons at the same time until you feel it vibrate
  • Once in fastboot mode, execute the following commands from Terminal
    • fastboot flash recovery recovery-quantal-preinstalled-armel+maguro.img
    • fastboot flash system quantal-preinstalled-system-armel+maguro.img
    • fastboot flash boot quantal-preinstalled-boot-armel+maguro.img
  • Using the volume keys, select recovery mode and press power
  • In Terminal, execute “adb sideload quantal-preinstalled-armel+maguro.zip”
  • Wait for the command to complete (if you see “fixing fs_size in crypto footer”, ignore it, it’s done)
  • Use volume keys to navigate to “advanced”, press power, select “reboot recovery” and press power again
  • Once back in recovery mode, execute from Terminal: “adb sideload quantal-preinstalled-phablet-armhf.zip”
  • Once the command has completed, use the volume keys to select “restart device” and press power button

Some Notes on Living in Chiang Mai, Thailand

Several people have asked me about living in Thailand. After spending a year in Chiang Mai, here are a few suggestions, recommendations and things I wished I knew ahead of time.

  • Learn to speak Thai, at least a little bit. We took classes over Skype video for 2 months from Brett Whiteside and it really helped. I can speak and understand enough basics for cordial and respectful interactions with people, and to eat wherever I want :). If you’re going to be there for a while learn to read Thai. It’s seriously worth it, if only for reading menus and signs.
  • Always print a detailed map of wherever you’re going. Anywhere. All the time. Really.
  • Make a custom Google map with the locations of: post office, utility offices (power, water), telco, police station, etc. Just in case.
  • Banking: ATMs cost US$5 per transaction, and result in currency conversion fees. Instead, open a Bangkok Bank account and get a debit card. Getting a bank account took some paperwork, about an hour of waiting in the bank, and I think you have to pay a small fee. Bangkok Bank is the only Thai bank with a US branch (in NY). This means that you can make direct transfers from US banks to your Bangkok Bank account, allowing for money access with a minimum of delay and fees.
  • 3G: I used AIS, which has unlimited (5GB IIRC) 3G monthly pre-paid option. Absolutely recommended for access to Google Maps while lost ;).
  • Thai street food is often safer than food from “western” places. The food at the carts is usually bought fresh that day, and is cooked in front of you. The food at “western” hotels and restaurants is cooked out of sight, and they try to store food, which is risky since there’s not really health department inspections like in the states, to ensure the storage is properly done. You’ll find infinite opinions about this – this is my personal experience. There’s no magic solution. You will have some intestinal discomfort at some point.
  • Western toilets are everywhere. At some point however, you’ll need to use a squat toilet. Chiang Mai Rock Climbing Adventures has humorous yet informative instructions for properly using a squat toilet.
  • Use Foursquare or some other check-in service. I often couldn’t find a place that I wanted to return to, or had forgotten the street, etc.
  • 7-11. Is awesome. In Thailand you will pay your utility bills, refill your phone minutes, purchase concert tickets, and many other things there.
  • Temples: Wear long pants and shirts with sleeves. Be quiet and respectful. Donate money to them.

Most importantly: Go anywhere and everywhere. Always take a different route. Pull over often. Walk down unfamiliar streets. See every temple. Explore every market. And always carry your camera.


Trip Log: Yunnan Province, China

4/2 Kunming, largest city in Yunnan province

4/3 A day in Kunming

4/4 Zhongdian

  • Saw what can only be described as “megahousing” developments outside of Kunming.
  • Factories everywhere, in suburbs outside the city. Saw a red cloud over a valley of factories. Red.
  • Oh look, that is a road. On a cliff along the river. How. The. Hell.
  • Himalayan mountains in the distance? Easily twice as tall as the giant mountains we’re flying over.
  • Land in Zhongdian. Small airport, but clearly new. Full of Tibetan items, and cold-weather gear. It’s COLD.
  • One hour flight, landing at 12,000ft above sea-level. Yeah, we all ended up with mild altitude sickness for the first day. That kinda sucked.
  • Zhongdian was renamed Shangri-La 10 years ago to increase tourism.
  • Yak fields on the way to town.
  • More Jetta cabs. Must be state-mandated.
  • Populace is Tibetan mostly, but many other ethnic minorities present.
  • Pink hat ladies! Scarf tied around hats.
  • Old town. Cobblestone streets. Carved wood structures.
  • Fashion for guys is like 80s bad boy. Or black blazer and slacks… for doing manual labor.
  • Women wearing slave-to-fashion wear, or traditional garb. Not much in between.
  • Lunch spots advertise with bao steamers. Ate at East City North Cooked Wheaten Food King. Had three noodle soups. With yak meat. And dumplings.
  • Land of no salad. Seriously, there’s almost no fresh vegetables in any food we had the whole trip. Always cooked.
  • Last day of Cleaning the Grave holiday. Half the town was in the graveyard as we checked in, lighting off firecrackers by the grave.
  • Checked into the guesthouse. No inside heat in the guesthouses.
  • Meet Alek’s friend Meow Meow (sp?)
  • No running water for 4 months during winter because pipes are frozen.
  • Nightly dancing in both the old-town center, and new-town center. They like to dance.
  • New hotels in new town. I bet they have heat and running water and power all year round.
  • Little Potala palace. Megatemple of Tibetan Buddhism.
  • Shiloh rode a wizardly yak.
  • Yak butter tea. Yak snacks (aka jerky).
  • Tibetan dinner. Creaky wooden restaurant. Cold, only space-heaters. Yak SASHIMI, square noodle soup, meat pie (ground yak).

4/5 Zhongdian

4/6 Zhongdian, Tiger Leaping Gorge

  • Hey, the blankets were quite effective, probably yak wool.
  • Bus to Tiger Leaping Gorge.
  • The hike starts with a nice meandering valley stroll, and nice views.
  • Followed by “24 bends”, a long series of switchbacks.
  • “I smell weed. Or poop.” – Shiloh. It was an old man with grandson in lap, smoking weed out of a long skinny pipe.
  • Ladies along the trail selling bags of weed, saffron and snickers.
  • 7 hours of hiking. Beautiful, amazing views every 5 minutes.
  • Got to Halfway House guesthouse. Sat on the deck, had a beer and checked out the view.
  • Alek has a Chinese name: “Overcoming the power of mugwort”. He’s looking for a new one.
  • Dinner: two mushroom dishes, eggplant, gung pao. Damn.
  • Alek went into the kitchen and found their house-infused baijiao. One was mushroom. Yes, mushroom liquor. The other was olive, papaya, goji berry… and other stuff. Both were surprisingly good.
  • Closed it out with biajiao, beer, tea, cards and Snickers.

4/7 Tiger Leaping Gorge to Lijiang

4/8 Lijiang, Dali

4/9 – Dali

  • Breakfast of bao, black boiled eggs, baba stuffed with carmel sauce.
  • Alec’s out, back to Thailand. All three words of Chinese we know will now be put to the test.
  • Somehow it’s lunch already. Asparagus, tofu, emperor oyster mushrooms with dry-cured ham.
  • Taxi to the cable car. Hike from cable car to chairlift is too long, canceling that. Saw a giant chess set, and a mirror pond.
  • Taxi to the chairlift that we didn’t hike to. Beautiful ride. Look down, oh a grave. Oh look, some more. OHHHHH, thousands of them. Chairlift mountain forest graveyard.
  • At the top, we hike to the Higherland Inn, only thousands of steep steps up the mountain. Zero view. WTF. Head back down the trail to the restaurant with a great view. The place has turtles in a tub… adjacent to all the food that’s on the menu. Hmmm.
  • I got some wild mushrooms. Instructions: soak 3 hours, scramble with egg.
  • Did some shopping in the old city, got some pasta, and headed back to the hotel to chill.
  • Watched a kung fu movie with lots of flying. Saw a commercial for cleavage pills.

4/10 Dali

  • Banana pancakes and fresh melon for breakfast. Off to Xishuang for cormorant fishing.
  • Local market. Saw an awesome computer store. Had noodles that were cut off a giant slab that looked like butter. Found the spice they put on the skewers.
  • Cormorant fishing! Rowed. Sang songs.
  • On the way back, taxi driver took us to the obligatory kickback stop, a marble shop. The Chinese word for marble is “stone from Dali”.
  • Shiloh chilled at the hotel while we rode bikes to the lake. Stopped at a bakery where they had a “selection of mini sandwiches” on the menu. Turns out the mini sandwiches meant “all sandwiches on the menu, put into one”. Fail.
  • Before dinner, got a foot massage, where they had us put our feet in BOILING water.
  • Shiloh got a foot steam bath. Shauna: “OK I can smell foot. It smells like a funk dumpling.”
  • Saw some locals smokin’ tough.
  • Hunted down the wild grilled eggplant for dinner again.

4/11 Back to Kunming

  • Bus to Kunming. Buses here are cheap, and constantly running. Gotta keep your valuables with you. And there’s no bus stops, just people waiting on the side of the highway.
  • Another 5 hours on the road. We passed through Mushroom Town. And went through multi-mile long tunnels.
  • Waited a couple of uneventful hours at the airport, spent our last yuan on tea, and flew home.

Open Letter to the World

We stand at a unique time in our history, the rise of the internet and computer technology have contributed to an unparalleled rate of prosperity for the First World.

We have created for ourselves and empire unlike any other, a global network of constant trade and communication, a new age of technological advancement. We have come a long way from our humble roots in the Industrial Revolution and the days of Manifest Destiny. We are now pioneers on new digital frontiers expanding our domain from the quantum world to the far reaches of space.

And yet, the empire faces a crisis, a global recession, growing poverty, rampant violence, corruption in politics, and threats to personal freedom. As it was before in other times of crisis, the old stories have begun to repeat themselves. The half truths, this time repeated nightly on cable news and echoed through a series of tubes onto the internet: the empire is strong, change is unwise, business as usual is the answer. In times of uncertainty there are those who seek to add to the confusion, to prey on our insecurities and fears. Those who would seek to keep us divided for their own gain. The pervasive strategy takes many very convincing forms: Liberals and Conservatives, Christians and Muslims, Black and White, Saved and sinner.

But something unexpected is happening. We have begun telling each other our own stories. Sharing our lives, our hopes, our dreams, our demons. Every second, day in day out, into all hours of the night the gritty details of life on this earth are streaming around the world. As we see the lives of others played out in our living rooms we are beginning to understand the consequences of our actions and the error of the old ways. We are questioning the old assumptions that we are made to consume not to create, that the world was made for our taking, that wars are inevitable, that poverty is unavoidable. As we learn more about our global community a fundamental truth has been rediscovered: We are not so different as we may seem. Every human has strengths, weaknesses, and deep emotions. We crave love, love laughter, fear being alone and dream for a better life.

You must create a better life.

You cannot sit on the couch watching television or playing video games, waiting for a revolution. You are the revolution. Every time you decide not to exercise your rights, every time you refuse to hear another view point, every time you ignore the world around you, every time you spend a dollar at a business that doesn’t pay a fair wage you are contributing to the oppression of the human body and the repression of the human mind. You have a choice, a choice to take the easy path, the familiar path, to walk willingly into your own submission. Or a choice get up, to go outside and talk to your neighbor, to come together in new forums to create lasting, meaningful change for the human race.

This is our challenge:

A peaceful revolution, a revolution of ideas, a revolution of creation. The twenty-first century enlightenment. A global movement to create a new age of tolerance and understanding, empathy and respect. An age of unfettered technological development. An age of sharing ideas and cooperation. An age of artistic and personal expression. We can choose to use new technology for radical positive change or let it be used against us. We can choose to keep the internet free, keep channels of communication open and dig new tunnels into those places where information is still guarded. Or we can let it all close in around us. As we move in to new digital worlds, we must acknowledge the need for honest information and free expression. We must fight to keep the internet open as a marketplace of ideas where all are seated as equals. We must defend our freedoms from those who would seek to control us. We must fight for those who do not yet have a voice. Keep telling your story.  All must be heard.

- Anonymous


Firefox, Plugins and Jetpack Widgets

Flash was chewing CPU in one of my myriad tabs, so I used Jetpack and the new AddonsManager API to whip up a quick add-on to enable and disable Flash quickly. It’s <30 lines of code and an image. It puts an icon in the Firefox 4 add-on bar that toggles the plug-in, and sends a Growl notification (or whatever system your OS uses) indicating that the plug-in was successfully enabled or disabled. Screenshot:

Install FlashToggle. Requires Firefox 4 beta 7 or newer.

Clone and make your own on the Add-on Builder. This might require a minor change in the code since I built using Jetpack 0.10, which isn’t released yet. Changing ‘contentURL’ to ‘image’ in the widget options should do the trick.

The entire code listing:

function toggleFlash(callback) {
  const { Cu } = require("chrome");
  Cu.import("resource://gre/modules/AddonManager.jsm", this);
  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
    for (let i = 0; i < addons.length; i++) {
      if (addons[i].name == "Shockwave Flash") {
        addons[i].userDisabled = !addons[i].userDisabled;
        callback(addons[i].userDisabled);
        break;
      }
    }
  });
}

let flashLogoURL = require("self").data.url("flash-logo.jpg");
require("widget").Widget({
  label: "Toggle Flash",
  contentURL: flashLogoURL,
  onClick: function() {
    toggleFlash(function(disabled) {
      let message = "Flash is now " + (disabled ? "disabled" : "enabled") + ".";
      require("notifications").notify({
        title: message,
        iconURL: flashLogoURL
      });
    });
  }
});

What this isn’t.

It’s not a blog post about how I don’t blog enough. That’s exactly what it’s not.

Hidden Egg


The Magic is in the Tubes

“The gains shown by the iPhone and Android show what is possible when phones are built with fully capable browsers and support a rich array of Web apps.” – Techcrunch

The most kick-ass mind-blowing iPhone, Crackberry or it’s-not-a-Google-phone is naught but a brick without an always-on ubiquitous wireless internet connection.*

Apple may have revolutionized the user-experience of the smartphone, but the Blackberry’s early success proved that the crux of the device’s addictiveness lies in the tubes.

* That’s not entirely correct. You could still use this.


Seven Things About Me(me)

Alas, I was tagged by Beltzner, so must break my new year’s resolution to not blog in 2009*. Thanks Mike. Seven things you may know about me, or not:

  1. I have three nipples. Of these, zero produce milk.
  2. I was a barista and a chef for many years before owning a computer.
  3. I can juggle. Balls. Clubs. Machetes. Torches. (Listed in descending order of skill-level and recency.)
  4. Some years ago, on the night before we moved from Seattle to Florida, someone stole our fully-packed truck and U-Haul, leaving us with nothing but the pajamas we were wearing, and a goldfish. It was a lesson in impermanence.
  5. I used to play the accordion, and was briefly in a band called Apolkalypse.
  6. One summer, I hitchhiked through 30 states with a friend. You’ve not truly seen America until it throws garbage at you from it’s car.
  7. I flew out of a rapidly moving Volkswagen bus when I was 8 years old, and landed on my head. I know what you’re thinking, and yes, you’re probably right.

Seven from me, seven to you:

  1. Sdwilsh. It’s all business on your blog, but your quotes are on fire.
  2. Thunder, the Venezuelan ramen-lover. (Definitely a character in my novel. If I was writing one.)
  3. Josh. I thought your blog was dead, but then I found the tumble.
  4. Jeff, you don’t blog, afaik. You should tweet seven things and seven people!
  5. Bowie. Kid, you’re almost one full year old. Introduce yourself.
  6. James Earl Plush. Eagles? Beagles? Twins? Coincidence? I think not!
  7. David Cross. (Aim high, right?)

* I’ve been tumbling and tweeting regularly, so I kinda already broke my resolution.


sometimes attribution just isn’t worth it

(11:26:57) me: ugh
(11:27:02) me: it’ll never end:
(11:27:05) me: “I’m writing an application for the Coast Guard Auxiliary that uses your NUSOAP code..”
(11:27:11) me: the coast guard?
(11:27:13) me: using my code?
(11:27:18) me: our borders are not safe
(11:27:47) him: lol
(11:27:53) him: fix it dude
(11:28:15) me: those php XXXXXXXs have caused me no end of trouble
(11:28:29) me: the php5 soap impl uses a class name that’s the same as nusoap
(11:28:40) me: so i get like 5 emails a week, ever since php5 was released
(11:28:46) me: all with this same error
(11:28:52) me: not only that
(11:29:11) me: the latest version of nusoap (2 years ago or whatever) has it fixed!
(11:29:22) me: which means all these people are downloading an old version from somewhere
(11:29:24) me: OR
(11:29:29) me: are only now upgrading to php5!
(11:29:35) me: i XXXXing hate open source
(11:30:18) him: lol
(11:30:21) him: rant over?
(11:30:25) me: yes
(11:30:31) me: i feel much better now


Vacationeering

We stayed on Ambergris Caye in Belize for a week (pics), 1/2 mile from the 2nd largest coral reef in the world. We then went overland to see the Mayan ruins at Tikal in Guatemala (pics).

We got stuck in Dallas on the way back, so flew back Monday morning, dropped our stuff off at the house and went straight to Kumoricon, Portland’s anime/manga/cosplay convention (pics)!

What a crazy week. Ok, back to work.


Follow

Get every new post delivered to your Inbox.