Sunday, December 31, 2023

Year in Review - 2023

And with that, another year is over! Here's a quick rundown of a bunch of key events this year.

If I had to sum up the year, it'd likely have to describe it as: "A tumultuous year of loss, turmoil, and new beginnings"

 

BIG THINGS

* Started a new job this year - a permanent position at last (!) - in a field I love.  Technically, I was returning to the company that I'd been working for prior to the pandemic (but this time, not in a time-limited role), as the major project I'd been working on 3/4 years ago went live at the end of the year.

 

* Two major projects I've spent the last few years working on "went live / public" this year:

   1) The aforementioned big + complex + important system I work on in my current day job

   2) TPMS Studio - The software project I'd been working on for a few years has finally been released for public usage.

Announcing TPMS Studio

"TPMS Studio" is a CAD application I built from the ground up while working as a postdoc at the University of Canterbury for realtime modelling + visualisation + direct 3D printing slicing/export for complex functional engineering assemblies featuring porous microstructures.  

* It runs on the GPU and is supposed to be fully cross-platform (though we can only really test / support Windows currently).

* It natively supports more than 30 types of "Triply Periodic Minimal Surfaces" (including the usual suspects - Gyroid, Diamond, Primitive, IWP, etc) - My personal favourite though is the "Fischer-Kock C(S)" one  (*)

* We have the ability to directly export geometry to MSLA / resin printers, without needing to go through expensive + resolution-limiting meshing steps through an external slicer?

Also, as you can see from the video / demoreel below, the UI design of this software is heavily influenced + infused with Blender UX heritage ;)

Tuesday, December 19, 2023

Good Good Good - Santa Claus is... Chinese?! 🎅🎅🎅

Seeing as we're in the home stretch of the festive season, I thought it would be a timely to share some fun musings I wrote last year on Christmas Day  (some bits may not have entirely aged that well tho 😅)


Since I guessed that most folk would've been offline then, I decided to hold off posting it till the run-up to Christmas this year, so more folks may get to see it in a more timely way. So, here we go!  Hoping everyone has a very Merry Christmas and a Happy New Year!  🎅🎅🎅


~~~ 🎅🎅🎅 ~~~

Saturday, October 14, 2023

Tui at Wellington Botanic Gardens

Didn't have as much luck getting a good photo of the Tui's, despite seeing way more of them (and actually running into one of them first).

This one is one of the better ones. 


Kaka at Wellington Botanic Gardens

Was pleasantly surprised to discover last weekend that Wellington's Botanic Gardens (up the top of the Cable Car) turns out to be quite a bird-watching heaven - with Tui, Keruru, and Kaka all hanging out up there without having to head all the way out to Zealandia!

Here are some of my favourite shots of the Kaka. Reposting from Mastodon for posterity.

(Disclaimer: Slim pickings, as I didn't have my bird lens with me, and it kept hiding in the canopy). 


1) Inquisive kaka with food on its beak - This is perhaps my favourite shots of the bunch

Sunday, October 8, 2023

WOW23 - Wellington Weekend Trip

WOW... what a weekend! (Pun intended) 😊

Top Highlights:
✅ First trip out of CHC in over 3 years!
✅ Finally got to have lunch at Grand Century again (+ got hands on a whole bunch of coconut buns 😋). Discovered a bunch of new favs there too this time 😋 🤤
✅ Finally actually visited the Botanic Gardens. A surprising birding heaven! Saw multiple tui, pair of keruru, a kaka (!!!), and a bunch of fantails.  Possibly heard bellbirds too?
✅ Attended WOW again (+ got to stay in closest hotel this time)

(Trip notes cross-posted from a Mastodon thread for posterity)

Saturday, July 29, 2023

Thoughts on NCEA

In my experience, NCEA is a punitive box ticking system, particularly when for students who would traditionally be considered to be in the generally high performing tiers, but may for whatever reason be prone to either occasional clumsy mistakes, or be good at everything except some relarively minor skills (that are accordingly listed in the lowest tier requirements)

Saturday, July 1, 2023

Tan Dun's Water Concerto

I just finished watching a performance of Tan Dun's "Water Concerto" tonight after seeing a clip earlier in the day and being quite intrigued about it.

In short: It's an absolutely fascinating work!

A very interesting mismash of disparate elements put together in interesting ways...


Tan Dun(譚盾) - Water Concerto (水協奏曲) performed by Yi Chen


Wednesday, April 19, 2023

Python 3.11 - IntEnum str() representation changes

Got an unwanted surprise today trying to run my codebase ("TPMS Studio") using the latest Python (3.11) instead of the 3.7 / 3.8 combos I've been using for the past few years.

Turns out the core team made a breaking change to the behaviour of enums, which breaks our file format + causes the code to crash on startup (assert failures)!

The cause:
`str(eMyEnum.Value_1)` now evaluates to "1" instead of "eMyEnum.Value_1"

(Note: eMyEnum is defined as an IntEnum)

 

The solution I ended up with was based on:
https://github.com/python/cpython/issues/94763#issuecomment-1313058070

 

