Category: Development

mutool: A Swiss Army Knife for PDF Manipulation

2025-02-02

mutool, built on the MuPDF library, is a powerful command-line tool offering a wide array of subcommands for manipulating PDF files. From converting pages to PNGs and extracting text to merging multiple PDFs and extracting embedded images and fonts, mutool handles a diverse range of tasks. It's a versatile tool for both simple conversions and complex PDF operations.

Development PDF manipulation

Python Protocols: Static Duck Typing and the Evolution of Inheritance

2025-02-02
Python Protocols: Static Duck Typing and the Evolution of Inheritance

Python's inheritance mechanism has always been interesting. Traditionally, Python uses type-based inheritance, similar to Java. However, the flexibility of duck typing (implemented through magic methods) is limited. PEP 544 introduces Protocols, allowing the definition of structural subtyping, also known as static duck typing. By inheriting from the Protocol class, developers can declare a set of methods; any class implementing these methods will be considered an instance of that protocol. This solves the scalability issues of traditional duck typing, resulting in cleaner, more maintainable code.

Development Duck Typing

Sniffnet: A Powerful, Cross-Platform Network Traffic Monitor

2025-02-02
Sniffnet: A Powerful, Cross-Platform Network Traffic Monitor

Sniffnet is a free and open-source, cross-platform network traffic monitoring tool available in multiple languages. Its intuitive interface allows users to easily monitor network traffic, view real-time charts, export PCAP files, and identify services and protocols. Sniffnet also supports custom themes, notifications, and filters, and includes a comprehensive Wiki. While older systems may require setting an environment variable to switch renderers, Sniffnet is a powerful and user-friendly tool overall.

Development network monitoring

Lume: A Lightweight CLI for Managing VMs on Apple Silicon

2025-02-02
Lume: A Lightweight CLI for Managing VMs on Apple Silicon

Lume is a lightweight command-line interface (CLI) and local API server for creating, running, and managing macOS and Linux virtual machines (VMs) on Apple Silicon with near-native performance, leveraging Apple's Virtualization.Framework. Run pre-built macOS images in a single step. The CLI offers a comprehensive set of commands for VM management, including creation, running, listing, getting details, setting configurations, stopping, deleting, pulling images, cloning, and cache management. Lume also exposes a local HTTP API server for automated VM management.

Development

OmiAI: The Opinionated AI SDK That Just Works

2025-02-02
OmiAI: The Opinionated AI SDK That Just Works

OmiAI is a TypeScript AI SDK that auto-selects the best model from a curated suite based on your prompt. It boasts built-in o3-like reasoning, curated tools, internet access, and full multi-modal support for nearly all media types. Imagine using one LLM that excels at everything – that's the OmiAI promise. It intelligently chains models for complex tasks, features built-in reasoning and tool-calling, and offers seamless multi-modal support and real-time internet access. Simplify your LLM workflow with OmiAI.

Development

Modest: A Lua Library for Musical Harmony

2025-02-02
Modest: A Lua Library for Musical Harmony

Modest is a robust Lua library for musical harmony, offering Chord, Note, and Interval objects that handle a wide range of chords, from simple major/minor to complex jazz chords. It features flexible string parsing for chord identification, transposition capabilities, and individual note retrieval. Easily installable via LuaRocks or manual compilation, Modest supports Lua 5.4 and LuaJIT and avoids polluting the global namespace. Its core functionality, including chord identification, transposition, note extraction, and interval calculations, provides efficient tools for music software development.

Development Music

Deep Dive into Caffeine Cache: Unraveling Window TinyLFU and Efficient Implementations

2025-02-02

This article delves into the inner workings of the high-performance caching library Caffeine, focusing on its unique Window TinyLFU eviction policy. It explains how Window TinyLFU combines frequency and recency information, utilizing a CountMinSketch data structure for efficient frequency estimation. Furthermore, the article analyzes Caffeine's expiration mechanisms based on ordered queues and a hierarchical timer wheel, and how its adaptive caching policy dynamically adjusts cache configurations using a hill-climbing algorithm to achieve high-performance cache management.

Development cache

Qodo Merge 1.0: AI-Powered Code Review Evolves

2025-02-02
Qodo Merge 1.0:  AI-Powered Code Review Evolves

