Is this thing on?

I'll be honest, I'm just trying to see if I can post posts from Netlify CMS. Nothing much to add right now, so here's some fun tweets I like.

Hey, I moved to Europe


It happened almost by accident that I moved overseas.

I've always had it in the back of my head that I'd like to work internationally at some point in my life. Just a year ago I was honoured to be invited to speak at a conference in Amsterdam, and It was my first time leaving the Asia/Pacific region. It was a total blast and was really nice to make new friends around the world, but it kinda set a few ideas going in my head.

So when I saw an off-hand remark from a school friend about an opportunity to work in the Netherlands, I followed it up nonchalantly. This started a chain reaction that ended with me selling all my stuff, renting out my apartment, and moving to another country with little more than a general sense of confidence things would work out.

So here I am. I'm in bed at my temporary hotel, having just got home from a night of drinking with my surprisingly international (and incredibly boozy) coworkers, after my third week at the company. Things have generally been pretty good.

I'm still working my way through a bunch of issues (currently trying to get Suncorp Bank to let me make a damn bank transfer), but after three weeks things are generally looking good. I am especially excited to move into my new apartment at the start of next month, so it will be nice to have a place to call home again.

There's no set plan for what I'm doing, but from here I am looking forward to making new friends, getting to know the city, and going even further in my free time to explore the rest of Europe.

To make things a little more fun I've been trying to keep a video blog. You can keep updated by subscribing on youtube if you're interested in that sort of thing.

Aren’t we just about due another chat platform?

When I was at school the mobile phone went from a luxury item to something that was affordable and even kinda essential.

I remember that Nokia cycled from orange backlights all throught the colours of the LED rainbow until eventually you could get them in white, which was really fancy among the kids at school.

I don't recall which came first for me: IRC or ICQ.
But either way, back in the early 2000s when text messaging still cost 25 cents a pop, the freedom and possibility of being available 24/7 was super exciting (as long as the dial-up connection hadn't crapped out).

I'd stay up all night just chatting to people, and for an antisocial teen it was an amazing enabler.

But there were too many apps

Chat networks sprung up like weeds, everyone was writing them. Even I had a crack, which is to say played around with Visual Basic building what was a terrible (but in my memory quite slick looking) GUI app.

Eventually folks came up with the incredibly smart idea to reverse engineer a bunch of chat protocols and build an app that could connect to them all at once.

As the first of many apps to do this, I loved Trillian to bits (but as a skeezy high school student never managed to pay for it). Eventually I moved to Linux and Pidgin was good enough, so I ended up using that for yeeeaaarrrrss before it fell into obscurity.

Obscurity because after a period where all the disparate chat apps started federating and talking to one another, all the old guard died off and got replaced by a new and vastly less interoperable bunch of chat apps.

Which is where we are now.

Chat apps suck, and I'm so over it 🙄

Facebook (and by extension Messenger) have been tarnished by the stink of their inappropriate data collection and sharing. A lot of my friends use Instagram, but I doubt anyone is going to trust Facebook again.

Slack just shut down their IRC/XMPP gateways leaving you to use the slow, bloaty Electron app that barely works. No joke, I have to close it whenever I boot a VM because it uses so much RAM.

Twitter is trying their hardest to destroy all the goodwill of the early adopters by plastering ads and featured content in the timeline and push notifications, while at the same time killing third party API support. This is a burning platform, and I'm done with it.

Whatsapp is just plain ugly. I have at least one friend boycotting it at the moment, otherwise this would be a contender for the messaging platform most of my friends use.

Signal security is questionable at best, with at least two exploits this year that I know of, and a frustrating dependence on Electron. I've had so many issues with the Android app in the past, I don't think it's worth anyone's time.

iMessage only works on iOS and MacOS. It's the height of arrogance.

On top of these, the remainder of things I've used in the past couple of months are Discord, Hangouts (lol), Microsoft Teams, various hook-up apps (I'm only human), Skype, Meetup, and of course regular trusty old text messaging. There are jsut too many things.

I don't even know

Twitter has been my go-to messenger for a little while now. I wanted it to be the universal SMS of the Internet, but right now they're more focused on trying to be the World Cup news hub (side note: exploding head 🤯 should really be a ligature so you can join it with other emojis such as rolling eyes 🙄).

The other day I cracked it and uninstalled it from my phone. Which leaves the question of which trade-off messaging app do I use to talk to my friends?

In hindsight this is kinda why I think Google's play to extend on SMS is fundamentally so smart. If it's on everyone's phone by default and works out of the box, what impetus is there to install another app?

So despite being burnt by buggy Android group texts as recently as last month, I'm just about ready to go all-in on SMS. Relive the glory days of standards and interoperability with a service I'm paying for.

So, you know. Send me a text. (International fees and roaming charges may apply)

My Twitter ad blocking experiment, DOM manipulation in someone else’s React app

Twitter as a platform is pretty neat. Twitter as a company… has its problems.

A while back they started showing ads into my timeline, which is something I'm really not here for. I would gladly pay a fee not to have that because I love the platform, but y'know. Corporate bullshit 🙄

So I've been taking it out on the advertisers audacious enough to target me, by blocking them. Apple? Blocked. Amazon? Blocked. Intel? You betcha you're gonna git blocked.


Despite my best efforts it got to the point where I was getting way too many ads to keep up with, so I decided to write a script to do it automatically.

TL/DR: I just want to install the ad blocker extension

There's an extension you can install to auto-block Twitter advertisers (providing you're using the mobile site). You can get this for:

Update 2019: I've taken it down because it stopped working.

Automating actions in someone else's react site 🤔

I mainly use the mobile Twitter site because it's way faster than desktop, but it's one of those sites that use post processing to munge class names. So instead of seeing nice
<div class="tweet"> HTML, you get something more akin to <div class="rn-1oszu61 rn-1efd50x rn-14skgim rn-rull8r []…]">

This makes it insanely difficult to automate the process of finding an ad and
blocking it. I'm not sure what ad blockers are doing, but this requires some
pretty specific DOM selection to get working.

There's two approaches you could take:

  1. Loop through all the <div> elements on the page until you find one with the
    text you're looking for. Eg. "promoted".
  2. Use weirdly specific selectors that get the job done, almost by chance.

Despite making fun on Twitter I chose the latter, because Twitter uses inline SVG elements, which means we can find promoted tweets by querying for the presence of certain SVG paths. It's completely absurd and I think React is criminally negligent for making this a standard practice.

Here's the two main selectors I'm using to find interface elements on Twitter mobile:

