• I made good progress on Tanzawa this week. Last week I got image uploads working. This week I got the base of what is required for image uploads to preserve privacy and reduce energy consumption.

    To preserve privacy, Tanzawa is automatically stripping all exif data. But rather than just throwing it away, I’m archiving it in json in database. Why?

    Two reasons: 1) I can’t quite articulate the sales pitch well yet, but I want Tanzawa to become your home on the internet, exif data is your data, and Tanzawa should facilitate you accessing / using your data as much as possible. 2) You could totally build a photoblog or Flickr-like gallery very easily with Tanzawa if only you could access exif data…and you can.

    The other goal is to be as “low-energy” as possible. Do as little computation as possible and send as little data across the wire as possible. To that end images are now automatically converted to webp the first time a user visits the page with a browser that supports it. Subsequent visits will get the pre-converted image. No need to introduce background tasks (two extra processes, redis and celery) to reformat pictures that may never be used. 🙌🏻

    Once Pillow supports avif (seems soon), it will offer that as well, for even more savings.

  • With all that focus on Tanzawa, I didn’t run once in the mornings. Running in winter is hard.
  • My mid-2014 MacBook Pro’s battery finally bit the dust becoming quite unreliable. I took it in to the local authorized repair shop to get it replaced and since it’s “vintage” they have to order parts from Apple, and thankfully they still have some in their warehouse.

    Upon the initial inspection the battery had started to bulge as well, but I hadn’t noticed. They’re replacing the battery and the top case for about ¥30,000 (300 usd). Much cheaper than a new machine, especially as it meets my needs perfectly.

    No computer for a week means no code progress on Tanzawa, but it does give me time to plan and run again.

  • One of my goals as if late is to reduce meat consumption and increase veggie intake. We’ve been doing well, in most dishes using half the meat we’d normally use and adding veg in its place. As we can’t really go out and eat, ^1 I bought a book that had vegan recipes from around the world. A lot of the recipes are curries and sorts from India, Vietnam, Thailand or already vegetarian dishes from the Middle East and such — foods with flavors we would normally only get by eating out. I’m excited to try it out.
  • I found and binge watched Pretend it’s a City, a documentary about Fran Lebowitz. She’s hilarious and there’s a lot of lovely shots of New York.

^1 despite a state of emergency, nothing technically stopping us from eating out, except for a fear of getting a virus and death.

  • This week marked my 10 year wedding anniversary. We got married in typical Japanese fashion, a trip to city hall to fill out the paperwork. For some reason we didn’t think to take a photo when we got married, which I regret. I think it was a combination of everyone looking far too busy to ask and that, at least at that time, you don’t really take photos inside city hall.

    I remember the couple after us was what appeared to be a a Russian? woman and this old guy with one of those furry hats with the flaps on all sides. It may or may not have been a marriage for love, but I hope they’re doing well.

  • Sophie went to the vet and got her numbers done again. They’re now perfectly in the normal range! The doctor is decreasing her medication and we’ll check again in a couple of months to see how she responds if we can keep the lowered amount. My wallet hopes we can.
  • The battery officially died on my laptop this week, which has slowed progress on Tanzawa. It’s a mid-2014 MacBook Pro, so almost 7(!) years old. Usually I’d think about replacing it and recycling this one by now, but it works fine. And when I consider the ecological cost of manufacturing a new laptop, I want to use my current machine for as long as possible. A new battery should extend the life so I can use it for a full decade.

  • Speaking of Tanzawa, despite battery woes, I still made a bunch of progress. I got image support working, so you can add / remove images from posts.

    I’ve started working on image processing and optimization. I strip all gps exif data from photos when they’re uploaded, but before I do, I’m storing the gps coordinates in the database. Why? By default I want to preserve privacy, you don’t necessarily want to share your exact location when you’re sharing a photo of the garden.

    But I have this idea of letting you group entries (checkin, status, photos, blog posts) together as a trip and display it on a map. And in those cases we may want to use the coordinates, so having them available but not public by default is a good compromise.

    Another goal is Tanzawa is to use as little energy as possible, which means images must be small so we transmit as little data as possible. I figured out how I can do that, without generating a zillion thumbnails and sized photos (though resizing is part of the solution).

  • Happy New Year! I spent New Years Eve like I usually do, going to bed early and waking up before the sun, as per usual. It was great. We went to the local shrine around 10am on new year’s day. We were planning to skip the visit or wait until after the holidays, but while walking past the shrine Leo wanted to see the koi and since there was hardly anybody there then we decided to just do it. I’m glad we did because there was a long line an hour later. One thing of note is that because of covid19 they took down the rope with the noise maker at the top that you shake when pray.
  • Leo started riding his bicycle (the type without pedals/cranks, so he can practice balancing) a lot this week. He rode it to the grocery store and riding the bicycle was easier than walking, which surprised me. Without the bicycle he likes to run the entire way, but since he doesn’t look for cars (despite warning him to stop etc..), I end up having to run/walk with him. With the bicycle his pace is consistent and he is more cautious, but he doesn’t want to stop riding so we end up making 3 trips to-and-back from the store.
  • Last week I talked about a blogging system. This week I managed to get a base version of it built: 🏔Tanzawa.

    My goal with Tanzawa is to make it easy to have an energy efficient home on the internet. It will be the place to store your statuses, your blogs posts, your runs, your checkins, your links, whatever you want. And since it’s your home you should have easy access to your data that’s stored in a clear and logical manner. It won’t be for everyone, but I hope that people will find it useful.

    Right now it only supports posting of text statuses. Next up is adding support for images. Once that’s finished I plan to start on syndication to Twitter and webmentions before finally moving on to posts, checkins, and other types.

  • The slugs for “The Week” posts are in the format “YYYY-WEEK_NUMBER”. The idea being I’ll be able to go back and see exactly what week #36 of each year was like. Nice and simple. I always thought there were 52 weeks and for the past few weeks I’ve been noticing that I was going to get 52 before January 1st. And indeed this post’s slug is 2020-53. Surely I must have fudged the numbers. Double checking with Python’s datetime seems to indicate that 53 is indeed, correct.
    Python 3.8.2 (default, Aug 25 2020, 09:23:57) 
    [Clang 12.0.0 (clang-1200.0.32.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from datetime import datetime
    >>> datetime.now().isocalendar()
    (2020, 53, 1)

    The isocalendar documentation says that 53 is a valid value. I thought that maybe it was because this year was a leap year? Or had my teachers lied to me about the whole “always 52 weeks in a year” thing? They already lied to me about “i before e except after c” as a gospel of spelling which, turns out, is wrong just as much as it’s right. Even something like “52 weeks except when January 1st falls on Wednesday” or something equally half-correct half-the-time would have been nice. But I digress. According to the docs:

    The first week of an ISO year is the first (Gregorian) calendar week of a year containing a Thursday. This is called week number 1, and the ISO year of that Thursday is the same as its Gregorian year.


  • I tried to visit my favorite Starbucks next-door in Fujisawa. When we pulled up, the parking lot was much emptier than usual and the drive-thru was closed. We’ve been pretty good about cafes (at least by my own judgement) – eating outdoors the vast majority of the time and not visiting places that are crowded. Turns out one of the staff came down with covid-19. Not worth the risk. The new strain seems to be spreading quite well in Japan at perhaps the worst possible time New Years, which spiritually like Thanksgiving is for Americans.

  • Christmas marked the last day of work for the year and until the 5th of January. Very grateful to have a week off. Leo got the Anpanman Language Field Guide Super Deluxe from Santa. It’s an illustrated book with a pen – and when you touch the pen on the pages Anpanman says what what’s called in English or Japanese. Each page has a different scene too e.g. in the city, around town, in the forest, the kitchen, or even body parts and the like.

    Leo had originally borrowed this toy from a friend a few months back and he played with it almost non-stop. Keeping Leo busy is nice, but more importantly it help increase his English vocabulary as well. Since borrowing it he would mention the toy at least once a week. Go Santa!

  • With a week off I’ve been thinking to blogging, privacy, data-ownership, and the indie web. I think I’ve come up with something that could be very cool. I’m a little afraid I’m going to end up building “the best custom setup for blogging” instead of “blogging” and just using WordPress, but it will scratch some itches. I don’t want to go into detail until I’ve built a bit more of it and proven the concept to myself and or have something to show.

  • It’s not everyday a man goes to war, but this week started my war with the crows. I usually try to keep on good terms with them because crows are smart, their beaks are ginormous and I stand out – they know where I live. They started razing the trash.

    Like most trash areas in our neighborhood, ours is a collapsable green box made of green netting with an aluminum frame. Before we moved here a truck backend in to ours and broke / deformed our top. More over, most trash spots are on flat ground, our’s is on a small decline. With the decline unless the sides are square crows and pick at the trash from the gap between the ground and the frame. Since the truck hit our trash, when the box is square there’s a crow-size hole to let them come and go freely from the top.

    The provisions that the neighborhood associated put on helped – the panels tied to the netting kept the crows at bay. But they were just thin styrofoam and degraded after a couple of months. Rather than get more thing styrofoam that looks temporary, I took matters into my own hands. I found some nice hard plastic (like you’d make a lawn sign out of, but thicker) and tie-wrapped it to the netting so that it extends a bit beyond the frame closing most of the gaps. I’m happy to report we won the first battle. Let’s see how it continues to hold up.

  • I found Website Carbon Calculator and added their small bit of JS that calculates the carbon cost of each page load and displays it in a widget. It’s down at the very bottom with my recent checkins / categories and such. Check it out.
  • It’s almost Christmas. I’ve finished my shopping and everything that hasn’t already arrived should arrive in the next day or two. As has become tradition, I send my dad a BBQ’d brisket from Salt Lick. Expressing the cold pack of meat to Washington costs almost as much as the meat itself. I wish they shipped to Japan.
  • The last time I went to the Salt Lick was with my dad. We got the all you can eat, which doesn’t have any to gos. But somehow my dad managed to get a container of bbq to go, took it back with us to the hotel, put it in the freezer, and took it carry-on with him 5-hours back to Washington. Maybe this is where I get my sense of optimism, that anything’s possible if you just give a go.
  • We went to the beach for the first time in what feels like forever. Didn’t go in to the water, but just to enjoy the views. Winter Shonan is the best. The crowds from Tokyo are gone and it’s just locals and surfers – it’s great. We usually go with the entire family around the New Year. I think it’s because when we used to live in the US, we’d visit for the new year, and the one place we always missed was Shonan and Enoshima, so we’d always visit.
  • I’m thinking of moving Past Projects to the wiki. Moving into the wiki would keep in line with my digital garden concept. All listy type stuff goes into the wiki. On the other hand, this could become a blog + profile style site in the future (really just moving the blog off the front page), and in such a case keeping past projects with a similar style as the rest of the site is desirable.

  • In addition to reading and writing notes about Atomic Habits, I’ve also started to re-read some books that inspired me in the past and write notes so I can reference them later. This week is the fantastic book Web Form Design ( my notes ). Do you really need a book about such a mundane topic? When you consider that forms are the bottleneck for all online interactions, yes.
  • I managed to run 5km 3 times last week using Habit Stacking. The habit is basically as follows “After a cup of coffee at 5:30am I will run for 30 minutes”. Since I’m not fast enough for a 30 minute 5km yet, it usually works out to 30 ~ 35 minutes.
  • Stacking my running habit around coffee is what seems to work for me. When I first started running (and managed to sustain the habit for 5 or 6 months) in 2018, it was also similar. Except Leo was an infant and I couldn’t make coffee at 4:30am without fear of waking him. Since it was summer and the sun rises around then in Japan, I’d go for a run with my endpoint being one of the local 7-11’s, where I could get an ice coffee and walk home.
  • I tried the Plant Balls on a trip to ikea, and they’re proper tasty. Technically I got the meatballs and my wife got the plant balls and we shared one, but I think they’re my new default.
  • I bought my first proper bookshelf and it’s in the minimal style of bookshelf I’ve always wanted (photo in my tweet). I wish I had the space so I could chain multiple shelves together for a wall of books. Like most of the rest of the furniture in my house, it’s from Muji. And it’s properly screwed into the walls because this is Japan.

  • Japan OKed free Covid-19 vaccinations for residents. The goal is June 2021 for everyone to get vaccinated – just in time for the Olympics 🙂 Unfortunately in the mean time, numbers continue to rise, though it appears that they’re starting to level off a bit.
  • As I’m the head of the block this year in my neighborhood, I have some extra duties, like attending a monthly neighborhood association meeting and disseminating information to my block. Each month a portion of the heads have a neighborhood patrol duty. We walk our block with official day-glow green neighborhood watch vests, a lantern, a mini-light saber (used by all the traffic guys), and two long pieces of wood.

    The guy in front slaps to wood together twice and we repeat an announcement in unison. This time it was “空きすの用心、火の用心”, or “Take precautions against burglars. Take precautions against fire”. It seems appropriate for this time of year. The patrol took about 20 minutes, helped me close my rings for the day, and I got to see parts of the neighborhood I’d never been.

  • I finished reading The Little Prince. It’s one of those books that’s a classic and everyone says you should read. I quite enjoyed it. It’s the first book I finished reading cover-to-cover in ages (I tend get what I need from books about mid-way through and move on). Perhaps that it was less than 100 pages made it easier to finish.
  • I started reading Atomic Habits by James Clear. I’m compiling my notes on my wiki. The first few chapters remind me a lot of The Power of Habit (and he says as much in footnotes) – but it has some ideas that I really like. So far my favorite is ” Each action is a vote for the type of person you want to become”.

  • After 17 years Growl, the open source precursor to notification center on OS X, is going into retirement. I’m a bit sad as Growl was one of the first open source projects I ever contributed to. Chris (the project lead) and I used to meet up at the local diedrech’s coffee and talk shop.

    I did the initial implementation of the automatic album art downloader in GrowlTunes, where GrowlTunes would pull album art from Amazon if you didn’t have album art set in iTunes. I also came up with the (I think still current?) settings interface and did a horrible Japanese translation of the app (that native speakers quickly noticed and fixed 🙏🏻).

  • I reached my running goal of 40km this month despite not starting back up until about a week into the month. Assuming I keep pace, next month I should be able to run about 50km.
  • I’ve started playing with ripgrep / sed a bit more at work for a large(ish) refactor and inspired me to start keeping track of the handy commands I use at work with examples so I don’t have to experiment / fiddle the next time a similar task comes along.

  • It’s been 20 weeks since I started doing the week. Let’s go for 20 more!
  • I started getting my feet wet with desktop linux again. I last ran linux on my desktop the around 2003 or 2004 running Gentoo. I liked that computer, it was a full tower with a sticker of Calvin (of Calvin & Hobbes) smashing a swastika in two that said Stop Racism, it was great. But X11 was fiddly and OS X gave me my unix without the fiddling.

    To my surprise Ubuntu just worked on my mid-2014 MacBook Pro. Wifi works, resume from sleep works, printer works, everything that used to be fiddly “just works”. I’m able to connect to my Mac Mini and remote control it and access it’s shares (my Drobo). monadical wrote a nice blog post that details settings for Mac users on linux to make them feel a bit more “at home”. The little things like adjusting the mouse movement and so forth.

    In the event that I switch full-time to Linux, it seems like I could use icloud photos downloaderto automatically sync my photos from iCloud to my computer.

  • Speaking of iCloud Photos, I discovered that it’s not useful for anything but looking at recent photos. I’ve been a user of iPhoto since version 1 or 2 – a long time. I never got deep into rating photos or building extensive albums, but I dutifully upgraded each time a new release came out.

    Some photos – like the one that showed my old full tower computer from high school was shot in 2003 has made all of the migrations between computers and versions. Or another of me and my brother smoking a celebratory cigar after his daughter was born in 2011. These photos show up in Photos on my desktop in the years 2003 and 2011 respectively.

    But on iCloud Photos the years only go back to 2015. What’s more is that photo of me and my brother smoking a cigar shows up in 2015. The photo from 2003 is, I’m assuming in there somewhere because the number of photos matches on my desktop and in iCloud, but I can’t find it or tell you where it is.

    It’s almost like Apple is trying so hard to not read or use your data for privacy purposes off your machine that it can’t read the exif data to get timestamp. But that it can’t even order photos by the correct year online makes me question if all of my photos are actually safe.

  • Covid cases are back on the rise again in Japan. Kanagawa has roughly doubled its number of daily cases lately. Hopefully we can all take this seriously again and get the numbers back in check. I feel Japan squandered a real opportunity at the end of the state of emergency for New Zealand like results. Instead we ended it early.

  • Crew 1 launched from Kennedy Space Center in Florida on the SpaceX Dragon bound for the ISS. This flight has a lot of firsts: first operational crew flight on a commercial rocket, first operational crew flight launched from the US since the shuttle shuttered, first night launch in a decade, and most importantly, the first time they’ll have ramen in space.

    I know one of the astronauts on the flight from our time living across from Johnson Space Center, so I was holding my breath a bit more than usual when watching the launch. I’m very happy it was a success.

  • I went to Hamleys in Sakuragi-cho in Yokohama. The last time I went was just before covid. If you’ve never been to Hamleys, imagine you’re a kid and you’ve just walked in to Santa’s warehouse, that’s what it’s like. They’ve got every toy under the sun, a clown making the rounds heaps of toys to play with and even one of those pianos you play with your feet, albeit not as big.

    But not this time. Covid seems to be taking a toll on the business. A lot of the shelves were empty and a large central section was now dedicated to easy revenue makers: capsule toys. It still had part of the magic you’d expect from a giant toy store, but it still felt like a store that’s not too far from shuttering. I hope it makes it through all of this. It seems silly to worry about the viability of a toy shop around Christmas, yet here we are. To help the cause we bought Leo some Clever Cogs.

  • I’ve had my digital garden for a week so far and I’m starting to make good use of it. Dumping parts of my brain of things I’m thinking about has been helpful. So I’ve documented some print settings that are common when copying a license and ideas for future improvements to Airbot.