Espresso in a small clear glass cup

After getting home on my final flight very late last night, I really needed this afternoon espresso. It was delicious.

I think I’ve also managed to get images into my feed! Winning Friday.

Exit door at Social Policy

Stopping for a coffee at Social Policy. John Prine’s on the stereo am I’m taking it as a good sign for the day. [photo]

Can’t leave the coffee shop if Tom Petty’s “American Girl” just came on the stereo, right? It’s a bylaw?

Strata Data banner, San Jose

BRB, learning stuff at #StrataData.

San Jose conference center with a red and white banner for the Strata Data Conference.

Do you know the way to San Jos—never mind, found it.

Airport tarmac, blue sky and a few streaky winter clouds

On the tarmac at FLG.

I’m packed, more or less, and enjoying a coffee by the fireplace, just about ready to head to the airport. I love flying out of our little airport — short security line and free parking for the win!

Pen, notebook, and paper coffee cup on a steel restaurant counter.

Waiting on breakfast at the Tourist Home on a blustery morning and making some planning notes for this week’s San Jose trip. It’s wintery here this morning but spring is definitely on the way, as mountain bikes have started to supplant skis on the car racks around town.

We saw Black Panther today and really enjoyed it! Cast, characters, story: it has lots going on – lots to say – and it does it very well. By contrast, one of the trailers was for Ready Player One, and boy does that trailer just do utterly nothing for me.

🎧 I’ve had Brian Fallon’s new album Sleepwalkers on heavy rotation the past week or so, and now I find Billy Rosenbeck’s glowing review. It’s an evocative, thoughtful orientation to what makes Fallon so good. 👍

I’m San Jose-bound next week! I haven’t been there in many years, so even though it’s a work trip I’m excited to be there again. I’m scoping out coffee shops and told my parents I’d wander over and take a picture of the church where they got married, too.

espresso cup from above, bright gold colored in the sun

One thing I have a new appreciation for as I finish my Whole30 month of eating very, very specifically, is good espresso. My go-do drink is a cappuccino, and I’ll certainly come back to those, but I’ve found great pleasure in a well-made espresso this month. I’ve enjoyed improving my home espresso craft along the way, too.

screenshot showing Let's Encrypt status

/Now: Really happy with how easy the one-click installation of Let’s Encrypt certificates is with Pair Networks! I have some configs to update to take advantage of it, and it’s amazing that this will take longer than actually enabling SSL. 🔐!

Snow day here! Six inches or so of lovely powder overnight and continuing this morning. Alas, I still have to work today.

Snowy park with San Francisco Peaks in the background

Taking a walk on a very windy lunchtime.

I keep meaning to post a photo of breakfast at my favorite local joint, the Tourist Home. So, here you go.

Me: _plays for many hours_ I've accumulated a good amount of resources and equipment. I had best continue conservatively, not buying more than the absolute necessities so that I can min-max my stats and capabilities for upcoming situations.

_goes to work_


My son: Dad I used all our bomb arrows and bought endurance rings with all the spirit orbs. Also I spent most of our rupees for lots of armor and dyed it all blue because it looks **so cool** and now I look like the blue ninja!

This is good for me.

I’m very not impressed by the font scaling on this new work-issued (Win) laptop. This is Not Good.

Posting via Micropub means I can post from mobile, too!

Thanks to @dgold’s nanopub I am now able to post to the site via micropub clients (more or less — a few loose and rough ends to sort out)! This is quite cool.

Years ago I built a small tool to make summary data from the information contained at Uses This (“A collection of nerdy interviews asking people from all walks of life what they use to get the job done.”). This weekend I got an itch to see if it still works, and, lo and behold, it does! With just one small change to the naming convention in my script that builds the extracted data, I was up and running again, and able to then update the no-doubt-embarrassing R code that creates some summary info of interest.

The last time I wrote a bit about my tiny project, I was looking at text editors at Uses This.

Here’s a snapshot of the current data, comparing top iOS apps now to the list the last time I ran this, in 2012:

Top 20 iOS apps by frequency:

     JAN 2018                       JUNE 2012
     instagram-ios         : 48     instapaper-ios        : 22
     kindle-ios            : 32     instagram-ios         : 17
     tweetbot-ios          : 32     simplenote-ios        : 17
     twitter-ios           : 32     kindle-ios            : 15
     instapaper-ios        : 27     twitter-ios           : 14
     simplenote-ios        : 25     reeder-ios            : 13
     reeder-ios            : 20     tweetie-ios           :  9
     foursquare-ios        : 14     words-with-friends-ios:  9
     paper-ios             : 12     evernote-ios          :  8
     dropbox-ios           : 11     foursquare-ios        :  8
     vsco-cam-ios          : 11     tweetbot-ios          :  7
     words-with-friends-ios: 11     facebook-ios          :  6
     evernote-ios          : 10     flipboard-ios         :  6
     safari-ios            : 10     yelp-ios              :  6
     flipboard-ios         :  9     ego-ios               :  5
     ia-writer-ios         :  9     goodreader-ios        :  5
     procreate-ios         :  9     ia-writer-ios         :  5
     spotify-ios           :  9     safari-ios            :  5
     tweetie-ios           :  9     twitterrific-ios      :  5
     ibooks-ios            :  8     dropbox-ios           :  4

My data and visualization senses have evolved since I last played with this, so maybe I’ll continue to update with some new summary information and plots. There’s a lot of longitudinal info to potentially watch, as well, so stay tuned! And let me know if there’s something in the data you think might be particularly interesting for me to explore deeper.

If you haven’t ever browsed Uses This, or even if it’s just been a while, go check it out. The hundreds and hundreds of interviews and lists there are great fun to explore. If you’re interested, you can find my code and data at github.

I love it when things I like come together. Today, it’s my hobby of utilitarian hobby coding combining with my enthusiastic and occasionally proficient video gaming. I’ve played Destiny for a couple of years as my primary gaming diversion, and now play Destiny 2 pretty regularly.1 I try to be conscientious about playing intentionally and keeping track of my play.

In the course of play, Destiny and Destiny 2 drop a lot of loot, some of which is important, rare, or particularly fun. I want to associate special memories with some of them, like the armor piece that dropped after a spectacularly fun PvP match, or the weapon rewarded for completing a quest just in the nick of time with a clutch move by a team member.

I will sometimes make a notes in my Day One or paper journal about having a notably good time in a game, but my hobby coder side always wondered if there was a way to make something more systematic. Bungie provides a pretty sophisticated API that has enabled an ecosystem of stats trackers and item managers (the latter of which are extremely useful, even necessary; my favorite is Ishtar Commander). Surely I could build myself a sort of play journal using the API! I told myself, several times over the past year, but I didn’t get around to actually doing it until I had some spans of free time over my winter holiday.

As usual for me and these kinds of things, just getting OAuth to work properly was a pain in the ass. After that it was a matter of tinkering over a handful of days to piece together a useful understanding of the API endpoints that I needed to use. Unfortunately for my intended use, the information returned with game inventory doesn’t include a datestamp, so it’s not straightforward to make a dated list of all my characters’ awesome equipment in a single go.

So I built a short script and several fish shell commands that 1) update my OAuth token, 2) fetch my current complete inventory, 3) compares it to the previous inventory, 4) pulls out the new items, 5) filters out the common items and leaves just so-called Legendary or Exotic gear, 6) and deposits that smaller, filtered list in a json-formatted document.2 I can run this series of operations whenever I want to update my “journal” and then annotate the records I care about with notes, about who I played with, what activities we ran, and anything else I want to remember.

Here’s an example from one of these “diary” files:

{"item":"Tarantula","type":"Legendary Linear Fusion Rifle","hash":2502422775, "notes": "Maximum power linear fusion. I haven't played much with these so will give this one a try (have a few other copies). I'm not sure what this can be infused into, anyway."}
{"item":"Out of Options","type":"Legendary Submachine Gun","hash":2700862858}
{"item":"Main Ingredient","type":"Legendary Fusion Rifle","hash":3445437901, "notes":"Masterworks max power Main Ingredient from a clan engram. This one is a keeper, though I may re-roll it from reload speed."}
{"item":"Skyburner's Oath","type":"Exotic Scout Rifle","hash":4255268456, "notes":"Xur is in town! I didn't have this one - from the exotic engram. I think I have the ornament sitting in the vault from like week 1."}
{"item":"It Stared Back","type":"Legendary Sword","hash":1018072983, "notes":"Masterworks It Stared Back! Ran the raid from a Calus CP today with several of the clan, had a great time, and we got it done."}
{"item":"Emperor Calus Token","type":"Legendary Redeemable","hash":1505278293}