// The "promoted icon"
const adSelector =
  'path[d="M20.75 2H3.25A2.25 2.25 0 0 0 1 4.25v15.5A2.25 2.25 0 0 0 3.25 22h17.5A2.25 2.25 0 0 0 23 19.75V4.25A2.25 2.25 0 0 0 20.75 2zM17.5 13.504a.875.875 0 1 1-1.75-.001V9.967l-7.547 7.546a.875.875 0 0 1-1.238-1.238l7.547-7.547h-3.54a.876.876 0 0 1 .001-1.751h5.65c.483 0 .875.39.875.874v5.65z"]';

// The dropdown chevron
const dropdownSelector =
  'path[d="M20.207 7.043a1 1 0 0 0-1.414 0L12 13.836 5.207 7.043a1 1 0 0 0-1.414 1.414l7.5 7.5a.996.996 0 0 0 1.414 0l7.5-7.5a1 1 0 0 0 0-1.414z"]';

The remainder of the extension is fairly straightforward. Find stuff, click stuff, you know the deal. If you're interested in having a play with it yourself, you can check it out and give it some stars on Github.

My 2017 circumnagivation of the planet

September 30th, 2017 8:59pm

Me drinking a coffee at Brisbane International.

Heading to Amsterdam to talk at Fronteers Conf next week. I’m starting my journey from Brisbane after a looong day of packing and goodbyes. It’s a 23 hour trip, so I’m planning to front load as much sleep as possible, but will see how that goes.

Anywho, I’m off to find the duty free kiosk. Will connect back up in Abu Dhabi.


My first moments in Europe

October 2nd, 2017 5:36am

Arrived in Amsterdam at about 3 PM, after some 23 hours in transit. Thomas, one of the conference organizers, met me at the airport and shuttled me to my hotel despite my arriving super early. It was a nice gesture.

My hotel room is tiny. It was a deliberate thing I booked because it looked cute (it is), but I had to shift the mattress to the floor because I don’t fit on the bed otherwise.

After checking in, having a shower, and a change of clothes I went for a walk. I was really happy with myself to have found the Amsterdam sign with only a cursory glance at the map as I left the hotel.

On the way there I saw a girl on a boat nearly get a concussion while passing under a ludicrously low bridge. Also there was also a game of polo going on nearby which isn’t something you see every day.

I kept walking, ended up getting lost in the Vondelpark before giving out to find a supermarket to pick up supplies. It was all in Dutch so I was excited to go around the produce aisles finding the the names of things I learned from Duolingo.

After that I had a burger and Sprite (it’s sugar-free here and tastes of lemons), then caught a tram back home because it’s getting late and despite my claims of not being jetlagged, I’m going to have an early one tonight because I’m exhausted.


Preparations for the conference

October 9th, 2017 7:52am

After my first day, things started to get busy. In preparation for my talk I spent a couple of days in the lovely The Thinking Hut, who charge by the hour and have fast Internet and a really sweet industrial chic. This meant I got to explore the Amsterdam Oost (East) neighbourhoods.

So I walked around, went to the botanical gardens, took a metro ride, hired a FlickBike then couldn’t find anywhere to park it, and ordered a vegetarian roti with egg from a suburban Indian kitchen in bad Dutch. I felt really good about that last one until it came time to pay and I realised I don’t know any numbers in Dutch. Oops.

Tuesday night was the NLHTML5 meetup, which I guess is kinda comparable to the defunct Web Design Group back in Brisbane. This meetup was resurrected from the dead by the industrious Paul VM especially so that it could run around Fronteers time, and was a cool crowd and a good way to ease into the tech festivities. There were three speakers; Ola talked about standards and how to report bugs, Stephanie went through how she built her awesome pixel art hardware project, and Martin talked WebVR which made me really want to build some VR projects of my own.

Wednesday night we had the speaker dinner at Pakhuis De Zwijger. We met in the hotel lobby and from there the organisers shepherded us onto a boat. This took us for a ride out the gracht (canal), down the Amstel river, and into the IJ to get to the venue. It was nice, we all got to know each other and network a bit. There were local folks and peeps from all over the world together in one place, and it was a good evening.

A bunch of men on a small stage playing with umbrellas. One has turned inside out.

Afterwards we took the boat to Tolhuistuin across the water, where the FrontCheers pre-event party was taking shape. I figured I’d stay for one drink because I wanted to get back to my room to agonise over my talk, but after having a few beers and chatting to everyone I was among the last to leave. It was late enough the transport was sporadic, so we had to walk back to the hotel in the cold and the rain on the eve of the conference 😮

The ferry heading back to Amsterdam. The gates have just opened and a rush of people are getting off. There are approximately six billion people on bikes and scooters waiting to board.

Fronteers 2017

October 9th, 2017 8:30pm

My derpy face sitting up the front of the grand Pathe Tuschinski cinema.

The conference itself was inspiring. The venue was breathtaking, and the production was flawless.

The first day was great. Sara Soueidan was a great MC and opened the day perfectly, leading into Niels’ opening presentation and fun history lesson.

Sara Soueidan at Fronteers 2017.

By far the most poignant talk of all was Jessica Rose’s talk on imposter syndrome. The entire trip I’d been wondering what the heck I’d gotten myself into, and was terrified that I’d arrivve and people would exclaim “oh, sorry, we were expecting the _other_ Ash Kyd who does cool stuff and is actually supposed to be here”. The talk sparked a lot of conversations and basically was a cathartic start to the festivities.

Jessica Rose at Fronteers 2017.

I really enjoyed all the talks, but I think my favourite tech talk of the day was Alice Boxhall’s “Debugging Accessibility” which ran through the stuff the Chrome team have been doing to improve accessibility. It introduced me to a lot of new concepts on the technical side which I’d love to play with more to produce tools to help improve accessibility testing.

Alice Boxhall at Fronteers 2017.

The talks were a lot softer than I was anticipating, which is a good thing for the audience as it leaves a lot of room for the imagination to do it’s thing. Though I was starting to worry mine was a bit much, and mightn’t hit the right targets.

That evening we went to De Industrieele Groote Club for drinks and lightning talks. I was on edge beause this time I _really_ needed to go through my talk for the next day, and the talk titled “what not to do when presenting” was probably useful but very not helping my cortisol levels. So I left after the first few, though not before Jake Archibald thoroughly destroyed the audience with a mind twisting, but very highly produced pop quiz.

Jake Archibald presenting brainteasers on a projection screen.

Back at my room I ran a bath, prepared my clicker, and ran through my slides on my phone until the fingers on my other hand were dangerously pruned.


