<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://ramvasuthevan.ca/feed/bitsbipsbricks.xml" rel="self" type="application/atom+xml" /><link href="https://ramvasuthevan.ca/" rel="alternate" type="text/html" /><updated>2024-08-10T22:23:13+00:00</updated><id>https://ramvasuthevan.ca/feed/bitsbipsbricks.xml</id><title type="html">Ram’s Personal Website | Bitsbipsbricks</title><subtitle>Built by Ram Vasuthevan with ❤️ on the [shoulders of giants](/acknowledgements.html)</subtitle><entry><title type="html">Maximizing, Customization and Git Alias</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Git-Alias" rel="alternate" type="text/html" title="Maximizing, Customization and Git Alias" /><published>2024-08-04T00:00:00+00:00</published><updated>2024-08-04T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Git-Alias</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Git-Alias"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Git-Alias/PXL_20240701_183556254.RAW-01.COVER.jpg" alt="Caffe latte on white ceramic cup beside silver and black laptop computer" width="500px" />
    <div class="caption">
        <p>Me <a href="https://streams.place/ramvasuthevan/drops/203230380562751488">experimenting</a> with my daily bagel</p>

    </div>
</div>

<p>I have always had the temperament of a satisficer. I find something that works for me, and I stick to it forever. It’s simple and easy, once I make a commitment to something, I don’t have to think about that category of thing again. I do this for <a href="https://streams.place/ramvasuthevan/drops/203230380562751488">bagels</a>, <a href="/ram-warrants#black-uni-ball-signo-um-151-gel-ink-pen---038-mm">pens</a> and IDEs. But I am starting to wonder if I am missing out by not maximizing more.</p>

<p>I have decided to spend more effort customizing my personal computing experience to match my needs and the way I work. I am an engineer by trade. If I want, I can write one-off software just for myself to perfectly match the way that I work. I can extend it, maintain it, and fix it as needed.</p>

<p>Now, this is often a failure mode for engineers, building custom difficult-to-maintain setups (i.e. vim configs) that will only be used by them. On the other hand, I respect people who do that, and they seem to be pretty good at being engineers. The easiest way to build software people will use is to build software for yourself.</p>

<p><strong>In that spirit, today, I set up my first Git alias.</strong></p>

<p>I have a to-do list stored in a markdown file on a Jeykll website in a private GitHub repo, which I edit mostly from my MacOS personal computer with <a href="https://www.cursor.com/">Cursor</a> (a VScode-based IDE). Every day, I append my to-do items to the end of the file, and when I do them, I cross them off. I send the list and items that I have done to my uncle over WhatsApp. This is a much better to-do system than Todoist. There is accountability as I send the to-do list to my uncle, unlike in Todoist. I need to intentionally choose to add to my to-do list and what I choose to roll over to the next day.</p>

<p>While most of the edits to this private Jeykll site are done through a PR. It is helpful even when I am working by myself to have branches and systems for reviewing my work.</p>

<p>But changes to the to-do list which are just new items appended to the bottom are just added to the file in the main branch and can be pushed without with a review.</p>

<p>This is something that normally takes multiple commands</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git add website/to-do.markdown
git commit -m 'Update to-do list'
git push origin main --force
</code></pre></div></div>

<p>I have instead added to my repo git config file:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sync-to-do = "!f() { git add website/to-do.markdown &amp;&amp; git commit -m \"Update to-do list\" &amp;&amp; git push origin HEAD --force; }; f"
</code></pre></div></div>

<p>I edit my to-do list from my MacOS personal machine, but sometimes I edit the private Jekyll site from GitHub codespaces so eventually I would like to sync my aliases but for now, I will just stick to this.</p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Me experimenting with my daily bagel]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Git-Alias/PXL_20240701_183556254.RAW-01.COVER.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Git-Alias/PXL_20240701_183556254.RAW-01.COVER.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Maximizing, Satisficing and Perfectionism</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Maxing" rel="alternate" type="text/html" title="Maximizing, Satisficing and Perfectionism" /><published>2024-08-04T00:00:00+00:00</published><updated>2024-08-04T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Maxing</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Maxing"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Maxing/PXL_20240701_183556254.RAW-01.COVER.jpg" alt="Caffe latte on white ceramic cup beside silver and black laptop computer" width="500px" />
    <div class="caption">
        <p>Me <a href="https://streams.place/ramvasuthevan/drops/203230380562751488">experimenting</a> with my daily bagel</p>

    </div>
</div>

<p>I have always had the temperament of a satisficer. I find something that works for me, and I stick to it forever. It’s simple and easy, once I make a commitment to something, I don’t have to think about that category of thing again. I do this for <a href="https://streams.place/ramvasuthevan/drops/203230380562751488">bagels</a>, <a href="/ram-warrants#black-uni-ball-signo-um-151-gel-ink-pen---038-mm">pens</a> and IDEs. But I am starting to wonder if I am missing out by not maximizing more.</p>

