Tag: Ringing
Change ringing: extensions to place notation
I’ve experimented with method design at various times and place notation is a very useful tool, but it’s lacking in some situations. Here’s a few ideas for some bolt-ons.
Tag: Ttsy
Tag: Art
Million Point Sculptures: an exploration tool written in Metal
In which your hopeful protagonist describes Million Point Sculptures, and a highly interactive exploration tool written in Metal.
In the 1980s there was a wave of fascination with fractals and chaos in popular culture, and several books really caught the imagination of young me.
One was Chaos by James Gleick (un classique)1. Also there were some lovely books by Clifford Pickover, like Computers and the Imagination, containing curious things like Million Point Sculptures: intriguing generated art showing wispy smoke-clouds. They’re generated by some quite simple equations.
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:
Tag: Graphics
Million Point Sculptures: an exploration tool written in Metal
In which your hopeful protagonist describes Million Point Sculptures, and a highly interactive exploration tool written in Metal.
In the 1980s there was a wave of fascination with fractals and chaos in popular culture, and several books really caught the imagination of young me.
One was Chaos by James Gleick (un classique)1. Also there were some lovely books by Clifford Pickover, like Computers and the Imagination, containing curious things like Million Point Sculptures: intriguing generated art showing wispy smoke-clouds. They’re generated by some quite simple equations.
Graphics & geometry: the orth function in 3D
The orth
concept in 2D geometry and graphics is where, given some vector, we find a vector (line) that is at right angles to the original. We have a tiny bit of choice about how to do it – we can pick a vector to the left, or to the right – but it’s very simple (more
here).
The equivalent function in 3D is one of those odd little problems where you are given some freedom with the answer, and you don’t really care about that freedom – just pick something please! – but you’re made to care about it anyway and do what feels like too much thinking. Bah!1
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:
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.
Tag: Maths
Million Point Sculptures: an exploration tool written in Metal
In which your hopeful protagonist describes Million Point Sculptures, and a highly interactive exploration tool written in Metal.
In the 1980s there was a wave of fascination with fractals and chaos in popular culture, and several books really caught the imagination of young me.
One was Chaos by James Gleick (un classique)1. Also there were some lovely books by Clifford Pickover, like Computers and the Imagination, containing curious things like Million Point Sculptures: intriguing generated art showing wispy smoke-clouds. They’re generated by some quite simple equations.
Graphics & geometry: the orth function in 3D
The orth
concept in 2D geometry and graphics is where, given some vector, we find a vector (line) that is at right angles to the original. We have a tiny bit of choice about how to do it – we can pick a vector to the left, or to the right – but it’s very simple (more
here).
The equivalent function in 3D is one of those odd little problems where you are given some freedom with the answer, and you don’t really care about that freedom – just pick something please! – but you’re made to care about it anyway and do what feels like too much thinking. Bah!1
Foothills of Bayesian Analysis
A recent news story was about doctors not knowing the basics of Bayes’ theorem: they were asked a basic question about false results on a disease test. A lot of them flubbed it.
Let’s be fair: I wouldn’t expect most doctors to be able to regurgitate Bayes law or do an applied example.
I would expect them to say “That question is more complex than it sounds”, rather than fall into the usual trap.
It’s the old knowing what you don’t know (and that’s for another post).
Anyway, that was the prod for me do a dive into basics of Bayesian Analysis in several parts.
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:
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.
Orthogonal flight path intersection: my own solution
After seeing my post on ChatGPT dazzle, a friend asked what the code for that exact problem would look like if I rewrote it in a better way.
I did criticise the original code, so it’s fair that I should show my own version.
Beware of ChatGPT dazzle
I’ve long known about the power of computer visualisation to dazzle and distract, to give cover to bad or poorly supported ideas. The case study I saw at university was about a famous computer animation of the single-bullet theory in the JFK assassination.
This general idea of dazzle pops up in different contexts over the years. Most recently we can see ChatGPT and other AI tools being used in some very low-effort dazzle attempts.
Here’s a recent example in a post from Twitter:
Foothills of Combinatorics (part 2)
Introducing the simplex generator for higher dimension pascal/combinatorics and looking at the bigger picture: exhaustive function composition.
Foothills of Combinatorics (part 1)
This is the first of a few notes about combinatorics and probability. Simpler concepts first, and eventually might get to stuff like analytic combinatorics.
I’m interested in the point where more simple combinatorics and multinomials become blunt tools and we have to move to higher concepts like generators and species.
Tag: Metal
Million Point Sculptures: an exploration tool written in Metal
In which your hopeful protagonist describes Million Point Sculptures, and a highly interactive exploration tool written in Metal.
In the 1980s there was a wave of fascination with fractals and chaos in popular culture, and several books really caught the imagination of young me.
One was Chaos by James Gleick (un classique)1. Also there were some lovely books by Clifford Pickover, like Computers and the Imagination, containing curious things like Million Point Sculptures: intriguing generated art showing wispy smoke-clouds. They’re generated by some quite simple equations.
Tag: Apple
Swift Testing: an ergonomic combination helper
This helper is installable with SPM, see GitHub repo
I’ve been using the Swift Testing
framework more. Despite my
previous grumble I do like the arguments:
feature of the @Test
macro and how much it can clean up tests:
@Test(arguments: [
(true, "bob", 38),
(false, "sue", 45)
])
func testUserPermissions(isBasketEmpty: Bool, username: String, age: Int) {
#expect( ... )
}
The ability to supply a list of parameter variants to test is very useful. I think it tends to result in more exhaustive tests because of ease of use.
But being able to easily whack in a list of argument variants soon reveals a slight annoyance. It’s not unusual to end up with a test like this:
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
Tag: Dev
Swift Testing: an ergonomic combination helper
This helper is installable with SPM, see GitHub repo
I’ve been using the Swift Testing
framework more. Despite my
previous grumble I do like the arguments:
feature of the @Test
macro and how much it can clean up tests:
@Test(arguments: [
(true, "bob", 38),
(false, "sue", 45)
])
func testUserPermissions(isBasketEmpty: Bool, username: String, age: Int) {
#expect( ... )
}
The ability to supply a list of parameter variants to test is very useful. I think it tends to result in more exhaustive tests because of ease of use.
But being able to easily whack in a list of argument variants soon reveals a slight annoyance. It’s not unusual to end up with a test like this:
Graphics & geometry: the orth function in 3D
The orth
concept in 2D geometry and graphics is where, given some vector, we find a vector (line) that is at right angles to the original. We have a tiny bit of choice about how to do it – we can pick a vector to the left, or to the right – but it’s very simple (more
here).
The equivalent function in 3D is one of those odd little problems where you are given some freedom with the answer, and you don’t really care about that freedom – just pick something please! – but you’re made to care about it anyway and do what feels like too much thinking. Bah!1
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:
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.
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
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:
Tag: Ergonomic
Swift Testing: an ergonomic combination helper
This helper is installable with SPM, see GitHub repo
I’ve been using the Swift Testing
framework more. Despite my
previous grumble I do like the arguments:
feature of the @Test
macro and how much it can clean up tests:
@Test(arguments: [
(true, "bob", 38),
(false, "sue", 45)
])
func testUserPermissions(isBasketEmpty: Bool, username: String, age: Int) {
#expect( ... )
}
The ability to supply a list of parameter variants to test is very useful. I think it tends to result in more exhaustive tests because of ease of use.
But being able to easily whack in a list of argument variants soon reveals a slight annoyance. It’s not unusual to end up with a test like this:
Tag: Swift
Swift Testing: an ergonomic combination helper
This helper is installable with SPM, see GitHub repo
I’ve been using the Swift Testing
framework more. Despite my
previous grumble I do like the arguments:
feature of the @Test
macro and how much it can clean up tests:
@Test(arguments: [
(true, "bob", 38),
(false, "sue", 45)
])
func testUserPermissions(isBasketEmpty: Bool, username: String, age: Int) {
#expect( ... )
}
The ability to supply a list of parameter variants to test is very useful. I think it tends to result in more exhaustive tests because of ease of use.
But being able to easily whack in a list of argument variants soon reveals a slight annoyance. It’s not unusual to end up with a test like this:
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
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.
Tag: Testing
Swift Testing: an ergonomic combination helper
This helper is installable with SPM, see GitHub repo
I’ve been using the Swift Testing
framework more. Despite my
previous grumble I do like the arguments:
feature of the @Test
macro and how much it can clean up tests:
@Test(arguments: [
(true, "bob", 38),
(false, "sue", 45)
])
func testUserPermissions(isBasketEmpty: Bool, username: String, age: Int) {
#expect( ... )
}
The ability to supply a list of parameter variants to test is very useful. I think it tends to result in more exhaustive tests because of ease of use.
But being able to easily whack in a list of argument variants soon reveals a slight annoyance. It’s not unusual to end up with a test like this:
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
Tag: Geometry
Graphics & geometry: the orth function in 3D
The orth
concept in 2D geometry and graphics is where, given some vector, we find a vector (line) that is at right angles to the original. We have a tiny bit of choice about how to do it – we can pick a vector to the left, or to the right – but it’s very simple (more
here).
The equivalent function in 3D is one of those odd little problems where you are given some freedom with the answer, and you don’t really care about that freedom – just pick something please! – but you’re made to care about it anyway and do what feels like too much thinking. Bah!1
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:
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.
Orthogonal flight path intersection: my own solution
After seeing my post on ChatGPT dazzle, a friend asked what the code for that exact problem would look like if I rewrote it in a better way.
I did criticise the original code, so it’s fair that I should show my own version.
Beware of ChatGPT dazzle
I’ve long known about the power of computer visualisation to dazzle and distract, to give cover to bad or poorly supported ideas. The case study I saw at university was about a famous computer animation of the single-bullet theory in the JFK assassination.
This general idea of dazzle pops up in different contexts over the years. Most recently we can see ChatGPT and other AI tools being used in some very low-effort dazzle attempts.
Here’s a recent example in a post from Twitter:
Tag: Group Theory
Tag: Circuits
Ohmaps: AC/DC walkabout (part 1)
I want to mention the concept of walkabout and then go for a meander with the ohmaps idea. The idea is to eventually look at if the ohmap extends from resistance (DC behaviour circuits) to impedence (AC circuits) in any useful way.
Let’s go walkabout
For quite a lot of years I would go walkabout and not really thinking about what that meant.
Walkabout is my expression for when I’m thinking about one thing and then I go off in some other interesting direction or I try to generalise something. The original ohmap idea is a good example: I was just sketching some trivial code for building image montages, and I later spotted the simple mapping to resistor networks.
Ohmaps: crossing the Wheatstone bridge
I introduced ohmaps in parts 1 and 2 and looked at some simpler examples.
We looked at parallel and series resistor networks (and combinations of those):