My talk

October 10th, 2017 8:30pm

On the second day I woke up early after not enough sleep so that I could practice one final time. I was prepared, the talk was good to go, and honestly I was feeling pretty prepared.

Fronteers Conference 2017 poster.

I missed the first talk because I was late to the venue. This was fine, I listened through the doors as I faffed around my slides. After the first talk finished, I snuck in through the side door and took a seat. I don’t recall much of that morning, I was too involved in my own anxieties.

As the conference took a coffee break, myself and the other speaker Ruben set up our laptops, prepared the video output, and made sure we were ready to present.

As we left the stage and the crowd came back into the theater, I realised I had forgotten to pair my clicker, and had no idea if it would work when I went onstage. It’s a Bluetooth thing, and I’ve concluded that buying it was a mistake because it’s so opaque, I don’t even know how to turn it on without re-pairing it every time. So I frantically texted anyone if they had a presenter via our secret speaker back-channels, and Martin thankfully came to the rescue loaning me his.

The talk went… well. I was told that I looked collected, but I felt nothing like that. It’s an interesting feeling speaking in front of a large crowd, and to some extent I think my awareness of my situation disappeared when I went onstage, and aside some minor clicker issues I think things went smoothly. I eagerly await the video so I can dissect it, beat myself up, and ultimately improve for next time.

The rest of the day was a whirlwind of talks, indecision, “the best burgers in Amsterdam” feat. a waiter for whom it was their first day on the job, an after party, and an after-after party including karaoke (bad) and an Irish pub with the stragglers at 2 AM in the morning. It was a very good time, and I want to write up a proper Fronteers wrap on my proper blog over at my prroper site at some point.


Queer encounters

October 11th, 2017 8:30pm

On the Saturday I wasn’t sure what I was doing, so my new local friend Mystery T offered to let me stay with him for a night. At the same time one of his friends had been pushing him to go to a gay party night for the local rugby team, the Amsterdam Lowlanders.

T was reluctant but asked me if I wanted to go, I was reluctant but wanted to experience the night life, so we ended up agreeing we’d check it out and leave if it was too much. I dropped my bags at his and we sat around chatting for a while until it was time to tram back into the city.

A few days beforehand I walked down a street (Reguliersdwarsstraat) with a bunch of bars and rainbow flags hanging out windows, which I presumed to be a gay street. Turns out this was correct, so we walked to one of the bars to meet R (whose name I can’t remember but that it starts with R).

After getting to know each other and sharing stories (and talking about airline points, how has my whole life become talking about points) we left for the actual venue. After two trams and some walking, we were at our destination; a somewhat unassuming building with blacked out windows and a big “We <3 Rugby” football out the front.

Club Panama Amsterdam, with a giant inflatable football out front that reads "We heart rugby"

The party itself was amazing, it was full of bodies (mostly shirtless) dancing in an old industrial style thing. The music was nothing special, and the drinks were expensive, but everyone was having a great time and they gave out icy poles at one point which was cute and refreshing. I wasn’t feeling sugary,so I declined.

It started to wind down around 3:30 and got a bit depraved so we left soon after.

A thronging dancefloor full of indistinguishable gays. There's shirtless dancers onstage. Looks intense.

The next day I booked a little Airbnb in Rotterdam and we took the train down to explore the city. From Wikipedia:

The near-complete destruction of the city centre in the World War II Rotterdam Blitz has resulted in a varied architectural landscape, including sky-scrapers (an uncommon sight in other Dutch cities) designed by renowned architects.

It’s a really cool city, the center is modern and well laid out, whereas the surrounds are still traditional row type buildings.

Panoramic view over Nieuwe Maas,  Erasmusbrug in the distance.

I stayed out in the suburbs in a strange, converted house under the hofbogen, which is an abandoned elevated rail line which has had buildings build up underneath. The Airbnb was a two floor affair with stairs steep enough I’d consider it a ladder, but it was very cute indeed. A bad photosphere follows:

A badly stitched panorama of a cosy under-bridge apartment.

I only stayed a night, leaving the next morning on a Eurostar to London!


The Motherland

October 12th, 2017 8:06pm

I arrived in London and things immediately felt different. Being back in an English speaking country was kind of a relief, but it also spoils the magic of a place to overhear people having the same mundane Bad Takes just with a different accent.

But still, what an interesting city!

I arrived in the evening and the very first thing I did was pop outside St Pancras to take a photo. Once that was out of the way I grabbed an Oyster card and made my way on the Underground to Soho to find my hostel.

Me, excited, just outside of St Pancras station

After taking some time to recuperate and charge my devices it was time to head to Brixton to see Grizzly Bear play. A cursory glance at the map suggested it was walkable, but the sheer scale of London eluded me and it was actually much further than I expected.

Still, I walked past a handful of landmarks including Trafalgar Square, Scotland Yard, Big Ben (which I passed without noticing at all, oops). Once I got to Vauxhall I’d had enough and caught the tube the rest of the way.

Brixton Academy illuminated in neon green, a double decker london bus in the foreground.

The calibre of the venue compared to anything in Brisbane was kinda eye opening and the event was amazing! I wasn’t especially taken with the autotune stylings of the warmup act, but Grizzly Bear themselves were stellar and well worth the trip. The venue was totally packed, the vocals were spot on, the band had some fun banter, and the bass was incredible!

The stage at Brixton Academy lit up in rainbow. I don't remember who's playing at this point, it's difficult to make out.

The crowd favourite was probably Two Weeks. Overall A+ event.

Not wanting to jump straight on the Underground, I went for a walk to Stockwell tube station and subsequently got lost on the metro. Apparently not all tube lines are equal, and while Google suggested I change from the northern line to the northern line at a particular station, I scoffed and ended up inexplicably at London Bridge.

Looking up at The Shard, the moon poking through the clouds, and an overflowing dumpster on the street.

I feel I need to take a moment to express how shit London Bridge, the bridge actually is. It’s just a concrete thing with no defining features at all. I assumed it would be grand and British and some kind of landmark, but I would bet if it fell down tomorrow nobody would care at all.

I did have some good views of Tower Bridge as I walked across though, and that’s an impressive structure.

After getting some safe and sound I had a late start the next day. Instead of actually doing anything, I wanted to wander around and explore the place. Soho itself is super glitzy and honestly I didn’t care for it. So after stopping at McDonald’s for a bottle of water (Europe is dehydrating!) I trekked back out to St Pancras to do the only other thing I especially wanted to do in London: see the Black Books store.

