Hasen Judi

Hasen Judi's Substack focuses on various aspects of computer and web programming, emphasizing simplicity in development, alternatives to mainstream databases, GPU rendering techniques, UI toolkit development, and overcoming programming challenges. It explores practical programming philosophies, data persistence, and innovative approaches for efficient web and GUI design.

Programming Philosophies Database Alternatives GPU Rendering Techniques User Interface Design Web Development Data Indexing and Querying Software Optimization Application Development

The hottest Substack posts of Hasen Judi

And their main takeaways
35 implied HN points β€’ 17 Jan 25
  1. The project aims to develop a conversation view that displays threaded replies in a linear format, improving user experience compared to platforms like Twitter or Reddit.
  2. A data model is proposed to track parent-child relationships between posts and replies, allowing for efficient retrieval of both ancestors and descendants of a post.
  3. The author emphasizes using the same 'Post' type across different system layers, arguing that this reduces code complexity and increases productivity compared to using separate representations for each layer.
35 implied HN points β€’ 04 Jan 25
  1. Cursor-based pagination lets you skip to the next set of results easily. It's better for large lists because it doesn't waste time reading and ignoring lots of entries.
  2. This method is more stable, as it remembers where you left off even if there are changes to the list. It's like using a bookmark to continue reading later.
  3. However, it has some downsides, like not being able to jump to a specific page directly, which might be less convenient for users wanting to skip ahead quickly.
35 implied HN points β€’ 13 Dec 24
  1. You can create a simple forum with posts that track who made them and when. Each post can include basic content, like a Tweet.
  2. Using indexes helps you quickly find posts by user or hashtags. This makes searching through posts much faster and easier.
  3. Automated testing is a great way to ensure everything works as expected without needing to manually check each part of your code.
107 implied HN points β€’ 31 Mar 23
  1. In a B-Tree based storage system like BoltDB, you need to be explicit about indexing and querying data, unlike relational databases that automatically handle indexing.
  2. By maintaining bidirectional mappings between terms and targets, and incorporating priorities for sorting, you can efficiently retrieve and sort data without unnecessary overhead.
  3. BoltDB enables indexing data by any criteria, offering flexibility in ranking objects and improving relevance in search results, while eliminating the overhead associated with SQL databases.
Get a weekly roundup of the best Substack posts, by hacker news affinity:
71 implied HN points β€’ 01 Jul 23
  1. Building a UI toolkit with GPU rendering involves rendering 2D shapes on the GPU by covering all pixels and determining colors independently.
  2. When drawing 2D shapes on the GPU, the challenge is figuring out the color of each pixel on the screen without any state about the next or previous pixel.
  3. To draw 2D shapes with the GPU, clever techniques can be used like generating gradients based on the position of the point.
71 implied HN points β€’ 02 Apr 23
  1. Reinventing the wheel in data persistence can lead to more efficient and simplified systems than using relational databases.
  2. Having a persistence engine that writes data to disk as needed ensures reliability, scalability, and preserves disk lifespan.
  3. In handling object deletion within the indexing system, it's better to mark objects as deleted rather than cascading deletes, allowing for explicit control over data management.
35 implied HN points β€’ 15 Jul 23
  1. The article series covers topics like Signed Distance Fields, creating complex shapes, and GPU draw commands.
  2. The project involves using languages like Odin, SDL2, Metal, and OpenGL for implementation.
  3. Readers can learn about GPU UI design and implementation by following the series on the website provided.
35 implied HN points β€’ 07 Feb 23
  1. Change takes time; stay calm and level-headed instead of emotionally charged.
  2. Respect the process of turning your life around; results take time to manifest.
  3. Work on improving your self-image and daily habits; taking consistent action is key.
35 implied HN points β€’ 03 Feb 23
  1. Question the need for SQL databases and explore simpler data storage solutions from first principles.
  2. Consider the drawbacks of SQL databases, such as dealing with intermediate query languages and data fragmentation.
  3. Explore alternatives like using BoltDB for key-value storage and implementing object serialization for simpler and more robust data storage and retrieval.
