Sorry

This feed does not validate.

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://davorg.theplanetarium.org/atom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <feed xmlns="http://www.w3.org/2005/Atom">
  3.  <title>planet davorg</title>
  4.  <link rel="alternate" href="http://davorg.theplanetarium.org/" type="text/html"/>
  5.  <subtitle>Aggregating Dave's stuff</subtitle>
  6.  <author>
  7.    <name>Dave Cross</name>
  8.    <email>dave@dave.org.uk</email>
  9.  </author>
  10.  <updated>2014-09-30T05:05:26Z</updated>
  11.  <link rel="self" href="http://davorg.theplanetarium.org/" type="application/atom+xml"/>
  12.  <id>http://davorg.theplanetarium.org/</id>
  13.  <entry>
  14.    
  15.    <link rel="alternate" href="https://twitter.com/davorg/status/516666442960633856" type="text/html"/>
  16.    <content type="xhtml">
  17.      <div xmlns="http://www.w3.org/1999/xhtml">RT @perlfoundation: "The Perl Foundation to increase brand, marketing and PR" - http://t.co/F1ZiUGLlSb</div>
  18.    </content>
  19.    <updated>2014-09-29T19:10:53Z</updated>
  20.  <title>twitter: RT @perlfoundation: "The Perl Foundation to increase brand, marketing and PR" - http://t.co/F1ZiUGLlSb</title></entry>
  21.  <entry>
  22.    
  23.    <link rel="alternate" href="https://twitter.com/davorg/status/516623020904185856" type="text/html"/>
  24.    <content type="xhtml">
  25.      <div xmlns="http://www.w3.org/1999/xhtml">"Do you know Gary Barlow, Joey Essex and Olly Murs on Twitter?" WTF @Twitter?</div>
  26.    </content>
  27.    <updated>2014-09-29T16:18:21Z</updated>
  28.  <title>twitter: "Do you know Gary Barlow, Joey Essex and Olly Murs on Twitter?" WTF @Twitter?</title></entry>
  29.  <entry>
  30.    
  31.    <link rel="alternate" href="https://twitter.com/davorg/status/516611094946013184" type="text/html"/>
  32.    <content type="xhtml">
  33.      <div xmlns="http://www.w3.org/1999/xhtml">RT @flossuk: We are running our perl courses with @davorg again, and it’s right after #LPW2014 so maybe combine the two? http://t.co/5zycE9…</div>
  34.    </content>
  35.    <updated>2014-09-29T15:30:57Z</updated>
  36.  <title>twitter: RT @flossuk: We are running our perl courses with @davorg again, and it’s right after #LPW2014 so maybe combine the two? http://t.co/5zycE9…</title></entry>
  37.  <entry>
  38.    
  39.    <link rel="alternate" href="https://twitter.com/davorg/status/516536025762766848" type="text/html"/>
  40.    <content type="xhtml">
  41.      <div xmlns="http://www.w3.org/1999/xhtml">RT @raganwald: Now THAT is more like it! http://t.co/mELMjkWLBQ</div>
  42.    </content>
  43.    <updated>2014-09-29T10:32:40Z</updated>
  44.  <title>twitter: RT @raganwald: Now THAT is more like it! http://t.co/mELMjkWLBQ</title></entry>
  45.  <entry>
  46.    
  47.    <link rel="alternate" href="https://twitter.com/davorg/status/516464076176621569" type="text/html"/>
  48.    <content type="xhtml">
  49.      <div xmlns="http://www.w3.org/1999/xhtml">I got : "You've got the Golden Touch!" (15/15! ) - Do you recognize these Obsolete Technologies? http://t.co/HHzkKUNTGD via @play_buzz</div>
  50.    </content>
  51.    <updated>2014-09-29T05:46:45Z</updated>
  52.  <title>twitter: I got : "You've got the Golden Touch!" (15/15! ) - Do you recognize these Obsolete Technologies? http://t.co/HHzkKUNTGD via @play_buzz</title></entry>
  53.  <entry>
  54.    <title>perl hacks: Perl’s Problems</title>
  55.    <link rel="alternate" href="http://feedproxy.google.com/~r/PerlHacks/~3/wrJC7RL8k9c/" type="text/html"/>
  56.    <content type="xhtml">
  57.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s been over six weeks since I wrote my blog post on <a href="http://perlhacks.com/2014/08/perl-usage/">Perl usage</a>. I really didn’t mean to leave it so long to write the follow-up. But real life intervened and I haven’t had time for much blogging. That’s still the case (I should be writing a talk right now) but I thought it was worth jotting down some quick notes about what I think is causing Perl’s decline.</p>
  58. <h2>Reputation</h2>
  59. <p>We have a lot to thank Matt Wright for. And I don’t mean that sarcastically. A lot of the popularity of Perl in the mid-90s stems directly from people like Matt and Selena Sol making their collections  of CGI programs available really early on. The popularity of their programs made Perl the de-facto standard for CGI programming.</p>
  60. <p>But that was a double-edged sword. People searching the web for examples of CGI programming found Matt or Selena’s code and assumed they represented best practice. Which, of course, they didn’t. While people were blithely copying Matt’s programming style, good Perl programmers were using CGI.pm to parse their incoming parameters and separating their HTML generation out into templates.</p>
  61. <p>In my previous post, I mentioned that fifteen or twenty years ago Perl was the programming language of choice for internet start-ups. That’s true, but a lot of the code written at that time was in the Matt Wright style. Matt’s style just about works for a guestbook or a form mailer. But when you try to build a business on top of code like that, it quickly becomes obvious that it’s an unmaintainable mess.</p>
  62. <p>Many of the technical architects and CTOs who are making decisions about technology in companies today are the programmers who spent too many late nights battling those balls of mud in the 1990s. They were never really Perl programmers, they were only using it because it was fashionable, and they haven’t been keeping up with recent advances in Perl so it’s not surprising that they often choose to avoid using Perl.</p>
  63. <h2>Complexity</h2>
  64. <p>A lot of Perl’s reputation as executable line noise is completely unwarranted. The people who were writing those 1990s balls of mud were under such pressure to deliver that they would have almost certainly delivered something just as unmaintainable whatever language they were using. But some of that reputation is fair. I’ve been teaching Perl for almost fifteen years and I know that there are some parts of Perl that people find confusing. Here are some examples:</p>
  65. <p><em>Sigils</em> – I can explain things like <tt>@array</tt>, <tt>$array[$key]</tt> and even <tt>@array[@keys]</tt> to people. And most of them get it. But it takes them a while. And then it all goes to pieces again when I have to explain the difference between <tt>$array[$key]</tt> and <tt>$array-&gt;[$key]</tt>.</p>
  66. <p><em>Context</em> – Does any other programming language have the concept of context? Yes, when used correctly it’s a powerful tool. But it’s hard to explain and a good source of hard-to-find bugs. Can anyone honestly say that they haven’t been bitten by a context bug at some point in the last years?</p>
  67. <p><em>Data Structures</em> – Is the difference between arrays and array references really necessary? Think of all the complexity that is added because you can’t just pass arrays and hashes into subroutines without being bitten by list flattening. As experienced Perl programmers we know the problems and our brains are hard-wired to work around it. But other languages treat all aggregate data structures as references and it all becomes a lot easier.</p>
  68. <p>I know that each of these features (and half a dozen other examples I could list) makes Perl a richer and more expressive language. But this comes at the cost of learnability and readability. Perhaps that trade-off once seemed like a good idea. When you’re trying to encourage people to look at your language then the advantages seem less obvious.</p>
  69. <p>Of course, none of these features can be changed as they would break pretty much every existing Perl codebase. Which would be a terrible idea. But you can get away with a lot more breakage when you increase your major version number. Which Perl hasn’t been able to do for fourteen years.</p>
  70. <h2>Perl 6</h2>
  71. <p>I need to be clear here. I think that Perl 6 looks like a great language. I am really looking forward to using on production systems. And it looks like the current Perl 6 team are doing great work towards making that possible. In fact I think that our best approach to reviving Perl’s fortunes is to get a production-ready version of Perl 6 out and to make a big noise about that.</p>
  72. <p>However, that name has been a big problem.</p>
  73. <p>Looking from outside the Perl echo chamber, it’s easy to believe that Perl hasn’t had a major release for twenty years. And that can probably explain a lot of Perl’s current problems.</p>
  74. <p>I know that people who believe that are wrong. The current version of Perl (5.20.1 as I write this) is a lot different to the version that was current when Perl 6 was first announced (which was 5.6.0, I think). Perl has gone through huge changes in the last fourteen years. But the version number hides that.</p>
  75. <p>I also know that we no longer tell people that Perl 6 is the next version of Perl. The <a href="http://en.wikipedia.org/wiki/Perl_6">Wikipedia page</a> makes it clear in its first sentence that “Perl 6 is a member of the <a title="Perl" href="http://en.wikipedia.org/wiki/Perl">Perl</a> family of <a title="Programming language" href="http://en.wikipedia.org/wiki/Programming_language">programming languages</a>“. So why do people continue to think it’s the next version of Perl? Well, probably because people assume that they know how software version numbers work and don’t bother to check the web site to see it a particular project has changed the standard meaning that has worked well for decades.</p>
  76. <p>So Perl 6 has been simultaneously both good and bad for Perl. Good because a lot of Perl 6 ideas have been backported into Perl 5. But bad because Perl 5 has been unable to change its major version number in order to advertise these improvements to the wider software-using world.</p>
  77. <p>Nothing can be done about this now. The damage is done. As I said at the start of this section, it’s likely that the only thing we can do is to bet heavily on Perl 6 and get it out as soon as possible. Perl 5 will continue to exist. People will continue to maintain and improve it. Some companies will continue to use it. But it’s usage will continue to fall. I really think it’s too late to do anything about that.</p>
  78. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/09/perls-problems/">Perl’s Problems</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  79. <img src="http://feeds.feedburner.com/~r/PerlHacks/~4/wrJC7RL8k9c" height="1" width="1"/></div>
  80.    </content>
  81.    <summary type="xhtml">
  82.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s been over six weeks since I wrote my blog post on Perl usage. I really didn’t mean to leave it so long to write the follow-up. But real life intervened and I haven’t had time for much blogging. That’s still the case (I should be writing a talk right now) but I thought it […]</p>
  83. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/09/perls-problems/">Perl’s Problems</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  84. </div>
  85.    </summary>
  86.    <author>
  87.      <name>Dave Cross</name>
  88.    </author>
  89.    <id>http://perlhacks.com/?p=972</id>
  90.    <published>2014-09-28T10:22:36Z</published>
  91.    <updated>2014-09-28T10:22:36Z</updated>
  92.    <category term="Programming"/>
  93.    <category term="perl"/>
  94.    <category term="problems"/>
  95.    <category term="usage"/>
  96.  </entry>
  97.  <entry>
  98.    <title>last.fm: Polly Scattergood – Disco Damaged Kid</title>
  99.    <link rel="alternate" href="http://www.last.fm/music/Polly+Scattergood/_/Disco+Damaged+Kid" type="text/html"/>
  100.    <content type="xhtml">
  101.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Polly+Scattergood</div>
  102.    </content>
  103.    <id>http://www.last.fm/user/davorg#1411813493</id>
  104.    <published>2014-09-27T10:24:53Z</published>
  105.    <updated>2014-09-27T10:24:53Z</updated>
  106.  </entry>
  107.  <entry>
  108.    <title>last.fm: The Fall – Jawbone + the Air-Rifle (Peel Sessions 24/9/80) [Bonus Track]</title>
  109.    <link rel="alternate" href="http://www.last.fm/music/The+Fall/_/Jawbone+%252B+the+Air-Rifle+(Peel+Sessions+24%2F9%2F80)+%5BBonus+Track%5D" type="text/html"/>
  110.    <content type="xhtml">
  111.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Fall</div>
  112.    </content>
  113.    <id>http://www.last.fm/user/davorg#1411813267</id>
  114.    <published>2014-09-27T10:21:07Z</published>
  115.    <updated>2014-09-27T10:21:07Z</updated>
  116.  </entry>
  117.  <entry>
  118.    <title>last.fm: The Fall – Jawbone + the Air-Rifle (Peel Sessions 24/9/80) [Bonus Track]</title>
  119.    <link rel="alternate" href="http://www.last.fm/music/The+Fall/_/Jawbone+%252B+the+Air-Rifle+(Peel+Sessions+24%2F9%2F80)+%5BBonus+Track%5D" type="text/html"/>
  120.    <content type="xhtml">
  121.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Fall</div>
  122.    </content>
  123.    <id>http://www.last.fm/user/davorg#1411813263</id>
  124.    <published>2014-09-27T10:21:03Z</published>
  125.    <updated>2014-09-27T10:21:03Z</updated>
  126.  </entry>
  127.  <entry>
  128.    <title>last.fm: Ani DiFranco – 32 Flavors</title>
  129.    <link rel="alternate" href="http://www.last.fm/music/Ani+DiFranco/_/32+Flavors" type="text/html"/>
  130.    <content type="xhtml">
  131.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Ani+DiFranco</div>
  132.    </content>
  133.    <id>http://www.last.fm/user/davorg#1411812900</id>
  134.    <published>2014-09-27T10:15:00Z</published>
  135.    <updated>2014-09-27T10:15:00Z</updated>
  136.  </entry>
  137.  <entry>
  138.    <title>last.fm: Kirsty MacColl – Mambo de la Luna (single edit)</title>
  139.    <link rel="alternate" href="http://www.last.fm/music/Kirsty+MacColl/_/Mambo+de+la+Luna+(single+edit)" type="text/html"/>
  140.    <content type="xhtml">
  141.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Kirsty+MacColl</div>
  142.    </content>
  143.    <id>http://www.last.fm/user/davorg#1411812683</id>
  144.    <published>2014-09-27T10:11:23Z</published>
  145.    <updated>2014-09-27T10:11:23Z</updated>
  146.  </entry>
  147.  <entry xmlns:media="http://search.yahoo.com/mrss/">
  148.    <id>tag:github.com,2008:ForkEvent/2310437976</id>
  149.    <published>2014-09-26T13:18:58Z</published>
  150.    <updated>2014-09-26T13:18:58Z</updated>
  151.    <link type="text/html" rel="alternate" href="https://github.com/davorg/perlweb"/>
  152.    
  153.    <author>
  154.      <name>davorg</name>
  155.      <email>dave@perlhacks.com</email>
  156.      <uri>https://github.com/davorg</uri>
  157.    </author>
  158.    <media:thumbnail height="30" width="30" url="https://avatars0.githubusercontent.com/u/24642?v=2&amp;s=30"/>
  159.    <content type="html">&lt;!-- fork --&gt;
  160. &lt;div class="simple"&gt;
  161.  &lt;span class="octicon octicon-git-branch"&gt;&lt;/span&gt;
  162.  
  163.  &lt;div class="title"&gt;
  164.    &lt;a href="https://github.com/davorg"&gt;davorg&lt;/a&gt; &lt;span&gt;forked&lt;/span&gt; &lt;a href="https://github.com/perlorg/perlweb" class="css-truncate css-truncate-target"&gt;perlorg/perlweb&lt;/a&gt; to &lt;a href="https://github.com/davorg/perlweb" class="css-truncate css-truncate-target" title="davorg/perlweb"&gt;davorg/perlweb&lt;/a&gt;
  165.  &lt;/div&gt;
  166.  
  167.  &lt;div class="time"&gt;
  168.    &lt;time datetime="2014-09-26T13:18:58Z" is="relative-time"&gt;September 26, 2014&lt;/time&gt;
  169.  &lt;/div&gt;
  170. &lt;/div&gt;
  171. </content>
  172.  <title>github: davorg forked perlorg/perlweb to davorg/perlweb</title></entry>
  173.  <entry>
  174.    <title>perl hacks: “I Do Not Want To Use Any Modules”</title>
  175.    <link rel="alternate" href="http://feedproxy.google.com/~r/PerlHacks/~3/Cmwx2hfd9ik/" type="text/html"/>
  176.    <content type="xhtml">
  177.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Almost every day on the Perl groups on LinkedIn (or Facebook, or StackOverflow, or somewhere like that) I see a question that includes the restriction “I do not want to use any modules”.</p>
  178. <p>There was one on LinkedIn yesterday. He wanted to create a MIME message to pass to sendmail, but he didn’t want to install any modules. Because “getting a module installed will have to go though a long long process of approvals”.</p>
  179. <p>And I understand that. I really do. We’ve all seen places where getting new software installed is a problem. But I see that problem as a bug in the development process. A bug that needs to be fixed before anything can get done in a reasonable manner. Here’s what I’ve just written in reply:</p>
  180. <blockquote><p>Of course it can be achieved without modules. Just create an email in the correct format and pass it to sendmail.</p>
  181. <p>Ah, but what’s the right format? Well, that is (of course) the tricky bit. I have no idea what the correct format is. Oh, I could Google a bit and come up with some ideas. I might even find the RFC that defines the MIME format. And then I’d be able to knock up some code that created something that looked like it would work. But would I be sure that it works? In every case? With all the weird corner-cases that people might throw at it?</p>
  182. <p>This is where CPAN modules come in handy. You’re using someone else’s knowledge. Someone who is (hopefully) an expert in the field. And because modules are used by lots of people, bugs get found and fixed.</p>
  183. <p>A lot of modern Perl programming is about choosing the right set of CPAN modules and plumbing them together. That’s what makes Perl so powerful. That’s what makes Perl programmers so efficient. We’re standing on the shoulders of giants and re-using other people’s code.</p>
  184. <p>If you’re not going to use CPAN then you might as well use shell-scripting or awk.</p>
  185. <p>If you’re in a situation where getting CPAN modules installed is hard, then fixing that problem should be your first priority. Because that’s a big impediment to your Perl programming. And investing time in fixing that will be massively beneficial to you in a very short amount of time.</p></blockquote>
  186. <p>The obvious solution is to install your own module tree (alongside your own Perl) as part of your application. But that might be overkill in some situations, so you could also consider using the system Perl and asking your sysadmin to <a href="http://perlhacks.com/2014/03/installing-modules/">install packages from your distribution’s repositories</a>. Of course, that might need a change in process. But it’s a change that is well worth making; a change that will improve your (programming) life immensely.</p>
  187. <p><strong>Update:</strong> Some very interesting discussion about this <a href="http://www.reddit.com/r/perl/comments/2h1z7i/i_do_not_want_to_use_any_modules/">over on Reddit</a>.</p>
  188. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/09/want-use-modules/">“I Do Not Want To Use Any Modules”</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  189. <img src="http://feeds.feedburner.com/~r/PerlHacks/~4/Cmwx2hfd9ik" height="1" width="1"/></div>
  190.    </content>
  191.    <summary type="xhtml">
  192.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Almost every day on the Perl groups on LinkedIn (or Facebook, or StackOverflow, or somewhere like that) I see a question that includes the restriction “I do not want to use any modules”. There was one on LinkedIn yesterday. He wanted to create a MIME message to pass to sendmail, but he didn’t want to install […]</p>
  193. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/09/want-use-modules/">“I Do Not Want To Use Any Modules”</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  194. </div>
  195.    </summary>
  196.    <author>
  197.      <name>Dave Cross</name>
  198.    </author>
  199.    <id>http://perlhacks.com/?p=967</id>
  200.    <published>2014-09-21T10:33:48Z</published>
  201.    <updated>2014-09-21T10:33:48Z</updated>
  202.    <category term="Programming"/>
  203.    <category term="cpan"/>
  204.    <category term="programming"/>
  205.  </entry>
  206.  <entry xmlns:media="http://search.yahoo.com/mrss/">
  207.    <id>tag:github.com,2008:PushEvent/2299660463</id>
  208.    <published>2014-09-21T10:08:44Z</published>
  209.    <updated>2014-09-21T10:08:44Z</updated>
  210.    <link type="text/html" rel="alternate" href="https://github.com/perl-doc-cats/perlfaq/compare/6c677dd240...6e4d639f83"/>
  211.    
  212.    <author>
  213.      <name>davorg</name>
  214.      <email>dave@perlhacks.com</email>
  215.      <uri>https://github.com/davorg</uri>
  216.    </author>
  217.    <media:thumbnail height="30" width="30" url="https://avatars0.githubusercontent.com/u/24642?v=2&amp;s=30"/>
  218.    <content type="html">&lt;!-- push --&gt;
  219. &lt;span class="mega-octicon octicon-git-commit"&gt;&lt;/span&gt;
  220.  
  221. &lt;div class="time"&gt;
  222.  &lt;time datetime="2014-09-21T10:08:44Z" is="relative-time"&gt;September 21, 2014&lt;/time&gt;
  223. &lt;/div&gt;
  224.  
  225. &lt;div class="title"&gt;
  226.  &lt;a href="https://github.com/davorg"&gt;davorg&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to &lt;a href="/perl-doc-cats/perlfaq/tree/master"&gt;master&lt;/a&gt; at &lt;a href="https://github.com/perl-doc-cats/perlfaq" class="css-truncate css-truncate-target"&gt;perl-doc-cats/perlfaq&lt;/a&gt;
  227. &lt;/div&gt;
  228.  
  229. &lt;div class="details"&gt;
  230.  &lt;a href="https://github.com/davorg"&gt;&lt;img alt="Dave Cross" class="gravatar" data-user="24642" height="30" src="https://avatars1.githubusercontent.com/u/24642?v=2&amp;amp;s=60" width="30" /&gt;&lt;/a&gt;
  231.  
  232.    &lt;div class="commits "&gt;
  233.      &lt;ul&gt;
  234.        &lt;li&gt;
  235.          &lt;span title="davorg"&gt;
  236.            &lt;img alt="Dave Cross" data-user="24642" height="16" src="https://avatars0.githubusercontent.com/u/24642?v=2&amp;amp;s=32" width="16" /&gt;
  237.          &lt;/span&gt;
  238.          &lt;code&gt;&lt;a href="/perl-doc-cats/perlfaq/commit/6e4d639f834289be830fccd067c07be0b3f756fc"&gt;6e4d639&lt;/a&gt;&lt;/code&gt;
  239.          &lt;div class="message"&gt;
  240.            &lt;blockquote&gt;
  241.              Merge pull request #50 from darfich/master
  242.            &lt;/blockquote&gt;
  243.          &lt;/div&gt;
  244.        &lt;/li&gt;
  245.        &lt;li&gt;
  246.          &lt;span title="darfich"&gt;
  247.            &lt;img alt="darfich" data-user="8607585" height="16" src="https://avatars1.githubusercontent.com/u/8607585?v=2&amp;amp;s=32" width="16" /&gt;
  248.          &lt;/span&gt;
  249.          &lt;code&gt;&lt;a href="/perl-doc-cats/perlfaq/commit/e9829dc0f0d1bdcdd09f3399a6f5d475f559e78a"&gt;e9829dc&lt;/a&gt;&lt;/code&gt;
  250.          &lt;div class="message"&gt;
  251.            &lt;blockquote&gt;
  252.              Update perlfaq6.pod
  253.            &lt;/blockquote&gt;
  254.          &lt;/div&gt;
  255.        &lt;/li&gt;
  256.        &lt;li class="more"&gt;&lt;a href="https://github.com/perl-doc-cats/perlfaq/compare/6c677dd240...6e4d639f83"&gt;View comparison for these 2 commits &amp;raquo;&lt;/a&gt;&lt;/li&gt;
  257.      &lt;/ul&gt;
  258.    &lt;/div&gt;
  259. &lt;/div&gt;
  260. </content>
  261.  <title>github: davorg pushed to master at perl-doc-cats/perlfaq</title></entry>
  262.  <entry xmlns:media="http://search.yahoo.com/mrss/">
  263.    <id>tag:github.com,2008:PullRequestEvent/2299660462</id>
  264.    <published>2014-09-21T10:08:44Z</published>
  265.    <updated>2014-09-21T10:08:44Z</updated>
  266.    <link type="text/html" rel="alternate" href="https://github.com/perl-doc-cats/perlfaq/pull/50"/>
  267.    
  268.    <author>
  269.      <name>davorg</name>
  270.      <email>dave@perlhacks.com</email>
  271.      <uri>https://github.com/davorg</uri>
  272.    </author>
  273.    <media:thumbnail height="30" width="30" url="https://avatars0.githubusercontent.com/u/24642?v=2&amp;s=30"/>
  274.    <content type="html">&lt;!-- pull_request --&gt;
  275. &lt;span class="mega-octicon octicon-git-pull-request"&gt;&lt;/span&gt;
  276.  
  277. &lt;div class="time"&gt;
  278.  &lt;time datetime="2014-09-21T10:08:44Z" is="relative-time"&gt;September 21, 2014&lt;/time&gt;
  279. &lt;/div&gt;
  280.  
  281. &lt;div class="title"&gt;
  282.  &lt;a href="https://github.com/davorg"&gt;davorg&lt;/a&gt; &lt;span&gt;merged&lt;/span&gt; pull request &lt;a href="https://github.com/perl-doc-cats/perlfaq/pull/50"&gt;perl-doc-cats/perlfaq#50&lt;/a&gt;
  283. &lt;/div&gt;
  284.  
  285. &lt;div class="details"&gt;
  286.  &lt;a href="https://github.com/davorg"&gt;&lt;img alt="Dave Cross" class="gravatar" data-user="24642" height="30" src="https://avatars1.githubusercontent.com/u/24642?v=2&amp;amp;s=60" width="30" /&gt;&lt;/a&gt;
  287.  &lt;div class="message"&gt;
  288.    &lt;blockquote&gt;Update perlfaq6.pod&lt;/blockquote&gt;
  289.      &lt;div class="pull-info"&gt;
  290.        &lt;span class="octicon octicon-git-commit"&gt;&lt;/span&gt;
  291.        &lt;em&gt;1&lt;/em&gt; commit with
  292.        &lt;em&gt;2&lt;/em&gt; additions and
  293.        &lt;em&gt;2&lt;/em&gt; deletions
  294.      &lt;/div&gt;
  295.  &lt;/div&gt;
  296. &lt;/div&gt;
  297. </content>
  298.  <title>github: davorg merged pull request perl-doc-cats/perlfaq#50</title></entry>
  299.  <entry xmlns:media="http://search.yahoo.com/mrss/">
  300.    <id>tag:github.com,2008:CommitCommentEvent/2289325007</id>
  301.    <published>2014-09-15T20:44:00Z</published>
  302.    <updated>2014-09-15T20:44:00Z</updated>
  303.    <link type="text/html" rel="alternate" href="https://github.com/szabgab/www-shorten/commit/d8019e518b8f3fe4264ab0dbdcbef3bbf874adf2#-P0"/>
  304.    
  305.    <author>
  306.      <name>davorg</name>
  307.      <email>dave@perlhacks.com</email>
  308.      <uri>https://github.com/davorg</uri>
  309.    </author>
  310.    <media:thumbnail height="30" width="30" url="https://avatars0.githubusercontent.com/u/24642?v=2&amp;s=30"/>
  311.    <content type="html">&lt;!-- commit_comment --&gt;
  312. &lt;span class="mega-octicon octicon-comment-discussion"&gt;&lt;/span&gt;
  313.  
  314. &lt;div class="time"&gt;
  315.  &lt;time datetime="2014-09-15T20:44:00Z" is="relative-time"&gt;September 15, 2014&lt;/time&gt;
  316. &lt;/div&gt;
  317.  
  318. &lt;div class="title"&gt;
  319.  &lt;a href="https://github.com/davorg"&gt;davorg&lt;/a&gt; &lt;span&gt;commented&lt;/span&gt; on commit &lt;a href="https://github.com/szabgab/www-shorten/commit/d8019e518b8f3fe4264ab0dbdcbef3bbf874adf2#commitcomment-7791176"&gt;szabgab/www-shorten@d8019e518b&lt;/a&gt;
  320. &lt;/div&gt;
  321.  
  322. &lt;div class="details"&gt;
  323.  &lt;a href="https://github.com/davorg"&gt;&lt;img alt="Dave Cross" class="gravatar" data-user="24642" height="30" src="https://avatars1.githubusercontent.com/u/24642?v=2&amp;amp;s=60" width="30" /&gt;&lt;/a&gt;
  324.  &lt;div class="message markdown-body"&gt;
  325.    &lt;blockquote&gt;
  326.      &lt;p&gt;The comment has since been removed.&lt;/p&gt;
  327.    &lt;/blockquote&gt;
  328.  &lt;/div&gt;
  329. &lt;/div&gt;
  330. </content>
  331.  <title>github: davorg commented on commit szabgab/www-shorten@d8019e518b</title></entry>
  332.  <entry>
  333. <id>tag:search.cpan.org,2014-09-15:DAVECROSS:WWW-Shorten-3.06</id>
  334.  
  335. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/WWW-Shorten-3.06/"/>
  336. <updated>2014-09-15T20:43:08Z</updated>
  337. <author>
  338. <name>Dave Cross</name>
  339. <uri>http://search.cpan.org/~davecross/</uri>
  340. </author>
  341. <content>
  342. Interface to URL shortening sites.
  343. </content>
  344. <title>cpan: WWW-Shorten-3.06</title></entry>
  345.  <entry xmlns:media="http://search.yahoo.com/mrss/">
  346.    <id>tag:github.com,2008:PushEvent/2289297855</id>
  347.    <published>2014-09-15T20:31:00Z</published>
  348.    <updated>2014-09-15T20:31:00Z</updated>
  349.    <link type="text/html" rel="alternate" href="https://github.com/davorg/www-shorten/compare/c811d01f2f...96dabb086e"/>
  350.    
  351.    <author>
  352.      <name>davorg</name>
  353.      <email>dave@perlhacks.com</email>
  354.      <uri>https://github.com/davorg</uri>
  355.    </author>
  356.    <media:thumbnail height="30" width="30" url="https://avatars0.githubusercontent.com/u/24642?v=2&amp;s=30"/>
  357.    <content type="html">&lt;!-- push --&gt;
  358. &lt;span class="mega-octicon octicon-git-commit"&gt;&lt;/span&gt;
  359.  
  360. &lt;div class="time"&gt;
  361.  &lt;time datetime="2014-09-15T20:31:00Z" is="relative-time"&gt;September 15, 2014&lt;/time&gt;
  362. &lt;/div&gt;
  363.  
  364. &lt;div class="title"&gt;
  365.  &lt;a href="https://github.com/davorg"&gt;davorg&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to &lt;a href="/davorg/www-shorten/tree/master"&gt;master&lt;/a&gt; at &lt;a href="https://github.com/davorg/www-shorten" class="css-truncate css-truncate-target"&gt;davorg/www-shorten&lt;/a&gt;
  366. &lt;/div&gt;
  367.  
  368. &lt;div class="details"&gt;
  369.  &lt;a href="https://github.com/davorg"&gt;&lt;img alt="Dave Cross" class="gravatar" data-user="24642" height="30" src="https://avatars1.githubusercontent.com/u/24642?v=2&amp;amp;s=60" width="30" /&gt;&lt;/a&gt;
  370.  
  371.    &lt;div class="commits pusher-is-only-committer"&gt;
  372.      &lt;ul&gt;
  373.        &lt;li&gt;
  374.          &lt;span title="davorg"&gt;
  375.            &lt;img alt="Dave Cross" data-user="24642" height="16" src="https://avatars0.githubusercontent.com/u/24642?v=2&amp;amp;s=32" width="16" /&gt;
  376.          &lt;/span&gt;
  377.          &lt;code&gt;&lt;a href="/davorg/www-shorten/commit/96dabb086ea8cecbcef5e4bd3eff7853afe4b1fb"&gt;96dabb0&lt;/a&gt;&lt;/code&gt;
  378.          &lt;div class="message"&gt;
  379.            &lt;blockquote&gt;
  380.              Metamark is dead :-(
  381.            &lt;/blockquote&gt;
  382.          &lt;/div&gt;
  383.        &lt;/li&gt;
  384.      &lt;/ul&gt;
  385.    &lt;/div&gt;
  386. &lt;/div&gt;
  387. </content>
  388.  <title>github: davorg pushed to master at davorg/www-shorten</title></entry>
  389.  <entry>
  390.    <title>perl hacks: Perl Usage</title>
  391.    <link rel="alternate" href="http://feedproxy.google.com/~r/PerlHacks/~3/78miJBmZrVM/" type="text/html"/>
  392.    <content type="html">&lt;p&gt;In my last blog post, I &lt;a href="http://perlhacks.com/2014/07/programming-language-usage/"&gt;posted a graph&lt;/a&gt; showing that out of 135 companies at a recent &lt;a href="https://www.siliconmilkroundabout.com/"&gt;Silicon MilkRoundabout&lt;/a&gt; recruitment event, only one said that they were using Perl. That has led to some interesting discussions that I&amp;#8217;d like to address here.&lt;/p&gt;
  393. &lt;p&gt;I should make it clear that I wasn&amp;#8217;t presenting my graph as evidence that Perl is dead. Of course you can&amp;#8217;t leap to conclusions like that from what I learned at one recruitment event. I do, however, think that the situation is pretty grim.&lt;/p&gt;
  394. &lt;p&gt;But firstly, a few points that people made to me in response to my post.&lt;/p&gt;
  395. &lt;p&gt;&lt;strong&gt;We know that Perl isn&amp;#8217;t used in start-ups&lt;/strong&gt;&lt;br /&gt;
  396. Yes. I think we do know that. But I don&amp;#8217;t think we&amp;#8217;re as worried about that as we should be. Imagine if that job fair was held fifteen years ago. Or twenty years ago. Perl used to be the language of choice for internet start-ups. What happened to change that? (I have some theories that I&amp;#8217;ll cover in another blog post) Can this trend be reversed? (Honestly, I don&amp;#8217;t think so &amp;#8211; but I&amp;#8217;m open to arguments to the contrary)&lt;/p&gt;
  397. &lt;p&gt;&lt;strong&gt;Every programmer I know uses Perl in some way&lt;/strong&gt;&lt;br /&gt;
  398. I think this might have been true fifteen years ago, but it hasn&amp;#8217;t been the case for some time. If it&amp;#8217;s really true that all programmers that you know still use Perl, then I think you only know a really bizarre cross-section of programmers.&lt;/p&gt;
  399. &lt;p&gt;&lt;strong&gt;All companies use Perl, but the HR department or management often don&amp;#8217;t know&lt;/strong&gt;&lt;br /&gt;
  400. This is similar to the last point. And, again, I think it&amp;#8217;s something that used to be true and hasn&amp;#8217;t really been true this millennium. But there&amp;#8217;s also the idea of Perl being the programmers &amp;#8220;secret weapon&amp;#8221; that the suits don&amp;#8217;t know about. Even if it&amp;#8217;s true (and I don&amp;#8217;t think it is), then going underground like that is likely to be harmful to Perl&amp;#8217;s popularity in the long term.&lt;/p&gt;
  401. &lt;p&gt;I think we should stop fooling ourselves here. Perl usage has been declining for over a decade. To a first level of of approximation, Perl is already a dead language.&lt;/p&gt;
  402. &lt;p&gt;Of course, The Perl community has spent a lot of the last few years actively denying that. I&amp;#8217;ve been responsible for some of that drum-beating myself. But we need to accept that it&amp;#8217;s true. For most people outside of the Perl bubble, Perl is a language that they last considered using back in the last millennium.&lt;/p&gt;
  403. &lt;p&gt;So, if Perl is dead, why has everyone spent the last five years demonstrating that this isn&amp;#8217;t the case? Have they been lying to us? No, I don&amp;#8217;t think they have. I just think that they have been looking at the wrong measures of success. Let&amp;#8217;s look at some of the arguments I&amp;#8217;ve seen.&lt;/p&gt;
  404. &lt;p&gt;&lt;strong&gt;CPAN is growing faster than ever&lt;/strong&gt;&lt;br /&gt;
  405. &lt;strong&gt;We have regular releases of Perl&lt;/strong&gt;&lt;br /&gt;
  406. &lt;strong&gt;Some great new features have been added to Perl&lt;/strong&gt;&lt;br /&gt;
  407. These all essentially boil down to the same argument &amp;#8211; &amp;#8220;Perl isn&amp;#8217;t dead because some part of Perl (or its ecosystem) is improving&amp;#8221;. I can&amp;#8217;t argue with any of those facts, but do they really say anything useful about the long-term viability of the language. It&amp;#8217;s great that Perl is constantly improving, but unless the people who are currently ignoring Perl can be persuaded to investigate these improvements, then they do little or nothing to stop Perl&amp;#8217;s decline.&lt;/p&gt;
  408. &lt;p&gt;Moose might be the most powerful object system in the world. DBIx::Class might be the most flexible ORM available. Projects like these are great. But they don&amp;#8217;t seem to be doing much to bring new people to Perl.&lt;/p&gt;
  409. &lt;p&gt;&lt;strong&gt;There are more YAPCs and Perl Workshops every year&lt;/strong&gt;&lt;br /&gt;
  410. &lt;strong&gt;Perl Mongers groups are starting all the time&lt;/strong&gt;&lt;br /&gt;
  411. &lt;strong&gt;We get dozens of people to our meetings every month&lt;/strong&gt;&lt;br /&gt;
  412. These arguments all boil down to &amp;#8220;the Perl community is growing&amp;#8221;. Again, I can&amp;#8217;t argue with those facts (well, to be honest, I think the rate of Perl Monger group creation has slowed over the last ten years) but, again, I don&amp;#8217;t think they prove what their proponents think they prove.&lt;/p&gt;
  413. &lt;p&gt;There is a difference between the Perl community and Perl programmers. Everywhere that I work, I find people who I already know from the community. But I always find far more people who I don&amp;#8217;t know because they aren&amp;#8217;t at all engaged with the Perl community. And I think it&amp;#8217;s that large, untapped, number of non-community Perl programmers who make up the increased numbers of people attending meetings or conferences. This means that we are getting better at bringing our colleagues along to meetings. It doesn&amp;#8217;t mean that more people are using Perl.&lt;/p&gt;
  414. &lt;p&gt;&lt;strong&gt;The number of Perl jobs is rising&lt;/strong&gt;&lt;br /&gt;
  415. &lt;strong&gt;Our company can never find enough Perl programmers&lt;/strong&gt;&lt;br /&gt;
  416. &lt;strong&gt;We just started a major new project using Perl&lt;/strong&gt;&lt;br /&gt;
  417. Most of the companies who use Perl continue to use Perl. That&amp;#8217;s not really news. And some of those companies have grown really big and therefore need lots of Perl programmers to maintain and enhance their Perl programs. And that&amp;#8217;s great. But it&amp;#8217;s not really evidence of a grow in Perl usage.&lt;/p&gt;
  418. &lt;p&gt;Not all the companies who have historically used Perl continue to do so. Over the last five years I know of at least four big Perl-using companies in London who have started to move away from it for new development.&lt;/p&gt;
  419. &lt;p&gt;And one reason why people are always looking for Perl programmers is because many programmers have chosen to move away from Perl. I know plenty of people who were regulars at London Perl Mongers meetings ten to fifteen years ago but who haven&amp;#8217;t written a line of Perl for over five years. This means, of course, that there is more work to go round those of us who are left. I could probably go through to my retirement maintaining existing Perl codebases. Those of you who are younger than me might not be so lucky.&lt;/p&gt;
  420. &lt;p&gt;&amp;nbsp;&lt;/p&gt;
  421. &lt;p&gt;So, to summarise, people who say that Perl is thriving point to three things &amp;#8211; technical advances in Perl, the vibrant Perl community and the number of unfilled Perl jobs that always seem to be around. All of these things are great and are, of course, necessary for a living and growing language.&lt;/p&gt;
  422. &lt;p&gt;But they aren&amp;#8217;t sufficient. You also need people outside of the community to take notice. And that&amp;#8217;s not happening.&lt;/p&gt;
  423. &lt;p&gt;Ask yourself three questions.&lt;/p&gt;
  424. &lt;ol&gt;
  425. &lt;li&gt;When did you last read a book on general programming techniques that contained examples written in Perl?&lt;/li&gt;
  426. &lt;li&gt;When did you last read documentation for a web site&amp;#8217;s API that included examples written in Perl?&lt;/li&gt;
  427. &lt;li&gt;When did you last hear of a company using Perl that you didn&amp;#8217;t previously know about?&lt;/li&gt;
  428. &lt;/ol&gt;
  429. &lt;p&gt;This is why I published that graph a couple of weeks ago. Looking at that data, it really hit home to me just how badly we&amp;#8217;re doing.&lt;/p&gt;
  430. &lt;p&gt;I have a couple of theories about why most of the world started ignoring Perl. I&amp;#8217;ll get to those in my next blog posts. But, annoyingly, I don&amp;#8217;t have any good ideas about how we might reverse the situation.&lt;/p&gt;
  431. &lt;p&gt;To be honest, currently my best advice (and the course I&amp;#8217;ll be taking) is &amp;#8220;brush up your Javascript&amp;#8221;.&lt;/p&gt;
  432. &lt;p&gt;&amp;nbsp;&lt;/p&gt;
  433. &lt;p&gt;The post &lt;a rel="nofollow" href="http://perlhacks.com/2014/08/perl-usage/"&gt;Perl Usage&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://perlhacks.com"&gt;Perl Hacks&lt;/a&gt;.&lt;/p&gt;
  434. &lt;img src="http://feeds.feedburner.com/~r/PerlHacks/~4/78miJBmZrVM" height="1" width="1"/&gt;</content>
  435.    <summary type="xhtml">
  436.      <div xmlns="http://www.w3.org/1999/xhtml"><p>In my last blog post, I posted a graph showing that out of 135 companies at a recent Silicon MilkRoundabout recruitment event, only one said that they were using Perl. That has led to some interesting discussions that I’d like to address here. I should make it clear that I wasn’t presenting my graph as […]</p>
  437. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/08/perl-usage/">Perl Usage</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  438. </div>
  439.    </summary>
  440.    <author>
  441.      <name>Dave Cross</name>
  442.    </author>
  443.    <id>http://perlhacks.com/?p=953</id>
  444.    <published>2014-08-10T16:43:11Z</published>
  445.    <updated>2014-08-10T16:43:11Z</updated>
  446.    <category term="Programming"/>
  447.    <category term="perl"/>
  448.    <category term="usage"/>
  449.  </entry>
  450.  <entry>
  451.    <title>perl hacks: Programming Language Usage</title>
  452.    <link rel="alternate" href="http://feedproxy.google.com/~r/PerlHacks/~3/0wjjJKi1gjQ/" type="text/html"/>
  453.    <content type="xhtml">
  454.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Back in May, I spent an afternoon at <a href="https://www.siliconmilkroundabout.com/">Silicon MilkRoundabout</a>. Silicon MilkRoundabout is a recruitment fair for techies. It’s specifically aimed at people who want to work for start-ups around the Old Street area (although they aren’t particularly stringent about sticking to that – for example, the BBC were there).</p>
  455. <p>We were given a booklet containing details of all of the companies who were recruiting. Those details usually included information about the tech stack that the companies used.</p>
  456. <p>Over the weekend, I went through that booklet and listed the programming languages mentioned by the companies. The results speak for themselves.</p>
  457. <p>There were 135 companies at the event. About twenty of them unhelpfully listed their tech stack as “ask us for details”.</p>
  458. <p>Here’s the graph:<a href="http://perlhacks.com/wp-content/uploads/2014/07/graph.png"><img class="wp-image-949 size-full" src="http://perlhacks.com/wp-content/uploads/2014/07/graph.png" alt="Usage of Programming Languages by Companies at Silicon MilkRoundabout" width="600" height="500"/></a></p>
  459. <p style="text-align: center;"><em>Usage of Programming Languages by Companies at Silicon MilkRoundabout</em></p>
  460. <p>I’ll obviously have some more to say about this over the next few days. But I wanted to get the raw data out there as soon as possible.</p>
  461. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/07/programming-language-usage/">Programming Language Usage</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  462. <img src="http://feeds.feedburner.com/~r/PerlHacks/~4/0wjjJKi1gjQ" height="1" width="1"/></div>
  463.    </content>
  464.    <summary type="xhtml">
  465.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Back in May, I spent an afternoon at Silicon MilkRoundabout. Silicon MilkRoundabout is a recruitment fair for techies. It’s specifically aimed at people who want to work for start-ups around the Old Street area (although they aren’t particularly stringent about sticking to that – for example, the BBC were there). We were given a booklet […]</p>
  466. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/07/programming-language-usage/">Programming Language Usage</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  467. </div>
  468.    </summary>
  469.    <author>
  470.      <name>Dave Cross</name>
  471.    </author>
  472.    <id>http://perlhacks.com/?p=948</id>
  473.    <published>2014-07-28T12:36:21Z</published>
  474.    <updated>2014-07-28T12:36:21Z</updated>
  475.    <category term="Programming"/>
  476.    <category term="languages"/>
  477.    <category term="programming"/>
  478.    <category term="silicon milkroundabout"/>
  479.  </entry>
  480.  <entry>
  481.    <title>perl hacks: Github, Travis-CI and Perl</title>
  482.    <link rel="alternate" href="http://feedproxy.google.com/~r/PerlHacks/~3/uaTsBlyetHs/" type="text/html"/>
  483.    <content type="xhtml">
  484.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Last night we held a London Perl Mongers Technical Meeting. It was organised by <a href="https://twitter.com/virtualsue">Sue Spenc</a>e and the <a href="http://www.conwayhall.org.uk/">venue</a> was sponsored by <a href="https://twitter.com/PerlRick">Rick Deller</a> of <a href="http://www.eligo.co.uk/">Eligo</a>.</p>
  485. <p>Much fun was had and much knowledge was imparted. <a href="https://twitter.com/kaokun">Alex Balhatchet</a> spoke about <a href="https://metacpan.org/pod/Test::Kit">Test::Kit</a>. <a href="https://twitter.com/geekuni">Andrew Solomon</a> talked about training people in Perl. <a href="https://metacpan.org/author/DOMM">Thomas Klausner </a>introduced <a href="https://metacpan.org/release/OX">OX</a> and <a href="https://angularjs.org/">AngularJS</a>. And Mike Francis talked about using <a href="https://metacpan.org/pod/Web::Simple">Web::Simple</a> and <a href="https://metacpan.org/pod/Web::Machine">Web::Machine</a> to build a REST interface to a database – only to be told that Tim Bunce had just <a href="https://metacpan.org/release/WebAPI-DBIC">released a module</a> that solved all of his problems.</p>
  486. <p>Oh, and I wittered on a bit about using Perl with <a href="http://github.com/">Github</a> and <a href="http://travis-ci.org/">Travis-CI</a>. The slides are below.</p>
  487. <p><iframe style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/37351718" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
  488. <div style="margin-bottom: 5px;"><strong> <a title="Github, Travis-CI and Perl" href="https://www.slideshare.net/davorg/github-travisci-and-perl" target="_blank">Github, Travis-CI and Perl</a> </strong> from <strong><a href="http://www.slideshare.net/davorg" target="_blank">Dave Cross</a></strong></div>
  489. <p>Thanks to everyone for organising, speaking or just coming along.</p>
  490. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/07/github-travis-ci-perl/">Github, Travis-CI and Perl</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  491. <img src="http://feeds.feedburner.com/~r/PerlHacks/~4/uaTsBlyetHs" height="1" width="1"/></div>
  492.    </content>
  493.    <summary type="xhtml">
  494.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Last night we held a London Perl Mongers Technical Meeting. It was organised by Sue Spence and the venue was sponsored by Rick Deller of Eligo. Much fun was had and much knowledge was imparted. Alex Balhatchet spoke about Test::Kit. Andrew Solomon talked about training people in Perl. Thomas Klausner introduced OX and AngularJS. And […]</p>
  495. <p>The post <a rel="nofollow" href="http://perlhacks.com/2014/07/github-travis-ci-perl/">Github, Travis-CI and Perl</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  496. </div>
  497.    </summary>
  498.    <author>
  499.      <name>Dave Cross</name>
  500.    </author>
  501.    <id>http://perlhacks.com/?p=935</id>
  502.    <published>2014-07-25T16:14:39Z</published>
  503.    <updated>2014-07-25T16:14:39Z</updated>
  504.    <category term="Speaking"/>
  505.    <category term="continuous integration"/>
  506.    <category term="github"/>
  507.    <category term="london"/>
  508.    <category term="london.pm"/>
  509.    <category term="techmeet"/>
  510.    <category term="travis-ci"/>
  511.  </entry>
  512.  <entry>
  513.    <title>slideshare: Github, Travis-CI and Perl</title>
  514.    <link rel="alternate" href="http://www.slideshare.net/davorg/github-travisci-and-perl" type="text/html"/>
  515.    <content type="html">
  516.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/travis-ci-140725055617-phpapp02-thumbnail-2.jpg?cb=1406285843" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt; A quick introduction to using Github and Travis-CI to test Perl projects
  517.      </content>
  518.    <summary type="html">
  519.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/travis-ci-140725055617-phpapp02-thumbnail-2.jpg?cb=1406285843" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt; A quick introduction to using Github and Travis-CI to test Perl projects
  520.      </summary>
  521.    <author>
  522.      <name>davorg@slideshare.net(davorg)</name>
  523.    </author>
  524.    <id>http://www.slideshare.net/davorg/github-travisci-and-perl</id>
  525.    <published>2014-07-25T10:56:17Z</published>
  526.    <updated>2014-07-25T10:56:17Z</updated>
  527.  </entry>
  528.  <entry>
  529.    <title>davblog: First Direct Update</title>
  530.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/NJ-sXTgM-yo/first-direct-update.html" type="text/html"/>
  531.    <content type="html">&lt;p&gt;Earlier in the week I talked about my concerns with &lt;a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html"&gt;First Direct&amp;#8217;s new password policy&lt;/a&gt;. I got an email from them about this, but it really wasn&amp;#8217;t very reassuring.&lt;/p&gt;
  532. &lt;p&gt;But I kept digging. And on Thursday I got a bit more information from &amp;#8220;^GD&amp;#8221; on the &lt;a href="http://twitter.com/firstdirecthelp"&gt;@firstdirecthelp&lt;/a&gt; twitter account. It still doesn&amp;#8217;t answer all of my questions, but I think we&amp;#8217;re a lot closer to the truth. Here&amp;#8217;s what I was told.&lt;/p&gt;
  533. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; Hi Dave, I can confirm that the password is encrypted. Security and safety will always be a priority for first direct. ^GD&lt;/p&gt;
  534. &lt;p&gt;&amp;mdash; first direct help (@firstdirecthelp) &lt;a href="https://twitter.com/firstdirecthelp/statuses/489774367379697664"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  535. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  536. &lt;p&gt;The obvious question that this raises is why, then, do they limit the length of the passwords. I asked and got this (three-tweet) reply.&lt;/p&gt;
  537. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; Hi Dave, it was a business decision to have the password length limited to a maximum of 10 characters. (1/3)^GD&lt;/p&gt;
  538. &lt;p&gt;&amp;mdash; first direct help (@firstdirecthelp) &lt;a href="https://twitter.com/firstdirecthelp/statuses/489778601366405121"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  539. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  540. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; Due to the restrictions within the app the risk from having a short password is minimal. (2/3)^GD&lt;/p&gt;
  541. &lt;p&gt;&amp;mdash; first direct help (@firstdirecthelp) &lt;a href="https://twitter.com/firstdirecthelp/statuses/489778808682074112"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  542. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  543. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt;  We always advise that the password chosen for the Digital Secure Key is unique.(3/3)^GD&lt;/p&gt;
  544. &lt;p&gt;&amp;mdash; first direct help (@firstdirecthelp) &lt;a href="https://twitter.com/firstdirecthelp/statuses/489778882107551744"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  545. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  546. &lt;p&gt;To which, I replied&lt;/p&gt;
  547. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/firstdirecthelp"&gt;@firstdirecthelp&lt;/a&gt; Thanks for the reply. But you&amp;#39;re aware (I assume) that this goes against current security best practice recommendations.&lt;/p&gt;
  548. &lt;p&gt;&amp;mdash; Dave Cross (@davorg) &lt;a href="https://twitter.com/davorg/statuses/489779600109891584"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  549. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  550. &lt;p&gt;And got the response&lt;/p&gt;
  551. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; You&amp;#39;re welcome, I will certainly pass your comments on to the development team.(1/2)^GD&lt;/p&gt;
  552. &lt;p&gt;&amp;mdash; first direct help (@firstdirecthelp) &lt;a href="https://twitter.com/firstdirecthelp/statuses/489781248789725184"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  553. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  554. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; As a business we are satisfied with the levels of security that we have in place. (2/2)^GD&lt;/p&gt;
  555. &lt;p&gt;&amp;mdash; first direct help (@firstdirecthelp) &lt;a href="https://twitter.com/firstdirecthelp/statuses/489781375147335680"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  556. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  557. &lt;p&gt;I thought that &amp;#8220;as a business we are satisfied&amp;#8221; rather missed the point. And told them so.&lt;/p&gt;
  558. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/firstdirecthelp"&gt;@firstdirecthelp&lt;/a&gt; Sure, but (importantly) it&amp;#39;s not just about the business being satisfied. You also need to convince your customers [1/2]&lt;/p&gt;
  559. &lt;p&gt;&amp;mdash; Dave Cross (@davorg) &lt;a href="https://twitter.com/davorg/statuses/489781791868616704"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  560. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  561. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/firstdirecthelp"&gt;@firstdirecthelp&lt;/a&gt; And some of those customers will be experts in computer security who will know about best practice. [2/2]&lt;/p&gt;
  562. &lt;p&gt;&amp;mdash; Dave Cross (@davorg) &lt;a href="https://twitter.com/davorg/statuses/489781998433882112"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  563. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  564. &lt;p&gt;I got no response to that. And &lt;a href="http://twitter.com/brunns"&gt;@brunns&lt;/a&gt; got no response when he tried to push them for more details about how the passwords are stored.&lt;/p&gt;
  565. &lt;blockquote class="twitter-tweet" width="550"&gt;&lt;p&gt;&lt;a href="https://twitter.com/firstdirecthelp"&gt;@firstdirecthelp&lt;/a&gt; &lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; Encrypted, or hashed?&lt;/p&gt;
  566. &lt;p&gt;&amp;mdash; Simon Brunning (@brunns) &lt;a href="https://twitter.com/brunns/statuses/489782060375371777"&gt;July 17, 2014&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  567. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
  568. &lt;p&gt;So, to summarise what we know.&lt;/p&gt;
  569. &lt;ul&gt;
  570. &lt;li&gt;First Direct say they store the passwords &amp;#8220;encrypted&amp;#8221;, but it&amp;#8217;s unclear exactly what that means&lt;/li&gt;
  571. &lt;li&gt;It was a business decision to limit the length of the passwords, but we don&amp;#8217;t know why that was considered a good idea&lt;/li&gt;
  572. &lt;li&gt;It still appears that First Direct believe that security by obscurity is an important part of their security policy&lt;/li&gt;
  573. &lt;/ul&gt;
  574. &lt;p&gt;I haven &amp;#8216;t really been reassured by this interaction with First Direct. I felt that the first customer support agent I talked to tried to fob me off with glib truisms, but &amp;#8220;^GD&amp;#8221; tried to actually get answers to my questions &amp;#8211; although his obvious lack of knowledge in this area meant that I didn&amp;#8217;t really get the detailed answers that I wanted.&lt;/p&gt;
  575. &lt;p&gt;I&amp;#8217;m not sure that there&amp;#8217;s anything to be achieved by pushing this any further.&lt;/p&gt;
  576. &lt;div class="crp_related"&gt;&lt;h3&gt;Related Posts:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/08/insurance-update.html"     class="crp_title"&gt;Insurance Update&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/08/the-chances-of-anything-going-to-mars.html"     class="crp_title"&gt;The Chances of Anything Going to Mars&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2011/12/hitchens-last-laugh.html"     class="crp_title"&gt;Hitchens&amp;#8217; Last Laugh&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/08/gullible.html"     class="crp_title"&gt;Gullible&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html"     class="crp_title"&gt;First Direct Passwords&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2014/07/first-direct-update.html"&gt;First Direct Update&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  577. &lt;img src="http://feeds.feedburner.com/~r/realdavblog/~4/NJ-sXTgM-yo" height="1" width="1"/&gt;</content>
  578.    <summary type="html">&lt;p&gt;Earlier in the week I talked about my concerns with First Direct&amp;#8217;s new password policy. I got an email from them about this, but it really wasn&amp;#8217;t very reassuring. But I kept digging. And on Thursday I got a bit more information from &amp;#8220;^GD&amp;#8221; on the @firstdirecthelp twitter account. It still doesn&amp;#8217;t answer all of [&amp;#8230;]
  579. &lt;div class="crp_related"&gt;
  580. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  581. &lt;ul&gt;
  582. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/08/insurance-update.html"     class="crp_title"&gt;Insurance Update&lt;/a&gt;&lt;/li&gt;
  583. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/08/the-chances-of-anything-going-to-mars.html"     class="crp_title"&gt;The Chances of Anything Going to Mars&lt;/a&gt;&lt;/li&gt;
  584. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2011/12/hitchens-last-laugh.html"     class="crp_title"&gt;Hitchens&amp;#8217; Last Laugh&lt;/a&gt;&lt;/li&gt;
  585. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/08/gullible.html"     class="crp_title"&gt;Gullible&lt;/a&gt;&lt;/li&gt;
  586. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html"     class="crp_title"&gt;First Direct Passwords&lt;/a&gt;&lt;/li&gt;
  587. &lt;/ul&gt;
  588. &lt;div style="clear:both"&gt;&lt;/div&gt;
  589. &lt;/div&gt;
  590. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2014/07/first-direct-update.html"&gt;First Direct Update&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  591. </summary>
  592.    <author>
  593.      <name>Dave Cross</name>
  594.    </author>
  595.    <id>http://blog.dave.org.uk/?p=3378</id>
  596.    <published>2014-07-19T11:02:07Z</published>
  597.    <updated>2014-07-19T11:02:07Z</updated>
  598.    <category term="tech"/>
  599.    <category term="banking"/>
  600.    <category term="first direct"/>
  601.    <category term="passwords"/>
  602.    <category term="security"/>
  603.  </entry>
  604.  <entry>
  605.    <title>davblog: First Direct Passwords</title>
  606.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/VLTr8OXPipg/first-direct-passwords.html" type="text/html"/>
  607.    <content type="xhtml">
  608.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I’ve been a happy customer of <a href="http://firstdirect.com/">First Direct</a> since a month or so after they opened, almost twenty-five years ago.</p>
  609. <p>One of the things I really liked about them was that they hadn’t followed other banks down the route of insisting that you carried a new code-generating dongle around so that you can log into their online banking. But, of course, it was only a matter of time before that changed.</p>
  610. <p>A couple of weeks ago I got a message from them telling me that <a href="http://www2.firstdirect.com/1/2/securekey">Secure Key</a> was on its way. And yesterday when I logged on to my account I was prompted to choose the flavour of secure key that I wanted to use. To be fair to them they have chosen a particularly non-intrusive implementation. Each customer gets three options:</p>
  611. <ol>
  612. <li>The traditional small dongle to carry around with you</li>
  613. <li>An extension to their smartphone app</li>
  614. <li>No secure key at all</li>
  615. </ol>
  616. <p>If you choose the final option then you only get restricted (basically read-only) access to your account through their web site. And if you choose one of the first two options, you can always log on without  the secure key and get the same restricted access.</p>
  617. <p>I chose the smartphone option. I already use their <a href="https://play.google.com/store/apps/details?id=com.firstdirect.bankingonthego">Android app</a> and I pretty much always have my phone with me.</p>
  618. <p>Usually when you log on to First Direct’s online banking you’re asked for three random characters from your password. Under the new system, that changes. I now need to log on to my smartphone app and that will give me a code to input into the web site. But to get into the smartphone app, I don’t use the old three character login. No, I needed to set up a new Digital Secure Password – which I can use for all of my interactions in this brave new world.</p>
  619. <p>And that’s where I think First Direct have slipped up a bit.</p>
  620. <p>When they asked my for my new password, they told me that it needed to be between 6 and 10 characters long.</p>
  621. <p>Those of you with any knowledge of computer security will understand why that worries me. For those who don’t, here’s a brief explanation.</p>
  622. <p>Somewhere in First Direct’s systems is a database that stores details of their customers. There will be a table containing users which has a row of data for each person who logs in to the service. That row will contain information like the users name, login name, email address and (crucially) password. So when someone tries to log in the system find the right row of data (based on the login name) and compares the password in that row with the password that has been entered on the login screen. If the two match then the person is let into the system.</p>
  623. <p>Whenever you have a database table, you have to worry about what would happen if someone managed to get hold of the contents of that table. Clearly it would be a disaster if someone got hold of this table of user data – as they would then have access to the usernames and passwords of all of the bank’s users.</p>
  624. <p>So, to prevent this being a problem, most rational database administrators will encrypt any passwords stored in database tables. And they will encrypt them in such a way that it is impossible (ok, that’s overstating the case a bit – but certainly really really difficult) to decrypt the data to get the passwords back. They will probably use something called a “one-way hash” to do this (if you’re wondering how you check a password when it’s encrypted like this then <a href="http://blog.dave.org.uk/2005/11/basic-password.html">I explain that here</a>).</p>
  625. <p>And these one-way hashes have an interesting property. No matter how long the input string is, the hashed value you get out at the other end is the same length. For example, if you’re using a hashing algorithm called MD5, every hash you get out will be thirty-two characters long.</p>
  626. <p>Therefore, if you’re using a hashing algorithm to protect your users’ passwords, it doesn’t matter how long the password is. Because the hashed version will always be the same length. You should therefore encourage your users to make their passwords as long as they want. You shouldn’t be imposing artificial length restrictions on them.</p>
  627. <p>And that’s why people who know about computer security will have all shared my concerns when I said that First Direct imposed a length restriction on these new passwords. The most common reason for a maximum length on a password is that the company is storing passwords as plain text in the database. With all the attendant problems that will cause if someone gets hold of the data.</p>
  628. <p>I’m not saying for sure that First Direct are doing that. I’m just saying that it’s a possibility and one that is very worrying. If that’s not the case I’d like to know what other reason they have for limiting the password’s length like this.</p>
  629. <p>I’ve send them a message asking for clarification. I’ll update this post with any response that I get.</p>
  630. <p><strong>Update (17 July):</strong> I got a reply from First Direct. This is what they said.</p>
  631. <blockquote><p>Thank you for your message dated 16-Jul-2014 regarding the security of your password for your Digital Secure Key.</p>
  632. <p>Ensuring the security of our systems is, and will continue to be, our number one priority.</p>
  633. <p>All the details that are sent to and from the system are encrypted using high encryption levels. As long as you keep your password secret, we can assure you that the system is secure. As you will appreciate, we cannot provide further details about the security measures used by Internet Banking, as we must protect the integrity of the system.</p>
  634. <p>Our customers also have a responsibility to ensure that they protect their computers by following our common-sense recommendations.  Further information can be found by selecting ‘security’ from the bottom menu on our website, <a href="http://www.firstdirect.com" target="_blank">www.firstdirect.com</a></p>
  635. <p>Please let us know if you have any further questions, and we’ll be happy to discuss.</p></blockquote>
  636. <p>Which isn’t very helpful and doesn’t address my question. I’ve tried explaining it to them again.</p>
  637. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2012/03/internet-security-rule-one.html" class="crp_title">Internet Security Rule One</a></li><li><a href="http://blog.dave.org.uk/2014/07/first-direct-update.html" class="crp_title">First Direct Update</a></li><li><a href="http://blog.dave.org.uk/2014/04/free-web-advice-marvel.html" class="crp_title">Free Web Advice: Marvel</a></li><li><a href="http://blog.dave.org.uk/2013/06/public-wifi.html" class="crp_title">Public Wifi</a></li><li><a href="http://blog.dave.org.uk/2011/12/lovefilm-and-silverlight.html" class="crp_title">LoveFilm and Silverlight</a></li></ul><div style="clear:both"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html">First Direct Passwords</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  638. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/VLTr8OXPipg" height="1" width="1"/></div>
  639.    </content>
  640.    <summary type="html">&lt;p&gt;I&amp;#8217;ve been a happy customer of First Direct since a month or so after they opened, almost twenty-five years ago. One of the things I really liked about them was that they hadn&amp;#8217;t followed other banks down the route of insisting that you carried a new code-generating dongle around so that you can log into [&amp;#8230;]
  641. &lt;div class="crp_related"&gt;
  642. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  643. &lt;ul&gt;
  644. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/03/internet-security-rule-one.html"     class="crp_title"&gt;Internet Security Rule One&lt;/a&gt;&lt;/li&gt;
  645. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/07/first-direct-update.html"     class="crp_title"&gt;First Direct Update&lt;/a&gt;&lt;/li&gt;
  646. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/04/free-web-advice-marvel.html"     class="crp_title"&gt;Free Web Advice: Marvel&lt;/a&gt;&lt;/li&gt;
  647. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/06/public-wifi.html"     class="crp_title"&gt;Public Wifi&lt;/a&gt;&lt;/li&gt;
  648. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2011/12/lovefilm-and-silverlight.html"     class="crp_title"&gt;LoveFilm and Silverlight&lt;/a&gt;&lt;/li&gt;
  649. &lt;/ul&gt;
  650. &lt;div style="clear:both"&gt;&lt;/div&gt;
  651. &lt;/div&gt;
  652. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html"&gt;First Direct Passwords&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  653. </summary>
  654.    <author>
  655.      <name>Dave Cross</name>
  656.    </author>
  657.    <id>http://blog.dave.org.uk/?p=3372</id>
  658.    <published>2014-07-16T12:37:36Z</published>
  659.    <updated>2014-07-16T12:37:36Z</updated>
  660.    <category term="tech"/>
  661.    <category term="banking"/>
  662.    <category term="first direct"/>
  663.    <category term="password"/>
  664.    <category term="security"/>
  665.  </entry>
  666.  <entry>
  667.    <title>slideshare: Object-Oriented Programming with Perl and Moose</title>
  668.    <link rel="alternate" href="http://www.slideshare.net/davorg/objectoriented-programming-with-perl-and-moose" type="text/html"/>
  669.    <content type="html">
  670.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/moose-140701053812-phpapp01-thumbnail-2.jpg?cb=1404211297" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt;
  671.      </content>
  672.    <summary type="html">
  673.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/moose-140701053812-phpapp01-thumbnail-2.jpg?cb=1404211297" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt;
  674.      </summary>
  675.    <author>
  676.      <name>davorg@slideshare.net(davorg)</name>
  677.    </author>
  678.    <id>http://www.slideshare.net/davorg/objectoriented-programming-with-perl-and-moose</id>
  679.    <published>2014-07-01T10:38:12Z</published>
  680.    <updated>2014-07-01T10:38:12Z</updated>
  681.  </entry>
  682.  <entry>
  683.    <title>slideshare: Database Programming with Perl and DBIx::Class</title>
  684.    <link rel="alternate" href="http://www.slideshare.net/davorg/database-programming-with-perl-and-dbixclass" type="text/html"/>
  685.    <content type="html">
  686.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/dbic-140701053449-phpapp01-thumbnail-2.jpg?cb=1404211152" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt;
  687.      </content>
  688.    <summary type="html">
  689.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/dbic-140701053449-phpapp01-thumbnail-2.jpg?cb=1404211152" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt;
  690.      </summary>
  691.    <author>
  692.      <name>davorg@slideshare.net(davorg)</name>
  693.    </author>
  694.    <id>http://www.slideshare.net/davorg/database-programming-with-perl-and-dbixclass</id>
  695.    <published>2014-07-01T10:34:49Z</published>
  696.    <updated>2014-07-01T10:34:49Z</updated>
  697.  </entry>
  698.  <entry>
  699.    <title>davblog: Sky Broadband Update</title>
  700.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/04sLV8hNcHw/sky-broadband-update.html" type="text/html"/>
  701.    <content type="xhtml">
  702.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s probably time for an update on my Sky Broadband situation.</p>
  703. <p>I <a href="http://blog.dave.org.uk/2014/04/sky-broadband.html">last wrote about Sky</a> on 16th April. That was the date of their second failed attempt to connect me to their broadband. It was the date that I decided to cancel my order and go elsewhere.</p>
  704. <p>First the good news. I was considering alternative providers. I called Virgin Media and they told me that I could have a 50 Mb fibre connection for an extra £2 a month over what I already paid them for my TV and phone package. And, as a bonus, they could do it within a week – still five days earlier than Sky had scheduled their third attempt at connecting me. I ordered it, they came round on the promised day and everything works fine. Very happy with them.</p>
  705. <p>This then left me trying to cancel my Sky order. This was slightly complicated by the fact that Sky had successfully connected my phone line[1] and also the fact that this phone line is used for monitoring my ADT burglar alarm. I didn’t want to cancel the phone line until ADT had moved the alarm monitoring to the Virgin Media line. I explained all this to Sky and  they seemed to understand.</p>
  706. <p>A chap called Andy in Sky’s customer service took it upon himself to take on the project. He took to phoning me weekly to ask me what was going on with ADT. To be honest, I got a bit lazy and it took me a while to get in touch with them.</p>
  707. <p>Then my hand was forced. In the middle of May, some error lights on the burglar alarm started flashing. I called ADT to see what the problem was and they told me that it looked like the phone line was dead. I plugged a phone into the line and was able to confirm this. The phone line had been disconnected – despite my explicit instructions about not doing that until I asked for it.</p>
  708. <p>I was a bit stuck. Calling Sky’s customer support from a non-Sky phone line is very expensive. And the only Sky line I had was dead. I tried their online chat facility, but the people you get on that are absolutely useless. Luckily Andy was due to call me for a progress update the following day, so I decided to wait for that.</p>
  709. <p>When Andy called, I asked why they have disconnected the phone. He said that they hadn’t. He ran a few line checks and discovered a fault on the line. He offered to send an engineer to fix it. I told him not to bother and to go ahead with the cancellation. He told me that there was some problem with their systems that prevented him cancelling the contract right away but that he had reported the bug and would let me know when it was fixed.</p>
  710. <p>Time passed.</p>
  711. <p>Earlier this week, I wondered idly what was going on so I sent them an email asking for a progress report. A woman called and told me that my records said that someone (Andy, I assume) had been checking into my account daily and leaving notes explaining why he still couldn’t close the account.</p>
  712. <p>The following day, I got a call from Andy (I’m sure it was pure coincidence that this was the day after I had chased them). He told me that the bug had been fixed and asked me to confirm that I still wanted to cancel the account. I told him that I did and he started the process. He warned me that I wold receive a few automated emails.</p>
  713. <p>Within half an hour I got the first email, telling me that my services would be cancelled on Thursday 6th June. Hooray. But that wasn’t the end of the story.</p>
  714. <p>The following day, I got another (presumably automatic email) offering me twelve months of free line rental if I changed my mind. Then I got the same message by text. And today I’ve got a missed call from a number which Google tells me is Sky’s customer retention department. They certainly seem keen to keep me. It’s a shame they didn’t put so much effort in back in April when they might have been able to salvage something from the disaster.</p>
  715. <p>Oh, and I’ve received a bill. They want to charge me a month’s line rental for the phone line. A phone line that only ever really existed to serve a broadband connection that they weren’t able to provide. A phone line that I’ve used to make one call – the call to Sky customer services on 16th April when I first told them to cancel my order.</p>
  716. <p>I’ve cancelled the old Be Broadband direct debit that they were planning to use to take the money. I’m amazed that they wouldn’t just waive those charges.</p>
  717. <p>So, two months on I’m still (to some extent) a Sky customer. But the end is (hopefully) in sight.</p>
  718. <p>Oh, and throughout all of this, the  <a href="https://twitter.com/SkyHelpTeam">@SkyHelpTeam</a> Twitter account has been a source of much amusement. They reply to every mention, but haven’t got a clue what is going on. They use a social media customer tracker called <a href="http://www.lithium.com/products-solutions/social-media-management">Lithium</a>. But they must have it configured wrong because each conversation starts with them knowing no history of this problem at all. And, having watched the product video, that’s exactly what Lithium is for.</p>
  719. <p>Throughout this hold affair all of Sky customer service people (with about two exceptions) have shown themselves to be rubbish at their job.</p>
  720. <p>[1] You’ll have noticed, no doubt, that we had to phone lines. The home phone (along with our TV) has been provided by Virgin Media for years. I also had another phone line for the broadband. I had this on a separate contract because it had been paid for through the limited company that I use for contracting.</p>
  721. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2014/04/sky-broadband.html" class="crp_title">Sky Broadband</a></li><li><a href="http://blog.dave.org.uk/2013/08/insurance-update.html" class="crp_title">Insurance Update</a></li><li><a href="http://blog.dave.org.uk/2012/07/loving-bose.html" class="crp_title">Loving Bose</a></li><li><a href="http://blog.dave.org.uk/2012/09/dear-recruiter.html" class="crp_title">Dear Recruiter</a></li><li><a href="http://blog.dave.org.uk/2012/03/week-notes-8-9.html" class="crp_title">Week Notes 8 &amp; 9</a></li></ul><div style="clear:both"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2014/06/sky-broadband-update.html">Sky Broadband Update</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  722. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/04sLV8hNcHw" height="1" width="1"/></div>
  723.    </content>
  724.    <summary type="html">&lt;p&gt;It&amp;#8217;s probably time for an update on my Sky Broadband situation. I last wrote about Sky on 16th April. That was the date of their second failed attempt to connect me to their broadband. It was the date that I decided to cancel my order and go elsewhere. First the good news. I was considering [&amp;#8230;]
  725. &lt;div class="crp_related"&gt;
  726. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  727. &lt;ul&gt;
  728. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/04/sky-broadband.html"     class="crp_title"&gt;Sky Broadband&lt;/a&gt;&lt;/li&gt;
  729. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/08/insurance-update.html"     class="crp_title"&gt;Insurance Update&lt;/a&gt;&lt;/li&gt;
  730. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/07/loving-bose.html"     class="crp_title"&gt;Loving Bose&lt;/a&gt;&lt;/li&gt;
  731. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/09/dear-recruiter.html"     class="crp_title"&gt;Dear Recruiter&lt;/a&gt;&lt;/li&gt;
  732. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/03/week-notes-8-9.html"     class="crp_title"&gt;Week Notes 8 &amp;#038; 9&lt;/a&gt;&lt;/li&gt;
  733. &lt;/ul&gt;
  734. &lt;div style="clear:both"&gt;&lt;/div&gt;
  735. &lt;/div&gt;
  736. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2014/06/sky-broadband-update.html"&gt;Sky Broadband Update&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  737. </summary>
  738.    <author>
  739.      <name>Dave Cross</name>
  740.    </author>
  741.    <id>http://blog.dave.org.uk/?p=3367</id>
  742.    <published>2014-06-08T13:51:45Z</published>
  743.    <updated>2014-06-08T13:51:45Z</updated>
  744.    <category term="customer service"/>
  745.    <category term="broadband"/>
  746.    <category term="sky"/>
  747.    <category term="tech"/>
  748.  </entry>
  749.  <entry>
  750.    <title>davblog: National Rail Travel Alert</title>
  751.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/xAnxg5S-ajo/national-rail-travel-alert.html" type="text/html"/>
  752.    <content type="xhtml">
  753.      <div xmlns="http://www.w3.org/1999/xhtml"><p>This is the text of a National Rail travel alert email that I received this morning.</p>
  754. <blockquote><p>Problems have been reported which may affect your journey between Balham (BAL) and Shepherd’s Bush (SPB)</p>
  755. <p>More details of this disruption can be found here: http://nationalrail.co.uk/service_disruptions/76437.aspx</p>
  756. <p>To see how this disruption affects your journey and to get alternative options planned for you, please use the <a title="Online Journey Planner" href="http://ojp.nationalrail.co.uk" target="OY-HomVFH_D16cVg8NT3jQ4">Online Journey Planner</a></p>
  757. <p>Alternatively, for up to date information for your station, use the <a href="http://ojp.nationalrail.co.uk/service/ldbboard/dep/BAL/SPB/To">Live Departure Boards.</a></p>
  758. <p>Prefer to get in touch by phone? Call TrainTracker on 0871 200 49 50 (10p per min, mobiles higher) or text your journey details to 84950 to use TrainTracker Text</p>
  759. <p>You can manage your alerts by visiting: http://ojp.nationalrail.co.uk/personal/member/myAccount</p>
  760. <p>Don’t forget, you can also follow us on <a title="Twitter" href="http://twitter.com/nationalrailenq" target="OY-HomVFH_D16cVg8NT3jQ4">Twitter</a> or Find us on <a title="Facebook" href="http://facebook.com/NREDisruption" target="OY-HomVFH_D16cVg8NT3jQ4">Facebook</a> for the latest rail travel news</p>
  761. <p>Please do not reply to this email as it is sent from an unmonitored address. If you need to contact us, you can do so here: http://nationalrail.co.uk/feedback</p></blockquote>
  762. <p>Can you spot the obvious idiocy here?</p>
  763. <p>It’s an HTML email. That’s obvious from the links that appear in it. Links to things like the <a href="http://ojp.nationalrail.co.uk">Online Journey Planner</a> and the <a href="http://ojp.nationalrail.co.uk/service/ldbboard/dep/BAL/SPB/To">Live Departure Boards</a>. But there are a couple of links that are written as plain text URLs – ones that you can’t just click on. And one of them is the most important link in the email – the link to the full information about the problems.</p>
  764. <p>In order to read whatever is on the other end of that link, you’d need to copy it and paste it into the location bar in your browser. That’s simple enough, of course, on a desktop computer. But surely one of the important use cases for these alerts is people standing on a platform trying to work out what’s going on with their train – in which case they’d almost certainly be using a smartphone. And copy and paste isn’t the easiest of things to do on a smartphone.</p>
  765. <p>Someone in the National Rail Travel Alerts department is more than a little confused about how URLs in email work.</p>
  766. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2013/06/jessica-london.html" class="crp_title">Jessica London</a></li><li><a href="http://blog.dave.org.uk/2014/04/free-web-advice-marvel.html" class="crp_title">Free Web Advice: Marvel</a></li><li><a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html" class="crp_title">First Direct Passwords</a></li><li><a href="http://blog.dave.org.uk/2012/09/dear-recruiter.html" class="crp_title">Dear Recruiter</a></li><li><a href="http://blog.dave.org.uk/2014/06/sky-broadband-update.html" class="crp_title">Sky Broadband Update</a></li></ul><div style="clear:both"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2014/05/national-rail-travel-alert.html">National Rail Travel Alert</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  767. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/xAnxg5S-ajo" height="1" width="1"/></div>
  768.    </content>
  769.    <summary type="html">&lt;p&gt;This is the text of a National Rail travel alert email that I received this morning. Problems have been reported which may affect your journey between Balham (BAL) and Shepherd&amp;#8217;s Bush (SPB) More details of this disruption can be found here: http://nationalrail.co.uk/service_disruptions/76437.aspx To see how this disruption affects your journey and to get alternative options [&amp;#8230;]
  770. &lt;div class="crp_related"&gt;
  771. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  772. &lt;ul&gt;
  773. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/06/jessica-london.html"     class="crp_title"&gt;Jessica London&lt;/a&gt;&lt;/li&gt;
  774. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/04/free-web-advice-marvel.html"     class="crp_title"&gt;Free Web Advice: Marvel&lt;/a&gt;&lt;/li&gt;
  775. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html"     class="crp_title"&gt;First Direct Passwords&lt;/a&gt;&lt;/li&gt;
  776. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/09/dear-recruiter.html"     class="crp_title"&gt;Dear Recruiter&lt;/a&gt;&lt;/li&gt;
  777. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/06/sky-broadband-update.html"     class="crp_title"&gt;Sky Broadband Update&lt;/a&gt;&lt;/li&gt;
  778. &lt;/ul&gt;
  779. &lt;div style="clear:both"&gt;&lt;/div&gt;
  780. &lt;/div&gt;
  781. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2014/05/national-rail-travel-alert.html"&gt;National Rail Travel Alert&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  782. </summary>
  783.    <author>
  784.      <name>Dave Cross</name>
  785.    </author>
  786.    <id>http://blog.dave.org.uk/?p=3359</id>
  787.    <published>2014-05-12T08:39:47Z</published>
  788.    <updated>2014-05-12T08:39:47Z</updated>
  789.    <category term="tech"/>
  790.    <category term="email"/>
  791.    <category term="links"/>
  792.    <category term="national rail"/>
  793.  </entry>
  794.  <entry>
  795. <id>tag:search.cpan.org,2014-05-06:DAVECROSS:WWW-Shorten-3.05</id>
  796.  
  797. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/WWW-Shorten-3.05/"/>
  798. <updated>2014-05-06T19:19:30Z</updated>
  799. <author>
  800. <name>Dave Cross</name>
  801. <uri>http://search.cpan.org/~davecross/</uri>
  802. </author>
  803. <content>
  804. Interface to URL shortening sites.
  805. </content>
  806. <title>cpan: WWW-Shorten-3.05</title></entry>
  807.  <entry>
  808.    <title>davblog: Free Web Advice: Marvel</title>
  809.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/X4iA7yN_4kE/free-web-advice-marvel.html" type="text/html"/>
  810.    <content type="xhtml">
  811.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s been a few years since I wrote a <a href="http://blog.dave.org.uk/tag/free-web-advice">“free web advice”</a> piece, but I got really annoyed by the <a href="http://marvel.com/">Marvel web site</a> this morning.</p>
  812. <p>About a year ago I subscribed to <a href="http://marvel.com/comics/unlimited">Marvel Unlimited</a> – a plan that gave me access to all of Marvel’s digital comics for about £40 a year. This morning, I got an email from them saying that my subscription was about to be renewed but that my credit card had expired so I should log on to my account and update my credit card details.</p>
  813. <p>I went to log on and found that I had forgotten my password. So I used the “forgotten password” link expecting to get an email containing a link I could use to reset my password. Instead, I got an email that contained both my username and my password in plain text. If Marvel are able to send my password to me, then they must be storing everyone’s password in a readable format. It’s astonishing that a company the size of Marvel don’t understand just what <a href="http://blog.dave.org.uk/2005/11/basic-password.html">an incredibly stupid idea</a> that is. And sending both my username and password in the same email just compounds their error.</p>
  814. <p>So that’s strike one – storing plain text passwords.</p>
  815. <p>Having recovered my password, I was able to log on and found the page where I could give them my credit card details. But it looked like this:</p>
  816. <p><a href="http://blog.dave.org.uk/wp-content/uploads/2014/04/marvel.png" rel="lightbox[3351]" title="Free Web Advice: Marvel"><img class="aligncenter wp-image-3352 size-large" src="http://blog.dave.org.uk/wp-content/uploads/2014/04/marvel-1024x714.png" alt="Marvel Credit Card Maintenance Page" width="604" height="421"/></a></p>
  817. <p>If you look closely, you’ll see that three fields – credit card type, expiration date and country – have captions, but no way to enter the required data. I’ve tried this page in both Firefox and Chrome and get the same results in both. I expect I’ll have to dig out a PC running Windows and try it on Internet Explorer as well.</p>
  818. <p>I didn’t actually notice the missing fields at first. I just filled in the fields I could see and submitted the form. At that point I got an error pointing out what was missing. It’s interesting to note that the credit card type isn’t marked as required on the form (there’s no red asterisk next to it) but the error I got complained that it wasn’t filled it.</p>
  819. <p>So that’s strikes two and three.<br/>
  820. Strike two – always ensure that your web pages work on all the popular browsers.<br/>
  821. Strike three – always mark your required data inputs accurately.</p>
  822. <p>At that point I gave up trying to give money to Marvel. I poked around the site for a while to find a contact form. When I found it, it had the same problems as the credit card form – most of the input fields didn’t appear. Luckily, the contact page also gave an email address (that’s a really good idea that most web sites don’t follow). So I used that to report the problems. I’ll update this post if I get a response.</p>
  823. <p>Interestingly, on my account page I was also given the option to upgrade my account. Apparently Marvel and I disagree on the meaning of the word “unlimited”. It’s not clear to me what extra benefits I could expect.</p>
  824. <p><strong>Update (four months later):</strong> Somehow, Marvel managed to renew my subscription, even though I never managed to update my credit card details. But bizarrely, this evening (over four months after writing to them) I got a reply from Marvel’s customer support. It said this:</p>
  825. <blockquote><p>Thank you for contacting Marvel’s Online Support services. We apologize for the delay in getting back to you. We see that you were able to renew your subscription, after contacting us. If you have any further questions, please do not hesitate to contact us. Thanks again for contacting Marvel.</p></blockquote>
  826. <p>Four months to reply to a simple customer support message must be some kind of record.</p>
  827. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2012/03/internet-security-rule-one.html" class="crp_title">Internet Security Rule One</a></li><li><a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html" class="crp_title">First Direct Passwords</a></li><li><a href="http://blog.dave.org.uk/2012/02/week-notes-4-5.html" class="crp_title">Week Notes 4 &amp; 5</a></li><li><a href="http://blog.dave.org.uk/2014/07/first-direct-update.html" class="crp_title">First Direct Update</a></li><li><a href="http://blog.dave.org.uk/2012/05/see-tickets.html" class="crp_title">See Tickets</a></li></ul><div style="clear:both"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2014/04/free-web-advice-marvel.html">Free Web Advice: Marvel</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  828. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/X4iA7yN_4kE" height="1" width="1"/></div>
  829.    </content>
  830.    <summary type="html">&lt;p&gt;It&amp;#8217;s been a few years since I wrote a &amp;#8220;free web advice&amp;#8221; piece, but I got really annoyed by the Marvel web site this morning. About a year ago I subscribed to Marvel Unlimited &amp;#8211; a plan that gave me access to all of Marvel&amp;#8217;s digital comics for about £40 a year. This morning, I [&amp;#8230;]
  831. &lt;div class="crp_related"&gt;
  832. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  833. &lt;ul&gt;
  834. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/03/internet-security-rule-one.html"     class="crp_title"&gt;Internet Security Rule One&lt;/a&gt;&lt;/li&gt;
  835. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/07/first-direct-passwords.html"     class="crp_title"&gt;First Direct Passwords&lt;/a&gt;&lt;/li&gt;
  836. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/02/week-notes-4-5.html"     class="crp_title"&gt;Week Notes 4 &amp;#038; 5&lt;/a&gt;&lt;/li&gt;
  837. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2014/07/first-direct-update.html"     class="crp_title"&gt;First Direct Update&lt;/a&gt;&lt;/li&gt;
  838. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/05/see-tickets.html"     class="crp_title"&gt;See Tickets&lt;/a&gt;&lt;/li&gt;
  839. &lt;/ul&gt;
  840. &lt;div style="clear:both"&gt;&lt;/div&gt;
  841. &lt;/div&gt;
  842. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2014/04/free-web-advice-marvel.html"&gt;Free Web Advice: Marvel&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  843. </summary>
  844.    <author>
  845.      <name>Dave Cross</name>
  846.    </author>
  847.    <id>http://blog.dave.org.uk/?p=3351</id>
  848.    <published>2014-04-30T12:17:32Z</published>
  849.    <updated>2014-04-30T12:17:32Z</updated>
  850.    <category term="tech"/>
  851.    <category term="annoyance"/>
  852.    <category term="free web advice"/>
  853.    <category term="marvel"/>
  854.    <category term="passwords"/>
  855.    <category term="web forms"/>
  856.  </entry>
  857. </feed>
  858.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda