Category: Development

Static Search Trees: 40x Faster Than Binary Search

2025-01-01

This blog post details the implementation and optimization of a static search tree (S+ tree) for high-throughput searching of sorted data, achieving a 40x speedup over binary search. Starting with code from Algorithmica, the author meticulously optimizes the search algorithm through vectorization, SIMD instructions, and batching. Deep dives into assembly code reveal opportunities for further performance gains. Various tree layouts and memory strategies are explored, ultimately resulting in a highly efficient solution that reduces query time from 1150ns to 24ns on a 1GB dataset.

Tirreno: Open-Source Security User Analytics for Enhanced Platform Protection

2025-01-01
Tirreno: Open-Source Security User Analytics for Enhanced Platform Protection

Tirreno is open-source user analytics software designed to monitor various online platforms, including websites, applications, SaaS, communities, and IoT devices. It detects and defends against account takeovers, malicious bots, and common vulnerabilities stemming from user behavior. Built with PHP and PostgreSQL, Tirreno is easy to install and use, providing real-time analytics. A paid subscription enhances its anti-fraud capabilities by offering additional verification of IP addresses, emails, and phone numbers. Developed by Tirreno Technologies Sàrl, Tirreno prioritizes privacy and data security; its code is open-source, but the trademark is not.

Development user analytics

Revisiting NetBSD's Build System: A Powerful, Yet Arcane Tool

2024-12-31
Revisiting NetBSD's Build System: A Powerful, Yet Arcane Tool

This blog post revisits NetBSD's build system, a powerful yet somewhat arcane system based on a combination of BSD make and shell scripts. It allows building a complete NetBSD system from scratch on virtually any POSIX platform, without root privileges, and supports cross-compilation to various architectures. The author details the build process, including toolchain generation, build structure, the destdir mechanism, unprivileged builds, and distribution media creation. While acknowledging shortcomings like inefficient incremental builds and imperfect dependency management, the author highlights the system's strengths and design philosophy. The author concludes by mentioning a current embedded project utilizing NetBSD and explores the possibility of migrating the build system to Bazel for enhanced efficiency.

Development build system

just words, a YC Startup, is Hiring a Senior Frontend Engineer

2024-12-31
just words, a YC Startup, is Hiring a Senior Frontend Engineer

Y Combinator-backed startup just words is seeking a Senior Software Engineer (Frontend) to build and scale their backend and recommendation systems. The company uses AI for hyper-personalized messaging and employs dynamic testing to optimize marketing results. The ideal candidate will have 4+ years of frontend experience, proficiency in JavaScript/TypeScript and modern frameworks like React, and thrive in a fast-paced environment. This is a ground-floor opportunity to work with founders, make critical decisions, and solve complex problems using cutting-edge AI technology.

Development

Peephole Optimization in Ruby VM: Adding opt_respond_to

2024-12-31
Peephole Optimization in Ruby VM: Adding opt_respond_to

This is part four of a series on optimizing the Ruby Virtual Machine (VM). The author delves into adding an `opt_respond_to` instruction to CRuby to optimize `respond_to?` method calls. The article details using a debugger to trace code execution, locate the peephole optimizer `iseq_peephole_optimize`, and by analyzing an existing frozen array optimization, attempts to match the pattern of `respond_to?` method calls, laying the groundwork for adding a new optimization instruction. The author uses concise code examples and debugging steps to clearly illustrate the peephole optimization mechanism and how to debug within the CRuby source code.

Over 3.1 Million Fake GitHub Stars Used to Promote Malware

2024-12-31
Over 3.1 Million Fake GitHub Stars Used to Promote Malware

A recent study revealed over 3.1 million fake "stars" on GitHub, used to artificially inflate the popularity of scam and malware repositories. Researchers used a tool called StarScout to analyze massive datasets, identifying 278,000 accounts responsible for these fake stars across 15,835 repositories. This deceptive practice, particularly rampant in 2024, allows malicious projects to appear legitimate and reach unsuspecting users. While GitHub has removed many of the implicated accounts and repositories, the problem persists. Users are urged to carefully evaluate project quality and exercise caution when downloading software from GitHub.

Development Fake Stars

Systems Ideas That Sound Good But Almost Never Work

2024-12-31
Systems Ideas That Sound Good But Almost Never Work

