<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Cpan on Hashbang.ca</title>
		<link>https://hashbang.ca/tag/cpan</link>
		<description>Recent content in Cpan 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/cpan/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 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>SSL security in HTTP::Tiny</title>
				<link>https://hashbang.ca/post/ssl-security-in-httptiny</link>
				<pubDate>Wed, 18 Apr 2012 16:47:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/ssl-security-in-httptiny/</guid>
				<description>&lt;p&gt;I was asked to add SSL support to a client library, while also moving from home-grown manual HTTP code to a proper module. &lt;a href=&#34;https://metacpan.org/module/HTTP::Tiny&#34;&gt;&lt;code&gt;HTTP::Tiny&lt;/code&gt;&lt;/a&gt; was ideal because it is pure-Perl, a core module since 5.14 (so it&amp;rsquo;ll be maintained), and it&amp;rsquo;s just one .pm file, making it easy to ship.&lt;/p&gt;&#xA;&lt;p&gt;An application server that supported SSL was provided for testing purposes, but the SSL certificate didn&amp;rsquo;t match the hostname &amp;ndash; &lt;code&gt;HTTP::Tiny&lt;/code&gt; correctly rejected connections. I needed to be able to control the settings sent to the underlying &lt;code&gt;IO::Socket::SSL&lt;/code&gt; object used for the encrypted connection so I could turn off security features for testing. As I worked on that, David Golden offered invaluable feedback, which greatly improved the design of the features added to &lt;code&gt;HTTP::Tiny&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;As of &lt;a href=&#34;https://metacpan.org/module/HTTP::Tiny#SSL-SUPPORT&#34;&gt;0.018&lt;/a&gt;, &lt;code&gt;HTTP::Tiny&lt;/code&gt; is more configurable, and has a simple interface for &lt;em&gt;easily&lt;/em&gt; making SSL connections more secure.&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Dist::Zilla::Plugin::Twitter gets an OAuth update</title>
				<link>https://hashbang.ca/post/distzillaplugintwitter-gets-an-oauth-update</link>
				<pubDate>Mon, 02 Apr 2012 15:04:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/distzillaplugintwitter-gets-an-oauth-update/</guid>
				<description>&lt;p&gt;My pluginbundle for &lt;a href=&#34;http://dzil.org&#34;&gt;&lt;code&gt;Dist::Zilla&lt;/code&gt;&lt;/a&gt; includes, among other things, the Twitter plugin so I can brag on Twitter every time I release a module. Mysteriously, it &lt;a href=&#34;https://rt.cpan.org/Public/Bug/Display.html?id=75995&#34;&gt;broke&lt;/a&gt; one day. Looking at the code, I realized that it was sending my username and password to authenticate. I remember being uneasy with that at the time I set it up, but I quickly forgot, and continued along blithely. &lt;a href=&#34;https://en.wikipedia.org/wiki/OAuth&#34;&gt;OAuth&lt;/a&gt; is an authorization standard that allows users to avoid giving their username &amp;amp; password to a potentially-untrusted application. Using OAuth has been requested &lt;a href=&#34;https://rt.cpan.org/Public/Bug/Display.html?id=72918&#34;&gt;since 2011&lt;/a&gt;, and the &lt;code&gt;401 Unauthorized&lt;/code&gt; error I got indicates that now it is mandatory for Twitter.&lt;/p&gt;&#xA;&lt;p&gt;David Golden offered to let me maintain the module, and I&amp;rsquo;m a sucker, so&amp;hellip; :D&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>How do you watch CPAN modules of interest?</title>
				<link>https://hashbang.ca/post/how-do-you-watch-cpan-modules-of-interest</link>
				<pubDate>Wed, 06 Apr 2011 00:05:00 -0400</pubDate>
				<guid>https://hashbang.ca/post/how-do-you-watch-cpan-modules-of-interest/</guid>
				<description>&lt;p&gt;This post is really a request for advice. I&amp;rsquo;m sure there must be a solution out there, I just haven&amp;rsquo;t found it yet.&lt;/p&gt;&#xA;&lt;p&gt;Imagine you have a module that pulls in a bunch of prerequisites. You want to watch those prerequisites (and maybe all the way down the the dependency tree) for test failures. Maybe you also want to be notified of new releases. You might even want to try &lt;a href=&#34;http://p3rl.org/CPAN::Changes&#34;&gt;extracting&lt;/a&gt; the most recent section of the changelog.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
