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.

 

Wednesday, November 20, 2024

On intrinsic motivation when learning new skills

This morning I saw an interesting discussion where someone was asking how they should about learning to code.  This got me thinking about how I personally learned, and the transferable lessons from that process for picking up new skills / knowledge in general.


From that, I realised that I believe that intrinsic motivation - i.e. you first have to want to know for your own sake / to meet some of your own goals, rather than it being like "someone says I have to do it". I suspect this is one of the first major barriers many people face: For many people, their experience with learning in general has been through their schooling years - an fraught experience where the answer is often, "I do it because the adults made me do it" (i.e. extrinsic / non-self-motivated)


The easiest way to learn is not to go through a tutorial / course "just because", but rather, if you set yourself a goal of "I want / need to be able to make <x> happen"

From there, it really focuses your learning:
  * What do I need to know to do that?   

     There's nothing better than a real concrete need / roadblock in the here and now that you need to overcome in order to get to the next step towards your goals, focussing your attention in ways you may not have considered possible.


  * How does what I'm learning / coming across tie into what I'm doing, or how does it compare to what I've seen working on my project? (I.e. what's the point of all this)?

     For example, from experience, this was what helped me get through some of the most boring series of lectures I'd encountered at Uni, where we were going through this dry abstract set theory stuff on database operations. I found it really helped to reframe those abstract concepts back into the more concrete world of how I'd go about implementing such a thing in code using a for-loop going over such collections of objects.


  * What else could I easily do now that I didn't originally consider?  

      This is where you start engaging your creative juices, and start coming up with new idea for other enhancements or features or even completely new projects come from. Those in turn will drive a lot more experience building and hunting for new and better ways to do things, and pretty soon, we'll not be having this discussion here at all, as you're too busy trying to feed all your projects!  

     (That's why I also believe that if you manage to get your kids hooked on some pursuit where their drive for personal improvement can start taking over - i.e. for example, anything from programming, playing a musical instrument, sports, or various forms of art - they really won't have time or the inclination to bother with drugs or petty youth crime)


For an additional piece of fun reading, I came across the following article this morning about how lab rats taught to drive "rat cars" apparently looked forward to the experience, with the anticipation for that having many positive benefits (including making their tails look more like those of "friendly cats"). Interesting food for thought...

https://theconversation.com/im-a-neuroscientist-who-taught-rats-to-drive-their-joy-suggests-how-anticipating-fun-can-enrich-human-life-239029

Saturday, November 16, 2024

Thoughts on Rust - 2024 Edition

Here are some of my current thoughts on Rust, as initially prompted by a thread I saw this morning asking: "What features of Rust are most appealing to you?"

My reply follows.

~~~

Originally, what drew me most to Rust I guess were (in following order)


1) Complex compiled language with momentum that was not C++ 

This was by far the biggest motivation, back when I was still mostly a C/Python dev. Having spent a few years working professionally as a C++11 software engineer now (having learned on the job, thanks to working during code reviews with a bunch of top-notch Modern C++ gurus), it now just looks like Haskell-lite for Modern C++ devs  (which enforces all the best practices we generally do, *by default*).

 

2) Claims of speed + memory safety (esp around multithread type stuff - This was a big one coming from several bad Python codebases that struggled with really bad concurrency issues (i.e. random deadlocks on machines with different processor numbers than the original dev machines used), but also because Rust first started rising in prominence as I was looking into the Depsgraph stuff (which would have really benefited from being able to evaluate multiple things in parallel, to do background recalcs + caching of your scene)


3) Didn't have "cuddled else" / "caterpillar ifs" hard coded into the syntax (*cough* Go *cough*)

To this day, it still really annoys me running across code written that way. Like, really twitchy annoyed.

It's a real pity that there are a bunch of languages that hard enshrined it in their syntax (due to design decisions), and also that increasingly many examples across other C-like languages also do it. Ugh!


Thursday, November 14, 2024

Blasts from the Past - Reminders and Remnants of Different Times

Sometimes you just cannot make these things up!  Either that, or "The Algorithms" pervading our lives these days are getting much better at juxtapositioning contrasting but related things together. Anyway, I digress.  Tonight's impromptu post is inspired by the following 2 snippets that popped up across my various feeds this evening:

   1)  Local newspaper had an article saying that a *third* building at my former High School had just been deemed "quake prone" - with all three buildings having been built either shortly before my time there, or during my time there, and all having been places I'd spent a bit of time in.


   2)  An old clip of Bill Gates giving a demo of Visual Basic back in 1991


 It's funny how these things go sometimes, isn't it...

 

Saturday, November 9, 2024

Principles and Frontiers for Creative Software Tools

Here's the long-promised "Manifesto + Roadmap" for the future of Creative Software Tools I'd been wanting to publish since May/June 2024, but was ultimately stalled from doing so by a bad first encounter with Covid ultimately sapping my strength to take on outside-work commitments for a few months.  

NOTE: To get this out, I may just publish it first then amend it later

 ~~~

Dabbling with designing up another DCC tool after a hiatus of a short break from that field has reminded me of a whole bunch of untapped / unsolved directions for the future of DCC tools to make them more useful to the humans who use them.

Graph Layout and Diagramming Tools Projects

Automatic Graph Layout

Every few years (i.e. roughly 4-6) I will often end up having some project that necessitates auto-generating a big graph, in which case I again waste time going through all the layout engines checking if any do what I actually want, find that none do, and then waste time trying to tweak GraphViz parameters again...

That reminds me that it is probably time to give my own graph layout engine another go. Would've been for multilayered graphs with a particular flow structure 😜

(i.e. For those who know, it's basically a layout engine for Blender's DEG graphs, as I originally envisaged them - so the idea is to recursively group/agglomerate clusters of nodes which belong to some common entity. Then at each layer, just solve the simpler problem that exists at that level within the container (i.e. only layout the nodes under said parent container). Once we have this, we can then flush the required bounds for each nested layout up the hierarchy, and so forth).


My Own Dream Diagramming Tool

Of course, in the process, I'm reminded that a bigger priority is really to build my own diagramming tool that will fully work the way I want - with all the style presets, palettes, and interaction flows I've always dreamed of.

Oh, and to have this work multiplatform somehow, so I can use it on our locked-down work machines, but also on my phone (for quick sketches / doodles).

This is much much more a priority, as I do this *all the time*, and the existing tools are annoying for various reasons.

 

Saturday, November 2, 2024

Congratulations to Notepad++ for 21 Years and Counting

Saw an interesting link today to a blog post proclaiming that Notepad++ has been existence for 21 years now:

 


 

https://learnhub.top/celebrating-21-years-of-notepad-the-legendary-journey-of-our-favorite-text-editor/


Having used it as my primary text editor for nearly a decade (i.e. starting roughly sometime around 2005-ish, and no later than 2006, until roughly 2014-ish), it has certainly been an invaluable tool for me personally.

 

Among other things:

* It was the text editor I used to code most of my Blender work (notably doing the 2.5 Animato refactor, and initial implementation of Grease Pencil)

* It was also the text editor I used for all my undergrad, and a big chunk of my honours project work (with Geany on Linux doing the rest of the heavy-lifting when I was using the department Linux machines)