<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vinod Kurup</title>
    <link>https://kurup.com/</link>
    <description>Recent content on Vinod Kurup</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>vinod@kurup.com (Vinod Kurup, MD)</managingEditor>
    <webMaster>vinod@kurup.com (Vinod Kurup, MD)</webMaster>
    <lastBuildDate>Sun, 02 Mar 2025 10:05:00 +0000</lastBuildDate>
    
        <atom:link href="https://kurup.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Red Team Blues</title>
      <link>https://kurup.com/blog/2025/03/02/red-team-blues/</link>
      <pubDate>Sun, 02 Mar 2025 10:05:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2025/03/02/red-team-blues/</guid>
      <description>&lt;p&gt;Title: &lt;a href=&#34;https://amzn.to/4bpWd8y&#34;&gt;Red Team Blues&lt;/a&gt; by Cory Doctorow&lt;/p&gt;
&lt;p&gt;Subtitle: A Martin Hench Novel&lt;/p&gt;
&lt;p&gt;Why: I like his blog and saw this book recommended somewhere&lt;/p&gt;
&lt;p&gt;Review:&lt;/p&gt;
&lt;p&gt;Four stars. The main character Marty is a 67 year old forensic accountant who has spent
his career breaking into financial systems for his clients. There is one gruesome scene
early in the book, which is sometimes enough to make me drop a book, but fortunately the
story didn&amp;rsquo;t go in that direction much. Doctorow does a great job with the
cryptocurrency and modern technology aspects of the story, at least to my eye.&lt;/p&gt;
&lt;p&gt;It was a fun read, and I&amp;rsquo;m looking forward to the other books in the series, especially
the one that is set back in the 90s.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Zion National Park Favorites</title>
      <link>https://kurup.com/blog/2024/07/28/zion-national-park-favorites/</link>
      <pubDate>Sun, 28 Jul 2024 13:41:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/07/28/zion-national-park-favorites/</guid>
      <description>&lt;h4 id=&#34;favorite-hike&#34;&gt;Favorite hike&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://www.nps.gov/zion/planyourvisit/thenarrows.htm&#34;&gt;The Narrows&lt;/a&gt;. This was unlike any hike I&amp;rsquo;d done before. We got up early to catch the first shuttle from the entrance of Zion National Park at 6 AM. Unfortunately, a lot of other people thought the same thing, so we actually got the second shuttle and it was standing room only. We took that to the last stop and then walked for about a mile on a paved path. The path ended and there was just a river in front of us. I&amp;rsquo;m glad that we weren&amp;rsquo;t the first ones there because I wouldn&amp;rsquo;t have known what to do or where to go, but I guess you just go into the river. For the rest of the day, we hiked through the river which varied from just a few inches of water to above our waist in sections. The floor of the river bed was made up of large smooth rocks so it was quite slippery in places. I was really glad to have neoprene socks, hiking boots, and a walking stick (Anika didn&amp;rsquo;t use a stick). The rapids were pretty strong in some places and I fell in once and scraped my knee a little bit, but that was the only injury among the 5 of us. The water was really cold at 7AM, but felt very refreshing on the way back when the sun was out. I won&amp;rsquo;t be able to properly describe how great this hike felt. For almost all of it, you&amp;rsquo;re walking between two rock faces that are at least a thousand feet high. You get numb to it after a while, but I never lost that sense of awe at how amazing this place was, and how small it made my problems feel.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/zion-narrows.jpg&#34; alt=&#34;Narrows&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;favorite-place-to-get-outfitted-for-that-hike&#34;&gt;Favorite place to get outfitted for that hike&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://www.zionadventures.com/&#34;&gt;Zion Adventures&lt;/a&gt;. Our hotel recommended this place and they were great. No high pressure sales, and the staff provided useful information. They were having a sale where we could rent the boots, socks and pole for $30. That was cheaper than the rate at the entrance to the park, but we didn&amp;rsquo;t shop around too much. We also ended up getting some souvenirs from here.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/zion-adventure.jpg&#34; alt=&#34;Zion Adventures&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;favorite-restaurant&#34;&gt;Favorite restaurant&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://oscarscafe.com/&#34;&gt;Oscar&amp;rsquo;s Cafe&lt;/a&gt;. We were a little bummed that we found this place on our last day because it was so good. I had the ribs and they were fall-off-the-bone tender. Everything we ordered was tasty including the sangria. The &lt;a href=&#34;https://oscarscafe.com/about.php&#34;&gt;origin story of the restaurant&lt;/a&gt; was cool too.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/oscars-ribs.jpg&#34; alt=&#34;Oscar&amp;rsquo;s Ribs&#34;&gt;