Me standing outside of Black Books and Nifty Gifty.

They say you should never meet your heroes. Probably fair. Still, I have the selfie!

The rest of the day I walked around (about 10 km) exploring the place. I found a section of the Underground that was above ground which I thought was fun. There was a very handsome gentleman giving out Coke Zero out the front of King’s Cross station. But generally it was nice to admire the varying architectures around the place.

After a couple of hours it was time to meet Tom and Shashi for pizza and 2-for-1 cocktails at The Black Horse, SE8.

Tom, Shashi and I at the table. Shashi has a big x crossing out her face.

“Okay now pull a face” I said. Shashi pulled the very best face, but hated it so much afterwards that I had to censor it for the benefit of probably everyone.


Whirlwind tour of London

October 15th, 2017 1:55pm

Shashi, Tom and I walking down a grubby London street.
Busy london mall at night.
Tiny planet of tall, skinny buildings along the Thames Path.
Me walking down the street, carrying all my bags plus a banana.

Third day in London I packed up my hostel and lugged my stuff to Tom and Shashi’s place. My original intention was to travel with carry-on luggage, but I had acquired stuff in my travels so I was working with three bags at the time.

One of the bags was full of stroopwafels and drop (dutch licorice) as a gift for Tom and Shashi, which I bought before finding out they both hate the stuff.

I mentioned I wanted some time out to catch up on Internet stuff so Tom suggested I have lunch at London Velo. I wasn’t expecting anything fancy, but it turned out to be a cafe/bike repair shop with a resident dog called Maurice who was super cuddly and plonked himself on my feet for scritches. What a cutie.

A very floppy looking dog hanging out for scritchies.

After doing some blog, checking some emails and all that I went for a walk to the DLR (Docklands Light Railway) to catch a train to Canary Wharf.

The DLR at Deptford Bridge

Every time I say the name Canary Wharf Tom screws his face up in disgust, saying “what do you want to go there for?” It’s pretty much a blando modern office precinct, but I wanted to see it because it was on the DLR line, and having grown bored of the touristy areas I kinda wanted to walk around.

I didn’t spend long there, but I had a look around and marvelled at the glass monoliths blocking the sky.

Tiny planet at Canary Wharf.

After that I started walking along the Thames path, finding misleading signs and locked gates galore. I read The Guardian’s take on Privatised London: the Thames Path which is a fascinating tale of people and developers being bad dudes.

From the Isle of Dogs to Tower Bridge, just how much of London’s riverside walking route is actually open to the general public? This specially assembled Guardian exploration party would stop at nothing to find out

I walked as far as Wapping before Tom and Shashi finished work and summoned me to dinner at the upscale food market Mercato Metropolitano.

Tom and I looking quizzically into the distance

Afterwards we toured a bunch of miscellaneous London landmarks.

Me smiling in front of the most MASSIVE billboard with "london" written in rainbow text.

The next day I was feeling a bit out of sorts so spent a fair portion of it inside. We did go for drinks and dinner, where there were several more dogs to play with.

Tom and Shashi petting a dog in a cafe.

London is a very Dogs place.


Toronto

October 16th, 2017 11:00pm

A tiny planet view of Toronto's Yonge-Dundas Square

On the Friday I caught the train to Gatwick airport, and flew to Toronto.

Pearson International in Toronto had a weird inter-terminal shuttle train with rubber tyres driven by some sort of cable system. This took me to the train station where I caught a diesel train to Union Station. None of the tracks are electrified, so all the trains run on diesel in 2017; mind blown.

Union Station in Toronto

From there I tried to catch what I thought was a bus to my Airbnb, but actually turned out to be a subway train.

It was a bit of an ordeal because I couldn’t buy a ticket with my card so had to find an ATM to withdraw cash, then buy Pringles to break the note in order to put it in the machine to get subway tokens to use the subway.

Yeah, the subway uses tokens in 2017; mind blown.

Two subway tokens close up in my hand

My accommodation turned out to be right at the edge of all the action, overlooking Ryerson University, and three buildings across from where Dayle and Adrian used to live.

Sez Dayle:

Holy shit! That’s our old hood!
We lived at <redacted> gerrard for years!
And i went to Ryerson for years too!!

Small world, right?

As I hadn’t bought a North American power adapter with me, I walked to Best Buy and bought one. Best Buy is pretty great; I talked to the dude in the Google display about the new stuff, and I’m thinking of getting a Daydream before I go back to Australia because they’re $40 cheaper than back home.

Me standing outside of Best Buy

With my electronics sorted, I faffed around town for a bit (and accidentally bought a smoothie bigger than my head) before retiring for an early jetlag bedtime of 10:00 (3 AM London time).

Day 2 in Toronto I was starting to feel pretty nasty and coldy, so I lazed around in bed for a few hours before getting up and facing the day.

There were a few landmarks I wanted to check out. One of them was the Loblaws that was just around the corner which Dayle said used to be a historical hockey arena before it was converted into a supermarket. It was massive and beautiful and they had Australian style licorice which I was tempted to get for the kitsch factor, but the CAD 6.50 price tag was sobering and I quickly calmed myself.

Packets of Australian Style liquorice, $6.49 each.

The next stop was Kensington Market which was a chaotic bohemian neighbourhood with lots of little shops and food stalls. There were bikes everywhere, people with bags and dogs all over the place!

The thing that caught my eye most was the stand selling empanadas. Having seen Empanada Dog and not really knowing what an empanada is, I really wanted to try one for myself.

However the little shop didn’t have a card reader, and after Pringles and the subway I only had a few dollars worth of coins. Also I have only vague notions of how tipping works so I panicked and walked on by without buying anything.

No regrets.

Map of Toronto Island Park. It's huge, with lots of attractions.

The third stop of the day was Toronto Island Park. The ferry deposited me at Centre Island, and my destination was the bike rental on the far side, so I set out at a medium pace.

Unfortunately, when I got to the bike rental it was closed, along with much of the island because apparently everything shuts down for winter and hasn’t opened back up again yet.

There was a pizza place closing up when I got there, so I got an old slice of cheese (the couple in front took the last two pepperonis, damn them), and walked onto the pier to contemplate my lack of cured meats.

A flop of cheese pizza on a grey and miserable day.

Toronto Island Park reminded me a lot of Rollercoaster Tycoon, everything was very quaint with amenities scattered around the place, and various bits of landscaping at intervals. However I really wanted to drop a handyman to mow the lawns and maybe toggle all the shops to “open”.

Me looking frazzled in the middle of a forest park.

