<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>Travis Fantina</title>
    <link>https://blog.travisfantina.com/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Fri, 29 May 2026 08:38:46 -0400</lastBuildDate>
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/05/29/sad-to-hear-about-the.html</link>
      <pubDate>Fri, 29 May 2026 08:38:46 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/05/29/sad-to-hear-about-the.html</guid>
      <description>&lt;p&gt;Sad to hear about the death of Marc Johnson; he was an incredible skateboarder who I grew up watching. Perhaps more than any other skater; he was the epitome of being incredibly talented and hardworking but also never taking things too seriously just having a blast being different and weird. His skating was like a cocktail of Mullen&amp;rsquo;s technical abilities and Gonz&amp;rsquo;s weirdness.&lt;/p&gt;
&lt;p&gt;Still an insane part:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=bJK7xonD8Qo&#34;&gt;www.youtube.com/watch&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>Sad to hear about the death of Marc Johnson; he was an incredible skateboarder who I grew up watching. Perhaps more than any other skater; he was the epitome of being incredibly talented and hardworking but also never taking things too seriously just having a blast being different and weird. His skating was like a cocktail of Mullen&#39;s technical abilities and Gonz&#39;s weirdness. 

Still an insane part:

[www.youtube.com/watch](https://www.youtube.com/watch?v=bJK7xonD8Qo)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/05/20/its-encouraging-to-see-heads.html</link>
      <pubDate>Wed, 20 May 2026 16:29:50 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/05/20/its-encouraging-to-see-heads.html</guid>
      <description>&lt;p&gt;It&amp;rsquo;s encouraging to see heads of state around the world condemning the video of Itamar Ben-Gvir taunting detainees; but they don&amp;rsquo;t get it. The international community&amp;rsquo;s abject failure to act during the genocide of the last two and a-half years has taught Israel and Israeli leaders that they are 100% immune. If there have been literally 0 consequences for the deaths of over seventy thousand civilians and the total destruction of all hospitals and universities then what do these leaders with their &amp;ldquo;strongly worded&amp;rdquo; condemnations expect is going to happen?&lt;/p&gt;
</description>
      <source:markdown>It&#39;s encouraging to see heads of state around the world condemning the video of Itamar Ben-Gvir taunting detainees; but they don&#39;t get it. The international community&#39;s abject failure to act during the genocide of the last two and a-half years has taught Israel and Israeli leaders that they are 100% immune. If there have been literally 0 consequences for the deaths of over seventy thousand civilians and the total destruction of all hospitals and universities then what do these leaders with their &#34;strongly worded&#34; condemnations expect is going to happen?
</source:markdown>
    </item>
    
    <item>
      <title>An Evening in December</title>
      <link>https://blog.travisfantina.com/2026/05/19/an-evening-in-december.html</link>
      <pubDate>Tue, 19 May 2026 09:26:33 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/05/19/an-evening-in-december.html</guid>
      <description>&lt;p&gt;Early December, 2023, I had a rare night by myself walking around the city. Picking something up from on the West End followed by a meeting past Olympic Village; generally a transit worthy-distance but I had over an hour to kill and the night was warm. Not unseasonably warm, but comfortable. It had been raining all day; not a steady downpour, just the fine mist that seems to vacillate between fog and rain. Walking along the waterfront the streets glistening with the sheen of the rain, trees were still, halos formed around the pricks of streetlights. My feet carried me effortlessly through Yaletown toward False Creek. Walking through a city helps to create a mental model in a way that a car or transit does not; not only do you learn the geography, it also has the odd effect of shrinking the city. Somehow things that once seemed quite far away feel close. Cutting across parks, allies and walking paths that route you around congested streets. You’re apt to get lost a few times but it’s a worthy trade to know the city.&lt;/p&gt;
&lt;p&gt;The lights around me seemed to dim as I entered a park along the water; pricks across the inlet and a glow behind me.  Along the promenade coming from the opposite direction, a father and a young boy leisurely made their way across the street and along my path. They looked happy, the boy was skipping, and the father was encouraging him in some kind of game. Laughing and talking the two made their way past me and I felt such an overwhelming sense of calm. I thought of my own child, my daughter at home, likely already asleep, had we not done something like this that very afternoon? Would we not the next afternoon? In that brief moment I felt like this was the place I belonged most in the world.&lt;/p&gt;
&lt;p&gt;My thoughts turned to other fathers and sons, fathers and daughters, walking together. My mind went back to the fathers who may have spent their nights looking for food or shelter for their children. The genocide in Gaza was in it’s second month, most media hadn’t yet started referring to it as such. I was constantly preoccupied by the fear, the sadness, the anguish that a civilian population was feeling as their homeland was, yet again, besieged and everything they had ever known, worked for, dreamed of was decimated in front of them. Are the children who survive the lucky ones?&lt;/p&gt;
&lt;p&gt;This contrasting sense of calm and rightness that I felt on my walk and the emotions I had been having for the previous two months. Feeling at home on the waterfront where the only sounds I heard were a young boy and his father laughing, the slight dinging of boats in the harbour, the lapping of the waves. I felt hopeful for the first time in weeks, I was hopeful that if this boy and his father were enjoying a laugh together on a quiet night; hopefully children elsewhere were doing the same. Perhaps even amidst the chaos in Gaza a young boy and his father there were laughing and having fun making their way back “home” whatever that looked like at the time. War is dehumanizing, it has no regard for the dreams of youth, the anguish and the joy of a mother going through labour, the first steps taken, the last few years spent with grandchildren. War and the men who make it don’t consider these things. We are human, we are all human, and even in the midst of a devastating war, a conflict, genocide, ethnic cleansing whatever you call it people will claw back whatever humanity they can.&lt;/p&gt;
&lt;p&gt;People living under occupation, growing up in war zones, are resilient people with an impressively stubborn resilience that builds rather than diminishes over years, decades, and generations. No one should have to live like that, but those who do have a determination to live, a determination to claim their land and to protect it that I can’t being to understand. This resistance comes in many forms; acts of “terrorism”, acts of courage, and sacrifice; these are the ones that make the news. Humanity without resistance will lead to extinction but resistance without humanity has nothing to save.&lt;/p&gt;
&lt;p&gt;I began to circle the ramp up the Cambie Bridge, the view from up there was spectacular. Science World’s lights had just, finally, been turned back on and were glittering off the inlet. The calm serenity of the night did not leave me; I don’t remember a single car on the bridge as I walked across. The sun had long set but a lite fog rose from the streets as if the moon took over the shift from the sun and continued drying things out. Someday I hope to feel that peace again, I hope everyone does.&lt;/p&gt;
</description>
      <source:markdown>Early December, 2023, I had a rare night by myself walking around the city. Picking something up from on the West End followed by a meeting past Olympic Village; generally a transit worthy-distance but I had over an hour to kill and the night was warm. Not unseasonably warm, but comfortable. It had been raining all day; not a steady downpour, just the fine mist that seems to vacillate between fog and rain. Walking along the waterfront the streets glistening with the sheen of the rain, trees were still, halos formed around the pricks of streetlights. My feet carried me effortlessly through Yaletown toward False Creek. Walking through a city helps to create a mental model in a way that a car or transit does not; not only do you learn the geography, it also has the odd effect of shrinking the city. Somehow things that once seemed quite far away feel close. Cutting across parks, allies and walking paths that route you around congested streets. You’re apt to get lost a few times but it’s a worthy trade to know the city.

The lights around me seemed to dim as I entered a park along the water; pricks across the inlet and a glow behind me.  Along the promenade coming from the opposite direction, a father and a young boy leisurely made their way across the street and along my path. They looked happy, the boy was skipping, and the father was encouraging him in some kind of game. Laughing and talking the two made their way past me and I felt such an overwhelming sense of calm. I thought of my own child, my daughter at home, likely already asleep, had we not done something like this that very afternoon? Would we not the next afternoon? In that brief moment I felt like this was the place I belonged most in the world. 

My thoughts turned to other fathers and sons, fathers and daughters, walking together. My mind went back to the fathers who may have spent their nights looking for food or shelter for their children. The genocide in Gaza was in it’s second month, most media hadn’t yet started referring to it as such. I was constantly preoccupied by the fear, the sadness, the anguish that a civilian population was feeling as their homeland was, yet again, besieged and everything they had ever known, worked for, dreamed of was decimated in front of them. Are the children who survive the lucky ones? 

This contrasting sense of calm and rightness that I felt on my walk and the emotions I had been having for the previous two months. Feeling at home on the waterfront where the only sounds I heard were a young boy and his father laughing, the slight dinging of boats in the harbour, the lapping of the waves. I felt hopeful for the first time in weeks, I was hopeful that if this boy and his father were enjoying a laugh together on a quiet night; hopefully children elsewhere were doing the same. Perhaps even amidst the chaos in Gaza a young boy and his father there were laughing and having fun making their way back “home” whatever that looked like at the time. War is dehumanizing, it has no regard for the dreams of youth, the anguish and the joy of a mother going through labour, the first steps taken, the last few years spent with grandchildren. War and the men who make it don’t consider these things. We are human, we are all human, and even in the midst of a devastating war, a conflict, genocide, ethnic cleansing whatever you call it people will claw back whatever humanity they can. 

People living under occupation, growing up in war zones, are resilient people with an impressively stubborn resilience that builds rather than diminishes over years, decades, and generations. No one should have to live like that, but those who do have a determination to live, a determination to claim their land and to protect it that I can’t being to understand. This resistance comes in many forms; acts of “terrorism”, acts of courage, and sacrifice; these are the ones that make the news. Humanity without resistance will lead to extinction but resistance without humanity has nothing to save.  

I began to circle the ramp up the Cambie Bridge, the view from up there was spectacular. Science World’s lights had just, finally, been turned back on and were glittering off the inlet. The calm serenity of the night did not leave me; I don’t remember a single car on the bridge as I walked across. The sun had long set but a lite fog rose from the streets as if the moon took over the shift from the sun and continued drying things out. Someday I hope to feel that peace again, I hope everyone does.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/05/12/my-daughter-uses-the-same.html</link>
      <pubDate>Tue, 12 May 2026 09:43:39 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/05/12/my-daughter-uses-the-same.html</guid>
      <description>&lt;p&gt;My daughter uses the same backpack I did 30 years ago! Hail to the once great, and again trendy Jansport.&lt;/p&gt;
&lt;p&gt;I also love that she’s adorned it with some finger knitting!&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/197914/2026/67c7bf48f3.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>My daughter uses the same backpack I did 30 years ago! Hail to the once great, and again trendy Jansport.

I also love that she’s adorned it with some finger knitting!


&lt;img src=&#34;https://cdn.uploads.micro.blog/197914/2026/67c7bf48f3.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Infinite Blahs in a GitHub username</title>
      <link>https://blog.travisfantina.com/2026/05/07/infinite-blahs-in-a-github.html</link>
      <pubDate>Thu, 07 May 2026 09:15:33 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/05/07/infinite-blahs-in-a-github.html</guid>
      <description>&lt;p&gt;Today I was sending a client some 404 Error pages for reference (at the moment their site defaults to the standard Rails 7 error page). GitHub has for years had an excellent 404 page (likely something we all will be encountering a lot more in light of recent events); so of course I wanted to reference that.  The first thing that popped into my head was &amp;ldquo;blahblahblah&amp;rdquo; ie &lt;code&gt;github.com/blahblahblah&lt;/code&gt;: unlikely to return anything, I thought. Incorrect: fair enough, GitHub&amp;rsquo;s simple URL scheme resolves the page path to any existing account.&lt;br&gt;
Turns out &lt;code&gt;blahblahblah&lt;/code&gt; is a GitHub user. They Joined in November 2008 and, from what I could tell never made any contributions.  So I moved to the next logical path: &lt;code&gt;blahblahblahblah&lt;/code&gt; while three &amp;ldquo;blah&amp;quot;s is a common English expression four is not.  Turns out &lt;code&gt;blahblahblahblah&lt;/code&gt; joined GitHub in 2010 and has made no contributions since.
So I tried, 5, 6, 7 iterations of &amp;ldquo;blah&amp;rdquo;, I began to worry that this was some sort of bot that was just joining GitHub with the next available number of &amp;ldquo;blah&amp;rdquo;.
The last user is: &lt;code&gt;blahblahblahblahblahblahblahblahblah&lt;/code&gt; which is 36 characters, 3 less than GitHub&amp;rsquo;s username limit of 39 characters. Sadly we will never know what could have been if there was no restriction on username lengths.&lt;/p&gt;
</description>
      <source:markdown>Today I was sending a client some 404 Error pages for reference (at the moment their site defaults to the standard Rails 7 error page). GitHub has for years had an excellent 404 page (likely something we all will be encountering a lot more in light of recent events); so of course I wanted to reference that.  The first thing that popped into my head was &#34;blahblahblah&#34; ie `github.com/blahblahblah`: unlikely to return anything, I thought. Incorrect: fair enough, GitHub&#39;s simple URL scheme resolves the page path to any existing account.  
Turns out `blahblahblah` is a GitHub user. They Joined in November 2008 and, from what I could tell never made any contributions.  So I moved to the next logical path: `blahblahblahblah` while three &#34;blah&#34;s is a common English expression four is not.  Turns out `blahblahblahblah` joined GitHub in 2010 and has made no contributions since.
So I tried, 5, 6, 7 iterations of &#34;blah&#34;, I began to worry that this was some sort of bot that was just joining GitHub with the next available number of &#34;blah&#34;. 
The last user is: `blahblahblahblahblahblahblahblahblah` which is 36 characters, 3 less than GitHub&#39;s username limit of 39 characters. Sadly we will never know what could have been if there was no restriction on username lengths. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/05/01/donald-dont-threaten-us-with.html</link>
      <pubDate>Fri, 01 May 2026 07:57:43 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/05/01/donald-dont-threaten-us-with.html</guid>
      <description>&lt;p&gt;Donald don&amp;rsquo;t threaten us with a good time!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Asked late on Thursday whether he would consider pulling US troops out of Italy and Spain, Trump told reporters: “Probably &amp;hellip;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theguardian.com/us-news/2026/may/01/trump-threatens-withdraw-troops-italy-spain-strait-hormuz&#34;&gt;www.theguardian.com/us-news/2&amp;hellip;&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>Donald don&#39;t threaten us with a good time! 
&gt; Asked late on Thursday whether he would consider pulling US troops out of Italy and Spain, Trump told reporters: “Probably ...&#34;

[www.theguardian.com/us-news/2...](https://www.theguardian.com/us-news/2026/may/01/trump-threatens-withdraw-troops-italy-spain-strait-hormuz)
</source:markdown>
    </item>
    
    <item>
      <title>Leaving Vercel</title>
      <link>https://blog.travisfantina.com/2026/04/29/leaving-vercel.html</link>
      <pubDate>Wed, 29 Apr 2026 07:10:38 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/04/29/leaving-vercel.html</guid>
      <description>&lt;p&gt;I recently discovered the photo of Guillermo Rauch with Netanyahu, I guess this was bigger news in tech circles about six months ago but until yesterday I was entirely uninformed.  I have subsequently removed all my projects from Vercel (the platform Rauch founded and serves as CEO of) and written this letter to the Vercel team:&lt;/p&gt;
&lt;p&gt;Vercel is, and has always been one of the best products I&amp;rsquo;ve used, the developer experience is flawless and over the years I&amp;rsquo;ve hosted half a dozen personal projects on the platform as well as bringing on a long-term customer.&lt;/p&gt;
&lt;p&gt;It saddens me to leave and I did so only because I cannot in good conscience continue to support or use the product in any way. Although the original post was over six months ago I was just made aware of CEO Guillermo Rauch&amp;rsquo;s post on X posing with Benjamin Netanyahu. At that point Netanyahu had an international arrest warrant, had presided over the genocide of 60,000 people (at least a third of them children) and wholesale destroyed 80% of a city that was home to 2 million people. I believe individuals are entitled to their personal opinions but Rauch is not just an employee, as the founder and one of the original authors of the flagship product it&amp;rsquo;s hard to separate Rauch&amp;rsquo;s actions from the company. Also it&amp;rsquo;s one thing, I suppose, to post &amp;ldquo;I support Israel&amp;rdquo; in your  personal socials and entirely another to actually meet and pose with a war criminal then post it on your public X which you have used for years to promote your company.&lt;/p&gt;
&lt;p&gt;For these reasons I can no longer continue using Vercel.&lt;/p&gt;
</description>
      <source:markdown>I recently discovered the photo of Guillermo Rauch with Netanyahu, I guess this was bigger news in tech circles about six months ago but until yesterday I was entirely uninformed.  I have subsequently removed all my projects from Vercel (the platform Rauch founded and serves as CEO of) and written this letter to the Vercel team:

Vercel is, and has always been one of the best products I&#39;ve used, the developer experience is flawless and over the years I&#39;ve hosted half a dozen personal projects on the platform as well as bringing on a long-term customer. 

It saddens me to leave and I did so only because I cannot in good conscience continue to support or use the product in any way. Although the original post was over six months ago I was just made aware of CEO Guillermo Rauch&#39;s post on X posing with Benjamin Netanyahu. At that point Netanyahu had an international arrest warrant, had presided over the genocide of 60,000 people (at least a third of them children) and wholesale destroyed 80% of a city that was home to 2 million people. I believe individuals are entitled to their personal opinions but Rauch is not just an employee, as the founder and one of the original authors of the flagship product it&#39;s hard to separate Rauch&#39;s actions from the company. Also it&#39;s one thing, I suppose, to post &#34;I support Israel&#34; in your  personal socials and entirely another to actually meet and pose with a war criminal then post it on your public X which you have used for years to promote your company.


For these reasons I can no longer continue using Vercel.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/04/16/updating-some-backbonejs-code-what.html</link>
      <pubDate>Thu, 16 Apr 2026 21:25:41 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/04/16/updating-some-backbonejs-code-what.html</guid>
      <description>&lt;p&gt;Updating some Backbone.js code&amp;hellip; What a blast from the past, over the year&amp;rsquo;s I believe I&amp;rsquo;ve worked on three Backbone projects. It&amp;rsquo;s fun to dig into legacy hotness from 10 or 15 years back it allows you to judge the code with more clarity. The code today was pretty clever, the Backbone stuff I worked on a year ago; not so much.&lt;/p&gt;
</description>
      <source:markdown>Updating some Backbone.js code... What a blast from the past, over the year&#39;s I believe I&#39;ve worked on three Backbone projects. It&#39;s fun to dig into legacy hotness from 10 or 15 years back it allows you to judge the code with more clarity. The code today was pretty clever, the Backbone stuff I worked on a year ago; not so much.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/04/16/new-script-to-kill-the.html</link>
      <pubDate>Thu, 16 Apr 2026 14:31:58 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/04/16/new-script-to-kill-the.html</guid>
      <description>&lt;p&gt;New script to kill the &lt;code&gt;rails s&lt;/code&gt;: &lt;code&gt; lsof -i:3000 | grep &amp;quot;ruby&amp;quot; | awk &#39;{print $2}&#39; | xargs kill -15&lt;/code&gt;
I&amp;rsquo;ve set that as a workflow in Alfred that runs when I hit command-control-r (⌘⌃R). I set this up last year because I find Rails gets hung up and control-c isn&amp;rsquo;t enough to kill it.  However, prior to right now I was using &lt;code&gt;lsof -i:3000 | xargs kill -15&lt;/code&gt; which would also kill Firefox (Zen), &lt;code&gt;grep&lt;/code&gt; for Ruby and then grabbing the specific processes fixed this.&lt;/p&gt;
</description>
      <source:markdown>New script to kill the `rails s`: ` lsof -i:3000 | grep &#34;ruby&#34; | awk &#39;{print $2}&#39; | xargs kill -15` 
I&#39;ve set that as a workflow in Alfred that runs when I hit command-control-r (⌘⌃R). I set this up last year because I find Rails gets hung up and control-c isn&#39;t enough to kill it.  However, prior to right now I was using `lsof -i:3000 | xargs kill -15` which would also kill Firefox (Zen), `grep` for Ruby and then grabbing the specific processes fixed this.
</source:markdown>
    </item>
    
    <item>
      <title>Args and Params</title>
      <link>https://blog.travisfantina.com/2026/04/13/i-think-ive-always-used.html</link>
      <pubDate>Mon, 13 Apr 2026 16:24:58 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/04/13/i-think-ive-always-used.html</guid>
      <description>&lt;p&gt;I think I&amp;rsquo;ve always used &lt;code&gt;args&lt;/code&gt; and &lt;code&gt;params&lt;/code&gt; interchangeably; TIL &lt;em&gt;parameters&lt;/em&gt; are what the function accepts and &lt;em&gt;arguments&lt;/em&gt; are the values passed in.  For example in Elixir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-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;color:#66d9ef&#34;&gt;def&lt;/span&gt; my_func(name, age) &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; 
  ...
&lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt; 
&lt;span style=&#34;color:#75715e&#34;&gt;# above name, and age are parameters&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# then at the call site:&lt;/span&gt;
my_func(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Travis&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;34&lt;/span&gt;) 
&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;Travis&amp;#34; and 34 are arguments&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <source:markdown>I think I&#39;ve always used `args` and `params` interchangeably; TIL _parameters_ are what the function accepts and _arguments_ are the values passed in.  For example in Elixir:
```elixir 
def my_func(name, age) do 
  ...
end 
# above name, and age are parameters
# then at the call site:
my_func(&#34;Travis&#34;, 34) 
# &#34;Travis&#34; and 34 are arguments
``` 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/04/08/just-read-the-term-react.html</link>
      <pubDate>Wed, 08 Apr 2026 06:39:58 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/04/08/just-read-the-term-react.html</guid>
      <description>&lt;p&gt;Just read the term &amp;ldquo;React Engineer&amp;rdquo;, I know it&amp;rsquo;s cliche but I need to scream into the void on this: there is no such thing as a &amp;ldquo;React Engineer&amp;rdquo;;  engineers are licensed professionals and highly regulated, slapping components together to &amp;ldquo;make the graphql look pretty&amp;rdquo; is not an engineering job.&lt;/p&gt;
&lt;p&gt;I get that these terms are conflated, but I never call myself a &amp;ldquo;software engineer&amp;rdquo; because I didn&amp;rsquo;t do an engineering program.&lt;/p&gt;
</description>
      <source:markdown>Just read the term &#34;React Engineer&#34;, I know it&#39;s cliche but I need to scream into the void on this: there is no such thing as a &#34;React Engineer&#34;;  engineers are licensed professionals and highly regulated, slapping components together to &#34;make the graphql look pretty&#34; is not an engineering job.

I get that these terms are conflated, but I never call myself a &#34;software engineer&#34; because I didn&#39;t do an engineering program.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/03/24/whenever-i-get-a-spammy.html</link>
      <pubDate>Tue, 24 Mar 2026 13:40:20 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/03/24/whenever-i-get-a-spammy.html</guid>
      <description>&lt;p&gt;Whenever I get a spammy text my first move is to run:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; loadtest -c 50 -n 1000000 --rps 10000 https://spammy_url.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;They generally don&amp;rsquo;t use beefy servers so it&amp;rsquo;s fairly easy to crash them at least for a few minutes.  Thinking of creating background script to run this constantly for any spam texts I get, might be enough to spike a Lambda or Vercel bill a bit.&lt;/p&gt;
</description>
      <source:markdown>Whenever I get a spammy text my first move is to run:
```
 loadtest -c 50 -n 1000000 --rps 10000 https://spammy_url.com
```
They generally don&#39;t use beefy servers so it&#39;s fairly easy to crash them at least for a few minutes.  Thinking of creating background script to run this constantly for any spam texts I get, might be enough to spike a Lambda or Vercel bill a bit.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/02/24/151339.html</link>
      <pubDate>Tue, 24 Feb 2026 16:13:39 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/02/24/151339.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m a firm believer that 40-60% of jobs in the modern world do not need to exist. AI is driving those jobs out of existence, unfortunately it is not doing so by creating a simpler more utilitarian world, instead it serves as a multiplier for that waste and will likely create even more layers of pointless abstraction.&lt;/p&gt;
</description>
      <source:markdown>I&#39;m a firm believer that 40-60% of jobs in the modern world do not need to exist. AI is driving those jobs out of existence, unfortunately it is not doing so by creating a simpler more utilitarian world, instead it serves as a multiplier for that waste and will likely create even more layers of pointless abstraction.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/02/24/im-a-firm-believer-that.html</link>
      <pubDate>Tue, 24 Feb 2026 16:13:38 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/02/24/im-a-firm-believer-that.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m a firm believer that 40-60% of jobs in the modern world do not need to exist. AI is driving those jobs out of existence, unfortunately it is not doing so by creating a simpler more utilitarian world, instead it serves as a multiplier for that waste and will likely create even more layers of pointless abstraction.&lt;/p&gt;
</description>
      <source:markdown>I&#39;m a firm believer that 40-60% of jobs in the modern world do not need to exist. AI is driving those jobs out of existence, unfortunately it is not doing so by creating a simpler more utilitarian world, instead it serves as a multiplier for that waste and will likely create even more layers of pointless abstraction.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/02/23/last-week-i-added-internationalization.html</link>
      <pubDate>Mon, 23 Feb 2026 10:15:11 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/02/23/last-week-i-added-internationalization.html</guid>
      <description>&lt;p&gt;Last week I added internationalization to an large B2B app I&amp;rsquo;ve been working with for the past 6 years. It&amp;rsquo;s pretty gratifying to see this app that dozens of employees and hundreds of customers use every day now in Italian, Spanish, German, Polish and Dutch!&lt;/p&gt;
</description>
      <source:markdown>Last week I added internationalization to an large B2B app I&#39;ve been working with for the past 6 years. It&#39;s pretty gratifying to see this app that dozens of employees and hundreds of customers use every day now in Italian, Spanish, German, Polish and Dutch!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/01/30/i-was-thinking-of-embedding.html</link>
      <pubDate>Fri, 30 Jan 2026 15:44:08 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/30/i-was-thinking-of-embedding.html</guid>
      <description>&lt;p&gt;I was thinking of embedding Calendly directly on my website so people could schedule meetings with me but it drops 3 cookies and makes about 11 network requests on page load&amp;hellip; That&amp;rsquo;s a hard pass.&lt;/p&gt;
</description>
      <source:markdown>I was thinking of embedding Calendly directly on my website so people could schedule meetings with me but it drops 3 cookies and makes about 11 network requests on page load... That&#39;s a hard pass.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/01/29/weve-moved-on-from-the.html</link>
      <pubDate>Thu, 29 Jan 2026 16:21:56 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/29/weve-moved-on-from-the.html</guid>
      <description>&lt;p&gt;We&amp;rsquo;ve moved on from the &amp;ldquo;Israel has a right to defend themselves&amp;rdquo; phase to the &amp;ldquo;Israel has a right to develop beach front real estate&amp;rdquo; phase and still most world leaders are silent about this.&lt;/p&gt;
</description>
      <source:markdown>We&#39;ve moved on from the &#34;Israel has a right to defend themselves&#34; phase to the &#34;Israel has a right to develop beach front real estate&#34; phase and still most world leaders are silent about this.
</source:markdown>
    </item>
    
    <item>
      <title>Week in Review</title>
      <link>https://blog.travisfantina.com/2026/01/23/week-in-review.html</link>
      <pubDate>Fri, 23 Jan 2026 17:31:38 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/23/week-in-review.html</guid>
      <description>&lt;p&gt;This week I started getting back into some serious work for other clients. My schedule is kind of weird, I&amp;rsquo;m a consultant working 50-50 for two different companies (~20 hours each), so in a way I have two clients. However; one of the companies is an agency so I contract for them and then I contract for additional clients through them.  I have two clients I bill but three or four clients I work for.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m happy to get back into agency work, it&amp;rsquo;s a lot of fun flitting from project to project.  This is an overview of my week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Working in a legacy Phoenix code base I spent a few hours doing PR review and then developing a new feature which will change the way a specific type of order gets processed. This project has a fairly lengthy state machine that orders will pass through (think, credit check, sales order, customer notification, shipping), it can get pretty complex depending on the customer&amp;rsquo;s location, configuration, and the product they ordered.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;ve been working on some infrastructure updates in an old Rails project, we had fantastic junior do the back breaking work of migrating the app from Rails 5 to Rails 8. It&amp;rsquo;s working locally but there are some issues running it on the actual EC2 instance.&lt;/li&gt;
&lt;li&gt;Working with TypeScript, GraphQL and Rails to develop a history modal to display PaperTrail versions. Most of the back end work was done by another developer to convert the actual &lt;code&gt;Version&lt;/code&gt; record into a nice &amp;ldquo;log&amp;rdquo; I&amp;rsquo;m just trying to query them and display them with some filtering by date.  This was part of a larger sprint this week and last which was all-hands on (about 8 developers).&lt;/li&gt;
&lt;li&gt;Personally, I made a few improvements to my &lt;a href=&#34;https://blog.travisfantina.com/2026/01/16/harvest-timers-and-go.html&#34;&gt;Go tool to fetch&lt;/a&gt; my current time for the month from Harvest. Further improvements would only be a waste of time but I&amp;rsquo;m having a lot of fun playing with Go.&lt;/li&gt;
&lt;/ul&gt;
</description>
      <source:markdown>This week I started getting back into some serious work for other clients. My schedule is kind of weird, I&#39;m a consultant working 50-50 for two different companies (~20 hours each), so in a way I have two clients. However; one of the companies is an agency so I contract for them and then I contract for additional clients through them.  I have two clients I bill but three or four clients I work for.

I&#39;m happy to get back into agency work, it&#39;s a lot of fun flitting from project to project.  This is an overview of my week:

* Working in a legacy Phoenix code base I spent a few hours doing PR review and then developing a new feature which will change the way a specific type of order gets processed. This project has a fairly lengthy state machine that orders will pass through (think, credit check, sales order, customer notification, shipping), it can get pretty complex depending on the customer&#39;s location, configuration, and the product they ordered.
* I&#39;ve been working on some infrastructure updates in an old Rails project, we had fantastic junior do the back breaking work of migrating the app from Rails 5 to Rails 8. It&#39;s working locally but there are some issues running it on the actual EC2 instance.
* Working with TypeScript, GraphQL and Rails to develop a history modal to display PaperTrail versions. Most of the back end work was done by another developer to convert the actual `Version` record into a nice &#34;log&#34; I&#39;m just trying to query them and display them with some filtering by date.  This was part of a larger sprint this week and last which was all-hands on (about 8 developers).
* Personally, I made a few improvements to my [Go tool to fetch](https://blog.travisfantina.com/2026/01/16/harvest-timers-and-go.html) my current time for the month from Harvest. Further improvements would only be a waste of time but I&#39;m having a lot of fun playing with Go. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/01/23/remember-when-the-tech-world.html</link>
      <pubDate>Fri, 23 Jan 2026 08:41:41 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/23/remember-when-the-tech-world.html</guid>
      <description>&lt;p&gt;Remember when the tech world solved racism by renaming &lt;code&gt;master&lt;/code&gt; to &lt;code&gt;main&lt;/code&gt; branch?&lt;/p&gt;
</description>
      <source:markdown>Remember when the tech world solved racism by renaming `master` to `main` branch?
</source:markdown>
    </item>
    
    <item>
      <title>The ICC Must Issue An Arrest Warrant for Donald Trump</title>
      <link>https://blog.travisfantina.com/2026/01/22/the-icc-must-issue-an.html</link>
      <pubDate>Thu, 22 Jan 2026 07:17:58 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/22/the-icc-must-issue-an.html</guid>
      <description>&lt;p&gt;I wrote this a few weeks back the morning after the United States abducted the leader of the 53rd largest country (by population ~32 million), at the time I was thinking of shopping it around as an opinion piece or letter to the editor but it&amp;rsquo;s getting a little old. I&amp;rsquo;d like to put it somewhere before the world has completely moved on to the next unprecedented act.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;It was just over a year ago when the International Criminal Court (ICC) issued arrest warrants for two high ranking Israeli officials, notably Prime Minister Benjamin Netanyahu. This warrant, I am to understand is largely symbolic; it is unlikely that the Prime Minister would find himself in any “hostile” countries (read “hostile” as countries willing to uphold international law). Any such warrant against the president of the United States would, likewise, be symbolic but important. If the international community is unwilling to uphold law and order, on even a symbolic level, than what kind of world order remains?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;The brazen attack on Venezuela and subsequent disposal of President Nicolás Maduro was likely illegal under all but the most construed US laws and definitely illegal under international law. Those of my generation, and frankly anyone over the age of about thirty, ought to remember the US’s sabre-rattling leading up to the invasion of Iraq. At least George W. Bush had the decorum to lie about the pretenses of such an invasion (although that was also a clear breach of international law and against the best evidence of nearly all independent investigations). Twenty-three years later, Donald Trump needs no such veneers: thus far, he acts with impunity. In 2003, it was clear to those who were looking that the US was about to invade a sovereign nation to plunder it’s oil reserves. In 2026, one need not even read between the lines: “We’re going to have our very large US oil companies... spend billions of dollars start making money for the country and we are ready to stage a second and much larger attack if we need to do so.”

There are arguments to be made against the character and regime of President Maduro; however any such accusations could be leveled at any number of US-friendly regimes without the pretext for invasion or occupation. It was not narcotics trafficking, nor the lack of open and fair elections, or any number of paper-thin excuses for this attack on a non-hostile sovereign nation. Make no mistake, as Trump himself alluded to when he accused Venezuela of “ripping [us] off”; it was simply the Maduro Administration’s refusal to play ball with US interests. 

I’m sure there are no small number of nations that would love to slap the cuffs on Donald Trump; however, none would dare. The US is just too powerful to take orders from any other nation individually or in the collective. As a permanent member of the UN security council, their veto power makes that entire body impotent. Such is the world which the US created over the course of the 20th century and it is the one in which Donald Trump is now a beneficiary. Any warrants issued by the ICC, would carry the same power as that issued for Netanyahu. We can not have any illusions about this. However; any nation that wishes to be remembered on the right side of history must act in accordance with international law and call for the arrest of President Donald J. Trump. 
&lt;/code&gt;&lt;/pre&gt;
</description>
      <source:markdown>I wrote this a few weeks back the morning after the United States abducted the leader of the 53rd largest country (by population ~32 million), at the time I was thinking of shopping it around as an opinion piece or letter to the editor but it&#39;s getting a little old. I&#39;d like to put it somewhere before the world has completely moved on to the next unprecedented act.

---

It was just over a year ago when the International Criminal Court (ICC) issued arrest warrants for two high ranking Israeli officials, notably Prime Minister Benjamin Netanyahu. This warrant, I am to understand is largely symbolic; it is unlikely that the Prime Minister would find himself in any “hostile” countries (read “hostile” as countries willing to uphold international law). Any such warrant against the president of the United States would, likewise, be symbolic but important. If the international community is unwilling to uphold law and order, on even a symbolic level, than what kind of world order remains? 

	The brazen attack on Venezuela and subsequent disposal of President Nicolás Maduro was likely illegal under all but the most construed US laws and definitely illegal under international law. Those of my generation, and frankly anyone over the age of about thirty, ought to remember the US’s sabre-rattling leading up to the invasion of Iraq. At least George W. Bush had the decorum to lie about the pretenses of such an invasion (although that was also a clear breach of international law and against the best evidence of nearly all independent investigations). Twenty-three years later, Donald Trump needs no such veneers: thus far, he acts with impunity. In 2003, it was clear to those who were looking that the US was about to invade a sovereign nation to plunder it’s oil reserves. In 2026, one need not even read between the lines: “We’re going to have our very large US oil companies... spend billions of dollars start making money for the country and we are ready to stage a second and much larger attack if we need to do so.”

	There are arguments to be made against the character and regime of President Maduro; however any such accusations could be leveled at any number of US-friendly regimes without the pretext for invasion or occupation. It was not narcotics trafficking, nor the lack of open and fair elections, or any number of paper-thin excuses for this attack on a non-hostile sovereign nation. Make no mistake, as Trump himself alluded to when he accused Venezuela of “ripping [us] off”; it was simply the Maduro Administration’s refusal to play ball with US interests. 

	I’m sure there are no small number of nations that would love to slap the cuffs on Donald Trump; however, none would dare. The US is just too powerful to take orders from any other nation individually or in the collective. As a permanent member of the UN security council, their veto power makes that entire body impotent. Such is the world which the US created over the course of the 20th century and it is the one in which Donald Trump is now a beneficiary. Any warrants issued by the ICC, would carry the same power as that issued for Netanyahu. We can not have any illusions about this. However; any nation that wishes to be remembered on the right side of history must act in accordance with international law and call for the arrest of President Donald J. Trump. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/01/18/finished-reading-small-things-like.html</link>
      <pubDate>Sun, 18 Jan 2026 22:39:35 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/18/finished-reading-small-things-like.html</guid>
      <description>&lt;img src=&#34;https://cdn.micro.blog/books/9780571392605/cover.jpg&#34; align=&#34;left&#34; class=&#34;microblog_book&#34; style=&#34;max-width: 60px; margin-right: 20px; margin-top: 0px; padding-top: 0px;&#34;&gt;
&lt;p&gt;Finished reading: &lt;a href=&#34;https://micro.blog/books/9780571392605&#34;&gt;Small Things Like These&lt;/a&gt; by Claire Keegan 📚&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s the first book I&amp;rsquo;ve read this year, so calling it &amp;ldquo;the best book I&amp;rsquo;ve read all year&amp;rdquo; would be true, but to lump this in with last year and the say the same may be true as well! Keegan&amp;rsquo;s voice is incredible, this book was pure poetry, effortlessly capturing both the highs and lows of human emotion. Although, it takes place 40 years ago, the financial worries and dreary outlook generally feel like they could be ripped straight from 2026.&lt;br&gt;
The emotions I felt reading this book were not unlike those I feel reading A Christmas Carol, perhaps it was the Christmas time setting, or the newfound or recovered morality of the lead character but I think the writing itself was really that good.&lt;/p&gt;
</description>
      <source:markdown>&lt;img src=&#34;https://cdn.micro.blog/books/9780571392605/cover.jpg&#34; align=&#34;left&#34; class=&#34;microblog_book&#34; style=&#34;max-width: 60px; margin-right: 20px; margin-top: 0px; padding-top: 0px;&#34;&gt;

Finished reading: [Small Things Like These](https://micro.blog/books/9780571392605) by Claire Keegan 📚

It&#39;s the first book I&#39;ve read this year, so calling it &#34;the best book I&#39;ve read all year&#34; would be true, but to lump this in with last year and the say the same may be true as well! Keegan&#39;s voice is incredible, this book was pure poetry, effortlessly capturing both the highs and lows of human emotion. Although, it takes place 40 years ago, the financial worries and dreary outlook generally feel like they could be ripped straight from 2026.  
The emotions I felt reading this book were not unlike those I feel reading A Christmas Carol, perhaps it was the Christmas time setting, or the newfound or recovered morality of the lead character but I think the writing itself was really that good.
</source:markdown>
    </item>
    
    <item>
      <title>Harvest Timers and Go!</title>
      <link>https://blog.travisfantina.com/2026/01/16/harvest-timers-and-go.html</link>
      <pubDate>Fri, 16 Jan 2026 23:16:52 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/16/harvest-timers-and-go.html</guid>
      <description>&lt;p&gt;This week I put together a tiny Go project. Go&amp;rsquo;s been on my &amp;ldquo;to learn&amp;rdquo; list for years now but I&amp;rsquo;ve never quite gotten around to it.  Over the summer I got as far as reading a few articles and skimming the documentation but I didn&amp;rsquo;t have the time to make anything.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a contractor working, primarily, for two clients. One is an agency that has their own Harvest account for tracking time against client projects. The other client is a traditional product company, I track time and bill them with my own, separate, Harvest account. It&amp;rsquo;s a bit of an annoyance because having two separate Harvest accounts means I have to sign in twice just to figure out how many hours I&amp;rsquo;ve worked in the month so far. I created a little CLI (the CLI part is not quite implemented yet) to query both accounts, grab my monthly hours, and total them.&lt;/p&gt;
&lt;p&gt;Strapped for time I asked Opencode to generate a basic query to an endpoint and parse the returned JSON, this outline was enough for me to go the rest of the way implementing what I needed.&lt;/p&gt;
&lt;p&gt;You can check it out here, but unless your in the exact same situation as me, it&amp;rsquo;s likely not going to do you much good!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://codeberg.org/tfantina/HarvestTime&#34;&gt;codeberg.org/tfantina/&amp;hellip;&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>This week I put together a tiny Go project. Go&#39;s been on my &#34;to learn&#34; list for years now but I&#39;ve never quite gotten around to it.  Over the summer I got as far as reading a few articles and skimming the documentation but I didn&#39;t have the time to make anything.  

I&#39;m a contractor working, primarily, for two clients. One is an agency that has their own Harvest account for tracking time against client projects. The other client is a traditional product company, I track time and bill them with my own, separate, Harvest account. It&#39;s a bit of an annoyance because having two separate Harvest accounts means I have to sign in twice just to figure out how many hours I&#39;ve worked in the month so far. I created a little CLI (the CLI part is not quite implemented yet) to query both accounts, grab my monthly hours, and total them. 

Strapped for time I asked Opencode to generate a basic query to an endpoint and parse the returned JSON, this outline was enough for me to go the rest of the way implementing what I needed. 

You can check it out here, but unless your in the exact same situation as me, it&#39;s likely not going to do you much good!

[codeberg.org/tfantina/...](https://codeberg.org/tfantina/HarvestTime)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/01/12/ive-tried-to-eliminate-the.html</link>
      <pubDate>Mon, 12 Jan 2026 17:47:42 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/12/ive-tried-to-eliminate-the.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve tried to eliminate the weird echo chamber of HackerNews from my life as much as possible. Interesting to see from the most 1000 discussed books only ~50 were written by women. This is exactly the sort of reason I&amp;rsquo;ve moved on from the orange site.&lt;br&gt;
&lt;a href=&#34;https://kottke.org/26/01/0048160-out-of-the-1000-most-disc&#34;&gt;kottke.org/26/01/004&amp;hellip;&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>I&#39;ve tried to eliminate the weird echo chamber of HackerNews from my life as much as possible. Interesting to see from the most 1000 discussed books only ~50 were written by women. This is exactly the sort of reason I&#39;ve moved on from the orange site.  
[kottke.org/26/01/004...](https://kottke.org/26/01/0048160-out-of-the-1000-most-disc)

</source:markdown>
    </item>
    
    <item>
      <title>Week in Review</title>
      <link>https://blog.travisfantina.com/2026/01/09/week-in-review.html</link>
      <pubDate>Fri, 09 Jan 2026 14:04:59 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/09/week-in-review.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been diving back into some Elixir projects this week; mostly small stuff. I updated Sentry and ensured it was logging at all the endpoints. Story time with this client&amp;hellip;&lt;/p&gt;
&lt;p&gt;Some six years ago I wired up Sentry to start tracking errors when this code base was fairly shiny and new; at the time I used free account associated with my work email. My thinking at the time was we could pilot Sentry then start a paid plan. I think the nature of this project, and Elixir in general is that it&amp;rsquo;s just fairly fault tolerant. Also, due to various priorities, budgeting, staffing, yadda, yadda I never took the time to dial Sentry in and filter the noise. Occasionally I&amp;rsquo;d dip into the account to look for a specific error, about half way through the month I&amp;rsquo;d get the email saying we&amp;rsquo;d hit our limit for the month and that was that.&lt;/p&gt;
&lt;p&gt;I should note this is not a small client, this application is processing millions a day in revenue! On the one hand they should have been paying for Sentry years ago, but on the other hand I get it. Security is not slacking in this organization, their servers get more junk requests to stuff like &lt;code&gt;/wp-admin&lt;/code&gt; then any other client I&amp;rsquo;ve ever worked with. This is, in no small part I believe, due to their rigorous use of bug bounty and associated white hat programs.  (It&amp;rsquo;s a source of pride that this particular application has never been hacked and generally scores better than most of their tech in pen-tests).
It&amp;rsquo;s interesting how a tool that is so essential to modern web-development like Sentry can be omitted for years and years; I&amp;rsquo;m confident we could have continued just fine without it but I&amp;rsquo;m also betting that if we take the time to filter the noise this is going to make the customer happier and make our lives far more simple.&lt;/p&gt;
</description>
      <source:markdown>I&#39;ve been diving back into some Elixir projects this week; mostly small stuff. I updated Sentry and ensured it was logging at all the endpoints. Story time with this client...

Some six years ago I wired up Sentry to start tracking errors when this code base was fairly shiny and new; at the time I used free account associated with my work email. My thinking at the time was we could pilot Sentry then start a paid plan. I think the nature of this project, and Elixir in general is that it&#39;s just fairly fault tolerant. Also, due to various priorities, budgeting, staffing, yadda, yadda I never took the time to dial Sentry in and filter the noise. Occasionally I&#39;d dip into the account to look for a specific error, about half way through the month I&#39;d get the email saying we&#39;d hit our limit for the month and that was that.  

I should note this is not a small client, this application is processing millions a day in revenue! On the one hand they should have been paying for Sentry years ago, but on the other hand I get it. Security is not slacking in this organization, their servers get more junk requests to stuff like `/wp-admin` then any other client I&#39;ve ever worked with. This is, in no small part I believe, due to their rigorous use of bug bounty and associated white hat programs.  (It&#39;s a source of pride that this particular application has never been hacked and generally scores better than most of their tech in pen-tests).
It&#39;s interesting how a tool that is so essential to modern web-development like Sentry can be omitted for years and years; I&#39;m confident we could have continued just fine without it but I&#39;m also betting that if we take the time to filter the noise this is going to make the customer happier and make our lives far more simple.

 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.travisfantina.com/2026/01/05/pretty-quiet-on-here-over.html</link>
      <pubDate>Mon, 05 Jan 2026 13:21:19 -0400</pubDate>
      
      <guid>http://tfantina.micro.blog/2026/01/05/pretty-quiet-on-here-over.html</guid>
      <description>&lt;p&gt;Pretty quiet on here over the holidays, partially due to illness and partially just wanting to be offline as much as possible.
I&amp;rsquo;d still like to get some end of year wrap-ups together.&lt;/p&gt;
</description>
      <source:markdown>Pretty quiet on here over the holidays, partially due to illness and partially just wanting to be offline as much as possible. 
I&#39;d still like to get some end of year wrap-ups together.
</source:markdown>
    </item>
    
  </channel>
</rss>
