CBOR vs. MessagePack: A Contentious Serialization Showdown

2025-03-03

The author grapples with choosing between MessagePack and CBOR for a shared programming language, prioritizing performance and ease of understanding. While MessagePack boasts a cooler, simpler interface, CBOR demonstrates significantly faster encoding/decoding speeds (approximately 200% faster in benchmarks). Despite CBOR's more complex documentation, its superior design ultimately wins out. The author chooses CBOR but acknowledges the political baggage influencing their decision.

Read more
Development

AI-Powered Lease Analysis: Negotiate Your Rental Agreement Like a Pro

2025-03-17

This AI-powered platform empowers you to master your rental agreement. It analyzes your lease, uncovering potential problems, unfavorable terms, and negotiation opportunities. Gain a clear understanding of your tenant rights, receive expert negotiation advice, and easily decipher complex legal jargon. The platform also provides jurisdiction-specific insights, ensuring your lease analysis is tailored to your local laws and regulations. Rent smarter, not harder.

Read more

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.

Read more
Development left recursion

Node.js EPUB Library @smoores/epub Released

2024-12-13
Node.js EPUB Library @smoores/epub Released

A new Node.js library, @smoores/epub, has been released. It allows developers to inspect, modify, and create EPUB 3 publications. The library offers high-level APIs that simplify interaction with the EPUB specification, such as setting the title and retrieving author information. Lower-level APIs provide granular control over the EPUB structure, enabling tasks like adding chapters and metadata. Built upon fast-xml-parser, @smoores/epub provides robust XML parsing and manipulation capabilities, facilitating efficient handling of EPUB file XML content.

Read more
Development Library

HYTRADBOI: The Async Database & Programming Language Conference

2025-02-02

HYTRADBOI is a unique online conference exploring the intersection of databases and programming languages. All talks are pre-recorded and captioned, delivered asynchronously via a persistent chat room. This allows participants to join from anywhere, anytime, fostering rich discussion. Attendees rave about its asynchronous format, the depth of the talks, and the forward-thinking nature of the content, making it a highly recommended event.

Read more

Tiny Ten: A 10-Watt, Ten-Band Amateur Radio Transceiver Built for the Backcountry

2025-03-06

Inspired by poor radio reception during a backpacking trip in Oregon's Cascade Mountains, W7PUA designed and built the "Tiny Ten," a lightweight, 10-watt, ten-band amateur radio transceiver. This Teensy 4.1-based project leverages the OpenAudio_ArduinoLibrary and boasts multiple modes (SSB, CW, AM, FM, FT8). Clever hardware design, including plug-in filter boards, minimizes weight and maximizes efficiency. Despite its compact size, the Tiny Ten delivers impressive receive sensitivity, dynamic range, and selectivity, exceeding 10 watts of output power on 10 meters. The article details its hardware architecture, software design, and performance testing, offering valuable insights into the design process and showcasing impressive DIY skills.

Read more
Hardware amateur radio

Building OTP Authentication from Scratch: Unraveling HOTP and TOTP

2025-04-15
Building OTP Authentication from Scratch: Unraveling HOTP and TOTP

This post dives deep into the inner workings of One-Time Password (OTP) algorithms, HOTP and TOTP. Starting with the author's experience implementing authentication at work, it explains the security benefits of OTPs and details the HMAC-based OTP generation process, including key hashing, timestamp calculations, and final code generation. A demo app built by the author is also provided for readers to learn and test.

Read more
Development

Real-Time Location with Ultra-Wideband (UWB): A Python-Driven Test Framework

2025-01-17
Real-Time Location with Ultra-Wideband (UWB): A Python-Driven Test Framework

This article presents a Python test framework for a Real-Time Location System (RTLS) based on Ultra-Wideband (UWB) technology. The author uses Decawave DW1000 modules and Raspberry Pis, implementing two-way ranging with custom Python code and testing system accuracy and stability. The article details the Asymmetric Two-Way Ranging technique and discusses hardware selection, software architecture, and potential problems such as power supply, interrupt handling, and RF performance. Test results show that the system offers high accuracy and stability under good line-of-sight conditions and maintains a degree of accuracy even with obstacles.

Read more

