Category: Development

magenta.nvim: A Tool-Use Focused LLM Plugin for Neovim

2025-01-24
magenta.nvim: A Tool-Use Focused LLM Plugin for Neovim

magenta.nvim is a powerful Neovim plugin leveraging LLMs to boost coding efficiency. It provides a chat window to interact with an AI coding assistant and tools for context population and inline edits. Unlike other plugins, magenta.nvim relies on the LLM to choose its context, utilizing various tools (listing directories, getting file contents, using LSP features, etc.) to accomplish tasks. Its clean architecture, extensive testing, and support for multiple providers like OpenAI and Anthropic make it highly extensible and robust.

Development

AI is Breeding a Generation of Illiterate Programmers

2025-01-24

A seasoned programmer, after a ChatGPT outage, discovered his coding skills had severely deteriorated due to over-reliance on AI. He no longer reads documentation, debugs effectively, or even examines error messages, instead directly copy-pasting AI-generated solutions. This has robbed him of the joy and ability to deeply understand code, diminishing his programming passion. He urges programmers to use AI moderately, practicing regular AI-free coding sessions to avoid becoming dependent on AI and losing the ability to solve problems independently. The article warns that while AI enhances efficiency, it can also lead to skill degradation; a balance must be maintained to stay competitive in the age of AI. Try a day without AI; the results might surprise you.

(nmn.gl)
Development developers

Goodbye Distributed Coordination: How Restate Simplifies Distributed Apps with a Single Log

2025-01-24
Goodbye Distributed Coordination: How Restate Simplifies Distributed Apps with a Single Log

Building resilient distributed applications remains a significant challenge. Developers often spend considerable time addressing failover strategies, retries, race conditions, and other complexities. This article introduces Restate, a novel approach that simplifies development by avoiding distributed coordination. The core idea is to treat all systems (message queues, databases, locking services, etc.) as a single log. Every operation is recorded in this log, and retries automatically read previous operation records, preventing inconsistencies and race conditions. Restate is an open-source project based on this principle, simplifying the development and maintenance of distributed applications and improving system reliability.

Development log

The Case for Fewer Dependencies in Rust

2025-01-24
The Case for Fewer Dependencies in Rust

Armin Ronacher, a renowned developer, laments the over-reliance on external crates in the Rust ecosystem in a recent blog post. He argues that excessive dependencies lead to constant updates, patches, and security audits, burdening developers and often introducing unnecessary code bloat. He advocates a "build it yourself" philosophy, encouraging developers to write their own code when appropriate instead of blindly relying on external libraries. He uses the `terminal_size` crate as an example, illustrating how a simple function depends on multiple crates and has undergone numerous updates, highlighting the drawbacks of over-dependency. The post calls for a shift in the Rust community's perspective, prioritizing fewer dependencies and celebrating developers who create low-dependency libraries.

Development

Docker Hub's Trust Crisis: LinuxServer.io's Predicament

2025-01-24
Docker Hub's Trust Crisis: LinuxServer.io's Predicament

LinuxServer.io, a prominent Docker image provider, has long relied on Docker Hub as its primary registry. However, a series of policy changes by Docker Hub in recent years, including limitations on free users and a disastrous DSOS renewal process, resulted in LinuxServer.io losing its DSOS membership, facing the risk of image purging and pull limits. Despite attempts to contact Docker for assistance, they received no response. This forces LinuxServer.io to re-evaluate its image distribution strategy, potentially reducing reliance on Docker Hub, impacting many users who depend on it.

Development

Oracle Linux: The Unexpected Best Local VM for MacBooks

2025-01-24

The author needed a local Linux environment for Kubernetes development on their MacBook. After struggling with Docker Desktop's high power consumption and sleep issues, they discovered an unexpected solution: Oracle Linux. Oracle Linux, a downstream of Red Hat Enterprise Linux, offers an easy-to-use UTM template. The author details setting up k3s and cert-manager, highlighting Oracle Linux's surprisingly low power consumption in UTM, solving the problems encountered with Docker Desktop. This makes it a superior choice for local development.

Development

Nix@NGI: Streamlining Open Source Software

2025-01-24
Nix@NGI: Streamlining Open Source Software

