The AWS Dress v2.0 (with matching shoes!)

If you’ve met me at a tech event in the past 5 years, there’s a good chance that I was wearing my AWS dress.

AWS dress

This was something I made in 2018 to celebrate and thank everyone that donated to Frocktober that year. The fabric was designed by me and printed by Spoonflower (4yds of Cotton Poplin Ultra), and the dress itself was a Colette Rue. I made my own piping for the waist panels. The fit on the Rue is/was notoriously weird though, and I struggled to get a version that fit me and would sit where I wanted it to. In the end, the bust is rather baggy and the shoulders are so wide I have to use fashion tape to stick them to my bra straps. (And I have wide shoulders!) I also wasn’t thrilled with the fabric, which wrinkles easily and looks a bit like bedsheets. But everybody seemed to get a big kick out of it, so I continued to break it out for AWS events over the subsequent years. I even got a selfie in it with Amazon CTO Dr. Werner Vogels!

AWS Dress t-shirtThis past February, I went to Singapore to co-present a big keynote for one of our AWS Innovate events. To my surprise and delight, my colleague Ethan handed me a special t-shirt to wear. How cute is that? It’s got a little illustration of me in the dress! I later asked him for the original image file, and I had some stickers made up to hand out at events. This thing was really taking on a life of its own.

That said – I was tired of the white, and I felt like it was past time for a new version. So I created a new design using 28 AWS service icons, arranged in a brick formation along with the AWS logo. I picked icons for my favourite services as well as ones that I thought just looked cool, and with a goal of getting a nice range of colours. Then I sent it off to Spoonflower to get printed onto 5 meters of their Organic Cotton Sateen fabric. It’s a heavier weight with almost a shine to it, thanks to the thicker weave. (Note: I found though that it’s very easy to create a visible snag when pinning, so I tried to only pin through the white bits where it’s less noticeable. Using better pins would probably help too, I think.)

AWS fabric and dressOnce I had the fabric, it was time to choose a design. I had deliberately purchased enough to make a full skirt if I wanted, and I thought for a while about doing some sort of retro style shirt dress. (I’ve had my eye on McCalls 6696 for a long time now.) But once I had all the pattern pieces printed out*, I realised that it was a bad choice. Any style that involved lots of seaming or shaping would either distort the printed icons, or result in me spending hours trying to line things up perfectly. I needed a simpler design that would show off the print to maximum effect. After a lot of research, I landed on the Seamwork Benning. It’s a loose and comfortable fit, with a simple shape (mostly rectangles) and not too many seams. No need for a zipper, and YAY RUFFLES!

*If you don’t sew or haven’t bought a pattern in decades, you might not realise that you can now buy patterns as PDFs! I’m a big fan, though it does mean you have to spend the first hour gluing all the pages together…

I wisely decided to create a prototype first to make sure I had the size correct, and that I understood all the steps. I used some random tropical light cotton fabric I had in my stash. I didn’t have quite enough meterage for the full version so I shortened the bottom ruffle. It was a quick project… but the shape ended up pretty sack-like on me. It looked better with a belt for waist definition, but the style isn’t actually meant to be belted. This showed me that I definitely needed to go down a size in the real version!

Benning Prototype dress

So finally it was time to start the real version. I spent a lot of time laying out the pattern pieces. I needed to make sure the icons weren’t upside-down, and I carefully adjusted the placement so that the two horizontal seams (at the waist and the second ruffle) would fall between rows of icons and thus not cut any in half. I also ensured that the repeat would be properly maintained the whole way down the dress. I actually overthought this a bit, as I also tried to make sure the horizontal pattern would be correct… before realising that the gathers for the ruffles would mess that up regardless.

Once I had the fabric cut out, it was time to assemble the bodice. There is a side bust dart to provide a little shaping. This dress is not fully lined, but instead has a simple facing around the neckline. This is like a partial lining, a bit of fabric that is sewn around the neck opening and then flipped to the inside. This gives you a nice finish around the neck and helps the garment to lie flat. I used some white cotton from my stash, along with some iron-on interfacing to give it a little extra weight. As you can see in the photo, I used my overlocker machine to finish the bottom edge of the facing.

Sewing the collar facing

One of the advantages of this design is that the sleeves are “cut-on,” meaning they’re part of the bodice so you don’t have to sew them on separately. So once you’ve sewing the shoulders together and attached the facing, you can go ahead and hem the sleeves and finish the side seams. I decided to be fancy and use French seams, just to challenge myself and to give a nicer finish. This way all the raw edges are fully encased on the inside of the garment.

French side seams

And with that, the bodice is done! You can see that the facing wants to flip out a bit, despite my understitching. I think this is something I just need to practice more.

Completed bodice

The next step was to assemble the skirt. The middle section has the pockets (of course it has pockets!), so I again French seamed those and inserted into the side seams. For each ruffle, you run a few rows of basting stitches and then pull those tails to create the gathers. I was really paranoid about my gathers being even, so I used a LOT of pins.