<p>When thinking about new solutions, whether it be software tools, hot sauces, or notetaking apps, I become a perfectionist. I start thinking of my elaborate theoretical use cases and then become overwhelmed and actually do nothing.</p>

<p>If it’s a cheap, <a href="https://fs.blog/reversible-irreversible-decisions/">reversible decision</a>, the only real mistake is procrastinating on making a decision</p>

<p>TLDR: JUST DO IT!</p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Me experimenting with my daily bagel]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Maxing/PXL_20240701_183556254.RAW-01.COVER.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Maxing/PXL_20240701_183556254.RAW-01.COVER.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Search for All Dependabot Created PRs on Your Repos</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Github-Dependabot-PRs" rel="alternate" type="text/html" title="Search for All Dependabot Created PRs on Your Repos" /><published>2024-06-29T00:00:00+00:00</published><updated>2024-06-29T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/github-dependabot-prs</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Github-Dependabot-PRs"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Github-Dependabot-PRs/nolan-issac-It0DCaCBr40-unsplash.jpg" alt="Caffe latte on white ceramic cup beside silver and black laptop computer" />
    <div class="caption">
        
<p>Photo by <a href="https://unsplash.com/@@nolanissac">Nolan Issac</a> from <a href="https://unsplash.com/photos/caffe-latte-on-white-ceramic-cup-beside-silver-and-black-laptop-computer-It0DCaCBr40">Unsplash</a></p>

    </div>
</div>

<p>In the spirit of early <a href="https://www.kalzumeus.com/2006/">patio11</a>, I’m going to write more about what I worked on, what I learned, and the problems I solved on any given day.</p>

<p>In that spirit, I have a bunch of repos with Dependabot enabled. It’s a pain in the ass to manually go to all of the repos and see if a Dependabot PR has been created.</p>

<p>Search query: <code id="search-query">is:pr author:app/dependabot is:open archived:false user:@me</code></p>