&lt;img src=&#34;https://kurup.com/images/oscars-tacos.jpg&#34; alt=&#34;Oscar&amp;rsquo;s Tacos&#34;&gt;&lt;/p&gt;
&lt;p&gt;Honorable Mention: Meme&amp;rsquo;s Cafe&lt;/p&gt;
&lt;h4 id=&#34;best-buffet-breakfast&#34;&gt;Best buffet breakfast&lt;/h4&gt;
&lt;p&gt;The lodge inside the park has an all you can eat breakfast buffet that was quite filling.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/zion-breakfast-buffet.jpg&#34; alt=&#34;Zion Breakfast Buffet&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;favorite-place-to-stay&#34;&gt;Favorite place to stay&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://www.desertpearl.com/en/homepage&#34;&gt;Desert Pearl Inn&lt;/a&gt;. We&amp;rsquo;re not huge fans of staying in hotels, but house rentals weren&amp;rsquo;t really an option in Zion. This place was nice and fit all 5 of us in a room (with a pull out couch). There was a great swimming pool and jacuzzi, and it was walking distance to a lot of places we ended up going to. The town shuttle stops right out in front, though we only took that once. It&amp;rsquo;s about a 3/4 of a mile walk/run to the Zion park entrance. The only downsides were that it was not cheap and it was missing was a gym.&lt;/p&gt;
&lt;h4 id=&#34;favorite-running-route&#34;&gt;Favorite running route&lt;/h4&gt;
&lt;p&gt;Pa&amp;rsquo;rus Trail. You&amp;rsquo;ll find this trail right as you enter the park, and it goes for about 3.5 miles on paved mostly flat ground, which is perfect for a run in more beautiful surroundings than just about anywhere on Earth.&lt;/p&gt;
&lt;div class=&#34;strava-embed-placeholder&#34; data-embed-type=&#34;activity&#34; data-embed-id=&#34;11814472487&#34; data-style=&#34;standard&#34;&gt;&lt;/div&gt;&lt;script src=&#34;https://strava-embeds.com/embed.js&#34;&gt;&lt;/script&gt;
&lt;h4 id=&#34;favorite-thing-to-do-after-a-hike&#34;&gt;Favorite thing to do after a hike&lt;/h4&gt;
&lt;p&gt;Desert Pearl Inn. Jump in the pool and maybe the jacuzzi, but then definitely back to the pool. Sitting in the pool or poolside, you can see the red cliffs towering above you on both sides.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/desert-pearl-inn.jpg&#34; alt=&#34;Desert Pearl Inn&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;favorite-view&#34;&gt;Favorite view&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://www.nps.gov/thingstodo/hike-to-scout-lookout.htm&#34;&gt;Scout&amp;rsquo;s Lookout&lt;/a&gt;. This was a more traditional hike up the cliff face along switchbacks. But the views are anything but conventional. Definitely worth the effort. We did not get the permit to go up to Angel&amp;rsquo;s Landing from here on the chain trail, but the kids want to do it if we ever come back.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/scouts-lookout.jpg&#34; alt=&#34;Scouts Lookout&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/scouts-lookout-2.jpg&#34; alt=&#34;Scouts Lookout&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;favorite-ice-cream&#34;&gt;Favorite ice cream&lt;/h4&gt;
&lt;p&gt;Bumbleberry chocolate ice cream at &lt;a href=&#34;https://bumbleberry.com/restaurant-in-zion/&#34;&gt;Bumbleberry Bakery&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;favorite-shaved-ice&#34;&gt;Favorite shaved ice&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://maps.app.goo.gl/dWwW3hmXmxZQ8TNm8&#34;&gt;Zion Hawaiian Shave Ice&lt;/a&gt;. While some of us had ice cream, some of us had shaved ice. It reportedly was very good. Note that this place is like inside an e-bike rental store for some reason.&lt;/p&gt;
&lt;h4 id=&#34;favorite-grocery-store&#34;&gt;Favorite grocery store&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://www.solfoods.com/&#34;&gt;Sol Foods Supermarket&lt;/a&gt;. This was a great locally owned supermarket that had everything we needed to stock up for the trip, including cool shades and hats.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kurup.com/images/sols-market.jpg&#34; alt=&#34;Sol Foods&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Weapons of Math Destruction</title>
      <link>https://kurup.com/blog/2024/05/28/weapons-of-math-destruction/</link>
      <pubDate>Tue, 28 May 2024 21:27:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/05/28/weapons-of-math-destruction/</guid>
      <description>&lt;p&gt;Title: &lt;a href=&#34;https://amzn.to/3VkDzZt&#34;&gt;Weapons of Math Destruction&lt;/a&gt; by Cathy O&amp;rsquo;Neil&lt;/p&gt;
&lt;p&gt;Subtitle: How Big Data Increases Inequality and Threatens Democracy&lt;/p&gt;
&lt;p&gt;Why: A co-worker recommended it.&lt;/p&gt;
&lt;p&gt;Review:
Five stars for the content. Maybe deduct a half star for the organization. The first few chapters were powerful, laying out the case for how these data algorithms have gotten out of control. Some of the later chapters got repetitive, but I think the repetition could have been really useful, if it drilled into the readers heads exactly how to distinguish a bad use of math from a good one. Readers should be encouraged to analyze things in the wild on their own. I was also hoping for stronger calls to action, but was left just feeling kinda hopeless at the end of the book.&lt;/p&gt;
&lt;p&gt;All that said, everyone should read this book. I love math and big data and its potential for good, but this book clearly lays out how those tools can lead to misery for all of us, but especially for the least fortunate and most oppressed among us. At scale, they turn into positive feedback loops which never correct. Just as a simplistic example, if a college is rated by how selective it is, and a high rating leads more people to apply, then it will, by definition get more selective over time, which will lead to an even higher rating, leading to a vicious cycle. Even more perniciously, if jobs use low credit scores to weed out applicants, then those most in need of a good job will be least likely to be able to secure one, which will lead to more financial difficulty, leading to a worse credit score and an even more vicious cycle. The worst part of these algorithms, is that they are opaque to everyone involved so it is impossible to fight back against their decisions. Just as another ridiculous example, drivers with clean accident records, but a poor credit score were quoted higher rates than convicted drunk drivers with good credit scores. The users of &amp;ldquo;big data&amp;rdquo; get so enamored with their algorithms that a poor proxy for risk (credit score) is given more weight than an actual risk (drunk driving).&lt;/p&gt;
&lt;p&gt;Hopefully, society will begin to regulate this area and guide our use of these algorithms in a way that is beneficial to all members of society, especially the most disenfranchised portions.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Links 2024-04-15</title>
      <link>https://kurup.com/blog/2024/04/15/links-2024-04-15/</link>
      <pubDate>Mon, 15 Apr 2024 08:00:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/04/15/links-2024-04-15/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://mtlynch.io/building-first-homelab-rack/&#34;&gt;Building a home server rack&lt;/a&gt;. I&amp;rsquo;ll probably never do this, but if I do, I&amp;rsquo;ll re-read this guide.  He explains things from a true beginner point of view, &lt;a href=&#34;https://mtlynch.io/building-first-homelab-rack/#cage-nuts-arent-supposed-to-hurt&#34;&gt;documenting his honest mistakes so that others don&amp;rsquo;t make them&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.manning.com/corporate-splash&#34;&gt;Manning has free software engineering books&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>My Father&#39;s Paradise</title>
      <link>https://kurup.com/blog/2024/04/14/my-fathers-paradise/</link>
      <pubDate>Sun, 14 Apr 2024 19:29:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/04/14/my-fathers-paradise/</guid>
      <description>&lt;p&gt;Title: &lt;a href=&#34;https://amzn.to/49w7Yb0&#34;&gt;My Father&amp;rsquo;s Paradise&lt;/a&gt; by Ariel Sabar&lt;/p&gt;
