<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
      <title>Matt Healy</title>
      <link>https://matthealy.com</link>
    <description></description>
    <lastBuildDate>Mon, 02 Jan 2023 03:55:23 +0000</lastBuildDate>
    <item>
      <title>RIP Dark Sky</title>
      <link>
      https://matthealy.com/rip-dark-sky
    </link>
    <description>
      &lt;p&gt;&lt;img src=&quot;https://matthealy.com/assets/images/posts/rip-dark-sky/screenshot.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
      &lt;p&gt;Today we pour one out for Dark Sky, one of the great mobile apps. When it launched, Dark Sky represented the best of iOS for me in two ways:&lt;/p&gt;
      &lt;ul&gt;
      &lt;li&gt;It did one thing well. Modern iOS apps are little worlds of hierarchy and bespoke navigation structures. In the iPhone’s salad days the best apps transformed your phone, each into a different single-purpose device. For Dark Sky, that thing was telling you if it was going to rain in the next hour.&lt;/li&gt;
      &lt;li&gt;Behind that simple UI was a ton of &lt;a href=&quot;https://web.archive.org/web/20111110193951/http://blog.jackadam.net/2011/how-dark-sky-works/&quot;&gt;complexity and computation&lt;/a&gt;, which as a user you didn’t have to think about. This was another piece of the iPhone’s magic — it did a lot of computing but didn’t feel like a computer. As much as possible was abstracted away into a UI focused on giving you just enough to do what you needed.&lt;/li&gt;
      &lt;/ul&gt;
      &lt;p&gt;Weather apps are UI designer bait: a perfect little constrained world where it’s obvious what the job is, but the variations on how to do it are endless. Dark Sky added complexity over the years, but remained one of the best — simple enough for my 3-year-old to read when she’s picking out her clothes in the morning. She’s very much not sold on our transition to Apple Weather.&lt;/p&gt;
    </description>
    <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>
    <guid>
      https://matthealy.com/rip-dark-sky
    </guid>
  </item>
  <item>
    <title>Books, 2020</title>
    <link>
    https://matthealy.com/books/2020
  </link>
  <description>
    &lt;p class=&quot;intro&quot;&gt;With no commute to work it wasn’t my greatest reading year ever, but I managed to work some reading time back into my routine toward the end. Fiction standouts included The Dreamers (warning: it’s pandemic-related. Fortunately I read it in the blissfully ignorant first month of the year, before that theme became our whole lives), The Vanishing Half, and The Dutch House. Also loving Barbara Kingsolver, I’ll have to keep working through her catalog. In non-fiction, Maid has really stuck with me. Buckminster Fuller was brilliant, but boy is he hard to read.&lt;/p&gt;
    &lt;ul class=&quot;books&quot;&gt;
    &lt;li class=&quot;fault-in-our-stars&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780142424179&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/01-Fault-in-our-Stars.jpg&quot; srcset=&quot;/assets/images/posts/2020books/01-Fault-in-our-Stars.jpg, /assets/images/posts/2020books/01-Fault-in-our-Stars@2x.jpg 2x&quot; alt=&quot;The Fault in Our Stars, John Green&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Fault in Our Stars&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;John Green&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;dreamers&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780812984668&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/02-Dreamers.jpg&quot; srcset=&quot;/assets/images/posts/2020books/02-Dreamers.jpg, /assets/images/posts/2020books/02-Dreamers@2x.jpg 2x&quot; alt=&quot;The Dreamers, Karen Thompson Walker&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Dreamers&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Karen Thompson Walker&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;maid&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780316505093&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/03-Maid.jpg&quot; srcset=&quot;/assets/images/posts/2020books/03-Maid.jpg, /assets/images/posts/2020books/03-Maid@2x.jpg 2x&quot; alt=&quot;Maid: Hard Work, Low Pay, and a Mother&#39;s Will to Survive, Stephanie Land&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Maid: Hard Work, Low Pay, and a Mother&#39;s Will to Survive&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Stephanie Land&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;good-neighbor&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9781419735165&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/04-Good-Neighbor.jpg&quot; srcset=&quot;/assets/images/posts/2020books/04-Good-Neighbor.jpg, /assets/images/posts/2020books/04-Good-Neighbor@2x.jpg 2x&quot; alt=&quot;The Good Neighbor: The Life and Work of Fred Rogers, Maxwell King&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Good Neighbor: The Life and Work of Fred Rogers&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Maxwell King&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;because-internet&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780735210936&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/05-Because-Internet.jpg&quot; srcset=&quot;/assets/images/posts/2020books/05-Because-Internet.jpg, /assets/images/posts/2020books/05-Because-Internet@2x.jpg 2x&quot; alt=&quot;Because Internet: Understanding the New Rules of Language, Gretchen McCulloch&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Because Internet: Understanding the New Rules of Language&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Gretchen McCulloch&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;poisonwood-bible&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780060786502&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/06-Poisonwood-Bible.jpg&quot; srcset=&quot;/assets/images/posts/2020books/06-Poisonwood-Bible.jpg, /assets/images/posts/2020books/06-Poisonwood-Bible@2x.jpg 2x&quot; alt=&quot;The Poisonwood Bible, Barbara Kingsolver&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Poisonwood Bible&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Barbara Kingsolver&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;agency&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9781101986936&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/07-Agency.jpg&quot; srcset=&quot;/assets/images/posts/2020books/07-Agency.jpg, /assets/images/posts/2020books/07-Agency@2x.jpg 2x&quot; alt=&quot;Agency, William Gibson&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Agency&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;William Gibson&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;old-filth&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9781933372136&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/08-Old-Filth.jpg&quot; srcset=&quot;/assets/images/posts/2020books/08-Old-Filth.jpg, /assets/images/posts/2020books/08-Old-Filth@2x.jpg 2x&quot; alt=&quot;Old Filth, Jane Gardam&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Old Filth&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Jane Gardam&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;american-marriage&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9781432861308&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/09-American-Marriage.jpg&quot; srcset=&quot;/assets/images/posts/2020books/09-American-Marriage.jpg, /assets/images/posts/2020books/09-American-Marriage@2x.jpg 2x&quot; alt=&quot;An American Marriage, Tayari Jones&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;An American Marriage&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Tayari Jones&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;dutch-house&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780062963673&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/10-Dutch-House.jpg&quot; srcset=&quot;/assets/images/posts/2020books/10-Dutch-House.jpg, /assets/images/posts/2020books/10-Dutch-House@2x.jpg 2x&quot; alt=&quot;The Dutch House, Ann Patchett&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Dutch House&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Ann Patchett&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;operating-manual-for-spaceship-earth&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9783037781265&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/11-Operating-Manual-for-Spaceship-Earth.jpg&quot; srcset=&quot;/assets/images/posts/2020books/11-Operating-Manual-for-Spaceship-Earth.jpg, /assets/images/posts/2020books/11-Operating-Manual-for-Spaceship-Earth@2x.jpg 2x&quot; alt=&quot;Operating Manual for Spaceship Earth, R. Buckminster Fuller&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Operating Manual for Spaceship Earth&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;R. Buckminster Fuller&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;glass-hotel&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780525521143&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/12-Glass-Hotel.jpg&quot; srcset=&quot;/assets/images/posts/2020books/12-Glass-Hotel.jpg, /assets/images/posts/2020books/12-Glass-Hotel@2x.jpg 2x&quot; alt=&quot;The Glass Hotel, Emily St. John Mandel&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Glass Hotel&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Emily St. John Mandel&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;song-of-solomon&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9781400033423&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/13-Song-of-Solomon.jpg&quot; srcset=&quot;/assets/images/posts/2020books/13-Song-of-Solomon.jpg, /assets/images/posts/2020books/13-Song-of-Solomon@2x.jpg 2x&quot; alt=&quot;Song of Solomon, Toni Morrison&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Song of Solomon&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Toni Morrison&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;water-knife&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780804171533&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/14-Water-Knife.jpg&quot; srcset=&quot;/assets/images/posts/2020books/14-Water-Knife.jpg, /assets/images/posts/2020books/14-Water-Knife@2x.jpg 2x&quot; alt=&quot;The Water Knife, Paolo Bacigalupi&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Water Knife&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Paolo Bacigalupi&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;quiet&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780307352156&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/15-Quiet.jpg&quot; srcset=&quot;/assets/images/posts/2020books/15-Quiet.jpg, /assets/images/posts/2020books/15-Quiet@2x.jpg 2x&quot; alt=&quot;Quiet: The Power of Introverts in a World That Can&#39;t Stop Talking, Susan Cain&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Quiet: The Power of Introverts in a World That Can&#39;t Stop Talking&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Susan Cain&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;theft&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9781911508588&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/16-Theft.jpg&quot; srcset=&quot;/assets/images/posts/2020books/16-Theft.jpg, /assets/images/posts/2020books/16-Theft@2x.jpg 2x&quot; alt=&quot;Theft, Luke Brown&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Theft&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Luke Brown&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;flight-behavior&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780062124265&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/17-Flight-Behavior.jpg&quot; srcset=&quot;/assets/images/posts/2020books/17-Flight-Behavior.jpg, /assets/images/posts/2020books/17-Flight-Behavior@2x.jpg 2x&quot; alt=&quot;Flight Behavior, Barbara Kingsolver&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;Flight Behavior&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Barbara Kingsolver&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;li class=&quot;vanishing-half&quot;&gt;
    &lt;a href=&quot;https://bookshop.org/a/21441/9780525536291&quot; target=&quot;_blank&quot;&gt;
    &lt;img src=&quot;https://matthealy.com/assets/images/posts/2020books/18-Vanishing-Half.jpg&quot; srcset=&quot;/assets/images/posts/2020books/18-Vanishing-Half.jpg, /assets/images/posts/2020books/18-Vanishing-Half@2x.jpg 2x&quot; alt=&quot;The Vanishing Half, Brit Bennett&quot; /&gt;
    &lt;p&gt;&lt;strong&gt;The Vanishing Half&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;Brit Bennett&lt;/p&gt;
    &lt;/a&gt;
    &lt;/li&gt;
    &lt;/ul&gt;
  </description>
  <pubDate>Sat, 30 Jan 2021 00:00:00 +0000</pubDate>
  <guid>
    https://matthealy.com/books/2020
  </guid>