<p><a href="https://github.com/search?q=is%3Apr+author%3Aapp%2Fdependabot+is%3Aopen+archived%3Afalse+user%3A%40me&amp;type=pullrequests" target="_blank">GitHub Search for Dependabot PRs</a></p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Photo by Nolan Issac from Unsplash]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Github-Dependabot-PRs/nolan-issac-It0DCaCBr40-unsplash.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Github-Dependabot-PRs/nolan-issac-It0DCaCBr40-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Create Jekyll Sub Blogs using only Liquid</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Jekyll-Sub-Blogs" rel="alternate" type="text/html" title="Create Jekyll Sub Blogs using only Liquid" /><published>2024-05-14T00:00:00+00:00</published><updated>2024-05-14T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Jekyll-Sub-Blogs</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Jekyll-Sub-Blogs"><![CDATA[<style>
  :not(pre) > code {
    background-color: #f4f4f4; /* Light grey background */
    color: #333; /* Darker text for better readability */
    padding: 2px 4px;
    border-radius: 4px;
  }
</style>

<div class="image-container">
    <img src="/assets/bitsbipsbricks/Jekyll-Sub-Blogs/andrew-neel-cckf4TsHAuw-unsplash.jpg" alt="Stock photo of a laptop, coffee, pen, notepad and phone" />
    <div class="caption">
        
<p>Photo by <a href="https://unsplash.com/@@andrewtneel">Andrew Neel</a> from <a href="https://unsplash.com/photos/macbook-pro-white-ceramic-mugand-black-smartphone-on-table-cckf4TsHAuw">Unsplash</a></p>

    </div>
</div>

<p>I started writing this <a href="/bitsbipsbricks.html">blog</a> in the spirit of <a href="https://www.visakanv.com/blog/do100things/">Visa’s do 100’s things</a>. The best way to become a better writer is to write. Writing and writing energy is not scarce. It’s not like you have a finite number of things you can write in your life. The more you write, the more you can write. If you write an article about an idea, it doesn’t need to be perfect. You can always write more about it later.</p>

<p>I started writing on <a href="https://ghost.org/">Ghost</a> because it was easy to set up and maintain. At first, I didn’t mention my name anywhere. Eventually, I decided to merge it with my personal site after I became more confident with my writing and so that I could gain more control over how the site looked. As an engineer, I love being able to take advantage of Git for version control, setting up my writing environment using VS Code and knowing that I can easily maintain and migrate it from Jekyll if necessary.</p>

<p>Jekyll by default puts all blog posts into one feed, but sometimes, I want to write something small, a <a href="/snippets">snippet</a>, a note mostly for myself, that doesn’t really fit in <a href="/bitsbipsbricks">Bits, Bips and Bricks</a>.</p>

<p>By taking advantage of Jekyll categories and tags you can easily have multiple sub blogs each with their own Atom feed using only Liquid.</p>

<p>A <a href="https://jekyllrb.com/docs/posts/#categories">category</a> can be defined using the front matter keys <code class="language-plaintext highlighter-rouge">category</code> or <code class="language-plaintext highlighter-rouge">categories</code> (a space separated list of categories) or putting a directory above the post’s <code class="language-plaintext highlighter-rouge">_post</code> directory with the name of the category.</p>

<p>A <a href="https://jekyllrb.com/docs/posts/#tags">tag</a> can be defined using can be defined using the front matter keys <code class="language-plaintext highlighter-rouge">tag</code> or <code class="language-plaintext highlighter-rouge">tags</code> (a space separated list of tags)</p>

<p>This snippet is built to match the style of Minma, but similar logic can be used for other themes.</p>

<p>Copy the following code and paste it in <code class="language-plaintext highlighter-rouge">_includes/blog.html</code>:</p>

<figure class="highlight"><pre><code class="language-liquid" data-lang="liquid">&lt;div class="blog"&gt;
    &lt;h2 class="post-list-heading"&gt;<span class="cp">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">list_title</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">default</span><span class="p">:</span><span class="w"> </span><span class="s2">"Posts"</span><span class="w"> </span><span class="cp">}}</span>&lt;/h2&gt;
    &lt;ul class="post-list"&gt;
      <span class="cp">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="w"> </span><span class="cp">-%}</span>
      <span class="cp">{%-</span><span class="w"> </span><span class="nt">if</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">categories</span><span class="w"> </span><span class="ow">contains</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">tags</span><span class="w"> </span><span class="ow">contains</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">tag</span><span class="w"> </span><span class="cp">-%}</span>
      &lt;li&gt;
        <span class="cp">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">date_format</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">minima</span><span class="p">.</span><span class="nv">date_format</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">default</span><span class="p">:</span><span class="w"> </span><span class="s2">"%b %-d, %Y"</span><span class="w"> </span><span class="cp">-%}</span>
        &lt;span class="post-meta"&gt;<span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date</span><span class="p">:</span><span class="w"> </span><span class="nv">date_format</span><span class="w"> </span><span class="cp">}}</span>&lt;/span&gt;
        &lt;h3&gt;
          &lt;a class="post-link" href="<span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">relative_url</span><span class="w"> </span><span class="cp">}}</span>"&gt;
            <span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">escape</span><span class="w"> </span><span class="cp">}}</span>
          &lt;/a&gt;
        &lt;/h3&gt;
        <span class="cp">{%-</span><span class="w"> </span><span class="nt">if</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">show_excerpts</span><span class="w"> </span><span class="cp">-%}</span>
          <span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">excerpt</span><span class="w"> </span><span class="cp">}}</span>
        <span class="cp">{%-</span><span class="w"> </span><span class="nt">endif</span><span class="w"> </span><span class="cp">-%}</span>
      &lt;/li&gt;
      <span class="cp">{%-</span><span class="nt">endif</span><span class="w"> </span><span class="cp">-%}</span>
      <span class="cp">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="cp">-%}</span>

    &lt;/ul&gt;

    <span class="cp">{%-</span><span class="w"> </span><span class="nt">if</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">feed</span><span class="p">.</span><span class="nv">categories</span><span class="w"> </span><span class="ow">contains</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="w"> </span><span class="cp">-%}</span>
      <span class="cp">{%</span><span class="w"> </span><span class="nt">unless</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">tag</span><span class="w"> </span><span class="cp">%}</span>
      <span class="cp">{%</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">feed_location</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">feed</span><span class="p">.</span><span class="nv">categories</span><span class="p">[</span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="p">].</span><span class="nv">path</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">default</span><span class="p">:</span><span class="w"> </span><span class="s1">'/feed/'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="s1">'.xml'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">relative_url</span><span class="w"> </span><span class="cp">%}</span>
        &lt;p class="rss-subscribe"&gt;subscribe &lt;a href="<span class="cp">{{</span><span class="w"> </span><span class="s1">'/feed/'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="s1">'.xml'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">relative_url</span><span class="w"> </span><span class="cp">}}</span>"&gt;via RSS&lt;/a&gt;&lt;/p&gt;
        <span class="cp">{%</span><span class="w"> </span><span class="nt">endunless</span><span class="w"> </span><span class="cp">%}</span>
    <span class="cp">{%-</span><span class="w"> </span><span class="nt">endif</span><span class="w"> </span><span class="cp">-%}</span>

    <span class="cp">{%-</span><span class="w"> </span><span class="nt">if</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">tag</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">feed</span><span class="p">.</span><span class="nv">tags</span><span class="w"> </span><span class="ow">contains</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">tag</span><span class="w"> </span><span class="cp">-%}</span>
    <span class="cp">{%</span><span class="w"> </span><span class="nt">unless</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">category</span><span class="w"> </span><span class="cp">%}</span>
      &lt;p class="rss-subscribe"&gt;subscribe &lt;a href="<span class="cp">{{</span><span class="w"> </span><span class="s1">'/feed/'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">include</span><span class="p">.</span><span class="nv">tag</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="s1">'.xml'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">relative_url</span><span class="w"> </span><span class="cp">}}</span>"&gt;via RSS&lt;/a&gt;&lt;/p&gt;
    <span class="cp">{%</span><span class="w"> </span><span class="nt">endunless</span><span class="w"> </span><span class="cp">%}</span>
    <span class="cp">{%-</span><span class="w"> </span><span class="nt">endif</span><span class="w"> </span><span class="cp">-%}</span>

&lt;/div&gt;</code></pre></figure>

<p>The above code is available under the <a href="/assets/bitsbipsbricks/Jekyll-Sub-Blogs/license.txt">MIT license</a> and contains code from <a href="https://github.com/jekyll/minima/blob/38a84a949f9753c4542e25f422935f59b4913053/_layouts/home.html">minima/_layouts/home.html</a>
<br /></p>

<p>On the page that you want a sub blog with only posts from a certain category:</p>

<figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="cp">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>blog.html<span class="w"> </span><span class="na">category</span><span class="o">=</span><span class="s2">"category_name"</span><span class="w"> </span><span class="cp">%}</span></code></pre></figure>

<p>On the page that you want a sub blog with only posts with a certain tag:</p>

<figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="cp">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>blog.html<span class="w"> </span><span class="na">tag</span><span class="o">=</span><span class="s2">"tag_name"</span><span class="w"> </span><span class="cp">%}</span></code></pre></figure>

