<rss version="2.0">
  <channel>
    <title>itsa me, mando</title>
    <link>https://mando.org/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Fri, 21 Mar 2025 11:24:08 -0500</lastBuildDate>
    <item>
      <title></title>
      <link>https://mando.org/2025/03/21/sometimes-when-i-get-sad.html</link>
      <pubDate>Fri, 21 Mar 2025 11:24:08 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2025/03/21/sometimes-when-i-get-sad.html</guid>
      <description>&lt;p&gt;Sometimes, when I get sad or anxious, I watch this video and it always makes me feel better&lt;/p&gt;
&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 50%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 50%; height: 50%; }&lt;/style&gt;&lt;div class=&#39;embed-container&#39;&gt;&lt;iframe src=&#39;https://www.youtube.com/embed/zryfjSaxXLo&#39; frameborder=&#39;0&#39; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Duckit</title>
      <link>https://mando.org/2025/02/26/duckit.html</link>
      <pubDate>Wed, 26 Feb 2025 18:32:47 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2025/02/26/duckit.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been throughly &lt;a href=&#34;%5Burl%5D(https://duckdb.org)&#34;&gt;duckpilled&lt;/a&gt;. I&amp;rsquo;ve spent the better part of the last year wrangling a LOT of CSVs and let me tell you, duckdb has been right there with me, helping me along the way.&lt;/p&gt;
