<?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/fragment.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/fragment.xml</id><title type="html">Jake Zimmerman | Fragment</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">Bugs Block Blogs</title><link href="https://blog.jez.io/bugs-block-blogs/" rel="alternate" type="text/html" title="Bugs Block Blogs" /><published>2026-01-21T17:37:55-05:00</published><updated>2026-01-21T17:37:55-05:00</updated><id>https://blog.jez.io/bugs-block-blogs</id><author><name>Jake Zimmerman</name></author><category term="fragment" /><category term="meta" /><summary type="html"><![CDATA[When writer's block is actually the weight of the bugs you're papering over.]]></summary></entry><entry><title type="html">What if typing on phones was fast?</title><link href="https://blog.jez.io/typing-on-phones/" rel="alternate" type="text/html" title="What if typing on phones was fast?" /><published>2024-11-26T20:32:13-05:00</published><updated>2024-11-26T20:32:13-05:00</updated><id>https://blog.jez.io/typing-on-phones</id><author><name>Jake Zimmerman</name></author><category term="fragment" /><summary type="html"><![CDATA[What more would be possible if text input on phones was as fast and precise as text input on keyboards?]]></summary></entry><entry><title type="html">Old vs new case statement in Ruby</title><link href="https://blog.jez.io/case-when-in/" rel="alternate" type="text/html" title="Old vs new case statement in Ruby" /><published>2024-05-31T16:22:05-04:00</published><updated>2024-05-31T16:22:05-04:00</updated><id>https://blog.jez.io/case-when-in</id><author><name>Jake Zimmerman</name></author><category term="fragment" /><category term="ruby" /><summary type="html"><![CDATA[A quick note on why I prefer Ruby's old case/when syntax over the new pattern matching syntax with case/in.]]></summary></entry><entry><title type="html">Gripes with RSS after one week</title><link href="https://blog.jez.io/rss-after-one-week/" rel="alternate" type="text/html" title="Gripes with RSS after one week" /><published>2022-12-31T00:01:09-05:00</published><updated>2022-12-31T00:01:09-05:00</updated><id>https://blog.jez.io/rss-after-one-week</id><author><name>Jake Zimmerman</name></author><category term="rss" /><category term="fragment" /><summary type="html"><![CDATA[A quick experience report with using an RSS reader for a week. Overall, I'm happy with how things are turning out, but I have a lot of gripes.]]></summary></entry><entry><title type="html">T::Enum Pros &amp;amp; Cons</title><link href="https://blog.jez.io/tenum-pro-con/" rel="alternate" type="text/html" title="T::Enum Pros &amp;amp; Cons" /><published>2022-03-17T19:13:16-04:00</published><updated>2022-03-17T19:13:16-04:00</updated><id>https://blog.jez.io/tenum-pro-con</id><author><name>Jake Zimmerman</name></author><category term="fragment" /><category term="sorbet" /><summary type="html"><![CDATA[A short note about why T::Enum is not great but also kinda great.]]></summary></entry><entry><title type="html">Search Down the Stack</title><link href="https://blog.jez.io/search-down-the-stack/" rel="alternate" type="text/html" title="Search Down the Stack" /><published>2020-06-06T20:08:20-04:00</published><updated>2020-06-06T20:08:20-04:00</updated><id>https://blog.jez.io/search-down-the-stack</id><author><name>Jake Zimmerman</name></author><category term="fragment" /><category term="linux" /><category term="debugging" /><summary type="html"><![CDATA[I've found it useful to search though the source code of things lower in the stack lately.]]></summary></entry><entry><title type="html">Prefer .then() over .catch()</title><link href="https://blog.jez.io/prefer-then-over-catch/" rel="alternate" type="text/html" title="Prefer .then() over .catch()" /><published>2018-05-31T18:58:52-04:00</published><updated>2018-05-31T18:58:52-04:00</updated><id>https://blog.jez.io/prefer-then-over-catch</id><author><name>Jake Zimmerman</name></author><category term="flow" /><category term="fragment" /><category term="javascript" /><summary type="html"><![CDATA[When designing asynchronous APIs that could error in Flow, prefer using `.then` for both successful and failure cases. Flow exposes a relatively unsafe library definition for the `.catch` method, so it's best to avoid it if you can.]]></summary></entry><entry><title type="html">Lenses &amp;amp; Composition</title><link href="https://blog.jez.io/lens-composition/" rel="alternate" type="text/html" title="Lenses &amp;amp; Composition" /><published>2018-02-06T02:07:37-05:00</published><updated>2018-02-06T02:07:37-05:00</updated><id>https://blog.jez.io/lens-composition</id><author><name>Jake Zimmerman</name></author><category term="haskell" /><category term="types" /><category term="fragment" /><summary type="html"><![CDATA[It's really cool how composition works with lenses!]]></summary></entry><entry><title type="html">ABTs in Haskell</title><link href="https://blog.jez.io/abts-in-haskell/" rel="alternate" type="text/html" title="ABTs in Haskell" /><published>2017-11-12T01:31:41-05:00</published><updated>2017-11-12T01:31:41-05:00</updated><id>https://blog.jez.io/abts-in-haskell</id><author><name>Jake Zimmerman</name></author><category term="plt" /><category term="haskell" /><category term="fragment" /><summary type="html"><![CDATA[I've been learning and using Haskell on-and-off for the past couple of years. One of my early complaints was that I couldn't find a good library for working with variables and binding that used locally nameless terms. Recently though, I found unbound-generics, which checks all my previously unfilled boxes.]]></summary></entry><entry><title type="html">Tests, Types, &amp;amp; Correctness</title><link href="https://blog.jez.io/tests-types-correctness/" rel="alternate" type="text/html" title="Tests, Types, &amp;amp; Correctness" /><published>2017-09-10T19:50:36-04:00</published><updated>2017-09-10T19:50:36-04:00</updated><id>https://blog.jez.io/tests-types-correctness</id><author><name>Jake Zimmerman</name></author><category term="programming" /><category term="fragment" /><category term="types" /><summary type="html"><![CDATA[It's important to both have strong testing practices and languages with disciplined type systems. The hardest part of writing quality software is ensuring that it runs without bugs. This is why testing and type systems are complementary---they're distinct tools to help us write better code.]]></summary></entry></feed>