<p>If you don’t add a category or tag parameter, then all posts will be in the sub blog.</p>

<p><a href="https://github.com/jekyll/minima/pull/137/files#r124796175">Minima</a> assumes that if there are no posts, the feed will not be shown. I disagree, you can have a blog without blog posts.</p>

<p>Make sure to update your <em>_config.yml</em> according to the instructions for <a href="https://github.com/jekyll/jekyll-feed">jekyll-feed</a> to make sure that the feeds for your category or tag are generated.</p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Jekyll-Sub-Blogs/andrew-neel-cckf4TsHAuw-unsplash.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Jekyll-Sub-Blogs/andrew-neel-cckf4TsHAuw-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">A Bit of a Sabbatical: Time for More Focus</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Focus" rel="alternate" type="text/html" title="A Bit of a Sabbatical: Time for More Focus" /><published>2023-11-25T00:00:00+00:00</published><updated>2023-11-25T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/A%20Bit-of-a-Sabbatical-Time-for-More-Focus</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Focus"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Focus/patrick-tomasso-61MtRBl1qeE-unsplash.jpg" alt="Toronto Buildings In Fog" />
    <div class="caption">
        
<p>Photo by <a href="https://unsplash.com/@impatrickt">Patrick Tomasso</a> from <a href="https://unsplash.com/photos/high-rise-buildings-covered-with-fog-61MtRBl1qeE">Unsplash</a></p>

    </div>
</div>

<p><strong>Editor’s Note: This was written in early November and my views have changed a bit, but I’ve decided to post this now for posterity</strong></p>

<p>The last 12 weeks have been great. It helped me figure out what to do with my life:</p>

<p><em>I am a software engineer on sabbatical. I am working on applying technology to real estate in Toronto.</em></p>

<p>But my sabbatical is constrained by money and and thus constrained by time. It’s now time for focus.</p>

<p>Projects which will be focusing on:</p>

<ol>
  <li>Lobbying in Toronto
    <ul>
      <li>Build a great way to search and visualize data published by the <a href="https://www.toronto.ca/city-government/accountability-operations-customer-service/accountability-officers/lobbyist-registrar/search-the-registry-register-as-a-lobbyist/search-the-lobbyist-registry/">City of Toronto’s Lobbyist Registrar</a></li>
    </ul>
  </li>
  <li>TRREB MLS Search Engine
    <ul>
      <li>Build a <a href="https://en.wikipedia.org/wiki/Virtual_Office_Website">Virtual Office Website
</a> for TRREB’s MLS to make it easier for Realtor and their clients to search for properties in Toronto</li>
    </ul>
  </li>
  <li>Open Map of Toronto
    <ul>
      <li>Combine open data sources to create a better view of Toronto. Definitely <a href="https://open.toronto.ca/dataset/property-boundaries/">Property Boundaries</a> and <a href="https://open.toronto.ca/dataset/address-points-municipal-toronto-one-address-repository/">Address Points (Municipal) - Toronto One Address Repository
</a>, plus some more data from the <a href="https://open.toronto.ca/">City of Toronto’s Open Data Portal</a> and other data sources</li>
    </ul>
  </li>
  <li>Bits, Bips and Bricks
    <ul>
      <li>Write more regularly and about more topics</li>
      <li>The vibe that I am going for:</li>
    </ul>
    <blockquote class="twitter-tweet"><p lang="en" dir="ltr">I really like this. It&#39;s helpful in getting over the little voice in my head that says &quot;It&#39;s not as good as the writers you admire&quot; <a href="https://t.co/h0HzKUrQSm">https://t.co/h0HzKUrQSm</a></p>&mdash; Ram Vasuthevan (in SF Oct 31 - Nov 7) (@RamVasuthevan) <a href="https://twitter.com/RamVasuthevan/status/1684079350050881536?ref_src=twsrc%5Etfw">July 26, 2023</a></blockquote>
    <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
  </li>