</item>
<item>
  <title>Your next smart home device is a $30 used Kindle</title>
  <link>
  https://matthealy.com/kindle
</link>
<description>
  &lt;p&gt;&lt;img src=&quot;https://matthealy.com/assets/images/posts/2021-01-03-kindle/kindle.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
  &lt;p&gt;From a piece my friend Naveen wrote a while back called &lt;a href=&quot;https://x.naveen.com/post/82921168991/wearables-versus-thereables&quot; target=&quot;_blank&quot;&gt;Wearables versus there-ables&lt;/a&gt;:&lt;/p&gt;
  &lt;blockquote&gt;
  &lt;p&gt;What if we didn’t have to / weren’t meant to carry our technology with us as we moved around town?&lt;/p&gt;
  &lt;p&gt;What if the technology was actually already in the room when we got there?&lt;/p&gt;
  &lt;/blockquote&gt;
  &lt;p&gt;As he points out, a lot of tools that used to be separate have now converged into one: the phone. You might not buy another camera again, and you probably won’t buy a calculator. For the most part, it’s a good trade-off: what we lose in the tactile pleasures of a good single-purpose device, we gain back tenfold in having all those devices in our pocket all the time.&lt;/p&gt;
  &lt;p&gt;That’s all fine for calculators, cameras, music players, and the like — things that are there when we need to use them, and can forget about when we don’t. But our phones are also the nexus of all kinds of data we want pushed to us — news, messages, notifications, alerts, status updates. Things we want to know about without going looking for them.&lt;/p&gt;
  &lt;p&gt;A phone isn’t actually great for this kind of ambient awareness. It’s usually in a pocket or purse, so the ways it can get our attention are limited: a buzz, a notification on the lock screen, a red dot on an app icon. I can choose to let myself be interrupted, or I can compulsively check in to see what the latest alerts might be.&lt;/p&gt;
  &lt;p&gt;I’ve found myself wanting a less intrusive channel for ambient data. Something I can glance at in passing, without giving my full attention or opening myself up to whatever other interruptions my phone might have in store. It should be easy to check, but just as easy to ignore.&lt;/p&gt;
  &lt;p&gt;This is the device I landed on: a wifi-connected Kindle 4, mounted on the wall in a simple laser-cut acrylic frame. Once a minute, it loads a screenshot of a web page I built that shows a few different kinds of data I want easy access to: calendar events, weather, the status of packages I’ve ordered, etc.&lt;/p&gt;
  &lt;p&gt;&lt;img src=&quot;https://matthealy.com/assets/images/posts/2021-01-03-kindle/kindle-2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
  &lt;p&gt;I experimented a lot before landing on this setup. I’m very happy with the result, and even more happy with how easy it is to put together. A used Kindle is the only hardware required, and you can pick up a serviceable one from eBay or &lt;a href=&quot;https://www.backmarket.com/search?q=kindle%204&amp;amp;ga_search=kindle%204&quot;&gt;BackMarket&lt;/a&gt; for $30 or less.&lt;/p&gt;
  &lt;p&gt;The setup process has a few steps, but if you’ve used a command line before, you can totally do it.&lt;/p&gt;
  &lt;p&gt;But first, some explanation:&lt;/p&gt;
  &lt;p class=&quot;aside&quot;&gt;&lt;a href=&quot;#build-your-own&quot;&gt;I don’t care, just skip to the instructions&lt;/a&gt;&lt;/p&gt;
  &lt;h3 id=&quot;why-e-ink&quot;&gt;Why e-ink?&lt;/h3&gt;
  &lt;p&gt;For me, an e-ink screen is the most important part of this device. E-ink has some limitations (it’s black and white, it’s slow to refresh), but for my purposes here those are fine. The beauty of e-ink is its ability to fade into the background. It doesn’t give off light like a backlit screen would. When the light in the room is dim, it doesn’t call attention to itself.&lt;/p&gt;
  &lt;p&gt;An e-ink display feels more like a poster on your wall than a computer. When you don’t need to look at it, you can forget it’s there, unlike a backlit screen.&lt;/p&gt;
  &lt;h3 id=&quot;why-a-kindle&quot;&gt;Why a Kindle?&lt;/h3&gt;
  &lt;p&gt;This device needs a few things: a good-sized e-ink screen, a processor to put stuff on that screen, and a wi-fi connection. A jailbroken Kindle (more on what jailbreaking is later) is perfect for the job: it packs all of these things into an impressively small package, and it’s super cheap. You could build something similar with e.g. a Raspberry Pi and a standalone e-ink screen, but the parts would cost at least $150, and the final product would be much bulkier.&lt;/p&gt;
  &lt;h3 id=&quot;why-a-screenshot-of-a-web-page&quot;&gt;Why a screenshot of a web page?&lt;/h3&gt;
  &lt;p&gt;The Kindle is actually a pretty capable little computer. It runs a Linux-based OS, and once it’s jailbroken, you can access a command line and do lots of things you could do in Linux anywhere else. In previous iterations of this project, I had a lot of code running on the Kindle itself, fetching data and drawing stuff to the screen. There are limitations though, and also updating the code on the device is kind of a pain in the butt.&lt;/p&gt;
  &lt;p&gt;The nice thing about having it just display a web page is I can easily make updates without having to mess with the Kindle itself. Also, it’s way easier to make a flexible layout in HTML and CSS than when you’re drawing things on the screen manually.&lt;/p&gt;
  &lt;p&gt;The Kindle actually has a built-in web browser, which would ALMOST be enough on its own. You could just build a web page, point the browser to it, and stick it up on the wall. There are three problems:&lt;/p&gt;
  &lt;ul&gt;
  &lt;li&gt;Left to its own devices, the Kindle will go to sleep after a while, and show its screensaver.&lt;/li&gt;
  &lt;li&gt;If you want to be able to update the data on the screen, the page needs to automatically reload itself.&lt;/li&gt;
  &lt;li&gt;The Kindle browser has some unsightly elements (the header and URL bar) that can’t be hidden. Not the worst, but not as pretty as I’d like.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;My solution was to run a server that takes a screenshot of a webpage (easier than it sounds), and have the Kindle download that screenshot once a minute.&lt;/p&gt;
  &lt;p&gt;There are services that will take screenshots of a website for you, but they tend to charge per screenshot, which gets pretty pricey (I like to just have the Kindle refresh once a minute, which means more than 40,000 times per month). Instead, I wrote my own little server that uses Puppeteer to take screenshots and ImageMagick to convert them. It’s open source, and you can run it yourself on Heroku for free. One-click installation instructions below.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;build-your-own&quot;&gt;Build your own&lt;/h3&gt;
  &lt;p&gt;If you’re even a little bit familiar with using a command line, you can make your own. I’ll focus on how to get a screenshot of a web page displaying on the Kindle. The display I built for myself shows a few different kinds of data I like having easy access to, each of which warrants its own blog post. You can get started with something simple, like your favorite weather or news site.&lt;/p&gt;
  &lt;p&gt;The only fiddly part is setting up the Kindle itself, which is why we’ll make sure you only have to do it once.&lt;/p&gt;
  &lt;ol&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Get a Kindle&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;I’ve mostly used the 4th generation (non-touchscreen) Kindle, because it gets the job done and can be found pretty cheap on eBay. You can also check &lt;a href=&quot;https://www.backmarket.com/tested-and-certified-used-e-reader-amazon-kindle-4th-gen-wifi-2gb-gray/102143.html#l=0&quot;&gt;BackMarket&lt;/a&gt;, where the stock varies a bit but I’ve often seen 4th-gen Kindles for around $30.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Set up the image server&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;You can use my script to do this — the source for it is &lt;a href=&quot;https://github.com/lankybutmacho/web-to-kindle-heroku&quot;&gt;here&lt;/a&gt; if you’d like to host it somewhere yourself, but the easiest option is to create a free Heroku account and then click this button to deploy it:&lt;/p&gt;
  &lt;p class=&quot;image--auto&quot;&gt;&lt;a href=&quot;https://heroku.com/deploy?template=https://github.com/lankybutmacho/web-to-kindle-heroku&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://www.herokucdn.com/deploy/button.svg&quot; alt=&quot;Deploy&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;You’ll be prompted to name your project (call it whatever you want), and to enter the URL of the page you want to display on your Kindle. You can change that URL later by opening your Heroku project and going to Settings &amp;gt; Config Vars.&lt;/p&gt;
  &lt;p&gt;Once you’re done deploying, take note of the server’s URL. If you used Heroku, it’ll be something like &lt;code class=&quot;highlighter-rouge&quot;&gt;https://the-name-you-picked.herokuapp.com/&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Connect your Kindle to Wi-fi&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Press the Menu button (☰), then choose “View” next to “Wi-fi Networks”. Select your home network, and enter the password if there is one.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Jailbreak your Kindle&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;We need to be able to run custom software on the Kindle, which you can’t do out of the box, so we’ll need to “jailbreak” it. This is where it might start to sound daunting, but it’s not actually very hard — in part because there’s a very devoted community of nerds who have figured out how to do it for every Kindle model, and fastidiously maintain instructions with no promise of reward or recognition. You gotta love the internet sometimes.&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;https://wiki.mobileread.com/wiki/Kindle_Hacks_Information#Jail_break_JB&quot;&gt;This wiki page&lt;/a&gt; has a lot of Kindle-hacking information, but all we care about is the Jailbreak section. It links to two different forum posts, which are where the jailbreak info is kept up to date. There’s one for older Kindles (Kindle 2, DX, DXG, Kindle 3, and Kindle 4), and one for more modern Kindles — make sure you get the right one. The instructions in the forum post change from time to time, but you’re looking to download the zip file with “jailbreak” in the name that’s the one for your Kindle model.&lt;/p&gt;
  &lt;p&gt;You’ll follow the included instructions, but the TL;DR version is that you open the zip file, plug your Kindle in via USB, copy files over, and then restart it.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Install USBNetwork&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Once the Kindle is jailbroken, we’ll need one more thing in order to access it via command line: USBNetwork. You’ll find it in the same forum post where you found the Jailbreak download link. The process for installing is slightly different here — read the instructions, but what you’ll need to do is plug the Kindle in, copy the &lt;code class=&quot;highlighter-rouge&quot;&gt;.bin&lt;/code&gt; file over, and then launch it by going to [Menu] -&amp;gt; Settings -&amp;gt; [Menu] -&amp;gt; Update Your Kindle.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Add the script to download images&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Next up is to access the Kindle via the command line so we can set up our script to download images. First, we need to enable USBNetwork to allow command-line access via USB:&lt;/p&gt;
  &lt;ul&gt;
  &lt;li&gt;Disconnect your Kindle from your computer&lt;/li&gt;
  &lt;li&gt;Press the keyboard button on the Kindle, and type &lt;code class=&quot;highlighter-rouge&quot;&gt;;debugOn&lt;/code&gt; (make sure to get the semicolon at the beginning), and then enter (↵) to enable debug mode.&lt;/li&gt;
  &lt;li&gt;Press the keyboard button again, and type &lt;code class=&quot;highlighter-rouge&quot;&gt;~usbNetwork&lt;/code&gt; and hit enter (↵). It may pause for a second. Once it’s done, press keyboard, type &lt;code class=&quot;highlighter-rouge&quot;&gt;;debugOff&lt;/code&gt; and hit enter.&lt;/li&gt;
  &lt;li&gt;Reconnect your Kindle to your computer via USB.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;From a command line on your computer (i.e. in the Terminal app on a Mac):&lt;/p&gt;
  &lt;ul&gt;
  &lt;li&gt;
  &lt;p&gt;Type &lt;code class=&quot;highlighter-rouge&quot;&gt;ssh root@192.168.15.244&lt;/code&gt; and hit enter.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;You’ll be prompted for a password. The default password is &lt;code class=&quot;highlighter-rouge&quot;&gt;mario&lt;/code&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;You’re in! One more thing before we can do anything: by default, the Kindle’s drive is mounted in read-only mode. To make it writeable, type &lt;code class=&quot;highlighter-rouge&quot;&gt;mntroot rw&lt;/code&gt; and hit enter.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;Create the image-downloading script:&lt;/p&gt;
  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano /mnt/us/script.sh
  &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;        &lt;/div&gt;
  &lt;p&gt;This will create an empty file for your script and open it for editing. In the editor, type the following, substituting in the URL to download your image (from step 2 above):&lt;/p&gt;
  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl Insert_your_URL_from_step_2_here &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; status.png
  eips &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt;
  eips &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt;
  eips &lt;span class=&quot;nt&quot;&gt;-g&lt;/span&gt; status.png
  &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;        &lt;/div&gt;
  &lt;p&gt;To save and exit the editor, type &lt;code class=&quot;highlighter-rouge&quot;&gt;control-O&lt;/code&gt;, enter, and then &lt;code class=&quot;highlighter-rouge&quot;&gt;control-X&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;The first line there downloads your image and saves it to a file called “status.png”. &lt;code class=&quot;highlighter-rouge&quot;&gt;eips&lt;/code&gt; is a program that comes with the Kindle for drawing to the screen. The first two &lt;code class=&quot;highlighter-rouge&quot;&gt;eips&lt;/code&gt; commands clear the screen (twice for good measure - especially on older devices there can be some ghosting). The last line displays our image.&lt;/p&gt;
  &lt;p&gt;You can now test the script by running it like this &lt;code class=&quot;highlighter-rouge&quot;&gt;./script.sh&lt;/code&gt;. You should see the Kindle screen clear, and then a moment later your image will appear.&lt;/p&gt;
  &lt;/li&gt;
  &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
  &lt;p&gt;&lt;strong&gt;Set up a cron job&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;We’ll want the Kindle to automatically download the image and display it every minute. The Kindle’s OS, like other Linux-based operating systems, comes with &lt;code class=&quot;highlighter-rouge&quot;&gt;cron&lt;/code&gt;, a tool for running tasks on a schedule. To use it, we just need to edit its configuration file:&lt;/p&gt;
  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano /etc/crontab/root
  &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;p&gt;Add this line to the bottom:&lt;/p&gt;
  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; /mnt/us/script.sh
  &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;p&gt;Again, to save and exit type ⌃O, enter, then ⌃X.&lt;/p&gt;
  &lt;p&gt;Finally, restart cron:&lt;/p&gt;
  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/etc/init.d/cron restart
  &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;If everything worked, you should see the image refresh on your Kindle screen every minute. You’re done! You can now unplug the Kindle from your computer.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;faq&quot;&gt;FAQ&lt;/h3&gt;
  &lt;h4 id=&quot;do-i-have-to-keep-it-plugged-in&quot;&gt;Do I have to keep it plugged in?&lt;/h4&gt;
  &lt;p&gt;You may be thinking, “Kindles have famously long battery life. Can I run this without having to plug it in?” The short answer is, not really. In previous iterations of this project I tried hard to make it work. The main challenge is that in order to keep the screen refreshing, we can’t let the Kindle go to sleep — you might get weeks of battery life from a Kindle you use for reading, but it’s because most of that time it’s hibernating. Power consumption is very low when it’s awake and the screen isn’t changing, but it’s not nothing. With a lot of effort (refreshing only once a day, and turning off the wi-fi radio when I wasn’t actively using it), I was able to get the battery life up to about a week. Refreshing only once a day is okay for some purposes, but for data that needs to be fresh it’s not really good enough. Also, having to take the Kindle down to recharge it even once a week got to be pretty annoying.&lt;/p&gt;
  &lt;h4 id=&quot;what-do-i-need-if-i-dont-want-to-host-the-image-server-on-heroku&quot;&gt;What do I need if I don’t want to host the image server on Heroku?&lt;/h4&gt;
  &lt;p&gt;You can host the Express server that creates the images on any node server. It uses Puppeteer to control a headless instance of Chrome to get the screenshot, so the one requirement is that the host be able to run the Chrome binary that Puppeteer installs.&lt;/p&gt;
  &lt;h4 id=&quot;whats-the-frame-you-have-it-in&quot;&gt;What’s the frame you have it in?&lt;/h4&gt;
  &lt;p&gt;It’s a piece of laser-cut acrylic. I unfortunately don’t have the template I made anymore, but I just measured the inner screen size of the Kindle, drew a rectangle that size in Illustrator, and then another rectangle an inch and a half bigger. I don’t have a laser cutter, so I had it made at a shop - if you happen to be in NYC, check out &lt;a href=&quot;https://www.canalplastic.com/&quot; target=&quot;_blank&quot;&gt;Canal Plastics&lt;/a&gt;. To attach the Kindle to the frame, I just used masking tape. Because the Kindle’s so low profile, you don’t see it when it’s on the wall, even when looking from the side.&lt;/p&gt;
</description>
<pubDate>Sun, 03 Jan 2021 00:00:00 +0000</pubDate>
<guid>
  https://matthealy.com/kindle
</guid>
</item>
</channel>
</rss>