&lt;figure class=&#34;image&#34;&gt;  &lt;img src=&#34;https://media.tenor.com/xZtJvkD2wkwAAAAe/what-we-do-in-the-shadows-laszlo-cravensworth.png&#34; width=&#34;50%&#34; alt=&#34;man running from his house yelling &#39;AHHH IM INSANE WITH ANGER&#34;&gt;  &lt;figcaption&gt;me, talking about duckdb to anyone who will listen&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;And after a year of doing this DAY AFTER DAY AFTER DAY&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ duckdb
v1.1.3 19864453f7
Enter &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.help&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; usage hints.
Connected to a transient in-memory database.
Use &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.open FILENAME&amp;#34;&lt;/span&gt; to reopen on a persistent database.
D create table t as &lt;span style=&#34;color:#66d9ef&#34;&gt;select&lt;/span&gt; * from read_csv&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;ome_more_csv&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I decided that enough was enough and I made &lt;code&gt;DUCKIT&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BEHOLD MY MONSTROUS CREATION!&lt;/strong&gt;&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-bash&#34; data-lang=&#34;bash&#34;&gt;duckit&lt;span style=&#34;color:#f92672&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;
  csv&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$1

  tmp_db&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;mktemp&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;.db
  cat $1 | duckdb $tmp_db &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;create table t as select * from read_csv(&amp;#39;/dev/stdin&amp;#39;)&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; duckdb $tmp_db
&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Does it clean up after itself? Of course not!&lt;/p&gt;
&lt;p&gt;Does it check inputs? Psh.&lt;/p&gt;
&lt;p&gt;What happens if &lt;code&gt;duckdb&lt;/code&gt; isn&amp;rsquo;t installed? You&amp;rsquo;ll probably die who can tell?&lt;/p&gt;
&lt;p&gt;But it lets me do this, which I&amp;rsquo;ve been dying to do for months now:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ duckit free_company_dataset.csv
100% ▕████████████████████████████████████████████████████████████▏ 
v1.1.3 19864453f7
Enter &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.help&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; usage hints.
D summarize t;
┌──────────────┬─────────────┬─────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────┬───────────────┬────────────────────┬────────────────────┬─────────┬─────────┬─────────┬──────────┬─────────────────┐
│ column_name  │ column_type │                                 min                                 │                                      max                                       │ approx_unique │        avg         │        std         │   q25   │   q50   │   q75   │  count   │ null_percentage │
│   varchar    │   varchar   │                               varchar                               │                                    varchar                                     │     int64     │      varchar       │      varchar       │ varchar │ varchar │ varchar │  int64   │  decimal&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;9,2&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;   │
├──────────────┼─────────────┼─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼───────────────┼────────────────────┼────────────────────┼─────────┼─────────┼─────────┼──────────┼─────────────────┤
│ country      │ VARCHAR     │ afghanistan                                                         │ åland islands                                                                  │           &lt;span style=&#34;color:#ae81ff&#34;&gt;283&lt;/span&gt; │                    │                    │         │         │         │ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │            9.98 │
│ founded      │ BIGINT      │ &lt;span style=&#34;color:#ae81ff&#34;&gt;1001&lt;/span&gt;                                                                │ &lt;span style=&#34;color:#ae81ff&#34;&gt;2024&lt;/span&gt;                                                                           │           &lt;span style=&#34;color:#ae81ff&#34;&gt;937&lt;/span&gt; │ 2006.3161400677536 │ 24.825956869579304 │ &lt;span style=&#34;color:#ae81ff&#34;&gt;2003&lt;/span&gt;    │ &lt;span style=&#34;color:#ae81ff&#34;&gt;2013&lt;/span&gt;    │ &lt;span style=&#34;color:#ae81ff&#34;&gt;2018&lt;/span&gt;    │ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │           60.79 │
│ id           │ VARCHAR     │ 000053ktcMRCSIbGGboE0QlBPQlh                                        │ zzzzgepytuhECxjtjLcHyAGn554K                                                   │      &lt;span style=&#34;color:#ae81ff&#34;&gt;22169331&lt;/span&gt; │                    │                    │         │         │         │ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │            0.00 │
│ industry     │ VARCHAR     │ &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;glass                                                              │ writing and editing                                                            │           164 │                    │                    │         │         │         │ 22734322 │           23.83 │
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;│ linkedin_url │ VARCHAR     │  ceramics &amp;amp; concrete&amp;#34;&lt;/span&gt;                                               │ linkedin.com/company/   ashiraj-education-overseas-consultants-private-limited │      &lt;span style=&#34;color:#ae81ff&#34;&gt;26144844&lt;/span&gt; │                    │                    │         │         │         │ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │            0.00 │
│ locality     │ VARCHAR     │ &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;aeroporto \&amp;#34;b\&amp;#34;&amp;#34;&lt;/span&gt;                                                   │ ’aïn el melh                                                                   │        &lt;span style=&#34;color:#ae81ff&#34;&gt;248569&lt;/span&gt; │                    │                    │         │         │         │ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │           32.66 │
│ name         │ VARCHAR     │  el&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;                                                                │ 🫧sl-wash🫧 spécialiste station de lavage auto                                 │      24204406 │                    │                    │         │         │         │ 22734322 │            0.13 │
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;│ region       │ VARCHAR     │                                 registered estate surveyors &amp;amp; val…  │ 🧚♀️maison sérénité opôno  🪷                                                   │        139478 │                    │                    │         │         │         │ 22734322 │           22.99 │
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;│ size         │ VARCHAR     │ 1-10                                                                │ žilinský                                                                       │          2558 │                    │                    │         │         │         │ 22734322 │            0.38 │
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;│ website      │ VARCHAR     │ &amp;#34;&lt;/span&gt;google.com/maps/place/28°36&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;36.4\&amp;#34;n+77°01&amp;#39;&lt;/span&gt;43.6&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;e/@28.610122.77.…  │ 👁👄👁.fm                                                                        │      &lt;span style=&#34;color:#ae81ff&#34;&gt;20771265&lt;/span&gt; │                    │                    │         │         │         │ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │           30.49 │
├──────────────┴─────────────┴─────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────┴───────────────┴────────────────────┴────────────────────┴─────────┴─────────┴─────────┴──────────┴─────────────────┤
│ &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; rows                                                                                                                                                                                                                                                                                     &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; columns │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D &lt;span style=&#34;color:#66d9ef&#34;&gt;select&lt;/span&gt; count&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;0&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; from t;
┌──────────┐
│ count&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;0&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; │
│  int64   │
├──────────┤
│ &lt;span style=&#34;color:#ae81ff&#34;&gt;22734322&lt;/span&gt; │
└──────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;note: don&amp;rsquo;t scroll all the way to the right, the table got all janked&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>It only took me 20 years</title>
      <link>https://mando.org/2025/02/04/it-only-took-me-years.html</link>
      <pubDate>Tue, 04 Feb 2025 16:35:17 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2025/02/04/it-only-took-me-years.html</guid>
      <description>&lt;p&gt;&amp;hellip; to understand how &lt;code&gt;xargs&lt;/code&gt; works.&lt;/p&gt;
&lt;p&gt;Well, it&amp;rsquo;s pretty presumptuous of me to say that I understand how &lt;code&gt;xargs&lt;/code&gt; works. More accurately, I have a good enough understanding of &lt;code&gt;xargs&lt;/code&gt; to be able to use it without immediately running to Google or ChatGPT. Hopefully, dear reader, this will help.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s say I wanna upload a bunch of files that match a regular expression to S3. These were the files I wanted to upload:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ ls -al successes-*
-rw-r--r-- &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; mando staff &lt;span style=&#34;color:#ae81ff&#34;&gt;289743&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; 17:53 successes-00.csv
-rw-r--r-- &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; mando staff &lt;span style=&#34;color:#ae81ff&#34;&gt;290386&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; 17:52 successes-01.csv
-rw-r--r-- &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; mando staff &lt;span style=&#34;color:#ae81ff&#34;&gt;287589&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; 17:53 successes-02.csv
-rw-r--r-- &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; mando staff &lt;span style=&#34;color:#ae81ff&#34;&gt;291275&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; 17:53 successes-03.csv
-rw-r--r-- &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; mando staff &lt;span style=&#34;color:#ae81ff&#34;&gt;290009&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; 17:53 successes-04.csv
-rw-r--r-- &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; mando staff &lt;span style=&#34;color:#ae81ff&#34;&gt;149875&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; 17:53 successes-05.csv
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you&amp;rsquo;re probably gonna tell me about the &lt;code&gt;--include&lt;/code&gt; and &lt;code&gt;--exclude&lt;/code&gt; flags to &lt;code&gt;aws s3 cp&lt;/code&gt; to which I&amp;rsquo;ll say &amp;ldquo;phooey!&amp;rdquo;.&lt;/p&gt;
&lt;p class=&#34;note&#34;&gt;translation: I tried it and couldn&#39;t make it work&lt;/p&gt;
&lt;h2 id=&#34;enter-xargs&#34;&gt;Enter: &lt;code&gt;xargs&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the thing I never got that&amp;rsquo;s helped me better understand what&amp;rsquo;s going on:
all &lt;code&gt;xargs&lt;/code&gt; does is take whatever you send it and append them to the end of the command you tell it to call. That&amp;rsquo;s a terrible explanation but maybe an example will help:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ ls success* | xargs echo
successes-00.csv successes-01.csv successes-02.csv successes-03.csv successes-04.csv successes-05.csv successes.csv
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;All it&amp;rsquo;s doing is taking the output from &lt;code&gt;ls success*&lt;/code&gt; and sending it to &lt;code&gt;echo&lt;/code&gt;, turning the command into:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ echo successes-00.csv  successes-01.csv  successes-02.csv  successes-03.csv  successes-04.csv  successes-05.csv  successes.csv
successes-00.csv successes-01.csv successes-02.csv successes-03.csv successes-04.csv successes-05.csv successes.csv
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Useful I suppose, but doesn&amp;rsquo;t do a lot for me at the moment. But in all the examples for &lt;code&gt;xargs&lt;/code&gt; people be saying &lt;code&gt;-I&lt;/code&gt; a lot - what does that do?&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ ls success* | xargs -I echo
successes-00.csv
successes-01.csv
successes-02.csv
successes-03.csv
successes-04.csv
successes-05.csv
successes.csv
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;AHA! Instead of taking the inputs and turning them into a list of arguments to the &lt;code&gt;xargs&lt;/code&gt; command (&lt;code&gt;echo&lt;/code&gt; in this case), it iterates over them one at a time and calls the command with each input in turn. If you toss in &lt;code&gt;-p&lt;/code&gt; (for prompt) you&amp;rsquo;ll see it even clearer:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ ls success* | xargs -p -I echo
/bin/echo successes-00.csv?...y
successes-00.csv
/bin/echo successes-01.csv?...y
successes-01.csv
/bin/echo successes-02.csv?...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So let&amp;rsquo;s try it with &lt;code&gt;aws s3 cp&lt;/code&gt;:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ ls success* | xargs -p -I aws s3 cp ????????? s3://brainstorm-data/dev/mando/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Astute readers will see the problem: we gotta get the filename where the &lt;code&gt;?????????&lt;/code&gt; is, not at the end of the command like we did with &lt;code&gt;echo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;But fear not! Our new best friend &lt;code&gt;-I&lt;/code&gt; is here to help! We can pass some placeholder text to &lt;code&gt;-I&lt;/code&gt; and then use that placeholder text in the command to substitute in the argument.&lt;/p&gt;
&lt;p&gt;Again, that&amp;rsquo;s some terrible words but hopefully an example will help:&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-bash&#34; data-lang=&#34;bash&#34;&gt;❯ ls success* | xargs -p -I &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; aws s3 cp &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; s3://brainstorm-data/dev/mando/
aws s3 cp successes-00.csv s3://brainstorm-data/dev/mando/?...y
upload: ./successes-00.csv to s3://brainstorm-data/dev/mando/successes-00.csv
aws s3 cp successes-01.csv s3://brainstorm-data/dev/mando/?...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When we call &lt;code&gt;xargs&lt;/code&gt; like this:&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-bash&#34; data-lang=&#34;bash&#34;&gt;xargs -p -I &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; aws s3 cp &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; s3://brainstorm-data/dev/mando/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It takes the input (in this case our filename) and replaces the {} with the input!
Add in &lt;code&gt;-p&lt;/code&gt; as a sanity check and review before your computer friend actually runs the command, and now you&amp;rsquo;re xargsing.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mando.org/2019/11/22/dang-san-diego.html</link>
      <pubDate>Fri, 22 Nov 2019 17:42:35 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2019/11/22/dang-san-diego.html</guid>
      <description>&lt;p&gt;dang San Diego i don’t have enough self esteem to live somewhere with weather like this&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mando.org/2019/11/12/tfw-you-start.html</link>
      <pubDate>Tue, 12 Nov 2019 17:07:26 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2019/11/12/tfw-you-start.html</guid>
      <description>&lt;p&gt;tfw you start listening to DMB ironically and then&amp;hellip;. 🎶&lt;/p&gt;
&lt;img src=&#34;https://mando.micro.blog/uploads/2019/a7bfffdcaf.jpg&#34; width=&#34;600&#34; height=&#34;392&#34; alt=&#34;&#34; /&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mando.org/2019/11/07/how-did-this.html</link>
      <pubDate>Thu, 07 Nov 2019 13:27:58 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2019/11/07/how-did-this.html</guid>
      <description>&lt;p&gt;how did this happen AGAIN?!?!  I WAS BEING SO GOOD&lt;/p&gt;
&lt;img src=&#34;https://mando.micro.blog/uploads/2019/50f5784c48.jpg&#34; width=&#34;600&#34; height=&#34;22&#34; alt=&#34;&#34; /&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mando.org/2019/11/06/tfw-you-get.html</link>
      <pubDate>Wed, 06 Nov 2019 09:48:02 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2019/11/06/tfw-you-get.html</guid>
      <description>&lt;p&gt;tfw you get obsessed with a musician and desperately want to see them live so you go to their website and check for tour dates and&lt;/p&gt;
&lt;img src=&#34;https://mando.micro.blog/uploads/2019/a080b67dfd.jpg&#34; width=&#34;600&#34; height=&#34;259&#34; alt=&#34;&#34; /&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mando.org/2019/11/06/last-night-i.html</link>
      <pubDate>Wed, 06 Nov 2019 08:58:14 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2019/11/06/last-night-i.html</guid>
      <description>&lt;p&gt;🎶 last night i remembered what i forgot about being left along 🎶&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=uHdYJ_iuSAc&#34;&gt;www.youtube.com/watch&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>dfimage and you</title>
      <link>https://mando.org/2019/11/05/dfimage-and-you.html</link>
      <pubDate>Tue, 05 Nov 2019 14:16:59 -0500</pubDate>
      
      <guid>http://mando.micro.blog/2019/11/05/dfimage-and-you.html</guid>
      <description>&lt;p&gt;Every so often, I&amp;rsquo;ll find myself with a docker image and no accompanying Dockerfile.  When this happens, I usually just panic and try to judo my way around the problem (which is often that the docker container needs to be updated or modified).&lt;/p&gt;
&lt;p&gt;Not anymore, friends!&lt;/p&gt;
&lt;p&gt;Enter - &lt;a href=&#34;https://github.com/LanikSJ/dfimage&#34;&gt;github.com/LanikSJ/d&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check the README, but basically you give it a docker image id and it&amp;rsquo;ll do a pretty decent job of providing a Dockerfile that&amp;rsquo;ll generate said image.  It&amp;rsquo;s not perfect, but it&amp;rsquo;ll give you a good enough starting point that &lt;em&gt;probably&lt;/em&gt; won&amp;rsquo;t ruin everything.&lt;/p&gt;
&lt;p&gt;👨🏽‍💻&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
