Mozlandia – A Portland mini-guide for Mozillians

Around 1,100 Mozillians will be in Portland next week. WELCOME!

Here is a list of things I recommend that you see, do, eat and drink and some handy tips. I’ve focused on places that are in or near downtown, though included some spots worth going out of your way for.

That said, downtown is not Portland. Well, obviously it’s part of it, duh. But it’s not overly representative of the Portland you’ve heard so much about. Get out of downtown for an evening or afternoon – and check out one of the neighborhoods. Nothing listed here is very far from downtown – Portland is pretty small.

I’ve left a LOT out. And forgot the rest. If you have recommendations, leave them in the comments.

UPDATE: Blue Star donuts, which are far more delicious but far less penis-shaped than Voodoo donuts, will be giving away free beignets on Friday Dec 5.


  • Portland has no Uber or Uber-like services. If you have Car2Go in your city you can use that here too. Curb is the app for local taxi service through a couple of providers. You can get a bus to pretty much anywhere without too much of a wait. Ride the MAX and streetcar if you’re headed to areas that they service.
  • Oregon has no sales tax. Do your Christmas shopping while you’re here.
  • It gets dark around 16:30 – 17:00, so factor that into any plans for hikes, etc.
  • If you go into the mountains, check the road conditions to see if you need chains for the car, or if the area is accessible at all.
  • Go to Powell’s books. Go a few times. Then go back again. Check out the Science Fiction pillar there – how many have you read?
  • Get high… for a good view of the city: Have a drink at Departures, dinner at Portland City Grill or visit Pittock Mansion for great views of the city. Even driving over the Fremont bridge (Highway 405) provides a spectacular view of downtown, the Willamette River and our many bridges.
  • There aren’t a ton of restaurants/bars/coffeehouses that can hold large numbers of people. If you break up into groups of four (max), you’ll have a much better time and the servers, chefs, baristas and bartenders will like you for it.
  • Be patient. Oregon is home to the slow-food movement in America. Regardless if this explains why your coffee took 20 f***ing minutes to make, it’ll make you feel better to think about that. See also the above note about small group sizes to mitigate the waits.
  • Tipping: I tip a dollar for a good coffee. I generally tip ~20% for any kind of sit-down meal. But I also worked as a barista, server and chef before getting into tech, so I’m biased towards tipping ;)

CARTS – Just the 9th & Alder pod for the purposes of this post. If you’re from California – up here they are not “food trucks”, they are “food carts”… even when they are trucks.

  • Hoang’s – Get soup #17.
  • Nong’s khao man gai – Simple and good and oddly famous.
  • Wolf & Bear – Israeli street food that is amazing. And vegan.
  • Güero – Excellent tortas. Add an egg.
  • La Jarochita 2 – Great Mexican cart. The only Mexican cart (aside from Güero) worth going to at the 9th and Alder cart pod.
  • Brunch Box – A cart that graduated to a proper storefront, but is right by the 9th and Alder carts. Great egg sandwiches for breakfast (try the Black and Blue) and terribly good burgers the rest of time. Very fast.
  • Kargi Gogo – Georgian food. The country, not the American state. Irakli says it’s legit too.


  • Multnomah Whiskey Library
  • Clyde Common
  • Pepe le Moko
  • Teardrop
  • Bailey’s Taproom


  • Courier – They also make fresh canneles daily.
  • Heart – Excellent coffee.
  • Barista
  • Coffeehouse Northwest
  • Stumptown
  • Case Study
  • Coava – Not downtown but my favorite coffee roaster in town.
  • Ristretto – Not downtown, but fantastic coffee in beautiful spaces. The Nicolai location is especially great – check out the custom metalwork and crazy woodwork, and visit Schoolhouse Electric in the same space.

EAT – I’ve only noted a few of my go-to places, or those that are near where Mozillians are staying, or open late, etc. I’ve got a somewhat-up-to-date list here with more recommendations, but there’s just really too much to cover. Go out and explore.

  • Clyde Common – Always interesting menu, good whiskey selection, great cocktails. Fries + harissa and a cocktail is a great way to end your day and start your evening.
  • Tasty and Alder (downtown) – Shared plates, everything is good.
  • Luc Lac – Vietnamese + cocktails, serves food VERY late, and closest place worth going to that’s also near the Waterfront Marriot.
  • Bunk – Excellent sandwiches.
  • Lardo – Excellent sandwiches as well.
  • Racion – Amazing cocktails and fun Spanish-tinged molecular gastronomy.
  • Little Big Burger – Fast and good late night burger.
  • Not downtown, but places I always want to go back to…
    • Biwa – Izakaya, open late, always amazing. Burger served only after 11pm.
    • Tarad – Northern Thai food, open late. Pok Pok gets all the attention but after living in northern Thailand, this is where we go for the real thing.
    • Mee Sen – Another good Northern Thai food spot we go to.
    • Podnah’s BBQ – Worth heading up into NE Portland for.
    • La Taq – Next door to Podnah’s, fantastic Mexican bar food.
    • Sweedeedee – Most likely to feel like you’re in Portlandia at this spot. Amazing house-baked breads. Tiny. Expect a long wait but good people watching and excellent food.
    • Por Que No (Mississippi location) – Great tacos.
    • Ha & VL – Get the special soup of the day, whatever it is.