Sewing the ruffle

Yeah, these seams took a long time to sew. I made a little video.

Once the first ruffle seam was finished, I used the overlocker to finish the raw edges. Then I had to do another even longer one for the bottom ruffle!

Pinning the bottom ruffle

Then all that was left was a quick hem, and it was ready to try on. The moment of truth…

AWS dress v2

Hm. I was pleased with my sewing and finishing skills, but not so much with the fit. Even going down a size, it was still giving less “breezy summer dress” and more “giant Victorian nightgown.” I decided to shorten the bottom ruffle by chopping off the bottom row of icons. I also performed some very delicate surgery on the waist seam. I carefully unpicked just the center portion of the front waistband and created two small matching vertical darts, each of which took in 1/2″. Then I redistributed the ruffles and resewed the seam. That meant I took out an additional 1″ at the front, which is subtle but really helps it look less like a tent. Much better!


After finishing the dress, I still had a fair bit of the fabric left… and I decided that I needed to craft some accessories. That’s when I discovered SneakerKit. This company will sell you everything you need to make your own pair of shoes! While most folks use them to make leather shoes, I could see on Instagram that many people were also creating fabric shoes. I ordered my kit from Maker’s Leather Supply in Australia, along with a packet of the metal eyelets.

The first step is to prepare your pattern. I downloaded the Classic 3 in 1 and chose the high-top. Then I had to cut out my pieces.

Cutting out pattern

The SneakerKit site has really good instructions, but they’re intended for working with leather. To use fabric, I had to do some research and figure things out myself. Most of the blogs I’d read about making fabric shoes suggested using some very thick interfacing to help stiffen the sides. So my next step was to trace my pieces onto my thick iron-on interfacing. I used a bit of masking tape to join the two side pieces together at the heel. You have to remember to flip each pattern piece over to create the mirror-image piece for the other foot. (I marked mine with L and R to keep track.)

Tracing the pieces

Next I cut out the interfacing pieces.

Cutting out interfacing

I decided that the insides of my shoes would just be white fabric. So I took the interfacing the ironed it to white cotton, and then cut out around the interfacing. Note: I left 1/4″ excess along every edge that would be sewn to use as seam allowance. (You can see this better on subsequent photos.)

Cutting out the pieces

I then used the interfaced lining pieces to cut out the exterior fabric. For the tongues, I decided to use some of the leftovers from my v1 dress, and I tried to line up the pieces so the AWS logo would be nicely visible on the toebox. Once I had them placed, I cut them out.

Placing the pieces

For the side pieces, I made sure to line the heels up exactly between two icons so I could ensure both shoes looked the same.

Cutting the side panels

Now it’s time to sew! I sewed each piece together going just around the edge of the interfacing. (All of the bits along the bottom of the shoe are left open so you can turn them inside out afterwards.)


Then I trimmed down the lining piece seam allowance by half just to make it lie flatter when I turned it inside out.

Trimming seam allowance

And then I turned each piece out and gave it a good press to make sure it was flat and all the corners were properly turned out.

Turning the pieces out

I placed the pieces on the rubber soles just to get an idea of what they were going to look like. Hey, this is pretty good!

Coming together...

I decided to some topstitching around each piece. This means I sewed a decorative line 1/4″ from the edge around the tongue and each side piece. (Again, I left the bottom edges unfinished.)


For the side panels, I discovered I had some red ribbon that would work perfectly for the loop at the heel (to help you pull them on). I cut out appropriate length, doubled it over, and sewed it down as I was doing the topstitching. (You can see it in the photo below.) Then I used the overlocker to close off the bottom of each piece. Later I went back and sewed down the edges of the ribbon to make sure it was extra secure.


The pattern has a LOT of little holes marked on the sides that need to be transferred to the fabric pieces. I started by using an awl (a very pointy tool) to poke holes in the paper pieces, using some cardboard to protect my worktop.

Poking holes

Then I placed the paper piece on the fabric panel and used a pen to make the placement of the holes.

Marking the holes

For the laces, I didn’t have the recommended tool for cutting the holes and setting the eyelets. Instead I used a regular paper holepunch to make the holes, which thankfully were the right size. It actually worked pretty well! Occasionally it had trouble completely cutting out the hole, but I was able to use the awl and some scissors to fix it up.

Punching holes

To set the eyelets, if you don’t have the tool you can use a hammer. I’ve done this in the past and had a couple of the little hammer tools in my craft box. I tried it in the house on a piece of plywood, but I needed something a bit firmer. I ended up doing it outside on the pavement, with a bit of cardboard to keep the fabric from getting dirty. I only mangled one of the eyelets, which necessitated using needle-nosed pliers to peel back the little bits and remove it to try again. So do your best not to screw any of them up!

Hammering the eyelets

With that, all of the pieces were complete and ready to be sewn onto the soles!