</ol>

<p>I will also work on side projects, especially if they align with my goal of applying technology to real estate but it is now time to impose a discipline on myself.</p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Photo by Patrick Tomasso from Unsplash]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Focus/mwangi-gatheca-qlKaN7eqay8-unsplash.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Focus/mwangi-gatheca-qlKaN7eqay8-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Felt Feels like Magic</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Felt-Magic" rel="alternate" type="text/html" title="Felt Feels like Magic" /><published>2023-09-13T00:00:00+00:00</published><updated>2023-09-13T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Felt-Magic</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Felt-Magic"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Felt-Magic/francesca-saraco-u8DiM00gIR8-unsplash.jpg" alt="Descriptive Alt Text" />
    <div class="caption">
        
<p>Photo by <a href="https://unsplash.com/@fransaraco">Francesca Saraco</a> from <a href="https://unsplash.com/photos/u8DiM00gIR8">Unsplash</a></p>

    </div>
</div>

<p>I just started using <a href="https://felt.com/">Felt</a>. The best way to describe it is it feels like magic.
I have been thinking about side projects involving creating maps or using geospatial data for a while, but I’ve procrastinated on learning Mapbox or QGIS. And I’ve spent way too much time trying to install SpatiaLite on a Windows Laptop.</p>

<p>No coding involved. I just dragged the two Shapefiles (<a href="https://open.toronto.ca/dataset/property-boundaries/">Property Boundaries</a> and <a href="https://open.toronto.ca/dataset/address-points-municipal-toronto-one-address-repository/">Address Points (Municipal) - Toronto One Address Repository</a>) from the Toronto Open Data Portal on, and the map appeared. I then added the Felt’s preexisting building footprint layer. It was then easy to quickly add colouring by category. And even better (unlike some other tools), there is a working search bar so that you can look up parcels at an address.</p>

<p>In general, I like open tools so that I can have more control over the output and be confident that the publisher won’t stop supporting the tool in a couple of years. But I value velocity more than everything else. (If you’re reading this ten years from now, you’ll know how it worked out).</p>

<p>It didn’t take me that long to start seeing interesting things near the water, on Algonquin Island, near my home, etc.
However, I need to work on my styling.</p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Photo by Francesca Saraco from Unsplash]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Felt-Magic/francesca-saraco-u8DiM00gIR8-unsplash.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Felt-Magic/francesca-saraco-u8DiM00gIR8-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">A Bit of a Sabbatical</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Sabbatical" rel="alternate" type="text/html" title="A Bit of a Sabbatical" /><published>2023-08-27T00:00:00+00:00</published><updated>2023-08-27T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/A-Bit-of-a-Sabbatical</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Sabbatical"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Sabbatical/mwangi-gatheca-qlKaN7eqay8-unsplash.jpg" alt="Descriptive Alt Text" />
    <div class="caption">
        
<p>Photo by <a href="https://unsplash.com/@thirdworldhippy">Mwangi Gatheca</a> from <a href="https://unsplash.com/photos/qlKaN7eqay8">Unsplash</a></p>

    </div>
</div>

<p>I was laid off on Aug. 10, 2023. I feel like I was a good employee, but due to the vicissitudes of trade, my services were no longer needed. I wasn’t disappointed, I was honestly pretty excited.</p>

<p>During my sabbatical from employment, I want to produce work that I will be proud of 10 years from now. Reading, browsing Twitter or getting nerd-sniped are okay, and they feel like work. They definitely are intellectual work. But they are not legible. They do not let me signal what type of person I am and what I can do.</p>

<p>I have benefited for a long time from being perceived as a young, ambitious person. I lost that sheen for a bit when I was at Accenture. I regained it at Searchspring. Greatness comes from slack. The slack I had at Searchspring gave me time to become a better engineer and the confidence that I could be a great engineer. I want to build on that over the next couple of months.</p>

<p>I invested for a future decades away. But I worked for my stand-up hours away. That is no longer true. I am now constrained by money. But I can work on projects that can take years to pay off.</p>

<p>But I can’t waste time. I can invest time for a far future, but my limited money buys me limited freedom from the social contract of employment. I don’t want to impose a totalitarian discipline on myself, but failure is not acceptable. I have run away from the prison, which employment is. But the guards are out searching for me. I must find a new home or build a new one. I will not die in the wilderness. I will not go back. I will not spend years plotting another escape.</p>

