<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://blog.jez.io/feed/in-pictures.xml" rel="self" type="application/atom+xml" /><link href="https://blog.jez.io/" rel="alternate" type="text/html" /><updated>2026-01-21T18:17:55-05:00</updated><id>https://blog.jez.io/feed/in-pictures.xml</id><title type="html">Jake Zimmerman | In-pictures</title><subtitle>A collection of blog posts about programming, software, types, programming languages, Sorbet, Vim, Markdown, and more.</subtitle><author><name>Jake Zimmerman</name></author><entry><title type="html">Inheritance in Ruby, in pictures</title><link href="https://blog.jez.io/inheritance-in-ruby/" rel="alternate" type="text/html" title="Inheritance in Ruby, in pictures" /><published>2023-12-28T15:31:20-05:00</published><updated>2023-12-28T15:31:20-05:00</updated><id>https://blog.jez.io/inheritance-in-ruby</id><author><name>Jake Zimmerman</name></author><category term="ruby" /><category term="sorbet" /><category term="types" /><category term="in-pictures" /><summary type="html"><![CDATA[A solid grasp of the tools Ruby provides for inheritance, like include and extend, helps write better code. But the concepts are often learned hastily—this post revisits them in depth.]]></summary></entry><entry><title type="html">ActiveSupport’s Concern, in pictures</title><link href="https://blog.jez.io/concern-inheritance/" rel="alternate" type="text/html" title="ActiveSupport’s Concern, in pictures" /><published>2023-08-26T15:43:12-04:00</published><updated>2023-08-26T15:43:12-04:00</updated><id>https://blog.jez.io/concern-inheritance</id><author><name>Jake Zimmerman</name></author><category term="ruby" /><category term="in-pictures" /><summary type="html"><![CDATA[A series of pictures which show how Rails's ActiveSupport::Concern works to redefine what inheritance means in Ruby.]]></summary></entry><entry><title type="html">My workflow for hand-drawn diagrams</title><link href="https://blog.jez.io/hand-drawn-diagrams/" rel="alternate" type="text/html" title="My workflow for hand-drawn diagrams" /><published>2022-12-13T17:10:22-05:00</published><updated>2022-12-13T17:10:22-05:00</updated><id>https://blog.jez.io/hand-drawn-diagrams</id><author><name>Jake Zimmerman</name></author><category term="meta" /><category term="in-pictures" /><summary type="html"><![CDATA[Here's how I draw the little diagrams that sometimes appear on my posts.]]></summary></entry><entry><title type="html">Sorbet’s weird approach to exception handling</title><link href="https://blog.jez.io/sorbet-rescue-control-flow/" rel="alternate" type="text/html" title="Sorbet’s weird approach to exception handling" /><published>2022-09-04T23:12:12-04:00</published><updated>2022-09-04T23:12:12-04:00</updated><id>https://blog.jez.io/sorbet-rescue-control-flow</id><author><name>Jake Zimmerman</name></author><category term="ruby" /><category term="sorbet" /><category term="types" /><category term="in-pictures" /><summary type="html"><![CDATA[A quick post explaining why exception handling in Sorbet is weird, by way of a buggy program and some pretty pictures.]]></summary></entry><entry><title type="html">GC.compact in Pictures</title><link href="https://blog.jez.io/gc-compact-in-pictures/" rel="alternate" type="text/html" title="GC.compact in Pictures" /><published>2020-12-18T15:03:58-05:00</published><updated>2020-12-18T15:03:58-05:00</updated><id>https://blog.jez.io/gc-compact-in-pictures</id><author><name>Jake Zimmerman</name></author><category term="ruby" /><category term="in-pictures" /><summary type="html"><![CDATA[Ruby's opt-in GC compaction is both really cool and also kind of scary, so we're going to chat about both, with pictures.]]></summary></entry></feed>