Qodo Merge 1.0, an AI-driven code review tool, addresses inherent challenges in AI-assisted coding after over a year of development. The new version features a focus-on-problems mode prioritizing critical issues like bugs and security flaws; dynamic learning that refines suggestions based on accepted changes; real-time ticket context integration; and a `/implement` command to translate feedback into actionable code changes. Qodo Merge 1.0 makes code review more precise, adaptive, and efficient.

Development AI Code Review

Conquering Left Recursion: Fixing a C++ Demangler's Grammar

2025-02-02

This article details the author's journey in resolving left recursion and mutual left recursion issues within a context-free grammar (CFG) while rewriting RizinOrg's C++ demangler, rz-libdemangle. It begins by explaining the concepts of left recursion and mutual left recursion, demonstrating with simple examples and state diagrams how to transform left-recursive grammars into right-recursive ones to prevent infinite recursion. The author then shares a real-world problem encountered in the Itanium ABI demangler, showcasing a complex grammar with left and mutual left recursion, and how they used macros and clever grammar transformations to solve these issues, ultimately preventing stack overflow errors.

Development left recursion

PL/Rust: Native Performance for PostgreSQL Functions in Rust

2025-02-02
PL/Rust: Native Performance for PostgreSQL Functions in Rust

PL/Rust is a loadable procedural language enabling PostgreSQL function development in Rust, compiling to native machine code for optimal performance. Unlike interpreted alternatives, it leverages Rust's ecosystem and compile-time safety. It provides access to Postgres' SPI (including dynamic queries and prepared statements), safe Rust types for most Postgres data types, and support for trigger functions. On x86_64 and aarch64 Linux, it operates as a 'trusted' language, offering enhanced security guarantees; elsewhere, it functions as 'untrusted'. Comprehensive documentation, installation instructions, and cross-compilation support are available.

Development

SQL or Death? CMU Seminar Series Explores the Future of Databases

2025-02-02
SQL or Death? CMU Seminar Series Explores the Future of Databases

Carnegie Mellon University's Database Research Group is hosting a seminar series, "SQL or Death?", exploring ways to either dramatically improve SQL's performance or replace it altogether. The online talks feature experts discussing advancements in query optimization and alternative query languages. Topics range from TypeScript stored procedures to innovative languages like PRQL and OxQL, promising a fascinating look at the future of database technology.

Development query language

Mill's Cross-Platform Native Binaries via Github Actions

2025-02-02

The Mill project leverages Github Actions to build native binaries on various platforms (Mac, Windows, Linux) and upload them to Maven Central. A clever configuration separates the publishing of JVM-compatible artifacts from platform-specific native binaries, ensuring cross-platform compatibility. Custom `artifactName` and `jar` tasks generate versioned files with OS and CPU architecture suffixes, allowing users to select the appropriate executable for their environment.

Pointers Are Complicated II: The Subtle Bugs in LLVM Optimizations

2025-02-02

This post delves into the importance of precise semantics for compiler intermediate representations (IRs), especially for languages like C, C++, and Rust that allow unsafe pointer manipulation. The author demonstrates how a sequence of three seemingly correct LLVM compiler optimizations can lead to incorrect program behavior. The root cause is pointer provenance – the extra information embedded in a pointer beyond its memory address, detailing how it was computed. This necessitates a more precise LLVM IR specification, including a precise definition of undefined behavior (UB). Treating compiler IRs as standalone programming languages with rigorous specifications is key to resolving such issues.

Development pointer semantics

Open Source Developers Face OFAC Sanctions: A New Guide Navigates the Complexities

2025-02-02
Open Source Developers Face OFAC Sanctions: A New Guide Navigates the Complexities

US government OFAC sanctions are impacting the open-source community, particularly restricting collaboration with developers from sanctioned countries. The Linux Foundation has released a comprehensive guide to help open-source developers understand and comply with OFAC regulations, avoiding legal risks associated with working with sanctioned individuals or entities. The guide highlights the "50% rule," clarifies the scope of the "informational materials" exemption, and cautions developers against two-way engagement or indirect collaboration with developers from sanctioned regions. While compliance isn't easy, this guide provides a valuable resource for developers navigating the complex intersection of technology, law, and international relations.

Going Mouseless: Building a Productive Keyboard-Only Desktop

2025-02-01

Tired of your mouse? This author shares their journey to a mouse-free desktop. By leveraging tools like the PaperWM scrollable tiling window manager, Firefox bookmark keywords, the Vimium browser extension, and the terminal-based email client Aerc, along with GNOME's Quake Terminal extension and Input Remapper, the author dramatically increased productivity and improved ergonomics. The article details how to use and configure these tools, and shares their experience hiding Emacs's menus and toolbars to further reduce mouse reliance.

