Category: Development

The Dark Side of Software Dependencies: A Trust Crisis and Security Risks

2025-02-13
The Dark Side of Software Dependencies: A Trust Crisis and Security Risks

Modern software development heavily relies on third-party libraries, creating significant security risks. This article delves into the types of software dependencies, the role of package managers, and resulting issues like supply chain attacks, malware, and backdoors. The author emphasizes the importance of regularly auditing dependencies, using signatures and verified sources, implementing security policies, and employing the principle of least privilege. Strategies such as minimizing dependencies and using well-maintained standard libraries are also suggested, ultimately concluding that isolating and containing untrusted software is crucial for mitigating risks.

Development supply chain attacks

Speeding Up CRuby's FFI with JIT Compilation

2025-02-12
Speeding Up CRuby's FFI with JIT Compilation

This article explores using Just-In-Time (JIT) compilation to improve the performance of Ruby's Foreign Function Interface (FFI). Benchmarks demonstrate FFI's performance drawbacks compared to native extensions. The author introduces FJIT, a solution leveraging RJIT and custom machine code generation to create runtime machine code for calling external functions, bypassing FFI overhead. FJIT outperforms native extensions in tests, offering a high-performance alternative for Ruby developers. Currently a prototype supporting only ARM64, FJIT's future expansion to other architectures and more complex function calls is anticipated.

Development

NixOS Build Reproducibility: Better Than You Think

2025-02-12

