Skip to main content

2024-08-03

We ran out of columns

  • Jimmy Miller's "We ran out of columns" describes his first software job's chaotic yet fascinating codebase, highlighting a database table called Merchants that ran out of columns, leading to the creation of Merchants2.
  • The codebase was a mix of VB, C#, various JavaScript frameworks, and numerous SOAP services, with notable issues like a developer not checking in code, causing hard-to-trace bugs.
  • Despite the messiness, the codebase allowed for creative problem-solving, with developers carving out their own solutions, leading to a decoupled system and a unique, direct connection with users.

Reactions

  • A developer shared their experience with a disorganized codebase at their first company, which lacked version control and had numerous global variables.
  • Bugs were fixed by installing Visual Studio on customer sites and running the app in debug mode, leading to multiple, inconsistently named versions stored on a shared disk.
  • The developer eventually introduced modern practices like git, Linux, and Continuous Integration (CI) for new projects, but the old project remained unchanged, highlighting the challenges of improving dysfunctional codebases.

p5.js

  • The p5.js library offers a range of examples and community sketches to help users learn and explore its capabilities.
  • Notable projects include Geodata Weaving, Slime Molds, Generative Succulents, Padrão Geométrico, Zen Pots, and Glitch animation, showcasing the library's versatility.
  • Users can support the p5.js library through donations or by downloading it for their own use.

Reactions

  • p5.js received a €450k grant from the Sovereign Tech Fund in 2023 to enhance its documentation and accessibility, leading to a new, user-friendly website.
  • Users appreciate p5.js for its beginner-friendly nature but note performance limitations compared to libraries like d3 or three.js.
  • The new website has been positively received, though some users miss references to p5.js's origins from the Processing project, which has faced budget allocation criticism.

Tauri 2.0 Release Candidate

  • Tauri 2.0 Release Candidate is announced, with a stable release expected by the end of August, focusing on finalizing documentation and fixing critical bugs.
  • Tauri 2.0 introduces foundational support for mobile development, though it does not yet match desktop feature parity, and includes breaking changes like a fixed namespace for core plugins and a Rust API refactor.
  • An external security audit has been completed with all issues fixed, and the full report will be published soon; the community is encouraged to contribute to documentation and issue resolution.

Reactions

  • Tauri 2.0 Release Candidate has been announced, sparking significant discussion among users about its features and potential improvements.
  • Tauri is a framework for creating small, fast binaries for major platforms using frontend frameworks that compile to HTML, JavaScript, and CSS, with backend logic in languages like Rust, Swift, and Kotlin.
  • Users compared Tauri to Electron, noting Tauri's lighter footprint and native integration, while also discussing its security focus, cross-platform UI, and challenges like Linux web component issues and the need for better documentation.

The future of kdb+?

  • kdb+ is a powerful technology for historical market data storage and analysis, but alternatives like Clickhouse, QuestDB, Bigquery, and Redshift are now competitive in speed.
  • For local quantitative analysis, Python with DuckDB, Polars, or PyKX is preferred due to accessibility and cost-effectiveness.
  • kdb+'s real-time streaming and distributed computing capabilities are underutilized, with technologies like Kafka and Flink gaining more popularity.

Reactions

  • The discussion centers around the future of kdb+, a high-performance time-series database, and its potential successors.
  • Alternatives like TimeScale (a PostgreSQL extension), DuckDB, and ClickHouse are highlighted for their performance and cost-effectiveness.
  • The proprietary nature and high costs of kdb+ are major drawbacks, prompting some to consider open-source solutions like Python with DuckDB and Polars for time-series analysis.

Hanon Pro – piano technique and exercises for the digital age

  • Hanon Pro is a modern piano practice app for iPhone, iPad, and Mac, offering features like progress tracking, feedback, and practice habit building.
  • Advanced functionalities include performance analysis, automatic page turning, and interactive features when connected to a MIDI keyboard via Bluetooth or USB.
  • The app supports iCloud sync, daily practice reminders, and achievements, and is built with SwiftUI and Core MIDI, compatible with iOS 17.

Reactions

  • Hanon Pro is a piano technique app providing exercises and feedback, designed for the digital age.
  • Users have reported app crashes with MIDI controllers and expressed a desire for MIDI playback and more flexible practice options.
  • The app requires iOS 17+, causing frustration among users with older devices, and suggestions for improvement include better device compatibility and additional features like progress tracking and custom score uploads.

