Wednesday, January 15, 2025

Canon R5 - One Year On Review

Yesterday (or actually two days ago now, if I end up finishing writing this post tonight) marked a year since I got an R5 as the successor for my 7D. Its funny how, earlier this evening, I'd been wondering: "Hah... I wonder what day exactly it was that I got my new camera last new year... I'm sure it was around this time of year-ish"

This is a follow-up to my earlier posts a week in, and a few months in. 


Key Points:

* Overall, I ended up filling 2x 256GBmemory cards (give or take) this year with this camera - Which also means, I've quickly burned through half a TB of disk storage (vs under/around 150 GB a year previously)... More on this in a bit

* By and large, it has now ended up becoming my daily driver. While initially it was just to get used to it under different lighting conditions, later the increased image quality + better performance in a wide range of lighting conditions was a major drawcard.

* I've been on two multi-day trips with this camera now, so can say quite a bit more about how it handles for such usage

* In terms of battery life - I've got a total of 3 batteries, though in practice, I've only really needed 2 (with the third coming into its on those occasions where I'm too lazy to charge the one in use (and forgot to charge the other one, which had gone flat a while earlier). For typical cycles, they usually average around 400-600 (centered around 550 ish), though sometimes that figure can be as high as 1100 - 1300. Lowest would've been around 250 - 300 ish.

* The improved light gathering capabilities have really come in handy with the increased major Aurora storms this past year, meaning that I've been able to see + capture Aurorae for the first time in my life

Tuesday, January 7, 2025

Observations on Grading Assignments (and Parallels with Screening CV's)

Earlier I came across an article discussing the findings of an interesting study (i.e. https://hechingerreport.org/proof-points-last-name-skew-grades/) where the authors claimed to have detected evidence of a systematic bias against students whose surnames fall later in the alphabet than those whose surnames appeared earlier (when assignments / exams get presented to the marker in alphabetical order, due to the increased used of Learning Management Systems that commonly sort in alphabetical order by default).  


TBH, anyone who has spent enough time grading large sets of assignments (*) can probably explain why:

The first time you see a particular mistake / class of stupidity, you do tend to react kinder to it. But by the nth time, it really starts to grate...

 

A similar thing applies when screening through CV's and applications for a position:

The first time you see some new-grad / early career applicant mention doing an internship or something with some name-brand company, it does sound pretty impressive. However, if they have the misfortune of also applying for the same position along with a bunch of other new-grads who also took part in that same internship / etc., this now starts to count against *all* of them (i.e. "meh... it was maybe just a class assignment / group project type situation, where all the interns were held in an sandpit and given some kind of toy / training exercise")


[Firefox Tip] Useful Shortcut for Checking on What's Going Bad (Memory / CPU Usage)

Just learned of a useful tip for current versions of Firefox to bring up the "about:processes" page (that shows memory + CPU usage of various pages + extensions)

It turns out you can use the "Shift-Esc" hotkey to quickly activate it 

Noting this here so I can find it more easily for myself in the future

Thanks @carey@mastodon.nz for the tip!

Monday, January 6, 2025

Thoughts on Teaching Human-Computer Interaction University-Level Courses

Those who've followed me on various other platforms will probably have heard bits of this spiel before, maybe worded slightly differently in each instance, but ultimately discussing the same ideas / talking points. So I thought it'd be good to write up a canonical version once and for all - especially since it's unlikely that I'll end up doing this anytime soon anyway  (i.e. never say never, but at least for the foreseeable future in the next 3-5/10 years, I'm honestly not really that interested in a return to academia or teaching).


Key Points:

1) I've seen things. Perhaps a whole lot more than most people get the chance to see, and with a bunch of variables controlled for (or at least held somewhat constant).

2) From my observations, left to their own devices, the majority of students gravitate towards doing certain things that, left uncorrected / undiscovered (until too late usually) practically mean they probably don't learn half the lessons they probably really ought to  (i.e. From my perspective, they practically learned nothing (beyond maybe picking up some new trivia that'll be gone soon after the final exam) and just tried to get an easy pass on a course they may have thought was one of the "easier" ones they may be required to take).  At least IMO.