Along the way, I found my favorite, favorite new tool: jq. I’m relying on it extensively throughout this little system, basically to do all the lifting with the json returned from the API, both for managing the Oauth info and for dealing with inventory data. It’s a wonderful tool.

jq parses json wonderfully, and can format output for new uses, so:

for i in (ls diary*.txt)
  echo "## I played Destiny:" $i \n | sed s/diary-// | sed s/\.txt// ; cat $i | jq -r '. as {item: $item, type: $type, notes: $notes} | if ($notes | length) > 0 then " * **" + $item + "*** / " + $type + "\n    * " + $notes + "" else " * " +  $item + " / " + $type end '

… produces this snippet of formatted output, excluding the items where I haven’t made any notes:

I played Destiny: 2018-02-15

  • Shepherd’s Watch / Legendary Sniper Rifle
    • Today was a good day to play Crimson Doubles! Really, really fun games tonight, mostly winning big: I went 4, 15 and 6 KDA. Warlock rifts everywhere, Uriels and Better Devils, lots of grenades and some pretty cool nova bombs. This was fun.
  • Cadenza-43 / Legendary Pulse Rifle
    • The TWAB today says pulse rifles are coming back to the meta… so we’ll see! I have some of just about everything ready to try our further. (Your time will come, Autumn Wind.) I also need pretty badly to do some vault cleanout: currently at 190200 slots and have a bunch of duplicates and others to take care of. Will have to spend some time with DIM this weekend.
  • Perseverance / Legendary Auto Rifle
    • A couple of these have dropped but I haven’t tried them. I like the name.

This is really fun! I run my string of commands every time I want to make an update, then I can annotate the output in my current editor of choice.3 At some point I’ll push that output into some nicely-styled calendar, much more like a real play diary, perhaps with an integration to actual play time during the period depicted in my log. (That data is also available via the API; picture a heatmap by day or week along with the entries, maybe images of items from the manifest, too.) I have half a mind to try to make it a small web app usable by more than just me.

A fun side effect of building this is figuring out how to move items around in my inventory along the way. Nothing makes me feel more like a hacker than typing something into a shell and watching my Hunter equip a sweet rocket launcher in a video game. Ultimately, in my quest to be thoughtful about my game time, I learned a bunch about working with json and oauth and made something that multiplies my enjoyment of both the gaming and journaling that I do. I’m calling that a win.

  1. My list of non-Destiny games to play is getting longer, though! [return]
  2. I’m so pleased that almost the entire workflow is just a series of shell commands. The script only manages OAuth and performing one of the actal API calls, and all the other work is done at the shell. It’s a neat example of the power of flexible, loosely-joined *nix-based tools. [return]
  3. Currently I’m heavily into vim at home, though at work I’ve recently picked up emacs and org-mode (again) via spacemacs. [return]

Apple Music dropped New Multitudes, an album by Jay Farrar, Wil Johnson, Anders Parker, and Jim James into my stream. As with Billy Bragg’s and Wilco’s Mermaid Avenue, New Multitudes is a collection of songs written using Woody Guthrie’s archive of previously un-performed lyrics.

The first track, “Hoping Machine,” really captured me. Here’s a bit of the striking lyrics:

Don’t let anything knock your props out from under you
Always keep your mind clear, let your plans come out of mistakes
These are the plans and nothing can tear down
Made out of things that have already been torn down

Whatever you do, wherever you go
Don’t lose your grip on life and that means
Don’t let any earthy calamity knock your dreamer and your hoping machine
Out of order

👍 Liked: Life Stack by Aaron Parecki

Made some minor style/format updates to better present some microformat data and be less confusing for webmentions.

At some point this will become something other than a blog about blogging, one presumes.