Tofu Miso Ramen Recipe


Miso Ramen with gai lan (Chinese broccoli)

  • Adapted from: Pickled Plum and Mike’s Mighty Good
  • Prep Time: 15 minutes
  • Cook Time: 10 minutes
  • Total Time: 25 minutes
  • Yield: 2 servings
  • Category: Noodles
  • Method: Stove top
  • Cuisine: Japanese


For the fried tofu:

  • 1 large or 2 medium eggs, whisked
  • half a container of firm or extra-firm tofu, quartered and squeezed/patted dry
  • enough vegetable oil to cover your pan
  • 1/3 cup flour
  • 1/4 cup panko (Japanese bread crumbs)

For the miso tare (soup base):

  • 1 teaspoon ginger root (peeled and grated)
  • 1/4 cup red (aka), white (shiro), or awase (mixed) miso paste (I use awase miso)
  • 2 tablespoons cooking sake
  • 2 tablespoons mirin
  • 1/2 teaspoon sesame oil
  • 1/2 teaspoon tobanjan (Korean chili bean sauce), or 1/2 teaspoon each soy sauce & sriracha [optional]

For the ramen:

  • 1 cup bitter leafy vegetables (napa cabbage, bok choy, spinach, gai lan) shredded or finely chopped
  • 1/3 cup crisp vegetables (carrots, bamboo shoots, bean sprouts) prepared in thin strips
  • 1 tablespoon vegetable oil
  • 2 cloves garlic (finely chopped)
  • 3 scallions / green onions (finely chopped, the white parts are preferred)
  • 2 servings of dry or fresh ramen noodles, or egg noodles
  • 4 cups (32oz) low sodium chicken stock
  • 2 soft boiled eggs (optional, see instructions)
  • 4 slices of kamaboko (fish cake, optional)


  1. Prepare all ingredients. Roll your tofu in the flour, then coat it in the whisked egg, and cover it in the panko.
  2. To softboil the eggs, bring water to a boil in a large (10+ cup) pot that will cover the egg by 1 inch. Once boiling, add in the egg and reduce the heat. Cook for 6.5 minutes. Then run under cold water. Do not discard the water.
  3. While this is boiling, mix the ingredients for the miso tare in a bowl and set aside.
  4. Add enough water to the pot to bring about 6 cups of water to boil for the noodles.
  5. In a medium sized pot (5+ cups) over medium heat, pour enough vegetable oil to cover the bottom. When the oil is hot, fry the tofu in the pan giving about 30 seconds for each side, or until they are golden brown.
  6. When they’re done, discard all but 1 tablespoon of the oil, increase to medium-high heat, add the garlic and cook for 1 minute.
  7. Add any other vegetables that need cooking/wilting (bok choy, napa, carrots, sprouts) and cook for 2 minutes until tender but still yielding a crunch. Set aside.
  8. In the same pot, heat up chicken stock. Scrape the bottom of the pot to let the garlicky oil mix in.
  9. When the water pot is boiling, add ramen noodles and cook and follow instructions on the package (usually about 3 minutes, or when it starts to boil over). Drain and set aside.
  10. Divide miso tare evenly between 2 bowls (about 2 tablespoons each).
  11. Add ramen noodles and chicken stock to the bowls.
  12. Stir well and top with your vegetables, fish cake, eggs, and scallions. Serve hot.
  13. For leftovers, make extra and store noodles/broth separately.

Compiling the AWS IoT Device SDK for Embedded C on FreeBSD

So for me it wasn’t obvious, but when you’re running make on the subscribe_publish_sample and getting a ton of warnings and errors like “exit 0” and “exec(exit) failed (No such file or directory)” and “Need an operator” and “Wildcard expanding .prevent_execution” it’s because FreeBSD uses a different make than Linux. They use Clang, whereas most Linux Makefiles are written for GCC.

So, what you have to do is explicitly run GNU Make, which is conveniently installed via pkg install gmake and run via gmake.

Voila! Suddenly it works again!

Laser-Cut Middle Earth (Lord of the Rings) Map

In order to laser-cut a map of middle earth for an art project, I first had to find a suitable vector. It seems a lot of the files online have disappeared. This one is simply a scan and vector trace of a rather-complete version of the original map, but extra painstaking work has been done to flatten the scans into one object so that it handles and imports properly (instead of simply being a solid fill layer of trees with white “negative space” layered on top.)

Screenshot from 2018-01-29 16-31-50

Time and Temperature Phone Numbers in Phoenix, Arizona and Santa Rosa, California

I got a bout of nostalgia the other day and decided that Phoenix (602, 480, 623) and Santa Rosa (707) needed Time and Temperature phone numbers again, in the retro style of the 90s and prior.

So if you need to hear a friendly robot voice, or want to know the weather or time, call:


602-362-8463 (602-362-TIME)

The code is up on Github to make your own with Twilio and Weather Underground:

If you’ve got any ideas for easter eggs or features, hit me up 🙂

Fixing IPv6-only issues in Ubuntu

Recently some local coffee shops have seemingly begun to use routers provided by the ISP which hand out IPv6 addresses. Nobody else seems to have issues with this (even my phone seems fine) but my laptop is unhappy with the situation.

Initial debugging via ifconfig shows that I am only getting IPv6 addresses (no IPv4 addresses on the WiFi interface) and apparently the ISP does not have any 6to4 gateways or carrier-grade NAT configured because I can access IPv6-enabled websites like and but not my own IPv4-only sites. Also obviously the ping, traceroute, and nslookup commands stop working as normal because of the ping6, traceroute6, and AAAA records instead of A records in nslookup.

Last time I came to this cafe I solved the problem by using some random 6to4 gateways online, which ended up working but was a massive pain.

This time, I poked around more (nothing seems to come up on Google) and ended up clicking the “Require IPv4 addressing for this connection to complete” and “Require IPv6 addressing for this connection to complete” checkboxes. That was the trick. Apparently Ubuntu gives up on finding addresses once it gets its first address, and apparently BOTH checkboxes need to be clicked on networks like this in order to actually work.

Chromium / Chrome 53 Users seeing Certificate Transparency errors this week (Nov 10 ish)

If you’re seeing random sites pop up with transparency warnings, it’s due to a new Chrome rollout of that requirement. However they’ve allegedly rolled it back, but Chromium users may be stuck on the strict version.


If You Give a User a WYSIWYG

Homemade WYSIWYG installations as part of homemade blog engines or CMSes remind me of that children’s book, “If You Give a Mouse a Cookie.”

If you give a user a blog_posts database table and three form fields, they’re going to want to format things… like bold, headline, paragraphs, and links.

If you give them a way to format things, they’re going to want it to be WYSIWYG.

If you give them a WYSIWYG, Continue reading