<p>I have lived a charmed life. I have had one or more part-time jobs or a full-time job since the month after my 18th birthday. I have had less money in the past, but I have not really been constrained by money. Ever since I started working full-time, I have readily traded money for more time, reduced hassle or psychic benefits. But now that money directly buys freedom, I need to be more conservative with my spending.</p>

<p>I am a little afraid, very excited, but also overwhelmed. In the past, when I am overwhelmed, I have delayed or taken no action. Sometimes, no action is the right move, but often, it allows me to procrastinate on make hard decisions. I need to rapidly develop a bias for action.</p>

<p>For the last several years, my life has gotten better almost automatically. I passed my courses and went to the next grade. I matured as I gained more life experience just by waking up every day. But after I graduated, that is no longer true. I need to take action to improve my life. In 2020, I graduated and joined Accenture. In 2021, I took action, and I left my consulting job at Accenture and got a better job as a software engineer at Searchspring. I was concerned this year would break the trend. Whether or not it does, it certainly won’t be boring.</p>

<p>Goals:</p>
<ul>
  <li>Base:
    <ul>
      <li>I want to stop selling commodity engineering services to generic tech companies</li>
    </ul>
  </li>
  <li>High
    <ul>
      <li>Exit the social contract of employment</li>
    </ul>
  </li>
  <li>Low
    <ul>
      <li>Get another software engineering job</li>
    </ul>
  </li>
</ul>

<p>Fail:</p>
<ul>
  <li>Lose control of my sleep cycle. Allowing it to invert and me to be nocturnal</li>
  <li>Become unemployable before reaching sustainability</li>
  <li>Not being able to get another job</li>
  <li>Taking a sabbatical, working on side projects,  “Building in public”, etc., is a luxury belief</li>
  <li>I become overwhelmed and procrastinating on everything</li>
  <li>I have implicit and explicit responsibilities to others that I don’t want to abandon</li>
