About:

Joel Drapper is a full‑stack Ruby/TypeScript/CSS engineer at Plane, maintains open-source libraries (Phlex, Literal, Quickdraw), and co-hosts the Rooftop Ruby podcast; active on Bluesky.

Website:

Specializations:

Interests:

Ruby TypeScript CSS Open source software Podcasting Bluesky

Outgoing Links:

Freedom Dumlao
Subscribe to RSS:
The article discusses DOM Morphing, a technique for efficiently updating the Document Object Model (DOM) in web applications without losing state during user interactions. It introduces Morphlex 1.0, a new library that addresses c...
The blog post fact-checks claims made by Ruby Central regarding their takeover of RubyGems. It confirms that Ruby Central's board approved the takeover under pressure from Shopify, disputes claims about governance and stewardship,...
The post compares two Ruby gems, Ivar and Strict Ivars, which help catch undefined instance variables. Ivar uses static analysis triggered at runtime, while Strict Ivars employs runtime analysis statically. The author discusses th...
The post discusses the challenges and solutions related to Ruby's dynamic typing and meta-programming capabilities. It highlights how these features can lead to maintenance difficulties and high defect rates in Ruby applications. ...
The author discusses the implications of Ruby Central's takeover of RubyGems, emphasizing the complexities of ownership in open source software. They highlight the relinquishment of control that comes with open source licensing, t...
The post discusses the challenges and design considerations of adding runtime type checking to Ruby, arguing that it is more pragmatic than static type checking. It explores various methods of implementing type signatures, compari...
The author advocates for the proactive use of runtime exceptions in Ruby programming to enhance code reliability and prevent unexpected behavior. They emphasize the importance of raising exceptions to validate assumptions and disc...
The article discusses the concept of leaky abstractions in programming, specifically in relation to Phlex, a Ruby DSL for generating HTML. It explains that while some may criticize Phlex as a leaky abstraction, it actually encapsu...
The blog post discusses the development of a new web application framework called Yippee, created by Stephen Margheim and the author. They aim to improve upon existing frameworks like Rails by focusing on simplicity, speed, and in...
Ruby Central took control of RubyGems and Bundler without the consent of their maintainers, driven by financial pressures from Shopify. The takeover involved downgrading maintainer permissions and excluding key contributors, parti...
The post discusses the concept of 'lying' objects in Ruby programming, where objects can return unexpected results due to overridden methods. It illustrates this with code examples, emphasizing the importance of understanding how ...
The post discusses the limitations of Ruby LSP (Language Server Protocol) in handling dynamic features of Ruby, particularly meta-programming. It provides techniques to enhance LSP's functionality by using static constant definiti...
The post explores the _Constraint type in Ruby's Literal library, detailing its constructor which takes positional and keyword arguments to create new types. It explains how type constraints work by combining positional arguments ...
The blog post discusses the concept of refactoring in object-oriented programming, specifically focusing on the creation of service objects or operations to simplify complex methods. It explains the use of duck typing in Ruby, whe...
Lucian Ghinda discusses the advantages of using getter methods over direct instance variable access in Ruby classes, highlighting that getter methods provide safety by raising a NoMethodError for undefined methods, while undefined...
The post discusses a simplified approach to creating test objects in Ruby using a custom method `build_user`. It highlights the use of recent Ruby features, such as endless method definitions and anonymous keyword argument splats,...
The post discusses the principle of preferring duplication over the wrong abstraction in software development. It argues that while duplication can be seen as a fallback, effective abstraction is crucial for simplifying code and m...
The text discusses two types of software bugs: Bugs of Omission, which cause the software to stop functioning (e.g., exceptions, crashes), and Bugs of Commission, which lead to incorrect actions (e.g., data corruption, incorrect r...
The post discusses the use of UnboundMethod objects in Ruby to mitigate risks associated with overridden default methods and to borrow method definitions from other modules or classes without inheritance. It highlights the challen...
Ruby Central took control of the RubyGems GitHub organization citing security concerns, following the departure of key personnel. Despite removing several maintainers' access, they left one key individual, André Arko, with critica...
The blog post critiques an open letter to the Rails Core team and the Ruby community, which calls for a fork of Rails that excludes DHH due to his extreme right-wing views. The author argues that while the letter may be well-inten...
The post discusses recent advancements in Ruby LSP (Language Server Protocol) indexing, highlighting new features in the latest versions of Literal, Phlex, and Phlex-Rails. Key enhancements include the addition of instance variabl...
...