Showing posts with label ranting. Show all posts
Showing posts with label ranting. Show all posts

Friday, February 14, 2025

Rant About Office Chair Sizing

Sigh... it's looking increasingly like I'm going to have to give up on this new office chair after all, after using it in anger for a few days with an adjustable desk that I can try to work around its height-limitations with.

The problem is that it is ultimately way too low for me.

So, just as it was 3 months ago, I'm back to square one in my search for my next long-term office chair it seems.

 

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)

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).

Sunday, September 29, 2024

Musings About Topical Issues - 39th Week of 2024

Here's a roundup of musings on various issues that came up this week...

(NOTE: Most of these I'm just harvesting from my Mastodon feed, and reposting here for easier archival for my own sake)

Sunday, July 7, 2024

Autocorrect Rant

One of my pet peeves about how auto-correct works on my phone is this:

Having to fix and refix and refix something where "it knew better" and kept correcting what I enter, despite either:

1) Repeatedly deleting the "fix" it applied + immediately retyping what I had originally typed

2) Explicitly choosing "option 1" (left-word - i.e. the thing I typed), over "option 2" (i.e. its default auto-correct solution)

This is especially annoying when it happens multiple times within a few 5-10 minutes, when I'm typing + re-correcting the same sequence of characters again and again!


Solution:

The solution is really quite simple IMO - An explicit user override for a particular sequence of characters (or an immediate delete + retype of the same thing) should be a strong hint that they do not want that sequence autocorrected again in the next 5-10 minutes. If they keep doing this over a longer period, then that sequence should *never* get auto-corrected to whatever the system decides ever again.

*That* is the sort of "smart" behaviour that people really want from their tech, not the "lie-generating plagiarism machines" that are all the rage right now as the Big Tech titans once again battle to win the latest "first to build the 'Next iPhone' Monopoly game"

Thursday, June 20, 2024

Thoughts About "AI" (Winter 2024 Edition) - AKA: No, I do NOT want to have to "talk" to your "chatbot"

I briefly interrupt coverage of my Music Visualisation Project to cover a brief rant about the topical "AI" issues that are all the rage right now.

 

My current position on all this "AI" hype is:

1) TBH, I bloody HATE all this "me too" bandwagon jumping crap that's going around at the moment, and hope it all blows over sooner rather than later - just like "Crypto" and "NFT's" and "Metaverse" fads before it did. The sooner the better!

See also this "supremely on the point" blog post ;) -  https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/

 

2) The UX of all these "AI" tools is fundamentally flawed:  i.e.  

     "I do NOT want to have to fucking 'talk' to your bloody 'chatbot' to do stuff!"

 

3) The majority of all this "AI" hype is all being poured into all the wrong directions: 

    "We should be focussing our efforts on helping people do what they cannot do otherwise (i.e. augmenting human abilities),  NOT trying to replace them  (i.e. destructive misery causing)"

    That there is perhaps the best way to sum up the ethical line / standard I use to decide what I spend time working on. I'm only interested in working on stuff that betters humanity's ability to do stuff they otherwise wouldn't be able to do without the technology. Other stuff (e.g. ad networks, DRM, fintech, killer robots, facial recognition, tracking + surveillance tech, making people/industries/etc. "redundant", etc.) I refuse to work on  (and really, anything I am not interested in, I do a categorically *awful* job at...)

 

4)  In that light, will I work on or play with AI stuff at some point?

     Short Answer:  If AI is the right tool for the job, I will consider it.

     Operative word: "right tool"

     So far, none of the problems I have been working on have required reaching into that toolset, so I haven't bothered to really delve too deeply into it. But if the opportunity arises where AI presents a better solution than we can achieve otherwise, I will consider it then.

     Prime Example:  With some of the image generation + editing tech out there now, we finally have the a set of powerful tools for fixing a whole bunch of previously prohibitively difficult-to-fix problems, giving us the ability to do spot fixes for defects that would've previously ruined many images / videos. In that sense, these user-guided "repair" tools are precisely the "powerful magic fix-it tools"  that we've all dreamed of having all these years, and so, by my previously stated principles, they may well be the right tool for the job in those cases. But using these tools to construct entire fabrications from scratch, trained off everyone's data (however ill-gotten)? Nope - that's pretty much something that should not be done!

Sunday, May 19, 2024

Collage Making App - Design Sketches

While trying to put together a collage yesterday showing an amusing sequence of shots of a silvereye swallowing a ball of fruit it had yanked from a nearby fruit from the Autumn Birdy Berry Tree, I was reminded yet again just how frustrating this process is, with practically none of the tools out there really letting me do what I need + want (or at least none of the ones I currently have access to). Sure, I could ultimately bolt this together using some scripts / command-line tools, but it's a bit of a pain iterating on visual stuff like this that way.

 

My Requirements / Process-To-Automate:

* 1) Arrange my chosen images in a line, side-by-side (with ability to reorder them, add/remove items in this lineup, preview different combinations, etc. to get the flow of images right)

   NOTE: You can somewhat do this with existing tools, but it's always *a pain* to do  (and in some, it requires starting over / creating multiple draft solutions)


* 2) Allow bulk cropping the width of these to just an interesting section 

   NOTE: This requires ability to interactively preview + see the effects of such cropping, to make the iteration process fast + painless. This practically rules out all the command-line / scripted approaches. Also, no simple collage maker tools come close to even considering this possibility.


* 3) Allow ability to adjust vertical alignment on each of these individually (to fix framing differences) then v-crop any messy / scraggly bits on either side due to image sizing differences

   NOTE: Same story as above with #2


* 4) Make the canvas fit the whole strip of images (i.e. typically a very wide but not very tall image), at the highest resolution possible (from which I can then compress / resize as needed to satisfy upload constrants)

   NOTES:

        i) This last step in particular *always* manages to stump most tools out there. I get it - those are all optimised for the Insta / FB / etc. folks who have fixed "square" templates to fit their shit into. But, I don't particularly care about that when doing this.

        ii) This is actually a major gripe I have with most of our "creative" digital tools too - from painting apps to music scoring systems: i.e. The need to know and specify up front a "box" that will be big enough to fit whatever you're trying to do into (and if not, to then continuously grapple with various resizing + re-fitting tools to get more space to work in).  In that sense, that's one of the things I'm particularly proud of with Grease Pencil - that it provides an infinite canvas, free from these constraints (and is why I use/used it as my drawing tool) :)

 

Hence, I finally decided to bite the bullet, and see if I could hack together a solution for this.

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)

Wednesday, December 22, 2021

QML Quirks - A laundry list of bizzare happenings, bugs, and dodgy incomplete crap

Over the past few years, I've built a fair few UI's using QML (Qt's DSL for writing UI code) - proper ones, including one for a mission-critical / safety-of-life application, and another powering the tool to be used across a large group of non CS types. In other words, things that had to work, and not just be interactive "nice to have" toys (aka research prototypes).

Memorably, I was once asked during an interview whether I would recommend using QML and/or how it compares to using the more battle-tested QWidgets. At the time, I'd only really used it for a bunch of research prototypes (i.e. implementing HCI experiments to be exact), where it presented a great environment for implementing the kinds of dynamic non-traditional interfaces I needed. For that it was great and saved a lot of time. But, admittedly, it did also throw up a bunch of glitches (e.g. randomly sampling garbage from the wrong texture buffers / other applications even, particles not showing when chaining several scenes together but being fine when used in isolation, etc.). At the time, I could only attribute some of these to me perhaps trying to combine a few too many highly experimental techniques where perhaps the framework hadn't been tested so great.

However, knowing what I do now, I would strongly recommend that unless you were building something non-mission critical, and where the thing is loaded with animations / dynamic effects, that you really shouldn't be using it. Sure, you may be able to knock out a prototype quite quickly - but at some point - often at ill-timed moments, you will randomly stumble across one or more intractable bugs / quirks from left field that have you scrambling to rewrite / refactor the whole lot.

 

Disclaimer: Just to be clear - I generally do still like the idea of the QML language, and I think it does many things right. However, there are also many ways in which the "declarative paradigm" is really awkward to work with (*ahem* creating dialogs / temporary items / sequential-flow-based-types / etc.) 

More disconcertingly though, implementation-wise, it is seriously lacking in quality / completeness / stability, etc. in enough ways that mean that I cannot in good conscience recommend any new greenfield projects to start adopting it now.

(Plus, the fact that the embedded scripting / logic programming language it uses is Javascript... blegh!)

Friday, March 9, 2018

Thoughts About Geometry-Editing UX issues - Multi Object Editing, Edit Modes, Selection/Action Split, etc.

Just a little earlier, I spent some time reviewing and commenting on T54242 regarding the design issues behind making Blender be able to have multiple objects in Edit/Sculpt/Paint Modes at the same time. As outlined, there are certainly a few rather prickly issues in that we'd need to resolve to be able to do this.

In this post, I'll go over a few of the key issues we need to contend with here, along with some other general thoughts I've been mulling over for quite a few years now about what IMO makes an effective UI for editing large amounts of geometry (i.e. vertices, control points, etc.)


Wednesday, February 28, 2018

Struggles of a Rust Novice - Annoyances and Stumbling Blocks

Over the past few weekends, I've been spending time investigating more of the Rust language. Along with the web trifecta (HTML, CSS, JS) and OpenFrameworks, this is one of the things I've been meaning to spend some time learning/playing with this year.

It's a funny kind of language, as I've previous noted during my very brief foray into some simple things from last year) - On one hand, a lot of the concepts seem nice/vaguely familiar to stuff I've played with in other languages, making it sometimes feel deceptively easy to use. But then, you go to compile the code, and proceed to spend the next 30-60 minutes trying to find a way to convert various things into the right types that the compiler insists you need. Admittedly, it's quite frustrating work at times (see notes on String handling below), but, it pales in comparison to the blackhole and deranged hell that is web-based dev (i.e. CSS-based Layouts in particular - aaaaaaargh!!! Despite now having "CSS Flow" and "CSS Grid", it seems that CSS Layouts and I still don't get along very much at all). Faced with a choice between the two (and having just done experienced both back-to-back recently), I'd much rather face the Rust compiler anyday.

Anyway, to actually get a proper feel for the language this time, I decided to use this opportunity to bash together a little processing tool that I was going to need for another one of the many projects I'm working on atm:
That is, a tool to take XSPF playlists generated by VLC (and containing a carefully sequenced list of music I've composed/recorded over the past year), extract the filenames (and process them to unpack/extract-out the important identifying bits of metadata I was embedding in the filenames), and then spit all this info out into a more easily consumable format (e.g. JSON).  
Sure, I could've done this all in Python (though it lacks a XML library that just gives me the DOM element tree with no "namespace" tag mangling, etc.), or a mix of VLC + Python (i.e. saving out a m3u list - 1 line per track - then processing that in Python), but this way was going to be more fun (and a good way to throw something a bit meatier/realistic at Rust than the toy-examples I'd been playing with) :)