The Nix@NGI team is on a mission to make running open-source software easier, both now and in the long term. Partnering with the NGI Zero consortium, they aim to integrate over 1200 NLnet-funded projects into the Nix ecosystem. The team boasts a diverse skillset, encompassing management, operations, development, and maintenance, and actively welcomes volunteers and trainees. Their work benefits NixOS contributors and enhances open-source accessibility. Future plans include improving tools, processes, and user experience, further propelling open-source software development.

Development

Trae: Ship Faster with AI-Powered IDE

2025-01-24

Trae is an adaptive AI IDE that revolutionizes your workflow, collaborating with you to accelerate development. It helps you ship products faster and boosts overall efficiency.

Development

TB Tilde: A Disruptive LLVM Alternative?

2025-01-24

Yasser's TB Tilde aims to replace LLVM, boasting superior compile speed and a smaller footprint. Early tests show its preprocessor is twice as fast as Clang's. TB Tilde uses a 'Sea of Nodes' IR, features a simple type system and thread-safe modules, supports JIT and AOT compilation, and even directly outputs linked executables. The project is actively under development, targeting March 2024 for Cuik compiler self-hosting on Windows, with optimizer improvements to follow.

Development

Conquering Dumb LLM Search Judges with Classic ML

2025-01-24
Conquering Dumb LLM Search Judges with Classic ML

The author explores using a local LLM as a search relevance judge, a cost-effective alternative to OpenAI. Individual LLM judgments are unreliable, so the article proposes combining multiple LLMs' assessments of various product attributes (name, classification, description, etc.) using traditional machine learning (e.g., decision trees) to improve accuracy. Experiments show this approach can predict human preferences and reveal the logic behind human labels, aiding search engine optimization.

Development

Building Bolt: My Journey to a Production-Ready Compiler

2025-01-24
Building Bolt: My Journey to a Production-Ready Compiler

This post, the first in a series, details the author's experience building Bolt, a Java-style concurrent object-oriented programming language. It outlines the motivation behind creating a compiler, explaining the process using the analogy of a telegraph operator translating speech into Morse code. The author covers key compiler stages like lexing, parsing, type checking, and code generation, highlighting Bolt's advanced features such as objects, classes, inheritance, method overriding, concurrency, and generics. The article discusses static vs. dynamic typing and the role of LLVM, explaining how Bolt compiles to LLVM IR for optimization and machine code generation. Unique to Bolt is its double type-checking phase ensuring concurrent safety. The series promises a practical tutorial on building a compiler beyond toy languages.

Development

Full-Text Search Engine in 150 Lines of Python

2025-01-24

This article demonstrates building a functional full-text search engine using less than 150 lines of Python code. It starts by downloading English Wikipedia abstracts, then uses an inverted index and TF-IDF (Term Frequency-Inverse Document Frequency) for indexing and ranking. The process covers data preparation, tokenization, filtering, index construction, and search functionality, explaining each step's principles. The result is a surprisingly fast search engine capable of searching and ranking millions of documents, showcasing the core mechanics of full-text search in a concise manner.

Development

Vim's Rebirth After the Passing of its Founder

2025-01-24

The death of Bram Moolenaar, Vim's creator, shook the community. However, the project continues under the stewardship of Christian Brabandt. The team tackled website modernization, security updates, and new feature development, including XDG directory support and Wayland support. While controversies, such as Tree-sitter integration, exist, the Vim community remains active and dedicated to the project's future.

Development

Supercharging Vector Search with ColBERT Reranking in PostgreSQL

2025-01-24
Supercharging Vector Search with ColBERT Reranking in PostgreSQL

Traditional vector search relies on sentence embeddings, potentially losing fine-grained details. ColBERT overcomes this by representing text as token-level multi-vectors, retaining nuanced information and improving accuracy. However, token-level interaction is computationally expensive. This blog post demonstrates combining sentence-level vector search with ColBERT token-level reranking using the PostgreSQL extensions VectorChord and pgvector. This approach performs a fast initial search using sentence embeddings, followed by reranking with ColBERT for improved results. Significant improvements were observed on several BEIR datasets.

Development vector search

Arch Linux Minimalist Setup: Get Up and Running Fast

2025-01-24

This guide provides a series of concise, actionable tutorials to help new Arch Linux users quickly set up a functional work environment. Instead of replicating the extensive ArchWiki, it focuses on a minimalistic i3 window manager setup, guiding users through essential tasks such as internet connectivity, display configuration, USB usage, and copy-pasting. It also covers multimedia controls, wallpaper settings, and other helpful tips, with feedback channels encouraging user participation in improvements.