NEIGHBORHOODS – Places to walk, eat, drink, shop and experience parts of Portland that are far more interesting than downtown.


  • Columbia Gorge – See Multnomah Falls, the view from Vista House, climb Beacon Rock, stop at the Bonneville Dam and see Herman the Sturgeon, drive across the Bridge of the Gods (and back), then go for lunch at one of the Hood River breweries. Some easy/moderate 1-2 hour hikes I like: Angel’s Rest, the Multnomah/Wahkeena Falls loop, Triple Falls,  Horsetail Falls, Punchbowl Falls, all listed here.
  • Mount Hood – Drive out Highway 26 to the historic Timberline Lodge with amazing views of Mt Hood (if it’s clear), then down to Hood River and head home through the Columbia Gorge on Hwy 84.
  • Mount St Helens – A couple of hours north, but the view of the blast zone and crater from the visitor center on the NW side is well worth it if the view is clear. On the SE side you can hike one mile underground through Ape Cave, and check out the amazing rock formations and brave the cable bridge at Lava Canyon.
  • Oregon Coast – About two hours drive. Walk the promenade at Seaside, get ice cream at Tillamook, watch storms from the tip of Oregon at the mouth of the Columbia river.

Bookmarklet for Bulk Spam Processing with Mailman

We use Mailman for mailing list management at Mozilla. However, we haven’t been able to control spam on those lists. Not only does spam not get caught before hitting Mailman, the built-in spam rules don’t work – I configured the rules to discard anything above spam level 1, and tons of spam is still held for moderation. But identification *does* work… so we can just ignore the moderation queue forever and move on with life, right? No. Because we have another problem: The newsgroups support means that valid posts might be held for processing because Mailman doesn’t know the sender is valid because they subscribed through Google Groups. So we have to view the lists and mark those messages as valid and add the sender to the valid-senders list. To cap it all off, in the long tradition of open source user interface design, Mailman has a full featured but RSI-inducing UI for managing all of this.

So if you’re an admin for a bunch of Mailman lists, here’s a mitigation that might make your day suck just a little bit less:

I wrote a bookmarklet that will do the following for all messages held for moderation:

  • Select the radio button to discard the message
  • Check the box to auto-discard from that sender
  • Check the box to ban the sender from ever subscribing again

To install, drag this link to your bookmarks Toolbar: Mailman – discard and ban all

WordPress removes JavaScript in links, so create a new bookmark and copy the following code into the URL field:


Remember to make VERY sure that none of the messages are valid before executing this bookmarklet… not only because valid messages will be discarded and their senders will be banned, but also because the UI for removing addresses from the block-list in Mailman is even worse than the one for moderation.

Baby Steps to Owning Your Data

Tweets. Likes. Check-ins. Steps. Photos. Links. We emit a constant stream of content into the sites we use everyday. Is it ours? Well, it feels like it. And according to the terms of service, it kind of belongs to us. Sometimes. Maybe. I don’t know, honestly. I don’t read those, and likely you don’t either. If you fully parse every TOS you encounter, you can stop reading right now, go straight to the nearest IHOP and have some pancakes.

Groups like IndieWeb are tackling data ownership issues – experimenting with ways of creating and managing content in a way that bakes in data ownership and removes the need for massive corporate services to achieve Web scale interactions. It’s fun and interesting and useful… we meet every two weeks, come check it out! But an IndieWeb world is a long way off. Especially for non-geeks.

All the companies providing you services today have little interest or incentive to make ownership clear or to make your data portable – the fact that you can’t easily move your data around is partially what keeps Google, Facebook, Whatsapp and Pinterest running.

Sure, lots of these services have APIs, through which you could access your data (or at least some of it). But regular users can’t really move data around between competing services through APIs. Some of these companies have data export options, where you can download your data in a zip file, but it’s not like you’re doing that every day. What if today you get banned from Gmail because some process hit a false-positive while enforcing some usage policy? And when was the last time you downloaded all your stuff? Did you ever?

I’ve always wanted to move to a model where I only participate in services through my own website first, and then send a copy of my activity to Twitter, Foursquare, through their APIs (including in each request an extra HTTP header containing the URL to the UELA that my content is covered by!). But that will take a while to build, and won’t work for devices like my Jawbone UP24 which syncs over a proprietary protocol to native apps only, finally letting me access a subset of my data through their API once it’s already on their servers first.

So, back to the point of this post: What can you do now?

I’ve started by attempting to own a copy of as much of my internet output as possible.

Here’s how I do it:

  1. Create a Google account, and install the Google Drive app. This will keep a local copy of all of your Google Docs on your computer.
  2. Create an IFTTT account. IFTTT is a fantastic service that allows a large number of apps, websites, services, devices and all kinds of stuff to interact with each other.
  3. Set up recipes for everything you do online that’s supported by IFTTT which all add to a Google Docs spreadsheet. I have recipes for Tumblr, Twitter,, Soundcloud and a ton more. I was very surprised by how many services have some bits of my daily personal activity.

That’s it. The IFTTT triggers will start firing, the spreadsheets will start filling, and the files will be copied to your local hard drive. You’ll now have both an online copy and a local backup of all the stuff you do online.

Here’s what some of my IFTTT recipes look like:


IFTTT will save it all in Google docs folder hierarchy for each service:



I’ll be honest – it takes a little while. It’s annoying to set up, even with IFTTT’s excellently simple user interface. But in the end I own a copy of any new content I post to the services I use. What do I do with it? Nothing at all, right now. But someday maybe those services will shut down, or I’ll get banned, or poorly implemented IT backup strategies will wipe it all out. I’ll have lost nothing except the time I spent setting this up.

Is it real data portability? Nope. Is it true ownership? No. Hell, “my” content might even be under some crazy license restrictions that I agreed to before putting it up on Pocket or Evernote! But it’s always running, and someday my personal weak-AI agent will be able to do something with it.

PS: Do you use Gmail? Do you only use the web interface or Android/iOS apps? Then you probably don’t have a backup of your email. I run an IMAP mail client (Thunderbird) periodically to get an updated offline copy of my Gmail in an open format.

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”
  • 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”
  • 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


Get every new post delivered to your Inbox.

Join 26 other followers