And I wrote this:
And not every resistor network can be shown as an ohmap – things outwith simple series/parallel nestings, like delta or Y networks.
It turns out I was a little hasty here. So how might ohmaps cope with more interesting networks?
Ohmaps (part 2)
More on Ohmaps: component failure battles, limitations, ambiguity…
Disclaimer: I am not an electrician. Nothing here is electrical advice/expertise. Insure your garments.
Ohmaps: your image montage is a resistor network
Occasionally there’s a lovely moment when I’m working on a problem and I realise I’m also looking at some other thing that seems completely unrelated. It’s like a metaphor made flesh.
These ‘ isomorphism moments’ can be powerful because the two seemingly unrelated things can give you insights into each other. Their commonality encourages you think about the essential thread running through them both.
This post details one of these moments I had recently.
Tag: Curiosities
Ohmaps: AC/DC walkabout (part 1)
I want to mention the concept of walkabout and then go for a meander with the ohmaps idea. The idea is to eventually look at if the ohmap extends from resistance (DC behaviour circuits) to impedence (AC circuits) in any useful way.
Let’s go walkabout
For quite a lot of years I would go walkabout and not really thinking about what that meant.
Walkabout is my expression for when I’m thinking about one thing and then I go off in some other interesting direction or I try to generalise something. The original ohmap idea is a good example: I was just sketching some trivial code for building image montages, and I later spotted the simple mapping to resistor networks.
Ohmaps: crossing the Wheatstone bridge
I introduced ohmaps in parts 1 and 2 and looked at some simpler examples.
We looked at parallel and series resistor networks (and combinations of those):