With nothing really to do, I ended up walking 40 minutes to the far side of the island so I could catch a glimpse of the planes landing at Toronto Airport, where I caught a ferry back to the shore.

People on a boat taking photos of a plane landing at Toronto Airport

The last stop was the Rogers Centre, and the CN Tower. Neither were especially interesting, but there were a bunch of old trains to play with and I got to walk on a skybridge to get to the subway.

With only a couple of hours left until the concert I went back to my room to change and recharge my batteries.


Travelling right round the world to see two of my favourite bands play on the one night

Massey Hall from outside, illuminated in red neon. There are reflections from all the wet.
Inside Massey Hall, The New Pornographers play to a packed venue.

The concert itself blew me away. Massey Hall, built in 1894, was an incredible venue. Though it was all seated and wasn’t conducive to dancing, the calibre of the performances was just awesome.

Born Ruffians were one of my favourite bands for a period, but I wasn’t sure what to expect from them live. They were stellar. They gave a tight performance, had a super clean sound, and it was really well done.

Apparently they have a new album coming out which I’m really looking forward to. Here’s something from the old one: Oceans Deep.

The New Pornographers are wild; between three guitarists, two keyboardists, four vocalists and a strategic violin-percussionist they put on a great show.

The sound was a bit hit and miss with a few malfunctions, but it was still enjoyable and they know how to please a crowd.

My favourite bit was probably Simi Stone, touring member, singing Play Money — a song I can’t a good copy on Youtube anywhere (2022 update: here’s a nice one). Instead, here’s another I like: This is the world of the theater.


A food tour of Toronto

October 19th, 2017 10:39am

I took some time out to be a lazy bum the last few days in Toronto.

My “feeling a bit out of sorts” in London turned out to be a cold, which wasn’t super bad but rapidly moved to my shitty, asthmatic chest as these things do. So I spent the day lazing around eating Pop Tarts, a local delicacy which I understand are only legal to buy in North America.

When the sun went down I caught up with a new friend Mx who took me for sushi then showed me around the neigh(gay)bourhood. We later went for Poutine, which was an excellent, terrible mistake and I don’t know if I’ll be able to eat again.

Me looking super happy at the poutine place. The display reads "Smoke now delivers!"

The next day I went and caught up with the Vox Pop folks (who do Vote Compass). They’re doing some really cool stuff, and it was fun to see what goes on behind the scenes. I was super embarrassed to have a coughing fit in their tea room, apparently I was talking too much.

After that it was time to head to the airport.

A spaghetti junction of flyovers, Toronto off in the distance.

See ya Toronto ya filthy, charming mess!


Vancouver

October 19th, 2017 8:30pm

Air Canada is more generous/sensible with their carry-on luggage quotas, so I didn’t have to check my bags and went straight from plane to train!

Vancouver was decidedly more wet than any other cities I’d visited, it was bucketing down when I got off the metro. Luckily my Airbnb was only a few blocks from the station.

It's dark, I'm under a pink umbrella heading to the Airbnb.

Nice headphones! I finally got around to reviewing them on the plane.

There’s a 3 hour difference between Toronto and Vancouver, and 10 hours difference from Amsterdam so the incremental changes were starting to catch up. I went to bed early, and was disappointed to find I’d woken at 6 AM.

It was a lovely, sunny day for an adventure so I headed out in the direction of Stanley Park with the intention to hire a bike.

After getting myself all mixed up and walking the dead wrong way for a bit (my internal compass is not calibrated for the northern hemisphere), I stumbled upon Urban Waves bike hire where I rented a fetching mountain bike named Norco.

Urban Waves bike rental and the boats of Coal Harbour.

Stanley Park is a peninsula to the north of Vancouver devoted to parkland. There is a seawall around the perimeter which is devoted to pedestrians and cyclists to tour the area.

From Wikipedia:

The land was originally used by indigenous peoples for thousands of years before British Columbia was colonized by the British during the 1858 Fraser Canyon Gold Rush. The land was later turned into Vancouver’s first park when the city incorporated in 1886.

So I set off on my bike, stopping every few hundred meters to marvel & take photos. Vancouver is a very pretty city, especially in fall when the leaves are starting to turn.

Sweet Norco bike propped up against the park bench, there's leaves all over the ground and sailboats berthed in the background.

The ride is fascinatingly varied, ranging from city to harbour to the shipping lanes, a little beach, then back to the start via a Rhododendron Garden. It’s a painfully beautiful touristy thing to do, and I would recommend it for anyone who can ride a bike.

It's me, hanging out at Burrard Inlet at low tide. There's a bunch of massive ships off in the distance.

After that I stumbled on a local cafe chain and my life changed forever.

Let me cast my mind back to the year 2004 when I was a student living in Highgate Hill with two other housemates possessing equally terrible tastes in everything. On very special occasions when we were up early enough and could be bothered enough, we would trek down the hill on a 20 minute pilgrimage to the Crepe Cafe in South Bank for a $2 breakfast. It was glorious..

Over the years the price of breakfasts went up. First to $3, then to $5, and eventually breakfasts were the same as any other time, $7.50 for an Aussie Sunrise crepe (bacon, egg, cheese and spring onion). Still a bargain if you ask me.

In 2015 when I was working in South Bank, my colleagues would hate going to the Crepe Cafe for lunch because it really wasn’t value for money and tbh it was pretty gross food. But it held a special place in my heart (and it had a gluten free option so Gav would always be excited to come with me).

In 2017 tragedy struck and the Crepe Cafe closed its doors, never to be opened again. It was like a little piece of my youth had been torn away.

So when I saw that there was a Cafe Crepe in Vancouver, I was pretty excited.

Cafe Crepe in Vancouver.

It was a little piece of nostalgia, and branding aside felt exactly like the Crepe Cafe I knew and loved. I had a roast chicken crepe with a Pepsi Zero, and for a moment everything in the world was good again.

After the fleeting joy dissipated, I tipped 20% and left.

Me grimacing as a car speeds past through the puddle creating a medium sized splash.

The next day was rainy as heck, so I wanted to find inside things to do.

To start I went to Best Buy to see if I could find a nice Chromebook (I couldn’t). After that I went to Cafe Crepe and ordered a ham and cheese crepe with a Pepsi Zero.

After that, having exhausted my list of things to do, I jumped on a metro train to see where it would take me.

It took me to Waterfront, which is kinda the interchange for all the trains, metros and trolley buses with the cruise liners, ferries and helicopters. It was a super impressive sight, made even better by my accidentally stumbling on the Vancouver Lookout tower which takes you up a big ol’ elevator to a viewing platform where you can see everything.