Finished pieces

The rubber soles have holes marked around the edges, but you need to use a thick, sharp needle to pierce through and open them up. Note: sewing through rubber is really, really tiring on your hands! I had to take frequent breaks.

Piercing the soles

Now it’s time to sew the pieces to the sole. The SneakerKit comes with heavy waxed thread and a long sharp needle to help you out. I had to watch the video many times to make sure I was doing it correctly. (There’s a very specific order you’re meant to sew the holes in.) As you work your way around, you sew on the tongue as well.

Sewing the shoes

Again, this is murder on your hands. I found that even with pre-poking the holes, they were hard to find in the rubber and for every stitch I had to dig around to find it.

Sewing the sides

When you finish the stitching, have to use a lighter to melt the threads on the inside. Then you simply put in the insole, lace them up, and you’re done! (Well, except there’s a whole other shoe to assemble. 😩)

Finished shoe

I managed to find some AWS Training & Certification laces in my swag bag, which went perfectly. I also bought a can of Scotchguard and gave them a good spray to help repel stains. They’re pretty comfortable, but I’m not sure yet how long they’ll last. If I were doing it again, I’d try to get even stiffer interfacing, as this is still pretty soft. I figure if/when they fall apart, I’ll pull the tops off and try something else!

AWS Shoes

But guess what? I still had some fabric left over, and with less than week left until AWS re:Invent, I decided to make a shirt.

Starting a shirt

I had to piece a few bits together, but I just managed to eke out a Tessuti “Arkie” shirt. Again, I used white cotton for the facing and for the underside of the collar. No French seams on this one as I was flying to finish it in time!

Arkie shirt

My AWS capsule wardrobe should hopefully be enough for the near future. 😜 Let me know if I’ve inspired you!

Singapore, Melbourne, and the Emergency Room

So many trips to document! After a quiet January settling back in Sydney, in February I headed to Singapore to help deliver the opening and closing keynotes for AWS Innovate AIML edition.

Me in a mask

I headed into the office to meet with a few colleagues. The view is pretty nice…

Working from the office

For the keynotes, we were going to stream them live from a greenscreen studio. I headed over early in the morning for hair and makeup, where I found a special surprise waiting: my colleague Ethan had created a special t-shirt with me wearing my AWS dress!

Me all made up

How cute is that?? We spent a very long day of finalising the content, rehearsing, and pre-recording a dress rehearsal. That night, I headed out to Brewerks in Clarke Quay for dinner. Singapore is such a pretty city.


I had a very early start the next day for the actual live stream. It went really well. Thanks to Ethan and my awesome co-host Dean for making everything so fun!

Dean, Ethan, and me

The weather wasn’t great in Singapore that week, but I did manage to work by the pool for a few hours.

Sitting by the pool

I also attended the AWS Singapore meetup one night, which we held in our offices. Massive turnout, and a really great evening of talks.

AWS Meetup Singapore

The next day, I met up with the two members of my team based in Singapore – Cathy and Donnie!

Cathy, me, and Donnie

We also hosted a dinner for some of the AWS Community members in Singapore: AWS Heroes, AWS Community Builders, and user group leaders.

On my very last night, I went out for dinner with my good buddy Gabe and his wife Alex. They took me to a local place that was super crowded, insanely tasty, and so cheap. Singaporeans are spoiled for food, I tell ya.

Gabe and Alex

It was a quick trip – just a week – but it was great getting to catch up with all these folks!

A couple weeks later, the Snook and I both flew to Melbourne where I’d be delivering the closing talk of ServerlessDays ANZ.

Me and Rodd on the airplane

We made it just in time to attend the speakers’ dinner that night, and then had a lovely walk back along the Yarra.

Me and Rodd in Melbourne

The next day was the conference. The venue at Federation Square was gorgeous! My buddies Lars Klint and Pete Hanssens were on the organising committee and kicked things off.

Kicking off ServerlessDays ANZ

Great crowd!

Selfie with crowd

Here are some of the amazing other speakers! The talks are all up on YouTube.


My session was the last one of the day…

Mic'ed up and ready to go!

Thankfully it went realy well and I was happy that it was so well received! Thanks to my colleagues Paul, Stephen, Gregor, and Derek for all their help with the event.

Me presenting

Me from the audience

After the conference, we all headed to a nearby bar for the afterparty…

The next morning we headed out into the city to be tourists. We mooched around the Queen Victoria Markets and enjoyed the sunshine. The hot weather helped us justify stopping off at Brick Lane Shed for a sneaky beer!

Me and Rodd

We also had a late lunch of some very tasty bagels from Bowery to Williamsburg.

Snooky with a bagel

We had a plan to meet someone at ACMI but had some time to kill, so we decided to check out the “Story of the Moving Image” exhibition.

Then we headed up to the lab to meet my friend J Rosenbaum and check out their fascinating new artwork Gender Tapestry. We took selfies that were uploaded and featured in some of the creepy generated faces.