Steven Sinofsky's article debunks several seemingly sound software engineering concepts. He argues that ideas like 'let's just make it pluggable,' 'let's just add an API,' and 'let's abstract that one more time' often fail in practice due to the inherent complexities of software engineering. Issues such as API maintainability, asynchronous operation bugs, access control complexities, and cross-platform development difficulties are highlighted. Sinofsky emphasizes that successful software engineering relies on first principles, not blindly applying patterns.

Onramp Compiler Successfully Compiles DOOM from Scratch

2024-12-31

After two years of development, a programmer has successfully compiled the classic game DOOM using a self-bootstrapping compiler called Onramp. Starting from a simple virtual machine written in x86_64 assembly, Onramp gradually built an assembler, C compiler, and other tools, ultimately compiling and running DOOM. While performance is currently limited, Onramp demonstrates impressive self-hosting capabilities and cross-platform potential. Its long-term goal is to enable compilation and execution of code on any architecture, even those of alien civilizations, preserving our cultural and computing heritage for the distant future.

Development self-hosting

RSS.Beauty: Make Your RSS Feeds Beautiful

2024-12-31
RSS.Beauty: Make Your RSS Feeds Beautiful

RSS.Beauty is an open-source tool designed to enhance the RSS reading experience. It transforms plain RSS feeds into beautifully formatted reading experiences. Simply download the style file (RSS or Atom), place it in your static resource directory, and add a line of code after `` in your RSS. RSS.Beauty boasts excellent compatibility and utilizes time-tested technology, giving new life to RSS.

Development reading experience

Grafana Cloud: Build a Custom Weather Dashboard with Ease

2024-12-31
Grafana Cloud: Build a Custom Weather Dashboard with Ease

This article demonstrates how to quickly create a personalized weather forecast dashboard using Grafana Cloud and the free public API from the U.S. National Weather Service. With a few simple steps, raw JSON weather data is transformed into easily understandable charts, allowing users to check their local weather information at any time. Grafana Cloud supports a variety of data sources and offers rich visualization options, making data analysis simple and efficient.

Development Weather Forecast

Symbolic Reference and Hardware Models in Python: A New Approach to Boosting Hardware Design Efficiency

2024-12-31

This article introduces a novel approach to hardware modeling using Python – symbolic models. Traditional hardware design workflows involve multiple models (behavioral, architectural, RTL, etc.) for verification, but debugging can be challenging for complex algorithms and data management. The author proposes using Python symbolic models, tracking data origins instead of the data itself, to simplify the debugging process. Using an image downscaler as an example, the article details the construction and comparison of reference and hardware symbolic models, showcasing the advantages of symbolic models in improving design efficiency and confidence, especially when dealing with complex data management and specification changes.

darktable 5.0.0 Released: Enhanced UI, Performance, and Support!

2024-12-31
darktable 5.0.0 Released: Enhanced UI, Performance, and Support!

The popular open-source photo editing software darktable has released version 5.0.0, boasting significant UI/UX improvements, performance enhancements, and expanded camera/file format support. New features include camera-specific styles, a startup progress screen, feedback during bulk operations, and more precise mask controls. Performance gains are evident in the optimized color equalizer and faster PFM file loading. Numerous bugs have been squashed, and support for a wider range of cameras and file formats has been added. While edits are preserved during the upgrade from 4.8, backing up your data is strongly recommended.

Summary of Unity Support Page Footer

2024-12-31
Summary of Unity Support Page Footer

This text is the footer of the Unity Technologies website. It includes copyright information, privacy policy, cookie policy, and links to various resources such as Unity Ads, Asset Store, learning materials, community forums, and documentation. It's not an article itself, but a navigational element pointing users to further information and resources related to Unity.

Development support website footer

The Decline of Native Apps: The Rise of Web Apps

2024-12-31
The Decline of Native Apps: The Rise of Web Apps

The smartphone boom made native apps ubiquitous, but now they're becoming a burden. Modern browsers are powerful enough to offer features like notifications and offline access, once exclusive to native apps. The article argues that many businesses still cling to native apps, leading to app overload for users. In contrast, web apps are more cost-effective, flexible, and work seamlessly across devices. The gaming industry exemplifies this, with technologies like HTML5, WebGL, and WebAssembly enabling browser games to rival native ones. The article calls for developers to embrace the future of web apps, utilizing tools like Rogue Engine to create more accessible and universally usable experiences.

Development web apps native apps

