Folktales are living records of culture, identity, and collective memory. In the fourth episode of our special six-part series on Vanishing Culture, host Vida Vojić speaks with writer and researcher Helen Nde, founder of Mythological Africans, and folklorist Laura Gibbs about the importance of preserving African folklore in the digital age. Together, they explore how stories help communities understand themselves, pass down knowledge across generations, and make sense of a changing world.
There's a cognitive trick our brains play whenever we face a hard question or a difficult decision: we quietly swap the hard thing for something easier to answer. It's called substitution, and we do it constantly — usually without noticing, and sometimes to our detriment. In today's episode, I make the case that you can take this same shortcut your brain already runs automatically and start using it intentionally to break decision paralysis and get moving.
The Substitution Heuristic: Understand the mental move at the heart of this episode — when "How are you?" becomes "Is there anything I urgently need to say?", your brain isn't being lazy, it's compressing. It runs a quick calculation: what's the downside of the substitute? Usually it's low, so the shortcut holds.
Code Review as Substitution: See why you almost never review a big PR line by line. "Was it tested? Does it follow our best practices? Does anything look obviously wrong?" are all stand-ins for the harder, mostly-unnecessary work of reading every line — and most of the time, they're enough.
Performance Reviews Are a Best Guess: Recognize that your rubrics, metrics, and frameworks are themselves substitutes. You can't deterministically rate a person on a scale, so every measure you use is an approximation of an immeasurable question: how much value is this person really generating, and where are they headed?
Turn the Trick Around on Purpose: Learn how to use substitution deliberately to defeat paralysis. Instead of "I'm deciding to leave my job and chase something new," substitute "I'm going to send an email." The weight of sending an email is tiny — and the dream job is just a series of small, iterative steps like that one.
Unbundle Your Big Decisions: Notice how we fuse trivial mechanical actions with heavy imagined meaning. Merging a branch isn't "declaring this production-ready and putting my name on the line" — it's moving bits into the cloud. Separate the labeling from the action and the action gets a lot less intimidating.
Lower Your Commitment Threshold: Swap "this code is great" for "I believe this code is shippable." Swap "this is the perfect hire" for "this is a good bet we can course-correct." The actions you take are identical — but the internal stakes, and the fear, drop dramatically.
Favor Reversible Moves: We consistently overestimate the risk of acting and underestimate the risk of doing nothing. Most decisions aren't permanent — you can roll back the deploy, divert from a bad hire, find an exit path. Look for the way back, and the decision gets easier to make.
Episode Homework
Next time you feel a big decision looming, break it into its most fundamental pieces. Ask: what am I actually doing here? What are the physical actions, the words, the mechanical steps? What's the true worst-case downside — and do I really have to attach all of my worth to it? You're likely already substituting easier questions without realizing it. This week, try doing it on purpose.
📮 Ask a Question
If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.
If you want to be a part of a supportive community of engineers (non-engineers welcome!) working to improve their lives and careers, join us on the Developer Tea Discord community today!
🗞️ Subscribe to The Tea Break
We are developing a brand new newsletter called The Tea Break! You can be the first in line to receive it by entering your email directly over at developertea.com.
🧡 Leave a Review
If you're enjoying the show and want to support the content head over to iTunes and leave a review!
Bringing new software or SaaS into your organization is a security risk - how do you assess it? Richard chats with Jessie Schofer about her experiences in HR software acquisition, which led to the creation of secureless.ai. Jessie tells the story of evaluating various SaaS and other software products and realizing that, while the website says they are compliant with GDPR and/or SOC 2, are they really? This leads to a conversation about the product procurement process and about actually understanding the security risk you take on every time a new product is added to your organization. At what point does security block an acquisition? And after being acquired, how often do you reassess? Supply chain security hygiene starts at procurement - are you part of the evaluation?
Moonshot’s Kimi K3 is the strongest open-weight model yet, with benchmarks approaching Fable 5 and GPT-5.6. But early testing reveals major limitations in reliability, speed, and cost. NLW examines whether K3 lives up to the hype—and what it means for open models, AI safety, and the US-China race.
Regular readers will be familiar with the 7″ Raspberry Pi Touch Display 2, which refreshed our original Touch Display product with a slimmer form factor and higher-resolution panel. Since its 2024 launch, we’ve released a 5″ variant, bringing the same high resolution and easy setup to a smaller footprint that suits more compact end devices and deployments.
Today, we are excited to go one step further — and three inches bigger — with the new 10″ Raspberry Pi Touch Display 2, available to buy now at $80.
Sometimes bigger is better
Physical size is not the only upgrade. Our new 10″ display features a higher 1200×1920–pixel resolution, a more generous 85-degree viewing angle, and a touchscreen controller with support for ten-finger touch, up from five-finger touch in the 5″ and 7″ variants.
As with all our display products, the 10″ Raspberry Pi Touch Display 2 integrates seamlessly with the rest of the Raspberry Pi ecosystem. It is powered directly from the host Raspberry Pi, and comes with all the necessary cables, connectors, and mounting hardware. The capacitive touchscreen benefits from full driver support in Raspberry Pi OS straight out of the box, with no manual calibration required — just hook it up to your host Raspberry Pi 5 or Raspberry Pi Compute Module (any model, with a Raspberry Pi Compute Module IO Board or another suitable motherboard) and go.
The 10″ Touch Display 2 is not compatible with Raspberry Pi 4 or earlier models, or with the Raspberry Pi Zero series. While previously released Touch Displays use only two lanes of DSI data to communicate with the host Raspberry Pi — which works well with the older display connector on Raspberry Pi 1, 2, 3 and 4 — the higher resolution of the new 10″ variant requires four DSI lanes. This in turn requires our narrower, but higher-bandwidth, ribbon cable and the newer display connector found only on Raspberry Pi 5 and the Compute Module IO boards. For display options you can use with earlier Raspberry Pi computers, take a look at the 5″ and 7″ variants of Raspberry Pi Touch Display 2, or consider the Raspberry Pi Monitor.
From dashboards to desktops to ambitious builds
The 10″ Raspberry Pi Touch Display 2 is a perfect fit for a wide range of applications, including home automation dashboards, kiosks, robotics interfaces, digital signage, gaming systems, workshop or lab equipment control panels, and more. We have no doubt you’ll find uses for it beyond anything we could possibly imagine.
The 10″ Raspberry Pi Touch Display 2 is available to buy now from our worldwide network of Raspberry Pi Approved Resellers.
We are happy to announce that we have just released Cordova Android 15.1.0! This is one of Cordova's supported platforms for building Android applications.
Plugin developers that relied on the PermissionHelper class should migrate their plugins to use the permission APIs available through the CordovaInterface of the CordovaPlugin.
Before:
// Requesting a PermissionPermissionHelper.requestPermission(this,requestCode,Manifest.permission.READ_MEDIA_IMAGES);// Requesting a Collection of PermissionsPermissionHelper.requestPermissions(this,requestCode,newString[]{Manifest.permission.READ_MEDIA_IMAGES});// Checking if the App has a PermissionPermissionHelper.hasPermission(this,Manifest.permission.READ_MEDIA_IMAGES);
After:
// Requesting a Permissioncordova.requestPermission(this,requestCode,Manifest.permission.READ_MEDIA_IMAGES);// Requesting a Collection of Permissionscordova.requestPermissions(this,requestCode,newString[]{Manifest.permission.READ_MEDIA_IMAGES});// Checking if the App has a Permissioncordova.hasPermission(Manifest.permission.READ_MEDIA_IMAGES);
Calling of CordovaPlugin.onRequestPermissionsResult
Updated CordovaInterfaceImpl.onRequestPermissionsResult to call the new CordovaPlugin.onRequestPermissionsResult method in addition to the exisiting CordovaPlugin.onRequestPermissionResult.
Fixes
Keyboard Layout and Page Scrolling when Input Fields Receive Focus
Fixes a UI layout and scrolling bug, that was introduced in cordova-android@15.0.0, where focusing on an input field while the soft keyboard was open could cause the WebView to shift upwards, leaving an unrendered space at the bottom of the Activity, and prevent the page from scrolling. This update restores the expected layout and scrolling behavior when interacting with input fields.
Handle Permissions for getUserMedia
Fixes getUserMedia() permission handling to correctly check for and request the required native camera and microphone permissions before proceeding. This aligns the WebView permission flow with the native platform, improving compatibility and ensuring media requests behave as expected.
Back Button Handling After App Launch
Fixes an issue where the back button would not respond immediately after the app launched. Back button events are now handled consistently from startup, including on devices that support the Android back gesture, ensuring expected navigation behavior throughout the app.
Properly Handle CSS Color with Alpha
Fixes an issue where window.statusbar.setBackgroundColor() incorrectly interpreted 8-digit hexadecimal CSS color values, which could result in the wrong status bar color being applied.
Status Bar Appearance Styling for Edge-to-Edge
When Edge-to-Edge was enabled, apps could not adjust the status bar text and icon appearance, which could make them difficult to see against certain backgrounds.
This release exposes the exisiting window.statusbar.setBackgroundColor() JS API for Edge-to-Edge layouts. Although the API is used to set the status bar background color, it also determines the appropriate status bar text and icon appearance, allowing apps to maintain proper contrast. In Edge-to-Edge layouts, the background color itself is not applied as there is no status bar, but the calculated appearance is still applied.
Fix Status Bar Background Color Handling for Opaque White
Fixes an issue where the valid color #FFFFFFFF was incorrectly treated as an invalid status bar color, preventing fully opaque white from being applied. This restores support for all valid status bar background colors.
Changes include:
Features:
feat: call new method CordovaPlugin.onRequestPermissionsResult (#1855) [b66f0f33]