No AI. Build your own tree directory viewer in C by hand
The video demonstrates how to build a tree directory viewer in C without using AI. It focuses on manual programming techniques for creating a file system navigator. (youtube.com)
This describes a simple, general algorithm for maintaining aggregates over a sliding window when the aggregation operator lacks an inverse (so naive deque subtraction won’t work). It generalizes a two-stack technique to any associative aggregation by exposing four functions: empty(), unit(x), combine(a,b) and finalize(a). Typical use cases include min/max, quantiles, approximate distinct counts (e.g., HyperLogLog), and means. The claim is that this two-stack construction is compact, uses O(w) memory for a window of size w, and achieves amortized O(1) work per element, making it practical and broadly applicable where inverse or exact incremental updates aren’t available.
Operationally it keeps a values stack plus a cumulative-aggregates stack and a running aggregate for values. push(x) appends x and updates the values aggregate; pop() lazily drains values into cum_aggs by building cumulative aggregates in reverse order when needed and then pops from cum_aggs; eval() combines the last cum_aggs entry with the values aggregate and finalizes the result. The method preserves operand order (no commutativity requirement), bounds per-element work amortizedly, and confines corruption (NaN/infinity or large floating-point errors) to only windows that actually contain bad inputs. Floating-point non-associativity is noted, but practical results are good and can be improved with compensated summation.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.
The video demonstrates how to build a tree directory viewer in C without using AI. It focuses on manual programming techniques for creating a file system navigator. (youtube.com)
Microsoft introduces dotnetup, a user-friendly toolchain manager for .NET SDKs and runtimes on macOS and Linux. It enables easy installation, updates, and management of multiple versions without requiring admin permissions. (devblogs.microsoft.com)
Rust 1.99.1 is a new release that fixes regressions related to missing symbols, miscompilation of FFI bool return values, and linker issues on macOS. The update improves stability and compatibility for various targets and encourages users to test future versions. (blog.rust-lang.org)
Linus Torvalds criticizes the idea of banning AI and tools in kernel development, emphasizing that understanding and competence matter more than the tools used. He advocates for the use of new technologies, asserting that good developers focus on knowledge rather than tool restrictions. (lkml.iu.edu)
Extensions to the C preprocessor include debugging macros like print() and where() that help track macro expansion and definitions. Additionally, fixed recursion techniques are used to transform argument lists, illustrating playful modifications to standard preprocessor capabilities. (davidpriver.com)
Sygal converts PDFs, scans, web pages, and other documents into clean, AI-ready Markdown and JSON locally on your machine. It reduces token usage for AI applications and standardizes various file formats for easier integration. (sygal.app)
Today's best Hacker News stories, summarized and screenshotted, one email a day.