Hopefully the following post will be enlightening to some people out there - both other newbies stuck and struggling to get their heads around certain things they keep running into, but also for the Rust dev team in their self-professed "ergonomics drive" to lessen the humps that new devs face when learning Rust.

Wednesday, December 27, 2017

Grease Pencil Dev - FAQ's, Current Status, etc.

In response to a bug report in the tracker, I ended up posting a long-ish reply that I thought would be good for more people to see, since it probably gives a bit more insight into some of the work that's going on "behind the scenes" atm. So, without further ado, here's a copy of my reply.

(For more of a user-orientated look at what functionality we've been adding, check out Antonio's code.blender.org post)

Monday, December 4, 2017

Production Notes (From 150YOD Video Project) - Things to Fix in Blender

To followup on my earlier #150YOD video post. I had originally intended to release this a lot earlier (e.g. around September 13th), but various things have been taking up my time over the past few months, delaying the release of this.


As has become my habit after completing each Blender project, here are some notes about things (bugs, usability quirks, observations, and general todo's) I ran into that need attention. Though it's mainly a list for myself, hopefully these notes may be of use to other people too.

Saturday, September 17, 2016

Annoying Habits of Computer Science/Software Engineering (Students) Designing UI's...

Over the past few years, I've had the opportunity to have a front-seat view of how groups of 3rd year computer science/software engineering students approach the problem of designing a UI. It has been said in a few places (citation needed) that ultimately, the way group projects end up taking place for class projects and in real life are largely similar(ly awful). Thus, given that many of these folk will end up in the workforce in the next few months to a year's time as the newest batch of "professionals", if what I've seen is anything to go by, no wonder we're kindof perpetually doomed...

It's also no wonder then that we're often burdened with so many absolutely terrible systems for what-should-be-mundane/trouble-free processes like activating cards or making use of various services for the first time, etc. Or, nastier problems like the current religious dogma + regime of "automatic software updates" that regularly foist themselves at you every other day, usually at the least convenient times, and from time to time leaving a colossal mess behind when they're done.


Sunday, May 8, 2016

Don't you hate it when this happens...

While writing that previous post, I looked on in horror as "jumping spider" casually sauntered won from the top of my screen, and started walking down the the middle of the screen... At that point, I pulled up Paint, and started drawing the following note on the screen, with the intention of capturing a snapshot of it using my phone...


Lo and behold, this is the photo I captured. Making things worse/more ironic, was that as I was drawing the arrow that pointed at the blasted invader, it turned around (it had been facing the other way, big legs to the left instead), to face/stare at the arrowhead.... Way to go spider, way to go...


(And now, as I'm typing this, it's wandering in and out of the right hand side of the screen.... no, wait, now it's sitting over the "Schedule", no "Labels" button on the side panel, as if trying to have a say on what I classify this post as.... Gah!  It's so annoying, as I don't really want to just squish it dead on my screen, as I'd don't really want to scratch the surface and/or leave some unsightly stains... but, argh!  stop walking towards the text area now, alright?!  Dammit... nooo..... not on to the image.... nooooo.... and now you're looking down at the little handwritten message I'd just put up.... please don't proceed to try and get up to any fancy antics with your likeness.... noo... shooooo! Scram!  Get off my screen dammit!)

Friday, April 15, 2016

CMake Rant

Arrggghh!!!   I wasted quite some time this afternoon tracking down a crash I was getting in one specific case, where it didn't make any sense at all that it was failing. After trying a lot of things to debug the situation, it only dawned on me quite late that it was the build system at fault here: that is, IT WAS CMAKE's fault. Again.

Why am I not surprised? Well, to this day, I still cannot trust that it's going to actually rebuild what I ask it to, when I ask it to, with everything it's supposed to be using. Heck, even finding out if it actually rebuilt the file or whether it skipped over it is not that easy (in short: it's output is a messy verbose dump of internal diarrhea).

Now, even if it did rebuild the file in question, it may have done so with the wrong settings.  Yay to "config first, then build".

Even worse though, is if it silently omits to add certain flags which you'd expect are included as standard-issue features, and requires you to actually manually add it in in every place where you might use it (*1).... The only way you'll know that has happened? After your code mysteriously keeps failing in bizarre ways, after several hours of debugging.

Gah.  And all that for two little buttons that probably won't be used that much anyway!

</end rant>

(*1 - To be fair, the flag-omitting is probably more of a design choice made in our cmake buildscripts. That said, it's a bloody annoying one if you don't know about it!)
(*2 - It's good to finally get this thing off my desk at last... It's been sitting around, blocked while I've had to work on other stuff, for the past few weeks since Easter....)

Sunday, February 14, 2016

Impending Demise of Picasa

Today Google announced the imminent demise of Picasa - both the web albums AND the desktop tool. My short reaction is this: Booooooo! Not this again Google!

 
My second reaction (and perhaps the most important point of this post) is this:
It'd be great if Google could open source the desktop editing app - that thing has a lot of very useful stuff going on there that would be a shame for the world to lose.   (I know, it's a long shot for that to actually happen... but, it's better to have tried and failed, than to never have tried!)



Failing that, what I really actually care about far more are the answers to the following technical questions:
1) How do the 3 exposure correction sliders - "Fill Light", "Highlight", "Shadow" - actually work?   In particular, I'm most interested in knowing about the "Fill Light", since that's one of the tools I use quite heavily, but have been unable to find a full replacement for (not close equivalent, but exact replacement) in any other package I've tried to date.    (In fact, I'm seriously considering putting a bounty on getting source code + running binaries for an implementation of this tool, to be obtained using any means necessary - be it reverse engineering the relevant code, or R&D of a replacement, or perhaps just getting the original devs to secretly leak the relevant code snippets for the public good)

2) What is the format of the metadata used to store the sequence of edits that Picasa performs on each file? These metadata files are stored in each directory, and seem to use some kind of encoded/compressed representation of the sequence of operations + parameters that get applied to files.    (Knowing this will be important for being able to port the non-destructive edits made to large numbers of photos in my library to whatever future tools I end up using)