That night, the Snook – a notorious hater of musicals – gave me a lovely birthday present of attending & Juliet with me. (It helped that I told him all the songs were from the catalogue of Max Martin, Swedish Pop producer extraordinaire!)

& Juliet

I LOVED IT. It’s a retelling of Romeo and Juliet with loads of pop song mash-ups, a gay romance, great costumes, fantastic dancing, and Rob “Millsy” Mills as Shakespeare. I mean, WAS THIS WRITTEN FOR ME?!

& Juliet

Afterwards, we headed to trendy Bar Ampere for dinner and cocktails.

Bar Ampere

On our last day, we headed down to St. Kilda to enjoy the sunshine and check out the markets.

Luna Park

We were delighted to discover the nearby St. Kilda Community Gardens. Lovely place!

We went for a walk along the beach. I always think of the line from the Paul Kelly song – “Where the palm trees have it hard.”

St. Kilda beach

We finished our trip with a spot of furniture browsing in Collingwood followed by beers at The Craft & Co.


And that’s where it would have ended, a nice ending to the weekend… except for a little accident on the way back to the hotel. Here’s how I described it to my sister:

So Rodd and I were briefly walking back to our hotel in Melbourne so we could head to the airport. Down one of the busiest shopping streets, people everywhere.
I walk over, like, a manhole or something.
And my left foot lands crookedly
And I start stumbling forward
And I can’t get my feet under me
And it’s like slow motion, and I’m like, yep, I’m going down. 😂
And rather than try to land on my knees or my hands, perhaps sensing that I could risk breaking something that way, instead I face plant.
Literally belly flop on the pavement, taking the brunt of the fall on my boobs.
The Asian couple in front of me were like horrified “ARE YOU OKAY?!?”
And Rodd helped me up and I’m okay
Skinned my elbow a tiny bit
But I suspect my chest is gonna hurt tomorrow.
So that’s me. Still falling on my face, as a grown-ass adult.

Over the course of the next week, my chest started to feel increasingly sore. I didn’t have any visible bruising, but sleeping on my left side was impossible and it got harder and harder to breathe. Finally I started to get worried that something was really wrong, so we headed to the hospital.

In the hospital

A few hours and a couple X-rays and an EKG later, they confirmed that I wasn’t having a heart attack. The doctor couldn’t rule out a cracked rib, but didn’t see one on the X-ray. The only thing I could do was wait until it stopped hurting, which took a few more weeks. In retrospect, seems likely that it was a case of costochondritis, where the cartilage between the ribs gets inflamed. I’m super grateful to the Australian health care system and the doctors for helping me rule out anything more serious! (Oh, and it didn’t cost me anything. 😅)

Minecraft Socks

Minecraft SocksI think these socks win the prize for the longest time from start to finish, and they probably also set a record for the number of times I frogged and restarted! My initial cast-on was way back in April 2021 – back when I was still livestreaming my knitting – and I finally handed them over to the Snook yesterday.

The yarn is Drover Self-Striping from Colagirl Collective that I bought from Convent & Chapel many years ago. I can’t find any record of the colorway name or number, but the lime/grey/black reminded me of Minecraft. My original plan was to do the Undulating Rib socks, but I realised after casting on that it was fighting with the self-striping. So eventually I frogged them and started over. I settled on a simple broken-rib pattern, which gave a sort of pixelation effect and kept me from being too bored. :

Row 1: *K2, P2* repeat to end
Row 2 & 4: Knit
Row 3: *P2, K2* repeat to end

I knitted them toe-up with a circular needle (using the Magic Loop technique). Normally I prefer to knit both at the same time, but the wool was pre-balled and I had no way to access the other end. That meant I had to knit them one-at-a-time, and of course I lost my notes during the long gap after finishing the first one. It was only really an issue on the heel, which I decided to knit using a traditional gusset and heel flap (but in reverse). I suspect that my numbers are slightly different on the two of them, but I was already knitting these as fairly baggy house socks so I figure a few stitches either way doesn’t really matter.

The Snook was pretty happy to receive these, as the weather has turned decidedly Autumnal and the floors are feeling a bit cool in the mornings!

Minecraft Socks

Teacup power-ups

I spent a good twenty minutes today playing with the browser demo of Jane Austen’s 8-bit Adventure. It’s awesome! Can’t wait for the full version to drop.

The Roald Dahl rewrite kerfuffle

Over at, I finally wrote down my thoughts about the whole rewrite controversy over the past couple weeks. I was quoted in the Telegraph article that broke the story, and it was honestly a little scary to get pulled into a culture war. For the record, I don’t support the changes, but only because they let Dahl off the hook for his indefensible and wrong attitudes. Dude wasn’t a saint, and if society has evolved past his racism and misogyny, let’s leave his books in the past where they belong.

The Great Fruit and Veg Experiment – and app!