</ul>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Photo by Mwangi Gatheca from Unsplash]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Sabbatical/mwangi-gatheca-qlKaN7eqay8-unsplash.jpg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Sabbatical/mwangi-gatheca-qlKaN7eqay8-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The World Has Changed:Image Generation Engines</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Image-Generation-Engines" rel="alternate" type="text/html" title="The World Has Changed:Image Generation Engines" /><published>2023-08-05T00:00:00+00:00</published><updated>2023-08-05T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Image-Generation-Engines</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Image-Generation-Engines"><![CDATA[<p><strong>Editor’s Note: This was written in September 2022. At the time, I wanted to add more about what I thought image generators would be used for, and then I procrastinated … a lot. But I’ve decided to publish this version for posterity. The world has changed, and still almost nobody knows it yet.</strong></p>

<p>Today is September 6th, 2022. The three main image generation engines are DALL-E 2, Stable Diffusion, and Midjourney. (The date is important. The leading engines could be different a week from now.) Two months ago, the creation of digital artwork cost $100’s dollars or $1000’s dollars an image and photography costs $10’s and $1000’s per image. Today, the creation of digital images costs cents. Images can now be generated in seconds, by giving an image generation engine a text prompt and by fiddling with two or three simple parameters.</p>

<p>DALL-E 2 was released on July 20th, 2022. OpenAI, one of the world’s leading research laboratories, created it. OpenAI has XX<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> employees. It was closed-sourced and available initially only to beta testers on the waitlist. OpenAI distorted any faces in images making it hard to be used for deep fakes. Stability AI released Stable Diffusion on August 22nd, 2022, 33 days later. Stable Diffusion is open source, can be run on a consumer GPU, and doesn’t blur faces like DALL-E 2. Stability AI, as of August 12th, 2022, has 75 employees.</p>

<div class="image-container">
    <img src="/assets/bitsbipsbricks/Image-Generation-Engines/out-1.png" alt="" />
    <div class="caption">
        <p>Created by Stable Diffusion using <a href="https://replicate.com/p/xipb7ajpnretfmu42z3yxnhwuu">Replicate</a></p>

    </div>
</div>

<p>The images aren’t prefect. They still gave off a weird vibe. And giving the right words to get the image you want (prompt engineering<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>) is still a bit finicky. But an hour after I started playing with Stable Diffusion, I was able to create this image of an Canadian Flag and an Astronaut on the moon. (So can you with <a href="https://replicate.com/p/xipb7ajpnretfmu42z3yxnhwuu">Stable Diffusion</a> on commit <code class="language-plaintext highlighter-rouge">a9758cbfbd5f</code> with width <code class="language-plaintext highlighter-rouge">512</code> height <code class="language-plaintext highlighter-rouge">512</code> prompt <code class="language-plaintext highlighter-rouge">Neil Armstrong on the Moon Canadian Flag</code> num_outputs <code class="language-plaintext highlighter-rouge">4</code> guidance_scale <code class="language-plaintext highlighter-rouge">7</code> prompt_strength <code class="language-plaintext highlighter-rouge">0.8</code> num_inference_steps <code class="language-plaintext highlighter-rouge">129</code> and seed <code class="language-plaintext highlighter-rouge">47692</code>).</p>

<p>More:</p>
<ul>
  <li>Soon for videos, etc</li>
  <li>Fundamentally, a different medium</li>
  <li>Deepfakes</li>
  <li>Creative labour</li>
  <li>New art created (Comic book etc)</li>
  <li>Programmatic creation (See what clothes would look like on you?, What products look like your home?)</li>
  <li>Meaning of non-human-created artwork?</li>
  <li>Creative work of curation??</li>
  <li>Can’t be put back in the box. This felt different. We were/aren’t ready.</li>
  <li><strong>We won’t be ready for the next one</strong></li>
</ul>

<p>Edit: 2023-11-11 A link was added to footnote 2 and the title was changed to from <code class="language-plaintext highlighter-rouge">The World Has Changed</code> to <code class="language-plaintext highlighter-rouge">The World Has Changed:Image Generation Engines</code></p>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>I didn’t find the number at the time and couldn’t find the exact number now <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>I’ve changed my mind about what prompt engineering is. See: <a href="https://mitchellh.com/writing/prompt-engineering-vs-blind-prompting">Prompt Engineering vs. Blind Prompting — Mitchell Hashimoto</a> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Editor’s Note: This was written in September 2022. At the time, I wanted to add more about what I thought image generators would be used for, and then I procrastinated … a lot. But I’ve decided to publish this version for posterity. The world has changed, and still almost nobody knows it yet.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Image-Generation-Engines/out-1.png" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Image-Generation-Engines/out-1.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Why You Should Own YourName.com</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Your-Name" rel="alternate" type="text/html" title="Why You Should Own YourName.com" /><published>2023-01-05T00:00:00+00:00</published><updated>2023-01-05T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Your-Name</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Your-Name"><![CDATA[<div class="image-container">
    <img src="/assets/bitsbipsbricks/Your-Name/photo-1573867639040-6dd25fa5f597.jpeg" alt="Descriptive Alt Text" />
    <div class="caption">
        
<p>Photo by <a href="https://unsplash.com/@halacious"> Hal Gatewood</a> from <a href="https://unsplash.com/photos/weRQAu9TA-A">Unsplash</a></p>

    </div>
</div>

<p>These days there are many places to hang your digital shingle— Facebook, Instagram, Twitter, Mastodon, Reddit, etc. And there are many ways to communicate— Messenger, Instagram DMs and WhatsApp and others not owned by Meta, like iMessage, Slack and Discord.</p>

<p>But you own none of these.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> It’s like building a business in a building you don’t own. Maybe it’s the right move, but your landlord can always decide to kick you out at renewal time. There’s nothing wrong with posting or messaging on platforms you don’t own. But you should have at least one place where to control your access to the platform. Check the terms of your lease. You can get kicked off Facebook, banned from Twitter, and have your Gmail account suspended for any or no reason.</p>

<p>You should go out today to buy <code class="language-plaintext highlighter-rouge">FirstNameLastName.com</code> if it’s available. If it’s not available, then buy another version of your name, like <code class="language-plaintext highlighter-rouge">FirstNameMiddleNameLastName.com</code>, <code class="language-plaintext highlighter-rouge">FirstNameMiddleInitialLastName.co</code> or <code class="language-plaintext highlighter-rouge">FirstNameLastName.site</code> . I would recommend searching for available domains using <a href="https://www.namecheap.com/domains/registration/results/?type=beast">NameCheap’s Beast Mode Search</a> which lets you search 100’s TLD’s at the same time. And then  buying the domain on <a href="https://www.hover.com/">Hover</a>. Hover is a domain name registry which is easy to use and has amazing customer service. Customer service is an very important to consider when picking a domain name registry because you’ll be a customer for possiblly decades.</p>

<p>It’ll take less than 20 minutes and cost less than $20. If you don’t do anything else, you should buy this domain. Then, you can procrastinate for years before you do anything else.</p>

<p>If you want, you can buy LastName.com, so that send email from FirstName@LastName.com. Using <a href="https://www.hover.com/">Hover</a>, you can set up this email and forward it to your normal Gmail account so that nothing about your day-to-day emailing experience will change. So even if your Gmail account gets banned, you’ll have access to FirstName@LastName.com. How many sites is your Gmail account the credentials for? <a href="https://www.nytimes.com/2022/08/21/technology/google-surveillance-toddler-photo.html">What happens if Father Google wakes up on the wrong side of the bed?</a> Also, sending email from FirstName@LastName.com is cool.</p>

<p>If you are a software engineer or a designer or do anything creative, you probably have some (or should have some) artifacts of your work you can share to with others. Your personal website is a great place to share them. Even if they natively live on GitHub, Vsco or Vimeo, you can link to and back them up here. I am using Ghost for this website and using <a href="https://jekyllrb.com/">Jekyll</a> for my personal website <a href="https://ramvasuthevan.ca/">ramvasuthevan.ca</a>.<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup></p>

<p>Remember, you can set up your custom email and personal website anytime, but time might be running out to register FirstNameLastName.com . Go do it now.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>You do control your phone number. In general, phone companies won’t seize your phone number; you take it with you when you change carriers, and it’s a safe bet that it’ll still work 10 years from now. Which is why social media apps ask you to upload your contact book. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>I procrastinated for years on building this site. But inspired by this tweet, I decided to just go for it and host some <a href="https://github.com/RamVasuthevan/Personal-Website/tree/296d25921afe5480c5c525caae18fe82df1766f4">RAW HTML</a> generated by <a href="https://stackedit.io/">Stackedit</a> using <a href="https://pages.cloudflare.com/">CloudFlare Pages</a>. It took about an hour to set up. I moved to Jekyll after getting annoyed at having to replicate changes to the footer and head on multiple markdown pages. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[Own your name]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Your-Name/photo-1573867639040-6dd25fa5f597.jpeg" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Your-Name/photo-1573867639040-6dd25fa5f597.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Removing the Audio Jack was a Mistake</title><link href="https://ramvasuthevan.ca/bitsbipsbricks/Remove-Audio-Jack" rel="alternate" type="text/html" title="Removing the Audio Jack was a Mistake" /><published>2022-12-17T00:00:00+00:00</published><updated>2022-12-17T00:00:00+00:00</updated><id>https://ramvasuthevan.ca/bitsbipsbricks/Remove-Audio-Jack</id><content type="html" xml:base="https://ramvasuthevan.ca/bitsbipsbricks/Remove-Audio-Jack"><![CDATA[<p>I recently upgraded my Pixel 4a to 6a. I’m a big fan of Pixel’s solid hardware, clean stock Android (with Pixel UI) and great price.</p>

<p>I assumed the 6a would have an audio jack, just like the 4a. But to my shock and horror, it didn’t. One of the robotics team coaches at my high school— an engineer for GM for 35 years, would say, “When you assume you make an arse out of you and me”. I was certainly made into an arse.</p>

<p>So I begrudgingly went to Best Buy to buy the cheapest Google wireless earbuds—the Google Pixel Buds A Series, for $80. I came back home and used them inside for a couple of hours. They’re okay. Not the best, but useable.</p>

<p>I then decided to go for a walk. I put the earbuds in their case and the case in my pocket. When I came back home, the case was not in my pocket. I am now legitimately pissed off. After searching my house, I realized I had probably dropped them when pulling out my wallet. I got some cheesecake on a stick. The case was on top of my wallet in my pocket. I hadn’t set up my tap properly yet. So I quickly took out my wallet to pay. And the case probably fell out, and I didn’t hear it over the loud music.</p>
<h1 id="tradeoffs">Tradeoffs</h1>

<p>Everything in life is about tradeoffs. Saying that something should be different without considering constraints is just magical thinking.</p>

<p>I understand that the phone can be thinner and have a longer battery life without the audio jack. I understand the Bluetooth is good enough to stream quality audio now. I understand that the goal is to eventually remove the charging port. But I still want my audio jack!</p>

<div class="image-container">
    <img src="/assets/bitsbipsbricks/Remove-Audio-Jack/74lirquirtl01.png" alt="" />
    <div class="caption">
        <p>From Kanye West’s Twitter via Reddit user <a href="https://www.reddit.com/r/Kanye/comments/84ijrz/easily_my_favorite_kanye_tweet/">_the_orange_box_</a></p>

    </div>
</div>

<h1 id="why">Why?</h1>

<p>I don’t think the tradeoffs are worth it. I am willing to have a larger and thicker phone. I’d love more battery life, but I care much more about my mental battery than my phone’s. Relative to my $15 wired earbuds, wireless earbuds are more expensive, are easier to fall out of my ear, are easier to lose individually, and take up more space in my pocket. And it’s easier to lose them even in the case, as I found out.</p>

<p>Now I have to walk around with a dongle attached to my wired earbuds. And I can’t charge my phone while using earbuds.
I understand that some people are willing to make these tradeoffs. And maybe flagship phones shouldn’t have an audio jack, but the Pixel A series definitely should. (But I secretly believe all of you agree with me. Memetic desire has got you believing that you’d be cool if you were wearing AirPods)</p>

<p>All I want is a stock Android phone with an audio jack. Google, why won’t you take my money?</p>]]></content><author><name></name></author><category term="bitsbipsbricks" /><summary type="html"><![CDATA[I recently upgraded my Pixel 4a to 6a. I’m a big fan of Pixel’s solid hardware, clean stock Android (with Pixel UI) and great price.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Remove-Audio-Jack/74lirquirtl01.png" /><media:content medium="image" url="https://ramvasuthevan.ca/assets/bitsbipsbricks/Remove-Audio-Jack/74lirquirtl01.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>