Rockwell famously used 6502-based cores in modems for many years, but that doesn’t limit the use of other 6502s. John Iannetta’s “35-cent modem” from 1998 used the SID chip to modulate data through a C64’s sound output to a receiving modem. Recently, the author revisited this project using a Commodore SX-64 and a WorkSlate. Despite […]
Read more »
At Qovery, the engine-gateway service was running smoothly until an unexpected out-of-memory crash occurred. Despite stable memory consumption, the service was abruptly restarted due to exceeding the memory limit set. After investigating with deep kernel messages, it was discovered that the OOM issue was caused by a subtle difference in how errors were logged. The […]
number, &hints, &server_addr); if (rc != 0) { on_func_failure(“Failed to resolve hostname”); } getaddrinfo(CPP_HOSTNAME, port_number, &hints, &server_addr): Resolves the hostname (CPP_HOSTNAME) and port number to an IP address and protocol-specific address structure. The function fills in the struct addrinfo server_addr with the resolved information. If it fails, the program exits. Create A Socket int client_socket […]
On January 13, 2025, GitHub unveiled sub-issues, issue types, and advanced search for issues to the delight of users. Sub-issues help organize tasks within a parent-child hierarchy, making tracking progress seamless. Issue types classify and manage tasks across repositories consistently. Advanced search capabilities enable users to find specific issues effortlessly by using complex filters. The […]
The author showcases their experience in creating an image viewer for terminal emulators, highlighting the limitations of existing image viewers that support only a few image formats. They delve into the lack of widespread support for newer image codecs like JPEG XL, AVIF, and HEIC, posing the question of software adoption. The author also touches […]
“The Fuzzing Book” addresses the issue of software bugs by automating software testing through the generation of tests automatically. The book covers various techniques such as random fuzzing, mutation-based fuzzing, grammar-based test generation, and symbolic testing, all illustrated with code examples for hands-on experimentation. Written by experts in software testing, the book includes executable code […]
This article delves into the unique concept in Haskell where side effects are first-class values, allowing for the storage of effectful computations for later use. Surprisingly, when side effect functions are called and stored in lists or data structures, no actual side effects are executed until explicitly triggered. The article also explores the use of […]
Complex systems like databases, compilers, and browsers are often seen as black boxes by users, but they are essentially just code. By focusing on the core ideas and minimizing unnecessary details, you can recreate seemingly complex software. For example, building a compiler can help you understand concepts like parsing with recursion and representing a program […]
Forgejo is a self-hosted lightweight software forge brought to you by an inclusive community under Codeberg e.V. It focuses on security, scaling, federation, and privacy. You can create an account on Codeberg or self-host it for your own projects. It offers simple project management, ease of use, and is a self-hosted alternative to GitHub with […]
The author sets out to create glow-in-the-dark material, inspired by the fun but generic glow powder from China. The chosen compound is Strontium Aluminate (SrAl2O4), known for its long-lasting glow. The process involves various chemical reactions with reagents that are corrosive and toxic. The author faces challenges such as precipitating aluminum hydroxide, adding lanthanide dopants […]