Lisp with GC in 436 Bytes

  • SectorLISP now includes garbage collection, fitting a high-level garbage collected programming language into the 512-byte boot sector of a floppy disk, using only 436 bytes.
  • This makes LISP the smallest programming language, surpassing FORTH and BASIC, and it is compatible with all PC models since 1981 with at least 64kb of RAM.
  • The project showcases significant optimization, reducing the i8086 assembly implementation by another hundred bytes, and includes a 40-byte garbage collector, with binaries and source code available on GitHub.

Reactions

  • A Lisp interpreter with garbage collection (GC) has been implemented in just 436 bytes, showcasing an impressive feat of minimalism in programming.
  • The project, hosted on justine.lol, has garnered significant attention and admiration for its compact and efficient design, referencing previous works and providing educational insights.
  • Discussions highlight the balance between creating a minimalistic interpreter and maintaining the functionality of a "real" Lisp, sparking debates on the nature of programming languages like Brainfuck and their practical applications.

I Made an Extended Version of Vimtutor – Introducing Vimtutor Sequel

  • "Vimtutor Sequel" offers advanced Vim lessons, including commands, techniques, step-by-step tutorials, and interactive exercises.
  • Installation can be done via Homebrew or by cloning the repository from GitHub, with detailed instructions provided for both methods.
  • The tool is licensed under the MIT License, and contributions are welcomed as per the guidelines in CONTRIBUTING.md.

Reactions

  • Vimtutor Sequel is an extended version of the original Vimtutor, aimed at users familiar with basic Vim commands and looking to learn advanced features.
  • Key features include tutorials on splits, spellcheck, advanced search and replace, macros, Vim scripting, plugins, sessions, and registers, along with a custom vimrc configuration for a consistent learning experience.
  • Installation instructions are provided for Mac, Windows, and Linux, and the creator is seeking feedback and contributions via the GitHub repository.

1991 WWW-NeXT Implementation

  • This GitHub repository mirrors Tim Berners-Lee's original WorldWideWeb application for NeXT, showcasing the first prototype Hypertext browser/editor.
  • The application allows access to Hypertext servers, files, and news, providing a glimpse into the early web's functionality.
  • The repository includes a historic changelog, with commit dates backdated to the last-modified day for each file, preserving the original timeline.

Reactions

  • The 1991 WWW-NeXT implementation has been made available on GitHub, sparking interest among tech enthusiasts and digital archaeologists.
  • This release highlights the early graphical nature of the web, contrasting with the text-based browsers that were more common at the time.
  • The project showcases the use of Objective-C and NeXTStep, emphasizing the rapid application development capabilities that were crucial for Tim Berners-Lee's original web browser/editor.

Researchers develop treatment that can kill glioblastoma cells in brain pathway

  • Researchers from McMaster University and other institutions have identified a new brain pathway used by glioblastoma cells and developed a promising therapy to block and kill these tumors.
  • The study, published in Nature Medicine on August 2, 2024, demonstrates that targeting this pathway with CAR T cells and a drug significantly improves survival in preclinical models.
  • The therapy, focusing on the ROBO1 protein, doubled survival time in three cancer models and eradicated tumors in 50% of cases for two of the diseases, offering hope for glioblastoma and other invasive brain cancers.

Reactions

  • Researchers have developed a new treatment that can kill glioblastoma cells, a highly aggressive brain cancer with historically low survival rates.
  • Dr. Richard Scolyer, who is treating his own glioblastoma, has shown promising results with no recurrence for over a year, highlighting the potential of this new approach.
  • The discussion emphasizes the complexity and challenges in treating cancer, noting that while immunotherapy is effective for some cancers, it doesn't work for all tumors, and alternative treatments like ketogenic therapy are still debated.

Common I/O Tasks in Modern Java

  • The article by Cay Horstmann discusses common I/O tasks in Java, particularly for web applications, such as reading/writing text files, handling JSON, and working with ZIP files.
  • It highlights API improvements since Java 8, including UTF-8 as the default encoding from Java 18 and enhancements to the java.nio.file.Files and java.io.InputStream classes.
  • The article provides practical code examples for reading and writing text files, handling input streams, and working with directories and ZIP files, emphasizing the use of modern Files methods over the legacy File class.