Ignore the Hype: AI Won't Kill Software Development

2025-01-24
Ignore the Hype: AI Won't Kill Software Development

Many are claiming AI will replace software developers, but the author argues this is nonsense; the best days of software development are yet to come. AI tools boost developer productivity (Jevons Paradox), unlocking more projects, not fewer jobs. Even if AI handles some tasks, software development involves communication, design, and system architecture – all requiring human input. AI's computational cost and limitations also prevent complete human replacement. Ultimately, AI will accelerate technological progress, driving economic growth and creating more opportunities. Software developers should embrace AI, learn new tools and methods, and continuously upskill.

Development

Linux 6.14 Adds Support for Microsoft Copilot Key

2025-01-24

The Linux 6.14 kernel introduces support for the Microsoft Copilot key found on new laptops pre-loaded with Windows. This key, used to launch Microsoft's Copilot AI assistant or similar chatbot software, was previously unmapped in Linux. The update modifies the atkbd keyboard driver, mapping the F23 key to the Copilot shortcut (Meta+Shift+F23). Additionally, Linux 6.14 boasts enhanced game controller support and other input subsystem improvements.

Development Hardware Support

Saying Goodbye to bcachefs: One User's Reluctant Migration

2025-01-23

After a year of using bcachefs, Steinar Gunderson has migrated to XFS. His reason? A lack of confidence in bcachefs' future. While appreciating its compression and mixed SSD/HDD capabilities, he found the developer's uncompromising attitude, hostility towards distributions like Debian, and numerous unfixed bugs (including catastrophic data loss) unbearable. Reporting bugs proved a frustrating experience, with the developer prioritizing arguments with Debian over bug fixes. He ultimately chose the stability of XFS, sacrificing compression benefits, a trade-off he deems worthwhile.

Development

GitHub: Surface-Stable Fractal Dithering

2025-01-23
GitHub: Surface-Stable Fractal Dithering

Rune Skovbo Johansen invented a novel surface-stable fractal dithering technique. This allows dither patterns in 3D scenes to stick to surfaces while maintaining approximately constant dot size and spacing on screen, even as surfaces move. This GitHub repository provides a Unity example project, shader and texture source files, and details on dither properties and global options like radial compensation and quantized layers. The technique achieves this by dynamically adding or removing dots, and offers 3D textures of varying dot densities. Licensed under MPL-2.0, encouraging community contributions.

Development 3D Graphics Dithering

Polars vs Pandas: A Head-to-Head Comparison

2025-01-23
Polars vs Pandas: A Head-to-Head Comparison

This book provides a detailed comparison of the Polars and Pandas data manipulation libraries, arguing that Polars offers a more intuitive and efficient approach. Through numerous examples, it showcases Polars' advantages across indexing, method chaining, performance, data reshaping, time series, and scalability. Polars consistently outperforms Pandas in speed and readability. The book is aimed at readers with some experience in data manipulation, particularly those familiar with Pandas.

Development data manipulation

Say Goodbye to Hassle: Wake Up Your Devices with One Command – Introducing the 'wol' Tool

2025-01-23
Say Goodbye to Hassle: Wake Up Your Devices with One Command – Introducing the 'wol' Tool

'wol' is a powerful Wake-On-LAN (WOL) tool that lets you easily wake up your network devices via a command-line interface or web interface. It supports configuring multiple machines, providing a simple list view and one-click wake-up functionality. Whether you prefer CLI commands or a graphical interface, you can efficiently manage and wake up your computers or servers. Docker support is also included for easy deployment.

Development

Coding Without Bugs: A Viable Approach for Small Teams and Startups

2025-01-23
Coding Without Bugs: A Viable Approach for Small Teams and Startups

A senior engineer shares their experience of pursuing 'bug-free coding' at Telegram and various projects. While seemingly inefficient, they argue that this approach avoids massive maintenance costs and team burnout in the long run. The author uses personal anecdotes and project examples to demonstrate that focusing on code quality and maintainability alongside product velocity leads to efficient development and high-quality products.

Development Code Quality

Open-Source AI Video Starter Kit for Browser-Based Production

2025-01-23
Open-Source AI Video Starter Kit for Browser-Based Production