3) "UCAPT" - A useful mnemonic I developed during my time doing this, which I adopted for evaluating student's work (+ and also later in my own practice) to check if all the necessary things have been accounted for.

Friday, January 3, 2025

The Quest for a Replacement Office Chair - Part 1

For the nth time in as many years, I've recently been hunting for a new office chair for my home office setup.  Unfortunately, every time I go for another round, the options seem to have gotten way worse than the previous round!


To put everything in context, here is my list of (seemingly impossible to satisfy in the current market) requirements:

  a) I want something with an "executive chair" type high-back form factor with sufficient base + back padding 

     (i.e. It should be suitable for someone about 6 foot 1-2'' tall to comfortably sit/slump on it for hours (i.e. no sore back or butt, and head able to easily reach the headrest without having to lean/snap backwards to do so), and also allow me to easily + freely sleep / recline on it via the "butterfly tilt" mechanism - where the whole L-shaped seat tilts back instead of just the back)

  b) It should NOT be made out of fucking "PU Leather" (as I'd have the same problem again in 2-3 years, with yet more bulky trash to find a way to dispose of, along with having to deal with all the flaky mess in the meantime)

    TBH, I don't care now whether it's real leather or fabric. But this fake plasticy leather alternative is definitely out (and I strongly urge you to avoid these too for ANY products you may be considering getting)

  c) Needs to have a gas cylinder that would put the seat at at-least 50cm (and would have weight rating to sustain that, to not degrade over time). 

     It seems that pretty much all newer seats are NOT being made with suitable ones  (either they are too low - i.e. usual situation;  OR  they are don't have their weigh capacity I'd like to have a safety margin on it failing and repeatedly sinking below a usable height)

     Also, I'll get onto this later, but WHY is it that they don't make recliner chairs that sit MUCH higher off the ground?!   (It is a serious mystery why so much of the world is built + designed for mystical MIDGETS! Gah!)

  d) I want *long* padded armrests at decent/adjustable height + a headrest (suitably positioned high up and forward-facing) that I can easily reach it when leaning back for a nap

  e) Does not give me back pain after sitting on it - either just a < 5 minutes trial, or after sitting on it doing work for a ~10 minutes

  f)  It should be built to last (i.e. should be able to take daily punishment for >= 10 years) vs failing in 2 years

  g) For bonus points, it should come fully assembled (vs trying to mate bottom-back cushions and arm rests together... ugh! The last three I've build were physically-taxing *hell* on that front)

 

At least in my corner of the world, a chair matching ALL of these requirements does NOT exist on the market today. I know, as I've gone through the various shops trying all the ones they have on offer.  (There were a few others seemingly matching a good subset of these that I've been interested in trying, but no one *ever* seems to have them on display - in a few cases, they actually left the showrooms like the day before I got there)

Getting Old and Realising that Some Projects *Do* Fall into the "Too Hard" Basket...

Every time I see the mass of multicolored cable bundles behind the dashboards of cars and planes, and also the trouble that folks go to to not only access those areas to begin with (i.e. pretzel sausage origami, plus effectively dismantling the whole interior - stripping away panels / etc.), but to then make tweaks +  fixes (i.e. tracing what each cable does and where it goes, etc.), I'm glad I decided to stay away from DIY-ing any stuff like that OR working in fields that do it.

 

The SWE part of me wonders why they don't just like simplify everything to like aggregate all the cables into bigger feeder boxes for each subsystem that then only export a single cable that goes to a central thing that delegates throughout the rest of the systems... then you'd maybe only have ~5 (?) fat cables to deal with?

Then again, if they did that, that removes a lot of the redundancy and systems isolation (i.e. single direct circuits!) we kindof expect safety critical systems to have 😬

 