Linux Git Commit SHA Prefix Collision Risk Imminent

2024-12-31
Linux Git Commit SHA Prefix Collision Risk Imminent

Linux's "Fixes" tag traditionally uses a 12-character commit SHA prefix, but with increasing commit numbers, the risk of collisions is growing. Security researcher Kees Cook has successfully created a 12-character prefix collision, breaking tools that parse the "Fixes" tag. This collision uses the initial commit ID of Linux 2.6.12-rc2, impacting tools such as linux-next's "Fixes tag checker" and the Linux CNA's commit parser. To prevent future collisions, Cook suggests increasing the minimum short ID to 16 characters and has released a test commit to help developers fix their tools.

Development

Relicensing Open Source Projects: A Study of Elasticsearch, Redis, and Terraform

2024-12-31
Relicensing Open Source Projects: A Study of Elasticsearch, Redis, and Terraform

Facing economic pressure, some companies are relicensing their popular open source projects to more restrictive licenses to generate more revenue, leading to project forks. CHAOSS studied Elasticsearch, Redis, and Terraform, finding that forks often exhibit greater organizational diversity than the originals, especially under neutral foundations like the Linux Foundation. While relicensing had minimal impact on contributors to the original projects, it significantly affected users. This research is the first step in a larger ongoing project; future analysis will incorporate more data and projects for a deeper understanding.

DocumentCloud: An Online Document Collaboration Platform

2024-12-31

DocumentCloud is an online platform that allows users to upload, collaboratively edit, and share various types of documents. It offers powerful search and organizational features, making it easy to manage large volumes of files. For journalists, researchers, and organizations needing team collaboration, DocumentCloud is a valuable tool that increases efficiency and facilitates information sharing.

Ruby Core Class Freezing Tool: Ruby Refrigerator

2024-12-31
Ruby Core Class Freezing Tool: Ruby Refrigerator

Ruby Refrigerator is a tool that freezes all Ruby core classes and modules, preventing unexpected modifications to core classes at runtime. It provides a `freeze_core` method to freeze core classes and a `check_require` method to check libraries for modifications to core classes. `check_require` supports options for predefining modules and classes, excluding specific classes, and specifying dependencies. A command-line tool, `bin/check_require`, is also provided for easy use. This tool is incredibly useful for ensuring code stability in production and testing environments.

Development freezing core classes

t2x: An AI-Powered CLI Tool for Text Operations

2024-12-31

A developer is building an open-source command-line interface (CLI) tool called t2x (short for "text to whatever"). t2x leverages local or cloud-based language models to perform various text operations. While not yet fully complete, the tool is expected to be released on GitHub sometime over the holidays.

Development

Guix Successfully Builds a Fully Bootstrapped Mono: A Long and Winding Road

2024-12-31

The Guix system has successfully built a fully bootstrapped Mono environment, overcoming numerous challenges in the process. The author details their journey to support C# 12.0 features, encountering issues with older Mono versions relying on pre-built binaries. Through a series of patches, a fully bootstrapped chain from Mono 1.2.6 to 6.12.0 was created. Along the way, bugs in Mono and xbuild were fixed, and runpath support in Mono was enhanced. This not only solved the author's C# compatibility problem but also highlighted the importance of fully bootstrapped, reproducible builds and their impact on software security.

Development Bootstrapped Build

Monokai Pro Theme: JetBrains IDE and More

2024-12-31
Monokai Pro Theme: JetBrains IDE and More

Monokai Pro is a theme plugin available for JetBrains IDEs (like IntelliJ IDEA, WebStorm, etc.), Sublime Text, and VS Code. It boasts over 70 custom icons and offers adjustable settings for personalized tweaking. A free trial is available, but a €1 monthly subscription removes pop-ups. Compatible with numerous programming languages and IDEs, it's a popular choice among software engineers.

Development Theme Plugin

Mozilla Launches Privacy-Focused AI Tool: Orbit

2024-12-31

Mozilla has released Orbit, a Firefox extension leveraging AI to summarize web content such as emails, documents, articles, and videos, while prioritizing user privacy. Orbit requires no account creation, doesn't store session data or personal information, and utilizes a Mistral 7B LLM model hosted by Mozilla. Users can easily summarize long documents and videos, quickly grasp the gist of emails and articles, and get specific information through questions.

Turning Google Sheets into Handy Web Apps: A Programmer's Tale