&lt;p&gt;Subtitle: A Son&amp;rsquo;s Search for His Family&amp;rsquo;s Past&lt;/p&gt;
&lt;p&gt;Why: A co-worker recommended it, and is related to the author, thus making the book a family history for him (how cool is that!)&lt;/p&gt;
&lt;p&gt;Review:
I learned a lot of history that I sadly had been clueless about before reading this book. I never knew that there was a significant Jewish population in Iraq, nor that they lived relatively harmoniously with Muslims and Christians there for hundreds of years. I didn&amp;rsquo;t know about the semi-forced migration of Jews from Arab countries to the newly formed Israel after World War II and the dire circumstances surrounding such migration. I didn&amp;rsquo;t know that there was a social hierarchy between European/Ashkenazi Jews and Arabic Jews, and another hierarchy with Arab Jews depending on if you were Baghdadi or Kurdish, for example. The story is written by a 50-ish year old journalist who investigates his family history starting with his great grandfather in Kurdistan (Iraq). It details the forced migration that his father endured from Iraq to Israel at the age of 13, and all of the struggles that come from coming of age in a new strange place. Eventually it continues to his father&amp;rsquo;s migration to the US, and to the author being born and turning into the most annoying teenage rebel, wanting nothing to do with his family&amp;rsquo;s heritage. And then, of course, that rebel grows up, sees the error of his ways and then uses his newfound journalistic skills to turn his families stories into a proper history.&lt;/p&gt;
&lt;p&gt;The book is very well written and engages you from beginning to end. This is not a textbook, but rather a fireside story. I was furious at the childishness of the author for rebelling against his parents in such a disrespectful way, but I think most of my fury was actually directed at myself for having similar tendencies and feelings, though I kept them mostly bottled up inside of me. I identified strongly with the immigrant story as it is nearly identical to mine, though my parents came from a different country and were fortunate to make the choice to leave their homeland willingly. But I know they suffered mightily to do so, leaving one home, and landing in a place that never could be anything but a second home, one that doesn&amp;rsquo;t quite ever feel like home.&lt;/p&gt;
&lt;p&gt;This quote could have been written about my childhood:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My father would hand me the phone on my visits home to Los Angeles, and I would listen as a stream of Aramaic blessings crossed ten time zones along a crackling telephone line. My father would pass me the receiver and whispher, &amp;ldquo;Just say amen every so often. It will make her feel good.&amp;rdquo; I said my amens and returned to my life.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m envious and impressed by Sabar&amp;rsquo;s work in documenting his family history, as I have never taken the time or energy to do anything similar with my own. I&amp;rsquo;m now an American through and through, and I&amp;rsquo;m OK with that, but I wish I could have passed more appreciation of our culture on to my kids. Hopefully they will eventually get curious and learn on their own, but more likely I&amp;rsquo;ve just accelerated a path to distancing future generations from our homeland. Anyways, that is all a digression from the story, though to be honest, it is the central tenet of the book. I&amp;rsquo;m really glad that I read this one.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>CivilWarLand in Bad Decline</title>
      <link>https://kurup.com/blog/2024/04/09/civilwarland-in-bad-decline/</link>
      <pubDate>Tue, 09 Apr 2024 19:03:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/04/09/civilwarland-in-bad-decline/</guid>
      <description>&lt;p&gt;Title: &lt;a href=&#34;https://amzn.to/3PQopIg&#34;&gt;CivilWarLand in Bad Decline&lt;/a&gt; by George Saunders&lt;/p&gt;
&lt;p&gt;Why: A co-worker recommended and I vaguely remember liking Lincoln in the Bardo&lt;/p&gt;
&lt;p&gt;Review:
It is a series of short stories, all with the thread of being set in various near-future dystopias with flawed characters. It&amp;rsquo;s definitely on the weird/absurd side of things. Parts of it reminded me of The Stand or Station 11, two books I really liked. Parts were humorous and parts were absolutely disgusting, but throughout, it shed a light on human nature, even in those weird circumstances. I wouldn&amp;rsquo;t read it again, but I&amp;rsquo;m glad it and I added Pastoralia to my to-read list.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Choosing To Run</title>
      <link>https://kurup.com/blog/2024/04/08/choosing-to-run/</link>
      <pubDate>Mon, 08 Apr 2024 21:46:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/04/08/choosing-to-run/</guid>
      <description>&lt;p&gt;Title: &lt;a href=&#34;https://amzn.to/4amn3wW&#34;&gt;Choosing To Run&lt;/a&gt; by Des Linden&lt;/p&gt;
&lt;p&gt;Why: It&amp;rsquo;s a running book and who isn&amp;rsquo;t inspired by Des Linden?&lt;/p&gt;
&lt;p&gt;Review:
This autobiography was a page turner that I read during a car ride back from Florida. (Don&amp;rsquo;t worry, I wasn&amp;rsquo;t driving). I&amp;rsquo;m a sucker for running books and this was a great one, mostly because Des Linden is so down-to-earth that you just want to root for her through every obstacle. I also love what a vivid, detailed memory she has of her races. It allowed me to go back to watch the 2018 Boston marathon videos, in particular, and feel like I was in her mind, and in the mind of the runners around her.&lt;/p&gt;
&lt;p&gt;I was a bit confused initially by the alternating chapter approach, but it build up suspense about her 2018 performance, which I guess was the point. As a doctor, I was frustrated with her for ignoring the straightforward medical advice that she was getting, though it is understandable given her situation, and her concerns about doping in sports. And to her credit, she researched her conditions thoroughly and made the right decisions. As I was reading her symptoms I immediately wondered if she was hypothyroid, and now I wonder if she actually had burned-out Graves, with her mild exopthalmos. Anyway, enough pop-diagnosis. The book is excellent and I would read more by her if she ever writes another book.&lt;/p&gt;
&lt;p&gt;Favorite quote from the book:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The grind&amp;rdquo; meant something positive to me: a challenge to embrace repetition and approach it creatively. It annoyed me when I heard &amp;ldquo;the grind&amp;rdquo; used in a pejorative way. Sure, it could be tedious, but it was a choice. Go off and do something else if you hate it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Preach!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Links 2024-04-07</title>
      <link>https://kurup.com/blog/2024/04/07/links-2024-04-07/</link>
      <pubDate>Sun, 07 Apr 2024 08:00:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/04/07/links-2024-04-07/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://peterattiamd.com/muscle-fiber-shape-and-resistance-training/&#34;&gt;Old people can build muscle&lt;/a&gt;. Sorry,