The open-source project video-starter-kit offers a browser-based toolkit for AI-powered video creation. Built with Next.js, Remotion, and fal.ai, it integrates AI models like Minimax, Hunyuan, and LTX, enabling browser-native video processing, multi-clip composition, audio track integration, voiceover support, and extended video duration handling. Developers can leverage ready-to-use UI components and TypeScript support for rapid AI video application development.

Development AI video

llama.vim: A Vim Plugin for LLM-Powered Code Completion

2025-01-23
llama.vim: A Vim Plugin for LLM-Powered Code Completion

llama.vim is a powerful Vim plugin offering intelligent code and text completion using a locally running LLM. It supports various LLMs and boasts efficient performance even on low-end hardware thanks to smart context management. Easy to install and configure, the plugin offers customizable completion options, significantly boosting coding productivity.

TMSU: A Tag-Based Virtual Filesystem for Escaping the Hierarchical Filesystem Nightmare

2025-01-23

TMSU is a tool for tagging your files, offering a simple command-line interface for applying tags and a virtual filesystem providing a tag-based view of your files from any program. It doesn't modify your files; instead, it maintains its own database and mounts a tag-based view. You can tag files, query them using logical operators (and, or, not), and mount a virtual filesystem for access from other applications. This VFS allows for tag management by creating and deleting directories.

Development virtual filesystem tags

Filesystems: More Perilous Than You Think

2025-01-23

A Deconstruct 2019 talk revealed shocking truths about filesystems: from the inconsistencies and difficulty of correctly using the file API, to serious bugs within filesystems themselves and the high error rates of disks, data corruption is rampant. The speaker delved into the atomicity issues of file writes and the challenges posed by different filesystem modes (e.g., ext3/ext4's data=journal, ordered, writeback). Even experienced programmers struggle to avoid mistakes leading to data loss or corruption. The talk also analyzed errors in popular databases and version control systems and suggested using databases instead of files to improve data reliability.

Bunster: Compile Shell Scripts to Static Binaries

2025-01-23
Bunster: Compile Shell Scripts to Static Binaries

Bunster is a project that compiles shell scripts into efficient, static binaries, enhancing portability and security. Instead of simply wrapping scripts, it leverages the Go compiler to translate scripts into native machine code, enabling cross-platform execution (currently Unix only). Bunster primarily supports Bash scripts, with plans to support more shells, and add features like a module system, static asset embedding, password and expiration locks. The project is in its early stages but has already implemented many core features and follows SemVer versioning.

libmodulor: An Opinionated TypeScript Library for Business Applications

2025-01-23
libmodulor: An Opinionated TypeScript Library for Business Applications

libmodulor is an opinionated TypeScript library designed to accelerate the creation of high-quality business applications. It employs a layered architecture (UseCase, App, Product, Target), emphasizing type safety and end-to-end testing. Developers are free to use their preferred database, frontend framework, server, and tools; libmodulor provides higher-level primitives to avoid boilerplate code and vendor lock-in. While still under active development, it's already been used in pilot projects.

Development Business Applications

7 Lessons from Building a Small-Scale AI Application

2025-01-23
7 Lessons from Building a Small-Scale AI Application

This article details seven lessons learned from building a small-scale AI assistant over the past year. The author discovered that scalability issues arose earlier than anticipated. AI programming is stochastic, requiring iterative adjustments to prompts, fine-tuning, preference tuning, and hyperparameters. Data quality is crucial, with significant time investment in building and maintaining a high-quality dataset and processing pipeline. Model evaluation is equally important, as simple validation sets often fail to capture real-world edge cases. Trust and quality are paramount, demanding continuous experimentation and evaluation. The training pipeline itself is the core intellectual property, constantly refined through iteration. Finally, the author cautions against over-reliance on AI libraries due to potential incompleteness or poor ecosystem integration; building directly upon lower-level abstractions is often more reliable.

Microsoft's Security Scanners Break Single-Use Links: A Shifting Cyber Norm

2025-01-23
Microsoft's Security Scanners Break Single-Use Links: A Shifting Cyber Norm

Bert Hubert reveals that Microsoft and other email security scanners are visiting links in emails and executing JavaScript, including sending POST requests. This violates the long-standing norm that POST requests shouldn't have side effects, breaking single-use login links. The article discusses the impact on web development and calls for greater transparency from large tech companies when changing internet norms.

Development Single-use links
1 2 178 179 180 182 184 185 186 214 215