And I wrote this:
And not every resistor network can be shown as an ohmap – things outwith simple series/parallel nestings, like delta or Y networks.
It turns out I was a little hasty here. So how might ohmaps cope with more interesting networks?
The Lost Clock Emporium: details
Here’s a few details about the weird clocks in the previous post The Lost Clock Emporium.
The clocks are all regular analogue clocks (rotation aside), with the exception of Hades’ Timepiece, which has numbers and hands going counter-clockwise (so a mirror image of a normal clock).
The entire clocks are rotating clockwise at these rates (per day):
The Lost Clock Emporium
I can’t remember exactly how I ended up at the Lost Clock Emporium. I do remember brushing by disturbed looking people making their way out.
“Clock a load of you!”, the proprietor muttered, before looking up. “Sorry, no time for introductions, I have things to show you.”
Ohmaps (part 2)
More on Ohmaps: component failure battles, limitations, ambiguity…
Disclaimer: I am not an electrician. Nothing here is electrical advice/expertise. Insure your garments.
Ohmaps: your image montage is a resistor network
Occasionally there’s a lovely moment when I’m working on a problem and I realise I’m also looking at some other thing that seems completely unrelated. It’s like a metaphor made flesh.
These ‘ isomorphism moments’ can be powerful because the two seemingly unrelated things can give you insights into each other. Their commonality encourages you think about the essential thread running through them both.
This post details one of these moments I had recently.
Tag: Electronics
Ohmaps: AC/DC walkabout (part 1)
I want to mention the concept of walkabout and then go for a meander with the ohmaps idea. The idea is to eventually look at if the ohmap extends from resistance (DC behaviour circuits) to impedence (AC circuits) in any useful way.
Let’s go walkabout
For quite a lot of years I would go walkabout and not really thinking about what that meant.
Walkabout is my expression for when I’m thinking about one thing and then I go off in some other interesting direction or I try to generalise something. The original ohmap idea is a good example: I was just sketching some trivial code for building image montages, and I later spotted the simple mapping to resistor networks.
Ohmaps: crossing the Wheatstone bridge
I introduced ohmaps in parts 1 and 2 and looked at some simpler examples.
We looked at parallel and series resistor networks (and combinations of those):