this one is behind a paywall, but it basically describes a study that showed that muscle
SFI decreased in old people (ages 60-79) with resistance training. Muscle SFI (shape
factor index) represents how close the cross-sectional shape of your muscle is to the
shape of a circle, where 1.00 is a circle and the lower the number, the better it is.
I&amp;rsquo;d never heard of that metric before. But the good news is that in this study, both
young and old people were able to decrease their SFI by the same amount over the study
period.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not a link, but a nice quote:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Wrong decisions are part of life. Being able to make them work anyway is one of the abilities of those who are successful.
— Warren Buffett&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>Links 2024-04-06</title>
      <link>https://kurup.com/blog/2024/04/06/links-2024-04-06/</link>
      <pubDate>Sat, 06 Apr 2024 19:17:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/04/06/links-2024-04-06/</guid>
      <description>&lt;p&gt;I can&amp;rsquo;t seem to find things on the web as well as I used to. I blame &lt;a href=&#34;https://pluralistic.net/2024/04/04/teach-me-how-to-shruggie/#kagi&#34;&gt;Google being
enshittified&lt;/a&gt;, but
whatever the reason, I&amp;rsquo;m going to post links here. Not sure of the tempo or format but I
guess I&amp;rsquo;ll figure that out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.nike.com/a/running-shoe-lacing-techniques&#34;&gt;Lydiard Lacing&lt;/a&gt;. I&amp;rsquo;ve been having trouble with my toes and someone mentioned that
changing my lacing might help. I&amp;rsquo;ve tried Lydiard Lacing for a few weeks and it gives
my toes a lot more room. I fear that Nike link will
eventually rot, so here&amp;rsquo;s &lt;a href=&#34;https://www.fieggen.com/shoelace/straightbarlacing.htm&#34;&gt;another explanation&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.chirocentre.com.au/stuart-mcgills-big-three-low-back-exercises/&#34;&gt;Big Three&lt;/a&gt;. Three exercises I&amp;rsquo;ve been doing for my back&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.rockauto.com/&#34;&gt;RockAuto&lt;/a&gt; -  An alternative to Amazon for car parts. I
needed wiper blades, so checked where &lt;a href=&#34;https://www.reddit.com/r/cars/comments/m85oc8/whats_your_favorite_website_to_buy_parts_from_and/&#34;&gt;reddit recommended to buy them&lt;/a&gt;
and also &lt;a href=&#34;https://www.reddit.com/r/BuyItForLife/comments/120synn/any_good_wiper_blades/&#34;&gt;which brand to buy&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/selfhosted/comments/pagkh8/mediacms_a_modern_fully_featured_open_source/&#34;&gt;MediaCMS&lt;/a&gt; -
Someday I&amp;rsquo;d like to try this out for all the family photos and videos we have.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Cory Doctorow Rabbit Hole</title>
      <link>https://kurup.com/blog/2024/03/16/cory-doctorow-rabbit-hole/</link>
      <pubDate>Sat, 16 Mar 2024 20:59:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/03/16/cory-doctorow-rabbit-hole/</guid>
      <description>&lt;p&gt;I just went down a Cory Doctorow rabbit hole. It started from a link in &lt;a href=&#34;https://austinkleon.com/newsletter/&#34;&gt;Austin Kleon&amp;rsquo;s newsletter&lt;/a&gt; to &lt;a href=&#34;https://pluralistic.net/2021/05/09/the-memex-method/&#34;&gt;Doctorow&amp;rsquo;s post about his blog being his version of a commonplace book or a Memex&lt;/a&gt;. I remember Doctorow as being one of the early famous bloggers and an early crusader against unending copyright, but I haven&amp;rsquo;t really paid much attention to him since those early days. I distinctly remember when his first book, &amp;ldquo;Down and Out in the Magic Kingdom&amp;rdquo; was released for free on the internet. I remember it being surprising because he was &amp;ldquo;just a blogger&amp;rdquo; and now he was writing a real book. I was intrigued by some of the ideas in it. Like the concept of Whuffie, which was a social status indicator that everyone could see floating above your head, so that you knew who was important and who was a loser. With augmented reality, this might come true sooner than we think. I actually couldn&amp;rsquo;t initially remember the name of the book so I had to look through his &lt;a href=&#34;https://craphound.com/shop/&#34;&gt;book list&lt;/a&gt; to find it, and then saw that he&amp;rsquo;s written like 20 books now, many which look really interesting, so my to-read list just grew a bit. I also found his article about &lt;a href=&#34;https://pluralistic.net/2023/01/21/potemkin-ai/&#34;&gt;enshittification&lt;/a&gt;, which I think is one of the best essays I&amp;rsquo;ve seen in recent years. I&amp;rsquo;ve heard the term a lot, but didn&amp;rsquo;t realize that he had coined it. That article is another reason that I&amp;rsquo;ve started to write again, here on a page that I own.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The key to happiness is to do things that don&#39;t make you happy</title>
      <link>https://kurup.com/blog/2024/03/14/the-key-to-happiness-is-to-do-things-that-dont-make-you-happy/</link>
      <pubDate>Thu, 14 Mar 2024 20:51:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2024/03/14/the-key-to-happiness-is-to-do-things-that-dont-make-you-happy/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m not sure that title is an exact quote, but I thought I heard &lt;a href=&#34;https://peterattiamd.com/arthurbrooks2/&#34;&gt;Arthur Brooks say something like that as he was interviewed on a Peter Attia podcast&lt;/a&gt;. At least that&amp;rsquo;s what I took from whatever he said. His point was that the common advice to &amp;ldquo;follow your bliss&amp;rdquo; is misguided. When faced with choices, you shouldn&amp;rsquo;t choose the easy thing, you should choose the hard thing. I&amp;rsquo;m not sure that any of this is revolutionary, but that title sure is kinda surprising to me, and I think it makes a lot of sense.&lt;/p&gt;
