GitHub Actions; Tiffin; Sonantic; Design Principles
GitHub Actions (GHA) is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate, well, anything! Traditionally, CI/CD is used as a build, test, and deployment pipeline in software development circles. This is not the only way you can use CI/CD services.
One way I and many others use GHA is for collecting, processing, and archiving content from the internet. What triggered (heh) this post was a recent entry into this subset of GHA’s, Maddison Hellstrom’s GHA for keeping a history of changes to Apple’s “autofill allowed domains”. (Apple has a few of these types of JSON lists).
Some of the most elegant examples of GHAs are from Simon Willison’s Datasette, an open source multi-tool for exploring and publishing data (I highly suggest going down the rabbit hole of Simon’s various Datasette projects in his GH repo) .
Cooking is a creative, therapeutic, process that I take part in, with great joy, on an almost daily basis. It helps me wind down from the day’s labor and gives me some focused meditation time (if it’s been “a day”) and is a great chance to catch up on podcasts or have a convo with the fam.
I am always on the hunt for new recipes and Tiffin was an especially delightful recent find. It is an online space:
“dedicated to celebrating food, the people who make it, and the places it comes from. We regularly feature essays, interviews, recipes, travel stories, and more that help situate Indian cuisine within a broader culinary and cultural context. We’re named for the light midday meal popular throughout India and for the ubiquitous, much-loved, lunchboxes that are used to carry those meals to schools and workplaces around the country.”
Unlike most recipe sites it is not crammed with adverts, and gets straight to the cooking in each post. I’ve made more than a few of their dishes and they’ve all been quite nom.
I’m still debating whether to include non-free resources in this newsletter (help me decide by dropping a reply!), but I feel quite compelled to share my discovery of Sonantic (via The Verge), an AI voice platform that “enables entertainment professionals to create compelling, nuanced, and stunningly realistic voice performances.”
It is unlikely this will be a tool/service that will find common use (though it does have a Python API) in the short term, so that’s not why I’m linking to it. Before I reveal that, you should listen to Sonantic’s “flirting” example (via Sonantic’s YouTube channel):
(The Verge’s post has even more audio examples.)
We live in a time where intelligently trained algorithms create art, faces, videos, and even long-form content, so it is fairly unsurprising we have algorithmic human speech generation. There are plenty of fear mongers out there who focus only on the perils of these technologies, but — as with virtually everything we humans get our hands on — in the end they’re just tools which can be applied for good or nefarious purposes. It is important we know they exist, how we might intuit they are AI-generated, and work hard to “consume but verify” when we are engaging with any content.
Keep an eye out here for a future post where I’ll be linking to something my colleague Erick Galinkin will be publishing that covers this topic in far more depth.
Design principles are rules that help guide individuals and teams when making important decisions throughout a project lifecycle. They can be high-level/universal, or specific to a particular project or work product. At their heart, these principles present an agreed upon truth; they’re guideposts that keep you or your team on a common path during planning and execution and should be specific, nuanced, and actionable. They are a pretty hot topic in user experience (UX) circles, but they are something all of us can use in everyday life.
“[in this book] I lay out the fundamental principles required to eliminate problems, to turn our everyday stuff into enjoyable products that provide pleasure and satisfaction. The combination of good observation skills and good design principles is a powerful tool, one that everyone can use, even people who are not professional designers. Why? Because we are all designers in the sense that all of us deliberately design our lives, our rooms, and the way we do things. We can also design workarounds, ways of overcom- ing the flaws of existing devices. So, one purpose of this book is to give back your control over the products in your life: to know how to select usable and understandable ones, to know how to fix those that aren’t so usable or understandable.”
Norman works the reader through six core principles:
Visibility —The more visible functions are, the more likely users will be able to know what to do next. In contrast, when functions are out of sight, it makes them more difficult to find and know how to use.
Feedback — Feedback is about sending back information about what action has been done and what has been accomplished, allowing the person to continue with the activity. Various kinds of feedback are available for interaction design-audio, tactile, verbal, and combinations of these.
Constraints — The design concept of constraining refers to determining ways of restricting the kind of user interaction that can take place at a given moment. There are various ways this can be achieved.
Mapping — This refers to the relationship between controls and their effects in the world. Nearly all artifacts need some kind of mapping between controls and effects, whether it is a flashlight, car, power plant, or cockpit. An example of a good mapping between control and effect is the up and down arrows used to represent the up and down movement of the cursor, respectively, on a computer keyboard.
Consistency — This refers to designing interfaces to have similar operations and use similar elements for achieving similar tasks. In particular, a consistent interface is one that follows rules, such as using the same operation to select all objects. For example, a consistent operation is using the same input action to highlight any graphical object at the interface, such as always clicking the left mouse button. Inconsistent interfaces, on the other hand, allow exceptions to a rule.
Affordance — A term used to refer to an attribute of an object that allows people to know how to use it. For example, a mouse button invites pushing (in so doing acting clicking) by the way it is physically constrained in its plastic shell. At a very simple level, to afford means to give a clue. When the affordances of a physical object are perceptually obvious it is easy to know how to interact with it.
Thankfully I did not have to type those in, as Norman’s design principles are part of a much larger collection at principles.design (GH), a open source collection of design principles and methods curated by Ben Brignell.
At the time of this post, there are just under 200 design principles on the site, in eight topics: Universal, Specific, People, Organisations, Software, Hardware, Infrastructure, and Language.
Each is a quick read (I suspect digesting them and making them part of your DNA will take just a tad longer) and are great resources for individuals and teams looking to level-up their work outcomes.
I used today’s post both to drop some fun resources on you, but also to show this isn’t just a “cyber” blog, and that readers can expect a focused array of topics to help spur creativity and productivity (or just give some pause to think).
If you do interact in the comments, the only rule is to be kind to one another.