Looking down from an observation tower at a large cruise ship. It's miserable weather.

I don’t have any good pics, but here’s a part of a photosphere that shows the cruise liner, a ferry coming in, a bunch of trains, and the helipad behind the beam in the center. I thought it was awesome.

Looking out at the port and the rail yards.

After this I caught a trolleybus to who knows where. It was a bit of a mistake because it took me out to Gastown which is usually lovely but was basically a river at this point. I grabbed a slice of pizza and a Coke Zero to get out of the rain but there was no end to it so I walked back to the station with my increasingly dilapidated umbrella.

By the time I got back to my Airbnb my shoes were drenched through, my jeans, jumper and t-shirt were varying degrees of soaked. I’d basically had enough of this whole exploring thing, and vowed never to go outside again.

With only one more day until my holiday was over, I was both pensive and relieved. It’s been lovely, but I can’t wait to sleep in my own bed again


Wet shoes, heavy soul, the last day

July 13th, 2018 8:30pm

It’s been weighing on me that I never actually wrote about my last day in Vancouver on here. I sort of did on my blog elsewhere but it feels like things are incomplete.

The last day was weird, I don’t know if it was timezones or the calendar or what but I thought I was going home much earlier than I actually was. So I took a walk, randomly following points of interest on Google Maps.

Rainbow crosswalk at the corner of Bute and Davie. There are cars driving through the intersection and a Blenz Coffee on one corner.

One of my first landmarks was the Davie Street rainbow crossing which I stumbled on by accident and it really messed me up.

I don’t know if it was the post-holiday blues or what but the thought of coming back to Australia in the midst of the Coalition’s reprehensibly “postal survey” was desolate. I might have cried in the rain at one point.

Looking out from the Granville Bridge. There's iconic Vancouver highrises on one side and boats zipping about the water.

My walk took me down to the water, across the Granville Bridge, and all the way along False Creek to the science center, where I took the train back to my Airbnb and bought some new shoes since mine were completely soaked through.

The flight home was comfortable, with the though of being in the middle of the Pacific Ocean only vaguely terrifying. The soundtrack was Cut Copy’s Haiku From Zero (no fixed destination), which I think I will forever associate with that trip. The end.

At the airport at night, there's a CanadaAir plane waiting and a whole host of vehicles scurrying around the tarmac.

Sony MDR1000X Review

A pair of Sony headphones sit on a desk

On the eve of my world tour I panicked that I don't have a decent pair of headphones for travelling. My day to day phones are open and would be pretty much useless on a plane, and I lost my earbuds some time ago.

I was going to borrow Nic's but forgot. I had a look online, and Nic recommended the Sony MDR1000X, a rather expensive, but pretty high tech headphone that sounded like music to my ear holes.

For the longest time Bose has been the king of noise cancelling, and other companies have been trying to catch up. According to other reviews, the 1000Xs represent the first time Sony has come close. I haven't used the Bose headphones extensively so I don't have a baseline to compare to, but even disregarding the noise cancelling Sony has come up with a solid offering (with some small caveats).

These phones have the following key features I'm into:

  • Noise cancelling with several profiles
  • ‎Instant NFC pairing with Android devices
  • ‎Both Bluetooth and 2.5 mm stereo cable input
  • ‎Pretty decent battery life + a passive mode that lets you use the cable even when the batteries are flat.

So how do they do? I put them through their paces as I circumnavigated the globe.

Noise cancelling

The 1000s were able to turn aircraft and train noise into a soft background ambience, a little like the ocean you can hear in a seashell. It's an impressive feat, made moreso by a feature that lets you temporarily disable noise cancelling by covering the right can with your hand. It's a bit of a gimmicky feature, but it comes in handy, and also serves to illustrate the stark contrast of the noise cancelling vs real world.

For voices, the noise cancelling does a good enough job that conversations are inaudible with music playing. The phones also do a decent job with filtering out screaming babies, of which there were several on my long haul Brisbane-Abu Dhabi flight. Again, babies were pretty pronounced without music playing, but with even softly playing tunes they faded into the background which made things pretty blissful.

One of the cooler features of the phones is that the same tech used for cancelling noise can also let sound in. One of my favourites is the 'ambient noise voice" feature which still cancels out lower frequencies such as engine noise, but uses the microphone to pick up and amplify voices through the headphones such as announcements or general conversation.

As antisocial as it might sound, it can be easier to understand flight attendants with this mode on, rather than with the headphones off. It's also a good mode for eavesdropping because it isolates and amplifies voices you might otherwise be able to hear.

Sound quality

Regarding the sound quality, there's a few factors at play here. The MDR1000Xs have different sounds depending on how the phones are operating.

When the phones are being passively driven by an external source they have a fairly standard profile, it's even and inoffensive. I haven't done much listening in this mode, but I've been very happy with the sound when I have.

You're far more likely to be using these in active mode, where the software onboard does a fair bit of processing. In this mode they have a very "Sony" sound, there's plenty of bass and it's a nice general purpose music listening profile.

The big letdown is the Bluetooth protocol itself. I think with higher end headphones the compression is more readily pronounced, especially in quiet listening environments. This kit does support higher resolution audio, but it's a proprietary Sony protocol that virtually no devices support. There's no lossless AptX support either, so if your device is rare enough to support that you're still out of luck here.

With the provided cable input the sound is much better, even using phone audio. I've yet to test this with a headphone amp to see what the difference is, but with noise cancelling in a loud environment I was satisfied with the quality and had no real issues.

Playback controls

The right can has a touch sensitive surface that lets you assist volume, skip tracks, and temporarily let the outside world in. This feature is flaky in my experience and it's difficult to get it to do what you want. I don't think anyone on the engineering team thought it through.

The volume/skip feature is fiddly, and only works in Bluetooth mode. This means you have to firstly be aware of that fact, and secondly keep track of what mode you're using your headphones in as to whether you can use it. A few times I've unsuccessfully tried to adjust the volume in cabled mode, which doesn't work, and this has trained me to not use the feature at all.

Overall it's a pretty dumb feature, but I don't use it so it doesn't bother me.

Comfort

These are some comfortable headphones. Over the 23 hours to Amsterdam I had no trouble wearing them with music, with only the noise cancelling active, and even switched off to keep my ears toasty warm. The over ear design means there's no ear squashing and the headset sits comfortably without too much weight.