&lt;p&gt;What would have made me happy this evening? Certainly way low on that list is writing this blog post. As you can tell if you follow my blogging (ha!), I clearly don&amp;rsquo;t like to write in public. The easy thing, the thing that my brain was telling me to do because it promised me happiness, was to sit down and scroll through my phone, or pick up my Kindle and read a novel, or basically do anything that was not me trying to &lt;strong&gt;create&lt;/strong&gt; something. The hard thing, the thing I knew would be painful, was to scribble down this post because I know it will never be as good as the post that is in my brain. Taking this idea in my brain, which is perfect because nobody else can see it, and trying to put it on the page here&amp;hellip; well that is scary and painful and I know people will wonder why I&amp;rsquo;d even think this was worth thinking, let alone sharing with the world. But in the long run, doing this activity of taking ideas in my brain, and working with them on the page, especially in public is clearly going to be better for me than leaving them in my brain. It will lead to me being a happier person.&lt;/p&gt;
&lt;p&gt;Doing the thing that won&amp;rsquo;t make me happy is the key to happiness.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Three tips on visiting Italy!</title>
      <link>https://kurup.com/blog/2022/08/16/three-tips-on-visiting-italy/</link>
      <pubDate>Tue, 16 Aug 2022 18:36:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2022/08/16/three-tips-on-visiting-italy/</guid>
      <description>&lt;p&gt;Today, I have a guest post for you from a &lt;a href=&#34;https://kurup.com/blog/2019/04/08/avik-730/&#34;&gt;very famous author&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;by-avik-kurup&#34;&gt;By: Avik Kurup&lt;/h3&gt;
&lt;p&gt;If you&amp;rsquo;re going to visit Italy, I believe that these three tips will make you have an amazing trip.&lt;/p&gt;
&lt;p&gt;First and foremost, visit Florence, Rome, Venice, and Cinque Terre. Florence has delicious food and the best gelato out of all of these places. Rome has the best pizza. Also, the colosseum and the forum are important and fun sites to see there. In Venice they have incredible pasta and seafood and many places to ride on boats.&lt;/p&gt;
&lt;p&gt;Another important thing to know about visiting Italy is that you don’t want to drive. Cars are difficult to use because there are a lot of one way roads and confusing traffic lights. You will enjoy walking or going on a bike tour more. You can also use the train for longer distances.&lt;/p&gt;
&lt;p&gt;The last tip that will help you enjoy your trip to Italy is you should eat as much  pizza, pasta, and gelato as possible. Pizza in Italy has a crunchier crust and they put a ton of cheese. When you order pasta the bowl is humongous, but there is a small hole in the middle that is filled with pasta. It is way more than you think. I recommend the pasta bolognese. Italian gelato is fresh and inexpensive. You can get two flavors in a cup for $2.50!&lt;/p&gt;
&lt;p&gt;Clearly, Italy has fantastic sights to see and food to eat. If you follow these three tips you will have a great trip!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>USB-C lint</title>
      <link>https://kurup.com/blog/2021/12/26/usb-c-lint/</link>
      <pubDate>Sun, 26 Dec 2021 08:36:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2021/12/26/usb-c-lint/</guid>
      <description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem&lt;/h2&gt;
&lt;p&gt;The USB-C cord kept falling out of my Android phone. It started happening in the car. A
little bump while driving would make the cord fall out. Then it started happening even
when I just had it plugged in on a table. I&amp;rsquo;d come down in the morning and the charge
would be drained because it hadn&amp;rsquo;t been fully plugged in. Finally, I couldn&amp;rsquo;t even get
it to charge unless I plugged it in forcefully, and put a book under the cord at a
certain angle to keep it plugged in.&lt;/p&gt;
&lt;h2 id=&#34;the-googling&#34;&gt;The googling&lt;/h2&gt;
&lt;p&gt;Googling for this problem didn&amp;rsquo;t find anything specific to my phone, but I did find
people complaining of this issue and other people telling them that this was because of
lint in the USB-C port.
&lt;a href=&#34;https://www.reddit.com/r/nexus5x/comments/4morbk/comment/d3xaqew/&#34;&gt;[1]&lt;/a&gt;
&lt;a href=&#34;https://www.youtube.com/watch?v=bNlM0i9PUTQ&#34;&gt;[2]&lt;/a&gt;
&lt;a href=&#34;https://www.ifixit.com/Answers/View/382427/Whats+the+best+way+to+clean+and+maintain+the+USB-C+port&#34;&gt;[3]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just needed to get that lint out somehow.&lt;/p&gt;
&lt;h2 id=&#34;what-didnt-work&#34;&gt;What didn&amp;rsquo;t work&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Compressed air&lt;/li&gt;
&lt;li&gt;A toothpick (it was too thick)&lt;/li&gt;
&lt;li&gt;A plastic zip tie (It was too flimsy)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;what-did-work&#34;&gt;What did work&lt;/h2&gt;
&lt;p&gt;A SIM card removal tool. You know, one of those things that they send you with a new
phone to poke into the SIM card housing to get it to eject? It was the perfect size and
depth to be able to get all the way around the SIM card and get copious amounts of lint
(ewww!) out of the port. Now my USB-C cord plugs in with a satisfying click and stays
connected.&lt;/p&gt;
&lt;h2 id=&#34;philosophical-musings&#34;&gt;Philosophical musings&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s weird that this three year old phone now feels new to me. For a while now, I would
have a little dread every time I went to plug in this phone, knowing that it would be
fiddly and that I might come down to a dead phone in the morning. Now, with this little
improvement, I feel a weird warmth towards the phone again, similar to that feeling I
had when it was a new phone. I cleaned out the lint a few weeks ago, and I still have
this warm sensation towards it. Every time I plug it in, I get a little burst of
happiness when it clicks in satisfyingly. It&amp;rsquo;s almost as if seeing a problem with the
phone that I didn&amp;rsquo;t think would exist, and then seeing a solution to that problem, makes
me appreciate the phone more than if it had never had that problem. That just feels
weird and revelatory to me.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Loving the frame.work laptop</title>
      <link>https://kurup.com/blog/2021/11/27/loving-the-frame.work-laptop/</link>
      <pubDate>Sat, 27 Nov 2021 19:52:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2021/11/27/loving-the-frame.work-laptop/</guid>
      <description>&lt;p&gt;I have a new &lt;a href=&#34;https://frame.work/products/laptop-diy-edition&#34;&gt;favorite laptop&lt;/a&gt;. I needed