The Rise of ESM-Only: Is the JavaScript Ecosystem Ready?

2025-03-24
The Rise of ESM-Only: Is the JavaScript Ecosystem Ready?

This post explores the current state of ESM (ECMAScript Module) adoption in the JavaScript ecosystem and argues for a transition to ESM-only packages. The author revisits a previous post advocating for dual CJS/ESM formats and explains the shift towards ESM-only. The rise of modern build tools like Vite and frameworks like Nuxt and SvelteKit has made ESM the dominant module system. Node.js's support for `require()`ing ESM modules further removes interoperability hurdles. While dual CJS/ESM packages served as a transition mechanism, they introduce significant maintenance overhead and interop issues. The author recommends ESM-only for new projects and provides guidance for different project types (browser, CLI). A new tool, Node Modules Inspector, is introduced to help analyze ESM adoption in project dependencies.

Read more
Development JavaScript Modules

25 Years Later: The Untold Story of the Mac OS X Dock

2025-01-06
25 Years Later: The Untold Story of the Mac OS X Dock

This blog post recounts the experiences of James Thomson, an early engineer on the Mac OS X Dock. He details his time working on the Dock at Apple in Ireland, including the initial design process, interactions with Steve Jobs, and his eventual departure from Apple. The story is filled with tension and intrigue, including secrecy surrounding the project, Jobs's demands about the engineer's location, and the challenges and triumphs Thomson faced during development. The post offers a fascinating glimpse into the creation of a pivotal piece of Mac OS X, and the journey of a software engineer.

Read more
Development

Elegant Parametric Speaker Cabinets: A 3D-Printed Odyssey

2025-01-28
Elegant Parametric Speaker Cabinets: A 3D-Printed Odyssey

This detailed post chronicles a multi-year journey designing and building fully parametric speaker cabinets using OpenSCAD. Inspired by the curves of Mission SX2 and Sony speakers, the author crafted an elegant design adaptable to various drivers and enclosure volumes. The build process, meticulously documented, covers 3D printing challenges (PLA curling, bed adhesion), assembly using clever screw-based clamping, and meticulous finishing to hide layer lines. The final product boasts exceptional sound quality and a professional finish, exceeding expectations for a DIY project.

Read more
Hardware speaker build

Massive Data Breach: 190 Million Americans Affected by Change Healthcare Ransomware Attack

2025-01-25
Massive Data Breach: 190 Million Americans Affected by Change Healthcare Ransomware Attack

UnitedHealth Group confirmed that a ransomware attack on its subsidiary, Change Healthcare, in February 2024 affected approximately 190 million Americans – nearly double previous estimates. The attack resulted in the theft of massive amounts of sensitive health and insurance data, including names, addresses, birthdates, Social Security numbers, and medical records. Some data was even published online by the hackers. Change Healthcare paid ransoms to prevent further data release. This is the largest healthcare data breach in US history, highlighting critical vulnerabilities in the healthcare system's cybersecurity.

Read more

Code Rewrites: Magic Wand vs. Iterative Improvement

2025-01-03

This article explores the pros and cons of code rewrites. Using Netscape's failure as an example, the author argues that rewriting isn't always the best approach. Instead of large-scale rewrites, maintain idealism, imagine a perfect solution (wave a magic wand), and then iteratively improve the existing code. By distinguishing between necessary and accidental complexity, identify improvement directions and continually reflect on "If I could wave a magic wand, what would I want it to be?", ultimately reaching the ideal state.

Read more

OpenAI's AGI Nightmare: A $500 Billion Gamble and the Looming AI Bubble

2025-03-25
OpenAI's AGI Nightmare: A $500 Billion Gamble and the Looming AI Bubble

OpenAI's ambitious "Project Stargate," a $500 billion initiative to build AGI, faces a major threat from DeepSeek R1, an open-source model from a Chinese hedge fund. DeepSeek R1 matches OpenAI's flagship model's performance at a fraction of the cost, raising concerns about an AI bubble. Massive investments are pouring into AI, yet OpenAI is hemorrhaging money, relying on a technological lead that DeepSeek R1 has effectively erased. Over-investment, dependence on expensive GPUs and energy, and questionable productivity gains from AI tools all increase the risk of a bubble burst, potentially causing a significant economic shock.