NixOS's build reproducibility has long been a point of contention. While its functional package manager model contributes to build reproducibility, it doesn't guarantee bitwise reproducibility for all builds. A new research paper empirically studies Nixpkgs (NixOS's package collection) over six years, revealing a steadily increasing reproducibility rate—from 69% in 2017 to 91% in April 2023. The study also identifies prevalent causes of non-reproducibility, such as embedded dates, uname outputs, environment variables, and build IDs. These findings demonstrate that while Nixpkgs already achieves high reproducibility rates, there's room for improvement by addressing these low-hanging fruits. This research is crucial for increasing trust in the Nix substitution protocol and driving the development of distributed caching solutions based on build reproducibility.

(luj.fr)
Development build reproducibility

yknotify: A macOS YubiKey Touch Prompter

2025-02-12
yknotify: A macOS YubiKey Touch Prompter

yknotify is a macOS command-line tool that monitors system logs for events associated with a YubiKey waiting for a touch, then prompts the user. It supports FIDO2 and OpenPGP, identifying specific log messages to determine if a touch is needed. While rare false positives exist, no false negatives have been reported. Users can install and run it; issues can be filed if problems arise.

Development

Imapsync: Your IMAP Migration and Backup Solution

2025-02-12

Imapsync is a command-line tool for incremental and recursive IMAP transfers between mailboxes, anywhere on the internet or your local network. It supports Windows, Linux, and Mac OS X, and efficiently handles interrupted transfers. Imapsync doesn't migrate contacts and calendars, but offers alternatives and robust professional support. Starting at €60, it includes a 30-day money-back guarantee. In 2024, it handled over 200 million mailbox transfers, demonstrating its power and extensive user base.

Development email migration backup

arXivLabs: Building New arXiv Features with Community Collaboration

2025-02-12
arXivLabs: Building New arXiv Features with Community Collaboration

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

Development

Efficiency vs. Horizontal Scalability: A Necessary Trade-off?

2025-02-12
Efficiency vs. Horizontal Scalability: A Necessary Trade-off?

This article explores the tension between software efficiency and horizontal scalability. The author argues that software optimized for scalability often performs poorly in single-machine environments, and vice versa. This stems from Amdahl's Law, coordination overhead, and limitations on shared resources. Efficient algorithms often rely on assumptions about the system and problem that may no longer hold true when scaling horizontally. The author also discusses cultural factors and task types influencing choices, illustrating with examples like the Tigerbeetle database and CPython's GIL. Ultimately, a deep understanding of the problem and environment is key to achieving both high efficiency and scalability.

Development

LLM Plugin for Semantic Line Sorting

2025-02-12
LLM Plugin for Semantic Line Sorting

This command-line plugin leverages a Large Language Model (LLM) to semantically sort lines of text. Similar to the GNU `sort` command, but instead of alphabetical order, it ranks lines based on semantic relevance to a given query. Input can be from files or standard input. Users can customize the sorting method, output limit, model, and prompt template. A default prompt is provided, but customization is supported. Installation is straightforward: clone the code, create a virtual environment, and install dependencies.

Top 100 Software Engineering Talks of 2024

2025-02-12
Top 100 Software Engineering Talks of 2024

This list compiles the 100 most-watched software engineering talks from nearly every major conference worldwide in 2024. Topics range from practical applications of large language models and high-performance techniques in Rust and Java, to best practices in modern web development and reliability engineering. Standout talks include Jodie Burchell's insightful look at LLMs and Martin Thwaites' explanation of OpenTelemetry, both exceeding 130,000 views. This curated list offers a valuable resource for software engineers seeking to expand their knowledge and skills.

Syd: A Robust Rust-Based Linux Sandbox Kernel

2025-02-12
Syd: A Robust Rust-Based Linux Sandbox Kernel

Syd is a GPL-3 licensed, rock-solid application kernel written in Rust for sandboxing applications on Linux systems (5.19 and above). Evolving from a tool for detecting package build errors in Exherbo Linux, Syd now provides a robust security boundary. Leveraging modern Linux APIs, it eliminates TOCTTOU vulnerabilities. Unlike other sandboxing tools, Syd operates without extra privileges, offering a simple interface to complex sandboxing mechanisms. Features include path sandboxing, execution control, network sandboxing, and advanced features like lock and proxy sandboxing. It's designed for strong application isolation and security.

Development Linux sandbox

PgAssistant: Your PostgreSQL Performance Assistant

2025-02-12
PgAssistant: Your PostgreSQL Performance Assistant

PgAssistant is an open-source tool designed to help developers understand and optimize their PostgreSQL database performance. It offers database behavior analysis, schema optimization, and SQL query library management. Integration with OpenAI or local LLMs assists in SQL query optimization. A user-friendly interface simplifies operation, and a JSON file manages the SQL query library. It also integrates PGTune for database parameter tuning and Docker Compose file generation.

Development

arXivLabs: Experimental Projects with Community Collaborators

2025-02-12
arXivLabs: Experimental Projects with Community Collaborators

arXivLabs is a framework enabling collaborators to develop and share new arXiv features directly on the website. Individuals and organizations involved 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. Have an idea to enhance the arXiv community? Learn more about arXivLabs.

Development

To Compile or Not to Compile Database Queries: A Deep Dive

2025-02-12

This article explores the trade-offs of compiling database queries. Traditional query interpreters struggle with the speed of modern NVMe SSDs, leading to significant performance bottlenecks. Compiling queries offers substantial speed improvements, especially for OLAP workloads. However, compilation time and optimization challenges create unpredictable performance cliffs. Vectorized interpreters, conversely, are easier to build, debug, and offer more consistent performance. The article contrasts this with browser JavaScript/Wasm engines, which use a tiered compilation approach (interpreter, baseline compiler, optimizing compiler) to achieve a smooth performance trade-off. The author proposes a similar approach for databases, suggesting a baseline compiler as a key component. Several implementation strategies, including 'copy-and-patch' and Wasm compilation, are explored. Ultimately, the article argues that building a baseline compiler isn't prohibitively difficult and offers perspectives on future directions.

Development query optimization

The Unix Trinity: dmr, kt, and bwk

2025-02-12

In Unix history, the initials dmr, kt, and bwk represent legendary figures: Dennis M. Ritchie (dmr), co-creator of Unix and the C programming language; Ken Thompson (kt), co-creator of Unix alongside Ritchie; and Brian W. Kernighan (bwk), co-author of influential Unix programs and books like "The C Programming Language" and "The UNIX Programming Environment". These three giants shaped the foundations of Unix and profoundly impacted modern computer science.

Intensional Programming in Joy: Introspection with a Single Operator

2025-02-12

This article explores intensional programming in Joy, a stack-based functional programming language. Joy itself is extensional, lacking the ability to 'dissect' code blocks. The author proposes two intensional operators: 'map' and 'quota', proving their mutual expressibility. While behaviorally equivalent, intensional programs can distinguish a single operator from a subprogram with multiple commands. This opens avenues for exploring weaker notions of equivalence in intensional languages and demonstrates a robust approach to introducing intensionality in minimalist languages like Joy.

Mikey: Audio Recorder, Transcriber, and Meeting Note Generator

2025-02-12
Mikey: Audio Recorder, Transcriber, and Meeting Note Generator

Mikey is an application for recording audio, transcribing it using the Groq API, and automatically generating meeting notes. Its user-friendly PyQt GUI provides a seamless experience for managing recordings, viewing transcriptions, and browsing saved sessions. It uses pyaudiowpatch for audio recording, the Groq API for transcription, and a conversational model for generating concise meeting notes. A standalone executable can be built for easy distribution.

Skies-ADSB v2.0: Real-time 3D Air Traffic in Your Browser

2025-02-12
Skies-ADSB v2.0: Real-time 3D Air Traffic in Your Browser

Skies-ADSB transforms your browser into a real-time 3D air traffic display. Leveraging ADS-B data from an RTL-SDR receiver, it allows exploration of local air traffic, surrounding airspace, and geography with customizable 3D maps. Built with JavaScript, HTML5, CSS, Python 3, and WebGL (Three.js), it runs on major modern browsers. Version 2.0 includes breaking changes from 1.x, requiring a fresh install. Users can report bugs, request features, and suggest improvements via the issue tracker. The project thanks Andre Thais CFI and Frank E. Hernandez for their contributions and utilizes public domain map data from Natural Earth and OpenStreetMap.

The Gordian Knot of Online Schema Changes and Foreign Keys in MySQL

2025-02-12
The Gordian Knot of Online Schema Changes and Foreign Keys in MySQL

This post dissects the inherent challenges of performing online schema changes in MySQL, particularly when dealing with tables linked by foreign key relationships. The author analyzes the limitations of existing tools like pt-online-schema-change and gh-ost, highlighting the complexities and risks involved in altering parent tables. Altering a parent table necessitates concurrent alterations of all child tables, creating a fragile process with minimal tolerance for errors. A single failure can lead to data inconsistencies or outages. The author concludes that online schema changes involving foreign key constraints on large tables are practically infeasible.

Development Online Schema Change

The Ultimate Guide to File Watchers: A Comprehensive Overview

2025-02-12

This article provides a comprehensive list of file watching tools, covering various programming languages, licenses, and functionalities. From older inotify wrappers to modern tools written in Rust and Python like watchexec, the article meticulously compares each tool's pros and cons, dependencies, and Debian package support. The author also shares personal experiences and challenges encountered, such as using systemd .path units and the limitations of watchman. Developers and system administrators alike will find this resource invaluable in selecting the right file watching tool for their needs.

Development file watching

Git Shallow Clones: Performance Pitfalls and the Depth 2 Optimization

2025-02-12
Git Shallow Clones: Performance Pitfalls and the Depth 2 Optimization

Git shallow clones (`--depth 1`) can significantly impact performance on the first push. This is because shallow clones artificially mark some commits as root commits, preventing the server from using optimizations and requiring the transmission of the entire commit snapshot. Using `--depth 2` deep clones, however, preserves a complete commit history, allowing the server to utilize optimizations even on the first push, reducing data transfer and significantly improving push speed. Subsequent pushes are unaffected.

Development shallow clone

Fixing Concurrency Bugs in AWS SSM Plugin Enables VS Code Remote SSH

2025-02-12
Fixing Concurrency Bugs in AWS SSM Plugin Enables VS Code Remote SSH

A recent Stanford graduate at Formal, while troubleshooting a customer issue with Visual Studio Code's Remote SSH connection to AWS EC2 instances for machine learning, unexpectedly uncovered and fixed several concurrency bugs in AWS's SSM reference library. The problem stemmed from insufficient TCP/IP port forwarding support in the Formal Connector, preventing VS Code from properly initializing the remote development environment. The fix involved deep dives into SSH and SSM protocols, ultimately resolving data races and sequence number issues by modifying the AWS Session Manager plugin. This now allows secure VS Code Remote SSH connections through the Formal Connector.

Accidental Community: How a Static Web Page Sparked the Local-First Movement

2025-02-12
Accidental Community: How a Static Web Page Sparked the Local-First Movement

A former Facebook engineer, while sailing the world, developed TinyBase, a local-first data store. He then created a simple static website, localfirstweb.dev, to curate and promote the concept. Unexpectedly, the site went viral, attracting developers and leading to a thriving Discord community built by Yonatan, a Harvard Business School graduate. This showcases how a seemingly small action can create a powerful ripple effect, highlighting the potential of the local-first software development movement.

Development

From Hand-Coding HTML to Zola: My Blog Migration Journey

2025-02-12

Clayton Ramsey shares his experience migrating his personal blog from hand-coded HTML to the Zola static site generator. Initially, he found hand-coding HTML manageable, but the repetitive tasks of handling math formulas (using MathML), code highlighting, and maintaining navigation bars became overwhelming. He switched to Zola, leveraging a Python script to convert LaTeX to MathML, ultimately automating the deployment process. While encountering challenges with GitHub Actions' YAML configuration, he found the migration significantly improved efficiency and lowered the barrier to writing new posts.

Development blog migration

Jujutsu: A Revolutionary Version Control System

2025-02-12
Jujutsu: A Revolutionary Version Control System

Jujutsu is a novel version control system that takes the best features from Git, Mercurial, and Darcs, and adds several innovative features of its own. It treats the working copy as a commit, simplifying the data model and algorithms; an operation log and undo functionality ease debugging; automatic rebasing and conflict resolution improve workflow efficiency; and it supports concurrent replication, making it safe for use with distributed file systems. While still experimental, Jujutsu shows immense potential to become a leading next-generation version control system.

Development

JetBrains Shifts Gears on Kotlin Multiplatform Tooling: No Standalone IDE

2025-02-12
JetBrains Shifts Gears on Kotlin Multiplatform Tooling: No Standalone IDE

JetBrains announced a change of direction for its Kotlin Multiplatform (KMP) tooling. Instead of a standalone IDE, they'll focus on enhancing KMP support within the IntelliJ Platform (IntelliJ IDEA and Android Studio). Support for KMP in their Fleet IDE will be deprecated in the next three months. This shift prioritizes user feedback and leverages advancements like AI to improve developer experience.

Migrating Apple Account Purchases: A Comprehensive Guide

2025-02-12

This guide details how to migrate apps, music, and other purchased content from a secondary Apple Account to a primary one. Several prerequisites must be met, including: both accounts must be distinct, have two-factor authentication enabled, be set to the same region, and the secondary account must have a zero balance with no outstanding rentals or pre-orders. The migration process occurs within your iPhone or iPad settings. Afterwards, the secondary account can no longer be used for media and purchases. The guide also lists various reasons why the migration might fail, such as incompatible account types or unusual account status, making it a very helpful resource.

WASM: The Container Killer?

2025-02-12
WASM: The Container Killer?

WebAssembly (WASM), with its 'write once, run anywhere' capability, is poised to replace container technology. The article argues that while containers solved many problems in software development, they've become cumbersome due to complex tooling and tight coupling. WASM offers a lighter, faster solution, particularly when combined with serverless architectures like Cloudflare Workers. While WASM currently lacks some system interfaces, it's rapidly developing and is positioned to become mainstream. The article encourages developers to learn compiled languages like Go or Rust to prepare for the coming WASM era.

Development Containers

Jujutsu (jj) Cheat Sheet: A Git Alternative?

2025-02-12

This post introduces a cheat sheet and reference for Jujutsu (jj), a version control system compatible with git repositories. The author finds jj more intuitive than git and provides learning resources including a reference describing the repository's state and a visual cheat sheet for common editing operations. For newcomers, reading a tutorial first is recommended to avoid preconceived notions from git. Both resources are concise and printable for easy learning.

Development

Ohm: A PEG-Based Parsing Toolkit

2025-02-11

Ohm is a powerful parsing toolkit consisting of a library and a domain-specific language (DSL). It allows you to parse custom file formats or rapidly build parsers, interpreters, and compilers for programming languages. The Ohm language is based on Parsing Expression Grammars (PEGs), a formal way of describing syntax similar to regular expressions and context-free grammars. The Ohm library provides a JavaScript interface for creating parsers, interpreters, and more from the grammars you write.

Development parser
1 2 162 163 164 166 168 169 170 214 215