And I wrote this:
And not every resistor network can be shown as an ohmap – things outwith simple series/parallel nestings, like delta or Y networks.
It turns out I was a little hasty here. So how might ohmaps cope with more interesting networks?
Electronics: cap-fun PCB fabrication results
I used JLCPCB to fabricate my cap-fun circuit (see part 1). It was under $20 including delivery, for 75 copies of this small PCB (4 x 4 cm).
Electronics: KiCad PCB fabrication and the cap-fun project
I’ve been meaning to look into PCB fabrication forever, and it’s time, baby.
What would I make for my first small PCB? I settled on designing an educational demo board for capacitors. I call it cap-fun
.
Capacitor demo boards are nothing new, but I’ve remixed things a little because the usual designs hide some nuances of capacitors that I think can be easily demonstrated.
Ohmaps (part 2)
More on Ohmaps: component failure battles, limitations, ambiguity…
Disclaimer: I am not an electrician. Nothing here is electrical advice/expertise. Insure your garments.
Ohmaps: your image montage is a resistor network
Occasionally there’s a lovely moment when I’m working on a problem and I realise I’m also looking at some other thing that seems completely unrelated. It’s like a metaphor made flesh.
These ‘ isomorphism moments’ can be powerful because the two seemingly unrelated things can give you insights into each other. Their commonality encourages you think about the essential thread running through them both.
This post details one of these moments I had recently.
Tag: Impedance
Ohmaps: AC/DC walkabout (part 1)
I want to mention the concept of walkabout and then go for a meander with the ohmaps idea. The idea is to eventually look at if the ohmap extends from resistance (DC behaviour circuits) to impedence (AC circuits) in any useful way.
Let’s go walkabout
For quite a lot of years I would go walkabout and not really thinking about what that meant.
Walkabout is my expression for when I’m thinking about one thing and then I go off in some other interesting direction or I try to generalise something. The original ohmap idea is a good example: I was just sketching some trivial code for building image montages, and I later spotted the simple mapping to resistor networks.
Tag: Ohmaps
Ohmaps: AC/DC walkabout (part 1)
I want to mention the concept of walkabout and then go for a meander with the ohmaps idea. The idea is to eventually look at if the ohmap extends from resistance (DC behaviour circuits) to impedence (AC circuits) in any useful way.
Let’s go walkabout
For quite a lot of years I would go walkabout and not really thinking about what that meant.
Walkabout is my expression for when I’m thinking about one thing and then I go off in some other interesting direction or I try to generalise something. The original ohmap idea is a good example: I was just sketching some trivial code for building image montages, and I later spotted the simple mapping to resistor networks.
Tag: Walkabout
Ohmaps: AC/DC walkabout (part 1)
I want to mention the concept of walkabout and then go for a meander with the ohmaps idea. The idea is to eventually look at if the ohmap extends from resistance (DC behaviour circuits) to impedence (AC circuits) in any useful way.
Let’s go walkabout
For quite a lot of years I would go walkabout and not really thinking about what that meant.
Walkabout is my expression for when I’m thinking about one thing and then I go off in some other interesting direction or I try to generalise something. The original ohmap idea is a good example: I was just sketching some trivial code for building image montages, and I later spotted the simple mapping to resistor networks.
Tag: Ohmap
Ohmaps: crossing the Wheatstone bridge
I introduced ohmaps in parts 1 and 2 and looked at some simpler examples.
We looked at parallel and series resistor networks (and combinations of those):