Read more
Tech AI bubble

Havana Syndrome: Intelligence Agencies Shift Stance on Mystery Weapon

2025-01-13
Havana Syndrome: Intelligence Agencies Shift Stance on Mystery Weapon

Two years ago, US intelligence agencies emphatically concluded that "Havana syndrome" wasn't the work of a foreign adversary wielding some kind of energy weapon. New intelligence has overturned that conclusion. Some intelligence agencies are no longer ruling out the possibility of a mystery weapon, with the White House even suggesting a deliberate attack by a US foe. This shift is significant, potentially leading to a strong US response. While the new report acknowledges uncertainty, the move from outright denial to a 50% chance is noteworthy.

Read more

Louis Armstrong's Ghana Trip: A Jazz Fusion

2025-02-19
Louis Armstrong's Ghana Trip: A Jazz Fusion

In 1956, Louis Armstrong's visit to Ghana, then on the brink of independence, ignited a cultural explosion. His performance fused with Ghana's indigenous highlife music, propelling highlife to international recognition and solidifying its role in Ghana's independence movement. Armstrong's trip not only boosted Ghana's music globally but also allowed him to trace his musical roots and deepen his understanding of African culture. Today, Ghana's jazz and highlife scenes are experiencing a resurgence, linked to the nation's renewed focus on its history and the 'Year of Return' initiative.

Read more

A Decade of Side Projects: Lessons Learned

2025-05-19

Since 2009, a developer has been building side projects, some sold, some still online, and some defunct. His key takeaway: build what you enjoy and stick with familiar tech stacks (WordPress, Laravel, React, etc.). Don't get bogged down in framework choices; users care about the project, not the underlying tech.

Read more
Development

Registry Explorer: Interactively Explore Docker Images

2025-09-13

Registry Explorer is a powerful tool that lets you interactively explore the contents of Docker images, even drilling down into the filesystem. Running on Google Cloud Run and using google/go-containerregistry, it cleverly minimizes costs and registry traffic. Layers are downloaded and indexed only once, with subsequent access using efficient indexing and range requests. This saves bandwidth and reduces load on the registry. The project is open-source and sponsored by Docker.

Read more
Development Image Exploration

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.

Read more
Development

C++26: Removed and Deprecated Features Roundup

2025-03-20

C++26 is removing or deprecating several features. These include the complete removal of the `std::allocator` typedef deprecated in C++20, and the no-argument overload of `std::basic_string::reserve()`; removal of deprecated Unicode conversion utilities and `std::strtok`; removal of aged `strstreams` and `std::shared_ptr` atomic access APIs; and removal of `std::wstring_convert`. Additionally, `std::is_trivial` is deprecated, with suggestions to use the more precise `is_trivially_XXX` alternatives; and `std::memory_order::consume` is deprecated due to unsatisfactory specification and implementation difficulties. These removals and deprecations aim to improve language safety and efficiency, and clean up outdated functionality.

Read more

Diving Deep into Compound File Binary Format (CFBF)

2025-03-20

The Compound File Binary Format (CFBF), also known as Compound Document Format, is a compound document file format that stores numerous files and streams within a single disk file. Resembling a FAT filesystem, it's composed of sectors, a File Allocation Table (FAT), directories, and various sector types including FAT sectors, MiniFAT sectors, Double-Indirect FAT sectors, directory sectors, and stream sectors. A CFBF file begins with a 512-byte header containing information to interpret the rest of the file. Understanding CFBF's structure is crucial for comprehending the underlying storage of files like Microsoft Office documents.

Read more
Development file format

YouTube Experiment: DRM-Only Videos on TV?

2025-03-10
YouTube Experiment: DRM-Only Videos on TV?

Reports indicate YouTube is experimenting with a limited rollout where normal videos only offer DRM-protected formats on the TV (TVHTML5) Innertube client. This affects not only yt-dlp, but also official YouTube TV clients (PS3, web browser, Apple TV), which also only provide DRM formats. Tests show accounts involved can only access DRM-protected versions. This suggests a potential shift in YouTube's copyright protection strategy, potentially impacting how users watch and download videos.

Read more

Building the Worst Video Player with Three.js: A Nostalgic Pixel-Perfect Game