Photo by Iñigo De la Maza on Unsplash

A few months back, I read an article about how to be healthier that suggested you should eat 30 different plants (fruits and veg) a week. It’s not just about the vitamins you get from the food itself, but also about encouraging a healthy gut biome. “Holy moly,” I said. “I reckon 30 in a week would be tough.” Rodd was hyperbolic in his skepticism. “I don’t think there are 30 different plants in the world!” he joked.

I kept seeing this advice over and over though, along with shocking stats like this one from a recent Guardian article:

Of the 6,000 plant species humans have eaten over time, the world now mostly grows and consumes only nine, of which just three – rice, wheat and maize – provide about 50% of all calories humans consume. Add potato, barley, palm oil, soy and sugar to the mix, and you have 75% of all the calories.

Well, this simply wouldn’t do. I made a New Year’s Resolution to start tracking the variety of plants I eat each week, and I began jotting them down in a Note on my phone. I set a few rules: the item has to be relatively unprocessed (no counting cocoa beans in a chocolate bar!), and there needs to be a decent mouthful of it (no tiny amounts of spices). To my surprise, getting 30 a week wasn’t as hard as I feared.

A few things have helped. We’ve begun getting a box delivered from Box Fresh each week, which includes a wide variety of fruit and veg. So far we’ve been happy with the quality, though it does mean you have to plan your meals and eat at home so you get through it all. I’ve also been making a point of going into the office a couple days each week, and there’s always fruit there for a healthy snack. Overall we’ve been a lot more aware about getting variety, and I’ve consciously chosen options (like salad for lunch) that maximise my chance of getting new items for my weekly tally.

Fruit and Veg appI’ve also moved on from the simple Note for tracking, and I’ve built myself a pretty spiffy app that uses a Google Form to collect data in a spreadsheet. That sheet automatically keeps track of the overall variety and the breakdown per week. It also creates the chart you see above, which should continue to update throughout the year as I add more items.

So far this year I’ve eaten 79 different plants, and here’s a peek at the ones I’ve eaten most frequently:

Plants I’ve eaten every week this year: Cabbage, Coffee, Lettuce, Rice, Tomatoes. (I’ve lumped all lettuce into one category, but I’ve actually had several different varieties in there.)

Plants I’ve had nearly every week this year: Avocado, Capsicum, Carrot, Coriander, Cucumber, Potatoes, Red onion

Let me know if you’re interested in setting up something similar for yourself! I’d be happy to share my Sheet with you so you can set up your own tracking form.

Architectural dreaming

One of the things we promised ourselves when we left for Germany was that when we got back, we’d finally renovate and redecorate the house. We did up the kitchen in 2012, of course, and then the garden in 2013-2014 and the en suite bathroom in 2016. Before we left in 2020, we replaced the carpeting in our offices and the ceiling lights. But the rest of the interior is basically the same as when we moved in, and all our furniture was mostly cheap IKEA stuff we’d accumulated over the years. We saw the move as the opportunity to get rid of a lot of things, and to start to invest in actual interior design and “grown-up” furniture. We also have a few structural things we want to do, like refresh the main bathroom, redo the closets, pull down the ceiling cornice (if we can), and change the window treatments.

So of course, I’ve started a Pinterest board. Rodd’s sister also brought us a giant stack of design magazines.

Design magazines

Here’s the thing – we both really like mid-century design. We’ve got a couple pieces that we know we want to keep: our bed, our vintage sideboard, Rodd’s Grandma’s cupboards and my rocking chair (both of which can be seen here), and these funky little shelves. We’ve also got some art for the walls. But other than that, everything else can go. We’ve set an arbitrary rule that we’re allowed IKEA things in the bedrooms and offices, but not in the main part of the house.

I find myself scrolling through endless photos of mid-century shelving systems and conversation pits. (Did you know the conversation pit “is back”?) We spent hours today watching Architectural Digest videos on YouTube. But I don’t want to just create a pastiche of the Miller house, you know? I think it also needs to be more modern and us, and of course we’re limited by the concrete box floorplan that already exists.

If you know of a good Sydney based interior designer, please let me know. We’ve put out feelers to a few, but always looking for more recommendations!

PS – We did visit the Miller house back in 2019, and it’s amazing. (Rodd really, really wants that wall of built-in shelves.) If you’re into that type of thing, highly recommend you visit Columbus, Indiana and watch the excellent John Cho film

Us at the Miller House

How we kept our Australian mobile numbers

Rodd and I have both had the same Australian mobile/cell phone numbers for more than twenty years, and we didn’t want to lose them when we moved to Germany. After investigating a few different options, Rodd set us up on a Hosted PBX plan with Aussie company MBit. We both ported our mobile numbers to them, and for $11/month the numbers remained active the entire time we were gone. Any SMSes we received were delivered to email, and they came through quickly enough that we could use them for two-factor authentication. (That was one of our main requirements.) We were also able to receive voicemails, which came through on email as attachments.

