Rational Fools: A Critique Of The Behavioral Foundations Of Economic Theory Amartya K. Sen critiques traditional economic theory for assuming that people always act out of self-interest. He argues that this view neglects other motivations, such as moral commitments, which can influence economic behavior. Sen suggests that recognizing these factors could lead to more accurate economic models and a better understanding of human behavior.
LL and LR Parsing Demystified The text explains LL and LR parsing as different ways to process input tokens and output parse tree traversals. LL parsers use pre-order traversal, while LR parsers use post-order traversal, each with its own advantages in handling grammars and parsing context. Understanding LL vs LR parsing helps in choosing the right parsing strategy for different grammars and parsing requirements.
Modeling graphs in Rust using vector indices The author presents a method for modeling graphs in Rust using vector indices, which aligns well with Rust's ownership model and offers efficiency advantages. Each node and edge in the graph is represented by an index, allowing for straightforward addition and iteration through nodes. However, there are risks associated with managing indices, especially when removing elements, which may lead to dangling indices or memory leaks.
Exploring Computation Graphs in Rust Paul Kernfeld describes building computation graphs in Rust using indexed nodes, with examples for counting paths, evaluating values, and taking derivatives. He evolves an enum-based Node (Constant, Variable, Sum) into a trait-based design to separate responsibilities and allow runtime construction. The tradeoffs are slightly awkward push() syntax and many small structs.
Design duality and the expression problem When designing a type you can represent it as open data, as objects, or as a closed “abstract data type.”
Objects make it easy to add new operations; ADTs let the author control construction and change internals safely.
Languages that mix or force one view make some designs awkward, and true two-way extensibility is hard without whole-program reasoning.
How I learned to program The author shares their journey from being an electrical engineer to becoming a programmer, highlighting that programming initially felt unnatural to them. They emphasize that many successful programmers have non-traditional paths and that skills can be developed over time, regardless of early talent. Additionally, they stress the importance of learning how to solve complex problems and the benefits of collaboration in programming.
The State of Async Rust: Runtimes The article reviews the current state of async Rust runtimes and argues that executor coupling fragments the ecosystem. Tokio is the dominant but opinionated choice, pushing multithreaded defaults that add complexity and hurt ergonomics. The author advises using async only when needed, learn sync Rust first, and hopes for leaner runtimes like smol and embassy.
Political Reality Meets Economic Reality This memo discusses the conflict between political actions, like tariffs, and economic realities. While tariffs can benefit some companies, they may harm many others and can't resolve deeper economic issues. The author also warns about rising anti-capitalist sentiment and the simplistic economic solutions proposed by politicians.
Demystifying Determinism in Durable Execution Durable execution frameworks re-run functions from the top to recover, so the control flow must be deterministic. Side effects can be non-deterministic but must be idempotent or tolerate duplication. Separate control flow (decisions) from side effects (actions) and record any non-deterministic inputs used by control flow.
Why Strong Consistency? Eventual consistency in databases causes confusing errors and extra work for programmers and application builders. Strong consistency solves these problems by ensuring reads always reflect the latest writes, making code simpler and more reliable. Aurora DSQL uses a special system to give all reads strong consistency while still allowing the database to scale efficiently.
The Fun Of Programming The chapter introduces phantom types as a way to embed a programming language in Haskell. Phantom types are used to parameterize the Term data type so that it only contains terms of the appropriate type. This representation meets the typing requirement and allows for tag-free interpretation. The chapter also explores the usefulness and beauty of phantom types in generic functions, such as compression and comparison functions. The chapter concludes with an example of representing simply typed lambda terms using higher-order abstract syntax.
Implementing dependent types: how hard could it be? (Part 1) Dependent types let types depend on terms, so the typechecker must evaluate terms when comparing types. The post shows a normalization-by-evaluation approach: eval maps terms to semantic values and quote turns values back into beta- and eta-normal syntax using neutral terms. This normalization lets the checker decide definitional equality and so compare complex dependent types.
Implementing dependent types: how hard could it be? (Part 2) The post implements typechecking for a small dependent-type calculus using normalization and a normal/neutral term split. It fuses checking and evaluation via semantic (value-level) types and equality to avoid repeated syntax–semantics conversions. The semantic approach limits evaluation to necessary dependencies and simplifies the checker.
The Lost Generation The article argues that younger white men have lost access to many prestigious jobs as institutions prioritize diversity. This shift shows up across media, academia, tech, and medicine. Many affected men feel shut out and struggle to find other paths.
I've been writing ring buffers wrong all these years The author explains common ring buffer implementations and their trade-offs. He shows a better approach: use two unmasked, wrapping indices and mask only on access to reclaim the wasted slot. This method is simpler and uses full capacity but requires unsigned wraparound and power-of-two sizes.
More databases should be single-threaded The author argues databases should use many single-threaded shards instead of multi-threaded shards. This avoids complex locking, races, and transaction headaches and makes scaling easier. With good tooling, sharded single-writer shards give simpler correctness and horizontal scalability.
Capital in the 22nd Century If capital can replace labor, wealth will concentrate in the hands of those who are richest when that shift happens. Without strong global taxes on capital, inheritance and compounding returns could make inequality grow without bound. Historically capital often raised wages and lowered returns, but AI-driven automation could undo that self-correction.
Memory Safety Is … The author argues memory safety is a property of an implementation, not of a language or program. A memory-safe implementation cannot introduce new behaviors beyond the source semantics, except it may crash. Definitions that ignore the implementation or only list errors are misleading or vacuous.
2025 letter Dan Wang argues that Silicon Valley and the Chinese state are the two biggest forces shaping technology today. He says China’s industrial strength and rapid AI development are underestimated in the West. The US must learn from China’s playbook or risk losing key industries.
2025 letter The author reflects on how steady increases in compute have driven rapid AI progress and why that trend matters for the next decade.
He warns against naive long-term extrapolations while noting scaling laws and past surprises make big advances plausible.
He urges serious, practical thinking about AI’s societal impacts rather than hype or fatalism.
How a deliberate pandemic could crush societies and what to do about it Deliberate release of engineered or newly identified viruses could cause far deadlier pandemics than past outbreaks and might collapse societies by halting essential services. Publicly listing and characterizing such viruses and doing certain lab experiments increases the risk by making dangerous agents easier to recreate. To prevent this, we should delay risky research, detect exponential outbreaks early, and protect essential workers quickly with easy-to-use PPE and faster countermeasures.
AI Could Be the Railroad of the 21st Century. Brace Yourself. The railroads changed America’s economy, politics, and daily life in the 19th century, but they also caused financial crises and corruption. They grew into powerful, debt-heavy corporations that shaped the modern economy and led to government regulation. If AI has a similar impact today, it could bring both great change and serious challenges.
The Benefits of Bubbles Bubbles, like the AI bubble today, help fund many new ideas and build important tools for the future. They bring people and money together to create lasting change, even if some investments fail. History shows that bubbles can lead to big progress and new inventions over time.
The 2 Sigma Problem One-to-one tutoring improves student learning much more than conventional group teaching, often by two standard deviations. Methods like Mastery Learning and increased student participation can also boost achievement significantly. Researchers suggest continuing to explore and apply these effective teaching strategies to close the learning gap.
The Fastest Mutexes Cosmopolitan mutexes are much faster and use less CPU than other popular mutex implementations on Windows and Linux. They work well in highly contested situations by using a smart design based on nsync and futexes. This makes them a great choice for production workloads needing efficient thread synchronization.
Gears in understanding The concept of "Gears-ness" in models refers to how well they constrain expectations and explain behavior. A model with high Gears-ness can better predict outcomes and adapt to new information, making it more useful. Understanding and improving the Gears-ness of our models can enhance our knowledge and insights about both physical systems and personal relationships.
🫧 Is AI a bubble? The author explores whether AI is a financial bubble by comparing it to past tech booms and busts. He creates a framework with five gauges to track investment, revenue, valuation, and funding quality in AI. The goal is to help investors and executives understand if AI's rapid growth is sustainable or a risky bubble.
Porting a Segmented List From C to Rust The author ported a segmented list data structure from C to Rust to improve debugging and performance without relying on reallocations or copies. The Rust version uses a custom segmented bump allocator with mmap, dividing data into blocks for efficient growth and indexing. Benchmarks compare the Rust segmented list with Rust's standard Vec to evaluate speed and memory use.
The trimodal nature of software engineering salaries in the Netherlands and Europe Software engineering salaries in the Netherlands and Europe fall into three distinct groups with little overlap. Higher pay often comes from companies offering bonuses and equity, especially in fast-growing or public tech firms. Top salaries attract the best engineers but come with high competition and risk.
Parse, don't Validate and Type-Driven Design in Rust In Rust, it's better to encode data rules in types rather than just checking values at runtime. This means creating special types, like NonZeroF32, that guarantee certain properties before the program runs. Using types this way helps catch errors early and makes code clearer and safer.
Under the hood: Android 17’s lock-free MessageQueue Android 17’s MessageQueue was redesigned to remove locks and improve performance using a new data structure called DeliQueue. DeliQueue uses a lock-free stack and a single-threaded min-heap to handle messages efficiently without contention. This design reduces lock contention, speeding up message insertion and improving app responsiveness.
Build Systems à la Carte This paper presents a clear framework to understand and compare different build systems using Haskell code. It explains key design choices like task order and when to rebuild tasks. The authors model many real-world build systems and discuss how they handle dependencies and correctness.
How will OpenAI compete? OpenAI has strong technology but no unique product or clear way to keep users engaged. Big companies like Google and Meta are catching up and using their advantages to compete. The future of AI will depend on creating new experiences and platforms that attract many users and partners.
AI Won't Automatically Accelerate Clinical Trials AI can help design better drugs, but clinical trials will still take a long time due to biological and operational limits. Trials are needed not just to confirm drug safety but also to learn about diseases, which requires time and data from humans. To speed up drug development, we must improve trial processes and collect human data faster, not just rely on AI.
My mission to avoid breaking the Official Secrets Act The British intelligence agencies closely control what former spies can reveal in books, citing national security. They often demand removal of details, even if those facts are public or seem harmless. This secrecy sometimes protects the agencies' reputations more than the country's safety.
Handles are the better pointers The text discusses using 'index-handles' instead of raw or smart pointers for memory management in C and C++. It suggests centralizing memory management into systems, grouping items into arrays, and converting handles to pointers only when necessary. By following specific rules, such as not storing pointers and using handle-to-pointer conversion, memory safety and efficient memory usage can be maintained.
A Visual Guide to DNA Sequencing DNA sequencing has evolved from slow, complex methods to fast, automated technologies. Key techniques include Sanger sequencing, sequencing by synthesis, and single-molecule methods like PacBio and Nanopore. These advances have made DNA sequencing cheaper, quicker, and more accurate over time.
The Edge of Mathematics - The Atlantic Researchers have used AI tools like ChatGPT to solve some math problems, especially easier ones from the Erdős list. Mathematician Terence Tao says AI helps with tedious work and quick wins but lacks true creativity. He believes AI will soon work alongside humans, changing how math is done.
The Memo AI is improving very fast and can do many tasks that used to need humans, especially in coding and investing. It learns from past patterns but may not always understand or create truly new ideas. While AI can replace many jobs, its full impact on society and the economy is still uncertain.
I’m glad the Anthropic fight is happening now AI will soon be deeply built into all products and could enable widespread government surveillance. The government has strong power over AI companies, which risks misuse of AI for control and spying. While regulation is needed, it must be carefully designed to stop harmful uses without giving the government total control.
An oral history of Bank Python Bank Python is a proprietary, bank-specific fork of the Python ecosystem used at big investment banks. It centers on a global object database and custom tools (like Barbara and Dagger) that move Excel-style finance workflows into code. This monoculture isolates developers from mainstream Python and creates heavy, data-first systems tied to legacy finance practices.
Why you need a "WTF Notebook" The "WTF Notebook" technique involves keeping a journal where you note down things that seem odd or problematic in a new team without immediately addressing them. By observing, listening, and compiling a list of issues, you gain insights and avoid being perceived as overly critical. The process involves identifying simple solutions, discussing unresolved issues with the team, and gradually addressing more complex problems with empathy and collaboration. This method helps in establishing credibility, building a reputation as a problem solver, and effectively making positive changes within a team.
India Can’t Thrive Under Just a Banyan Tree India’s economy is held back by family-run conglomerates that grow wide but not deep, limiting real growth. The country faces a big challenge lifting a billion people out of poverty and creating enough jobs, especially for women. To succeed by 2047, India must change fast, urbanize more, and attract more foreign investment.
Willingness to look stupid is a genuine moat in creative work Looking stupid is important for creativity because good ideas often start as bad or silly ones. Fear of looking foolish can stop people from sharing their work and growing. Being willing to look stupid helps you try new things and eventually find great ideas.
Anthropic employees say they’ll give away billions. Where will it go? Anthropic employees plan to donate billions to effective altruism (EA) causes, especially AI safety nonprofits. This could greatly increase funding for groups aligned with their views but may raise concerns about bias and public trust. Donations might also support political efforts for AI safety laws and broader global health initiatives.
Is India the fourth- or fifth-biggest economy? It does not matter India is not yet the world’s fourth-largest economy; it still ranks fifth after a recent GDP revision. Politicians often boast about rankings, but many Indians see the country’s infrastructure and services lagging behind richer nations. What matters more is improving everyday life, like clean water and safe roads, rather than just economic size.
A Codebase by an Agent for an Agent The author used an AI agent named Amp to write and organize code, letting it decide names and structure freely. This approach helped Amp work faster and more efficiently than when the author interfered. The result is a codebase designed by the agent, optimized for the agent’s own understanding and use.
Boredom Is the Price We Pay for Meaning Becoming a parent filled the author with deep love but also with constant, exhausting boredom. He learned that boredom is a natural, important feeling that teaches us about life and ourselves. Instead of running from it, we should face boredom to find meaning and grow.
I want to become a Claude architect (full course). The course teaches how to build and manage Claude-based multi-agent systems for tasks like customer support and code generation. It covers key concepts such as agent orchestration, tool design, plan execution, structured data extraction, and review processes. The exam focuses on practical skills, avoiding common mistakes, and using clear, deterministic methods.
Rank and File A scholar spent decades taking neat notes and believed they were his life’s work. The author tried building a digital zettelkasten to become like him and found only chaos and useless busywork. Notes are a tool to help thinking, not a substitute for actually doing the work of thought.
China and the Future of Science China aims to become the world’s leading scientific power by 2026 through heavy investment and innovation. The government focuses on self-reliance in technology and education, producing many top scientists and engineers. This rapid rise in science could change the future of technology and global leadership.
Your Work Will Change You Whether You Like It Or Not Your work shapes who you become, often in ways you don’t notice. Choose a career and community that build the values and habits you want to grow. Remember, your job is just one part of a meaningful life.
An Incoherent Rust Rust enforces coherence and orphan rules to ensure trait implementations do not conflict or cause unsoundness across crates. Introducing incoherent traits and explicit trait impl naming allows overlapping implementations while keeping type safety. This approach helps manage complex trait bounds and ecosystem compatibility without breaking Rust’s soundness guarantees.
Common Misconceptions about Compilers Compilers are complex tools that focus mainly on making programs run fast, but they do not always create the best or smallest code. Many common beliefs about compilers, like their ability to optimize for data locality or always speed up code, are not true for mainstream compilers like LLVM or GCC. While compilers are slower than some tools, they are still much faster than AI models, and features like separate compilation or interprocedural optimizations have practical limits.
“How to be a 10x engineer” – interview with a standout dev A standout engineer named Sam succeeds by breaking down tasks clearly and communicating well with stakeholders. They build strong relationships, learn from others, and focus on quality work beyond their expertise. Sam also understands office politics and uses referrals instead of typical job applications to advance their career.
I guess we’re doing Moon factories now SpaceX aims to build factories on the Moon to support space industry and make space development profitable. Space-based data centers and satellites like Starlink show how space businesses can generate big money by sending valuable information to Earth. NASA’s traditional programs are costly and slow, while SpaceX’s approach is faster, cheaper, and more focused on real results.
Situational overload and ambient overload Information overload comes in two forms: situational (finding a needle in a haystack) and ambient (a pile of needles). Filters and search tools mostly solve the situational problem. But better filters worsen ambient overload by pushing more interesting stuff at us, which makes us feel more overwhelmed.
“I Who Have Never Known Men” Is a Warning | The New Yorker “I Who Have Never Known Men” is a haunting novel about a girl trapped with women in a strange cage at the end of the world. The story shows their struggle for freedom, knowledge, and survival in a silent, changed world without men. It warns us that peaceful days can suddenly end and challenges us to think about what true freedom means.
A quick guide to GADTs and why you ain't gonna need them GADTs are a powerful but complex extension to regular data types that let you encode more precise type information. They help restrict and control types in your code, but using them can lead to tricky compiler errors and harder code. In many cases, like simple role types, you probably don’t need GADTs and simpler types work just fine.
Pi: The Minimal Agent Within OpenClaw Pi is a small and reliable coding agent that writes and runs code using just four tools. It lets users build and extend their own agents by writing code instead of downloading many extensions. This approach powers projects like OpenClaw and shows how software can build more software naturally.
What I learned building an opinionated and minimal coding agent The author built pi, a minimal, opinionated coding agent ecosystem (pi-ai, pi-agent-core, pi-tui, pi-coding-agent) that focuses on simple, controllable tooling and session formats. It supports multi-provider LLMs, tool execution, session management, cost/token tracking, and a lightweight terminal UI. The goal is a practical, transparent agent workflow that lets the user stay in control.
I'm All-In on Server-Side SQLite Ben Johnson argues SQLite can be the primary database for production apps if you add replication. Litestream copies SQLite's WAL to S3 or other servers for durability and read replicas. That makes apps simpler, faster, and easier to run at scale.
Ah, Peptides. Where to Begin? Peptides are short chains of amino acids, but the "wonder drug" peptides sold online are not well understood and can be risky. Many people inject these peptides hoping for benefits like muscle growth or anti-aging, but science lacks solid proof and safety data. Buying peptides from unregulated sources is dangerous because you can't be sure what's really in them or how they affect your body.
The Practical Guide to Superbabies Polygenic embryo screening lets parents choose embryos with lower genetic risks for diseases and traits like IQ. The success of this technology depends on how many embryos are available and how accurate the genetic tests are. New methods now allow testing of frozen embryos, making this option accessible to more families.
A real-world case of property-based verification The workbench simulates QUIC network traffic and needs strong guarantees that it works correctly. To ensure this, the team used property-based verification by logging network events and checking them with a simple verifier. This method caught bugs early and made testing easier and more reliable.
The Importance of Being Idle Paul Lafargue believed machines could free people from work and give them more leisure time. He argued that workers should fight for the right to be idle, not just shorter workdays. Lafargue imagined a future where people enjoy doing nothing, finding peace beyond constant labor.
Breaking news: The Prototype Fast Breeder Reactor at Kalpakkam achieves first criticality India’s Prototype Fast Breeder Reactor at Kalpakkam reached first criticality on April 6, 2026, marking a major step in its nuclear program. This reactor uses advanced technology to produce more fuel than it consumes, moving India toward energy independence. The success opens the way for more fast breeder reactors and growth in India’s nuclear capacity by 2047.
I Still Prefer MCP Over Skills The author prefers the Model Context Protocol (MCP) over Skills for connecting AI to services because MCP offers seamless, remote access without installing extra tools. Skills are useful for teaching knowledge but often require clunky command-line interfaces that limit usability. Combining MCP as a connector and Skills as a knowledge layer creates a smoother, more practical AI integration experience.
A tail-call interpreter in (nightly) Rust The author created a tail-call interpreter in Rust using the new nightly feature "become" to optimize function calls without adding to the stack. This approach lets the CPU state stay in registers and makes opcode dispatch faster, similar to hand-written assembly but easier to maintain. Benchmarks show this Rust implementation outperforms even the author's hand-coded assembly on an M1 MacBook.
Helium Is Hard to Replace Helium is rare on Earth and comes mostly from underground natural gas pockets. It has unique properties that make it hard to replace in industries like semiconductors, aerospace, and medical imaging. Recycling helium can greatly reduce its use, but most of it is still wasted.
Nowhere Is Safe Drones have made all surface targets, military and civilian, vulnerable to attack. Current air defenses are not enough, so the U.S. must protect key assets by moving them underground or out of sight. A new, fast, and affordable approach to building underground shelters and tunnels is needed to improve survival and defense.
‘Made in India’: A fine exposition of the personal and professional in creating pharma brand Lupin The book *Made in India* tells the story of Desh Bandhu Gupta, founder of Lupin, and his role in building India’s global pharmaceutical industry. It shows both his personal struggles and the company’s growth into a billion-dollar firm making important medicines like anti-TB drugs. The book also highlights the challenges and successes of Indian pharma, while noting the support from family and the government’s role.