[EDIT: This was the old solution. I have since learned of an even easier fix, from the official docs. See below]

In short, I now do something like:
```

import sys
import enum

if sys.version_info >= (3, 11):
    # Python 3.11+ hack
    class IntEnum(int, enum.Enum):
        # Get back old "EnumName.VariantName" str() behaviour
        pass
else:
    # Use old defines for older Python versions
    IntEnum = enum.IntEnum

```

 

[Latest Update: This solution is easier to use. It comes from the official docs (i.e. example 2)]

```

from enum import Enum, IntEnum

class eMyEnum(IntEnum):

    __str__ = Enum.__str__      # <--- That's the key right there

``` 


 Reposting from my original Mastodon posts for easier searchability

Thursday, February 23, 2023

Thoughts on Urban Transit Infrastructure Design

Here are some personal observations of various urban/city design factors, and the relevant considerations. I'd drafted a few other versions of this in the past, but this one seems to fit the bill quite nicely (+ got finished), so this will be the one that goes up...

Inspired by this headline, here are some of my current thoughts on these matters:

* Most places reachable in < 10-15 mins, *by any means*  == Yes, agree that's the ideal scenario  (and is what life was like growing up here in Christchurch NZ). I've found that, especially for anywhere you need to go frequently, having to spend more than > 10 mins each time is quickly quite aggravating + draining.

In that light, the monster 40 min to 2.5 hr commutes that Americans frequently claim they have are therefore quite unfathomable. (Then again, maybe that's why there are so many messed up folk out there doing drugs and alcohol... again, things that never made sense)


* Many places reachable in ~10 min, but ONLY by walking / 2-wheeled contraption (and hailing a cab/Uber is not an option as distance too short for them to bother) == Personal hell. It's an annoying way to live... Grocery shopping is particularly aggravating (as you're limited to the 1-2 small bags you can reliably carry + manage to pack/unpack several times in a hurry)

Monday, February 6, 2023

Waitangi

A surprising insight I saw just yesterday for the first time, was when someone referred to Waitangi (aka "founding place of New Zealand in 1840" - see "Treaty of Waitangi" for details) as the "sad water place".

"Sad water place". If you think about it, and break down the meaning of the constituent parts of that name, that's actually what it means. "Wai" = water,  "tangi" = a event filled with sadness / mourning for the dead.

Hmm... The more you think about it, the more different meanings you can suddenly read into these things...  Oh the things you don't realise until much later - much like song lyrics, and finding old stuff from the past.

Thoughts on Plumbing and House Design

The past few months have been an (unwanted) deep dive into the world of household plumbing, and the various issues around it. Here are some things I've learned.


1) Debugging complex legacy plumbing and debugging complex legacy codebases are equally hard

 

2) At some point, you're going to need to check ALL the pipes

 

3) Most home designs make access to pipes HARD. Especially new/modern builds! 

For example:
    - Downpipe inspection panels hidden behind a wall. To access these, you must first drill + cut various wall panels to reveal the pipe, in order to find where the panel sits... then, when all is said and done, you then need to call in a builder, plasterer, and finally painter (complete with multiple rounds of sanding, phone calls, and time away from work/life waiting)


    - In contrast, older houses here at least have an underfloor crawl space, that can typically be accessed through some removable panel (similar to manhole covers). That said, in many cases, you end up needing to remove carpet to get to it, which does still mess things up a bit.

 

4) Some plumbers come better equipped than others. As a result, I've come up with a list of the neatest bits of equipment I've seen that IMO it'd be nice to have on hand, so they can do their jobs easier.  (see later) 


Tuesday, January 31, 2023

Useful AI Wishlist

 List of AI things would be actually worthwhile to pursue (instead of some of the junk that goes on):

* Earthquake Prediction. Not "forecasting" (i.e. vague regions + probabilities, over long periods). Prediction.

* Motion blur removal from single-shot, low resolution JPG's.

* Using content recognition to identify similar features across multiple content streams, for precise timestamp synchronisation.

* Removing rap vocals from music while keeping the general idea

Friday, January 27, 2023

National Airlines - 747 Freighter in Christchurch

Christchurch Airport had a welcome visitor today:  A 747-400 freighter from National Airlines!  And not just any one of the fleet, but N936CA - a bird painted in a striking red + white "30th Anniversary" livery!





Grey Warbler (Riroriro) - First successful photo

Came home today to the sound of a grey warbler (riroriro) sporadically singing away in a tree. Think I may have finally captured a photo of the elusive bird with the beautiful high-trilling song!

Playing with the exposure, it becomes clear that it has stunning red eyes, confirming its identity. Luckily, everything came together to make this happen today!

 

Sunday, January 15, 2023

Juvenile Silvereyes

Wheee! This afternoon, I came home to the sound of juvenile silvereyes excitedly crying for food. I rushed inside, mounted the bird lens, and looked up at the tree armed with some proper gear. I'm glad I did, as it turns out there were 3 of them in an adorable huddle, and not just the single fat one I thought I'd seen earlier!  😊

3 adorable fluffy juvenile silvereyes

Cross posted for archival purposes from Mastodon