a new non-work laptop and Linux is my OS of choice. It has been for at least a decade,
but recently that favoritism has been cemented since I chose to use a Macbook Pro for
work. After 6 months with the Mac, I&amp;rsquo;m finally starting to feel productive with it, but
it has been a painful re-learning (and un-learning) process. I still fondly return to my
Linux machines at the end of the work day. Mac OS X is just too &amp;ldquo;in-your-face&amp;rdquo; for me.&lt;/p&gt;
&lt;p&gt;So I started planning to get another ThinkPad when I heard about
&lt;a href=&#34;https://frame.work&#34;&gt;frame.work&lt;/a&gt; on Hacker News. They are a startup focused on building
functional, modular, &lt;strong&gt;repairable&lt;/strong&gt; laptops which are also beautiful, light and fun to
use. Check out their &amp;ldquo;About&amp;rdquo; page for more about their mission, but it resonated with
me. I&amp;rsquo;ve always loved &lt;a href=&#34;https://en.wikipedia.org/wiki/PEEK_and_POKE&#34;&gt;poke&lt;/a&gt;ing around my
computers and it&amp;rsquo;s unfortunately gotten much harder to do that with all of my electronic
devices. Frame.work is fighting against that trend.&lt;/p&gt;







&lt;span class=&#34;caption-wrapper &#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;https://kurup.com/images/frame-work-unboxed.jpg&#34; title=&#34;Frame.work laptop contents&#34; alt=&#34;Frame.work laptop contents&#34;&gt;
  &lt;span class=&#34;caption-text&#34;&gt;Frame.work laptop contents&lt;/span&gt;
&lt;/span&gt;

&lt;p&gt;They have a DIY option where you install your own RAM, SSD and WiFi module. Even the
non-DIY option comes in with external pluggable modules so you can configure your
accessories. I got 2 USB-C ports, a USB-A port, an HDMI-port, and an SD-card reader. But
it&amp;rsquo;s simple to pop out a module and pop in a new one. I don&amp;rsquo;t see myself doing that too
much, but when I do need that SD card reader, I&amp;rsquo;ll be smiling. Setting up the DIY parts was
fun and easy. Each part has a QR code on the part and on the location in the laptop
where it gets installed, which points to detailed instructions.&lt;/p&gt;







&lt;span class=&#34;caption-wrapper &#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;https://kurup.com/images/frame-work-insides.jpg&#34; title=&#34;Frame.work laptop insides&#34; alt=&#34;Frame.work laptop insides&#34;&gt;
  &lt;span class=&#34;caption-text&#34;&gt;Frame.work laptop insides&lt;/span&gt;
&lt;/span&gt;

&lt;p&gt;Ubuntu 20.04 doesn&amp;rsquo;t work out of the box (WiFi issues, I think?), so I installed 21.04,
and everything works except for the fingerprint reader (which never worked with Ubuntu
for me on my ThinkPad either). There are instructions to build the software needed to
get it to work, but I&amp;rsquo;ll wait for it to get rolled into a future OS release (I&amp;rsquo;m old).&lt;/p&gt;
&lt;p&gt;Overall, the computer itself is a dream. The screen is large and bright. The keyboard is
dreamy, compared to my Thinkpad X1 Carbon. I think it&amp;rsquo;s better than my MacBook Pro too,
but honestly that thing is too huge to use as a laptop so I always use it with an
external keyboard. The computer is light and the battery life is more than adequate for
my needs (though there are gripes and workarounds on the forums about this).&lt;/p&gt;







&lt;span class=&#34;caption-wrapper &#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;https://kurup.com/images/frame-work.jpg&#34; title=&#34;Frame.work laptop&#34; alt=&#34;Frame.work laptop&#34;&gt;
  &lt;span class=&#34;caption-text&#34;&gt;Frame.work laptop&lt;/span&gt;
&lt;/span&gt;

&lt;p&gt;I thought that there would be more rough edges to the whole process, but I&amp;rsquo;ve been
pleasantly surprised. I hope others like it as much as I do so that the company sticks
around!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>First Post of 2021</title>
      <link>https://kurup.com/blog/2021/05/09/first-post-of-2021/</link>
      <pubDate>Sun, 09 May 2021 19:14:52 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2021/05/09/first-post-of-2021/</guid>
      <description>&lt;p&gt;Hi loyal reader(s)! It is nearly halfway through 2021 and this is my first post of the
year. And writing on this here blog was one of my 2021 resolutions, so I guess that was
a complete failure. Although, maybe I can make up for it by actually writing more
regularly over the next few months. It has been a whirlwind of a year for just about
everyone, right? When the pandemic started, I remember making a list of the things that
I might want to blog about and the only thing I remember from that list was that I
wanted to blog about &amp;ldquo;not wanting to blog about the pandemic&amp;rdquo;. It was just too
exhausting to think about. And I think I still feel that way. I have written some
private thoughts about things, but I&amp;rsquo;ll leave them under wraps.&lt;/p&gt;
&lt;p&gt;The biggest change in my life is that I am starting a new job tomorrow. I&amp;rsquo;ll be a
Software Engineer at Kevel, programming in Clojure (among other languages). I&amp;rsquo;ve been
infatuated with Clojure (and functional programming in general) for a long time, so I am
beyond excited to be able to use it professionally. This is also the first job that I&amp;rsquo;ll
be starting as a &amp;ldquo;remote-only&amp;rdquo; worker. Normally, I&amp;rsquo;d walk into the office and introduce
myself to someone and then start to get oriented. It will be weird to do that via an
online chat of some sort. Am I showing my age?&lt;/p&gt;
&lt;p&gt;What else is going on? Well I&amp;rsquo;m not going to talk about the pandemic, but I do encourage
people to go &lt;a href=&#34;https://aif.org/donate/covid-19-response/&#34;&gt;help out people in India&lt;/a&gt; (or
wherever else people need help.) We are luckily healthy and vaccinated. The kids have
survived remote schooling and two of them have returned to school partly in-person. I&amp;rsquo;ve
been running and meditating and gardening, all with minimal success.&lt;/p&gt;
&lt;p&gt;So, what is up with you all? Hope to write again before the end of the year.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Advent of Code Elixir Day 1</title>
      <link>https://kurup.com/blog/2020/12/12/advent-of-code-elixir-day-1/</link>
      <pubDate>Sat, 12 Dec 2020 12:11:04 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2020/12/12/advent-of-code-elixir-day-1/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s this cool thing called Advent of Code, described best
