<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Developer Distinction</title>
    <link>https://www.michaelborn.me/</link>
    <description>Articles on CFML, JavaScript, and software development by Michael Born.</description>
    <language>en-us</language>
    <atom:link href="https://www.michaelborn.me/index.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Wed, 02 Sep 2026 02:12:40 GMT</lastBuildDate>
    <item>
      <title>TIL: Typescript Basics</title>
      <link>https://www.michaelborn.me/posts/typescript-basics/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/typescript-basics/</guid>
      <pubDate>Wed, 02 Sep 2026 02:12:40 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Typescript:</description>
      <category>javascript</category>
      <category>til</category>
    </item>
    <item>
      <title>How to Get the Version of Any Java Package from CFML</title>
      <link>https://www.michaelborn.me/posts/read-java-package-version/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/read-java-package-version/</guid>
      <pubDate>Wed, 21 Sep 2022 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>The Apache POI library is an awesome tool for messing with spreadsheets. You can read spreadsheet data, get header rows, total row count, all sorts of wacky stuff. Julian Halliwell&apos;s excellent spreadsheet-cfml library uses it to great effect.</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>java</category>
    </item>
    <item>
      <title>Redirecting Hibernate Logs to the CommandBox Console</title>
      <link>https://www.michaelborn.me/posts/redirecting-hibernate-logs/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/redirecting-hibernate-logs/</guid>
      <pubDate>Mon, 30 Aug 2021 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>In my last blog post, I covered how to adjust the Hibernate log level with Log4j.</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>hibernate</category>
      <category>log4j</category>
    </item>
    <item>
      <title>Resolving Concurrent Exceptions in Hibernate Logger</title>
      <link>https://www.michaelborn.me/posts/hibernate-logger-concurrent-exception/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/hibernate-logger-concurrent-exception/</guid>
      <pubDate>Thu, 19 Aug 2021 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Recently while working on a Hibernate ORM project, I ran into an interesting issue when an entity with relationships is saved inside a transaction.</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>hibernate</category>
      <category>orm</category>
    </item>
    <item>
      <title>Cross-engine transaction detection in Hibernate v3+</title>
      <link>https://www.michaelborn.me/posts/transaction-detection-hibernate/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/transaction-detection-hibernate/</guid>
      <pubDate>Thu, 12 Aug 2021 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Cross-engine transaction detection in Hibernate v3+</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>hibernate</category>
      <category>orm</category>
    </item>
    <item>
      <title>Five Things I&apos;d Like To Learn in 2020</title>
      <link>https://www.michaelborn.me/posts/five-things-2020/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/five-things-2020/</guid>
      <pubDate>Mon, 13 Jan 2020 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Five Things I&apos;d Like To Learn in 2020</description>
      <category>2020</category>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>contentbox</category>
    </item>
    <item>
      <title>Three ColdBox Features I Learned While Building A URL Shortener</title>
      <link>https://www.michaelborn.me/posts/three-coldbox-learnings/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/three-coldbox-learnings/</guid>
      <pubDate>Wed, 18 Dec 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Last night I did another live-stream where I finished the first draft of a URL shortener I&apos;m calling &quot;cfShorty&quot;. During live-streams I typically end up searching the ColdBox docs for help, but this time Gavin Pickin watched and commented with some cool tips, most of which I&apos;d never used before.</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>coldbox</category>
    </item>
    <item>
      <title>Adobe, You Piece of Work, I&apos;m Through</title>
      <link>https://www.michaelborn.me/posts/adobe-piece-of-work/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/adobe-piece-of-work/</guid>
      <pubDate>Mon, 23 Sep 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Adobe, You Piece of Work, I&apos;m Through</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>lucee</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Getting Started In CFML: A Resource List for Newbies</title>
      <link>https://www.michaelborn.me/posts/quickstart-cfml/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/quickstart-cfml/</guid>
      <pubDate>Wed, 11 Sep 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>If you are going to learn CFML in 2019, you need the best resources available. In this post I&apos;ll share tutorials, video channels, and even podcasts you can use to help you begin learning CFML.</description>
      <category>cfml</category>
      <category>coldfusion</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Localizing Dates In Sql Server</title>
      <link>https://www.michaelborn.me/posts/localizing-dates-mssql/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/localizing-dates-mssql/</guid>
      <pubDate>Tue, 20 Aug 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Several months ago I added timezone handling to a CF app. This post is my best effort to document how to localize dates using MSSQL timezone functionality.</description>
      <category>sql</category>
      <category>localization</category>
    </item>
    <item>
      <title>TIL: TIL: How to Grep For a String In .cfc File Type</title>
      <link>https://www.michaelborn.me/posts/grep-with-file-type/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/grep-with-file-type/</guid>
      <pubDate>Fri, 16 Aug 2019 01:14:01 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Need to change a variable name across 50 files in 10 folders? Here&apos;s how to grep for that variable in .cfc files:</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>Form Processing in CFScript Part Three: Sending Email Notifications</title>
      <link>https://www.michaelborn.me/posts/forms-3-sending-emails/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/forms-3-sending-emails/</guid>
      <pubDate>Wed, 14 Aug 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>In this series so far, we&apos;ve looked at how to validate a form entry and how to save that form entry to the database. Today we&apos;ll see how we can notify a person (usually a site admin or editor) that a new form entry has been submitted and processed by simply sending an email.</description>
      <category>coldfusion</category>
      <category>lucee</category>
      <category>cfml</category>
      <category>cfscript</category>
    </item>
    <item>
      <title>Form Processing in CFScript Part Two: Saving Form Entries to the Database</title>
      <link>https://www.michaelborn.me/posts/forms-2-persist-db/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/forms-2-persist-db/</guid>
      <pubDate>Thu, 01 Aug 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>If a tree falls in a woods with no one to hear, did it actually fall? Likewise, if a user submits a form but it is not persisted in some form, that form submission is worthless.</description>
      <category>coldfusion</category>
      <category>cfscript</category>
      <category>cfml</category>
      <category>mysql</category>
    </item>
    <item>
      <title>Form Processing in CFScript Part One: Form Validation</title>
      <link>https://www.michaelborn.me/posts/forms-1-validation/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/forms-1-validation/</guid>
      <pubDate>Tue, 23 Jul 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>This series will teach you how to process form submissions using ColdFusion&apos;s CFScript syntax. In Part One I&apos;ll show you the basics of validating form submissions on the backend!</description>
      <category>coldfusion</category>
      <category>cfscript</category>
      <category>cfml</category>
      <category>validation</category>
    </item>
    <item>
      <title>Creating an MS Access Lucee Extension</title>
      <link>https://www.michaelborn.me/posts/access-lucee-extension/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/access-lucee-extension/</guid>
      <pubDate>Mon, 15 Jul 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I turned a simple task (migrate data from an MS Access database) into a Lucee extension which wraps the UCanAccess JDBC driver.</description>
      <category>coldfusion</category>
      <category>lucee</category>
      <category>cfml</category>
      <category>jdbc</category>
    </item>
    <item>
      <title>Storing and Using DateTimeOffsets in Lucee</title>
      <link>https://www.michaelborn.me/posts/lucee-datetimeoffset/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/lucee-datetimeoffset/</guid>
      <pubDate>Mon, 08 Jul 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Recently at Impelos I began storing dates using SQL Server&apos;s DateTimeOffset field, which allows us to store a date and time with embedded UTC offset. Unfortunately, I ran into several issues with Lucee&apos;s support for the data type.</description>
      <category>coldfusion</category>
      <category>lucee</category>
      <category>cfml</category>
      <category>sql</category>
    </item>
    <item>
      <title>CFScript Gotchas and Syntax Guides</title>
      <link>https://www.michaelborn.me/posts/cfscript-gotchas/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/cfscript-gotchas/</guid>
      <pubDate>Fri, 28 Jun 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Now, script syntax is usually straightforward, but as with any language, sometimes it&apos;s easy to get confused over certain things in script syntax. In this post I&apos;ll cover a quick list of common &quot;gotchas&quot; in CFScript, document the proper syntax for each, and finally link to a list of CFScript guides which may help you start writing CFScript today.</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>cfscript</category>
    </item>
    <item>
      <title>Switching from Tag to Script</title>
      <link>https://www.michaelborn.me/posts/switching-to-cfscript/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/switching-to-cfscript/</guid>
      <pubDate>Wed, 26 Jun 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Look, I write in CFScript. Most of the CF devs I look up to write in CFScript. But maybe you don&apos;t. Here&apos;s where I convince you CFScript is worth the jump and, for that matter, just how to &quot;jump&quot; to CFScript.</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>cfscript</category>
    </item>
    <item>
      <title>TIL: Write Getter and Setter Functions in Native Javascript</title>
      <link>https://www.michaelborn.me/posts/getter-and-setter-functions/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/getter-and-setter-functions/</guid>
      <pubDate>Fri, 14 Jun 2019 12:18:01 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Whoa! You can do getter and setter functions in native Javascript? How cool is that!</description>
      <category>javascript</category>
      <category>til</category>
    </item>
    <item>
      <title>CF: A Legacy of Legacy</title>
      <link>https://www.michaelborn.me/posts/cf-legacy/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/cf-legacy/</guid>
      <pubDate>Mon, 03 Jun 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I&apos;ve seen a lot of discussions revolving around ColdFusion and whether it is inherently a &quot;legacy&quot; language. There are dozens of blog posts proclaiming the death of the language, and every comment seems to share a story about just how &quot;legacy&quot; CF is. Today, I&apos;d like to look closely at why so many dare to call us a legacy language, and what we can do about that.</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>legacy</category>
    </item>
    <item>
      <title>Yes, ColdFusion is &apos;Unpopular&apos;. No, I don&apos;t care.</title>
      <link>https://www.michaelborn.me/posts/cf-unpopular/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/cf-unpopular/</guid>
      <pubDate>Thu, 23 May 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>It’s popular to hate on CF. It’s popular to say ColdFusion is &quot;dying&quot;. It’s popular to call CF a &quot;legacy&quot; language, and compare it to COBOL. But is ColdFusion really unpopular? And, more important… does it matter?</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>legacy</category>
    </item>
    <item>
      <title>TIL: Rename a Column in SQL Server</title>
      <link>https://www.michaelborn.me/posts/rename-column/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/rename-column/</guid>
      <pubDate>Fri, 10 May 2019 01:23:52 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Trying to rename a column today in an MSSQL database. I expected the standard ALTER TABLE x CHANGE oldColumn newColumn &lt;type&gt; to work, but apparently that&apos;s a MySQL-only thing? Instead I did a quick Google search and came up with this nugget:</description>
      <category>sql-server</category>
      <category>til</category>
    </item>
    <item>
      <title>Using ArraySome and ArrayEvery Higher-Order Functions in Lucee</title>
      <link>https://www.michaelborn.me/posts/array-higher-order-funcs/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/array-higher-order-funcs/</guid>
      <pubDate>Tue, 07 May 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>In this post I&apos;m going to take two Lucee only higher-order array functions, arraySome() and arrayEvery(), and explain their use and purpose. I&apos;ll also review the concept of a higher-order function, as well as the Super Cool (yet very little used) lambda expression available in Lucee 5.</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>lucee</category>
      <category>lambdas</category>
    </item>
    <item>
      <title>Five Reasons to Learn CF in 2019</title>
      <link>https://www.michaelborn.me/posts/five-reasons-cf/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/five-reasons-cf/</guid>
      <pubDate>Tue, 07 May 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I am happy to present Five Reasons to Learn CF in 2019. I&apos;m trying to be honest here, but you may find some bias because I love ColdFusion. There, I confessed. Read on!</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Five Reasons to Learn CF in 2019</title>
      <link>https://www.michaelborn.me/posts/hello-world-cf/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/hello-world-cf/</guid>
      <pubDate>Thu, 28 Mar 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Now that you&apos;ve read my Why Coldfusion? post (you HAVE, right?), let&apos;s do a simple Hello World just to try some sample CF code.</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>beginners</category>
      <category>commandbox</category>
    </item>
    <item>
      <title>Why I Program in Coldfusion</title>
      <link>https://www.michaelborn.me/posts/why-cf/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/why-cf/</guid>
      <pubDate>Wed, 20 Mar 2019 20:13:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I get asked this a bunch. Why are you programming in Coldfusion, anyway? Isn&apos;t Coldfusion dead? Isn&apos;t it closed-source? Isn&apos;t it expensive?</description>
      <category>coldfusion</category>
      <category>cfml</category>
      <category>beginners</category>
    </item>
    <item>
      <title>TIL: Ignore Linting Rules in CFLint</title>
      <link>https://www.michaelborn.me/posts/ignore-rules-in-cflint/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/ignore-rules-in-cflint/</guid>
      <pubDate>Thu, 28 Feb 2019 22:40:26 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, CFLint is super useful for CF development. There&apos;s a VS Code Extension which can lint your CF tag or script syntax on the fly, and there is also a CommandBox Package which can lint an entire folder of .cfm or .cfc files.</description>
      <category>coldfusion</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Formatting Dates in Oracle</title>
      <link>https://www.michaelborn.me/posts/date-format/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/date-format/</guid>
      <pubDate>Mon, 25 Feb 2019 22:30:22 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Trying to retrieve records by modifiedDate, right?</description>
      <category>oracle</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Get (Oracle) Database Version</title>
      <link>https://www.michaelborn.me/posts/get-database-version/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/get-database-version/</guid>
      <pubDate>Wed, 20 Feb 2019 13:58:52 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I&apos;ve been working with Oracle lately, and the first Oracle-specific thing I had to do was check the version.</description>
      <category>oracle</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Stash Specific Files and Filenames</title>
      <link>https://www.michaelborn.me/posts/stash-specific-files-and-filenames/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/stash-specific-files-and-filenames/</guid>
      <pubDate>Wed, 20 Feb 2019 13:53:12 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Why would you ever want to stash a specific file, as opposed to any and all altered files, you ask? In an ideal world, you probably wouldn&apos;t need to. In this specific case, I was attempting to stash files I had modified without stashing other files which had been bulk-edited by a script. In other words, I wished to throw away most of my changes and keep one or two specific changes after a git merge.</description>
      <category>git</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Docker Env Vars Use Equal Signs</title>
      <link>https://www.michaelborn.me/posts/env-vars-use-equal-signs/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/env-vars-use-equal-signs/</guid>
      <pubDate>Thu, 07 Feb 2019 22:59:33 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I did something pretty stupid a week or two ago. I was setting up a MariaDB database using Docker-compose, and I kept getting an error saying that MYSQL_ROOT_PASSWORD was not set. This made no sense to me - of course MYSQL_ROOT_PASSWORD is in the .env file, right?</description>
      <category>docker</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: How To Disable Auto-Restart on Docker Containers</title>
      <link>https://www.michaelborn.me/posts/disable-auto-restart-on-container/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/disable-auto-restart-on-container/</guid>
      <pubDate>Thu, 07 Feb 2019 22:54:20 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So I&apos;ve had this docker container hanging around my Ubuntu machine since I first developed/started it. It&apos;s there whenever I run docker ps, and I finally decided I need to stop this useless container from hogging my machine&apos;s memory. (After three months!)</description>
      <category>docker</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: How To Format Date Strings in SQL Server</title>
      <link>https://www.michaelborn.me/posts/format-date-strings/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/format-date-strings/</guid>
      <pubDate>Wed, 26 Dec 2018 13:30:00 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Where chr(10) is the myDateField column type to expect and 103 is the date format to use. The 100-plus date format codes will display a 4-digit year, whereas the 0-100 codes will display a 2-digit year. (Not recommended, if you ask me!)</description>
      <category>sql-server</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Alter Existing Constraint in Transact-SQL</title>
      <link>https://www.michaelborn.me/posts/alter-existing-constraint/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/alter-existing-constraint/</guid>
      <pubDate>Thu, 20 Dec 2018 17:43:25 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>First, see this quote from Modify Unique Constraints:</description>
      <category>sql-server</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: How to Show Column Types like MySQL&apos;s &quot;Show Columns&quot; statement</title>
      <link>https://www.michaelborn.me/posts/show-columns-in-table/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/show-columns-in-table/</guid>
      <pubDate>Wed, 19 Dec 2018 16:02:40 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>For all those MySQL devs who miss the simplicity of SHOW CREATE TABLE myTable or SHOW COLUMNS FROM myTable, here&apos;s the snippet you are looking for.</description>
      <category>sql-server</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Trim the TAB Character From A Field</title>
      <link>https://www.michaelborn.me/posts/trim-tab-character-from-field/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/trim-tab-character-from-field/</guid>
      <pubDate>Fri, 19 Oct 2018 21:22:55 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, I ran into a &quot;funny&quot; sorting issue this week. Turns out there was a &lt;TAB&gt; in a product title, causing that title to be sorted first. (Quite logic if you look at the ASCII table.)</description>
      <category>mysql</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: GRANT Permissions for MySQLDump Backups</title>
      <link>https://www.michaelborn.me/posts/grant-permissions-for-mysql-dump/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/grant-permissions-for-mysql-dump/</guid>
      <pubDate>Thu, 18 Oct 2018 07:13:38 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Turns out that running mysqldump against a database takes more than just SELECT permissions. Use this GRANT command to grant the necessary privileges for dumping a database.</description>
      <category>mysql</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: SSH Key Permissions Must Be Exact!</title>
      <link>https://www.michaelborn.me/posts/ssh-key-permissions-must-be-exact/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/ssh-key-permissions-must-be-exact/</guid>
      <pubDate>Thu, 06 Sep 2018 04:10:40 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, I just re-installed Ubuntu on my dev machine. (18.04, whoop whoop!)</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: How To Load Composer Packages from a VCS Repo</title>
      <link>https://www.michaelborn.me/posts/load-composer-packages-from-vcs-repo/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/load-composer-packages-from-vcs-repo/</guid>
      <pubDate>Sun, 26 Aug 2018 04:05:59 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, I&apos;m building a Formstack API extension for the marvelous Bolt CMS, and I decided to use Josh Gulledge&apos;s &apos;FormStackAPI` PHP integration.</description>
      <category>php</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Convert Putty (PPK) SSH key file to OpenSSH key file</title>
      <link>https://www.michaelborn.me/posts/convert-putty-ppk-to-openssh/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/convert-putty-ppk-to-openssh/</guid>
      <pubDate>Wed, 08 Aug 2018 19:20:54 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>See the quick tutorial on SuperUser.</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Delete a Remote Branch in Git</title>
      <link>https://www.michaelborn.me/posts/delete-remote-branch/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/delete-remote-branch/</guid>
      <pubDate>Fri, 06 Jul 2018 18:56:25 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>No explaning here. I&apos;ve got a branch in my repo, want to get rid of it.</description>
      <category>git</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Adding My Developer User to the Sudo Group</title>
      <link>https://www.michaelborn.me/posts/add-user-to-sudo-group/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/add-user-to-sudo-group/</guid>
      <pubDate>Tue, 03 Jul 2018 02:30:45 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Yo, ever seen this?</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Toggle Debug Mode</title>
      <link>https://www.michaelborn.me/posts/toggle-debug-mode/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/toggle-debug-mode/</guid>
      <pubDate>Tue, 26 Jun 2018 16:23:19 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Doing a big (ok, small) script to check for SSL certificates on a list of about 200 of our client websites.</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Override Vim Indentation Settings for a Specific Filetype</title>
      <link>https://www.michaelborn.me/posts/override-indentation-settings-for-specific-filetype/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/override-indentation-settings-for-specific-filetype/</guid>
      <pubDate>Sun, 17 Jun 2018 00:06:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I&apos;m working on a project which has thousands of lines of Coldfusion written with tabs. (Now&apos;s not the time to start that argument again!) I&apos;m obviously not keen on throwing 2 spaces in the mix for indentation, so I looked up a way to override indentation for .cfm and .cfc files only.</description>
      <category>vim</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Cherry Pick a Commit from a Detached Head</title>
      <link>https://www.michaelborn.me/posts/cherry-pick-commit-from-detached-head/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/cherry-pick-commit-from-detached-head/</guid>
      <pubDate>Fri, 01 Jun 2018 21:23:06 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>TIL: Cherry Pick a Commit from a Detached Head</description>
      <category>git</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: You Can&apos;t Add An Index to a MySQL View</title>
      <link>https://www.michaelborn.me/posts/cant-add-index-to-view/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/cant-add-index-to-view/</guid>
      <pubDate>Thu, 31 May 2018 18:53:28 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I hadn&apos;t realized this until today: MySQL views can&apos;t have indexes!</description>
      <category>mysql</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Cron Jobs Have Different `$_SERVER` Globals</title>
      <link>https://www.michaelborn.me/posts/cron-jobs-have-different-server-globals/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/cron-jobs-have-different-server-globals/</guid>
      <pubDate>Wed, 30 May 2018 10:23:36 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, I was getting this error message in a new cron job / nightly import I&apos;d set up.</description>
      <category>php</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Remove File From Last Git Commit</title>
      <link>https://www.michaelborn.me/posts/remove-file-from-last-commit/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/remove-file-from-last-commit/</guid>
      <pubDate>Tue, 29 May 2018 13:43:16 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Ach! I over-committed! (heh, heh, joke, joke.)</description>
      <category>git</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Hide Empty Sidebars From Template</title>
      <link>https://www.michaelborn.me/posts/hide-empty-sidebar-from-template/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/hide-empty-sidebar-from-template/</guid>
      <pubDate>Fri, 25 May 2018 20:14:30 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>My Foundation theme was showing the sidebar even when the sidebar was totally empty. This caused some wonky-looking main content which was shifted to the left, making room for the useless (and invisible) sidebar.</description>
      <category>wordpress</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Check for Empty String in Bash</title>
      <link>https://www.michaelborn.me/posts/check-for-empty-string/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/check-for-empty-string/</guid>
      <pubDate>Sat, 19 May 2018 03:26:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, I&apos;m grabbing argument number three.</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Firefox Can&apos;t Wrap Flex Elements In Print</title>
      <link>https://www.michaelborn.me/posts/firefox-cant-wrap-flex-elements-in-print/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/firefox-cant-wrap-flex-elements-in-print/</guid>
      <pubDate>Fri, 04 May 2018 13:16:48 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Wow! This was a royal pain. See Mozilla bug report for Firefox print mode.</description>
      <category>css</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Ignore Right-click Events in a `mousedown` Event Handler</title>
      <link>https://www.michaelborn.me/posts/ignore-right-click-in-mousedown-event-handler/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/ignore-right-click-in-mousedown-event-handler/</guid>
      <pubDate>Thu, 03 May 2018 14:39:17 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Making a &quot;Print page&quot; button. You know the drill. Use addEventListener(), pass a callback function.</description>
      <category>javascript</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Discover Why Git Won&apos;t Track a File</title>
      <link>https://www.michaelborn.me/posts/discover-why-git-wont-track-file/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/discover-why-git-wont-track-file/</guid>
      <pubDate>Wed, 02 May 2018 21:22:06 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>This was frustrating. I couldn&apos;t track changes to multiple files buried in a folder!</description>
      <category>git</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Restore Deleted Files from Older Commits</title>
      <link>https://www.michaelborn.me/posts/restore-deleted-files-from-old-commits/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/restore-deleted-files-from-old-commits/</guid>
      <pubDate>Tue, 01 May 2018 13:10:36 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Ugh. So I saw a bug logged today due to a missing piece of code. What?! That was there yesterday! Turns out I had deleted the file by accident and not realized it.</description>
      <category>git</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Escape ANSI Sequences in Bash</title>
      <link>https://www.michaelborn.me/posts/escape-ansi-sequences/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/escape-ansi-sequences/</guid>
      <pubDate>Mon, 30 Apr 2018 13:10:57 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So after writing all about my fancy new shell prompt, I had to adjust it a little. I knew I&apos;d gotten it wrong when I started seeing my shell commands wrap before they reached the end of the window.</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Turn On Error Details In IIS</title>
      <link>https://www.michaelborn.me/posts/turn-on-error-details/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/turn-on-error-details/</guid>
      <pubDate>Fri, 27 Apr 2018 13:51:11 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Ran into this today. Debugging a Coldfusion app on IIS, I&apos;m having trouble getting any errors, despite having a nice Coldfusion error handler set up.</description>
      <category>iis</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Make a Short Bash Prompt</title>
      <link>https://www.michaelborn.me/posts/make-a-custom-shell-prompt/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/make-a-custom-shell-prompt/</guid>
      <pubDate>Thu, 26 Apr 2018 16:53:21 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Ok, so I use VS Code with an integrated terminal on the right. My terminal is really narrow, so I run out of room quickly. My bash  prompt can overflow the narrow screen, so I decided to change it.</description>
      <category>bash</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Override Login Messages with `add_filter()`</title>
      <link>https://www.michaelborn.me/posts/override-login-messages-with-add-filter/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/override-login-messages-with-add-filter/</guid>
      <pubDate>Tue, 24 Apr 2018 12:51:01 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Using the Wordpress &quot;Theme My Login&quot; plugin to display a nice login form on a custom dashboard page. The form by default displays a &quot;Log In&quot; message, but what I&apos;d like to see is &quot;Please log in to view your application status&quot;.</description>
      <category>wordpress</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: Highlight Search Pattern Matches in Vim</title>
      <link>https://www.michaelborn.me/posts/highlight-search-matches-in-vim/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/highlight-search-matches-in-vim/</guid>
      <pubDate>Fri, 20 Apr 2018 21:30:49 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>So, my machine at work is less Vim-ified than my lean, mean, Ubuntu machine at home. When I tried searching for a variable (like /$applications), I couldn&apos;t immediately see the matched strings, meaning I have to skip to each match with n.</description>
      <category>vim</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: How to get the URL of a Job Listings page</title>
      <link>https://www.michaelborn.me/posts/get-url-job-listings-page/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/get-url-job-listings-page/</guid>
      <pubDate>Thu, 19 Apr 2018 13:45:41 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>After installing WP Job Manager on a careers-focused Wordpress site, I needed to set up a job search form. This search form would allow users to enter in a job title, keyword, etc to search the jobs on the site. Clicking &quot;Go&quot; would bring them to the job listing page.</description>
      <category>wordpress</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: &quot;Schema&quot; and &quot;Database&quot; Are Not the Same Thing!</title>
      <link>https://www.michaelborn.me/posts/schema-and-database-are-not-same-thing/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/schema-and-database-are-not-same-thing/</guid>
      <pubDate>Thu, 12 Apr 2018 21:08:00 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>I thought I was a pretty good database developer. I wouldn&apos;t call myself a DBA or a &quot;guru&quot;, but I would have put myself in the upper 50%.</description>
      <category>mysql</category>
      <category>til</category>
    </item>
    <item>
      <title>TIL: If Statements In Bash Scripts</title>
      <link>https://www.michaelborn.me/posts/if-statements-in-bash-scripts/</link>
      <guid isPermaLink="true">https://www.michaelborn.me/posts/if-statements-in-bash-scripts/</guid>
      <pubDate>Tue, 10 Apr 2018 13:39:12 GMT</pubDate>
      <author>michaelborn@duck.com (Michael Born)</author>
      <description>Ok, so this is nothing mind-blowing. I may spend a lot of time in bash, but very little of that goes into writing scripts. Well, today I was downloading websites using a wget script I wrote specifically for that purpose, and had to add an if statement to construct some conditional wget arguments.</description>
      <category>bash</category>
      <category>til</category>
    </item>
  </channel>
</rss>