Mike Tsao

Old Blog

I’m importing some posts from my old sowbug.org blog, which ended in 2011. Most posts were garbage, or from the good old days of the Oversharing Internet. Those will stay offline. But a few had some thought put into them, and they’re worth republishing. Notes from scanning the rejects: Almost all the links to external sites are dead. I spent a lot of time learning and redocumenting how to use Emacs.

Groovebox, chapter 2

One of my June 2022 ideas was to build a groovebox. I’ve made some progress on the software side, and I’d like to talk about some of the interesting parts of the work. First: I’m developing in Rust. Choosing Rust was actually a no-brainer; it’s the right choice for new projects intended to compile directly to native machine instructions. So far, it’s been a great experience. I can see why people become Rust zealots.

Stable Diffusion on Google Cloud

These instructions are for setting up a Stable Diffusion instance on Google Cloud. I created an n1-standard-4 instance with an nVidia Tesla T4 GPU, which has 16GB of VRAM. I chose the “c0-deeplearning-common-cu110-v20220806-debian-10” image and sized it to 80GB. If I had it to do over again, I’d make a separate disk for the models and the generated output, but it’s not a big deal. Here are the (cleaned up) commands I used.

E-Paper Printer

Idea: an e-paper printer. You can print to it, same as any printer, but instead of producing paper, it displays the last page printed. That’s pretty much it. I’d hang it on the wall in the kitchen, and I’d print recipes to it. It has no buttons or input, so I wouldn’t get food on it. I think the virtual-printer interface is important. I don’t want to write an app or curl to it.

Potato Diet

On May 18, I started a four-week potato-only diet. I thought it sounded interesting, and right now has been a good time in my life to try an slightly unusual eating regime. I didn’t really care about losing weight, but I am overweight, so I wouldn’t mind it if I did, either. It’s now the first day after the four-week mark. I lost 7.8 pounds, or 4.3% of my starting weight.

Ideas (June 2022 edition)

Various geek ideas, maybe startup ideas. Some are ones I’m thinking about, and some are ones I wish you would think about. Solve the Sybil Attack problem. An online game bans a player for being a jerk, but the person creates new “sockpuppet” accounts and keeps being a jerk. It’s a hard problem to solve because it pits decentralization, privacy, and scalability against each other. Most solutions I’ve seen favor scalability over decentralization and privacy.

Hello World (2022)

I’d like to start long-form writing more often. My motivation is to become a clear thinker. I believe that clear writing requires clear thinking, and that practicing writing is the same as practicing thinking. I used to be a good writer and a reasonably clear thinker, but today I wouldn’t describe myself that way. What changed? One difference is that my day-to-day writing doesn’t require as much deep thought as it used to.

Time Out of Mind

While throwing out old storage boxes this weekend, I discovered my old Power Macintosh 6100, packed up in 1997. To use eBay terminology, it was in vintage condition. It had the mouse, keyboard, VGA monitor adapter, power cord, and a few floppy disks. There was no excuse not to plug it in and see what happened. So that’s what I did. The chimes played and the smiling Mac appeared on the screen.

The Apparent False Economy of Written Documentation

Anyone who’s worked with me for more than four hours knows that when it comes to efficient use of time at the office, I have the soul of an 80-year-old curmudgeon. I take time to write up documentation with executive summaries, working hyperlinks, sample code, and FAQs, and in exchange I expect people to read it. But all too often the pattern goes like this: Imminent Target Of Rage: Hey Mike, so I saw we have a new schema for brillig, and the slithy toves need to gyre and gimble in the wabe, and anyway, I saw you sent out something about how to do this…

Good Is Just the Opposite of Bad

[originally posted in 2007] Last night, we were reminiscing about “go-getters,” or more accurately, people we’d known in the past who weren’t go-getters. By this I mean people who seemed to be waiting for good things to happen to them, rather than picking goals and working to achieve them. Before descending too far into self-congratulation, I made a mental list of what I considered to be the important good decisions in my life.