<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="https://gmcgregor.ca/rss.xml" rel="self" type="application/rss+xml" />
<title>Graham McGregor&#039;s Writing</title>
<link>https://gmcgregor.ca/writing</link>
<description>Blog posts and other articles by Graham McGregor</description>
<language>en-us</language>
<copyright>All Materials Copyright Graham McGregor</copyright>
<webMaster>webmaster@gmcgregor.ca (Graham McGregor)</webMaster>
<docs>https://www.rssboard.org/rss-specification</docs>
<ttl>60</ttl>
<item>
<title><![CDATA[Git Branch Housekeeping]]></title>
<description><![CDATA[How to find branches in a local Git repo that are outdated or have been deleted on the server.]]></description>
<pubDate>Thu, 09 May 2019 20:47:01 GMT</pubDate>
<link>https://gmcgregor.ca/writing/2019-05-09-git-branch-housekeeping</link>
<guid>https://gmcgregor.ca/writing/2019-05-09-git-branch-housekeeping</guid>
</item>
<item>
<title><![CDATA[Why do S3 Buckets Return 403 for Not Found?]]></title>
<description><![CDATA[How to return appropriate HTTP status code, 404 Not Found, for objects in an AWS S3 bucket.]]></description>
<pubDate>Tue, 19 Mar 2019 03:38:17 GMT</pubDate>
<link>https://gmcgregor.ca/writing/2019-03-18-why-do-s3-buckets-return-403-for-not-found</link>
<guid>https://gmcgregor.ca/writing/2019-03-18-why-do-s3-buckets-return-403-for-not-found</guid>
</item>
<item>
<title><![CDATA[Inline Data With a Content Security Policy]]></title>
<description><![CDATA[How to implement a strong Content Security Policy (CSP) and still pass data from the server to the client without inline JavaScript, or needing the data to come from an API.]]></description>
<pubDate>Thu, 22 Feb 2018 00:00:00 GMT</pubDate>
<link>https://medium.com/@Graham42x/inline-data-with-a-content-security-policy-ab30dde2feb3</link>
<guid>https://medium.com/@Graham42x/inline-data-with-a-content-security-policy-ab30dde2feb3</guid>
</item>
</channel>
</rss>