Cosmopolitan 3.0: Write Once, Run Anywhere (and Faster!)

2025-02-01
Cosmopolitan 3.0: Write Once, Run Anywhere (and Faster!)

Cosmopolitan library version 3.0 is here! Nearly a year in the making, this release is a game-changer. A single executable now runs on AMD64 and ARM64 architectures across Linux, macOS, Windows, FreeBSD, OpenBSD, and NetBSD. This is powered by a new linker, apelink.c, cleverly weaving together PE, ELF, Mach-O, and PKZIP file formats. Cosmopolitan 3.0 also boasts massive improvements to Windows and macOS compatibility, plus significant speed and memory efficiency gains. Included is a "fat Linux distro," Cosmos, containing tools like Emacs, Vim, and CoreUtils. This innovative approach delivers not just unparalleled portability, but superior performance as well.

Development executable

Kill Your Sticky Headers!

2025-02-01

The author hates sticky headers, those persistent elements that cling to the top of websites and steal precious screen real estate. To combat this annoyance, they created a simple bookmarklet that removes all fixed-position elements from a webpage with a single click. The bookmarklet uses `querySelectorAll` to efficiently find and remove these elements, resulting in a cleaner reading experience. The author details the inconveniences of sticky headers, such as reduced screen space, disrupted spacebar scrolling, and interrupted reading flow. While it might remove other fixed elements, a simple refresh restores them. This simple solution avoids the complexity of custom stylesheets or browser extensions.

Development bookmarklet

Auto-Commit Bot: Automated Git Commits with Gemini AI

2025-02-01
Auto-Commit Bot: Automated Git Commits with Gemini AI

The Auto-Commit Bot is a Python tool automating Git workflows. It monitors a directory for changes, generates descriptive commit messages using Google Gemini's AI, and commits them. This eliminates repetitive tasks and ensures consistent messaging. Features include real-time file monitoring, auto-committing, AI-powered commit messages, and easy customization. Simply install dependencies, set your API key, and run the command.

Development

Running Python and Pygame on a $30 Handheld Linux PC

2025-02-01

This post details how the author installed Debian and ran Python and Pygame on the ~$30 Miyoo A30 handheld. After flashing spruceOS, a Debian chroot environment with Python 3, Pygame, and necessary libraries was created using debootstrap. To solve graphics and input driver issues, essential libraries were copied from spruceOS into the chroot. Finally, a script was written to add a Pygame game to the spruceOS interface, successfully running a custom game on the Miyoo A30. While a 90-degree screen rotation issue remains, this post provides a complete guide to running complex programs on a low-cost handheld.

Development

Stop Overusing Feature Flags: They're Often Unnecessary

2025-02-01
Stop Overusing Feature Flags: They're Often Unnecessary

Many teams rely heavily on feature flag management software, believing it solves all problems, but this introduces complexity and risks. This article argues that for most teams, a simple JSON configuration file suffices; read at application startup to control feature visibility. Overusing feature flags leads to unmaintainable code and increased security risks. The author suggests that only when needing large-scale runtime feature changes should complex feature flag management software be considered, avoiding premature optimization.

Development feature flags

BZip3: A Superior Successor to BZip2

2025-02-01
BZip3: A Superior Successor to BZip2

BZip3 is a faster and more efficient successor to BZip2, boasting higher compression ratios and improved performance. This is achieved through an order-0 context mixing entropy coder, a fast Burrows-Wheeler transform utilizing suffix arrays, and an RLE with Lempel Ziv+Prediction pass based on LZ77-style string matching and PPM-style context modeling. Benchmarks comparing it against other compression algorithms, including tests on a massive archive of Perl source code, demonstrate its significant advantages. BZip3's performance is highly dependent on the compiler, with x64 Linux clang13 builds showing impressive speeds. The project is licensed under LGPLv3.

Development

Reprompt: Fast-Track Your AI Career by 3-4 Years

2025-02-01
Reprompt: Fast-Track Your AI Career by 3-4 Years

Reprompt is hiring! Want to accelerate your AI career? Join us and gain 3-4 years of experience in just three. Become a top 0.01% AI expert, collaborate with experienced engineers from Facebook, Robinhood, and Mapbox, and learn fundraising, product management, and team leadership. You'll build cutting-edge AI data extraction systems. A collaborative spirit, adaptability, and a strong work ethic are essential.

