Confessions of a Code Addict

Confessions of a Code Addict focuses on computer science topics, including programming language mechanics, optimization techniques, modern applications of data structures and algorithms, insights into AI, and practical guides to optimizing code performance. It targets a broad audience, from beginners to experienced engineers, aiming to enhance their understanding and skills.

Computer Science Fundamentals Programming Language Internals Code Optimization Techniques Data Structures and Algorithms Artificial Intelligence Database Internals Performance Engineering Python Internals Text Classification Techniques

The hottest Substack posts of Confessions of a Code Addict

And their main takeaways
336 implied HN points 08 Mar 24
  1. The upcoming live session will focus on CPUs, GPUs, and LPUs, exploring what makes them non-deterministic and discussing Groq's LPU design and architecture.
  2. The live session will include an Ask Me Anything (AMA) segment, where attendees can freely ask questions related to the discussed topics or anything else they're curious about.
  3. The event is scheduled for March 17th from 16:30 UTC to 18:00 UTC and will be limited to 100 participants, offering a mix of informative content and interactive Q&A.
577 implied HN points 15 Jan 24
  1. Code efficiency at scale is crucial - data structures and algorithms matter, but execution cost is also important.
  2. Participating in challenges like the 1 Billion Row Challenge can enhance performance engineering skills.
  3. The workshop covers optimization techniques like flamegraphs, I/O strategies, system calls, SIMD instructions, and more.
360 implied HN points 02 Feb 24
  1. The live session focuses on learning to analyze and reason about code performance through iterative optimization using 1BRC as a case study.
  2. Attendees will explore various topics including performance profiling with flamegraphs, I/O strategies, and leveraging SIMD instructions.
  3. Prerequisites include a few years of coding experience in languages like C, C++, Java, or others, with a specific focus on Java during the session.
293 HN points 06 Dec 23
  1. Each type in Python implements functions for the operators it supports and populates a function pointer table in its header.
  2. The CPython Virtual Machine calls a function in the abstract object interface based on the operator being executed.
  3. The abstract object interface performs function pointer table lookup in the object headers to call the right function for dynamic dispatch.
Get a weekly roundup of the best Substack posts, by hacker news affinity:
465 HN points 18 Oct 23
  1. GPUs are designed for high throughput and massive parallelism, while CPUs focus on executing sequential instructions quickly.
  2. GPU architecture includes streaming multiprocessors with cores, various memory layers, and dynamic resource partitioning for efficient execution.
  3. Executing code on GPUs involves launching grids of thread blocks, with each block consisting of threads that work in parallel to optimize performance.
481 implied HN points 07 Oct 23
  1. The growth of subscribers for 'Confessions of a Code Addict' has been significant, with spikes after posting articles.
  2. The author's journey started after a job loss, and the community support keeps them dedicated to creating content.
  3. Future plans for the community include introducing paid subscriptions with various perks and additional initiatives.
288 implied HN points 12 Nov 23
  1. A new method to compute Fibonacci numbers using a closed-form expression without having to resort to floating point arithmetic.
  2. Representation of irrational numbers using two parts can be done in code allowing for precise computation of Fibonacci numbers.
  3. Understanding rings and implementing arithmetic operations within it can help in computing Fibonacci numbers without any loss of precision.
158 HN points 05 Nov 23
  1. A linear algebra technique can be applied to compute Fibonacci numbers quickly with a logarithmic time complexity.
  2. Efficient algorithms like repeated squaring can compute powers of matrices in logarithmic time, improving performance for Fibonacci number calculations.
  3. A closed form expression using the golden ratio offers a direct method to compute Fibonacci numbers, showing different approaches with varied performance.
4 HN points 01 Mar 24
  1. Groq's LPU showcases an innovative design departing from traditional architectures, focusing on deterministic execution for enhanced performance.
  2. The TSP architecture achieves determinism through a simplified hardware design, enabling precise scheduling by compilers for predictable performance.
  3. Groq's approach to creating a distributed multi-TSP system eliminates non-determinism typical in networked systems, with the compiler efficiently managing data movement.
46 HN points 14 Sep 23
  1. Python uses Bloom filters in its string data structure to speed up certain string processing functions like strip and splitlines.
  2. The unique Bloom filter implementation in CPython uses an unsigned long type to represent the bit vector, making storing and querying items more efficient.
  3. CPython determines the position in the bit vector for adding and querying characters by using the lower n-bits of the character, avoiding costly hash computations.
4 HN points 23 Nov 23
  1. Programming languages use polymorphism and inheritance to create unified interfaces between modules.
  2. CPython mimics inheritance and polymorphism in C by embedding a parent struct in the child struct definitions, ensuring a unified memory layout.
  3. In CPython, the PyObject struct acts as the parent struct, containing fields for object reference count and type-related data, enabling type-specific method calls via function pointer tables in the object header.
6 HN points 25 Aug 23
  1. Python 3.12 introduced immortal objects to improve performance by avoiding constant reference count updates for immutable objects like None, True, and False.
  2. Immortalization in Python aimed to address performance issues like CPU cache invalidation, data races, and impact on Copy-on-Write applications.
  3. The implementation of immortalization in Python included marking objects as immortal, incorporating checks in Py_INCREF and Py_DECREF functions, and dealing with some performance overhead.
5 HN points 05 Sep 23
  1. Bloom filters are efficient data structures for quick searches in large datasets and minimize memory usage, with a probabilistic approach to determining membership
  2. Bloom filters use hash functions and bit vectors to store data item membership information while conserving memory by not storing actual items
  3. Counting Bloom Filters are an extension that allow item deletion but come with weaknesses such as handling hash collisions and counter overflow, providing an advanced data handling tool