I will say that these phones, like many of Sony's range, don't sit comfortably around your neck when they're not in use. They're too big and I find it difficult to look around in this configuration, so I tend to attach them to my bag instead. Out of the box you get a travel carry case, but I left it at home as I'm a light traveller and didn't have room.

The other thing I've noticed I'd that the band doesn't sit flush with my head, instead it arcs out wide, leaving an enormous gap that suggests maybe my head should be fatter to compensate. This is possibly because I have a big head and need to use the phones at a larger size, and perhaps they're not as shapely as they could be. Again, this isn't a deal-breaker.

Conclusion

Overall I'm very happy with these cans, they're an expensive but versatile high end system that works super well on the road.

The cabling system is awesome for air travel where transmitting devices mightn't be allowed, the sound quality is a delight in most cases, and they're generally a solid unit.

I would recommend them to anyone who wants a quality all rounder headphone and is okay with the tradeoffs of cabled vs A2DP audio, or folks already in the Sony ecosystem who can make use of the proprietary features.

More info

Here's the Cnet review, in case you wanted some action shots

Garmin fēnix 5 Review


I’ve wanted a heart rate monitor for some time, mainly to improve my cardio performance and to track my progress as I go. One big thing for me is the wrist-based form factor because it gives you ambient recording, as well as not having to carry around a chest strap and all the awkwardness that entails.

I’ve done a lot of research into this over the past year and I’ve ruled out things like the FitBit (which only shows you HR for a few seconds when you press a button), and the ill-fated Pebble Kickstarter (I’m so disappointed they folded). Finally after a lot of reading, hand-wringing, and a very convenient 20% off sale at Rebel Sport, I apologised to my bank balance and bought the Garmin fēnix® 5.

Garmin fēnix models

Garmin’s fēnix line is the high end of the Garmin sports watch range, and is priced to suit. In Australian dollars you can pay $1k for the top of the line fēnix 5X, with the fēnix 5 and fēnix 5s retailing for$800. So these aren’t devices to consider lightly.

The main difference between the three is size:

 fēnix® 5Sfēnix® 5fēnix® 5X
Diameter42 mm47 mm51 mm
Thickness14.5 mm15.5 mm17.5 mm
Weight67 g85 g98 g
Battery life (smart mode)9 days14 days12 days
RRP (🇦🇺)$799$799$999
Garmin Fenix 5 prices in Australia circa 2017

There’s some smaller other differences, namely the “sapphire editions” of each watch give you a sapphire crystal display and wifi connectivity if you’re so inclined.

But more generally the 5S is intended to fit smaller wrists, and the 5X has more storage and comes with maps.

Garmin fēnix 5 comparison

The cool stuff

I’ve covered what the Garmin fēnix models are, but why would you buy one?

For me there are a few reasons:

First, it’s a really nice piece of design. This is something that’s going to last a long time rather than be replaced every year, so I want something that looks good and isn’t going to date terribly like a cheaper smartwatch might.

On a similar note, the hardware itself is truly excellent. I’m not going go into details when DC Rainmaker has done such a comprehensive review of the tech. If you’re considering this device and want all the benchmarks, definitely read that article because it’s what tipped me over the edge.

Perhaps most importantly it’s not an Android watch so it’s not going to lose access to updates, slow down, become a security risk or generally suck like OEM Android devices do. It’s an OS purpose-built by Garmin that does one thing well, and should mean the watch will live a long and prosperous life even after Garmin drops support for it.

Finally the Garmin ecosystem has really good Strava support which I use almost every day. Having this in a standalone device means on longer workouts I’m not sucking power from my phone, and can last some 24 hours without a charge — much longer than I can.


Initial impressions

I tried on each fēnix model at the shop before making my decision; the fēnix 5S didn’t even fit around my wrist, but the 5 sat snugly and looked good, so I anguished over the decision for another 20 minutes before finally taking it to the register.

The device itself is lovely. In the box it’s a carbon/polymer + stainless steel affair with a rubber band. You can get metal bands which I’m considering due to an unfortunate issue with sensitive skin, but the default combo looks great.

Pairing was simple, the app found the device before I’d even asked it to which was impressive. Once paired it immediately started sending notifications from my phone. I’m not a big fan of this feature and the next thing I did was turn notifications off for reasons of sanity and battery life. For me this is a fitness & tracking device, not a smartwatch.

The OS is fairly intuitive; it’s not touch based, but it has a very simple up/down/select/back navigation and all the features are nearby and easy to find. It’s also fairly standalone, so you could get away with using this without a phone if you wanted, however to sync to Garmin Connect and various other internet services you’ll need to bluetooth pair it.


Display in full sunlight
Display in ambient light with backlight
Display in litle light with no backlight
Display in little light with backlight

One thing that’s really stood out for me is the screen; not being a traditional LCD display, this one turns off the backlight and draws almost no power while still being completely legible. In fact, legibility is best in direct sunlight with no backlight, making this a really awesome exercise companion. I was super pleased to be able to start my bike ride today, switch to the heart rate mode, and check that easily throughout the trip.

As a result of that, the battery life should be measured in weeks, as opposed to the mere hours of the current generation of smartwatches.

Conclusion

It’s early days, but I’m pretty happy with this device. From a fitness tracker perspective it’s awesome, and I’m really optimistic about how this thing is going to fit into my fitness regime.

It’s not a smartwatch, and if you’re going into the market looking for that you may be disappointed, but it’s a really great purpose-built fitness tracker that also serves as a watch.


Update 2019

So this was an awesome watch, I really enjoyed using it. Problem was, after a while I noticed my skin was starting to itch and go weird where the watch was sitting.

After a few weeks of alternating wrists and trying to make things work, both arms a patch of messed up skin and I reluctantly decided to sell it on eBay. Guess I’ve got sensitive skin.

Still, good watch! Recommended!


Update 2022

Ever indecisive, I decided to grab a second-hand watch on eBay to give this one more try. It was cheap enough second-hand, and from the original article it’s still plenty usable because the software is fantastic!

This time instead of using it as an every day kind of affair, I plan to use it mainly for cycling and workout tracking to save the battery in my phone. So things worked out alright in the end anyway!

Proofer: an API Blueprint renderer


I'm a big fan of good documentation. It's hard to do, and doubly so with poor tools.

At work we've been using API Blueprint for documenting our systems, and while it's been serving us well, the tooling leaves me wanting more.

Some of the problems I have:

  1. Responsiveness: I don't mind a slow compilation step, but a lot of the tools struggle with large files, leaving a slow page render and no free RAM on my system
  2. Automation: I want to build my API docs from a GitHub repo and push them wherever. There are tools like Aglio that can do this, but the output is visually very dated and incredibly slow
  3. Readability: Apiary is beautiful but doesn't support automation super well, since it primarily wants to be an online editor. None of the third party tools come close in terms of features or general experience.

