Smooth surfaces not optimal? 🤔 How does micro-roughness work?
Uncover the science behind micro-roughness and its surprising impact on drag reduction.
May 25, 2026
Turns out, everything we thought we knew about fundamental engineering, our own sleep, and even backend code might be wrong. From micro-roughness slashing drag to LLMs fumbling basic constraints, today's stories prove that even the most established 'rules' are just waiting to be overturned, often with a hefty price tag attached, especially in AI.
The Deep End
Micro-Roughness Technology Slashes Aerodynamic Drag by 43%
For 80 years, smooth surfaces were key to reducing drag. New research overturns this principle. Tohoku University found applying micro-roughness reduces drag by up to 43.6%. This could significantly cut fuel costs and carbon emissions for high-speed transport. Learn how a fundamental engineering rule was broken.

Engineers long believed smooth surfaces reduce aerodynamic drag. This principle guided aircraft and vehicle design for decades. Recent research from Tohoku University directly challenges this core assumption. They found that applying distributed micro-roughness (DMR) to surfaces dramatically lowers drag—up to 43.6%.
This finding is profound. DMR successfully delays the transition from laminar to turbulent airflow. It minimizes frictional drag, outperforming previous methods like shark-skin technologies. The breakthrough utilized a magnetic support balance system, allowing precise measurements without airflow interference.
Key Takeaways:
- Smooth surfaces are not always optimal for drag reduction.
- Distributed micro-roughness (DMR) can cut aerodynamic drag by nearly 44%.
- Implement DMR on high-speed transport for major energy savings.
The Periphery
Why Blankets Remain Essential Even On Hot Nights
Humans desire sleep coverings across all climates, even sweltering ones. This isn't just habit. Physiological and behavioral mechanisms drive this universal need, making blankets vital. Learn why your body cools in two distinct stages before sleep, and how REM sleep impacts temperature regulation. Discover the surprising link between weighted blankets and serotonin production.
Sleeping with blankets appears universal. Humans seek covering regardless of climate, from New York City to Papua New Guinea. This behavior spans cultures and historical periods. Only nomadic foragers in hot climates rarely use bed coverings. Physiology and conditioning drive this desire. Your core body temperature drops before sleep, promoting drowsiness. During REM sleep, thermoregulation becomes reptilian; your body cannot adjust its own temperature. Blankets provide external heat regulation for these periods, and weighted blankets boost serotonin.
Key Takeaways:
- Humans universally desire sleep coverings, not just in cold climates.
- Physiological changes during sleep necessitate external temperature regulation.
- Use light coverings on hot nights to manage body temperature fluctuations.
Rust vs. Go: Why Type Safety Trumps Runtime Speed for Backend Reliability
Moving backend services from Go to Rust improves reliability. This shift leverages stricter compile-time checks, eliminating entire classes of runtime errors. Learn how Rust's borrow checker prevents common Go panics, ensures data race safety, and offers zero-cost generics. Understand the tradeoffs for your team before migrating Go microservices. The article outlines an incremental path to adopting Rust for your most critical components.
Go developers often migrate to Rust for increased safety and control. Rust's compiler enforces correctness at compile time, unlike Go's runtime checks. This means fewer production panics due to nil pointers or data races. The Option<T> type in Rust, for instance, forces developers to handle the absence of a value explicitly. This eliminates a major source of Go runtime crashes.
Key Takeaways:
- Rust's type system prevents entire classes of runtime errors common in Go.
- Compile-time checks in Rust eliminate
nilpanics and data races that plague Go. - Evaluate Rust for new backend services requiring high correctness and predictable latency.
Streamline Git Commits: Jujutsu for Cleaner Code History
Developers face 'Git rigour fatigue' when managing complex features. Traditional methods lead to messy commit histories. Jujutsu offers new tools to simplify this process. One novel technique allows developers to postpone rigorous commit structuring. This approach ensures pristine Git history without constant, exhausting real-time effort. Learn how this method saves development time and reduces merge conflicts.
Jujutsu (jj) provides concrete tools for advanced Git workflow management. Developers often struggle with meticulous commit hygiene during feature development. This struggle results in “fatigue.” Jujutsu's jj absorb and jj squash commands help. However, they can still introduce complexities or merge conflicts. A new technique lets you build the ideal commit history first.
Key Takeaways:
- Complex feature development causes 'Git rigour fatigue' in developers.
- Jujutsu offers tools to manage commits, but they have limitations.
- Utilize a 'clean history first' workflow to eliminate commit conflicts.
LLMs Struggle with Backend Code Constraints; Performance Drops 30%
Large Language Models are failing to build production-grade backend code. A new study reveals “constraint decay,” showing LLM agent performance drops by 30 points on assertion pass rates when facing structural requirements. They struggle with frameworks like FastAPI and Django. This analysis details why functional code alone is insufficient and highlights critical challenges for AI code generation.
LLM agents generate functional code. However, they struggle with structural constraints crucial for backend systems. A recent study shows a significant performance decline. Agents lost 30 assertion pass rate points when structural requirements accumulated. Some even approached zero correctness.
Key Takeaways:
- LLM agent performance declines significantly when structural coding constraints increase.
- Complex web frameworks like Django expose major weaknesses in LLM code generation.
- Prioritize data consistency checks when deploying LLM-generated backend code.
The Firehose
More to Explore
The Unintended Consequence
Jira's Automation Engine Proves Turing-Complete, Not Just a Project Tracker
Discover how Atlassian's Jira, often seen as a simple project tracker, is actually Turing-complete. This analysis details a Minsky machine implementation using Jira's automation rules and issue types. Learn how complex workflow automations are literally programs, impacting operational integrity and resource allocation. Understand the implications for system architects and project managers.

Jira is Turing-complete. Engineering folklore suggested this for years. A new proof now confirms it.
Researchers built a Minsky machine within Jira automation. They mapped registers to issue counts, program counter to Epic status. Automation rules handle instruction dispatch and state changes. This shows Jira's workflow engine can compute anything a universal computer can. Project managers must understand this new reality. Excessive automation creates complex, unpredictable systems. Treat Jira automations as code; they need testing and refactoring. Uncontrolled automation can lead to unexpected behaviors and operational debt.
The Minsky machine used issue creation and deletion for increment and decrement operations. Conditional branching used JQL filters. This setup demonstrates basic computational primitives in Jira. The implications are significant for large organizations. Companies must govern their Jira automation. Avoid inadvertently building unmaintainable systems. This insight changes how teams should approach Jira configurations and extensions.
Key Takeaways:
- Jira's automation engine is Turing-complete; it can run any computer program.
- This proof uses Minsky machines mapped to Jira issues and automation rules.
- Govern Jira automation like code, with rigorous testing and version control.