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>2015-07-01T21:03:07Z</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/616344574911451136" type="text/html"/>
  16.    <content type="xhtml">
  17.      <div xmlns="http://www.w3.org/1999/xhtml">@dnotice2012 I think the cool kids were watching George Clinton. The hipsters were watching Spiritualized :-)</div>
  18.    </content>
  19.    <updated>2015-07-01T20:36:12Z</updated>
  20.  <title>twitter: @dnotice2012 I think the cool kids were watching George Clinton. The hipsters were watching Spiritualized :-)</title></entry>
  21.  <entry>
  22.    
  23.    <link rel="alternate" href="https://twitter.com/davorg/status/616344162770780160" type="text/html"/>
  24.    <content type="xhtml">
  25.      <div xmlns="http://www.w3.org/1999/xhtml">@tarabluesky Didn't happen this time though :-/</div>
  26.    </content>
  27.    <updated>2015-07-01T20:34:34Z</updated>
  28.  <title>twitter: @tarabluesky Didn't happen this time though :-/</title></entry>
  29.  <entry>
  30.    
  31.    <link rel="alternate" href="https://twitter.com/davorg/status/616344105350758401" type="text/html"/>
  32.    <content type="xhtml">
  33.      <div xmlns="http://www.w3.org/1999/xhtml">@tarabluesky I sometimes find that immersing myself in music I don't like for 90 mins or so will reveal some redeeming features.</div>
  34.    </content>
  35.    <updated>2015-07-01T20:34:20Z</updated>
  36.  <title>twitter: @tarabluesky I sometimes find that immersing myself in music I don't like for 90 mins or so will reveal some redeeming features.</title></entry>
  37.  <entry>
  38.    
  39.    <link rel="alternate" href="https://twitter.com/davorg/status/616343870431997952" type="text/html"/>
  40.    <content type="xhtml">
  41.      <div xmlns="http://www.w3.org/1999/xhtml">@tarabluesky I don't believe a word of it. I think he's a moron.</div>
  42.    </content>
  43.    <updated>2015-07-01T20:33:24Z</updated>
  44.  <title>twitter: @tarabluesky I don't believe a word of it. I think he's a moron.</title></entry>
  45.  <entry>
  46.    
  47.    <link rel="alternate" href="https://twitter.com/davorg/status/616343358286528512" type="text/html"/>
  48.    <content type="xhtml">
  49.      <div xmlns="http://www.w3.org/1999/xhtml">Aha! Now some George Clinton/Parliament/Funkadelic. That's more like it.</div>
  50.    </content>
  51.    <updated>2015-07-01T20:31:22Z</updated>
  52.  <title>twitter: Aha! Now some George Clinton/Parliament/Funkadelic. That's more like it.</title></entry>
  53.  <entry>
  54.    <title>last.fm: The Travelling Band – Borrowed and Blue</title>
  55.    <link rel="alternate" href="http://www.last.fm/music/The+Travelling+Band/_/Borrowed+and+Blue" type="text/html"/>
  56.    <content type="xhtml">
  57.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Travelling+Band</div>
  58.    </content>
  59.    <id>http://www.last.fm/user/davorg#1435768093</id>
  60.    <published>2015-07-01T16:28:13Z</published>
  61.    <updated>2015-07-01T16:28:13Z</updated>
  62.  </entry>
  63.  <entry>
  64.    <title>last.fm: The Travelling Band – Making Eyes</title>
  65.    <link rel="alternate" href="http://www.last.fm/music/The+Travelling+Band/_/Making+Eyes" type="text/html"/>
  66.    <content type="xhtml">
  67.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Travelling+Band</div>
  68.    </content>
  69.    <id>http://www.last.fm/user/davorg#1435767844</id>
  70.    <published>2015-07-01T16:24:04Z</published>
  71.    <updated>2015-07-01T16:24:04Z</updated>
  72.  </entry>
  73.  <entry>
  74.    <title>last.fm: The Travelling Band – 78.8%</title>
  75.    <link rel="alternate" href="http://www.last.fm/music/The+Travelling+Band/_/78.8%25" type="text/html"/>
  76.    <content type="xhtml">
  77.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Travelling+Band</div>
  78.    </content>
  79.    <id>http://www.last.fm/user/davorg#1435767585</id>
  80.    <published>2015-07-01T16:19:45Z</published>
  81.    <updated>2015-07-01T16:19:45Z</updated>
  82.  </entry>
  83.  <entry>
  84.    <title>last.fm: The Travelling Band – Quicksand</title>
  85.    <link rel="alternate" href="http://www.last.fm/music/The+Travelling+Band/_/Quicksand" type="text/html"/>
  86.    <content type="xhtml">
  87.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Travelling+Band</div>
  88.    </content>
  89.    <id>http://www.last.fm/user/davorg#1435767428</id>
  90.    <published>2015-07-01T16:17:08Z</published>
  91.    <updated>2015-07-01T16:17:08Z</updated>
  92.  </entry>
  93.  <entry>
  94.    <title>last.fm: The Travelling Band – 25 Hours</title>
  95.    <link rel="alternate" href="http://www.last.fm/music/The+Travelling+Band/_/25+Hours" type="text/html"/>
  96.    <content type="xhtml">
  97.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/The+Travelling+Band</div>
  98.    </content>
  99.    <id>http://www.last.fm/user/davorg#1435767209</id>
  100.    <published>2015-07-01T16:13:29Z</published>
  101.    <updated>2015-07-01T16:13:29Z</updated>
  102.  </entry>
  103.  <entry>
  104.    <title>books read: A Feast for Crows (A Song of Ice and Fire, #4)</title>
  105.    <link rel="alternate" href="http://www.goodreads.com/review/show/1310576861?utm_medium=api&amp;utm_source=rss" type="text/html"/>
  106.    <content type="xhtml">
  107.      <div xmlns="http://www.w3.org/1999/xhtml">
  108.      
  109.      <a href="http://www.goodreads.com/book/show/11735456-a-feast-for-crows?utm_medium=api&amp;utm_source=rss"><img alt="A Feast for Crows (A Song of Ice and Fire, #4)" src="http://d.gr-assets.com/books/1338863776s/11735456.jpg"/></a><br/>
  110.                                      author: George R.R. Martin<br/>
  111.                                      name: David<br/>
  112.                                      average rating: 4.01<br/>
  113.                                      book published: 2005<br/>
  114.                                      rating: 0<br/>
  115.                                      read at: <br/>
  116.                                      date added: 2015/06/17<br/>
  117.                                      shelves: currently-reading<br/>
  118.                                      review: <br/><br/>
  119.                                      
  120.    </div>
  121.    </content>
  122.    <id>http://www.goodreads.com/review/show/1310576861?utm_medium=api&amp;utm_source=rss</id>
  123.    <published>2015-06-17T12:27:46-07:00</published>
  124.    <updated>2015-06-17T12:27:46-07:00</updated>
  125.  </entry>
  126.  <entry>
  127.    <title>davblog: TwittElection at OpenTech</title>
  128.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/wNrReAFIq6w/twittelection-at-opentech.html" type="text/html"/>
  129.    <content type="html">&lt;p&gt;Last Saturday was &lt;a href="http://www.opentech.org.uk/2015/"&gt;OpenTech&lt;/a&gt;. It was as great as it always is and I’ll write more about what I saw later. But I gave a talk about &lt;a href="http://twittelection.co.uk/"&gt;TwittElection&lt;/a&gt; in the afternoon and I thought it might be useful to publish my slides here along with a brief summary of what I said.&lt;/p&gt;
  130. &lt;p&gt;&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/EyKCXMxjxE7p2Y" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt;
  131. &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/davorg/twittelection-49363746" title="TwittElection" target="_blank"&gt;TwittElection&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="//www.slideshare.net/davorg" target="_blank"&gt;Dave Cross&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
  132. &lt;ul&gt;
  133. &lt;li&gt;I started with a couple of screenshots of what TwittElection is. There’s basically a main page which shows how many days are left until the general election and a page for every constituency which has a widget displaying a Twitter list for all of the candidates in that constituency.&lt;/li&gt;
  134. &lt;li&gt;Why did I do it? Well I love elections. I have vague memories of one (or perhaps both) of the 1974 general elections and I have closely followed every general election since then. In the 90s I was occasionally  one of those annoying people who ask you for your voter number as you’re leaving the polling station and in 2005 I worked all night to make sure that the results on the Guardian web site were up to date.&lt;/li&gt;
  135. &lt;li&gt;I love Twitter too. Who doesn’t?&lt;/li&gt;
  136. &lt;li&gt;In 2010 I created a site that monitored the candidates in my local constituency. It wasn’t just Twitter (which was far less important back then) but any kind of web feed that they produced. That’s easy enough to do for one constituency, but it’s a bit more of a challenge for 650.&lt;/li&gt;
  137. &lt;li&gt;The technology for the system was pretty simple. It was the data that was going to be a lot trickier.&lt;/li&gt;
  138. &lt;li&gt;Just as I was considering the project, Twitter made a couple of changes which made my life substantially easier. Firstly they increased the number of Twitter lists that each user could create from 20 to 1000 (I needed 650). An secondly, they removed the restriction that Twitter list widgets were tightly associated with a specific list. Under the old system, I would have needed to create 650 individual widgets. Under the new system, I could create one widget and pass it a list ID in order to display any of my 650 lists.&lt;/li&gt;
  139. &lt;li&gt;I wrote the code in Perl. I made a throwaway remark about it being the “programming languages of champions”. Someone in the audience &lt;a href="https://twitter.com/fatbusinessman/status/609749498613661696"&gt;tweeted that quote&lt;/a&gt; and it’s been retweeted rather a lot.&lt;/li&gt;
  140. &lt;li&gt;I hosted the site on &lt;a href="https://pages.github.com/"&gt;Github Pages&lt;/a&gt; in case it got too popular. This was a ridiculous thing to be worried about.&lt;/li&gt;
  141. &lt;li&gt;I used &lt;a href="http://getbootstrap.com/"&gt;Bootstrap&lt;/a&gt; (of course) and small amounts of various Javascript libraries.&lt;/li&gt;
  142. &lt;li&gt;The data was harder. We have 650 constituencies and each one will have about six candidates. That means I’ll be looking for data about something like 4,000 candidates. And there’s no official centralised source for this data.&lt;/li&gt;
  143. &lt;li&gt;Back in November I asked my Twitter followers if they knew of anyone who was collecting lists of candidates and &lt;a href="https://twitter.com/smithsam"&gt;Sam Smith&lt;/a&gt; put me in touch with the &lt;a href="https://twitter.com/democlub"&gt;Democracy Club&lt;/a&gt;.&lt;/li&gt;
  144. &lt;li&gt;At the time, the Democracy Club were just building a new version of &lt;a href="https://yournextmp.com/"&gt;YourNextMP&lt;/a&gt; – a crowd-sourced list of candidates. It did all that I needed. Which made me very happy. [&lt;strong&gt;Note:&lt;/strong&gt; My talk followed one from the Democracy Club which went into this in far more detail.]&lt;/li&gt;
  145. &lt;li&gt;So with data from YNMP and my code, the site was build.&lt;/li&gt;
  146. &lt;li&gt;And it worked pretty well. There were a few bugs (including one that was pointed out by a previous speaker in the same session) but they all got fixed quickly.&lt;/li&gt;
  147. &lt;li&gt;I became an expert in Twitter error codes.&lt;/li&gt;
  148. &lt;li&gt;403 and 429 are the codes that Twitter returns when you make more API requests than you are allowed to. There are two ways to deal with Twitter’s rate limits. You can keep a careful count of your requests and stop before you hit the limits. Or you can keep going until you get one of these codes back at which point you stop. The second option is far simpler. I took the second option. [&lt;strong&gt;Note:&lt;/strong&gt; At this point I forgot to mention that the rate limits were so, well…, limiting that when I got my first complete data dump from YNMP, it took almost two days to build all of the Twitter lists.]&lt;/li&gt;
  149. &lt;li&gt;108 means you’re trying to do something with a user that doesn’t exist. Basically, you’ve got the username wrong. Sometimes this is because there’s a typo in the name that YNMP has been given. Sometimes it’s because the user has changed their Twitter username and YNMP doesn’t know about the change yet. One common cause for the latter is when MPs changed their Twitter usernames to remove “MP” whilst the campaign was in progress and legally, there were no MPs. [&lt;strong&gt;Note:&lt;/strong&gt; One of the YNMP developers spoke to me afterwards and admitted that they should have handled Twitter usernames better – for example, they could have stored the ID (which is invariant) rather than the username (which can change).]&lt;/li&gt;
  150. &lt;li&gt;Error 106 means that the user has blocked you and therefore you can’t add that user to a Twitter list. This seems like strange behaviour given that candidates are presumably using Twitter to publicise their opinions as widely as possible.&lt;/li&gt;
  151. &lt;li&gt;The first time I was blocked it was @glenntingle, the UKIP candidate for Norwich North.&lt;/li&gt;
  152. &lt;li&gt;I wondered why he might be blocking me. A friend pointed out that he might be embarrassed by his following habits. It turned out that of the 700 people he followed on Twitter, all but about a dozen of them were young women posting pictures of themselves wearing very little.&lt;/li&gt;
  153. &lt;li&gt;There was some discussion of this amongst some of my friends. This was apparently noticed by Mr Tingle who first protected his tweets and then deleted his account.&lt;/li&gt;
  154. &lt;li&gt;I’m not sure how good I feel about hounding a candidate off of Twitter.&lt;/li&gt;
  155. &lt;li&gt;Another UKIP candidate, @timscottukip, also blocked me. And I heard of another who was running his account in protected mode.&lt;/li&gt;
  156. &lt;li&gt;Some users didn’t understand crowd-sourcing. Every constituency page included a link to the associated page on YNMP along with text asking people to submit corrections there. But I still got a lot of tweets pointing out errors in my lists.&lt;/li&gt;
  157. &lt;li&gt;72% of candidates were on Twitter.&lt;/li&gt;
  158. &lt;li&gt;Results by party were mixed. 100% of the SNP candidates were on Twitter, but only 51% of UKIP candidates (or perhaps I couldn’t see the others as they were blocking me!)&lt;/li&gt;
  159. &lt;li&gt;Was it worth it? Well, only 1000 or so people visited the site over the course of the campaign.&lt;/li&gt;
  160. &lt;li&gt;I haven’t yet seen if I can get any stats on people using the raw Twitter lists rather than looking at my web site.&lt;/li&gt;
  161. &lt;li&gt;I need to rip out all of the information that is specific to that particular election and encourage people to use &lt;a href="http://github.com/davorg/twittelection"&gt;the code&lt;/a&gt; for other elections. YNMP is based on software called &lt;a href="http://popit.poplus.org/"&gt;PopIt&lt;/a&gt; and I think my code could be useful wherever that is used.&lt;/li&gt;
  162. &lt;li&gt;There are 1790 days until the next UK general election (as of Saturday 13th June 2015).&lt;/li&gt;
  163. &lt;/ul&gt;
  164. &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/2015/01/twittelection.html"     class="crp_title"&gt;TwittElection&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/05/the-political-web-2.html"     class="crp_title"&gt;The Political Web&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/04/quoted-by-the-daily-mail.html"     class="crp_title"&gt;Quoted By The Daily Mail&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/10/mps-web-sites.html"     class="crp_title"&gt;MPs&amp;#8217; Web Sites&lt;/a&gt;&lt;/li&gt;&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;&lt;/ul&gt;&lt;div class="crp_clear"&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/06/twittelection-at-opentech.html"&gt;TwittElection at OpenTech&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  165. &lt;img src="http://feeds.feedburner.com/~r/realdavblog/~4/wNrReAFIq6w" height="1" width="1" alt=""/&gt;</content>
  166.    <summary type="html">&lt;p&gt;Last Saturday was OpenTech. It was as great as it always is and I’ll write more about what I saw later. But I gave a talk about TwittElection in the afternoon and I thought it might be useful to publish my slides here along with a brief summary of what I said. TwittElection from Dave &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/06/twittelection-at-opentech.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;TwittElection at OpenTech&lt;/span&gt;&lt;/a&gt;
  167. &lt;div class="crp_related"&gt;
  168. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  169. &lt;ul&gt;
  170. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/01/twittelection.html"     class="crp_title"&gt;TwittElection&lt;/a&gt;&lt;/li&gt;
  171. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/05/the-political-web-2.html"     class="crp_title"&gt;The Political Web&lt;/a&gt;&lt;/li&gt;
  172. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/04/quoted-by-the-daily-mail.html"     class="crp_title"&gt;Quoted By The Daily Mail&lt;/a&gt;&lt;/li&gt;
  173. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/10/mps-web-sites.html"     class="crp_title"&gt;MPs&amp;#8217; Web Sites&lt;/a&gt;&lt;/li&gt;
  174. &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;
  175. &lt;/ul&gt;
  176. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  177. &lt;/div&gt;
  178. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/06/twittelection-at-opentech.html"&gt;TwittElection at OpenTech&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  179. </summary>
  180.    <author>
  181.      <name>Dave Cross</name>
  182.    </author>
  183.    <id>http://blog.dave.org.uk/?p=3427</id>
  184.    <published>2015-06-16T09:15:24Z</published>
  185.    <updated>2015-06-16T09:15:24Z</updated>
  186.    <category term="tech"/>
  187.    <category term="election"/>
  188.    <category term="ge2015"/>
  189.    <category term="opentech"/>
  190.    <category term="opentech2015"/>
  191.    <category term="politics"/>
  192.    <category term="twittelection"/>
  193.    <category term="twitter"/>
  194.    <category term="ynmp"/>
  195.  </entry>
  196.  <entry>
  197.    <title>slideshare: TwittElection</title>
  198.    <link rel="alternate" href="http://www.slideshare.net/davorg/twittelection-49363746" type="text/html"/>
  199.    <content type="html">
  200.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/twittelection-150614061809-lva1-app6891-thumbnail-2.jpg?cb=1434262781" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt; A Talk from OpenTech 2015 about a tool I wrote for monitoring parliamentary candidates on Twitter during the 2015 UK general election.
  201.      </content>
  202.    <summary type="html">
  203.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/twittelection-150614061809-lva1-app6891-thumbnail-2.jpg?cb=1434262781" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt; A Talk from OpenTech 2015 about a tool I wrote for monitoring parliamentary candidates on Twitter during the 2015 UK general election.
  204.      </summary>
  205.    <author>
  206.      <name>davorg@slideshare.net(davorg)</name>
  207.    </author>
  208.    <id>http://www.slideshare.net/davorg/twittelection-49363746</id>
  209.    <published>2015-06-14T06:18:09Z</published>
  210.    <updated>2015-06-14T06:18:09Z</updated>
  211.  </entry>
  212.  <entry>
  213.    <title>perl hacks: Building TwittElection</title>
  214.    <link rel="alternate" href="http://perlhacks.com/2015/05/building-twittelection/" type="text/html"/>
  215.    <content type="xhtml">
  216.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I was asked to write a guest post for the <a href="http://blog.builtinperl.com/">Built In Perl blog</a>. I wrote something about how I built my site, <a href="http://twittelection.co.uk/">TwittElection</a>, for the recent <a href="https://en.wikipedia.org/wiki/United_Kingdom_general_election,_2015">UK general election</a>.</p>
  217. <blockquote><p>In the UK we have just had a general election. Over the last few weeks many web sites have sprung up to share information about the campaign and to help people decide how to vote. I have set up my own site called <a href="http://twittelection.co.uk/">TwittElection</a> and in this article I’d like to explain a little about how it works.</p></blockquote>
  218. <p>But why not go over to Built In Perl and read <a href="http://blog.builtinperl.com/post/guest-post-dave-cross-twittelection">the whole thing</a> there.</p>
  219. <p>Incidentally, on 13th June, I’ll be giving a talk about TwittElection at this year’s <a href="http://www.opentech.org.uk/2015/">OpenTech conference</a>. If you’re interested in the positive impact that technology can have on society then you’ll, no doubt, find OpenTech very interesting.</p>
  220. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/05/building-twittelection/">Building TwittElection</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  221. </div>
  222.    </content>
  223.    <summary type="xhtml">
  224.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I was asked to write a guest post for the Built In Perl blog. I wrote something about how I built my site, TwittElection, for the recent UK general election. In the UK we have just had a general election. Over the last few weeks many web sites have sprung up to share information about … <a href="http://perlhacks.com/2015/05/building-twittelection/" class="more-link">Continue reading <span class="screen-reader-text">Building TwittElection</span></a></p>
  225. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/05/building-twittelection/">Building TwittElection</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  226. </div>
  227.    </summary>
  228.    <author>
  229.      <name>Dave Cross</name>
  230.    </author>
  231.    <id>http://perlhacks.com/?p=1090</id>
  232.    <published>2015-05-21T12:48:46Z</published>
  233.    <updated>2015-05-21T12:48:46Z</updated>
  234.    <category term="Articles"/>
  235.    <category term="built in perl"/>
  236.    <category term="opentech"/>
  237.    <category term="twittelection"/>
  238.  </entry>
  239.  <entry>
  240.    <title>perl hacks: DBIC Training in Granada</title>
  241.    <link rel="alternate" href="http://perlhacks.com/2015/05/dbic-training-in-granada/" type="text/html"/>
  242.    <content type="xhtml">
  243.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s been a while since I’ve run a training course alongside a YAPC. By my calculations, the last time was <a href="http://yapceurope.lv/ye2011/talk/3285">Riga in 2011</a>. But I’ve been talking to the organisers of <a href="http://act.yapc.eu/ye2015/">this year’s conference</a> and we have plan.</p>
  244. <p>I’m going to be running a one-day introductory course on <a href="https://metacpan.org/release/DBIx-Class">DBIx::Class</a> before the conference (I think it’ll be on 1st September, but that’s not 100% certain yet). Full details are <a href="http://act.yapc.eu/ye2015/courses.html#course3">on the conference web site</a>. There’s an early-bird price of 150 Euro and the full price is 200 Euro. The web site says that the early-bird price finishes today, but I wouldn’t be at all surprised if that gets extended for a few days at least.</p>
  245. <p>Of course, readers of this blog will all already be experts in DBIC and won’t need this course. But I’m sure that most of you will have a colleague who would benefit from… well… a refresher on who DBIC works. Why not see if your company will pay for them to attend the course <img src="http://perlhacks.com/wp-includes/images/smilies/simple-smile.png" alt=":-)" class="wp-smiley" style="height: 1em; max-height: 1em;"/></p>
  246. <p>The course size is limited. So you might want to think about booking soon.</p>
  247. <p>Hope to see some of you in Granada.</p>
  248. <p><strong>Two updates:</strong></p>
  249. <ol>
  250. <li>The date has now been confirmed as 1st September.</li>
  251. <li>The early-bird pricing has been extended until 1st June.</li>
  252. </ol>
  253. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/05/dbic-training-in-granada/">DBIC Training in Granada</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  254. </div>
  255.    </content>
  256.    <summary type="xhtml">
  257.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s been a while since I’ve run a training course alongside a YAPC. By my calculations, the last time was Riga in 2011. But I’ve been talking to the organisers of this year’s conference and we have plan. I’m going to be running a one-day introductory course on DBIx::Class before the conference (I think it’ll … <a href="http://perlhacks.com/2015/05/dbic-training-in-granada/" class="more-link">Continue reading <span class="screen-reader-text">DBIC Training in Granada</span></a></p>
  258. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/05/dbic-training-in-granada/">DBIC Training in Granada</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  259. </div>
  260.    </summary>
  261.    <author>
  262.      <name>Dave Cross</name>
  263.    </author>
  264.    <id>http://perlhacks.com/?p=1085</id>
  265.    <published>2015-05-15T12:19:48Z</published>
  266.    <updated>2015-05-15T12:19:48Z</updated>
  267.    <category term="Training"/>
  268.    <category term="dbic"/>
  269.    <category term="dbix::class"/>
  270.    <category term="training"/>
  271.    <category term="yapc"/>
  272.    <category term="yapc europe"/>
  273.    <category term="yapceu15"/>
  274.  </entry>
  275.  <entry>
  276.    <title>perl hacks: Subroutines and Ampersands</title>
  277.    <link rel="alternate" href="http://perlhacks.com/2015/04/subroutines-and-ampersands/" type="text/html"/>
  278.    <content type="html">&lt;p&gt;I’ve had this discussion several times recently, so I thought it was worth writing a blog post so that I have somewhere to point people the next time it comes up.&lt;/p&gt;
  279. &lt;p&gt;Using ampersands on subroutine calls (&lt;tt&gt;&amp;my_sub&lt;/tt&gt; or &lt;tt&gt;&amp;my_sub(...)&lt;/tt&gt;) is never necessary and can have potentially surprising side-effects. It should, therefore, never be used and should particularly be avoided in examples aimed at beginners.&lt;/p&gt;
  280. &lt;p&gt;Using an ampersand when calling a subroutine has three effects.&lt;/p&gt;
  281. &lt;ol&gt;
  282. &lt;li&gt;It disambiguates the code so the the Perl compiler knows for sure that it has come across a subroutine call.&lt;/li&gt;
  283. &lt;li&gt;It turns off prototype checking.&lt;/li&gt;
  284. &lt;li&gt;If you use the &lt;tt&gt;&amp;my_sub&lt;/tt&gt; form (i.e. without parentheses) then the current value of &lt;tt&gt;@_&lt;/tt&gt; is passed on to the called subroutine.&lt;/li&gt;
  285. &lt;/ol&gt;
  286. &lt;p&gt;Let’s look at these three effects in a little more detail.&lt;/p&gt;
  287. &lt;p&gt;Disambiguating the code is obviously a good idea. But adding the ampersand is not the only way to do it. Adding a pair of parentheses to the end of the call (&lt;tt&gt;my_sub()&lt;/tt&gt;) has exactly the same effect. And, as a bonus, it looks the same as subroutine calls do in pretty much every other programming language ever invented. I can’t think of a single reason why anyone would pick &lt;tt&gt;&amp;my_sub&lt;/tt&gt; over &lt;tt&gt;my_sub()&lt;/tt&gt;.&lt;/p&gt;
  288. &lt;p&gt;I hope we’re agreed that prototypes are unnecessary in most Perl code (perhaps that needs to be another blog post at some point). Of course there are a few good reasons to use them, but most of us won’t be using them most of the time. If you’re using them, then turning off prototype checking seems to be a bad idea. And if you’re not using them, then it doesn’t matter whether they’re checked or not. There’s no good argument here for  using ampersands.&lt;/p&gt;
  289. &lt;p&gt;Then we come to the invisible passing of &lt;tt&gt;@_&lt;/tt&gt; to the called subroutine. I have no idea why anyone ever thought this was a good idea. The &lt;a href="http://perldoc.perl.org/perlsub.html"&gt;perlsub documentation &lt;/a&gt;calls it “an efficiency mechanism” but admits that is it one “that new users may wish to avoid”. If you want &lt;tt&gt;@_&lt;/tt&gt; to be available to the called subroutine then just pass it in explicitly. Your maintenance programmer (and remember, that could be you in six months time) will be grateful and won’t waste hours trying to work out what is going on.&lt;/p&gt;
  290. &lt;p&gt;So, no, there is no good reason to use ampersands when calling subroutines. Please don’t use them.&lt;/p&gt;
  291. &lt;p&gt;There is, of course, one case where ampersands are still useful when dealing with subroutines – when you are taking a reference to an existing, named subroutine. But that’s the only case that I can think of.&lt;/p&gt;
  292. &lt;p&gt;What do you think? Have I missed something?&lt;/p&gt;
  293. &lt;p&gt;It’s unfortunate that a lot of the older documentation on CPAN (and, indeed, some popular beginners’ books) still perpetuate this outdated style. It would be great if we could remove it from all example code.&lt;/p&gt;
  294. &lt;p&gt;The post &lt;a rel="nofollow" href="http://perlhacks.com/2015/04/subroutines-and-ampersands/"&gt;Subroutines and Ampersands&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://perlhacks.com"&gt;Perl Hacks&lt;/a&gt;.&lt;/p&gt;
  295. </content>
  296.    <summary type="xhtml">
  297.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I’ve had this discussion several times recently, so I thought it was worth writing a blog post so that I have somewhere to point people the next time it comes up. Using ampersands on subroutine calls (&amp;my_sub or &amp;my_sub(...)) is never necessary and can have potentially surprising side-effects. It should, therefore, never be used and … <a href="http://perlhacks.com/2015/04/subroutines-and-ampersands/" class="more-link">Continue reading <span class="screen-reader-text">Subroutines and Ampersands</span></a></p>
  298. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/04/subroutines-and-ampersands/">Subroutines and Ampersands</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  299. </div>
  300.    </summary>
  301.    <author>
  302.      <name>Dave Cross</name>
  303.    </author>
  304.    <id>http://perlhacks.com/?p=1081</id>
  305.    <published>2015-04-19T09:52:16Z</published>
  306.    <updated>2015-04-19T09:52:16Z</updated>
  307.    <category term="Programming"/>
  308.    <category term="ampersand"/>
  309.    <category term="programming"/>
  310.    <category term="subroutine"/>
  311.  </entry>
  312.  <entry>
  313.    <title>davblog: Quoted By The Daily Mail</title>
  314.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/-giBklrljXs/quoted-by-the-daily-mail.html" type="text/html"/>
  315.    <content type="html">&lt;p&gt;This morning Tweetdeck pinged and alerted me to this tweet from a friend of mine.&lt;/p&gt;
  316. &lt;div class="jetpack-video-wrapper"&gt;
  317. &lt;blockquote class="twitter-tweet" width="550"&gt;
  318. &lt;p&gt;&lt;a href="https://twitter.com/davorg"&gt;@davorg&lt;/a&gt; Did you see that you feature in your favourite online newspaper? &lt;a href="http://t.co/pumrCggsZr"&gt;http://t.co/pumrCggsZr&lt;/a&gt;&lt;/p&gt;
  319. &lt;p&gt;— Robin Houston (@robinhouston) &lt;a href="https://twitter.com/robinhouston/status/588998871759642624"&gt;April 17, 2015&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  320. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/div&gt;
  321. &lt;p&gt;He was right too. The article was about &lt;a title="TheButton" href="http://reddit.com/r/thebutton"&gt;Reddit’s Button&lt;/a&gt; and about half-way though it, they quoted my tweet.&lt;/p&gt;
  322. &lt;div class="jetpack-video-wrapper"&gt;
  323. &lt;blockquote class="twitter-tweet" width="550"&gt;
  324. &lt;p&gt;I am becoming obsessed with The Button – &lt;a href="http://t.co/wpdgUGTUYh"&gt;http://t.co/wpdgUGTUYh&lt;/a&gt; Haven&amp;#39;t pressed it yet.&lt;/p&gt;
  325. &lt;p&gt;— The Mail Lies (@davorg) &lt;a href="https://twitter.com/davorg/status/587928571928260609"&gt;April 14, 2015&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  326. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/div&gt;
  327. &lt;p&gt;My reaction was predictable.&lt;/p&gt;
  328. &lt;div class="jetpack-video-wrapper"&gt;
  329. &lt;blockquote class="twitter-tweet" width="550"&gt;
  330. &lt;p&gt;Argh! I&amp;#39;M IN THE FUCKING DAILY MAIL!! &lt;a href="http://t.co/I2BK0gVrHx"&gt;http://t.co/I2BK0gVrHx&lt;/a&gt;&lt;/p&gt;
  331. &lt;p&gt;— The Mail Lies (@davorg) &lt;a href="https://twitter.com/davorg/status/589007737633304576"&gt;April 17, 2015&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
  332. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/div&gt;
  333. &lt;p&gt;I was terribly embarrassed. Being quoted in the Daily Mail isn’t exactly great for your reputation. So I started wondering if there was anything I could do to to recover the situation.&lt;/p&gt;
  334. &lt;p&gt;Then it came to me. The Mail were following &lt;a href="https://dev.twitter.com/overview/terms/display-requirements"&gt;Twitter’s display guidelines&lt;/a&gt; and were embedding the tweets in the web page (to be honest, that surprised me slightly – I was sure they would just take a screenshot). This meant that every time someone looked at the Mail’s article, the Mail’s site would refresh its view of the tweet from Twitter’s servers.&lt;/p&gt;
  335. &lt;p&gt;You can’t edit the content of tweets once they had been published. But you can change some of the material that is displayed – specifically your profile picture and your display name.&lt;/p&gt;
  336. &lt;p&gt;So, over lunch I took a few minutes to create a new profile picture and I changed my display name to “The Mail Lies”. And now my tweet looks how you see it above. It looks the same on &lt;a href="http://www.dailymail.co.uk/sciencetech/article-3038293/Can-resist-Reddit-button-Online-experiment-tests-self-control-driving-web-distraction.html"&gt;the Mail article&lt;/a&gt;.&lt;/p&gt;
  337. &lt;p&gt;As I see it, this can go one of two ways. Either I the Mail notice what I’ve done and remove my tweet from the article (in which case I win because I’m no longer being quoted by the Daily Mail). Or they don’t notice and my tweet is displayed on the article in its current form – well at least until I get bored and change my profile picture and display name back again.&lt;/p&gt;
  338. &lt;p&gt;This afternoon has been quite fun. The caper has been pretty widely shared on Twitter and Facebook and couple of people have told me that I’ve “won the internet”.&lt;/p&gt;
  339. &lt;p&gt;So remember boys and girls, publishing unfiltered user-generated content on your web site is always a dangerous prospect.&lt;/p&gt;
  340. &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/2014/07/first-direct-update.html"     class="crp_title"&gt;First Direct 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/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/2013/07/amanda-palmer-vs-the-daily-mail.html"     class="crp_title"&gt;Amanda Palmer vs The Daily Mail&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/11/mailbait.html"     class="crp_title"&gt;Mailbait&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="crp_clear"&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/04/quoted-by-the-daily-mail.html"&gt;Quoted By The Daily Mail&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  341. &lt;img src="http://feeds.feedburner.com/~r/realdavblog/~4/-giBklrljXs" height="1" width="1" alt=""/&gt;</content>
  342.    <summary type="html">&lt;p&gt;This morning Tweetdeck pinged and alerted me to this tweet from a friend of mine. @davorg Did you see that you feature in your favourite online newspaper? http://t.co/pumrCggsZr — Robin Houston (@robinhouston) April 17, 2015 He was right too. The article was about Reddit’s Button and about half-way though it, they quoted my tweet. I &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/04/quoted-by-the-daily-mail.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;Quoted By The Daily Mail&lt;/span&gt;&lt;/a&gt;
  343. &lt;div class="crp_related"&gt;
  344. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  345. &lt;ul&gt;
  346. &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;
  347. &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;
  348. &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;
  349. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/07/amanda-palmer-vs-the-daily-mail.html"     class="crp_title"&gt;Amanda Palmer vs The Daily Mail&lt;/a&gt;&lt;/li&gt;
  350. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/11/mailbait.html"     class="crp_title"&gt;Mailbait&lt;/a&gt;&lt;/li&gt;
  351. &lt;/ul&gt;
  352. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  353. &lt;/div&gt;
  354. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/04/quoted-by-the-daily-mail.html"&gt;Quoted By The Daily Mail&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  355. </summary>
  356.    <author>
  357.      <name>Dave Cross</name>
  358.    </author>
  359.    <id>http://blog.dave.org.uk/?p=3422</id>
  360.    <published>2015-04-17T20:06:32Z</published>
  361.    <updated>2015-04-17T20:06:32Z</updated>
  362.    <category term="media"/>
  363.    <category term="daily mail"/>
  364.    <category term="reddit"/>
  365.    <category term="thebutton"/>
  366.    <category term="twitter"/>
  367.  </entry>
  368.  <entry>
  369.    <title>davblog: Public Service Announcement: Aegon Pensions</title>
  370.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/4SZe9wGIHV0/public-service-announcement-aegon-pensions.html" type="text/html"/>
  371.    <content type="xhtml">
  372.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Do you have a person pension with <a href="https://www.aegon.co.uk/">Aegon</a>? If so, I suggest you ask them to double-check the statements they have been sending you, as they might well be incorrect. I’ve recently discovered that mine have been wrong to the tune of several thousand pounds for seven years.</p>
  373. <p>This year I’ve been transferring all of my personal pensions to a <a href="https://en.wikipedia.org/wiki/Self-invested_personal_pension">SIPP</a> at <a href="http://hl.co.uk/">Hargreaves Lansdown</a>. It has generally been a painless process. You fill in a form and sent it to HL, they contact your current pension provider and a week later the money is sitting in your HL account.</p>
  374. <p>Of course, you’ll want to know how much is in your pension fund, so you know how much money to expect to be transferred. But your current provider will be sending you annual statements. As the stock market has been rising for a lot of the last twelve months, the amount you’ll get will almost certainly be a little more than the amount on your last statement.</p>
  375. <p>But there will be two values on your statement. – the fund value (FV) and the transfer value (TV). FV is the amount your fund is worth if you leave it with the current provider. TV is the amount they’ll send to your new provider. Looking at all of my statements, FV and TV were the same amount. So all was well with the world.</p>
  376. <p>I found that I had six personal pensions (I really have no idea why I had so many – it seems rather more than you’d need) and, over a period of a few weeks, I set the transfers going on all of them. Five of them worked fine – I got a little more money than I expected. The sixth was with Aegon.</p>
  377. <p>One Friday afternoon I got a phone call from an adviser at HL. Aegon wouldn’t make the transfer unless I confirmed that I was aware of the current valuations. He read out the valuations that Aegon had given him. TV was about 20% smaller than FV. This meant that I’d lose about a fifth of my money if I transferred the fund. I asked him to put the transfer on hold until I could confirm this with Aegon.</p>
  378. <p>Aegon’s customer support line is closed over the weekend, so I couldn’t speak to them until Monday. But I double-checked my statements. There was a different between FV and TV in 2007, but since 2008 every statement had shown the two values to be the same. And, naively, I assumed that my statements were accurate.</p>
  379. <p>On Monday I called Aegon. Their customer support people tried to help but really all they could do was to pass my questions on and tell me to wait for ten days or so.</p>
  380. <p>A couple of weeks later I got a reply which basically just said that my statements were wrong and that, yes, there was a 20% early exit fee on my plan. I wasn’t happy with that so I wrote back to them asking how their system could issue incorrect statements for seven years without anyone noticing.</p>
  381. <p>Today I got a reply to that letter. Here’s what they say:</p>
  382. <blockquote><p>Statements are system generated reports which are issued annually. These are usually issued directly to Policyholders or Financial Advisers without being checked. It was only when you brought the error regarding values to our attention the the matter has been investigated and future automated statements have been inhibited.</p></blockquote>
  383. <p>So there you go. There was apparently a bug in Aegon’s system which went undetected for seven years, until I tried to transfer my pension fund away from them.</p>
  384. <p>I’m going to continue to try and find out how I can get my money out of Aegon without losing a large chunk of it. Given that most of the industry doesn’t work the same way that they do, I suspect my best approach is to accuse them of mis-selling the policy in the first place.</p>
  385. <p>But if you have been receiving statements from Aegon over the last seven years, I’d ask them to check the values if I was you. Let me know what you find out.</p>
  386. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2013/03/money-from-hmrc.html" class="crp_title">Money From HMRC</a></li><li><a href="http://blog.dave.org.uk/2015/01/taxing-affairs.html" class="crp_title">Taxing Affairs</a></li><li><a href="http://blog.dave.org.uk/2014/06/sky-broadband-update.html" class="crp_title">Sky Broadband Update</a></li><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/2014/04/free-web-advice-marvel.html" class="crp_title">Free Web Advice: Marvel</a></li></ul><div class="crp_clear"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2015/04/public-service-announcement-aegon-pensions.html">Public Service Announcement: Aegon Pensions</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  387. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/4SZe9wGIHV0" height="1" width="1" alt=""/></div>
  388.    </content>
  389.    <summary type="html">&lt;p&gt;Do you have a person pension with Aegon? If so, I suggest you ask them to double-check the statements they have been sending you, as they might well be incorrect. I’ve recently discovered that mine have been wrong to the tune of several thousand pounds for seven years. This year I’ve been transferring all of &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/04/public-service-announcement-aegon-pensions.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;Public Service Announcement: Aegon Pensions&lt;/span&gt;&lt;/a&gt;
  390. &lt;div class="crp_related"&gt;
  391. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  392. &lt;ul&gt;
  393. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/03/money-from-hmrc.html"     class="crp_title"&gt;Money From HMRC&lt;/a&gt;&lt;/li&gt;
  394. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/01/taxing-affairs.html"     class="crp_title"&gt;Taxing Affairs&lt;/a&gt;&lt;/li&gt;
  395. &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;
  396. &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;
  397. &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;
  398. &lt;/ul&gt;
  399. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  400. &lt;/div&gt;
  401. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/04/public-service-announcement-aegon-pensions.html"&gt;Public Service Announcement: Aegon Pensions&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  402. </summary>
  403.    <author>
  404.      <name>Dave Cross</name>
  405.    </author>
  406.    <id>http://blog.dave.org.uk/?p=3418</id>
  407.    <published>2015-04-08T15:27:08Z</published>
  408.    <updated>2015-04-08T15:27:08Z</updated>
  409.    <category term="life"/>
  410.    <category term="aegon"/>
  411.    <category term="money"/>
  412.    <category term="pension"/>
  413.  </entry>
  414.  <entry>
  415.    <title>perl hacks: Modern Perl Articles</title>
  416.    <link rel="alternate" href="http://perlhacks.com/2015/03/modern-perl-articles/" type="text/html"/>
  417.    <content type="xhtml">
  418.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Back in 2011 I wrote a series of three articles about “Modern Perl” for <a href="http://linuxformat.com/">Linux Format</a>. Although I mentioned <a href="http://perlhacks.com/2011/10/modern-perl-in-linux-format/">all</a> <a href="http://perlhacks.com/2011/12/more-modern-perl-in-linux-format/">three</a> <a href="http://perlhacks.com/2012/01/yet-more-modern-perl-in-linux-format/">articles</a> here as they were published, I didn’t post the actual contents of the articles as I wasn’t sure about the copyright situation.</p>
  419. <p>But now I suspect that enough time has passed that copyright is no longer going to be an issue, so I’ve added the <a href="http://perlhacks.com/articles/modern-perl-programming/">full text of the articles</a> to this site. The articles are all about writing a simple web application to track your reading. They use DBIx::Class and Dancer.</p>
  420. <ul class="list-pages-shortcode child-pages">
  421. <li class="page_item page-item-1050"><a href="http://perlhacks.com/articles/modern-perl-programming/database-access-with-dbixclass/">Database Access with DBIx::Class</a></li>
  422. <li class="page_item page-item-1054"><a href="http://perlhacks.com/articles/modern-perl-programming/a-simple-web-app/">A Simple Web App</a></li>
  423. <li class="page_item page-item-1058"><a href="http://perlhacks.com/articles/modern-perl-programming/adding-to-our-web-app/">Adding to Our Web App</a></li>
  424. </ul>
  425. <p>Let me know if you find them interesting or useful.</p>
  426. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/03/modern-perl-articles/">Modern Perl Articles</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  427. </div>
  428.    </content>
  429.    <summary type="xhtml">
  430.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Back in 2011 I wrote a series of three articles about “Modern Perl” for Linux Format. Although I mentioned all three articles here as they were published, I didn’t post the actual contents of the articles as I wasn’t sure about the copyright situation. But now I suspect that enough time has passed that copyright … <a href="http://perlhacks.com/2015/03/modern-perl-articles/" class="more-link">Continue reading <span class="screen-reader-text">Modern Perl Articles</span></a></p>
  431. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/03/modern-perl-articles/">Modern Perl Articles</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  432. </div>
  433.    </summary>
  434.    <author>
  435.      <name>Dave Cross</name>
  436.    </author>
  437.    <id>http://perlhacks.com/?p=1065</id>
  438.    <published>2015-03-28T12:19:03Z</published>
  439.    <updated>2015-03-28T12:19:03Z</updated>
  440.    <category term="Programming"/>
  441.    <category term="dancer"/>
  442.    <category term="dbix::class"/>
  443.    <category term="linux format"/>
  444.    <category term="programming. modern perl"/>
  445.  </entry>
  446.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  447.    
  448.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16755429775/"/>
  449.    <id>tag:flickr.com,2005:/photo/16755429775</id>
  450.    <published>2015-03-08T17:51:15Z</published>
  451.    <updated>2015-03-08T17:51:15Z</updated>
  452.    <flickr:date_taken>2014-12-31T12:31:53-08:00</flickr:date_taken>
  453.    <dc:date.Taken>2014-12-31T12:31:53-08:00</dc:date.Taken>
  454.    <content type="html"> &lt;p&gt;&lt;a href="http://www.flickr.com/people/davorg/"&gt;Dave Cross&lt;/a&gt; posted a photo:&lt;/p&gt;
  455. &lt;p&gt;&lt;a href="http://www.flickr.com/photos/davorg/16755429775/" title="Antsiranana"&gt;&lt;img src="http://farm8.staticflickr.com/7653/16755429775_6d7866fa82_m.jpg" width="240" height="159" alt="Antsiranana" /&gt;&lt;/a&gt;&lt;/p&gt;
  456.  
  457. </content>
  458.    <author>
  459.      <name>Dave Cross</name>
  460.      <uri>http://www.flickr.com/people/davorg/</uri>
  461.      <flickr:nsid>39021241@N00</flickr:nsid>
  462.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  463.    </author>
  464.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  465.    <link rel="enclosure" type="image/jpeg" href="http://farm8.staticflickr.com/7653/16755429775_6d7866fa82_b.jpg"/>
  466.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  467.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  468.    <displaycategories>
  469.            </displaycategories>
  470.    <title>flickr: Antsiranana</title></entry>
  471.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  472.    
  473.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16133117834/"/>
  474.    <id>tag:flickr.com,2005:/photo/16133117834</id>
  475.    <published>2015-03-08T17:50:46Z</published>
  476.    <updated>2015-03-08T17:50:46Z</updated>
  477.    <flickr:date_taken>2014-12-31T12:31:47-08:00</flickr:date_taken>
  478.    <dc:date.Taken>2014-12-31T12:31:47-08:00</dc:date.Taken>
  479.    <content type="html"> &lt;p&gt;&lt;a href="http://www.flickr.com/people/davorg/"&gt;Dave Cross&lt;/a&gt; posted a photo:&lt;/p&gt;
  480. &lt;p&gt;&lt;a href="http://www.flickr.com/photos/davorg/16133117834/" title="Antisiranana"&gt;&lt;img src="http://farm9.staticflickr.com/8728/16133117834_64dba44267_m.jpg" width="240" height="159" alt="Antisiranana" /&gt;&lt;/a&gt;&lt;/p&gt;
  481.  
  482. </content>
  483.    <author>
  484.      <name>Dave Cross</name>
  485.      <uri>http://www.flickr.com/people/davorg/</uri>
  486.      <flickr:nsid>39021241@N00</flickr:nsid>
  487.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  488.    </author>
  489.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  490.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8728/16133117834_64dba44267_b.jpg"/>
  491.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  492.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  493.    <displaycategories>
  494.            </displaycategories>
  495.    <title>flickr: Antisiranana</title></entry>
  496.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  497.    
  498.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16568031850/"/>
  499.    <id>tag:flickr.com,2005:/photo/16568031850</id>
  500.    <published>2015-03-08T17:50:16Z</published>
  501.    <updated>2015-03-08T17:50:16Z</updated>
  502.    <flickr:date_taken>2014-12-31T11:14:01-08:00</flickr:date_taken>
  503.    <dc:date.Taken>2014-12-31T11:14:01-08:00</dc:date.Taken>
  504.    <content type="html"> &lt;p&gt;&lt;a href="http://www.flickr.com/people/davorg/"&gt;Dave Cross&lt;/a&gt; posted a photo:&lt;/p&gt;
  505. &lt;p&gt;&lt;a href="http://www.flickr.com/photos/davorg/16568031850/" title="Stray Dog in Antisiranana"&gt;&lt;img src="http://farm9.staticflickr.com/8577/16568031850_0f7648e58d_m.jpg" width="240" height="159" alt="Stray Dog in Antisiranana" /&gt;&lt;/a&gt;&lt;/p&gt;
  506.  
  507. </content>
  508.    <author>
  509.      <name>Dave Cross</name>
  510.      <uri>http://www.flickr.com/people/davorg/</uri>
  511.      <flickr:nsid>39021241@N00</flickr:nsid>
  512.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  513.    </author>
  514.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  515.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8577/16568031850_0f7648e58d_b.jpg"/>
  516.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  517.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  518.    <displaycategories>
  519.            </displaycategories>
  520.    <title>flickr: Stray Dog in Antisiranana</title></entry>
  521.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  522.    
  523.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16568026910/"/>
  524.    <id>tag:flickr.com,2005:/photo/16568026910</id>
  525.    <published>2015-03-08T17:49:46Z</published>
  526.    <updated>2015-03-08T17:49:46Z</updated>
  527.    <flickr:date_taken>2014-12-31T11:06:23-08:00</flickr:date_taken>
  528.    <dc:date.Taken>2014-12-31T11:06:23-08:00</dc:date.Taken>
  529.    <content type="html"> &lt;p&gt;&lt;a href="http://www.flickr.com/people/davorg/"&gt;Dave Cross&lt;/a&gt; posted a photo:&lt;/p&gt;
  530. &lt;p&gt;&lt;a href="http://www.flickr.com/photos/davorg/16568026910/" title="Antisiranana"&gt;&lt;img src="http://farm9.staticflickr.com/8702/16568026910_3958ea06c2_m.jpg" width="240" height="159" alt="Antisiranana" /&gt;&lt;/a&gt;&lt;/p&gt;
  531.  
  532. </content>
  533.    <author>
  534.      <name>Dave Cross</name>
  535.      <uri>http://www.flickr.com/people/davorg/</uri>
  536.      <flickr:nsid>39021241@N00</flickr:nsid>
  537.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  538.    </author>
  539.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  540.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8702/16568026910_3958ea06c2_b.jpg"/>
  541.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  542.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  543.    <displaycategories>
  544.            </displaycategories>
  545.    <title>flickr: Antisiranana</title></entry>
  546.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  547.    
  548.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16567841438/"/>
  549.    <id>tag:flickr.com,2005:/photo/16567841438</id>
  550.    <published>2015-03-08T17:49:19Z</published>
  551.    <updated>2015-03-08T17:49:19Z</updated>
  552.    <flickr:date_taken>2014-12-31T11:05:58-08:00</flickr:date_taken>
  553.    <dc:date.Taken>2014-12-31T11:05:58-08:00</dc:date.Taken>
  554.    <content type="html"> &lt;p&gt;&lt;a href="http://www.flickr.com/people/davorg/"&gt;Dave Cross&lt;/a&gt; posted a photo:&lt;/p&gt;
  555. &lt;p&gt;&lt;a href="http://www.flickr.com/photos/davorg/16567841438/" title="Antisiranana"&gt;&lt;img src="http://farm9.staticflickr.com/8579/16567841438_b03b64b0dd_m.jpg" width="240" height="159" alt="Antisiranana" /&gt;&lt;/a&gt;&lt;/p&gt;
  556.  
  557. </content>
  558.    <author>
  559.      <name>Dave Cross</name>
  560.      <uri>http://www.flickr.com/people/davorg/</uri>
  561.      <flickr:nsid>39021241@N00</flickr:nsid>
  562.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  563.    </author>
  564.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  565.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8579/16567841438_b03b64b0dd_b.jpg"/>
  566.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  567.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  568.    <displaycategories>
  569.            </displaycategories>
  570.    <title>flickr: Antisiranana</title></entry>
  571.  <entry>
  572.    <title>books read: Perl by Example</title>
  573.    <link rel="alternate" href="http://www.goodreads.com/review/show/1212942364?utm_medium=api&amp;utm_source=rss" type="text/html"/>
  574.    <content type="xhtml">
  575.      <div xmlns="http://www.w3.org/1999/xhtml">
  576.      
  577.      <a href="http://www.goodreads.com/book/show/24331680-perl-by-example?utm_medium=api&amp;utm_source=rss"><img alt="Perl by Example" src="http://d.gr-assets.com/books/1420793649s/24331680.jpg"/></a><br/>
  578.                                      author: Ellie Quigley<br/>
  579.                                      name: David<br/>
  580.                                      average rating: 0.0<br/>
  581.                                      book published: 1994<br/>
  582.                                      rating: 0<br/>
  583.                                      read at: <br/>
  584.                                      date added: 2015/03/01<br/>
  585.                                      shelves: currently-reading<br/>
  586.                                      review: <br/><br/>
  587.                                      
  588.    </div>
  589.    </content>
  590.    <id>http://www.goodreads.com/review/show/1212942364?utm_medium=api&amp;utm_source=rss</id>
  591.    <published>2015-03-01T03:39:18-08:00</published>
  592.    <updated>2015-03-01T03:39:18-08:00</updated>
  593.  </entry>
  594.  <entry>
  595.    <title>perl hacks: Penetration Testing with Perl</title>
  596.    <link rel="alternate" href="http://perlhacks.com/2015/02/penetration-testing-perl/" type="text/html"/>
  597.    <content type="xhtml">
  598.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I was sent a review copy of <em>Penetration Testing with Perl</em> by <span class="author notFaded" data-width="">Douglas Berdeaux</span>. I really didn’t like it. Here’s the review I’ve been sharing on Amazon and Goodreads.</p>
  599. <blockquote><p>I’ve been wanting to learn a bit about Penetration Testing for a while and as Perl is my programming language of choice this seemed like a great book to choose. Unfortunately, it wasn’t.</p>
  600. <p>I have no doubt that the author knows what he is talking about when it comes to Penetration Testing, but there were several things that prevented this book from transferring much of that knowledge to me.</p>
  601. <p>Firstly, the typesetting in the book is terrible. I was reading the Amazon eBook edition – it’s possible that the printed version is better. For example, there’s a lot of code in this book and it’s in a proportional font. In order for code to be readable, it needs to be in a fixed-width font. Also, there are two or three places where an equation appears in the text, but it appears in an unreadably small font. I have just checked in the PDF version of the book and neither of these problems appear there. It would seem that this is down to a problem in Packt’s eBook creation process.</p>
  602. <p>Secondly, it’s obvious that English is not the author’s first language. At times this really prevents him from getting his point across clearly. I’m very happy to see non-native speakers publishing books in English. But the publishers need to provide high quality proof-readers to ensure that the language is good enough.</p>
  603. <p>Thirdly, the organisation of the book is a little haphazard. The first couple of chapters are introductions to Perl and Linux, but after that we are dropped immediately into a discussion of network sniffing. Later in the book there are chapters on intelligence gathering, social engineering and password cracking. These are all far simpler topics which could have served as a gentle introduction to the book, getting people up to speed on Perl before delving into the complex internals of network packets. Once again, I think this should be the responsibility of the publisher. There should be a good editor working on the book alongside the author and shaping the manuscript so that the story it tells guides the user through the subject as easily as possible.</p>
  604. <p>Finally, the book falls short in its technical content. I can’t comment on the author’s explanations of Penetration Testing (I was, after all, reading the book to learn about that topic), but the Perl code that he uses throughout the book is really bad. He is obviously someone who only ever learned enough Perl to get his job done and never bothered to learn how Perl really works or to keep his knowledge up to date. As a result, the book is full of the kind of code that gives Perl its reputation as a write-only language. The idioms that he uses are often out of date (using ‘-w’ instead of ‘use warnings’, for example), confusing (predeclaring subroutines unnecessarily, using ampersands on function calls) or just plain wrong (‘my ($x, $y, $z) = 0 x 3′ just doesn’t do what he thinks it does). Actually, it’s worse than that. It’s not just Perl he doesn’t understand, it’s the fundamentals of good software engineering. His code is a confusing mess of global variables and bad design. This is another failure by the publisher. There should have been a competent technical editor checking this stuff.</p>
  605. <p>I’ve read four or five Packt books now. They’re all of this standard. None of them should have been published. But Packt seem to have hit on a good business model. They find unknown authors and produce books as cheaply as possible. Their publishing process omits all of the editing and checking that more reputable publishers use. The books that come out of this process are, of course, terrible. But, for reasons I can’t understand, people still buy them.</p></blockquote>
  606. <p>Packt books – just say no.</p>
  607. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/02/penetration-testing-perl/">Penetration Testing with Perl</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  608. </div>
  609.    </content>
  610.    <summary type="xhtml">
  611.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I was sent a review copy of Penetration Testing with Perl by Douglas Berdeaux. I really didn’t like it. Here’s the review I’ve been sharing on Amazon and Goodreads. I’ve been wanting to learn a bit about Penetration Testing for a while and as Perl is my programming language of choice this seemed like a … <a href="http://perlhacks.com/2015/02/penetration-testing-perl/" class="more-link">Continue reading <span class="screen-reader-text">Penetration Testing with Perl</span></a></p>
  612. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/02/penetration-testing-perl/">Penetration Testing with Perl</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  613. </div>
  614.    </summary>
  615.    <author>
  616.      <name>Dave Cross</name>
  617.    </author>
  618.    <id>http://perlhacks.com/?p=1041</id>
  619.    <published>2015-02-10T12:05:55Z</published>
  620.    <updated>2015-02-10T12:05:55Z</updated>
  621.    <category term="Books"/>
  622.    <category term="book"/>
  623.    <category term="packt"/>
  624.    <category term="penetration testing"/>
  625.    <category term="penetration testing with perl"/>
  626.    <category term="perl"/>
  627.  </entry>
  628.  <entry>
  629.    <title>davblog: TwittElection</title>
  630.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/w09P7UQlQYs/twittelection.html" type="text/html"/>
  631.    <content type="xhtml">
  632.      <div xmlns="http://www.w3.org/1999/xhtml"><p>I was convinced that the general election in 2010 was going to be the “Twitter election”. I built a web site (now sadly lost somewhere in cyberspace) that monitored what <abbr title="Prospective Parliamentary Candidates"><a href="https://en.wikipedia.org/wiki/Prospective_parliamentary_candidate">PPCs</a></abbr> were saying on Twitter in <a href="https://en.wikipedia.org/wiki/Battersea_%28UK_Parliament_constituency%29">my local constituency</a>. But, all in all, it wasn’t very impressive. I <a href="http://www.slideshare.net/davorg/battersea-election-candidates-on-the-internet">gave a talk</a> about how disappointing it had all been but then I forgot about it all.</p>
  633. <p>But there’s another general election coming. And, surely, this one must be the Twitter election? A lot has changed in the last five years. Everyone is using Twitter. Surely this time some useful and interesting political discussion will take place on Twitter.</p>
  634. <p>I set the bar a lot higher this time. Instead of just monitoring my local constituency, I’ve <a href="http://twittelection.co.uk/">created a site</a> that monitors all 650 constituencies in the country. <a href="http://twittelection.co.uk/c/">Each constituency has a page</a>, and on that page you’ll find a Twitter widget which displays a list I’m curating which contains all of the PPCs I can find for that constituency.</p>
  635. <p>Well, when I say “I can find”, that’s a bit of a simplification. Obviously, finding details of all of the PPCs for 650 constituencies would be a bit of a mammoth task. But I’ve had help. There is a wonderful site called <a href="https://yournextmp.com/">YourNextMP</a> which is crowdsourcing details of all of the PPCs. And they have an <a href="https://yournextmp.com/help/api">API</a> which allows me to grab their data periodically and update my information. If you have any information about PPCs in a constituency that they don’t already have, please consider adding it to their database.</p>
  636. <p>After I found YourNextMP, it was just a simple matter of programming. I made heavy use of the <a href="https://dev.twitter.com/rest/public">Twitter API </a>(via the <a href="https://metacpan.org/pod/Net::Twitter">Net::Twitter</a> Perl module) and I’ve hosted the site on <a href="https://pages.github.com/">Github Pages</a> (so I don’t need to worry if it suddenly gets massively popular). All of my code is <a href="https://github.com/davorg/twittelection">available on Github</a> – so feel free to send pull requests if there are features you’d like to add.</p>
  637. <p>Oh, and obviously there’s a Twitter account – <a href="https://twitter.com/TwittElection/">@TwittElection</a>. Follow that if you want updates about the site or general chatter about the election campaign.</p>
  638. <p>Today marks 100 days until the general election. I thought that was an appropriate day on which to officially launch the site.</p>
  639. <p>Please let me know if you find the site useful.</p>
  640. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2015/06/twittelection-at-opentech.html" class="crp_title">TwittElection at OpenTech</a></li><li><a href="http://blog.dave.org.uk/2013/05/the-political-web-2.html" class="crp_title">The Political Web</a></li><li><a href="http://blog.dave.org.uk/2012/10/mps-web-sites.html" class="crp_title">MPs’ Web Sites</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/08/the-chances-of-anything-going-to-mars.html" class="crp_title">The Chances of Anything Going to Mars</a></li></ul><div class="crp_clear"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2015/01/twittelection.html">TwittElection</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  641. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/w09P7UQlQYs" height="1" width="1" alt=""/></div>
  642.    </content>
  643.    <summary type="html">&lt;p&gt;I was convinced that the general election in 2010 was going to be the “Twitter election”. I built a web site (now sadly lost somewhere in cyberspace) that monitored what PPCs were saying on Twitter in my local constituency. But, all in all, it wasn’t very impressive. I gave a talk about how disappointing it &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/01/twittelection.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;TwittElection&lt;/span&gt;&lt;/a&gt;
  644. &lt;div class="crp_related"&gt;
  645. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  646. &lt;ul&gt;
  647. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/06/twittelection-at-opentech.html"     class="crp_title"&gt;TwittElection at OpenTech&lt;/a&gt;&lt;/li&gt;
  648. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/05/the-political-web-2.html"     class="crp_title"&gt;The Political Web&lt;/a&gt;&lt;/li&gt;
  649. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2012/10/mps-web-sites.html"     class="crp_title"&gt;MPs&amp;#8217; Web Sites&lt;/a&gt;&lt;/li&gt;
  650. &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;
  651. &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;
  652. &lt;/ul&gt;
  653. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  654. &lt;/div&gt;
  655. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/01/twittelection.html"&gt;TwittElection&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  656. </summary>
  657.    <author>
  658.      <name>Dave Cross</name>
  659.    </author>
  660.    <id>http://blog.dave.org.uk/?p=3410</id>
  661.    <published>2015-01-27T13:26:30Z</published>
  662.    <updated>2015-01-27T13:26:30Z</updated>
  663.    <category term="politics"/>
  664.    <category term="ge2015"/>
  665.    <category term="general election"/>
  666.    <category term="ppc"/>
  667.    <category term="twittelection"/>
  668.    <category term="twitter"/>
  669.  </entry>
  670.  <entry>
  671.    <title>davblog: Taxing Affairs</title>
  672.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/jIxs6kiHhaY/taxing-affairs.html" type="text/html"/>
  673.    <content type="xhtml">
  674.      <div xmlns="http://www.w3.org/1999/xhtml"><p>People complain about the Inland Revenue. Of course they complain about the taxes they have to pay. But they also complain about the level of service they get from the people in the tax office. Sometimes they might question the level of intelligence of people in the tax office.</p>
  675. <p>Here’s an example of why they might do that. It concerns my company’s VAT return.</p>
  676. <p>At the end of November I needed to fill in a VAT return. My accountants have a great online system where it does all that calculation for me. I can even submit the return online. The only thing it doesn’t do is to transfer the money to HMRC.</p>
  677. <p>So on the 29th November I logged in to my account and saw that I needed to pay HMRC £X. I logged into my company bank account and transferred £X to HMRC’s account.</p>
  678. <p>In December I went off on holiday.</p>
  679. <p>In early January I returned from holiday and found a letter from HMRC saying that I hadn’t submitted a VAT return and that they had therefore estimated my payment as £Y. £Y was less than £X.</p>
  680. <p>I emailed my accountant, she looked into it and soon realised what the problem was. Although I had made the payment for the VAT owed, I hadn’t actually submitted the return. I logged on and did that immediately. This should have been the end of the matter.</p>
  681. <p>This morning I received another letter from HMRC. One written on 9th January. Today is 17th January. I don’t know what mechanism HMRC use to send letters, but it’s not particularly fast.</p>
  682. <p>This morning’s letter said that my company had an outstanding VAT debt of £377.30.</p>
  683. <p>£377.30 is £X – £Y. That is, it is exactly the amount by which the the payment I made was greater than their estimate of my liability.</p>
  684. <p>This is very confusing. I have paid <strong>more</strong> than their estimated that I owed and they still think that I owe them money. I have no idea how they could have reached that conclusion.</p>
  685. <p>But I hope my accountant can find out when she gets back to her office on Monday.</p>
  686. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2013/03/money-from-hmrc.html" class="crp_title">Money From HMRC</a></li><li><a href="http://blog.dave.org.uk/2013/06/jungle-money.html" class="crp_title">Jungle Money</a></li><li><a href="http://blog.dave.org.uk/2015/04/public-service-announcement-aegon-pensions.html" class="crp_title">Public Service Announcement: Aegon Pensions</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/2014/04/sky-broadband.html" class="crp_title">Sky Broadband</a></li></ul><div class="crp_clear"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2015/01/taxing-affairs.html">Taxing Affairs</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  687. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/jIxs6kiHhaY" height="1" width="1" alt=""/></div>
  688.    </content>
  689.    <summary type="html">&lt;p&gt;People complain about the Inland Revenue. Of course they complain about the taxes they have to pay. But they also complain about the level of service they get from the people in the tax office. Sometimes they might question the level of intelligence of people in the tax office. Here’s an example of why they &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/01/taxing-affairs.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;Taxing Affairs&lt;/span&gt;&lt;/a&gt;
  690. &lt;div class="crp_related"&gt;
  691. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  692. &lt;ul&gt;
  693. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/03/money-from-hmrc.html"     class="crp_title"&gt;Money From HMRC&lt;/a&gt;&lt;/li&gt;
  694. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/06/jungle-money.html"     class="crp_title"&gt;Jungle Money&lt;/a&gt;&lt;/li&gt;
  695. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/04/public-service-announcement-aegon-pensions.html"     class="crp_title"&gt;Public Service Announcement: Aegon Pensions&lt;/a&gt;&lt;/li&gt;
  696. &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;
  697. &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;
  698. &lt;/ul&gt;
  699. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  700. &lt;/div&gt;
  701. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/01/taxing-affairs.html"&gt;Taxing Affairs&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  702. </summary>
  703.    <author>
  704.      <name>Dave Cross</name>
  705.    </author>
  706.    <id>http://blog.dave.org.uk/?p=3405</id>
  707.    <published>2015-01-17T19:43:47Z</published>
  708.    <updated>2015-01-17T19:43:47Z</updated>
  709.    <category term="customer service"/>
  710.    <category term="Uncategorized"/>
  711.    <category term="hmrc"/>
  712.    <category term="idiocy"/>
  713.    <category term="vat"/>
  714.  </entry>
  715.  <entry>
  716. <id>tag:search.cpan.org,2014-11-24:DAVECROSS:Tie-Hash-Cannabinol-1.11</id>
  717.  
  718. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/Tie-Hash-Cannabinol-1.11/"/>
  719. <updated>2014-11-24T16:28:42Z</updated>
  720. <author>
  721. <name>Dave Cross</name>
  722. <uri>http://search.cpan.org/~davecross/</uri>
  723. </author>
  724. <content>
  725. Perl extension for creating hashes that forget things
  726. </content>
  727. <title>cpan: Tie-Hash-Cannabinol-1.11</title></entry>
  728.  <entry>
  729.    <title>slideshare: Perl in the Internet of Things</title>
  730.    <link rel="alternate" href="http://www.slideshare.net/davorg/perl-in-the-internet-of-things" type="text/html"/>
  731.    <content type="html">
  732.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/piot-141110045507-conversion-gate02-thumbnail-2.jpg?cb=1415595439" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt; My training course from the 2014 London Perl Workshop
  733.      </content>
  734.    <summary type="html">
  735.        &lt;img src="//cdn.slidesharecdn.com/ss_thumbnails/piot-141110045507-conversion-gate02-thumbnail-2.jpg?cb=1415595439" alt ="" style="border:1px solid #C3E6D8;float:right;" /&gt;&lt;br&gt; My training course from the 2014 London Perl Workshop
  736.      </summary>
  737.    <author>
  738.      <name>davorg@slideshare.net(davorg)</name>
  739.    </author>
  740.    <id>http://www.slideshare.net/davorg/perl-in-the-internet-of-things</id>
  741.    <published>2014-11-10T04:55:07Z</published>
  742.    <updated>2014-11-10T04:55:07Z</updated>
  743.  </entry>
  744. </feed>
  745.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda