It's the start of a new year and I've had quite more free time than usual, which meant I enjoyed making heaps of progress on various bits of Tanzawa. I merged initial support for owning my own activity / exercise data via an integration with Strava. I made sure to write it in a vendor agnostic manner, so should I need to switch to a different provider, or someone else wants to use a different app, having them co-exist will be quite simple.
I'm really proud of the public runs page I've managed to design thus far. There's still room for improvement, but I'm really happy with the gallery of paths. Fun fact, the open graph/meta image that's displayed when you link to it changes each time I go for a run. If you haven't yet, give it a scroll.
Back to the new year β we did the usual, soba noodles at the in-laws on NYE and a visit to the shrine day-of with a traditional Japanese breakfast. Leo has started eating udon noodles recently, so he had udon instead of soba. This style of new years has it's charms, but it would also be nice to go out or travel somewhere, too. Maybe someplace warm.
Before NYE, we did spend the night in downtown Yokohama and it was a lot of fun. Leo ice skated for the first time and really enjoyed it. By the time we finished, he was just getting the hang of it. Compared to the last time we had breakfast he did fantastic at the buffet this time around. He walked with me, picked out bacon, ham, eggs, bread, potatoes - and ate it all.
As promising as the morning started, like most trips we take, he doesn't quite understand (or want to accept) that we can't go back and do the same thing again the next day. So he had a public meltdown between the hotel and the station because he didn't want to walk and I didn't want to carry him. There's nothing worse (there is, but roll with me here) than having a crying kid in public when there's all these happy kids and families walking by...you just start asking yourself what did I do wrong? Why can't my kid walk/smile/run like those kids. The answer is those kids aren't always like that andΒ my kid isn't always like this, but it really sucks ending what's supposed to be a fun/relaxing trip this way. In the end, he walked all but the last 10 meters to the subway gates.Β
Speaking of trips, our trip to the US is now exactly 1 month away. I should really start preparing things like my international driver permit. Hope I don't get pulled over in some small town and I have to explain why I'm not driving on a Texas/US license.
We were one of the lucky ones and scored a Starbucks Fukubukuro, or "lucky bag". A lucky bag is a grab-bag with unknown contents with a steep discount. Doing these in the shops would be impractical for a brand like Starbucks, so it's all done bu raffle. But for Β₯7,500 we got about Β₯20,000 worth of goods. Included were a couple of tumbers (including a nice stainless ones), heaps of drink tickets (wasted on someone like me, who usually only gets black coffee), some beans, a coupon for free 250g of beans, a waterproof bag, a hand warmer holder(?), and of course the nice reusable tote it all came in. 2023 Starbucks Fukubukuro contents
I read a good article called Bring back personal blogging on Verge. Regular readers know I was nodding along the entire time. Getting back into regular blogging a couple of years ago is probably one of the best decisions I've made. Starting a CMS so I can tweak the entire system is a close second. Each week, I grow a bit more fond of my little corner on the internet. Though that might just be the healing power of code.
It's that time of the year for me to reflect on the past year and judge how it went. See previous editions forΒ 2021 and 2020.
tl;dr 2022 was a good year for me, generally speaking.Β
Side Projects
I expanded my side projects from one (Tanzawa) to two (Tanzawa and SunBottle).
Tanzawa Ask me 2 weeks ago if I was going to finish everything I hoped I would in Tanzawa this year and I would've said "probably not". But with a burst of inspiration, I completed the Strava integration, which rounded out my main goals:
1-click-ish deployment (close enough for me with the fly.io deployment instructions)
Theme supportΒ
Strava plugin
Bonus, as to support the longevity of the project, a proper refactor.
There's a lot yet I'd like to do in Tanzawa next year:
More robust Strava plugin. More stats. More maps. More bells and whistles.
Migrate the remaining bits of Turbo (and maybe Stimulus, if possible?) to HTMX.
More plugins and settings. I generally like Trix, the WYSIWYG editor I use in Tanzawa. But sometimes I want to write certain posts in Markdown.
Better syndication UI β so I'm not always manually syndicating things to Mastodon
Photo/Gallery/Video(?) post support. I've got a blog post in my drafts outlining this from August. I should finish it.
Sunbottle I wasn't expecting to start this project. But after I got solar installed on my roof and I hadΒ to use Sharp's slow/ad-filled(!) "app", I had no choice.Β I don't have any real big/long-term plans for Sunbottle. I do plan to integrate it with Octopus Energy's API, so I can make a page to to breakdown my costs/savings with my small array.
I am thankful this project came up though, because it gave me reason to stick to figuring out how to deploy simple Django apps on Fly.io, which unblocked me with getting Tanzawa onto a managed service.
Health
Each year people say they're going to start taking more care of themselves this year and then they do good for a month or so before falling back into their old patterns and habits. I am no different.
Last year I set myself a goal to run 100 times. I missed it by quite a bit β only 57 runs. If I include proper rides, I get up to 69 events. BUT! This is the most I've ever run in a year! Here's my totals:
2022: 57
2021: 25
2020: 12
2019: 4
2018: 51
2017: 16
2016: 0
2015: 9
2014: 19
2013: 0
2012: 1
If current trends continue, I reckon I should get to 114 - 116 runs next year. ButΒ I'm going to keep the same short-term goal: 100 runs. I think I'm also going to set a proper long-term goal with running to help me focus more on long-term health.
Which is to say, I'd like to try running around the earth. That's 40,075km. In an effort to support this goal, I'll be adding a tracker to my running page. I'm 37 now...better start making those runs regular...
Family
This year I tried to focus more on family. We made a lot of memories. We went to Disneyland, went camping, went with cousins to a big pool, and stayed the night in Yokohama. And with the flexibility of my job, I was able to take time off and tend to Leo whenever required, no questions asked. It's a huge help.
On the other hand, I wasn't as good about contacting family back in the US. I chatted on the phone with my dad a number of times and my step-dad a handful and my mom twice? Despite the connectivity provided by modern technology, we don't talk often. Part of it is timezones. Part of it is texting feels like connection, but it's not. Part of it is conversations only seem to happen because I made the call. Each call always involves some calculus of me trying to remember who did I talked to last / when...and weekends are full....and this is how we got here. It's not good though, as you never know when you'll lose somebody.
Next year though, we bought some tickets to visit Texas, so at a minimum, I will have seen and chatted with everyone at least once.
Work
Work went really well. I started properly managing people this year, which has been a challenge as there's so much for me to learn. There's currently 4 people on my team (including myself) and we will be expanding it more next year.
I made a trip to London for work, which was really great. Not just because I'd never been there before, but because I got visit headquarters and see / meet the rest of the team I work with day-in-day-out. I also got to really give Tanzawa Trips a proper test.
Back in Japan we had a company BBQ, which I took Leo to, so he could meet my work friends, which was a lot of fun as well.
My hope / goal for the next year is that the team and culture inside the Japan team stay like it has been, no matter how much we may (or may not) grow in the coming year. As difficult as the tech can be, software is a social endeavor and scaling people takes more time and effort than just spinning up some more boxes in a data center.
Conclusion
I'm not sure how to end this post. To reiterate that 2022's been a good year and I've learned heaps. I have some rough and some concrete goals for the next year. Like last year, this year, I will make a note of the major ones in my now page, so I don't forget them and can track them overtime.
If you've made it to the bottom, thank you. I don't have any analytics on site, but if you do read this (or any post) and have a comment, I'd love to hear from you by email at james@jamesvandyne.com.
I thought mapping using htmx would have been more difficult than it was, but it was dead easy. As such, Tanzawa Exercise can now display the route of your activity. An example from a run this past summer.
Just in time for the new years resolutions (and the last possible moment for me to hit one of my own 2022 goals), Tanzawa integrates with Strava via a new Exercise plugin. This initial release is the absolute minimal viable integration.
This is what the admin screen looks like: It works like you'd imagine: click the Import from Strava button to import your latest activities. While it's storing the mapping data, it's not displaying them yet.
There's also a public page that's added to display some stats of your running. It looks like this:
Again, quite minimal. I even wrote some documentation for how to enable and set it up.
Both of these pages will be evolving a lot over the coming weeks as I now have a foundation in Tanzawa for working with Strava data in place. On the admin site, I'm planning to add mapping and more detailed information. On the public side, I'm planning more statistics and comparisons, including some fun ones that'll help us track really big goals.
If there's anything you think is a must have or some fun ideas that one could do with the data, I'd love to hear them!