&lt;a href=&#34;https://adventofcode.com/2020/about&#34;&gt;here&lt;/a&gt;. I found out about it while reading my
&lt;a href=&#34;https://cpbotha.net/2020/12/12/weekly-head-voices-211-table-mountain-run-ish/&#34;&gt;favorite weekly weblog&lt;/a&gt;
and so I&amp;rsquo;ve decided to try my fledgling (maybe flailing is a better word?) Elixir skills
on it. There are 2 puzzles each day (&lt;code&gt;day_1_0&lt;/code&gt; and &lt;code&gt;day_1_1&lt;/code&gt; are my solutions). Here&amp;rsquo;s
my code for Day 1:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-elixir&#34; data-lang=&#34;elixir&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  @doc &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  Find 2 numbers in file that sum to 2020 and return their product.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;      iex&amp;gt; Aoc.day_1_0()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;      633216
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;def&lt;/span&gt; day_1_0 &lt;span style=&#34;color:#719e07&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    goal &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2020&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    list_of_nums &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; get_list_of_nums()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    first_num &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; find_first_partner(list_of_nums, goal)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    first_num &lt;span style=&#34;color:#719e07&#34;&gt;*&lt;/span&gt; (goal &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; first_num)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  @doc &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  Find 3 numbers in file that sum to 2020 and return their product.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;      iex&amp;gt; Aoc.day_1_1()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;      68348924
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;def&lt;/span&gt; day_1_1 &lt;span style=&#34;color:#719e07&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    goal &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2020&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    list_of_nums &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; get_list_of_nums()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#586e75&#34;&gt;# find first number where there exists 2 other numbers that sum to `goal - x`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    first_num &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;Enum&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;find(list_of_nums, &lt;span style=&#34;color:#719e07&#34;&gt;fn&lt;/span&gt; x &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; find_first_partner(list_of_nums, goal &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; x) &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    second_num &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; find_first_partner(list_of_nums, goal &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; first_num)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    first_num &lt;span style=&#34;color:#719e07&#34;&gt;*&lt;/span&gt; second_num &lt;span style=&#34;color:#719e07&#34;&gt;*&lt;/span&gt; (goal &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; first_num &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; second_num)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  @doc &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  Given a `list` of integers, return the first number in that list which has a
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  partner in the list that sums to `goal`.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;  &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;def&lt;/span&gt; find_first_partner(list, goal) &lt;span style=&#34;color:#719e07&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2&#34;&gt;Enum&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;find(list, &lt;span style=&#34;color:#719e07&#34;&gt;fn&lt;/span&gt; x &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;Enum&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;member?(list, goal &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; x) &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;defp&lt;/span&gt; get_file &lt;span style=&#34;color:#719e07&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2&#34;&gt;Path&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;join(&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;day1.txt&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#719e07&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;File&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;read!()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;defp&lt;/span&gt; get_list_of_nums &lt;span style=&#34;color:#719e07&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#586e75&#34;&gt;# Split into lines, filter out empty lines, convert each to an integer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    get_file()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;String&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;split(&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#cb4b16&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;Enum&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;filter(&lt;span style=&#34;color:#719e07&#34;&gt;fn&lt;/span&gt; x &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;String&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;trim(x) &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;Enum&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;map(&lt;span style=&#34;color:#719e07&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;String&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;to_integer&lt;span style=&#34;color:#719e07&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The code is also available in Github, which I&amp;rsquo;ll update if I do find time to keep going:
&lt;a href=&#34;https://github.com/vkurup/aoc-elixir/&#34;&gt;https://github.com/vkurup/aoc-elixir/&lt;/a&gt; I feel like this could have been done more
efficiently with recursion, but I am not comfortable enough with recursion to know
how&amp;hellip;&lt;/p&gt;
&lt;p&gt;A sincere thanks to &lt;a href=&#34;http://was.tl/&#34;&gt;Eric Wastl&lt;/a&gt; for spending the enormous time and energy
to create cool puzzles like this.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Install multiple python versions using pyenv</title>
      <link>https://kurup.com/blog/2020/12/11/install-multiple-python-versions-using-pyenv/</link>
      <pubDate>Fri, 11 Dec 2020 20:57:39 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2020/12/11/install-multiple-python-versions-using-pyenv/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/pyenv/pyenv&#34;&gt;pyenv&lt;/a&gt; is awesome and has changed the way that I manage
my Python environments. One tiny annoyance is that it takes a looong time to install
each Python version, which of course makes sense, since it has to download and compile
each version on your machine. But it&amp;rsquo;s not a big deal, since you generally just do this
once and then not again until you really need to upgrade to a different Python version.&lt;/p&gt;
&lt;p&gt;Recently, though, I was working on a project that uses tox to make sure that the project
runs on multiple Python versions, in this case 3.6, 3.7, 3.8, 3.9. The specific versions
were included in the &lt;code&gt;.python-version&lt;/code&gt; file, which looked like this:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;3.9.0
3.8.6
3.7.9
3.6.12
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I didn&amp;rsquo;t have all of these installed, so rather than doing &lt;code&gt;pyenv install 3.9.0&lt;/code&gt; and
then waiting a few minutes, and then repeating the process for each version, I wrote up
this little script, which I named &lt;code&gt;pyinstall.sh&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;# Install all versions specified in .python-version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#b58900&#34;&gt;set&lt;/span&gt; -ex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#b58900&#34;&gt;read&lt;/span&gt; version; &lt;span style=&#34;color:#719e07&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    pyenv install -s &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$version&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;done&lt;/span&gt; &amp;lt;.python-version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Since &lt;code&gt;pyenv&lt;/code&gt; is nice enough to include the &lt;code&gt;-s&lt;/code&gt; flag which means &amp;ldquo;skip if already
installed&amp;rdquo;, this can be run as many times as you want and it will only install the
version if it&amp;rsquo;s not already installed&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Disk Space Hogs</title>
      <link>https://kurup.com/blog/2020/12/10/disk-space-hogs/</link>
      <pubDate>Thu, 10 Dec 2020 16:48:35 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2020/12/10/disk-space-hogs/</guid>
      <description>&lt;p&gt;Find disk space hogs:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo du -h -d 3 / | grep &amp;#34;^[0-9.]*G&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;hellip; which helped me find the command in