Thursday, January 2, 2025

On Outsourcing, Delegation, Code Review + Mentoring of Juniors, and Alternative Paths Not Taken

This started as a series of response to a thread discussing Boeing's disasterous decision to outsource the coding of their firmware "to the lowest bidder", with the thread starter originally claiming that "you still have to spec and test" the outputs of those outsourced workers. In general I agree that, the senior folk who were responsible for writing the specs that the code followed (AND most likely should also be responsible for testing/verifying that the obtained results were fit for integration into the codebase)  *SHOULD* bear some responsibility for ensuring that the work done is up to required standards. However, I'd also like to point out that in many ways, this way of working is in many ways much harder for everyone involved, so the blame-torch shouldn't be aimed at these folks dropping the ball (save for complete systemic dereliction of duty). My own mini-thread of response follow (inlined together + tweaked to follow read a bit better).

Wednesday, January 1, 2025

2024 Recap

Happy New Year!  Time for a brief recap of 2024 I guess.


Main Highlights

* Trips to Mt Cook, Sydney, and Wellington

* First full year at work supporting the important operational system we're responsible for (and getting it stable / fixing all the major-ish quirks that popped up after it launched in late October 2023)

* Taking the plunge and getting a new camera setup (Canon R5 - Mirrorless) after years of using my trusty Canon 7D

* Capturing multiple Auroras, after years of trying unsuccessfully

* Starting a mini collection of my favourite aircraft as detailed diecast models at 1:200 scale (i.e. Emirates A380 + Cathay Pacific 747 in old "green-white-stripe" livery)

* Finally getting a heatpump for my main home-office  (hot room days be gone!)

* Hosting visitors a few days ago + reconnecting with a bunch of old friends

* Returning to actively posting longer-form posts on here (after a few years away mostly posting on Twitter) 

   * I'm still trying to figure out some plans for migrating off this platform onto a more stable / sustainable solution under my own control...

 

Firsts

* Spending time actually exploring the Mt Cook national park  

* First overseas trip post-COVID 

   * And, actually, having this happen after actually contracting COVID for the first time - probably at a local healthcare facility

* Flying in Premium Economy - especially on an A380 flying out of my home airport - that I paid for myself.

* Visiting the Blue Mountains + various other Sydney locations

* Seeing + Photographing an Aurora for myself... and from my back yard at that!  Then getting to do so again multiple times again during the year!

* Capturing a kookaburra + pelicans + "garbage bird" in Sydney

 

Thursday, December 26, 2024

UI / App Toolkits + Frameworks - The "Missing Middle-Layer"

Over the past decade and a bit, on almost every project I've worked on, I've come to realise that there is often quite a massive gulf between what the Standard Library + UI Toolkits typically offer, and what it is that you really typically require when building anything of consequence for the real world. The problem is such that really, you end up needing to spend quite a bit of time re-inventing the following sub-systems for each project OR end up paying the tax of not having these for each and every feature you add (by effectively reimplementing them *per feature* instead, but without the benefits that having the standardised system brings).

While the initial seeds of what I'm about to discuss date back to around 2010, things really started to take shape around 2018/2019, when I first seriously started mooting the idea of maybe creating my own Programming Language / Environment someday (i.e. "Kea"), a batteries-included environment for doing everything "my way"...

One of the key aspects of that language would be that the following functionality / capabilities would end up being "baked" into the language as first-class citizens. Before fully embarking on that journey again, I thought it would be good to first prototype these systems in other environments where they may help advance the overall state of the software industry. Hence this blog post.

 

The Short List - Core Functionality:

* 1) Property Metadata System  (i.e. something like Blender's "RNA" system)

* 2a) Bidirectional Property Binding (Data Objects <-> UI Widgets)

