SQLite's strict tables enforce rigid typing, preventing type mismatches like inserting text into integer columns and rejecting bogus column types. Flexible typing is still available via the ANY type. Downsides include inability to alter existing tables to strict, requirement for SQLite 3.37.0+, and slight theoretical overhead.
#programming
30 items
The author argues that AI agents can be understood through the programming concept of monads, specifically the "do-notation" style of composition. They explore how monads provide a structured way to model agent behavior and state management, drawing parallels between functional programming patterns and agent architectures.
Vibe coding—relying on AI to generate code without understanding it—is analogous to a system design interview, where the key skill is evaluating trade-offs and guiding the AI toward correct solutions rather than writing code from scratch. The article argues that this approach shifts the developer's role from implementation to architecture and oversight, making it a valid modern engineering skill.
SharpSkill is a platform that allows users to test and practice their IT and coding skills. The service supports 15 different spoken languages to make skill assessment accessible to a broader audience.
The article argues that building your own tools is the most effective method for learning to code, as it forces deep understanding over surface-level knowledge. By creating tools for real problems, learners engage with fundamental principles rather than memorizing syntax or copying solutions. This approach transforms coding from passive consumption into active, principled creation.
Dangling pointers arise when an object is deleted or deallocated but a pointer still references that memory location, leading to undefined behavior, crashes, or security vulnerabilities. The article explains causes, consequences, and common prevention methods like setting pointers to NULL after deallocation.
The article argues that learning new skills, especially technical ones, is intrinsically valuable and should not be dismissed as a waste of time even if they are not immediately useful or marketable. The author encourages readers to pursue learning for personal growth and curiosity, rather than only for productivity or career advancement.
The article argues that the traditional "hacker mindset"—focused on technical ingenuity and disruptive innovation—is insufficient for solving complex societal problems. It advocates for a broader, more interdisciplinary approach that combines technical skills with humanistic values, collaboration, and long-term thinking to create meaningful impact beyond just building products.
This book distills insights from over 1,000 technical interviews into a practical guide for C++ job seekers. It covers common interview topics, problem-solving strategies, and the patterns observed across real-world coding assessments, aiming to help engineers prepare effectively for C++ roles.
TRF Lives
1.0Damian Conway announces that the Text::RewritableFont (TRF) module for Perl, previously thought abandoned, is now maintained again. The module allows generating scalable fonts from simple text definitions, and Conway details updates and improvements made to revive it.
Postel's Law ("be conservative in what you send, be liberal in what you accept") is examined in the context of Python type annotations. Being liberal in accepted types can cause subtle bugs since Python ignores type hints at runtime. The post argues that for type annotations, being stricter in what you accept creates more robust code.
Steve Losh shares his personal journey and practical advice for learning Common Lisp in 2018, covering recommended resources, tools like Quicklisp and Slime, and common pitfalls. He emphasizes the language's stability, interactive development experience, and unique features like macros and conditions, while offering a structured path for programmers new to the language.
Cory Doctorow argues that understanding computers at multiple abstraction levels—from cardboard CARDiac to BASIC code to modern "vibe coding"—builds "legibility" and Fingerspitzengefühl essential for problem-solving, and that automated code tools serve as a funnel for cultivating deeper technical skills.
Joel Spolsky's "Law of Leaky Abstractions" states that all non-trivial abstractions are imperfect, leaking details of the underlying implementation. He argues developers must understand lower-level systems behind high-level abstractions like TCP/IP, SQL, and memory management to handle real-world software complexity.
Naval argues that code is consumed by computers, which are forgiving, while writing is consumed by humans who need clarity and personal touch. Because of this difference, he recommends writing your own material rather than outsourcing it, as writing reflects your unique thinking and voice.
A 2019 post examines the famous StackOverflow answer where a regex question about Zalgo text was dismissed with "catastrophic backtracking." It argues that while technically correct, such snarky responses alienate learners and reflect deeper issues in how expert communities communicate with newcomers.
A developer created a systems language called Tig using AI-driven "vibe coding," but the project stalled after exhausting free tokens. Turning away from AI dependence, they successfully built a lexer for a calculator in raw C by using traditional resources like man pages and YouTube tutorials, concluding that learning to code independently, though slower and harder, is more rewarding.
The V programming language is a minimalist, fast, and safe language that compiles to small binaries with zero dependencies. It features automatic memory management without a garbage collector and aims to rival Go and Rust for systems programming.
A programmer built a text adventure engine in Python and used LLMs to generate game content and act as dungeon master. The AI produced creative narratives but struggled with consistent state and rule-following.
A developer named FractalFir created "crustc," a project that translates the entirety of Rust's compiler (rustc) from Rust source code into C code. The project uses a specialized transpiler to convert the Rust compiler's source into compilable C, aiming to make it accessible on platforms without Rust support.
In a July 2026 talk at the AI Engineer conference, Geoffrey Litt, a Design Engineer at Notion, argues that understanding code remains critically important even when using AI coding agents, presenting the idea that comprehension—not generation—has become the new bottleneck in software development.
The author reflects on his deep enjoyment of programming, describing coding as a creative and problem-solving activity that provides immediate feedback, constant learning, and a sense of accomplishment. He highlights the satisfaction of building something from nothing, debugging, and seeing a program work correctly as key reasons he loves the craft.
The GitHub repository introduces the Coordination Repository Pattern, a software architecture pattern for managing distributed coordination, and Pi-Env, a related tool or implementation environment for that pattern.
C# 15 introduces enhanced collection expressions with the new `with()` syntax, building on earlier features like spread elements and collection literals. This addition allows developers to create modified copies of collections more concisely and expressively, improving code readability and reducing verbosity when working with immutable or modified collection data.
A deep look at the 1986 game Silpheed, detailing its use of a mainframe ray-tracing system to generate pre-rendered 3D sprites and the engineering challenges of porting it from the PC-88 to the Sega CD.
Legmacs is an Emacs-like editor implemented in the let-go programming language, aiming to provide a lightweight and customizable editing experience inspired by Emacs.
The article advises developers to prioritize writing functional code over perfect code, arguing that starting with "ugly" code allows for faster iteration, learning, and eventual refinement rather than getting stuck trying to make code ideal from the outset.
The article highlights upcoming JavaScript features expected in ES2026, including pattern matching, the pipeline operator, and record/tuple data structures. These additions aim to improve code readability, enable more expressive data transformations, and introduce immutable data types. The post provides code examples and explains practical use cases for each feature.
This 2020 article provides a comprehensive overview of JavaScript features introduced in ES2015 (ES6) and later, covering key additions like let/const, arrow functions, template literals, destructuring, modules, classes, promises, async/await, and more, aimed at developers who haven't kept up with the language's rapid evolution over the past decade.
Joey Hess has implemented a policy for his open source projects that refuses to use or depend on any code generated by large language models (LLMs). He argues that LLM code introduces low-quality, hard-to-maintain contributions that degrade software, comparing it to a contaminant that should be kept out of the dependency chain to preserve code quality and developer accountability.