<?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>Blog RSS Feed :: Mark Hamstra | MODX Development &amp; Services</title>
    <link>https://www.markhamstra.com/rss-feed.rss</link>
    <description><![CDATA[Blog RSS]]></description>
    <language>en</language>
    <ttl>120</ttl>
    <atom:link href="https://www.markhamstra.com/rss-feed.rss" rel="self" type="application/rss+xml" />
<item>
  <title>Using ULID primary keys in xPDO</title>
  <link><![CDATA[https://www.markhamstra.com/xpdo/using-ulid-primary-keys-in-xpdo/?utm_source=rss]]></link>
  <description>
    <![CDATA[You've probably heard of UUIDs as a way to have unique identifiers for objects. But have you heard of ULIDs? I sure didn't until @PhilSturgeon tweeted about it, but since then I've taken a closer look and just finished implementing them into an xPDO project that was using UUIDs until now.]]>
  </description>
  <pubDate>Sun, 19 Jul 2020 17:50:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://www.markhamstra.com/xpdo/using-ulid-primary-keys-in-xpdo/</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>MODX, PHP &amp; session garbage collection</title>
  <link><![CDATA[https://www.markhamstra.com/modx/2020/modx-php-and-session-garbage-collection/?utm_source=rss]]></link>
  <description>
    <![CDATA[When did you last check the size of your modx_session database table? Was it huge, like gigabytes huge? If so, you're not alone. Let's look at this problem and understand how to fix it.]]>
  </description>
  <pubDate>Mon, 02 Mar 2020 13:58:23 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://www.markhamstra.com/modx/2020/modx-php-and-session-garbage-collection/</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>Making data available for setup options and resolvers in xPDO Packages</title>
  <link><![CDATA[https://www.markhamstra.com/xpdo/2019/package-data/?utm_source=rss]]></link>
  <description>
    <![CDATA[For a recent extra, I needed to get some arbitrary data into a package, in such a way that it's available for both the setup.options.php and the resolver - without duplicating that data. After some time I found a way to do that with package attributes.]]>
  </description>
  <pubDate>Mon, 26 Aug 2019 12:28:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://www.markhamstra.com/xpdo/2019/package-data/</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>Reconnecting xPDO in long running processes</title>
  <link><![CDATA[https://www.markhamstra.com/xpdo/2018/reconnecting-xpdo/?utm_source=rss]]></link>
  <description>
    <![CDATA[For SiteDash I built a worker queue, based on MySQL, to handle processing tasks asynchronously. There is a central database and separate worker servers inside the same private network that poll for new tasks to execute. These worker servers run PHP, with xPDO 3, to perform the tasks the application has scheduled.
One problem that would occasionally pop up is that the worker servers would lose connection with the database. The database is on a different server in the network, so that could come from rebooting the database server, a deploy or backup causing high load, network glitch, or just.. gremlins.]]>
  </description>
  <pubDate>Mon, 03 Dec 2018 16:00:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://www.markhamstra.com/xpdo/2018/reconnecting-xpdo/</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>Dealing with deprecation notices in MODX 2.7</title>
  <link><![CDATA[https://www.markhamstra.com/modx/2018/deprecated-notices-in-modx-2.7/?utm_source=rss]]></link>
  <description>
    <![CDATA[I'm writing this post on the brand new MODX 2.7, released earlier this week. Among new features like a trash manager, form customisation for create and update in the same set, purging old packages and lots more, there's one more change you're likely to start experiencing soon: deprecated features.]]>
  </description>
  <pubDate>Thu, 29 Nov 2018 02:57:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://www.markhamstra.com/modx/2018/deprecated-notices-in-modx-2.7/</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>What happened to MODX 3?</title>
  <link><![CDATA[https://modx.today/posts/2018/11/what-happened-to-modx-3?utm_source=rss]]></link>
  <description>
    <![CDATA[Earlier this year, MODX3 was all the rage, with weekly updates and an immense sprint that was actively reported on social media. Since the final MODX3 project statement in July, which included a first alpha build for testing, it has been a bit quieter. At least, from a communication perspective. So.. what's happening?]]>
  </description>
  <pubDate>Mon, 05 Nov 2018 16:13:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://modx.today/posts/2018/11/what-happened-to-modx-3</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>Recap of the largest MODX Meetup ever in Leeuwarden</title>
  <link><![CDATA[https://modx.today/posts/2018/03/recap-meetup-leeuwarden?utm_source=rss]]></link>
  <description>
    <![CDATA[On Wednesday, modmore hosted the largest MODX meetup ever in Leeuwarden, the Netherlands, with 38 MODXers in attendance.]]>
  </description>
  <pubDate>Fri, 09 Mar 2018 16:14:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://modx.today/posts/2018/03/recap-meetup-leeuwarden</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>Tip: Creating .htaccess files in the manager since MODX 2.5.7</title>
  <link><![CDATA[https://modx.today/posts/2017/07/tip-create-htaccess-manager?utm_source=rss]]></link>
  <description>
    <![CDATA[Since MODX 2.5.7 it's no longer possible, out of the box, to create .htaccess files. You might run into this when setting up a new MODX site with friendly URLs, where you get an error when renaming the shipped ht.access file to .htaccess. Luckily there's an easy way to get that back.]]>
  </description>
  <pubDate>Mon, 24 Jul 2017 16:15:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://modx.today/posts/2017/07/tip-create-htaccess-manager</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>Tutorial: Creating custom field types in Formalicious</title>
  <link><![CDATA[https://modx.today/posts/2017/04/custom-field-types-in-formalicious?utm_source=rss]]></link>
  <description>
    <![CDATA[I've recently been working on a project with Formalicious where the client requested dynamically-filled select inputs. This is pretty straightforward to set up, as shown in this tutorial.]]>
  </description>
  <pubDate>Sat, 29 Apr 2017 16:16:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://modx.today/posts/2017/04/custom-field-types-in-formalicious</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
<item>
  <title>A look at PHP Usage with MODX Revolution</title>
  <link><![CDATA[https://modx.today/posts/2016/12/a-look-at-php-usage-with-modx-revolution?utm_source=rss]]></link>
  <description>
    <![CDATA[The PHP Version usage of MODX sites can be tracked by the Package Providers used. modmore offers such a package provider for our free and premium extras, and in this article we've taken our sample of 3565 MODX sites running v2.4 or up, and summarised the PHP version they use by minor version.]]>
  </description>
  <pubDate>Tue, 06 Dec 2016 16:34:00 -0600</pubDate>
  <guid isPermaLink="false">https://www.markhamstra.com/https://modx.today/posts/2016/12/a-look-at-php-usage-with-modx-revolution</guid>
  <dc:creator>
      Mark Hamstra
  </dc:creator>
</item>
</channel>
</rss>