* 2b) Widget / Factory that creates standard auto-bound widgets, given only the Property ID + host object reference  (i.e. something like Blender's UI widgets)

* 3) Automatic hierarchical property serialisation system  (i.e. something like Skyline-X's Preference Sets)

* 4) Version patching  (i.e. something like what is used for Blender's SDNA system)

   * Includes utilities related to version number management and/or Git branch/revision info

* 5) System for Physically-Based Unit Handling and/or Unit Conversions

 

The Short List - Extended Functionality:

* 6) Static/Dynamic Expressions / Drivers, Expression-Evaluation, and/or String Template Substitutions

* 7) A "Datablocks" System + CRUD API's for managing those

* 8) "User Preferences" system

* 9) "Operator"-like system (for standardised logging / error handling, undo/redo, and background-exec of expensive long-running-processes) - inspired by what Blender uses since 2.5

* 10) Basic Extendable Templates/Base-Implementations for Handling the Following Functionality (Optional)

   * Standard logic for New / Load Project/ Save Project stuff

   * Standard logic for handling cache files / support data files

   * Built-in screenshot per-viewport/view-angle screenshot functionality (with repeatable / savable parametric configuration)

   * Grease Pencil / Built-in Freehand Annotation Tools

   * Node-editor 

* 11) UI Toolkit Extensions + Features

   * Collapsible Panel implementation   (Note: This is surprisingly absent from most UI toolkits in practice)

   * Control-Gain Ladders / Input Convenience mechanisms

   * Popup panels templates

   * "Overlay toolbar / interactive viewport tools" system 

   * Popup info panels / extended menus for Unit Conversions + String Templating functionality

 

Friday, December 6, 2024

Silvereye Season 24 + Different Types of Silvereye Calls

Every year, November marks "Silvereye Season" - the month where the bottlebrush outside my window blooms, and the silvereyes come jauntily swooping in to feast on the nectar, pulling all manner of cute and adorable acrobatics. Sadly, this year's season has been heavily interrupted + restricted by a series of home renovations we've been doing that just happened to need to coincide with this month... *sigh*

 

As a result, this year, I've been limited to only getting a literal handful of very short shooting windows this year, and an even smaller number of OK photos, of which the ones above are probably the sum total...

(There were also a bunch of early ones where I managed to capture 2-3 staging a surprise visit just when I got home... but those aren't that great quality due to only having a short zoom + wrong camera settings on an afternoon with very average lighting, so I won't be posting those online)

You may also notice that the colours are a bit punchier than usual, as I've also been forced to trial a new photo processing pipeline (i.e. Darktable) as noted in a previous post.

Monday, November 25, 2024

[Darktable Trials] Testing out a New Photo Management / Editing Workflow - Part 1

Over this past week, I've been kicking the tyres on Darktable again -- partly to see if I can now make it work for me, but also partly out of necessity (as my usual workstation + office-space are out of commission currently, but I had a bunch of photos needing editing, and Picasa - which I've been using to date - will eventually bite the dust in a bad way as it's been long deprecated so I wanted to avoid putting it on yet another machine... plus, I kept forgetting to grab the installer from my backup drive when I plugged it in).

Maybe there's a bit of "Stockholm Syndrome" here, but early indications are that with the latest current version (4.8.1 when I went to download it recently), Darktable has resolved a whole bunch of idiosyncrasies that made it an annoying non-started previously, along with offering a bunch of new capabilities that present a good way of achieving some of the "Ultimate Photo Editing" tool points I mentioned previously.

 

Update Notes: 

* 25/11/2024 -  Original Post. May end up tacking on more details in a later revision, in which case these update notes will be updated.

Initial Thoughts on "Shortcut Editing" UI's

Is it just me, or do pretty much all the "Shortcut Editor" UI's in various apps suck?

I don't claim to have a fully fleshed out + well considered + tested alternative in this case (unlike with many of the UI problems that I've spent some time toying with), but just to throw some ideas out there to kickstart a conversation about these UI's that I think as an industry we need to have.

So, without further ado, here are a few ideas for how I'd go about making Shortcut Editor UI's better if / when I try to design one next time.