Note: I’m not sure if MBit are still advertising this service, so if you’re looking to do something similar, you might want to talk to them directly.

When we returned to Australia last month, we both needed to get new mobile plans so we could then port our old numbers to them. I figured this would be simple, but I ended up running into a few issues with mine that I thought I’d document for posterity’s sake.

My employer covers my mobile cost (up to a cap) so I decided I’d upgrade my phone at the same time I got my plan. I don’t change my phone that often, and I’d had an iPhone 11 for a couple years at this point. After doing some research, I decided on an iPhone 14 Pro 512GB on a plan from Telstra. I went to the Telstra shop at Broadway the first weekend we were back but they were out of the 14 Pros. The guy told me that he thought the Apple Store might have them though, so I headed up there.

Happily, the Apple Store had some in stock (in purple; I didn’t care) and they started the process of signing me up for my Telstra plan at the same time. We ran into some issues with my Telstra customer ID – I’ve had various Telstra plans over the last twenty years, and I was in their system multiple times. I ended up going back and forth between the Telstra shop and Apple to sort it out, but eventually we got there. The solution involved me reinstalling the My Telstra app on my phone and using my old login for it, and then creating an ID from that.

Then as the final step of doing the order, the Apple Store guy asked if I wanted to use an existing number. I said yes. He went through the porting steps, and was a bit confused because he didn’t recognise MBit. Then he asked for my account number. We didn’t actually have this, and MBit had closed for the holidays. So here’s what I should have done: walked away and started the purchase again once I had that info. Instead the Apple Store guy told me we could still set it up with a new number, and then I could call Telstra once I had the MBit account number to switch it over. Reader, I believed him. He set up the plan with a brand new number, and I walked out of the Store with my new iPhone.

Back at home, I transferred everything from my old iPhone to my new one. That process worked really well, and other than logging into some apps again, it was completely seamless. I didn’t bother to tell anybody about the new number, because I’d only have it for a few days, right?

A few days after Christmas, MBit were able to provide us with our account numbers. Rodd went with a simple pre-paid Boost plan and bought a SIM at the supermarket, and he was able to port his number without issue.

I called Telstra and explained what I wanted to do, and ran into an immediate roadblock. Telstra’s systems will allow you to port a number ONLY during the initial plan setup. Once you are on a plan, it’s impossible to port a number to it. The customer support person told me that I’d have to pay out the entire contract (LOL NO), so I resigned myself to just having to change to the new number. Then right before we hung up, they said:

There’s no option for us to port in your number to an existing mobile service however, you can request to change the number to an old one.

You just need to contact our voice team at 132200 and they will be the one who will process it for you.

Intriguing. I called them the next day and after fighting through different levels of menus and waiting on hold for a while, I got through to a nice bloke in Brisbane. He confirmed that yes, you can change the number associated with a plan, but only if that number has already been ported to Telstra. He therefore came up with the solution – I’d have to sign up for another plan and port my old number to Telstra as part of that setup. Once it was active, they could do the switch between the two plans. Then we’d cancel the new extraneous plan, and he kindly offered to refund any charges associated with that new plan.

It was complicated but my only option. So he went through the whole process of setting up my new plan (the cheapest post-paid we could do over the phone) and I gave him the info to port my old number to it. Then a few days later, I got a delivery with the SIM card. I had to put that into the phone to activate it, and within a few minutes of doing that, I got a notification that my old number was active on it. I had Rodd send me an SMS to test that it was working. Success! So now we just needed to swap the numbers.

I put the SIM for the new number back in and called Telstra again. This time got a nice guy in Perth. It took him a while to understand the whole convoluted plan, but we got there. (If you are in a similar situation, make sure you write down the reference number each time you call.) He explained that to change the number on a Telstra plan, the number you’re swapping in has to be in their archive pool. When you deactivate a number in Telstra, they put it into an archive pool for six months in case you want to claim it back. So the next step was to deactivate the new plan with my old number, which he did. He then went to do the change, but the system wouldn’t let him immediately apply my old number. He tried a few different things, but ultimately we decided that we needed to wait while systems updated to show that my old number was available to be applied.

That meant I had to call back again the next day. This time I got a nice lady in Brisbane. I again walked her through the whole saga. She then went to do the changeover, and to both of our surprise, it worked pretty much instantly. I didn’t have to change SIMs; my phone just automatically changed it to show the old desired mobile number. Success! She then applied the refund for the extraneous plan.

Sidenote: I really can’t fault Telstra at all through this process. The guy in the shop was a bit clueless, but the folks on phone support were knowledgeable and helpful. I did have to wait probably 20+ minutes each time I called, but it was worth it. They do try to punt you out to using the support chat in the mobile app, and I tried that the first time. However, the support agent I got did not understand my issue at all and I gave up quickly. It was definitely worth the time to get an actual human being on the line.