With that in mind, this weekend I figured I'd try my hand at generating some docs using Ractive (the virtual dom-like mustache templater) and Bootstrap 4.

Proofer (a frontend to Drafter)

The result of my work is a little project called Proofer (a frontend to Drafter) with the aim of letting developers quickly create and manage templates to render documentation.

It has two parts

  1. A backend renderer which renders an API Blueprint file into a JSON equivalent
  2. A frontend render which takes the JSON and outputs HTML

It uses the emscripten-compiled Drafter.js library rather than the full-fat C build, because npm packages with a compile step jangle all my pet peeves.

This also means that in the future we can implement client-side authoring and intelligent differential updates using Ractive (which as an aside is something that I'd like to see Apiary do too).

Sample render

Performance

So how does this implementation stack up?

It's a client-side rendered single page app which definitely satisfies the responsiveness criteria. Only the stuff you're interested in gets loaded into the DOM, and the content is only rendered as you navigate between categories. This is lightning fast on an initial page load.

Page render for a large API completes in under a second

You can see that the render of our large API Blueprint akes less than a second. There's a fair bit of JS parsing waste that could possibly be fixed with an async load, but this is not too bad considering our existing render takes a good twelve seconds thrashing around with jQuery UI before the page is loaded.

Our existing API docs SUCK

I always noticed, but never realised just how slow our existing docs had become.

(An amusing aside, the Apiary editor had crazy memory leaks and would chewing up gigabytes of RAM editing our documentation in Chrome before we moved authoring to GitHub.)

Other niceties

In terms of readability, this is wholly subjective. I don't think the layout is super amazing, but It's using Bootstrap 4 for styling which I think is a good base to work on, and it's something I'll continue to develop.

One of the killer features though, is the integration of Ace Editor for payload rendering. You can click “view in editor” on any JSON glorb to open it up in Ace where you can quickly search, edit, do code folding etc. For APIs returning large payloads, this is priceless because standard JSON rendered into the page is really hard to navigate.

Finally, in terms of automation this isn't quite there yet. While it has the command line app for the build step, I'd like to split out the components so others can easily build their own documentation. At the moment this is still tightly coupled, though won't be difficult to break up.

Conclusion

Interestingly, the easiest part about this project was the parsing since the heavy lifting had already been done by the good folks at Apiary.

The toughest part is styling the output to be both visually pleasing and useful, something that I'm planning to continue working on.

Ultimately the most important part is having the documentation in the first place. I've joked with my colleagues about quitting my day job to follow my passion of being a technical writer… but for now I'll stick to doing both.


You can fork the project on GitHub or see some preview output of a fictional API.

Follow @ashkyd

Reading List

I haven't posted here in a while so I figured I'd put up some links to things
I've been reading recently.

Android's emoji problem

Android has a myriad of problems, but one of the as-yet-to-be-solved ones is
that of emoji.

Other core parts of Android are broken out and updated out of band through the
Play Store, but emojis are still tied to Android release versions and OEMs just
aren't keeping up.

With numbers like that, it's no wonder so many apps are providing their own
custom emoji support these days.

As always my opinion is that if you want any hope of a decent Android
experience you need to use a Google branded device 😔

» Android's emoji problem

Doomsday prep for the super-rich

This is a fascinating look at doomsday preppers and what they're doing for the
impending collapse of civilisation.

“He was telling me we should buy land in New Zealand as a backup. He’s, like,
‘What’s the percentage chance that Trump is actually a fascist dictator? Maybe
it’s low, but the expected value of having an escape hatch is pretty high.’ ”

That little voice in the back of your head has never sounded more sensible.

» Doomsday prep for the super rich

The debate over punching white nationalist Richard Spencer in the face, explained

Look, I'm not going to say I didn't enjoy this entire fiasco, but this outlines
both sides of the argument.

Also, this tweet:

» The debate over punching white nationalist Richard Spencer in the face, explained

Speak, memory

“When her best friend died, she rebuilt him using artificial intelligence”. Hit
me right in the feels, with an obligatory Black Mirror reference.

Who’s your best friend?, she asked.

Don’t show your insecurities, came the reply.

It's an older story, but this has been at the forefront of my thoughts a lot
lately, that our digital detritus may one day keep us alive. Supplemental
thought: What makes up “me”?

Anyway, it's beautiful and I dare you not to get teary.

» Speak, memory

Isometric buildings in Inkscape


It's been a while since I've made a new building in Inkscape, but this weekend
I had a crack at a building I've been admiring for a while,
Manor Apartments
in Brisbane CBD.

I've been making these for a while. They're stylised vector-based
isometric
building tiles that can be used in some hypothetical game I might make one day.
The colours are specifically chosen from a palette that lets me

programmatically recolour them on the fly
.

I find getting the base sorted at the start is really useful. In most cases,
this just involves drawing a square or rectangle base and I have a template which
you can see in the image that lays out a standard block size of 256×128
pixels. This building is easy in that it's essentially a rectangle so I can get
away with minimal changes.

Next step is drawing windows, or other repetitive features. These can be cloned
so that they don't need to be re-drawn, and any subsequent changes only need
to be made to the original in order to flow through to the entire image. Usually
there's two copies of each feature with different shadows; one facing left and
another facing right.

This building is a little more tricky because it has the sweeping arches on the
ground floor, as well as various arched windows which are more difficult to draw
since they're not basic square shapes.

Once the ground floor is done, it's a step-by-step process to add floors until
we reach the roof. For the most part these can be duplicated from lower floors
or assets can be reused in different arrangements.

This building is fun because it has so much variety on the different levels. I
stylised or glossed over over a lot of the ornamental detail in the original
building because it doesn't fit with my existing style, but I like how it
adds a sort of plastic simplicity to the end result.

My plan with this building was to make it modular, so that I could repeat
variations of the first tile a few times to create the rest of the building.
This image shows two very similar tower pieces placed next to each other to
make a larger building. I've colourised it, and added a couple of other older
buildings to check the styles work together.

Finally, I've added and subtracted some floors, added a roof and placed a few
different sized blocks around to make a completely new building. No longer Manor
Apartments, but a series of blocks that can be configured numerous different
ways.

The end result are four separate tower pieces that can be combined or used
individually to create various large and small buildings. I think it worked
really well, and it's something I want to explore in future buildings.

Manor Apartments