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
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.
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.
Get a weekly roundup of the best Substack posts, by hacker news affinity:
35 implied HN points 08 Mar 23
  1. Simplify communication between frontend and backend with a Go <-> Typescript interface
  2. Forget about the complexities of REST in asynchronous data requests
  3. Auto-generate code to ease bindings between different languages on the server side
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.
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.
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 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 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.