Right, so everything should be hunky-dory, right? Not so fast, friend. Even though my SIM had updated and I could receive calls and SMSes on my old number, I noticed that iMessage and FaceTime were still picking up the (now deactivated) new Aussie number. It took me several days to figure out how to solve this problem. I went through all the usual voodoo you find by googling: I turned the phone on and off; I took the SIM out and put it back in; I turned iMessage and FaceTime on and off multiple times too. I went into my iCloud settings and made sure the old number was showing there. Nothing worked. No matter what I did, I could not get my old number to appear as an option in Send & Receive. It would show my German number (which presumably had synced from my old phone) and the new Aussie number, but never my old Aussie number.

iMessage settings

Today in desperation I asked on Mastodon…

Mastodon screenshot

And came through! It turns out there are two places in System Preferences where you need to update your number – “Name, Phone Numbers, and Email” AND “My Number.” I had only done the first, mostly because it’s the first option you get when you search for “Num” in the System Preferences.

System Preferencees

Once I updated “My Number,” I turned off iMessage and FaceTime once more. Then I put the phone into Airplane mode and powered it down. I waited a few minutes and turned it on again. I took it out of Airplane mode and turned on iMessage. And it picked up the new number! I was finally able to select it for both services. 😅

So thanks to Telstra and thanks to Randolph for solving my dilemma. I’ve got my old number back, and nobody needs to update their Address Book. Woohoooooo! 🙌

Keychron K8 Pro and a physical mute microphone button

My home office in Sydney is still empty, but I’ve set up a workspace at the dining room table in the meantime. One of the Christmas presents I bought myself is a mechanical-switch keyboard. I’ve been wanting one for ages, and then I read this CNN Underscored rating guide that covered a lot of the best. I decided I didn’t need a full-sized keyboard as I’ve got my duckyPad I can use for a numpad. Based on the guide – and what’s available in Australia, and what I wanted to spend – I ended up getting a Keychron K8 Pro with aluminum frame, RGB backlight, and blue Gateron switches. (MSY has it for $179 AUD and had it ready for pickup in 3 days. The guy there was like, “I didn’t even realise we sold Keychron stuff!”) It’s pretty sweet.

Keychron K8 Pro keyboard

The first thing I noticed when I picked up the box was that it was heavy. This thing is seriously sturdy, which is great because I have been known to pound on keyboards. The K8 Pro can be used either wirelessly with Bluetooth or plugged in via USB. (I expect I will mainly use it plugged in, but it’s nice to have the option.) It comes with the Mac keys installed already, but they provide the corresponding Windows keys along with the tools to swap if you need to. I haven’t gone down the custom keycaps route yet, but believe me, I am tempted. (Why are so many of them white though? I remember back when I had a Mac keyboard with white keys it was a constant struggle to keep them from looking grimy.)

I plugged in and started typing. And friends, the blue Gateron switches in this thing are gloriously clicky. I’m probably giving Rodd a migraine, but I love it. Everything feels very solid, including the space bar. Then I noticed there are a couple special keys in the upper-right corner…

Keychron K8 Pro special keys

With the default Mac layout, the little “crop” icon invokes a partial screenshot (i.e. the same thing you get by hitting Shift-Command-4). I’d long since built up the muscle memory for the shortcut, but since I usually move my right hand for it anyway, I reckon I could switch to the button.

The middle button has a microphone on it, and I got excited thinking it was a physical mute-microphone button. Instead though it invokes Siri or Spotlight search (i.e. Command-Space), which is disappointing. I never really use Siri, and it’s much faster to just use the shortcut for Spotlight. Park that for a second.

The third button has a lightbulb on it, and it controls the RGB lighting effects on the keyboard. When you click it, it cycles through the different options. If you hold down the Fn key while you click it, it turns them off/on. Okay, useful.

Back to that microphone button. One of the best things about a keyboard like this is that it’s completely customisable. I decided to remap that key to become a mute microphone toggle. Of course, Apple still doesn’t have an OS-wide shortcut to mute the microphone, which means you have to get creative. Previously I used Mutify to create a shortcut for the duckyPad, but I decided to see if I could do it without installing anything new on my machine. It took me lots of trial and error, but I’ve finally got it working! Here’s how I did it.

The first thing you need to do is set up a Quick Action using Automator. This extremely thorough article will walk you through every step of the process, including how to test that the integration is working. I decided on Shift-Command-0 for my shortcut, as I don’t use any of the apps that use that one. I tested it out, and I could see that it was working! But there was one problem. There’s no feedback when you invoke it, so it’s hard to remember whether you’ve engaged it or not. (Mutify had a little menubar icon that would turn red.) Then I realised I could use system notifications for that purpose…

Mute notification

Here’s the AppleScript I ended up using in Automator:

on getMicrophoneVolume()
     input volume of (get volume settings)
