OHM
Ohm is a JavaScript library and domain-specific language that uses parsing expression grammars to build parsers, interpreters, compilers, and more.
Full-text search across article titles and summaries. Refine with sector, year, content type, and reading-time filters.
Ohm is a JavaScript library and domain-specific language that uses parsing expression grammars to build parsers, interpreters, compilers, and more.
Go 1.24 has been released. It features improved generics, performance enhancements (including a new map implementation), tool updates (including dependency tracking and a test analyzer), standard library additions (FIPS 140-3 compliance and new packages), and enhanced WebAssembly support.
A private AI computer runs LLMs locally. This article goes over the specs of one built in a more cost-effective way by buying secondhand high-end GPUs (Nvidia Tesla P40s) and repurposing an existing workstation, resulting in a system with 48GB of VRAM for approximately €1,700. The build required additional components due to compatibility issues and the need for a dummy GPU for BIOS compatibility.
Local-first software development prioritizes offline functionality and user data control. The developer of the open-source project Tinybase created a webpage about local first that quickly gained traction. It's now a full-fledged community, with hundreds of members actively developing and discussing local-first software.
Jujutsu is a Git-compatible version control system with features like automatic rebasing, conflict resolution, and a working-copy-as-a-commit model.
Hand-coding blogs in HTML is much more time-consuming than just using a static site generator.
A catalog, with commentary, on various papers about generating Static Single Assignment (SSA) form, a program representation used in compilers.
This developer spent a long weekend trying to improve a Python utility by creating a user-friendly, “easy” web app. He first started using Flask and then a JavaScript-only approach, but the latter was made difficult by CORS restrictions. This meant he needed to create a Node.js server and REST API, which added even more complexity. The final result was made by just reverting to using Python, leading to a functional, but slightly less user-friendly, single-file Bottle app with added styling.
CSS has some inconsistencies and perceived mistakes, such as how “z-index” doesn't work on all elements. These inconsistencies are from CSS's rapid changes since it was created, so backwards compatibility has been challenging.
Popular frontend rich text editors include Tiptap, BlockNote, Lexical, Slate, and Quill. Tiptap is recommended as the most well-rounded choice, as it's both easy to use and extensible. However, other editors have their own strengths and tradeoffs. For example, some editors support realtime collaboration via Yjs, while others support frameworks other than just React.
The team at Sentry discovered that true product-market fit is when customers become passionate advocates who effectively sell the product for them. Their ideal audience was early-stage, new tech teams who really needed their solutions, rather than a broader, less engaged market.
We are destroying software through a combination of neglecting complexity, over-reliance on external dependencies, prioritizing speed over design, and abandoning fundamental software engineering principles.
Sponsored
Join a 25-minute group demo of Sentry [9], covering agentless setup and all the important features:
JStack is a high-performance Next.js app stack designed for building fast, lightweight, and type-safe apps. It has a well-thought-out developer experience with automatic type safety, autocompletion, and easy deployment to platforms like Vercel and Cloudflare. It also supports serverless WebSockets and is compatible with any state manager.
Marksmith is a GitHub-style markdown editor for Rails apps. It supports Active Storage attachments and comes with a built-in markdown preview renderer.
Sam Altman believes that Artificial General Intelligence (AGI) will build upon previous technological advancements to improve human lives and potentially solve major global challenges like disease. AI model intelligence scales predictably with resources, the costs of AI are decreasing fast, and its socioeconomic value increases super-exponentially.
“Open source” is more than just a license. The spirit of open source is more about community involvement and transparency. Companies that use open source often don't follow the spirit of it because they often limit community input.
A series of lessons on LLMs and their benefits and risks.
VSCode's SSH remote editing feature installs a powerful agent with filesystem access and execution capabilities on remote servers, which is a security concern.
Organizations should prioritize investigating near-miss incidents as seriously as high-severity incidents to prevent future, potentially catastrophic failures.
Newly unsealed emails reveal Meta employees' concerns about the legality of using corporate laptops to torrent and seed over 81 terabytes of copyrighted data to train AI models.
The Single Responsibility Principle states that a class or component should have only one reason to change. By separating the layers of data fetching, business logic, and presentation into distinct components, code becomes more maintainable, testable, and flexible. When creating components, some tips to apply this principle are to extract reusable logic into custom hooks and use composition to build features from simple parts.
A developer migrated a large Scala 2.13 project to Scala 3, which was tough at first due to dropped features and lots of code changes. However, the migration was made easier by using IntelliJ's migration tools, using sbt source generators with Scalameta to replace lost macro annotation functionality, and finding workarounds for removed type projections.
Monarch Money uses pre-built iOS binaries to cut down on React Native build times from over 20 minutes to seconds. The process involves using a CI server to build and upload binaries, using a custom script to download and install them on the simulator, and then running the Metro bundler.
Despair-Driven Development (DDD) is an engineering approach that uses feelings of despair and burnout to be productive. This means reaching the "flow state" to escape the negativity. Scientific research supports the idea that flow state can alleviate depression and burnout.
AI tools struggle to generate useful responses in codebases with lots of tech debt, such as those with subtle control flow, long-range dependencies, and unexpected patterns. This means that developers should prioritize refactoring legacy code into modular, well-defined units to take full advantage of AI.
Dexie.js is an IndexedDB wrapper that makes database interactions simple, offers easy syncing, and integrates easily with frameworks like React and Angular.
SQLite Page Explorer is an application that allows users to visually explore SQLite databases page by page. It shows insights on data storage, indexes, and database efficiency.
This is a Python-based web scraping API that generates screenshots and website data. The API handles redirects and downloads while processing tasks in a queue with configurable memory limits. It uses API keys for auth and returns a multipart response containing website data, metadata, and up to five screenshots.
Due to severe hand pain, this developer learned to code using voice control software. She recommends a gradual approach using tools like Talon Voice and Cursorless alongside Apple's Voice Control. She started slowly by learning the Talon alphabet and progressed to more complex tasks over time.
There are four main methods for building reasoning models, which are LLMs that perform well on multi-step tasks. These methods are inference-time scaling (increasing computational resources during inference), pure reinforcement learning (RL), supervised fine-tuning (SFT) combined with RL, and knowledge distillation via SFT of smaller models. DeepSeek R1 models are a case study on the effectiveness of SFT+RL. Distillation is great for cost-effective model development.
Standardizing principles and practices for software memory safety is necessary to prevent widespread security vulnerabilities, which are growing in number.
AI will not eliminate programmers, but rather transform their roles, requiring them to adapt and develop new skills to properly use AI tools to their fullest potential.
Red teams (groups of ethical hackers) are useful to have in the development process for identifying potential issues like offensive imagery, website compatibility with ad blockers, and flawed sign-in forms.
The core principles of stateless architecture are independent requests, external state management, idempotency, decoupled components, and horizontal scalability. The advantages of it are better resilience and scalability, while the disadvantages include increased network overhead and having to deal with more complex state management.
Durable Objects Callbacks are a novel "static callback" pattern for Durable Objects in Cloudflare Workers. They solve the problem of long-running asynchronous operations needing human interaction by decoupling callbacks from their initiating functions. This allows Durable Objects to sleep and be awakened by events like alarms, webhooks, or emails.
Using `any` in TypeScript removes type safety and can lead to hidden errors, but people often use it anyway. It's a good practice to enable ESLint rules to avoid `any` from sneaking into a TypeScript codebase and use the unknown type as a safer alternative to it.
There are seven mental models - Inversion, Inertia, Second-Order Thinking, Entropy, Hanlon's Razor, Bottlenecks, and Activation Energy - that can help engineering managers make better decisions and avoid costly mistakes. This post explains each model along with real-world examples. For example, inversion means to invert a problem to look at it from the opposite perspective, such as thinking about what you don't want in an engineer when hiring.
After using Zig for a few months, this developer likes Zig's arbitrary-sized integers, type-level functions, and C interoperability. However, the downsides of using it include a lack of good memory safety guarantees and a lack of features like traits and destructors. While Zig improves upon C, it still has a ways to go to be production-ready.
It's quite challenging to convert PDFs into machine-readable text for RAG systems, but Google's Gemini Flash 2.0 is a cost-effective option. It achieves near-perfect accuracy in PDF-to-markdown conversion, outperforming other models in terms of pages processed per dollar. However, it struggles with accurately generating bounding boxes for text within the original PDF.
Sponsored
One year ago, the Jolt team was building an API load testing tool - but it wasn't getting traction. Then, they built Jolt, a popular AI coding assistant for 100K+ line codebases. Read the story [10] of how the Jolt team realized things weren't working, and how they successfully pivoted by aggressively investing in problem discovery.
Google DeepMind has announced the general availability of Gemini 2.0 Flash. It also released an experimental version of Gemini 2.0 Pro, its best model yet for coding and complex prompts, and a cost-efficient model, Gemini 2.0 Flash-Lite.
Emoji Picker is a composable React emoji picker component styled with Tailwind CSS. It offers features like virtualized lists for smooth scrolling, keyboard navigation, and customizable styling.
This developer spent five years developing a minimalist music composition web app. After many redesigns and optimizations, he finally launched it on Hacker News, which gained some traction and earned him his first dollar.
As AI learns to reason more and AI agents become more prevalent, these systems can now conduct in-depth research and solve deeper problems. For example, Google and OpenAI both have a Deep Research feature, which asynchronously grabs multiple sources, parses them, analyzes them, and outputs a report based on what the user requested.
AI is making it easier for people to create custom personalized software tailored to their specific needs rather than being forced to use one-size-fits-all apps from others.
A slide deck on the tradeoffs made when choosing React Query, such as it having a large bundle size.
A new DOM `moveBefore` primitive added to the latest version of Chrome (133) allows elements to be moved within a DOM tree without losing their state, preserving features like iframe content, focus, and active CSS transitions.