3) I wonder how its UI toolkit was put together - especially for handling the scrolling of the view, as well as the rendering + storage of all the image thumbnails.  There's clearly some nifty engineering going on here, but most of us will never get to find out how it was all done! :(

(If any of the original Picasa app devs see this, feel free to send a private mail to my GMail or Hotmail - aligorith - accounts with more details of how these things work. I promise that I will not disclose the details of who provided me with this information... given the likely NDA's that some of this stuff may be under :)


---

4) How can I efficiently duplicate all albums, their content, and all metadata attached to all of those to another online storage solution?  It's clear that I'll need to start looking for a better online storage solution for these things, as the new Google Photos seems critically flawed in quite a few ways :/


Sunday, February 7, 2016

First Firefox Addon - "Toggle Autoplay"

This evening, I spent some time hacking together an addon for Firefox (and the first one I've built). Over the past week or so, I'd gotten increasingly annoyed by how certain video players (notably Vimeo's) were having some random playback issues when I've got autoplay disabled globally across the whole browser. The workaround for those cases is to turn autoplay back on while dealing with that page, and then disable again once done (so that the next page doesn't get any wrong ideas about causing a ruckus).



However, that's a PITA right now, as you have to open a new page, navigate to the user preferences page, navigate to the property, and only then can you change its setting. With no obvious way to just "pin" a setting to the toolbar, I was only left with the option of hacking together a simple addon to do so instead!

Friday, January 22, 2016

CMake + MSVC Frustrations - Solutions Wanted

It's been several weeks since Blender switched over to CMake. While some teething troubles while adapting to a new setup are to be expected, some are more disruptive than others... and it's usually these that are the ones that won't go away!

Having used this new setup for a few weeks, unfortunately, I have to say that there are a few quirks with this new CMake + MSVC setup which are currently very much inferior to my old setup with Scons + Mingw. (Part of the pain has been spared by the fact that I'm working on a pet project in a separate branch that I've purposefully left in a pre-scons-removal state... it will stay that way for as long as possible). If anyone is aware of any solutions to any of these problems, do let me know!