And I wrote this:
And not every resistor network can be shown as an ohmap – things outwith simple series/parallel nestings, like delta or Y networks.
It turns out I was a little hasty here. So how might ohmaps cope with more interesting networks?
Ohmaps (part 2)
More on Ohmaps: component failure battles, limitations, ambiguity…
Disclaimer: I am not an electrician. Nothing here is electrical advice/expertise. Insure your garments.
Ohmaps: your image montage is a resistor network
Occasionally there’s a lovely moment when I’m working on a problem and I realise I’m also looking at some other thing that seems completely unrelated. It’s like a metaphor made flesh.
These ‘ isomorphism moments’ can be powerful because the two seemingly unrelated things can give you insights into each other. Their commonality encourages you think about the essential thread running through them both.
This post details one of these moments I had recently.
Tag: Education
Electronics: cap-fun PCB fabrication results
I used JLCPCB to fabricate my cap-fun circuit (see part 1). It was under $20 including delivery, for 75 copies of this small PCB (4 x 4 cm).
Electronics: KiCad PCB fabrication and the cap-fun project
I’ve been meaning to look into PCB fabrication forever, and it’s time, baby.
What would I make for my first small PCB? I settled on designing an educational demo board for capacitors. I call it cap-fun
.
Capacitor demo boards are nothing new, but I’ve remixed things a little because the usual designs hide some nuances of capacitors that I think can be easily demonstrated.
Tag: Kicad
Electronics: cap-fun PCB fabrication results
I used JLCPCB to fabricate my cap-fun circuit (see part 1). It was under $20 including delivery, for 75 copies of this small PCB (4 x 4 cm).
Electronics: KiCad PCB fabrication and the cap-fun project
I’ve been meaning to look into PCB fabrication forever, and it’s time, baby.
What would I make for my first small PCB? I settled on designing an educational demo board for capacitors. I call it cap-fun
.
Capacitor demo boards are nothing new, but I’ve remixed things a little because the usual designs hide some nuances of capacitors that I think can be easily demonstrated.
Tag: Pcb
Electronics: cap-fun PCB fabrication results
I used JLCPCB to fabricate my cap-fun circuit (see part 1). It was under $20 including delivery, for 75 copies of this small PCB (4 x 4 cm).
Electronics: KiCad PCB fabrication and the cap-fun project
I’ve been meaning to look into PCB fabrication forever, and it’s time, baby.
What would I make for my first small PCB? I settled on designing an educational demo board for capacitors. I call it cap-fun
.
Capacitor demo boards are nothing new, but I’ve remixed things a little because the usual designs hide some nuances of capacitors that I think can be easily demonstrated.
Tag: Radio
My radio kit (2M0LBH)
Below I list my amateur radio hardware, it doesn’t represent a single rig!
Tag: Bayes
Foothills of Bayesian Analysis
A recent news story was about doctors not knowing the basics of Bayes’ theorem: they were asked a basic question about false results on a disease test. A lot of them flubbed it.
Let’s be fair: I wouldn’t expect most doctors to be able to regurgitate Bayes law or do an applied example.
I would expect them to say “That question is more complex than it sounds”, rather than fall into the usual trap.
It’s the old knowing what you don’t know (and that’s for another post).
Anyway, that was the prod for me do a dive into basics of Bayesian Analysis in several parts.
Tag: Data-Science
Foothills of Bayesian Analysis
A recent news story was about doctors not knowing the basics of Bayes’ theorem: they were asked a basic question about false results on a disease test. A lot of them flubbed it.
Let’s be fair: I wouldn’t expect most doctors to be able to regurgitate Bayes law or do an applied example.
I would expect them to say “That question is more complex than it sounds”, rather than fall into the usual trap.
It’s the old knowing what you don’t know (and that’s for another post).
Anyway, that was the prod for me do a dive into basics of Bayesian Analysis in several parts.
Tag: Probability
Foothills of Bayesian Analysis
A recent news story was about doctors not knowing the basics of Bayes’ theorem: they were asked a basic question about false results on a disease test. A lot of them flubbed it.
Let’s be fair: I wouldn’t expect most doctors to be able to regurgitate Bayes law or do an applied example.
I would expect them to say “That question is more complex than it sounds”, rather than fall into the usual trap.
It’s the old knowing what you don’t know (and that’s for another post).
Anyway, that was the prod for me do a dive into basics of Bayesian Analysis in several parts.
Foothills of Combinatorics (part 2)
Introducing the simplex generator for higher dimension pascal/combinatorics and looking at the bigger picture: exhaustive function composition.
Foothills of Combinatorics (part 1)
This is the first of a few notes about combinatorics and probability. Simpler concepts first, and eventually might get to stuff like analytic combinatorics.
I’m interested in the point where more simple combinatorics and multinomials become blunt tools and we have to move to higher concepts like generators and species.
Tag: Gaming
Tag: Modding
Tag: Valheim
Tag: Glsl
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:
Tag: Tesselation
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:
Tag: Drumming
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.
Tag: Music-Making
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.
Tag: Snare
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.
Tag: 3d-Printing
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:
Tag: Making
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:
Tag: Cables
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.
Tag: Organisation
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.
Tag: Tip
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.
Tag: Interviews
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.
Tag: Functional
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.
Tag: Commandline
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.
Tag: Data
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.
Tag: Tools
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.
Tag: Ai
Beware of ChatGPT dazzle
I’ve long known about the power of computer visualisation to dazzle and distract, to give cover to bad or poorly supported ideas. The case study I saw at university was about a famous computer animation of the single-bullet theory in the JFK assassination.
This general idea of dazzle pops up in different contexts over the years. Most recently we can see ChatGPT and other AI tools being used in some very low-effort dazzle attempts.
Here’s a recent example in a post from Twitter:
Tag: Chatgpt
Beware of ChatGPT dazzle
I’ve long known about the power of computer visualisation to dazzle and distract, to give cover to bad or poorly supported ideas. The case study I saw at university was about a famous computer animation of the single-bullet theory in the JFK assassination.
This general idea of dazzle pops up in different contexts over the years. Most recently we can see ChatGPT and other AI tools being used in some very low-effort dazzle attempts.
Here’s a recent example in a post from Twitter:
Tag: Meta
Tag: Writing
How this site is built and published
Meta-content time!
As the site develops, this post will be updated.
Tag: Algorithm
Artisan bread and pizza iOS app: details
I’m a big fan of Flour Water Salt Yeast, Ken Forkish’s epic book on fancy bread1.
Hence I’m writing a recipe app for fancy artisanal bread and pizza. For these loaves the ingredient calculations go a bit beyond bog standard bread2.
Tag: App
Artisan bread and pizza iOS app: details
I’m a big fan of Flour Water Salt Yeast, Ken Forkish’s epic book on fancy bread1.
Hence I’m writing a recipe app for fancy artisanal bread and pizza. For these loaves the ingredient calculations go a bit beyond bog standard bread2.
Tag: Bread
Artisan bread and pizza iOS app: details
I’m a big fan of Flour Water Salt Yeast, Ken Forkish’s epic book on fancy bread1.
Hence I’m writing a recipe app for fancy artisanal bread and pizza. For these loaves the ingredient calculations go a bit beyond bog standard bread2.
Tag: Fwsy
Artisan bread and pizza iOS app: details
I’m a big fan of Flour Water Salt Yeast, Ken Forkish’s epic book on fancy bread1.
Hence I’m writing a recipe app for fancy artisanal bread and pizza. For these loaves the ingredient calculations go a bit beyond bog standard bread2.
Tag: Pizza
Artisan bread and pizza iOS app: details
I’m a big fan of Flour Water Salt Yeast, Ken Forkish’s epic book on fancy bread1.
Hence I’m writing a recipe app for fancy artisanal bread and pizza. For these loaves the ingredient calculations go a bit beyond bog standard bread2.
Tag: Clocks
The Lost Clock Emporium: details
Here’s a few details about the weird clocks in the previous post The Lost Clock Emporium.
The clocks are all regular analogue clocks (rotation aside), with the exception of Hades’ Timepiece, which has numbers and hands going counter-clockwise (so a mirror image of a normal clock).
The entire clocks are rotating clockwise at these rates (per day):
The Lost Clock Emporium
I can’t remember exactly how I ended up at the Lost Clock Emporium. I do remember brushing by disturbed looking people making their way out.
“Clock a load of you!”, the proprietor muttered, before looking up. “Sorry, no time for introductions, I have things to show you.”
Tag: Fft
Xor Xor Gabor
If you’re working with image processing and discrete Fourier transforms (frequency analysis/filtering)1 you need test images, and possibly even videos.
Xor Xor Gabor2 is my name for an easy to make test image (and video) that is a nutritious source of frequencies:
$$ i = x \oplus y \tag{\(0 <= x,y < 2^L\)} $$Tag: Image Processing
Xor Xor Gabor
If you’re working with image processing and discrete Fourier transforms (frequency analysis/filtering)1 you need test images, and possibly even videos.
Xor Xor Gabor2 is my name for an easy to make test image (and video) that is a nutritious source of frequencies:
$$ i = x \oplus y \tag{\(0 <= x,y < 2^L\)} $$Tag: Opencv
Xor Xor Gabor
If you’re working with image processing and discrete Fourier transforms (frequency analysis/filtering)1 you need test images, and possibly even videos.
Xor Xor Gabor2 is my name for an easy to make test image (and video) that is a nutritious source of frequencies:
$$ i = x \oplus y \tag{\(0 <= x,y < 2^L\)} $$Tag: Combinatorics
Foothills of Combinatorics (part 2)
Introducing the simplex generator for higher dimension pascal/combinatorics and looking at the bigger picture: exhaustive function composition.
Foothills of Combinatorics (part 1)
This is the first of a few notes about combinatorics and probability. Simpler concepts first, and eventually might get to stuff like analytic combinatorics.
I’m interested in the point where more simple combinatorics and multinomials become blunt tools and we have to move to higher concepts like generators and species.