1. Source code for Quake 2 rerelease

Total comment counts : 43

Summary

The article discusses the game code for the 2023 rerelease of Quake II. It mentions that mods can be loaded into the rerelease in the same way as the original game. The article also talks about the changes in the API, such as a new version of the API, a new network protocol, and changes to the structure and layout. It provides information on the changes made to the game DLL, math functions, and info keys. The article also mentions updates to player movement, network improvements, and changes to configstrings. There are details about the structure changes in the game and server code, as well as changes in the bots system. It also talks about flags, structure changes, and effects in the game.

Top 1 Comment Summary

The article is a humorous anecdote shared by John Carmack in 1997 about his visit to a Ferrari dealership with the intention of buying a sensible car. However, he ended up buying an F40 instead. Carmack then mentions his plan to give away his first Ferrari as the grand prize of a Quake tournament, but asks readers not to send him any mail about it yet. He provides details about the specifications of the Ferrari he plans to give away, including its turbocharged engine and the need for some interior work.

Top 2 Comment Summary

The article discusses the author’s experience writing code for the game Quake II and praises its clear and straightforward nature. The author also mentions using Quake and Quake II to teach a VR class, where students learned to create their own virtual reality games by making their own levels. The article concludes with the author’s mention of a mod they made for the game.

2. Firefox desktop extensions coming soon for the upcoming Android release

Total comment counts : 39

Summary

Mozilla will be launching support for an open ecosystem of extensions on Firefox for Android. They will be providing guides, resources, and community events to support developers in transitioning their desktop extensions to Android. The support for extensions on Android will include a non-persistent event page architecture to improve stability. Developers can test their mobile extensions on Firefox for Android Nightly and create a collection on addons.mozilla.org (AMO). The release aims to expand the reach of desktop extensions into the mobile Android space.

Top 1 Comment Summary

The author of the article acknowledges the hate that Firefox and its add-ons receive, but argues that other mainstream browsers like Chrome and Safari do not even offer add-ons. They believe that despite Firefox’s low market share, it is the only mainstream browser supporting add-ons, which puts no pressure on Chrome to add them. The author suggests that instead of hating on Firefox, users should consider the dominance of Chrome and Google’s influence on the Internet. They conclude that while it’s okay to complain, it’s not a worthy battle to fight.

Top 2 Comment Summary

The article discusses an experiment conducted to investigate Add-Ons in Firefox for Android. It mentions that Firefox Nightly is not necessary to run more extensions than the “supported” ones. It also explains how to create a custom collection of Add-Ons using a disposable email address. The article further notes that there is no visible Settings option to add a custom collection in Fennec from F-Droid, but it can be made visible by tapping the Firefox logo three or more times on the About page under Settings. To add a custom collection, an “ID” needs to be entered in Fennec, which can be found in the URL that points to the collection on addons.mozilla.org. However, after adding a custom collection, the default collection of “supported” Add-Ons by Mozilla is lost, and it is not easy to switch between collections. Whenever the user accesses the Add-Ons menu in Fennec, Firefox tries to connect to addons.mozilla.org, which may raise privacy concerns. The article also mentions that many Add-Ons that are not “supported” by Mozilla work just as well as the supported ones.

3. Show HN: Tetris, but the blocks are ARM instructions that execute in the browser

Total comment counts : 17

Summary

This article is about a game called Tetris, but with a unique twist. Instead of traditional Tetris blocks, the game uses assembly instructions that run on a CPU emulator within a web browser. In order to play the game, you need to have WebAssembly enabled or use a browser that supports it. The game relies on Javascript and WebAssembly to run, with the CPU emulator being executed entirely in the browser. The game’s logic is handled in the front end, while the back end only serves static content.

Top 1 Comment Summary

The article praises a tool that helps programmers learn assembly language, despite the writer’s limited experience. The writer also mentions using a cheatsheet for instructions and expresses disappointment over a segfault resulting in a low score.

Top 2 Comment Summary

The article discusses a game with a high score of 65612. The author gives feedback, mentioning that it was not obvious how to close the help menu and that they enjoyed the Goblin music. They also appreciate the color coding and suggest a “sandbox mode” where users can preview the effects of running an instruction and modify their program. This could be useful for someone learning ARM assembly.

4. My Overkill Home Network

Total comment counts : 68

Summary