2025-05-18
Building the Worst Video Player with Three.js: A Nostalgic Pixel-Perfect Game

This article details the author's journey building a creative video player using Three.js and a physics engine. Instead of a traditional player, it's an arcade-style game where users must insert virtual coins to watch video, earning only three seconds of playback per coin. Players drag and drop coins into a slot, requiring precision to continue watching. This nostalgic and fun design challenges traditional video player design and showcases the limitless possibilities of web development.

Read more
Development Video Player

arXivLabs: Experimental Projects with Community Collaborators

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

arXivLabs is a 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. arXiv only works with partners adhering to these principles. Got an idea to enhance the arXiv community? Learn more about arXivLabs.

Read more
Development

The Paradigm Shift in AI Product Development: From Determinism to Probability

2025-08-22
The Paradigm Shift in AI Product Development: From Determinism to Probability

This article explores how general-purpose artificial intelligence (AGI) is disrupting the tech industry, particularly in software design, engineering, building, and growth. Traditional software development follows a deterministic model: known inputs produce expected outputs. However, AGI models are probabilistic, with outputs based on statistical distributions and inherent uncertainty. This renders traditional software engineering methods and metrics (like SLOs) obsolete. The author advocates for an empirical approach, using scientific methods and data-driven decision-making to build and iterate AI products, rather than relying on traditional engineering thinking. This requires organizations to transition from engineering to science, centering on data, and breaking down siloed departments for a holistic systems view.

Read more
Development

F#'s Untapped Goldmine: Typed Stack Traces (TST)

2025-01-16

This article explores the little-known Typed Stack Traces (TST) technique in F#, which uses the type system to track errors, solving the problems of error parsing and code maintenance in large monolithic applications. The author argues that TST, combined with Domain-Driven Design (DDD) and a new methodology called "Constraint-Driven Development (CDD)", can revolutionize software architecture and development processes, allowing developers to return to monolithic architectures and waterfall project management, simplifying the work of DevOps and SRE. TST leverages F#'s union types and pattern matching capabilities to create clear error type trees, improving code readability and maintainability. The article uses an interview exercise as an example to detail how to use TST, DDD, and CDD to build a simple REST API.

Read more
Development

Koniku: Building the Future of Computing with Living Neurons

2025-02-24
Koniku: Building the Future of Computing with Living Neurons

Koniku is attempting to build computers unlike any that have ever existed, using living neurons. Founder Oshiorenoya Agabi and his team in Berkeley, California, are developing a neuron-silicon hybrid chip, called the Koniku Kore, initially for chemical sensing, with future applications spanning drug development, agriculture, and neurological disease treatment. The company has secured contracts with defense and consumer product companies and plans to release a developer chip. While challenges remain, such as neuron cultivation and signal interpretation, Koniku's innovation lies in its fusion of biology and electronics, pushing towards 'wetware' AI and challenging the limitations of traditional silicon-based computing.

Read more

Pitt Freezes PhD Admissions Amidst NIH Funding Uncertainty

2025-02-23
Pitt Freezes PhD Admissions Amidst NIH Funding Uncertainty

The University of Pittsburgh has temporarily halted PhD admissions due to uncertainty surrounding frozen research aid from the National Institutes of Health (NIH). This follows an NIH policy to reduce the funding cap for indirect research costs (like building maintenance and support staff) from Pitt's current 59% to 15%. While a federal judge temporarily blocked the policy, Pitt preemptively paused admissions to assess the impact of potential funding cuts. Other universities, including USC and Vanderbilt, have taken similar actions. The NIH funding slowdown is already evident, significantly impacting Pittsburgh's life sciences sector.

Read more

hyveOS: Serverless Swarm Orchestration for Drones and Robots

2025-01-17

hyveOS is a decentralized system for coordinating swarms of robots and drones, eliminating the need for internet connection or central servers. Developers can install hyved on various devices (like Raspberry Pis) and use diverse SDKs (including Python, Rust, JavaScript, etc.) to build applications. Its core strength lies in its decentralized architecture, enabling flexible and reliable swarm control adaptable to complex scenarios. Sample applications are provided for easy onboarding.

Read more
Development
1 2 535 536 537 539 541 542 543 596 597