Development Career Development

My Simple Random Number Generator Went Viral (and Broke)

2025-02-01
My Simple Random Number Generator Went Viral (and Broke)

Months after creating a simple random number generator website, the author almost forgot about it. Recently, it unexpectedly went viral, leading to a flood of visitors and various server issues: connection pool exhaustion, UUID parsing errors, and malicious requests. Through logs, monitoring, and debugging, the author gradually resolved these issues and added preventative measures such as rate limiting and character length restrictions. This experience underscored the importance of robust logging, monitoring, and metrics, even for seemingly simple projects.

Apple Open Sources Swift Build: A Unified Build System for Swift

2025-02-01
Apple Open Sources Swift Build: A Unified Build System for Swift

Apple has open-sourced Swift Build, its powerful and extensible build engine used by Xcode and Apple's own operating systems. Swift Build aims to provide a consistent and flexible cross-platform build experience for Swift projects, supporting Linux and Windows. It features robust integration with the Swift compiler, build graph optimizations for maximum parallelism, and support for a wide variety of product types. This addresses inconsistencies between different build systems used in Swift Package Manager and Xcode. This move should provide Swift developers with a more consistent and efficient development experience, laying the groundwork for future improvements and optimizations.

Development Build System

arXivLabs: Experimenting with Community-Driven Features

2025-02-01
arXivLabs: Experimenting with Community-Driven Features

arXivLabs is a framework enabling collaborators to build and share new arXiv features directly on the website. Participants, both individuals and organizations, embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only partners with those who share them. Got an idea for a project that will benefit the arXiv community? Learn more about arXivLabs.

arXivLabs: Community Collaboration on arXiv Features

2025-02-01
arXivLabs: Community Collaboration on arXiv Features

arXivLabs is an experimental framework enabling collaborators to develop and share new arXiv features directly on the website. Participants must adhere to arXiv's values of openness, community, excellence, and user data privacy. Got an idea to improve the arXiv community? Learn more about arXivLabs.

Development

Running DeepSeek R1 on Your Own Hardware: A Quick and Easy Guide

2025-02-01

This article provides a straightforward guide on running the large language model DeepSeek R1 on your own hardware. Using Arch Linux and the Ollama tool, the author walks the reader through installing, configuring, and running DeepSeek R1. The process requires a computer or VM with a dedicated GPU and some basic Linux knowledge. Security is emphasized; it's recommended not to run this on your main system. Ultimately, the reader can run DeepSeek R1 locally, enjoying a cloud-free, subscription-free, and data leak-free AI experience.

Development

FOSDEM 2024: A Packed Schedule of Open Source Goodness

2025-02-01
FOSDEM 2024: A Packed Schedule of Open Source Goodness

The FOSDEM 2024 schedule is out, boasting a diverse range of talks and workshops. Topics include Rust for Linux, a novel memory allocator, LLVM libc, SMB3.11 Unix extensions, NixOS, AI-powered API documentation testing, a RISC-V TEE, a safepoint garbage collector, enhanced spam detection, and much more. Panels cover AI ethics, collaborative application integration, the RISC-V unified database, Android upgrades, HAMNET, DPoP, and OpenLayers. Even junior developers are catered for with Python and computer programming introductions. No matter your area of interest, FOSDEM 2024 has something for you.

Development Developer Conference

Visualizing the World's Books in ISBN-Space

2025-02-01
Visualizing the World's Books in ISBN-Space

A developer created a stunning visualization of the world's books using ISBNs. Clever algorithms and space-filling curves map massive datasets into a 2D space, rendered in real-time with WebGL and GLSL shaders. Users can explore publication years, countries, and more, even customizing the visualization. This project showcases the power of data visualization and a developer's passion for knowledge and technology.

Development

From Vim & Jekyll to Dropbox Paper: My Blogging Workflow Upgrade

2025-02-01

Blogger Kyle Conroy reflects on six years of inefficient blogging, averaging less than one post per year. His previous workflow involved writing Markdown in Vim, generating HTML with Jekyll, and deploying to Heroku—a cumbersome and non-collaborative process. After trying Dropbox Paper, he found its Markdown export, real-time collaboration, and commenting features significantly improved his writing efficiency, even enabling writing on his phone while waiting in line. While Paper's API has some limitations, he's open-sourced a Go client and plans to continue using Paper for blogging.

Development workflow improvement
1 2 163 164 165 167 169 170 171 206 207