The article describes the author’s home network setup, which includes a rack in a centrally located closet. The rack contains networking gear, patch panels, a PFSENSE server, and a 1Gb switch. The author utilizes redundant internet connections from Verizon and AT&T Fiber, with the AT&T connection in passthrough mode. The article also mentions the use of a Wireguard VPN setup to a VPS in Linode for remote access. The network includes various devices such as a Hubitat hub, Ripe Atlas probes, NTP servers, VMware ESXi hosts, a TrueNAS storage server, a Blue Iris NVR, and IoT devices. The author also explains the use of power distribution units (PDUs) and a UPS for power management. Additionally, the article mentions the presence of a weather station, ADS-B antenna, and Ruckus access points for Wi-Fi coverage. The author plans to work on future projects such as setting up encrypted mesh communication using Meshtastic LoRa T-Beam devices.

Top 1 Comment Summary

The author used to have an extensive home network with self-hosted services and a 10G backbone. However, they have now simplified their network to two wired machines and everything else running on Wi-Fi. They have retired most of their networking equipment and got rid of their NAS due to high electricity costs. Instead, they now use cloud storage, encrypted with Cryptomator, and have redundant storage for backups. They only have a small ARM-based machine at home for local backups and running a Plex library. This change has saved them money on electricity and hardware costs, as well as freed up their time.

Top 2 Comment Summary

The article explores the question of why a high level of connectivity is necessary for certain activities such as running Ethernet for stable WiFi, using fiber for various purposes, and connecting security and nature cameras. The author wonders why this level of connectivity is needed outside of hobbies or home-based businesses. They question whether investing in redundant Internet is worth the cost and why such a high level of connectivity is necessary.

5. Fastest branchless binary search

Total comment counts : 28

Summary

The article discusses different implementations of a binary search algorithm in C++ that aim to improve performance by reducing branch mispredictions. The author presents a branchless version of the algorithm that uses conditional move instructions instead of branches, resulting in faster execution. They also explore compiler options and optimizations that can further enhance the speed of the binary search implementation. The article concludes with a discussion about the limitations of the branchless approach and the potential for future optimizations.

Top 1 Comment Summary

The article discusses the idea that long pipelines with branch mispredictions are not necessary for architecture. It suggests that analysis and translation can be done ahead of time, rather than on the fly, which would eliminate the need to worry about branches. The article also mentions that all operations involve branching to some degree, but these local branches do not significantly impact performance because they have a short or non-existent pipeline.

Top 2 Comment Summary

The article mentions a desire for a clean and fast bare-metal language. The author discusses alternatives such as Rust and Zig but suggests considering Nim, which has a native library implementation of lowerBound. Although Nim is not a bare-metal language, it can compile to one or two, making it worth exploring. The article also questions any issues with using C.

6. Artificial General Intelligence – A gentle introduction

Total comment counts : 21

Summary

The article provides an overview of the field of Artificial General Intelligence (AGI), discussing its definition, research goals, and different approaches. It mentions that deep learning has made significant progress, renewing discussions on human-level AI. The article also touches on the debate surrounding the safety and ethics of AGI. Several AGI projects are mentioned, including GPT-4, ACT-R, AIXI, Cyc, and OpenCog. Each project is briefly described along with the research goals and technical approaches. The article concludes by emphasizing the importance of accelerating AGI research and addressing misconceptions about AGI.

Top 1 Comment Summary

The article highlights that while some ambitious AI projects in the past have failed, significant progress has been made in various AI domains. These include game-playing and adversarial search, automated planning and scheduling (used by NASA), automated theorem proving, Boolean satisfiability solving, and program verification and model checking. These successes are considered separate from “Artificial Intelligence” because they work effectively. The article provides references for further reading.

Top 2 Comment Summary

The article discusses the shift in mainstream AI in the 1970s and 1980s from general-purpose intelligent systems to domain-specific problems and special-purpose solutions. The author disagrees with this view, stating that the introduction of expert systems in the 1980s does not indicate a move away from a common foundation in AI. They argue that AI has always consisted of loosely related subfields with a common goal of creating algorithms that can perform tasks humans believe only they can do. The article also mentions the presence of snake oil, armchair philosophers, and fanboy hobbyists in the field of AI, particularly in the rebranded field of AGI (Artificial General Intelligence).

7. Git-appraise – Distributed Code Review for Git

Total comment counts : 26

Summary

The article discusses a distributed code review system for Git repositories. It explains that code reviews are stored as Git objects, allowing developers to have their own copy of the review history that can be pushed or pulled. The system eliminates the need for server-side setup and can be used with any Git hosting provider. The article also provides instructions on how to use the command line tool for code reviews and describes the format and storage of code review data in Git notes. It mentions the use of request schemas, continuous integration results, robot comments, and review comments. The article concludes by referencing the CONTRIBUTING file for information on contributing to the code review system.

Top 1 Comment Summary