4 HN points β€’ 25 Nov 22
  1. IMGUI libraries lack support for bidirectional text with multiple fonts and styles, limiting their usability for cross-platform applications.
  2. Implementing bidirectional text rendering involves handling individual glyphs, glyph positioning, line breaking, font fallback, and support for complex scripts.
  3. Segmentation and line breaking are key components in rendering bidirectional text with multiple fonts and styles, simplifying the process and enabling easy batch rendering.
2 HN points β€’ 04 Jul 23
  1. Rectangles can be defined in different ways for SDF purposes, but simplifying it to (center, half_size) helps in calculations such as distance to edges or corner points.
  2. Simple transformations like growing, bordering, and inversion, along with masking and rotations, can create interesting visual effects and shapes.
  3. Combining these shape manipulation techniques can lead to the creation of more complex shapes and effects in GPU-rendered graphics.
2 HN points β€’ 29 Apr 23
  1. Local development should be seamless with quick edit/run cycles and interactive debugging.
  2. Start with the development experience you want and work backwards to the technology, don't just follow common trends blindly.
  3. Prioritize what you want in a development experience, like quick startup time, minimal commands, and effective type checking.
0 implied HN points β€’ 10 Dec 24
  1. A forum can start simply with posts and discussions, without needing categories, user authentication, or search features. The focus should be on enabling conversations right away.
  2. The basic user registration system involves adding users with just a username, email, and password. It's important to store user data properly, even if it's temporary.
  3. State management in the UI can be handled using caching and hooks, allowing for dynamic updates without reloading the page, making the user experience smoother.
0 implied HN points β€’ 10 Dec 24
  1. The project 'HandCraftedForum' is built using a custom mini framework that includes components for data storage, server-side logic, and client-side UI creation. It's designed to make programming straightforward with a focus on using data and procedures.
  2. The initial setup creates a basic application skeleton that allows for running a local web server. This setup serves a simple welcome message while ensuring easy communication between the client and server.
  3. The licensing approach for this project allows others to use and learn from the code, but prevents commercial use of the final product. This way, the creator can protect the product while still fostering education and community contribution.
0 implied HN points β€’ 10 Dec 24
  1. In this framework, data is stored using a different method than typical SQL databases. It uses a built-in library for data persistence rather than connecting to an external database.
  2. The framework uses buckets, indexes, and collections to manage data, which allows for easy storage and retrieval without needing to write complicated SQL queries.
  3. A key part of the framework is the serialization function, which helps convert data into a format that can be easily saved and loaded from the storage.
0 implied HN points β€’ 26 Aug 23
  1. Deciding the structure for GPU draw commands involves implementing various elements like rounded rectangles, softness, masking, rotations, and color gradients to draw complex GUI elements.
  2. Consider the requirements and constraints of the GUI design, such as the need for bezier curves for specific use cases beyond SDF rounded rectangles.
  3. Improving the efficiency of drawing rectangles by simplifying parameters like corner radius, using turns instead of radians for rotations, and implementing a unified command struct for specifying properties of the draw commands.
0 implied HN points β€’ 10 Dec 24
  1. There is a lack of good forums available, so creating a new one can help fill that gap. It’s something many people are familiar with.
  2. The development of this forum will focus on straightforward programming, using simple data and functions without complex structures. This makes it easier for more people to understand and contribute.
  3. The project will grow over time, starting with basic features and improving the user experience gradually. The aim is to make it simple to set up and use from the beginning.
0 implied HN points β€’ 05 Jan 25
  1. There are two similar code paths for fetching posts by hashtag and user ID, causing duplication that can complicate the codebase. Simplifying these could make the code easier to manage.
  2. Using a single index for both types of queries can reduce complexity and allow for easier future features, like querying by other criteria, without increasing code duplication.
  3. Collapsing code paths not only streamlines current processes but also makes it easier to implement new features or queries in the future, reducing overall development effort.