<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>David Carew&#39;s Blog</title>
    <link>https://dcarew.com/</link>
    <description>Recent content on David Carew&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 03 Feb 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://dcarew.com/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>TIL: TIMESTAMP in sqlite</title>
      <link>https://dcarew.com/posts/2026/til-sqlite-timestamp/</link>
      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2026/til-sqlite-timestamp/</guid>
      <description>&lt;p&gt;I was browsing documentation for a small project I was working on today, and happened to notice something I had overlooked previously. &lt;a href=&#34;https://sqlite.org&#34;&gt;Sqlite&lt;/a&gt; allows you to automatically create a timestamp when you insert a record. You define the &lt;a href=&#34;https://sqlite.org/lang_createtable.html#the_default_clause&#34;&gt;column&lt;/a&gt; like so:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE foo(timestamp TEXT DEFAULT CURRENT_TIMSTAMP, ...)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A database with a built in timestamp function is hardly surprising. But Sqlite is more bare bones than other RDBMSs in this respect. There are no date/time data types, only strings (or integers if you are working with Unix timestamps).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Newer Than I Thought</title>
      <link>https://dcarew.com/posts/2025/sqliteconcat/</link>
      <pubDate>Sat, 22 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2025/sqliteconcat/</guid>
      <description>Software doesn&amp;rsquo;t always get features in the order you&amp;rsquo;d expect</description>
    </item>
    <item>
      <title>GNU Readline is Underappreciated</title>
      <link>https://dcarew.com/posts/2025/readline/</link>
      <pubDate>Sat, 15 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2025/readline/</guid>
      <description>&lt;p&gt;Today I want to give a shout out to what I am realizing is a very underappreciated piece of software: &lt;a href=&#34;https://tiswww.cwru.edu&#34;&gt;GNU Readline&lt;/a&gt;. If you have ever used Bash, you&amp;rsquo;ve used Readline. It is a library for powering command line interfaces. On the developer side, it makes it easy to add a nicely featured command prompt to your program.&lt;/p&gt;&#xA;&lt;p&gt;On the user side of things, the benefit is not any specific feature, but simply the fact that it is popular and influential. There are other line editing libraries out there&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, many of which copy the user interface it provides. It&amp;rsquo;s commands are a de-facto standard.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Yet Another Falsehood Programmers Believe About Addresses</title>
      <link>https://dcarew.com/posts/2024/anotherfalsehoodaboutaddresses/</link>
      <pubDate>Tue, 15 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2024/anotherfalsehoodaboutaddresses/</guid>
      <description>&lt;p&gt;It happened at last. A real world encounter with one of the &lt;a href=&#34;https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/&#34;&gt;falsehoods programmers believe about addresses&lt;/a&gt;. And one that I don&amp;rsquo;t see on the original list.&lt;/p&gt;&#xA;&lt;h2 id=&#34;different-addresses-refer-to-different-places&#34;&gt;Different addresses refer to different places&lt;/h2&gt;&#xA;&lt;p&gt;I have a PO box that I signed up for delivery notifications for. But several packages arrived with no notice. I looked through all the settings to see if there was something that wasn&amp;rsquo;t anything obvious. But finally it hit me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Log Watch</title>
      <link>https://dcarew.com/posts/2024/thelogwatch/</link>
      <pubDate>Thu, 12 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2024/thelogwatch/</guid>
      <description>&lt;p&gt;&#xA;One of the nice things about having a small, personal website is that traffic is slow enough you can make sense of it in real time. It&amp;#39;s not a real monitoring solution, but while I am at my computer I do like to have a terminal open somewhere, logged into my server, and running &lt;code&gt;tail -f /var/log/nginx/access.log&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;You can see some funny things sometimes. Just recently I watched a bot scan my site for a RSS feed. It was looking at all kinds of urls except the one actually &lt;a href=&#34;https://dcarew.com/feed.xml&#34;&gt;&amp;lt;link&amp;gt;ed&lt;/a&gt; to in my page headers. &lt;/p&gt;</description>
    </item>
    <item>
      <title>Build A Website Builder For Fun And Profit</title>
      <link>https://dcarew.com/posts/2024/buildawebsitebuilderforfunandprofit/</link>
      <pubDate>Tue, 16 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2024/buildawebsitebuilderforfunandprofit/</guid>
      <description>&lt;p&gt;I always promised myself I would never write a &amp;ldquo;This is how my site works&amp;rdquo; blog because goodness knows there&amp;rsquo;s enough of those already&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Nevertheless, the static site generator that builds this site is my main project at the moment and I have thoughts about it.&lt;/p&gt;&#xA;&lt;p&gt;Even though I will not be telling you how to make one, I recommend that you do try, if you are technically inclined. It is easy to start, but the depth of detail in it is instructive.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AKA</title>
      <link>https://dcarew.com/posts/2024/aka/</link>
      <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2024/aka/</guid>
      <description>&lt;p&gt;I will admit to some occasional laziness. Like a lot of people, I have a bad habit of scrolling back up through my terminal history to find commands I need instead of typing them out. This is the bad kind of laziness. you can do slightly better by using control-r to search through that history, but it&amp;rsquo;s still not great.&lt;/p&gt;&#xA;&lt;p&gt;.bash_aliases is there for a reason. Use it. It is much more convenient not to have to remember what the command was called or how far up it is in the backscroll. The ergonomics are also better because things like filenames and domains can be turned into paprameters instead of remembering that this command wants them in this order, and make sure to have that flag. You can also encapsulate things like which directory to run in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Logging Multiple Domains in Nginx</title>
      <link>https://dcarew.com/posts/2024/logging-multiple-domains-and-nginx/</link>
      <pubDate>Thu, 18 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2024/logging-multiple-domains-and-nginx/</guid>
      <description>&lt;p&gt;I bought another domain that I promise I&amp;rsquo;m totally going to use for a real project. I&amp;rsquo;m not expecting too much traffic, so I went ahead and set it up on the same server as this blog. And this is why running your own server is pretty cool: you can&amp;rsquo;t take two steps without learning something new. I was looking at the access logs and I noticed that they do not include the domain being accessed. If I load the front page of this blog, or the front page of my other site, Nginx logs the same thing for the request: &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Take a Screenshot With the Linux Command Line</title>
      <link>https://dcarew.com/posts/2023/screencap/</link>
      <pubDate>Sat, 01 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/posts/2023/screencap/</guid>
      <description>&lt;p&gt;I wanted a way to grab a screenshot of a section of my screen on my Linux desktop. Running scrot and then cropping down two monitors worth of picture in GIMP is the kind of thing you do exactly once before you look for a better way. Now I don&amp;rsquo;t want anything &lt;em&gt;too much&lt;/em&gt; better. Otherwise I&amp;rsquo;d just tell you to install Gnome Screenshot or some other such tool and there wouldn&amp;rsquo;t be anything more for me to talk about. The fun is in hacking it together myself after all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact Me</title>
      <link>https://dcarew.com/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://dcarew.com/contact/</guid>
      <description>&lt;h1 id=&#34;socials&#34;&gt;Socials&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mastodon: &lt;a href=&#34;https://genart.social/@davidcarew&#34;&gt;@davidcarew@genart.social&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bluesky: &lt;a href=&#34;https://bsky.app/profile/dcarew.com&#34;&gt;@dcarew.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;form id=&#34;contact-form&#34; action=&#34;https://dcarew.com/etc/forms/contact&#34; method=&#34;post&#34;&gt;&#xA;&lt;input type=&#34;hidden&#34; style=&#34;display:none&#34; name=&#34;url&#34; value=&#34;https://dcarew.com/contact/&#34;&gt;&#xA;&lt;label for=&#34;contact-name&#34;&gt;Name:&lt;/label&gt;&#xA;&lt;input id=&#34;contact-name&#34; type=&#34;text&#34; name=&#34;name&#34;&gt;&#xA;&lt;p&gt;&lt;label for=&#34;contact-email&#34;&gt;Email:&lt;/label&gt;&#xA;&lt;input id=&#34;contact-email&#34; type=&#34;email&#34; name=&#34;email&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;label for=&#34;contact-message&#34;&gt;Message:&lt;/label&gt;&lt;textarea id=&#34;contact-message&#34; name=&#34;message&#34;&gt;&lt;/textarea&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;button&gt;Submit&lt;/button&gt;&lt;/p&gt;&#xA;&lt;/form&gt;</description>
    </item>
  </channel>
</rss>
