<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mmstghjx</title><link>https://news.ycombinator.com/user?id=mmstghjx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Jul 2026 05:54:36 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mmstghjx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mmstghjx in "The Xteink X4 E-Ink Reader"]]></title><description><![CDATA[
<p>I carry my phone and my X4 in the same pocket. Whenever I feel like doom-scrolling, I take out the X4 and read a chapter in a book instead. It is excellent for taking back time to read that I lose to my phone.<p>Sure I could read the same book on my phone, but it takes multiple steps to open the e-reader app on my phone. On top of that, there are half a dozen other things I could open on my way to opening up my e-reader app. With X4, I press the button on the side and I'm reading.<p>Is it the best ereader? Not at all. Reading whitepapers or programming books on it is a fools errand. It is great for anything that is mostly text. Novels are amazing on it. I've keep up with my read it later backlog by saving URLs with the Obsidian ReadItLater plugin and then using pan to convert the collection of markdown into an epub file.<p>The battery life is amazing. I've charged it once since getting on 3/27. I've read about 1500 pages (5 novels) since I got it (albeit I've stalled out in June by trying to finish a book I'm not too into).<p>It is a great compliment to a 10" tablet. Whereas a 7" reader tends to stay at home due to its size, the X4 gets tossed in my pocket and comes everywhere with me.</p>
]]></description><pubDate>Thu, 25 Jun 2026 14:16:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48673791</link><dc:creator>mmstghjx</dc:creator><comments>https://news.ycombinator.com/item?id=48673791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48673791</guid></item><item><title><![CDATA[New comment by mmstghjx in "Not buying another Kindle"]]></title><description><![CDATA[
<p>I love mine. I've owned a Kindle Paperwhite and a Boox Note 4+ but I never really got into the habit of reading much on them. The Note is great for notetaking, but the Kindle is too big to bring with me everywhere.<p>The X4 is so small that I can throw it in my pocket and read a page or two when I'm waiting for something instead of doomscolling on my phone. I love that little thing. I've read two books since 3/27 and I'm halfway through my 3rd book.</p>
]]></description><pubDate>Mon, 20 Apr 2026 21:01:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47840639</link><dc:creator>mmstghjx</dc:creator><comments>https://news.ycombinator.com/item?id=47840639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47840639</guid></item><item><title><![CDATA[New comment by mmstghjx in "Sky – an Elm-inspired language that compiles to Go"]]></title><description><![CDATA[
<p>This is awesome! I love Haskell's syntax, but its adoption isn't where I'd like it to be.<p>One thing that I don't see is a way to mitigate the "andThen" pyramid of doom.<p>This happens when you have a language without early returns and you have chain multiple Result returning operations. You can use nested case expressions:<p><pre><code>  case operation1 x of
      Ok value -> case operation2 value of
        Ok value2 -> value2
        Err msg -> "error from operation2: " ++ msg
      Err msg -> "error from operation1: " ++ msg

</code></pre>
Or nested `andThen` calls<p><pre><code>  operation1 x
     >> mapError (\msg -> "error from operation1: " ++ msg) 
     >> `andThen` (\value -> operation2 value)
     >> mapError (\msg -> "error from operation2: ++ msg)
</code></pre>
This is nicer to read, but still a lot of noise.<p>Haskell has  `do` notation to alleviate this but that brings with it the type-class that shall not be named.<p>Some languages, like Rust, introduce different per-type syntactical solutions such as `async/await` for Promises and `?` for Result.<p>I particularly like Gleam's `use` notation, which is syntactical sugar around functions that take a callback as their final argument.<p>Do you have a solution for this in Sky?</p>
]]></description><pubDate>Tue, 07 Apr 2026 14:38:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47676130</link><dc:creator>mmstghjx</dc:creator><comments>https://news.ycombinator.com/item?id=47676130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47676130</guid></item><item><title><![CDATA[New comment by mmstghjx in "I'm betting on ATProto"]]></title><description><![CDATA[
<p>Real names didn't stop people from being arseholes on Facebook. They did lose a lot of friends, but they also found like minded friends, so kind of a wash.</p>
]]></description><pubDate>Tue, 31 Mar 2026 13:27:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47587060</link><dc:creator>mmstghjx</dc:creator><comments>https://news.ycombinator.com/item?id=47587060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47587060</guid></item><item><title><![CDATA[New comment by mmstghjx in "I'm betting on ATProto"]]></title><description><![CDATA[
<p>Bingo. The Internet turns the other person into an abstraction.</p>
]]></description><pubDate>Tue, 31 Mar 2026 13:24:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47587028</link><dc:creator>mmstghjx</dc:creator><comments>https://news.ycombinator.com/item?id=47587028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47587028</guid></item></channel></rss>