Reactions

  • Discussion centers on the quirks and issues with Java's URL and URI classes, particularly around equality checks and DNS resolution.
  • Highlights the evolution of Java I/O from java.io.File to java.nio.file.Path, emphasizing non-blocking I/O and better abstraction.
  • Mentions practical advice and common pitfalls in using Java's I/O APIs, such as handling exceptions in streams and the use of var.

Judges suspends FCC net neutrality restoration rule

Reactions

  • A judge has suspended the FCC's net neutrality restoration rule, escalating legal conflicts surrounding net neutrality.
  • This suspension follows a Supreme Court decision that reduced federal regulatory power, leading to a volatile regulatory environment.
  • Critics argue that the instability benefits established companies and complicates operations for new market entrants, suggesting Congress should address these issues instead of the courts.

Magnetically levitated space elevator to low-earth orbit (2001) [pdf]

Reactions

  • Hacker News users are discussing a 2001 paper on magnetically levitated space elevators to low-earth orbit, reminiscing about similar concepts in Popular Science.
  • The debate covers technical challenges, including the need for advanced materials like carbon nanotubes and high-temperature superconductors, and the risks of a broken tether.
  • Alternatives such as railguns and launch loops are suggested, with discussions on the economic viability and practicality of space elevators, alongside advancements in superconducting materials.

A year of Meta's news ban in Canada

  • Meta's news ban in Canada, in response to Bill C-18, has led to an 85% drop in engagement for Canadian news outlets on Facebook and Instagram, resulting in an overall 43% decrease in engagement.
  • Approximately 30% of local news outlets have become inactive on social media, and only 22% of Canadians are aware of the ban.
  • Despite the ban, 36% of users still encounter news content through work-arounds, but Canadians are seeing 11 million fewer news views per day on these platforms, consuming less news overall and through a more biased lens.

Reactions

  • Meta's news ban in Canada, influenced by newspaper lobbyists and politicians, mandates platforms to pay for news content, leading Meta to block news links.
  • Critics argue that the ban harms news organizations by removing beneficial free social media links, despite news content still appearing through workarounds like screenshots.
  • The ongoing debate questions whether Meta should pay for news content, with concerns about reduced news consumption, increased biased information, and the impact on news organizations' revenue and survival.

Towards userspaceification of POSIX – part I: signal handling and IO

  • Redox OS has received an NGI Zero grant to implement POSIX signal handling and process management in userspace, allowing a year-long focus on kernel and component improvements.
  • Enhancements in the scheme packet format and new syscalls (SYS_PREAD2 and SYS_PWRITE2) have increased RedoxFS copy performance by 63%, similar to the efficiency of io_uring.
  • The project aims to move more POSIX logic to userspace, with improvements in signal handling and future plans to develop a userspace process manager and further kernel enhancements.

Reactions

  • POSIX allows file descriptors (FDs) to be shared by multiple processes, which is essential for Unix-like systems and capability-oriented security, but this sharing can be moved to userspace.
  • The global cursor in FDs complicates concurrent access, requiring synchronization, and while Rust's std::fs::File API addresses this with mutability requirements, other languages may face bugs or need complex APIs.
  • Modern applications and systems programming are evolving to balance POSIX's historical design with the need for more modular and secure interfaces, utilizing tools like D-Bus and Linux's plan9 namespaces for better isolation and security.

Primitive Recursive Functions for a Working Programmer

  • The article emphasizes the importance of understanding Turing completeness and primitive recursive functions, often overlooked in computer science education.
  • It highlights that many practical problems can be implemented in non-Turing complete languages, which offer benefits like determinism and security.
  • The discussion includes the differences between Finite State Machines, Turing Machines, and Primitive Recursive Functions, noting that PRFs always terminate and can compute many practical functions.

Reactions

  • The article explores primitive recursive functions and their importance in ensuring code termination, aligning with structured programming principles.
  • It discusses the limitations of Turing completeness and the benefits of languages like CUE and Dhall that can guarantee termination.
  • The conversation addresses the practical challenges of proving function termination and the implications for configuration languages, balancing computational power and safety.