2024-12-31
Turning Google Sheets into Handy Web Apps: A Programmer's Tale

An Ars Technica reporter shares his journey of transforming simple Google Sheets into phone-friendly web apps using Glide. Initially created to streamline takeout ordering, the app manages local restaurant information with efficient search and filtering. He expanded his approach to create apps for recipes and pantry items, improving daily life. The article showcases the power of no-code tools and how simple solutions can solve real-world problems, highlighting ingenuity and a quest for better living.

Development

Linux Kernel Initial Commit SHA Collision Risk

2024-12-31

Kees Cook, a Linux kernel developer, discovered a kernel documentation commit whose ID shares the first 12 characters with the initial commit in the kernel's repository. This potential collision could break various tools relying on unique commit IDs. While not yet merged upstream, this commit serves as a test case to proactively address SHA collisions and prevent future widespread issues.

Development SHA collision

Lightstorm: A Minimalistic Ruby Compiler Boosts Performance with MLIR

2024-12-31

The DragonRuby team developed Lightstorm, a minimalistic Ruby compiler aimed at improving the performance of their cross-platform game engine. Leveraging MLIR, Lightstorm translates mruby VM bytecode into C code, optimizing performance by eliminating load/store and branch operations within the VM's interpreter loop. Benchmark results show performance improvements ranging from 1% to 1200%, with an average reduction of roughly 30% in execution time and cycles. While currently supporting a subset of Ruby, the project validates the feasibility of pre-compiling Ruby code for performance gains. Future plans include replacing critical C components of the engine with compiled Ruby code.

Development Ruby compiler

LineageOS 22.1 Released: 30x Faster Extraction, New Music and PDF Apps

2024-12-31

LineageOS 22.1, based on Android 15 QPR1, is now available with significant improvements. Extraction utilities are 30 times faster, and two new apps have been added: Twelve, a music player, and Camelot, a PDF reader. SeedVault, Etar, and WebView have also been updated. Versioning has been adjusted to align with Android's minor version numbers, making it easier to distinguish Android versions. The project has streamlined its codebase, added support for more devices, and encourages developers to contribute code and translations.

Development

Lightweight Sum Types and Switches for Lua: lua-match

2024-12-31
Lightweight Sum Types and Switches for Lua: lua-match

lua-match is a minimalistic Lua library providing sum types and switch functionality. It leverages a tagging function for a clean and efficient way to handle various data types and conditional branching. With a simple tagging function and a switch table, you can easily implement sum type-like behavior and pattern matching, simplifying your Lua code significantly. The library is open-source and uses the MIT license.

Development Sum Types

Developer Creates Game Boy Advance Game in Zig

2024-12-31

A developer created a Game Boy Advance game, 2048, using the emerging programming language Zig. The article highlights Zig's advantages in embedded programming, particularly its streamlined cross-compilation process, efficient memory management (including packed structs), and powerful compile-time code generation. The author contrasts the development experience using C++ versus Zig, noting Zig's ease and efficiency in handling the Game Boy Advance's peculiar memory layout and hardware registers. While Zig has some shortcomings, such as limited inline assembly and Thumb instruction support, its numerous advantages make it an ideal choice for developing games for retro consoles.

Development Embedded Development

Why Linux Still Isn't Ready for the Desktop

2024-12-30

This article delves into the deep-seated reasons why Linux hasn't achieved widespread desktop adoption. The author highlights several key issues: poor software compatibility between distributions, frequent updates leading to bugs and regressions, insufficient funding resulting in subpar software quality, inadequate hardware driver support, and challenges in communicating within the Linux community. While Linux excels in server environments, its desktop presence remains hampered by these persistent obstacles, hindering its ability to compete effectively with established operating systems like Windows.

Coding Font Tournament Crowns Source Code Pro

2024-12-30
Coding Font Tournament Crowns Source Code Pro

John Gruber of Daring Fireball highlights a fun coding font selection 'tournament' created by Typogram. Users choose their favorite from 32 free monospaced fonts. While some popular choices like Consolas are absent, and some included fonts are less appealing, it's a worthwhile exercise. Improvements since its initial launch include a JavaScript code example instead of CSS and a wider selection of fonts. Gruber recommends disabling font names to reduce bias. His consistent winner? Adobe's Source Code Pro, with IBM Plex Mono a close second.

Development coding fonts
1 2 184 185 186 188 190 191 192 201 202