The article is about a unique approach to PR (pull request) reviews in software development. The author suggests using code comments to review changes directly in the working tree, rather than relying on PR comments that can break during rebase or merging. This approach has several advantages, such as easier handling of comments, ability to navigate code, and a more engaged review process. However, the author acknowledges that others may see this approach as unconventional.

Top 2 Comment Summary

The article discusses a new tool called git-bug, which is a spiritual successor to git-appraise. Git-bug supports issues and will eventually support kanban and code review. It offers several notable improvements, such as a CRDT-like reusable data structure for a true peer-to-peer workflow and easy creation of new entities like code reviews. It also has bidirectional bridges to platforms like GitHub and GitLab, making it easy to transition or use git-bug as a complement to those platforms. Git-bug provides a command-line interface, terminal UI, and web UI to cater to different preferences and integrate into existing tooling or workflows.

8. SQLite Functions for Working with JSON

Total comment counts : 12

Summary

The article explains the JSON functions and operators available in SQLite. It mentions that SQLite supports various functions for dealing with JSON values, including functions for inserting, replacing, and removing elements, as well as functions for extracting values and verifying JSON strings. It also explains the use of path expressions to navigate and manipulate JSON structures. The article provides examples and notes on the behavior of these functions. Additionally, it mentions that SQLite stores JSON as plain text and does not support a binary encoding for JSON. The article also discusses the compatibility of these functions with JSON5 extensions and describes the limitations on nesting depth and support for different JSON types.

Top 1 Comment Summary

The article suggests a method for working with JSON data in which each JSON document is stored as is in one column. Virtual columns are then created to store specific information that you want to query, using the json_extract function. These virtual columns can be indexed to enable fast searches. The advantage of this approach is that you don’t have to decide what to index at insert time, as you can always create more virtual columns when needed. Additionally, it is possible to search non-indexed raw JSON, although this may be slower for large collections. The author expresses their admiration for SQLite in the conclusion.

Top 2 Comment Summary

The author has been using JSON in SQLite to back up data from an API that returns JSON. They mention that the JSON functions in SQLite work well for basic usage and are glad that the -> and ->> operators were added to make the syntax shorter. The author compares SQLite’s JSON capabilities to those of other databases like Postgres and MySQL. They express a desire for a more advanced JSON manipulation tool like jq, as they find the JSON path language used in SQLite to be very basic. However, they acknowledge that it may be too much to ask for a relational database to support advanced JSON manipulation and suggest using SQL to manipulate JSON after extracting it to a tabular format.

9. Therapy as a way of aligning with your subconscious

Total comment counts : 26

Summary

error

Top 1 Comment Summary

This article highlights the increasing loneliness and lack of support that many people face in today’s society. The author suggests that therapy has become a necessary outlet for those who are unable to find someone to listen to them or silence the noise in their lives. They mention the trend in Japan where people rent friends to mitigate their feelings of loneliness. While the article acknowledges that therapy is not inherently bad, it argues that a community and genuine friendships could be a solution to the problems therapy aims to address.

Top 2 Comment Summary

The article discusses the author’s personal experience with therapy and their decision to learn about Cognitive Behavioral Therapy (CBT) on their own. Instead of seeing a therapist, they have been engaging in “behavioral experiments” to challenge their negative thoughts and gather evidence to prove them irrational. However, they note that the process requires continuous effort and perseverance, as they have experienced many setbacks and have had to consistently pick themselves back up.

10. YouTube-Dl Site Goes Offline as Hosting Provider Enforces Court-Ordered Ban

Total comment counts : 35

Summary

German hosting provider Uberspace has taken down the website of YouTube-ripping software, youtube-dl, following a court order in a copyright infringement lawsuit filed by Sony, Warner, and Universal. Uberspace, although not hosting the software, was held responsible for the website linking to the software hosted on GitHub. The software was previously targeted by the RIAA, but GitHub initially complied with a takedown notice before later restoring the youtube-dl repository. Sony, Warner, and Universal then pursued Uberspace, arguing that the software violated YouTube’s download protection. Uberspace argued that the protection could be circumvented and that the software had legal uses, but the court ruled against them. Uberspace is appealing the decision and hopes to unblock the website if successful.

Top 1 Comment Summary

The author mentions that the project still has a page on GitHub and provides the link. They have also moved on to a different GitHub page. The author finds it frustrating that YouTube-dl was not doing anything infringing on its site.

Top 2 Comment Summary

The article discusses the recent decision to restore the “youtube-dl” repository on GitHub. The author finds it amusing how symbolic and insignificant the restoration is, considering GitHub has already shown support for the project. The article mentions that the Uberspace provider is also appealing the decision. Overall, the author sees the restoration as a positive outcome against rightsholders and litigators.