&lt;a href=&#34;https://kurup.com/blog/2020/12/09/deleting-old-snaps/&#34;&gt;yesterday&amp;rsquo;s post&lt;/a&gt;. You can add directories
after the slash to drill down to your heart&amp;rsquo;s content.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Deleting old snaps</title>
      <link>https://kurup.com/blog/2020/12/09/deleting-old-snaps/</link>
      <pubDate>Wed, 09 Dec 2020 16:41:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2020/12/09/deleting-old-snaps/</guid>
      <description>&lt;p&gt;Copy this script into &lt;code&gt;~/bin/&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -ex

LANG=en_US.UTF-8 snap list --all | awk &amp;#39;/disabled/{print $1, $3}&amp;#39; |
    while read snapname revision; do
        sudo snap remove &amp;#34;$snapname&amp;#34; --revision=&amp;#34;$revision&amp;#34;
    done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Found on
&lt;a href=&#34;https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html&#34;&gt;https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html&lt;/a&gt; and
slightly edited.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Using an OBi110 for VOIP service</title>
      <link>https://kurup.com/blog/2020/08/21/using-an-obi110-for-voip-service/</link>
      <pubDate>Fri, 21 Aug 2020 19:45:00 +0000</pubDate>
      <author>vinod@kurup.com (Vinod Kurup, MD)</author>
      <guid>https://kurup.com/blog/2020/08/21/using-an-obi110-for-voip-service/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.com/Obihai-OBi110-Service-Telephone-Adapter/dp/B0045RMEPI/ref=as_li_ss_il?cv_ct_cx=obi110&amp;dchild=1&amp;keywords=obi110&amp;pd_rd_i=B0045RMEPI&amp;pd_rd_r=a3b6c935-3201-4201-bbc6-7d29bbd1c366&amp;pd_rd_w=Ef8IC&amp;pd_rd_wg=nizgM&amp;pf_rd_p=13bf9bc7-d68d-44c3-9d2e-647020f56802&amp;pf_rd_r=A41ZB6SM3B7MVPHCSCCT&amp;psc=1&amp;qid=1598054979&amp;sr=1-1-791c2399-d602-4248-afbb-8a79de2d236f&amp;linkCode=li3&amp;tag=vinodkurupshomep&amp;linkId=235aa511a32550f5368ef9f5910b2806&amp;language=en_US&#34; target=&#34;_blank&#34;&gt;&lt;img border=&#34;0&#34; src=&#34;https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;ASIN=B0045RMEPI&amp;Format=_SL250_&amp;ID=AsinImage&amp;MarketPlace=US&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=vinodkurupshomep&amp;language=en_US&#34; &gt;&lt;/a&gt;&lt;img src=&#34;https://ir-na.amazon-adsystem.com/e/ir?t=vinodkurupshomep&amp;language=en_US&amp;l=li3&amp;o=1&amp;a=B0045RMEPI&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px !important;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;I set up an OBi110 device to provide a landline at home. OK, it&amp;rsquo;s not a land line, it&amp;rsquo;s
a VOIP (Voice Over Internet Protocol) line, but it performs a similar function. We&amp;rsquo;ve
always had a landline. Our cell phone coverage is spotty at times and ever since Mala
started working from home, she needs to have a reliable phone line for her global
conference calls.&lt;/p&gt;
&lt;p&gt;The problem is that Spectrum was charging us $44.95 per month plus taxes, which took it
near $50 every month. I considered a few options including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MagicJack&lt;/li&gt;
&lt;li&gt;Ooma&lt;/li&gt;
&lt;li&gt;I looked at a few others&amp;hellip; can&amp;rsquo;t remember them all&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, I settled on buying an &lt;a href=&#34;https://en.wikipedia.org/wiki/Analog_telephone_adapter&#34;&gt;ATA device&lt;/a&gt; and then connecting it
to a cheaper VOIP service. I chose &lt;a href=&#34;https://voip.ms&#34;&gt;voip.ms&lt;/a&gt; which has been great so
far.&lt;/p&gt;
&lt;p&gt;One Time Costs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://amzn.to/2EivFuP&#34;&gt;OBi110&lt;/a&gt; ATA device: $19.90&lt;/li&gt;
&lt;li&gt;voip.ms setup fee: $0.40&lt;/li&gt;
&lt;li&gt;voip.ms e911 setup fee: $1.50&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Monthly Costs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;voip.ms fee for an incoming phone number: $0.85&lt;/li&gt;
&lt;li&gt;voip.ms e911 monthly fee: $1.50&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Per-Minute Costs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;voip.ms incoming: $0.009 per minute&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ll have to keep an eye on my monthly per-minute costs because there is an unlimited
plan that is $4.25 per month, which I&amp;rsquo;ll switch to if I use more than that per month. In
any case, this is MUCH cheaper than Spectrum.&lt;/p&gt;
&lt;p&gt;Now, if you do any research about the OBi110 device, you&amp;rsquo;ll see everyone telling you not
to buy it because it is out of service and doesn&amp;rsquo;t support Google Voice. This is true,
ObiTalk doesn&amp;rsquo;t support the device anymore. When it was supported by the company, you
could just dial a special code on your phone and it would do all the set up for you.
Since it&amp;rsquo;s not supported, that procedure doesn&amp;rsquo;t work anymore. But you can &lt;a href=&#34;https://wiki.voip.ms/article/OBi_100/110_%26_OBi_200&#34;&gt;manually configure the device&lt;/a&gt; with the
excellent docs from voip.ms, and for a geek like me that was not bad. And yes, you can&amp;rsquo;t
link a Google Voice number to the device, but I didn&amp;rsquo;t want to do that anyway. I think
if you wanted to keep using a google voice number, you could probably get pretty close
by putting a different number on your device (through voip.ms) and then pointing Google
Voice at that number. Incoming calls would work fine in that way, but I&amp;rsquo;m not sure about
outgoing calls. If you want to seamlessly use Google Voice on an ATA device, then OBi110
isn&amp;rsquo;t for you. You&amp;rsquo;ll need the OBI202 (which was out of stock when I was looking).&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