end getMicrophoneVolume
on disableMicrophone()
     set volume input volume 0
     display notification "Microphone has been muted." with title "Mute Hotkey"
end disableMicrophone
on enableMicrophone()
     set volume input volume 100
     display notification "Microphone has been unmuted." with title "Mute Hotkey"
end enableMicrophone

if getMicrophoneVolume() is greater than 0 then
end if

Then go to your Notifications & Settings pane in System Preferences and check that Script Editor is set to Allow Notifications.

Notifications & Focus pane

If you leave the style set to Banners, they will show briefly and then disappear. I decided it was more useful to change them to Alerts, which will remain on the screen until dismissed. That way I can tell at a glance whether my microphone is “hot” or not. The notifications end up stacking up in a little pile, and you can dismiss them all at once when you want to clean them up. (I might play with the wording a little bit to make it even more obvious what the current state is.)

Stacked notifications

So now you’ve got a system-wide shortcut that will turn your microphone input off and on. If you’ve got a configurable keyboard, you can then map that shortcut to a single key press. For the Keychron K8 Pro, there are a couple ways to do that but the easiest way is to use VIA, an open source keyboard configurator. I had to go to in a browser (important note – has to be Chrome due to the extensions required) and click the “Start Now” button. (You need to be plugged in for this, not using Bluetooth.)

VIA home page

You’ll then click the Authorize Device button, and an alert will appear asking you to confirm which device you want to connect to.

Authorise keyboard

This is where I came unstuck the first few times, because I’d do that and then… nothing would happen. Then I realised I needed to RTFM. Keychron’s key mappings haven’t been approved by VIA yet, so you have to add them manually. This isn’t as scary as it sounds. I went back to the Keychron K8 Pro product page and scrolled down to “Get the keymap working on VIA.” Then I clicked the button to “Download K8 Pro ANSI RGB keymap JSON file” and unzipped the download.

Keychron’s instructions are written for the desktop version of the VIA app, but as far as I can tell it works exactly the same in the browser. So head back to Chrome, click on Settings, and tick the option to “Show Design tab.”

Show Design tab

Then click on the Design tab, and you’ll see a place to upload that JSON you just downloaded. You’ll also want to make sure the “Use V2 definitions (deprecated)” option is ticked.

Upload your JSON file

If it worked, the screen will update to show a keyboard.

Keyboard screen in VIA

Now switch over to the Configure tab and you should see your actual keyboard layout. The “Layers” refer to different configurations, and the Mac configuration is Layer 0 by default. (You may need to switch to Layer 1 for Windows.) Click on the Macros link in the upper-left.

Managing Macros

Macros allow you to type multiple key presses at the same time, so that’s where we’re going to save our shortcut. I put mine in Macro 0, but you may want to use another number if you’ve already got some in there. For each key, you’ll enter the appropriate alias from the documentation. Here’s what mine ended up being for Shift-Command-0.


Note that the keys are separated with commas, and I’ve wrapped the whole thing in curly braces. Make sure you click the Save button once your shortcut is in there. Now click back on Keymap in the upper left.


This is where you’ll actually map your new Macro to the appropriate keypress. (Protip: take a screenshot before you do anything else. You’ll see why in a minute.) In the upper part of the screen, click with your mouse on the key that you’d like to remap. It will start blinking slowly. (You can see mine in the upper-right.) Then on the bottom part of the screen, click the Macro option and then select whichever one corresponds to the Macro you created in the previous step. I chose M0, which is why the keymap changed from “Siri” to “M0” on that key.

And that’s it. It’s active pretty much instantly, so you should be able to try it out right away. You can also use the Key Tester tab; when you click the key on your keyboard, it will light up what you’ve mapped it to. Now here’s the warning: once you click an option on the bottom part of the screen to map a key, the selected blinking key will move to the next one on the upper keyboard. It’s really easy to not notice this, and to click another option on the bottom part (like if you accidentally hit the wrong one). This means you might be merrily going along and remapping heaps of keys without noticing. (I’ve done it a couple times already.) So just be careful! That’s why I suggested a screenshot, so you can repair any damage if you accidentally remap a key and can’t remember what it was before.

The really awesome thing about keyboards like this is that the configuration is saved on the keyboard. It’s not tied to the particular laptop, like if you configured it with an app. You can plug it into other computers and it will still work. Really cool, huh? There are lots of other configuration options in there, including changing the lighting and invoking specific OS features. I’ve really only scratched the surface.

So yay! I’ve got a very clicky keyboard and a physical button to mute the microphone across all apps, along with a visual reminder of the current state. If you have any suggestions or want to share how you’ve modded your Keychron, please get in touch.

We don’t talk about Backstreet… 🎵

Every New Year’s, there’s a happy moment when I remember that the latest Best of Bootie compilation is out! We’ve been listening to it for the last hour, and my favourites are definitely “We don’t talk about Backstreet” and “Take it as it was.”

And OMG we just got to the last track and I did not expect that. 😂