• In this new work-from-home world we now inhabit, it’s coming to the point where my productivity is directly proportional to how many good podcasts are available today.

  • DynamoDB JSON Attribute Types Quick Reference

    Because apparently it’s too difficult for AWS to provide an easy way to find this information.

    Atomic Types

    Type JSON Value
    Binary B String value containing the Base64-encoded binary data.
    Boolean BOOL Either true or false
    String S String value
    Number N String with the numerical value
    Null NULL Should always be true

    Collection Types

    Type JSON Value
    List L A JSON array, with each element being an attribute with a type.
    Map M A JSON object, with the keys being the map keys, and the values being an attribute with a type.

    Set Types

    Type JSON Value
    Binary Set BS A JSON array of Base-64-encoded binary data.
    Number Set NS A JSON array of string with the numerical values.
    String Set SS A JSON array of strings.

    Sources:

    Continue reading →

  • Scripting In Dynamo-Browse

    Making some progress with adding scripting capabilities to dynamo-browse. I’ve selected a pretty full-featured JS interpreter called goja. It has full support for ECMAScript 5.1 and some pretty good coverage of ES6 as well. It also has an event loop, which means that features such as setTimeout and promises come out of the box, which is nice. Best of all, it’s written in Go, meaning a single memory space and shared garbage collector.

    Continue reading →

  • Coming up with a naming convention for things like metadata keys, customer HTTP headers, or log tags; and not writing it down and sharing it with others, is a mistake I’m paying for in spades at the moment.

    A little while ago, when we were setting up Stripe and it came time to decide how metadata keys should look, I thought it would be enough to come up with a style in my head (e.g. snake case with a particular prefix) and simply start using it. I guess I was expecting that others would follow it, simply because they would be motivated to maintain the observed style, with the keys I were defining being a bit of an example here.

    Well, I now know that not only did this not happen, but when someone does want to know how these names should look (and I include myself here) there’s no definitive guide available to refer to. The result: no convention at all. Different cases, keys without a prefix, etc. Not be a huge problem, but being unable to rely on a convention does mean more cognitive load when it comes time to figuring out how a name is expected to be formed. Plus, it just looks untidy.

    I guess it would have been a good idea to document it somewhere. Doing this is not being overly specific or dictating convention from above. It doesn’t have to be as elaborate as an IETF standards: just a few paragraphs and examples that is accessible to everyone. And if others disagree with the proposed convention, then work it through until everyone is happy with it.

    I’ll try to remember this for next time.

    P.S. More services really need to support user-defined metadata fields like Stripe does.

  • I discovered Goomics by Manu Cornet this morning after reading this Ars Technica article. There are some pretty amusing comics there about “life at Google.” Here’s a few that I particuarily liked:

    Goomics #291

    Goomics #364

    Goomics #340

    Credit: Manu Cornet

  • I started writing a comment in GitLab today for a pull request I was working on. I left the comment unfinished to do something else. I was planning to finish it when I returned, but before I could do that, my laptop crashed and I feared that I completely lost it.

    Fortunately, when I rebooted, the comment remained as it was in the text-box where I left it.

    I don’t know if this was GitLab or Vivaldi or something else. But to whoever program that behaviour: thank you! You saved me 5-10 minutes going back through my thoughts and retyping it (I spent that time writing up this post 😄).

  • A little hard to get through my regular Sunday routine today. I’ll do my best to keep at it though. It won’t solve all my troubles but sometimes just doing what you can to feel a little better will have to do.

  • Useful tip I learnt today about screenshots on MacOS: you can take a screenshot of a window without the drop shadow by holding down the Option key when clicking the mouse.

    I wish I looked this up sooner, and not just turn to ImageMagick to try and remove the shadow myself.

  • Release Preparation & Next Steps

    Finally finished the website for the Audax toolset and cut an initial release (v0.0.2). I’ve also managed to get binary releases for Linux and Windows made. I’ve started to work on binary releases for MacOS with the intention of distributing it via Homebrew. This is completely new to me so I’m not sure what progress I’ve made so far: probably nothing. For one thing, I’ll need a separate machine to test with, since I’ve just been installing them from source on the machine’s I’ve been using. Code signing is going to be another thing that will be fun to deal with.

    Continue reading →

  • My Nonna bought me a set of winter gloves. This is actually my first ever set, and I can’t believe it took me this long to get a pair.

    Pair of winter gloves

    Made from a blend of wool, possum fur, and silk. Tried them out this morning in temperatures just above freezing. Wonderfully warm.

  • I really want to write something on my blog today, but the things going on right now are just making me annoyed. I don’t want this blog to be just things that I complain about: I haven’t got the wit for that to be interesting. I’ll just say that I’m looking forward to 5:00 today.

  • It’s good getting stuff released to production, so that users can get their hands on what you’ve been working on.

    Unless it’s stuff that I’ve been building myself. Then it’s absolutely terrifying.

  • Covid-19 is making the rounds at work at the moment. A number of people have come down with it, posting photos of their positive RAT tests on Slack. RAT’s still coming up negative for me at the moment. I’m hoping it stays that way.

    Come on booster. Don’t let me down!

  • Working on large software projects — complete with Jira boards, code coverage requirements, and peer reviews — it’s sometimes easy to forget that you can actually use the skills you have to solve the little problems you encounter in your job.

    If you need to do something, and that thing can be done easily just by writing a small script, then don’t be afraid to go ahead and write one. It doesn’t need to be a fancy script. Doesn’t need to have unit tests or even be checked into a repo. It just needs to solve your problem.

    This is probably one of the most useful things I’ve learnt in my career.

  • I’ve been seeing this message an awful lot recently when I’m trying to use mobile data. I originally thought it was Telstra, but now I suspect it’s Android, as restarting the phone seemed to have fixed it.

  • A New Name for Audax Tools (nee AWS Tools)

    I think I’ve settled on a name for the project I’ve been calling “awstools”. “Settled” is probably a good word for it: I came up with it about a week ago, and dismissed it at first as being pretty ordinary1. But over that time, it’s been slowly growing on me. Also, I’ve yet to come up with any alternatives that are better.

    Anyway, the name that I’ve settled on is the Audax Toolset.

    Continue reading →

  • More Complaining About Autocorrect on MacOS

    Earlier this morning:

    Me: (writing in my journal) Nonna, my 91 year-old grandmother…

    Autocorrect: Did you me “Donna”?

    Me: No, undo change. (continue writing) good news is that Nonna…

    Autocorrect: Did you me “Gonna”?

    I can forgive MacOS for considering nonna a spelling error, since it’s not an English word.

    But I do see why auto-correct on MacOS can be frustrating. Apart from the two completely random corrections it made for the same word, it also doesn’t seem to get the hint when I undo the change. I would have thought that action is a pretty strong signal from the user to just leave the word alone, at least for the moment.

    Continue reading →

  • I’d be curious to know if a brand new user to Facebook would be able to get any value from it. Looking at screenshots of their app redesign, the whole thing looks convoluted and unintuitive. Is the sole purpose of Facebook now just to keep existing users from leaving Facebook?

  • AWS Tools: Documentation & The Website

    Worked a little more on “awstools” (still haven’t thought of a good alternative name for it). I think the “dynamo-browse” tool is close to being in a releasable state. I’ve spent the last couple of days trying to clean up most of the inconsistencies, and making sure that it’s being packaged correctly.

    Now it’s documentation writing time. I’m working my way through a very basic website and user guide. It’s been a little while since I’ve written any form of user-level documentation — most of the documents I write have been for other developers I work closely with — and I admit that it feels like a bit of a slog. It might be the tone of writing that I’ve adopted: a little dry and impersonal, trying to walk that fine line between being informative without swamping the reader with big blocks of words. I might need to work on that: no real reason why the documentation needs to be boring to the reader.

    Continue reading →

  • Write It Down

    I am feeling some very minor after-effects from the booster I took yesterday (nothing serious, just the expected cold-like symptoms). I was curious as to whether it was anything like I experienced in January, when I got my last booster. I went to my journal to see what I wrote about it. Unfortunately for me, there was nothing there.

    To be fair to my past self, there were some other events going on at the same time which I did write about. But I was left pondering this morning about why I didn’t write anything about how I was feeling back then. My guess is that I probably didn’t think it was worth writing about at the time. “Feeling a little off” was probably something that I thought was quite trivial, and wouldn’t be relevant later on.

    Continue reading →

  • Boosted. 💉💉💉💉

    (also muffined up once again 🧁)

  • 🔗 Publishing your work increases your luck (via Github’s The Readme Project)

    I found this very inspiring. Given where it was published the subject matter is about software, but I believe that it could apply to pretty much any creative endeavour.

  • Had sprint review today. Overall, it went really well. Much better than last time. We didn’t quite clear the board but that was mainly because we finished the work we planned for and were simply pulling in tickets from the backlog.

  • Newsletter Reminder Emails

    I subscribe to a newsletter that sends “reminder” emails if I skip an issue. If I don’t open one of the email newsletters I receive, then a few days later, a copy will be sent with a forward of the form “looks like you skipped an issue. Here what you missed.”

    These reminder emails are bad, and here’s why:

    1. It gives the impression of hustling me. I appreicate the time you take to publish something that I see value in, but sending these reminders feels like your forcing your content onto me. Like I just got to read this content. Really, you must read it! And, oh! You forgot this one day? Well I’ll make sure you don’t forget it (and me) again. Please, back off! I’ve received your content and I’ll get to it when I get to it, if I feel like it, after I’ve read all the other newsletters I received. Please don’t push me to read it on your schedule.

      Continue reading →

  • Trying a new cafe this morning. I drive past this place all the time, and I keep telling myself I should try it. Fortunately it’s only a 15 minute walk from home.

  • Listening to the ATP #491 discussion on code formatting right now. I guess I’m not the only one that converted from BSD braces to K&R because it was the style used by “everyone else” (Go requiring this style helped a lot here). I will stand on liking the cuddled “else” though.

  • This is how I usually spend my Saturday mornings. One difference today was that a train-replacement bus drove by roughtly every 10 minutes or so which, given that it was the weekend, was more often than I expected (not that that’s a bad thing).

  • AWS Tools Dev Diary

    A little more work on “awstools” today, mainly on a bit of a cleanup spree to make them suitable for others to use. This generally means fixing up any inconsistencies in how the commands work. An example of this is the put command, which now writes all modified items that are marked to the table (or if there are no marked items, all modified items) instead of just the selected one. This brings it closer to how the delete command works.

    Continue reading →

  • A lot of Slack messaging and organising calls with others today in order to get something finished for next week. These sorts of days are exhausting: where you’re simply reacting to things. Starting to settle down now though, given that we’re nearing the end of the day.

  • Shutting Down Blogging CMS

    Ditching the CMS I was using for this blog is actually quite liberating. It means I don't have to spend any time trying to bridge the feature gap for what I need for a basic blogging CMS, and could focus on other projects.  For example, I spent this evening working on "awstools": mainly coming up with a new name for it.  I really can't use "awstools" as AWS is a trademark.

    Continue reading →

  • Had an excellent design session meeting this morning, but after 1.5 hours of talking, my voice is absolutely horase. Might need to consider improving my speaking skills and possibly even my voice strength. A microphone or headset might also be helpful.

  • Moving my work journal over to Micro.blog.

    That blog has been bouncing around CMS’s for a while now, and there’s always one or two things I’ve found lacking. It got to the point where I’ve began building my own CMS, and although it’s closer to what I’d like for this work journal — and includes a few features that other CMS’s lack, like private posts — I’ve been thinking about what’s missing, like image hosting and syndication, and realising that spending the time to build them would just be time I don’t spend on other things.

    And honestly, the reason why I’ve been unhappy with all the other CMS’s I’ve tried is because I was hoping for something which easily supports posting short updates with the occasional long post… something similar to Micro.blog. Well, something like that already exists, and it’s called Micro.blog.

    So I’m going to do the “kill your darlings” thing and try having this journal hosted here for a while. Sure it will mean that I don’t get things like private posts (which were honestly the only unique feature about that homegrown CMS) but I can probably make it work. At least there’ll be one less distraction.

  • 🔗 Mentality

    This might be a good one to bookmark and come back to occasionally.

  • 🔗 Stop checking the news before you do deep work

    Yes! I always fall into this trap.

  • Trying my Pixel 6 caseless for a little while. It was starting to interfere with swipe gestures which was getting a little annoying. Might be some other benefits with no case, such as being able to carry a physical notebook again.

  • Went to see Hamilton at Her Majesty’s Theatre last night (a little ironic, I know). I’ve seen the Broadway recording, so I didn’t come in “cold”. But it’s nothing compared to seeing it live. Absolutely faboulous. Highly recommend.

  • How is it that I can make a change in one area of an Android app, like add a new fragment, and a completely unrelated area of the app (the DB models) decides to stop building correctly? Sometimes it feels like the whole dev. environment is held together with masking tape.

  • I’ve turned off analytics for this site. It’s been more than a hinderance than anything else. It got to the point where I actually stopped visiting my own site just to keep my visits from showing up the data. How crazy!

  • The Feature Epic (Featuring the Epic Feature Branch)

    Here’s what’s been happening at work with me recently. I write it here as an exercise in how I can learn from this. They say that writing can help in this respect so I’m going to put that logic to the test (in either case, just having this documented somewhere could prove useful).

    We’re working on a pretty large change to the billing service powering the SaaS product sold by the company I work at. Along with our team, there are two other teams working on the same service at the same time, making any changes they need to release the product stuff they’re working on. All our teams had our own deadlines — which are pretty pressing — to get stuff delivered either last month or sometime this month.

    Continue reading →

  • Given how often I’ve been typing it recently, you would have thought I’d know how to spell “Los Angeles” by now.