<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mikey San</title>
    <description>The latest articles on DEV Community by Mikey San (@whoismikey).</description>
    <link>https://dev.to/whoismikey</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F367308%2F7fb5399e-2e79-48d7-83d0-37e11c2c0f3a.jpg</url>
      <title>DEV Community: Mikey San</title>
      <link>https://dev.to/whoismikey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/whoismikey"/>
    <language>en</language>
    <item>
      <title>A Smarter Way to Run AppImages (Without the Rename Game)</title>
      <dc:creator>Mikey San</dc:creator>
      <pubDate>Sun, 06 Apr 2025 17:06:13 +0000</pubDate>
      <link>https://dev.to/whoismikey/a-smarter-way-to-run-appimages-without-the-rename-game-4ija</link>
      <guid>https://dev.to/whoismikey/a-smarter-way-to-run-appimages-without-the-rename-game-4ija</guid>
      <description>&lt;p&gt;Let’s talk about something small, but mighty useful — an updatable wrapper script for your AppImage.&lt;/p&gt;

&lt;p&gt;If you’ve ever downloaded a new version of an AppImage and then had to change your shortcuts, launchers, or muscle memory because the filename changed (again), this one’s for you. This little script keeps your life tidy, predictable, and just works.&lt;/p&gt;

&lt;p&gt;Here’s the idea: you store all your AppImage versions in one directory, and then use a wrapper script that always runs the latest one — no renaming needed.&lt;/p&gt;

&lt;p&gt;Here’s the magic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# Path to your AppImages directory&lt;/span&gt;
&lt;span class="nv"&gt;APPIMAGE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/Applications"&lt;/span&gt;

&lt;span class="c"&gt;# Find the newest matching AppImage (e.g., all VSCode AppImages)&lt;/span&gt;
&lt;span class="nv"&gt;LATEST_APPIMAGE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$APPIMAGE_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;/YourApp&lt;span class="k"&gt;*&lt;/span&gt;.AppImage | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# Execute it with all passed arguments&lt;/span&gt;
&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$LATEST_APPIMAGE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$@&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This script:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps all your AppImage versions in one place&lt;/li&gt;
&lt;li&gt;Always launches the most recent one (based on the filename’s modified time)&lt;/li&gt;
&lt;li&gt;Passes through any command-line arguments, just like the real thing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To make it seamless, save the script in somewhere like your &lt;code&gt;$HOME/.local/bin/&lt;/code&gt; directory and give it a name you’ll remember — maybe the name of the app itself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x &lt;span class="nv"&gt;$HOME&lt;/span&gt;/.local/bin/your-command-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I use the location above, so I wouldn't have to use &lt;code&gt;sudo&lt;/code&gt; to save it to a location like &lt;code&gt;/usr/local/bin/your-command-name&lt;/code&gt;, which would be the norm.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcokpcvemnos8awkzvrw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcokpcvemnos8awkzvrw.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Now, whenever you download a new version, just drop it into your &lt;code&gt;~/Applications&lt;/code&gt; directory, make sure it’s executable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x /path/to/your/AppImage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;...and that’s it. No edits to the script, no broken launchers, no extra steps.&lt;/p&gt;

&lt;p&gt;Small change. Big convenience.&lt;/p&gt;

</description>
      <category>appimage</category>
      <category>productivityhack</category>
      <category>linuxtips</category>
      <category>bash</category>
    </item>
    <item>
      <title>That blank stare</title>
      <dc:creator>Mikey San</dc:creator>
      <pubDate>Wed, 29 Apr 2020 20:17:31 +0000</pubDate>
      <link>https://dev.to/whoismikey/that-blank-stare-4a9a</link>
      <guid>https://dev.to/whoismikey/that-blank-stare-4a9a</guid>
      <description>&lt;p&gt;I recently made a commitment to learn Python. Why Python? I thought it would make a good addition to my skills. I also like what I am seeing in the land of AI and Python. In addition, I work with Linux and already do Bash scripting in my everyday work; looking to switch my automation scripts to Python. &lt;/p&gt;

&lt;p&gt;Things have been going on smoothly so far. I had my first major (beginners major, not experts major) assessment the other day and aced it. There was one problem that almost threw me; the FizzBuzz test. I had the logic, but failed where I found most beginners fail - I won't spoil it by telling you.&lt;/p&gt;

&lt;p&gt;Anyway, over the weekend I decided to take a break. You know, pump the breaks. Have a breather. Bad move! Or maybe I just need to work out how long a break is good for me. :(&lt;/p&gt;

&lt;p&gt;I went back to studying today - my break continued through to Monday. I was in the middle of another assessment and wanted to see how much I would retain if I jumped right back in from there. It didn't go well.&lt;/p&gt;

&lt;p&gt;I found myself stuck on a particular function problem that almost had me depressed. I unpacked the issue; wrote the code outside of a function and it appeared to work. And then I remembered I had to find even numbers. As soon as I add the bit that should do that "num % 2 == 0", everything falls apart. I have tried multiple things, but I keep getting the same error message. I now have that blank stare.&lt;/p&gt;

&lt;p&gt;My current solution is to go back a few lessons and work my way forward again. The second solution is to plan better, which is where I turn to you.&lt;/p&gt;

&lt;p&gt;How many hours in a day is a good balance for studying; especially if you are past 30yrs of age? Or does age not even matter?&lt;/p&gt;

&lt;p&gt;Secondly, how many days off is sufficient to get back and pick up where you left off?&lt;/p&gt;

&lt;p&gt;ps. Future posts will have code snippets. This is my first post :) &lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>lessons</category>
    </item>
  </channel>
</rss>
