An Oracle Bot, An Irregular Grid, a Native Speaker
Hi there, I’m Duncan and this is “Hello From Duncan” - a newletter I send every ten days about what I’ve been devoting most of my brain cycles to.
This is kind of a long one, so give yourself permission to get a cup of tea, sit down in a comfortable chair, and read it slowly.
I’ve always liked Twitter bots as an artistic medium. Some of my favourites include @softlandscapes, @archillect, @tinycarebot, @hourlyfox and the weird and beautiful @str_voyage.
So when I saw that Bristol’s Control Shift Network was running an online workshop on “Oracle Bots”, I was excited. The description of the workshop read:
The workshop will consist of coding sessions and guided meditations to explore the collective imagination around analogue and digital connectivity through the body.
I was not disappointed. After a short cleansing meditation, some introduction, and an explanation of the world of Twitter bots and what’s possible, we went into a deep twenty-minute guided meditation designed to boost our creativity.
Then it was straight into coding. We learned the basics of the Tracery language, and applied it through the Cheap Bots Done Quick platform.
I created @buckminster_bot, a bot that tweets sentences from Buckminster Fuller’s 1975 two-volume publication “Synergetics”. Sentences like “It is essential to release humanity from the false fixations of yesterday, which seem now to bind it to a rationale of action leading only to extinction.” Or “We don’t know what a rose is, nor what may be its essential and unique cosmic function.”
Right now, it’s only drawing from the introduction of Synergetics, but I’m planning to expand its corpus in the coming weeks as I find time.
If you’d like to make your own Twitter bot, there’s a good summary of the workshop here. Don’t skip the meditations!
One of the aspects of coding that I’ve always found a bit mind-bending is recursion.
For non-coders, this is when something is defined in terms of itself. A real-world analogue, which makes no real sense but could give you an idea of why it’s weird, might be when a recipe for cake includes cake as an ingredient. As the joke goes: “In order to understand recursion, one must first understand recursion.”
Anyway, a generative art technique that I’ve always been interested in involves creating grids that subdivide in some places into smaller grids, which is often done recursively. I’ve never been quite able to get my head around it.
But then I found a great tutorial by Misha Heesakkers. He walks through the process in Java pseudocode, which with a bit of trial and error I was able to translate into Javascript.
The result was a pair of lovely little sketches, but more importantly the knowledge of how to build an irregular grid - which I can now add to my arsenal of generative art tools. In fact, I’ve been thinking of making a little Twitter bot that automatically generates generative art prompts. Something that’s just enough to reduce the terror of the blank page…
Sourdough fans, have you met Bread Scheduler? It’s a simple website that lets you use modern slow-rising (sometimes called “no-knead”) techniques to fit baking around your work commitments.
The resulting bread has a wonderful flavour and complexity, far beyond what you might get from your local supermarket - and even many bakeries.
It’s probably not for total beginners - I’d recommend Ken Forkish’s Flour Water Salt Yeast for you instead. But if you have a little experience baking no-knead breads already then I think you’ll love it.
I had a filling the other day - my very first. It was in one of my wisdom teeth. I was at the dentist because I had felt a little sharp edge on the tooth, and wanted to get it checked out. The dentist took a look and a few x-rays, and promptly announced that I had a cavity and the tooth would need to be removed.
I was a bit startled. Remove an entire tooth? It was too difficult to fill, the dentist said. Too far back in the mouth. They gave me a quote for the removal and I went home feeling very weird and uncomfortable. Then I realised what probably happened. A Swedish-English communication error had led her to think that I had a sharp pain in the tooth, not a sharp edge on the tooth, and by the time we’d cleared it up she’d already made the diagnosis.
So I did something I’ve always secretly wanted to do and got a second opinion. I went to a different dentist, and asked them to check out the tooth. They confirmed that there was a small cavity, but said that they’d happily fill it there and then if I wanted.
I got the filling - no pain at all. So now the problem is fixed, and I have the same number of teeth as before. What I learnt: if you’re not sure about something, getting a second opinion is a good idea.
Ever noticed that chopsticks differ a little in design between Japanese, Korean and Chinese restaurants? Here’s a lovely, short visual explainer of the differences and where they come from.
After I wrote the copy for my new website, I sent it to a few people to get some feedback. A council of advisors, if you will. Some of them are fellow dataviz freelancers, some are people who hire people like me, and some I just ask because I value their perspectives. My sister is one of the people in the last group.
She picked up on something that I’d never thought much about before. In the list of reasons why people might want to hire me, I described myself as a “native English speaker”, meaning - of course - that I am very proficient at communicating in English. This, she said, is a problematic description.
My first response was the same response everyone naturally has when they’re told that they’re doing something problematic. I was defensive. I assumed that it was about the word “native”, which has obvious colonialist undertones. She very patiently explained to me that it’s not really about that at all.
It’s actually about the idea that people who grow up with a language will always speak it more proficiently than people who learn it later in life. Often that’s true - but not always. I know plenty of cases of “native” speakers with imperfect English, and of people who grew up with other languages speaking English just as accurately as, if not better than, I do.
There’s also the fact that the key benefits you get from hiring a “native” speaker over a proficient “non-native” one largely come down to the use of idioms and cultural references. These skills have little use to the vast majority of English speakers, who themselves are “non-native” (which raises the question of who really “owns” the language), and can in some cases even impede communication.
Thirdly, there’s the issue that speaking perfect English is not a guarantee of perfect communication. The use of technical jargon, obscure words, or overly-complex sentence structures can make a faultless sentence difficult to understand for even proficient English speakers.
In short, the measure should be how successful at communicating in English you are, not where you were born.
Framing things as if “native” speakers are always superior to “non-native” speakers is divisive, creating all kinds of unpleasant and unnecessary inequalities. In English teaching, where this issue has been discussed for a while, it means that teachers from Anglophone countries get jobs when more capable local teachers might not.
In creative industries (particularly in poetry and writing), non-native speakers who play with language are sometimes assumed to have made mistakes when a native English speaker would be celebrated for their creativity.
And in business - especially when writing or speaking in English to an international audience, people from Anglophone countries get prioritised in communication roles over locals who might be more familiar with (and therefore more effective at reaching) local audiences.
I don’t want to perpetuate these inequalities, so instead of describing myself as a “native speaker” I changed the wording to “my first language is English”.
This is an imperfect solution - it still contributes to the myth that people whose first language is English will always be better communicators than those who’ve learnt it as a second language. But I fear that the alternative - writing something like “I am an excellent English speaker” - could (in combination with my non-Anglophone family name), lead people to believe that my English is worse than it actually is.
So “first language” feels like the least worst solution - at least until such a time when the idea that growing up somewhere makes you naturally better than other people disappears.
If you can think of a better approach, then I’d love to hear it!
My Inktober plots are still going strong. I’m spending an hour or so each day on them, but I think it’s worth it for the great practice I’m getting at coding generative systems. I feel substantially more fluent in Javascript than I did a month ago, let alone six months ago.
Two weeks of daily sketches has also given me the opportunity to try out a bunch of things I’ve never tried before, and come up with creative interpretations of the prompts.
A third benefit of doing this is that it’s helping to tamp down my perfectionist streak. Not wanting the sketch to take up too much time pushes me towards accepting simpler ideas that work, rather than diving down rabbit holes of unnecessary complexity.
You can check out all the sketches in this blog post, which is updated daily. It includes the code for each sketch, as well as little SVG generators that you can use to make your own versions.
The CSS build on my website continues. CSS stands for “cascading style sheets”, and it’s the bit where you tell the browser how the site should look - layout, fonts, colour, etc.
It’s also the bit I was most apprehensive about because my CSS skills are rather rudimentary. But it’s actually going quite well. I’ve been able to get my custom fonts loaded, the design tokens set up, and the spacing looking pretty good.
Big things left to do are the layouts of the fiddly bits like my portfolio images (which will sit in a grid), the testimonials (which will show as cards), and the “hero image” (as web designers call it) at the top with my face in it. I think I’ll be able to get them sorted, but I don’t know for sure until I try. Then it’ll just be fiddling with final annoyances like spacing and making sure everything looks good on as many screen sizes as possible.
I appreciate this all sounds a bit academic, given you can’t see the thing, but hopefully I’ll have something to share in the next couple of weeks.
Yesterday, I did my longest walk ever. A smidge under 35km, which will probably sound like a lot to some of you and possibly not that much to others. It sounds like a lot to me.
We took an 8am bus (masked) to Angered, one of Gothenburg’s outermost suburbs, and from there walked into Vättlefjäll - a beautiful nature reserve, full of big and small lakes, to the north of the city. I’ve not been there for several years, and never in the autumn, but the foliage was beautiful and the trails were pretty quiet. We walked around until about 1pm.
Then Silfa and Laika got on a bus and I walked home. The journey there by bus was 40 minutes, but it was about 4 hours to walk home. The start was almost as leafy as the nature reserve - along the Lärejeå river. After a steep climb up to Kortedala (the same Kortedala that Jens Lekman’s best album is named after), I came through into Kviberg and walked through Bellevue, and the old industrial areas of Gamlestaden, and Ringön. I arrived home about 6pm, with sore legs.
Today, though, my legs aren’t feeling too bad. It feels like I might be ready for some multi-day hikes. Though perhaps at a slightly slower pace than yesterday’s walk…
Finally, I’ll leave you with Johnny Webber’s Life Assessment Checklist which might help you figure out whether you’re taking good care of yourself or not.
It gave me a nudge that I need to be a better listener, that I need to be less praise-seeking on social media, that I should stretch more, and that should find more ways to surround myself with beautiful things.
How about you?