Tesselation project (and a simple concave polygon hit test algorithm)
I’ve exhibited at Colony of Artists several times, a vibrant art festival at Abbeyhill Colonies in Edinburgh.
One of the things I was showing and selling was my tesselation pieces: designs inspired by MC Escher’s work, particularly matamorphosing tesselations.
Some of these pieces play with negative space and the transition from 3D to 2D:
Drumming: Snare technique fundamentals
These are notes from a workshop I gave on Snare technique for Beltane 2021 (Acropolyptic).
The target audience is someone learning basic technique from the ground up, particularly in the context of processional drumming (playing a single drum). But the skills can equally apply to kit drumming etc.
Developing snare technique is hard. It can take ten hours or more practice time to start solidifying things, due to the fine motor control and muscle memory training involved.
Graphics and projective geometry: equation reference
Sometimes I do some GLSL or similar: much graphics and geometry. I usually scribble down some back-of-envelope variant of the usual geometry equations, but I’ve never consistently decided what to call things or how to write them down.
Here I’m setting down the notation I’m going to use, and capturing the definitions. Reference pseudo-implementations are given too (Swift).
The equations and source given here have been unit tested; full source to come after tidying.
Getting into 3D printing
I’ve been doing 3D printing for over five years. Designing and printing things for practical use gives you an appreciation for everyday objects and what makes them useful (or not)1.
Thinking of getting into 3D printing? Here’s some considerations:
Swift Testing: ready for prime time?
I took the new Swift Testing framework out for a spin and used it seriously on a small project.
Conclusion: to me, Swift Testing isn’t ready for serious production use, because either it’s buggy in some important ways, or Apple’s documentation is not specific enough about Testing’s design philosophy and how you should (or should not) use certain features.
My time ratio for “writing tests” to “work out why Testing is crashing” is 1:2 (or worse) at this point.
Testing tools should be well understood and well presented; we trust them with a lot. I think if issues are found with a new framework like Testing, this should be mentioned in the framework documentation.1
Tip: quicker cable recognition
If you have various nests of cables around the place you’re not unusual (USB anyone?). Organising your cable types, and keeping them organised, feels like a classic Sisyphean task.
One way to make things easier is to make your most important cables easier to recognise. Here’s a handy system I use.
Interview home coding tasks: my policy
In recent years there seems to have been a shift in interviews: less pairing exercises and more home coding tasks / projects.
After recent experience of home coding projects pre-interview, I’ve set a policy for my engagement in these tasks. I’m detailing it below, partly to avoid repeating myself to recruiters. Further down I give some reasons and discussion.
Functional Swift: Currying
Currying. It’s one of the stalwarts of functional programming.
Is Currying something you need to know about to be a developer?
Nope.
Is it handy to know about?
Yes. Think of it as a pattern for your toolbox. It can allow some elegant solutions and less code.
Is it weird and esoteric?
No; there’s a certain ‘shape’ to currying code but once you recognise it, there’s no mystery.
How’s your greenfield project game?
Here’s something a lot of devs would like to hear:
I’d say that anyone at senior level (and definitely above1) should have some justified2 thoughts on the greenfield question:
jdupes: file de-duplication tool
This simple guide to jdupes is split into traffic light sections 🚦 based on the danger of the commands.
If you want some file de-duplication test data, there’s a simple repo at https://github.com/alexhunsley/file-duplication-test-data .