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-28T01:03:09Z</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/625733022516674560" type="text/html"/>
  16.    <content type="xhtml">
  17.      <div xmlns="http://www.w3.org/1999/xhtml">"10 female video game characters reversed photoshopped with average american body shapes" http://t.co/f0TSjP5sBd</div>
  18.    </content>
  19.    <updated>2015-07-27T18:22:32Z</updated>
  20.  <title>twitter: "10 female video game characters reversed photoshopped with average american body shapes" http://t.co/f0TSjP5sBd</title></entry>
  21.  <entry>
  22.    <title>last.fm: Suzanne Vega – Tom's Diner</title>
  23.    <link rel="alternate" href="http://www.last.fm/music/Suzanne+Vega/_/Tom%27s+Diner" type="text/html"/>
  24.    <content type="xhtml">
  25.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Suzanne+Vega</div>
  26.    </content>
  27.    <id>http://www.last.fm/user/davorg#1438017524</id>
  28.    <published>2015-07-27T17:18:44Z</published>
  29.    <updated>2015-07-27T17:18:44Z</updated>
  30.  </entry>
  31.  <entry>
  32.    <title>last.fm: Radiohead – Like Spinning Plates</title>
  33.    <link rel="alternate" href="http://www.last.fm/music/Radiohead/_/Like+Spinning+Plates" type="text/html"/>
  34.    <content type="xhtml">
  35.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Radiohead</div>
  36.    </content>
  37.    <id>http://www.last.fm/user/davorg#1438017247</id>
  38.    <published>2015-07-27T17:14:07Z</published>
  39.    <updated>2015-07-27T17:14:07Z</updated>
  40.  </entry>
  41.  <entry>
  42.    <title>last.fm: Fleetwood Mac – The Chain</title>
  43.    <link rel="alternate" href="http://www.last.fm/music/Fleetwood+Mac/_/The+Chain" type="text/html"/>
  44.    <content type="xhtml">
  45.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Fleetwood+Mac</div>
  46.    </content>
  47.    <id>http://www.last.fm/user/davorg#1438016987</id>
  48.    <published>2015-07-27T17:09:47Z</published>
  49.    <updated>2015-07-27T17:09:47Z</updated>
  50.  </entry>
  51.  <entry>
  52.    <title>last.fm: Kate Bush – Ken</title>
  53.    <link rel="alternate" href="http://www.last.fm/music/Kate+Bush/_/Ken" type="text/html"/>
  54.    <content type="xhtml">
  55.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Kate+Bush</div>
  56.    </content>
  57.    <id>http://www.last.fm/user/davorg#1438016718</id>
  58.    <published>2015-07-27T17:05:18Z</published>
  59.    <updated>2015-07-27T17:05:18Z</updated>
  60.  </entry>
  61.  <entry>
  62.    <title>last.fm: Kate Bush – Ken</title>
  63.    <link rel="alternate" href="http://www.last.fm/music/Kate+Bush/_/Ken" type="text/html"/>
  64.    <content type="xhtml">
  65.      <div xmlns="http://www.w3.org/1999/xhtml">http://www.last.fm/music/Kate+Bush</div>
  66.    </content>
  67.    <id>http://www.last.fm/user/davorg#1438016718</id>
  68.    <published>2015-07-27T17:05:18Z</published>
  69.    <updated>2015-07-27T17:05:18Z</updated>
  70.  </entry>
  71.  <entry>
  72.    
  73.    <link rel="alternate" href="https://twitter.com/davorg/status/625653921269293056" type="text/html"/>
  74.    <content type="xhtml">
  75.      <div xmlns="http://www.w3.org/1999/xhtml">@castaway Yeah. Me too.</div>
  76.    </content>
  77.    <updated>2015-07-27T13:08:13Z</updated>
  78.  <title>twitter: @castaway Yeah. Me too.</title></entry>
  79.  <entry>
  80.    
  81.    <link rel="alternate" href="https://twitter.com/davorg/status/625646985861812224" type="text/html"/>
  82.    <content type="xhtml">
  83.      <div xmlns="http://www.w3.org/1999/xhtml">Mixed messages from Amazon. My package is "out for delivery" but still "arriving Wednesday". It's a long way from Croydon to Balham :/</div>
  84.    </content>
  85.    <updated>2015-07-27T12:40:40Z</updated>
  86.  <title>twitter: Mixed messages from Amazon. My package is "out for delivery" but still "arriving Wednesday". It's a long way from Croydon to Balham :/</title></entry>
  87.  <entry>
  88.    
  89.    <link rel="alternate" href="https://twitter.com/davorg/status/625645911193030656" type="text/html"/>
  90.    <content type="xhtml">
  91.      <div xmlns="http://www.w3.org/1999/xhtml">The BBC are skipping episodes of TotP 1980 that were introduced by Savile or DLT. And yet, last week's had an interview with Jonathan King.</div>
  92.    </content>
  93.    <updated>2015-07-27T12:36:23Z</updated>
  94.  <title>twitter: The BBC are skipping episodes of TotP 1980 that were introduced by Savile or DLT. And yet, last week's had an interview with Jonathan King.</title></entry>
  95.  <entry>
  96.    
  97.    <link rel="alternate" href="https://twitter.com/davorg/status/625603721687396352" type="text/html"/>
  98.    <content type="xhtml">
  99.      <div xmlns="http://www.w3.org/1999/xhtml">It should have no effect on Jeremy Corbyn's campaign. But I've just been reminded of his nutty brother Piers - http://t.co/91T9BGihcJ</div>
  100.    </content>
  101.    <updated>2015-07-27T09:48:45Z</updated>
  102.  <title>twitter: It should have no effect on Jeremy Corbyn's campaign. But I've just been reminded of his nutty brother Piers - http://t.co/91T9BGihcJ</title></entry>
  103.  <entry>
  104.    <title>books read: The Children Act</title>
  105.    <link rel="alternate" href="http://www.goodreads.com/review/show/1343437249?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/21965107-the-children-act?utm_medium=api&amp;utm_source=rss"><img alt="The Children Act" src="http://d.gr-assets.com/books/1405290619s/21965107.jpg"/></a><br/>
  110.                                      author: Ian McEwan<br/>
  111.                                      name: David<br/>
  112.                                      average rating: 3.62<br/>
  113.                                      book published: 2014<br/>
  114.                                      rating: 0<br/>
  115.                                      read at: <br/>
  116.                                      date added: 2015/07/23<br/>
  117.                                      shelves: currently-reading<br/>
  118.                                      review: <br/><br/>
  119.                                      
  120.    </div>
  121.    </content>
  122.    <id>http://www.goodreads.com/review/show/1343437249?utm_medium=api&amp;utm_source=rss</id>
  123.    <published>2015-07-23T14:17:58-07:00</published>
  124.    <updated>2015-07-23T14:17:58-07:00</updated>
  125.  </entry>
  126.  <entry>
  127.    <title>davblog: Financial Account Aggregation</title>
  128.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/Rw8zPj4ll2o/financial-account-aggregation.html" type="text/html"/>
  129.    <content type="html">&lt;p&gt;Three years ago, I wrote a blog post entitled &lt;a href="http://blog.dave.org.uk/2012/03/internet-security-rule-one.html"&gt;Internet Security Rule One&lt;/a&gt; about the stupidity of sharing your passwords with anyone. I finished that post with a joke.&lt;/p&gt;
  130. &lt;blockquote&gt;&lt;p&gt;Look, I’ll tell you what. I’ve got a really good idea for an add-on for your online banking service. Just leave the login details in a comment below and I’ll set it up for you.&lt;/p&gt;&lt;/blockquote&gt;
  131. &lt;p&gt;It was a joke because it was obviously ridiculous. No-one would possibly think it was a good idea to share their banking password with anyone else.&lt;/p&gt;
  132. &lt;p&gt;I should know not to make assumptions like that.&lt;/p&gt;
  133. &lt;p&gt;Yesterday I was made aware of a service called &lt;a href="https://www.moneydashboard.com/"&gt;Money Dashboard&lt;/a&gt;. Money Dashboard aggregates all of your financial accounts so that you can see them all in one convenient place. They can then generate all sorts of interesting reports about where your money is going and can probably make intelligent suggestions about things you can do to improve your financial situation. It sounds like a great product. I’d love to have access to a system like that.&lt;/p&gt;
  134. &lt;p&gt;There’s one major flaw though.&lt;/p&gt;
  135. &lt;p&gt;In order to collect the information they need from all of your financial accounts, they need your login details for the various sites that you use. And that’s a violation of the Internet Security Rule One. You should never give your passwords to anyone else – particularly not passwords that are as important as your banking password.&lt;/p&gt;
  136. &lt;p&gt;I would have thought that was obvious. But they have 100,000 happy users.&lt;/p&gt;
  137. &lt;p&gt;Of course they have have &lt;a href="https://www.moneydashboard.com/security"&gt;a page on their site&lt;/a&gt; telling you exactly how securely they store your details. They use “industry-standard security practices”, their application is read-only “which means it cannot be used for withdrawals, payments or to transfer your funds”. They have “selected partners with outstanding reputations and extensive experience in security solutions”. It all sounds lovely. But it really doesn’t mean very much.&lt;/p&gt;
  138. &lt;p&gt;It doesn’t mean very much because at the heart of their system, they need to log on to your bank’s web site pretending to be you in order to get hold of your account information. And that means that no matter how securely they store your passwords, at some point they need to be able to retrieve them in plain text so they can use them to log on to your banks web site. So there must be code somewhere in their system which punches through all of that security and gets the string “pa$$word”. So in the worst case scenario, if someone compromises their servers they will be able to get access to your passwords.&lt;/p&gt;
  139. &lt;p&gt;If that doesn’t convince you, then here’s a simpler reason for not using the service. Sharing your passwords with anyone else is almost certainly a violation of your bank’s terms and conditions. So if someone does get your details from Money Dashboard’s system and uses that information to wreak havoc in your bank account – good luck getting any compensation.&lt;/p&gt;
  140. &lt;p&gt;Here, for example, are &lt;a href="http://www1.firstdirect.com/content_static/pdf/account_terms_1114.pdf"&gt;First Direct’s T&amp;Cs&lt;/a&gt; about this (in section 9.1):&lt;/p&gt;
  141. &lt;blockquote&gt;&lt;p&gt;You must take all reasonable precautions to keep safe and prevent fraudulent use of any cards, security devices, security details (including PINs, security numbers, passwords or other details including those which allow you to use Internet Banking and Telephone Banking).&lt;/p&gt;
  142. &lt;p&gt;These precautions include but are not limited to all of the following, as applicable:&lt;/p&gt;
  143. &lt;p&gt;[snip]&lt;/p&gt;
  144. &lt;ul&gt;
  145. &lt;li&gt;not allowing anyone else to have or use your card or PIN or any of our security devices, security details or password(s) (including for Internet Banking and Telephone Banking) and not disclosing them to anyone, including the police, an account aggregation service that is not operated by us&lt;/li&gt;
  146. &lt;/ul&gt;
  147. &lt;/blockquote&gt;
  148. &lt;p&gt;Incidentally, that “not operated by us” is a nice piece of hubris. First Direct run their own account aggregation service which, of course, they trust implicitly. But they can’t possibly trust anybody else’s service.&lt;/p&gt;
  149. &lt;p&gt;I started talking about this on Twitter yesterday and I got &lt;a href="http://www.twitlonger.com/show/n_1sn43u5"&gt;this response&lt;/a&gt; from the &lt;a href="https://twitter.com/moneydashboard"&gt;@moneydashboard&lt;/a&gt; account. It largely ignores the security aspects and concentrates on why you shouldn’t worry about breaking your bank’s T&amp;Cs. They seem to be campaigning to get T&amp;Cs changed so allow explicit exclusions for sharing passwords with account aggregation services.&lt;/p&gt;
  150. &lt;p&gt;I think this is entirely wrong-headed. I think there is a better campaign that they should be running.&lt;/p&gt;
  151. &lt;p&gt;As I said above, I think that the idea of an account aggregation service is great. I would love to use something like Money Dashboard. But I’m completely unconvinced by their talk of security. They need access to your passwords in plain text. And it doesn’t matter that their application only reads your data. If someone can extract your login details from Money Dashboard’s systems then they can do whatever they want with your money.&lt;/p&gt;
  152. &lt;p&gt;So what’s the solution? Well I agree with one thing that Money Dashboard say in their statement:&lt;/p&gt;
  153. &lt;blockquote&gt;&lt;p&gt;All that you are sharing with Money Dashboard is data; data which belongs to you. You are the customer, you should be telling the bank what to do, not the other way around!&lt;/p&gt;&lt;/blockquote&gt;
  154. &lt;p&gt;We should be able to tell our banks to share our data with third parties. But we should be able to do it in a manner that doesn’t entail giving anyone full access to our accounts. The problem is that there is only one level of access to your bank account. If you have the login details then you can do whatever you want. But what if there was a secondary set of access details – ones that could only read from the account?&lt;/p&gt;
  155. &lt;p&gt;If you’ve used the web much in recent years, you will have become familiar with this idea. For example, you might have wanted to give a web app access to your Twitter account. During this process you will be shown a screen (which, crucially, is hosted on Twitter’s web site, not the new app) asking if you want to grant rights to this new app. And telling you which rights you are granting (“This app wants to read your tweets.” “This app wants to tweet on you behalf.”) You can decide whether or not to grant that access.&lt;/p&gt;
  156. &lt;p&gt;This is called &lt;a href="https://en.wikipedia.org/wiki/OAuth"&gt;OAuth&lt;/a&gt;. And it’s a well-understood protocol. We need something like this for the finance industry. So that I can say to First Direct, “please allow this app to read my account details, but don’t let them change anything”. If we had something like that, then all of these problems will be solved. The Money Dashboard statement points to &lt;a href="http://fdata.org.uk/"&gt;the Financial Data and Technology Association&lt;/a&gt; – perhaps they are the people to push for this change.&lt;/p&gt;
  157. &lt;p&gt;I know why Money Dashboard are doing what they are doing. And I know they aren’t the only ones doing it (&lt;a href="https://www.mint.com/"&gt;Mint&lt;/a&gt;, for example, is a very popular service in the US). And I really, really want what they are offering. But just because a service is a really good idea, shouldn’t mean that you take technical short-cuts to implement it.&lt;/p&gt;
  158. &lt;p&gt;I think that the “Financial OAuth” I mentioned above will come about. But the finance industry is really slow to embrace change. Perhaps the Financial Data and Technology Association will drive it. Perhaps one forward-thinking bank will implement it and other bank’s customers will start to demand it.&lt;/p&gt;
  159. &lt;p&gt;Another possibility is that someone somewhere will lose a lot of money through sharing their details with a system like this and governments will immediately close them all down until a safer mechanism is in place.&lt;/p&gt;
  160. &lt;p&gt;I firmly believe that systems like Money Dashboard are an important part of the future. I just hope that they are implemented more safely than the current generation.&lt;/p&gt;
  161. &lt;p&gt; &lt;/p&gt;
  162. &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-passwords.html"     class="crp_title"&gt;First Direct Passwords&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;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;&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;&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;&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/07/financial-account-aggregation.html"&gt;Financial Account Aggregation&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  163. &lt;img src="http://feeds.feedburner.com/~r/realdavblog/~4/Rw8zPj4ll2o" height="1" width="1" alt=""/&gt;</content>
  164.    <summary type="html">&lt;p&gt;Three years ago, I wrote a blog post entitled Internet Security Rule One about the stupidity of sharing your passwords with anyone. I finished that post with a joke. Look, I’ll tell you what. I’ve got a really good idea for an add-on for your online banking service. Just leave the login details in a comment &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/07/financial-account-aggregation.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;Financial Account Aggregation&lt;/span&gt;&lt;/a&gt;
  165. &lt;div class="crp_related"&gt;
  166. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  167. &lt;ul&gt;
  168. &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;
  169. &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;
  170. &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;
  171. &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;
  172. &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;
  173. &lt;/ul&gt;
  174. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  175. &lt;/div&gt;
  176. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/07/financial-account-aggregation.html"&gt;Financial Account Aggregation&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  177. </summary>
  178.    <author>
  179.      <name>Dave Cross</name>
  180.    </author>
  181.    <id>http://blog.dave.org.uk/?p=3438</id>
  182.    <published>2015-07-21T13:05:50Z</published>
  183.    <updated>2015-07-21T13:05:50Z</updated>
  184.    <category term="tech"/>
  185.    <category term="aggregation"/>
  186.    <category term="finance"/>
  187.    <category term="money dashboard"/>
  188.    <category term="password"/>
  189.    <category term="security"/>
  190.  </entry>
  191.  <entry>
  192. <id>tag:search.cpan.org,2015-07-19:DAVECROSS:WWW-Shorten-OneShortLink-9.99</id>
  193.  
  194. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/WWW-Shorten-OneShortLink-9.99/"/>
  195. <updated>2015-07-19T15:05:11Z</updated>
  196. <author>
  197. <name>Dave Cross</name>
  198. <uri>http://search.cpan.org/~davecross/</uri>
  199. </author>
  200. <content>
  201. Perl interface to 1sl.net
  202. </content>
  203. <title>cpan: WWW-Shorten-OneShortLink-9.99</title></entry>
  204.  <entry>
  205. <id>tag:search.cpan.org,2015-07-19:DAVECROSS:WWW-Shorten-NotLong-9.99</id>
  206.  
  207. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/WWW-Shorten-NotLong-9.99/"/>
  208. <updated>2015-07-19T14:54:29Z</updated>
  209. <author>
  210. <name>Dave Cross</name>
  211. <uri>http://search.cpan.org/~davecross/</uri>
  212. </author>
  213. <content>
  214. Perl interface to notlong.com
  215. </content>
  216. <title>cpan: WWW-Shorten-NotLong-9.99</title></entry>
  217.  <entry>
  218.    <title>perl hacks: Culling My Modules</title>
  219.    <link rel="alternate" href="http://perlhacks.com/2015/07/culling-my-modules/" type="text/html"/>
  220.    <content type="xhtml">
  221.      <div xmlns="http://www.w3.org/1999/xhtml"><p>About a year ago, I dabbled briefly with <a href="https://travis-ci.org/">Travis CI</a>. I even gave <a href="http://perlhacks.com/2014/07/github-travis-ci-perl/">a talk about my experiences</a>. The plan was that I would start to use it for all of my code. But real life intervened and I never got round to getting any further with that project.</p>
  222. <p>This weekend, I finally made some progress. I added a .travis.yml file to all of my Github repositories that hold CPAN modules. I even fed the details through to <a href="https://coveralls.io/">Coveralls</a> so I get test coverage reports. From there it was a simple step to building <a href="http://code.perlhacks.com/">a dashboard</a> that monitors the health of all of my CPAN modules.</p>
  223. <p>And it’s not a pretty picture. You’ll see a lot of grey boxes on that page, indicating that Travis couldn’t run the tests or, worse, red boxes showing that the tests failed for some reason.</p>
  224. <p>Yesterday I made a few quick fixes to some of the modules (particularly in the WWW::Shorten namespace) and a couple more of them now work. But I want to work out how much effort it’s worth investing in the ones that are still failing. And, widening my scope a little, I’ve decided to take a close look at my CPAN modules and work out which ones are worth keeping and which ones I should just delete.</p>
  225. <p>For example, twelve years ago I was really excited about the idea of <a href="https://metacpan.org/release/AudioFile-Info">AudioFile::Info</a>. Most people were ripping music to MP3s, but I wasn’t following the crowd and was using Ogg Vorbis instead. AudioFile::Info and its friends was an attempt to make it easy to extract information from audio files no matter which format they were it. I suppose it was a kind of DBI for ID3 tags. But twelve years on, does anyone really care about that any more? I switched all of my music collection to MP3 years ago. If I recall correctly, the AudioFile::Info modules use a convoluted hand-crafted plugin system which never worked as well as it should. I could probably switch them to use some kind of plugin architecture from CPAN. But is it worth the effort?</p>
  226. <p>Then there is <a href="https://metacpan.org/release/Guardian-OpenPlatform-API">Guardian::O</a><a href="https://metacpan.org/release/Guardian-OpenPlatform-API">penPlatform::API</a> – a Perl wrapper around the Guardian’s API. I believe they changed the API end-point several years ago so the module doesn’t even work. But the fact that I’ve had no complaints about that, probably indicates that no-one has ever used it.</p>
  227. <p>It’s a similar story for <a href="http://Guardian::OpenPlatform::API">Net::Backpa</a><a href="http://Guardian::OpenPlatform::API">ck</a>. To be honest, I have no idea whether or not it still works. Is <a href="http://backpackit.com/">Backpack</a> still running? Ok, I’ve just checked and they’re no longer offering it to new customers. But if I’m not a paying customer is there any way I can test that it still works?</p>
  228. <p>Finally, there is the <a href="https://metacpan.org/release/WWW-Shorten">WWW::Shorten</a> family of modules. I released a module called WWW::MakeAShorterLink back in 2002, but it was Iain Truskett who realised that there should be a family of modules around the (at the time new) URL-shortening industry. I took over the module when Iain passed away and I’ve been maintaining it ever since. But it’s a real pain to maintain. The URL-shortening industry changes really quickly. For a long time, new services were popping up all of the time (and many of them closed down just as quickly). I haven’t been anywhere near quick enough at releasing versions that keep up with all the changes. I suspect that at least a couple of the current test failures are down to services that have closed down. I should probably investigate those over the next few days.</p>
  229. <p>I don’t think WWW::Shorten is in any danger of going away (but I need to find a better way to keep abreast of changes in the industry) but the other modules I’ve mentioned here (AudioFile::Info::*, Guardian::OpenPlatform::API and Net::Backpack) are on borrowed time. If you’re using them and you’d like to see new versions of them in the future then let me know. If you’d like to take over maintenance, then that would be even better.</p>
  230. <p>If I don’t hear from anyone (and I strongly suspect that I won’t) then I’ll be removing them from CPAN in a couple of months time.</p>
  231. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/07/culling-my-modules/">Culling My Modules</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  232. </div>
  233.    </content>
  234.    <summary type="xhtml">
  235.      <div xmlns="http://www.w3.org/1999/xhtml"><p>About a year ago, I dabbled briefly with Travis CI. I even gave a talk about my experiences. The plan was that I would start to use it for all of my code. But real life intervened and I never got round to getting any further with that project. This weekend, I finally made some … <a href="http://perlhacks.com/2015/07/culling-my-modules/" class="more-link">Continue reading <span class="screen-reader-text">Culling My Modules</span></a></p>
  236. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/07/culling-my-modules/">Culling My Modules</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  237. </div>
  238.    </summary>
  239.    <author>
  240.      <name>Dave Cross</name>
  241.    </author>
  242.    <id>http://perlhacks.com/?p=1100</id>
  243.    <published>2015-07-19T11:40:53Z</published>
  244.    <updated>2015-07-19T11:40:53Z</updated>
  245.    <category term="Miscellaneous"/>
  246.  </entry>
  247.  <entry>
  248. <id>tag:search.cpan.org,2015-07-18:DAVECROSS:WWW-Shorten-Shorl-1.93</id>
  249.  
  250. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/WWW-Shorten-Shorl-1.93/"/>
  251. <updated>2015-07-18T20:35:11Z</updated>
  252. <author>
  253. <name>Dave Cross</name>
  254. <uri>http://search.cpan.org/~davecross/</uri>
  255. </author>
  256. <content>
  257. Perl interface to shorl.com
  258. </content>
  259. <title>cpan: WWW-Shorten-Shorl-1.93</title></entry>
  260.  <entry>
  261. <id>tag:search.cpan.org,2015-07-18:DAVECROSS:WWW-Shorten-SnipURL-2.01</id>
  262.  
  263. <link rel="alternate" type="text/html" href="http://search.cpan.org/~davecross/WWW-Shorten-SnipURL-2.01/"/>
  264. <updated>2015-07-18T20:23:54Z</updated>
  265. <author>
  266. <name>Dave Cross</name>
  267. <uri>http://search.cpan.org/~davecross/</uri>
  268. </author>
  269. <content>
  270. Perl interface to SnipURL.com
  271. </content>
  272. <title>cpan: WWW-Shorten-SnipURL-2.01</title></entry>
  273.  <entry>
  274.    <title>perl hacks: Mailing Lists</title>
  275.    <link rel="alternate" href="http://perlhacks.com/2015/07/mailing-lists/" type="text/html"/>
  276.    <content type="html">&lt;p&gt;Over the years I’ve set up a few mailing lists for the discussion of various projects I’ve been involved with. There’s always an expectation that mailing lists will flourish without much input from me. But it never works out like that.&lt;/p&gt;
  277. &lt;p&gt;The truth is that most mailing lists just quietly die. And, in many cases, they end up attracting a lot of spam – which the owner of the list has to check on a semi-regular basis on the off-chance that there’s something interesting or useful in amongst the crap. There never is.&lt;/p&gt;
  278. &lt;p&gt;So I’ve decided to close a few mailing lists that didn’t seem to be going anywhere. I don’t suppose anyone will miss them, but I’ve taken a copy of the archives and I may do something with them at some point in the future.&lt;/p&gt;
  279. &lt;p&gt;The lists that I have removed are:&lt;/p&gt;
  280. &lt;ul&gt;
  281. &lt;li&gt;perlanet@perlhacks.com&lt;/li&gt;
  282. &lt;li&gt;perl-api-squad@perlhacks.com&lt;/li&gt;
  283. &lt;li&gt;perl-mooc@perlhacks.com&lt;/li&gt;
  284. &lt;li&gt;training-news@learnperl.co.uk&lt;/li&gt;
  285. &lt;li&gt;xml-feed@perlhacks.com&lt;/li&gt;
  286. &lt;/ul&gt;
  287. &lt;p&gt;A couple of these lists have received slightly special treatment. The xml-feed list is advertised as the support email address for &lt;a href="https://metacpan.org/pod/XML::Feed"&gt;XML::Feed&lt;/a&gt;. I’ve redirected that address so that mail now comes to me. Hopefully my spam filters will ensure that I’m not overrun with spam from it before I work out a more permanent solution.&lt;/p&gt;
  288. &lt;p&gt;The other list that has been treated differently is the training-news one. That was set up so that people could get information about upcoming training courses that I would be running. I still think that’s useful, so I’ve replaced it with a new list (run by &lt;a href="http://mailchimp.com/"&gt;MailChimp&lt;/a&gt;). If you’re interested in keeping in touch with what I’m doing then please sign up to the new list by entering your email address below. (The same form will now appear in the sidebar on every page of this site.)&lt;/p&gt;
  289. &lt;hr /&gt;
  290. &lt;style type="text/css"&gt;.mc4wp-form input[name="_mc4wp_required_but_not_really"] { display: none !important; }&lt;/style&gt;&lt;!-- MailChimp for WordPress v2.3.7 - https://wordpress.org/plugins/mailchimp-for-wp/ --&gt;&lt;div id="mc4wp-form-1" class="form mc4wp-form"&gt;&lt;form method="post" role="form"&gt;&lt;p&gt;Sign up here for occasional email about stuff I'm doing with Perl, information about upcoming talks and training courses and other updates.&lt;/p&gt;
  291. &lt;p&gt;
  292. &lt;label&gt;Email address: &lt;/label&gt;
  293. &lt;input type="email" id="mc4wp_email" name="EMAIL" placeholder="Your email address" required /&gt;
  294. &lt;/p&gt;
  295. &lt;p&gt;(I promise not to spam you.)&lt;/p&gt;
  296. &lt;p&gt;
  297. &lt;input type="submit" value="Sign up" /&gt;
  298. &lt;/p&gt;
  299. &lt;input type="text" name="_mc4wp_required_but_not_really" value="" /&gt;&lt;input type="hidden" name="_mc4wp_timestamp" value="1437389781" /&gt;&lt;input type="hidden" name="_mc4wp_form_id" value="0" /&gt;&lt;input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-1" /&gt;&lt;input type="hidden" name="_mc4wp_form_submit" value="1" /&gt;&lt;input type="hidden" name="_mc4wp_form_nonce" value="9711b61cf5" /&gt;&lt;/form&gt;&lt;/div&gt;&lt;!-- / MailChimp for WordPress Plugin --&gt;
  300. &lt;hr /&gt;
  301. &lt;p&gt;So, there you are. I’ve removed a few moribund mailing lists. I hope that hasn’t ruined anyone’s day.&lt;/p&gt;
  302. &lt;p&gt;The post &lt;a rel="nofollow" href="http://perlhacks.com/2015/07/mailing-lists/"&gt;Mailing Lists&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://perlhacks.com"&gt;Perl Hacks&lt;/a&gt;.&lt;/p&gt;
  303. </content>
  304.    <summary type="xhtml">
  305.      <div xmlns="http://www.w3.org/1999/xhtml"><p>Over the years I’ve set up a few mailing lists for the discussion of various projects I’ve been involved with. There’s always an expectation that mailing lists will flourish without much input from me. But it never works out like that. The truth is that most mailing lists just quietly die. And, in many cases, … <a href="http://perlhacks.com/2015/07/mailing-lists/" class="more-link">Continue reading <span class="screen-reader-text">Mailing Lists</span></a></p>
  306. <p>The post <a rel="nofollow" href="http://perlhacks.com/2015/07/mailing-lists/">Mailing Lists</a> appeared first on <a rel="nofollow" href="http://perlhacks.com">Perl Hacks</a>.</p>
  307. </div>
  308.    </summary>
  309.    <author>
  310.      <name>Dave Cross</name>
  311.    </author>
  312.    <id>http://perlhacks.com/?p=1095</id>
  313.    <published>2015-07-15T12:43:44Z</published>
  314.    <updated>2015-07-15T12:43:44Z</updated>
  315.    <category term="Community"/>
  316.    <category term="community"/>
  317.    <category term="mailing lists"/>
  318.  </entry>
  319.  <entry>
  320.    <title>davblog: Opentech 2015</title>
  321.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/zfqQGRiKFFU/opentech-2015.html" type="text/html"/>
  322.    <content type="xhtml">
  323.      <div xmlns="http://www.w3.org/1999/xhtml"><p>It’s three weeks since I was at this year’s <a href="http://www.opentech.org.uk/2015/">Opentech conference</a> and I haven’t written my now-traditional post about what I saw. So let’s put that right.</p>
  324. <p>I got there rather later than expected. It was a nice day, so I decided that I would walk from Victoria station to ULU. That route took me past Buckingham Palace and up the Mall. But I hadn’t realised that the Trooping of the Colour was taking place which made it impossible to get across the Mall and into Trafalgar Square. Of course I didn’t realise that until I reached the corner of St James Park near the Admiralty Arch. A helpful policeman explained what was going on and suggested that my best bet was to go to St James Park tube station and get the underground to Embankment. This involved walking most of the way back through the park. And when I got to the tube station it was closed. So I ended up walking to Embankment.</p>
  325. <p>All of which meant I arrived about forty minutes later than I wanted to and the first session was in full swing as I got there.</p>
  326. <p>So what did I see?</p>
  327. <p><strong>Being Female on the Internet – Sarah Brown</strong></p>
  328. <p>This is the talk I missed most of. And I had really wanted to see this talk. As I arrived she was just finishing her talk, and the audio doesn’t seem to be on the Opentech web site.</p>
  329. <p><strong>Selling ideas – <a href="https://twitter.com/leashless" target="_new">Vinay Gupta</a></strong></p>
  330. <p>I think I didn’t concentrate on this as much as I should have. It was basically a talk about marketing – which is something that the geek community needs to get better at. Vinay illustrated his talk with examples from his <a href="http://hexayurt.com/">Hexayurt</a> project.</p>
  331. <p><strong>RIPA 2 – <a href="https://twitter.com/ianbrownoii" target="_new">Ian Brown</a></strong></p>
  332. <p class="notranslate slideshow-title-text">Ian talked about potential changes to the Regulation of Investigatory Powers Act. It was all very scary stuff. The slides <a href="http://www.slideshare.net/blogzilla/where-next-for-the-regulation-of-investigatory-powers-act">are online</a>.</p>
  333. <p><strong>The 3rd year of Snowdenia — <a href="https://twitter.com/cwilsonpalow" target="_new">Caroline Wilson Palow</a></strong></p>
  334. <p>Caroline talked about Ed Snowden’s work and the way it is changing the world.</p>
  335. <p><strong>Privacy: I do not think that word means what you think it means — Kat Matfield</strong></p>
  336. <p>Kat has been doing research into how end users view privacy on the web. It’s clear that people are worried about their privacy but that they don’t know enough about the subject in order to focus their fear (and anger) at the right things.</p>
  337. <p><strong>The State of the Network Address — <a href="https://twitter.com/billt" target="_new">Bill Thompson</a></strong></p>
  338. <p>Bill thinks that many of the world’s woes are caused by people in power abusing the technological tools that geeks have build. And he would like us to do more to prevent them doing that.</p>
  339. <p><strong>The State of Data — <a href="https://twitter.com/agentgav" target="_new">Gavin Starks</a></strong></p>
  340. <p>Gavin works for the <a href="http://opendatainstitute.org/">Open Data Institute</a>. It’s his job to help organisations to release as much data as possible and to help the rest of us to make as much use of that data as possible. He talked about the problems that he sees in this new data-rich world.</p>
  341. <p><strong>Using data to find patterns in law — <a href="https://twitter.com/johnlsheridan" target="_new">John Sheridan</a></strong></p>
  342. <p>John is using impressive text parsing and manipulation techniques to investigate the UK’s legislation. It sounds like a really interesting project.</p>
  343. <p><strong>Scenic environments, healthy environments? How open data offers answers to this age-old question. — <a href="https://twitter.com/thoughtsymmetry" target="_new">Chanuki Seresinhe</a></strong></p>
  344. <p>The answer seems to be yes :-)</p>
  345. <p><strong>I stood as a candidate, and… — <a href="https://twitter.com/floppy" target="_new">James Smith</a></strong></p>
  346. <p>James stood as a candidate in this year’s general election, using various geek tools to power his campaign. He talked through the story of his campaign and tried to encourage others to try the same thing in the next election.</p>
  347. <p><strong>Democracy Club — <a href="https://twitter.com/symroe" target="_new">Sym Roe</a></strong></p>
  348. <p>The Democracy Club built an number of tools and web sites which built databases of information about candidates in the recent election – and then shared that data with the public. Sym explained why and how these tools were built.</p>
  349. <p><strong>The Twitter Election? — <a href="https://twitter.com/davorg" target="_new">Dave Cross</a></strong></p>
  350. <p>This was me. I’ve already <a href="http://blog.dave.org.uk/2015/06/twittelection-at-opentech.html">written up my talk</a>.</p>
  351. <p><strong><span id="talk_B6" class="talk6">Election: what’s next</span></strong></p>
  352. <p>This was supposed to follow my talk. Bill Thompson had some ideas to start the discussion and suggested that anyone interested retired to the bar. I put away my laptop and various other equipment and the set off to find them. But I failed, so I went home instead.</p>
  353. <p>Yet another massively successful event. Thanks, as always, to all of the speakers and organisers.</p>
  354. <div class="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://blog.dave.org.uk/2013/05/opentech-2013.html" class="crp_title">OpenTech 2013</a></li><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/2015/01/twittelection.html" class="crp_title">TwittElection</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></ul><div class="crp_clear"/></div><p>The post <a rel="nofollow" href="http://blog.dave.org.uk/2015/07/opentech-2015.html">Opentech 2015</a> appeared first on <a rel="nofollow" href="http://blog.dave.org.uk">Davblog</a>.</p>
  355. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/zfqQGRiKFFU" height="1" width="1" alt=""/></div>
  356.    </content>
  357.    <summary type="html">&lt;p&gt;It’s three weeks since I was at this year’s Opentech conference and I haven’t written my now-traditional post about what I saw. So let’s put that right. I got there rather later than expected. It was a nice day, so I decided that I would walk from Victoria station to ULU. That route took me &amp;#8230; &lt;a href="http://blog.dave.org.uk/2015/07/opentech-2015.html" class="more-link"&gt;Continue reading &lt;span class="screen-reader-text"&gt;Opentech 2015&lt;/span&gt;&lt;/a&gt;
  358. &lt;div class="crp_related"&gt;
  359. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  360. &lt;ul&gt;
  361. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2013/05/opentech-2013.html"     class="crp_title"&gt;OpenTech 2013&lt;/a&gt;&lt;/li&gt;
  362. &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;
  363. &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;
  364. &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;
  365. &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;
  366. &lt;/ul&gt;
  367. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  368. &lt;/div&gt;
  369. &lt;p&gt;The post &lt;a rel="nofollow" href="http://blog.dave.org.uk/2015/07/opentech-2015.html"&gt;Opentech 2015&lt;/a&gt; appeared first on &lt;a rel="nofollow" href="http://blog.dave.org.uk"&gt;Davblog&lt;/a&gt;.&lt;/p&gt;
  370. </summary>
  371.    <author>
  372.      <name>Dave Cross</name>
  373.    </author>
  374.    <id>http://blog.dave.org.uk/?p=3435</id>
  375.    <published>2015-07-04T10:22:27Z</published>
  376.    <updated>2015-07-04T10:22:27Z</updated>
  377.    <category term="Uncategorized"/>
  378.    <category term="opentech"/>
  379.    <category term="opentech2015"/>
  380.  </entry>
  381.  <entry>
  382.    <title>davblog: TwittElection at OpenTech</title>
  383.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/wNrReAFIq6w/twittelection-at-opentech.html" type="text/html"/>
  384.    <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;
  385. &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;
  386. &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;
  387. &lt;ul&gt;
  388. &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;
  389. &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;
  390. &lt;li&gt;I love Twitter too. Who doesn’t?&lt;/li&gt;
  391. &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;
  392. &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;
  393. &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;
  394. &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;
  395. &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;
  396. &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;
  397. &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;
  398. &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;
  399. &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;
  400. &lt;li&gt;So with data from YNMP and my code, the site was build.&lt;/li&gt;
  401. &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;
  402. &lt;li&gt;I became an expert in Twitter error codes.&lt;/li&gt;
  403. &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;
  404. &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;
  405. &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;
  406. &lt;li&gt;The first time I was blocked it was @glenntingle, the UKIP candidate for Norwich North.&lt;/li&gt;
  407. &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;
  408. &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;
  409. &lt;li&gt;I’m not sure how good I feel about hounding a candidate off of Twitter.&lt;/li&gt;
  410. &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;
  411. &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;
  412. &lt;li&gt;72% of candidates were on Twitter.&lt;/li&gt;
  413. &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;
  414. &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;
  415. &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;
  416. &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;
  417. &lt;li&gt;There are 1790 days until the next UK general election (as of Saturday 13th June 2015).&lt;/li&gt;
  418. &lt;/ul&gt;
  419. &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/2015/07/opentech-2015.html"     class="crp_title"&gt;Opentech 2015&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;/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;
  420. &lt;img src="http://feeds.feedburner.com/~r/realdavblog/~4/wNrReAFIq6w" height="1" width="1" alt=""/&gt;</content>
  421.    <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;
  422. &lt;div class="crp_related"&gt;
  423. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  424. &lt;ul&gt;
  425. &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;
  426. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/07/opentech-2015.html"     class="crp_title"&gt;Opentech 2015&lt;/a&gt;&lt;/li&gt;
  427. &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;
  428. &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;
  429. &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;
  430. &lt;/ul&gt;
  431. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  432. &lt;/div&gt;
  433. &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;
  434. </summary>
  435.    <author>
  436.      <name>Dave Cross</name>
  437.    </author>
  438.    <id>http://blog.dave.org.uk/?p=3427</id>
  439.    <published>2015-06-16T09:15:24Z</published>
  440.    <updated>2015-06-16T09:15:24Z</updated>
  441.    <category term="tech"/>
  442.    <category term="election"/>
  443.    <category term="ge2015"/>
  444.    <category term="opentech"/>
  445.    <category term="opentech2015"/>
  446.    <category term="politics"/>
  447.    <category term="twittelection"/>
  448.    <category term="twitter"/>
  449.    <category term="ynmp"/>
  450.  </entry>
  451.  <entry>
  452.    <title>slideshare: TwittElection</title>
  453.    <link rel="alternate" href="http://www.slideshare.net/davorg/twittelection-49363746" type="text/html"/>
  454.    <content type="html">
  455.        &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.
  456.      </content>
  457.    <summary type="html">
  458.        &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.
  459.      </summary>
  460.    <author>
  461.      <name>davorg@slideshare.net(davorg)</name>
  462.    </author>
  463.    <id>http://www.slideshare.net/davorg/twittelection-49363746</id>
  464.    <published>2015-06-14T06:18:09Z</published>
  465.    <updated>2015-06-14T06:18:09Z</updated>
  466.  </entry>
  467.  <entry>
  468.    <title>perl hacks: Building TwittElection</title>
  469.    <link rel="alternate" href="http://perlhacks.com/2015/05/building-twittelection/" type="text/html"/>
  470.    <content type="xhtml">
  471.      <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>
  472. <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>
  473. <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>
  474. <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>
  475. <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>
  476. </div>
  477.    </content>
  478.    <summary type="xhtml">
  479.      <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>
  480. <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>
  481. </div>
  482.    </summary>
  483.    <author>
  484.      <name>Dave Cross</name>
  485.    </author>
  486.    <id>http://perlhacks.com/?p=1090</id>
  487.    <published>2015-05-21T12:48:46Z</published>
  488.    <updated>2015-05-21T12:48:46Z</updated>
  489.    <category term="Articles"/>
  490.    <category term="built in perl"/>
  491.    <category term="opentech"/>
  492.    <category term="twittelection"/>
  493.  </entry>
  494.  <entry>
  495.    <title>perl hacks: DBIC Training in Granada</title>
  496.    <link rel="alternate" href="http://perlhacks.com/2015/05/dbic-training-in-granada/" type="text/html"/>
  497.    <content type="xhtml">
  498.      <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>
  499. <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>
  500. <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>
  501. <p>The course size is limited. So you might want to think about booking soon.</p>
  502. <p>Hope to see some of you in Granada.</p>
  503. <p><strong>Two updates:</strong></p>
  504. <ol>
  505. <li>The date has now been confirmed as 1st September.</li>
  506. <li>The early-bird pricing has been extended until 1st June.</li>
  507. </ol>
  508. <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>
  509. </div>
  510.    </content>
  511.    <summary type="xhtml">
  512.      <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>
  513. <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>
  514. </div>
  515.    </summary>
  516.    <author>
  517.      <name>Dave Cross</name>
  518.    </author>
  519.    <id>http://perlhacks.com/?p=1085</id>
  520.    <published>2015-05-15T12:19:48Z</published>
  521.    <updated>2015-05-15T12:19:48Z</updated>
  522.    <category term="Training"/>
  523.    <category term="dbic"/>
  524.    <category term="dbix::class"/>
  525.    <category term="training"/>
  526.    <category term="yapc"/>
  527.    <category term="yapc europe"/>
  528.    <category term="yapceu15"/>
  529.  </entry>
  530.  <entry>
  531.    <title>perl hacks: Subroutines and Ampersands</title>
  532.    <link rel="alternate" href="http://perlhacks.com/2015/04/subroutines-and-ampersands/" type="text/html"/>
  533.    <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;
  534. &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;
  535. &lt;p&gt;Using an ampersand when calling a subroutine has three effects.&lt;/p&gt;
  536. &lt;ol&gt;
  537. &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;
  538. &lt;li&gt;It turns off prototype checking.&lt;/li&gt;
  539. &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;
  540. &lt;/ol&gt;
  541. &lt;p&gt;Let’s look at these three effects in a little more detail.&lt;/p&gt;
  542. &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;
  543. &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;
  544. &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;
  545. &lt;p&gt;So, no, there is no good reason to use ampersands when calling subroutines. Please don’t use them.&lt;/p&gt;
  546. &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;
  547. &lt;p&gt;What do you think? Have I missed something?&lt;/p&gt;
  548. &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;
  549. &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;
  550. </content>
  551.    <summary type="xhtml">
  552.      <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>
  553. <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>
  554. </div>
  555.    </summary>
  556.    <author>
  557.      <name>Dave Cross</name>
  558.    </author>
  559.    <id>http://perlhacks.com/?p=1081</id>
  560.    <published>2015-04-19T09:52:16Z</published>
  561.    <updated>2015-04-19T09:52:16Z</updated>
  562.    <category term="Programming"/>
  563.    <category term="ampersand"/>
  564.    <category term="programming"/>
  565.    <category term="subroutine"/>
  566.  </entry>
  567.  <entry>
  568.    <title>davblog: Quoted By The Daily Mail</title>
  569.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/-giBklrljXs/quoted-by-the-daily-mail.html" type="text/html"/>
  570.    <content type="html">&lt;p&gt;This morning Tweetdeck pinged and alerted me to this tweet from a friend of mine.&lt;/p&gt;
  571. &lt;div class="jetpack-video-wrapper"&gt;
  572. &lt;blockquote class="twitter-tweet" width="550"&gt;
  573. &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;
  574. &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;
  575. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/div&gt;
  576. &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;
  577. &lt;div class="jetpack-video-wrapper"&gt;
  578. &lt;blockquote class="twitter-tweet" width="550"&gt;
  579. &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;
  580. &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;
  581. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/div&gt;
  582. &lt;p&gt;My reaction was predictable.&lt;/p&gt;
  583. &lt;div class="jetpack-video-wrapper"&gt;
  584. &lt;blockquote class="twitter-tweet" width="550"&gt;
  585. &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;
  586. &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;
  587. &lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/div&gt;
  588. &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;
  589. &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;
  590. &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;
  591. &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;
  592. &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;
  593. &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;
  594. &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;
  595. &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;
  596. &lt;img src="http://feeds.feedburner.com/~r/realdavblog/~4/-giBklrljXs" height="1" width="1" alt=""/&gt;</content>
  597.    <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;
  598. &lt;div class="crp_related"&gt;
  599. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  600. &lt;ul&gt;
  601. &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;
  602. &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;
  603. &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;
  604. &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;
  605. &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;
  606. &lt;/ul&gt;
  607. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  608. &lt;/div&gt;
  609. &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;
  610. </summary>
  611.    <author>
  612.      <name>Dave Cross</name>
  613.    </author>
  614.    <id>http://blog.dave.org.uk/?p=3422</id>
  615.    <published>2015-04-17T20:06:32Z</published>
  616.    <updated>2015-04-17T20:06:32Z</updated>
  617.    <category term="media"/>
  618.    <category term="daily mail"/>
  619.    <category term="reddit"/>
  620.    <category term="thebutton"/>
  621.    <category term="twitter"/>
  622.  </entry>
  623.  <entry>
  624.    <title>davblog: Public Service Announcement: Aegon Pensions</title>
  625.    <link rel="alternate" href="http://feedproxy.google.com/~r/realdavblog/~3/4SZe9wGIHV0/public-service-announcement-aegon-pensions.html" type="text/html"/>
  626.    <content type="xhtml">
  627.      <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>
  628. <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>
  629. <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>
  630. <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>
  631. <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>
  632. <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>
  633. <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>
  634. <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>
  635. <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>
  636. <p>Today I got a reply to that letter. Here’s what they say:</p>
  637. <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>
  638. <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>
  639. <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>
  640. <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>
  641. <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/2015/07/financial-account-aggregation.html" class="crp_title">Financial Account Aggregation</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></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>
  642. <img src="http://feeds.feedburner.com/~r/realdavblog/~4/4SZe9wGIHV0" height="1" width="1" alt=""/></div>
  643.    </content>
  644.    <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;
  645. &lt;div class="crp_related"&gt;
  646. &lt;h3&gt;Related Posts:&lt;/h3&gt;
  647. &lt;ul&gt;
  648. &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;
  649. &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;
  650. &lt;li&gt;&lt;a href="http://blog.dave.org.uk/2015/07/financial-account-aggregation.html"     class="crp_title"&gt;Financial Account Aggregation&lt;/a&gt;&lt;/li&gt;
  651. &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;
  652. &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;
  653. &lt;/ul&gt;
  654. &lt;div class="crp_clear"&gt;&lt;/div&gt;
  655. &lt;/div&gt;
  656. &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;
  657. </summary>
  658.    <author>
  659.      <name>Dave Cross</name>
  660.    </author>
  661.    <id>http://blog.dave.org.uk/?p=3418</id>
  662.    <published>2015-04-08T15:27:08Z</published>
  663.    <updated>2015-04-08T15:27:08Z</updated>
  664.    <category term="life"/>
  665.    <category term="aegon"/>
  666.    <category term="money"/>
  667.    <category term="pension"/>
  668.  </entry>
  669.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  670.    
  671.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16755429775/"/>
  672.    <id>tag:flickr.com,2005:/photo/16755429775</id>
  673.    <published>2015-03-08T17:51:15Z</published>
  674.    <updated>2015-03-08T17:51:15Z</updated>
  675.    <flickr:date_taken>2014-12-31T12:31:53-08:00</flickr:date_taken>
  676.    <dc:date.Taken>2014-12-31T12:31:53-08:00</dc:date.Taken>
  677.    <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;
  678. &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;
  679.  
  680. </content>
  681.    <author>
  682.      <name>Dave Cross</name>
  683.      <uri>http://www.flickr.com/people/davorg/</uri>
  684.      <flickr:nsid>39021241@N00</flickr:nsid>
  685.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  686.    </author>
  687.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  688.    <link rel="enclosure" type="image/jpeg" href="http://farm8.staticflickr.com/7653/16755429775_6d7866fa82_b.jpg"/>
  689.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  690.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  691.    <displaycategories>
  692.            </displaycategories>
  693.    <title>flickr: Antsiranana</title></entry>
  694.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  695.    
  696.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16133117834/"/>
  697.    <id>tag:flickr.com,2005:/photo/16133117834</id>
  698.    <published>2015-03-08T17:50:46Z</published>
  699.    <updated>2015-03-08T17:50:46Z</updated>
  700.    <flickr:date_taken>2014-12-31T12:31:47-08:00</flickr:date_taken>
  701.    <dc:date.Taken>2014-12-31T12:31:47-08:00</dc:date.Taken>
  702.    <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;
  703. &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;
  704.  
  705. </content>
  706.    <author>
  707.      <name>Dave Cross</name>
  708.      <uri>http://www.flickr.com/people/davorg/</uri>
  709.      <flickr:nsid>39021241@N00</flickr:nsid>
  710.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  711.    </author>
  712.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  713.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8728/16133117834_64dba44267_b.jpg"/>
  714.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  715.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  716.    <displaycategories>
  717.            </displaycategories>
  718.    <title>flickr: Antisiranana</title></entry>
  719.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  720.    
  721.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16568031850/"/>
  722.    <id>tag:flickr.com,2005:/photo/16568031850</id>
  723.    <published>2015-03-08T17:50:16Z</published>
  724.    <updated>2015-03-08T17:50:16Z</updated>
  725.    <flickr:date_taken>2014-12-31T11:14:01-08:00</flickr:date_taken>
  726.    <dc:date.Taken>2014-12-31T11:14:01-08:00</dc:date.Taken>
  727.    <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;
  728. &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;
  729.  
  730. </content>
  731.    <author>
  732.      <name>Dave Cross</name>
  733.      <uri>http://www.flickr.com/people/davorg/</uri>
  734.      <flickr:nsid>39021241@N00</flickr:nsid>
  735.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  736.    </author>
  737.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  738.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8577/16568031850_0f7648e58d_b.jpg"/>
  739.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  740.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  741.    <displaycategories>
  742.            </displaycategories>
  743.    <title>flickr: Stray Dog in Antisiranana</title></entry>
  744.  <entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
  745.    
  746.    <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/davorg/16568026910/"/>
  747.    <id>tag:flickr.com,2005:/photo/16568026910</id>
  748.    <published>2015-03-08T17:49:46Z</published>
  749.    <updated>2015-03-08T17:49:46Z</updated>
  750.    <flickr:date_taken>2014-12-31T11:06:23-08:00</flickr:date_taken>
  751.    <dc:date.Taken>2014-12-31T11:06:23-08:00</dc:date.Taken>
  752.    <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;
  753. &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;
  754.  
  755. </content>
  756.    <author>
  757.      <name>Dave Cross</name>
  758.      <uri>http://www.flickr.com/people/davorg/</uri>
  759.      <flickr:nsid>39021241@N00</flickr:nsid>
  760.      <flickr:buddyicon>http://farm4.staticflickr.com/3678/buddyicons/39021241@N00.jpg?1372610206#39021241@N00</flickr:buddyicon>
  761.    </author>
  762.    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
  763.    <link rel="enclosure" type="image/jpeg" href="http://farm9.staticflickr.com/8702/16568026910_3958ea06c2_b.jpg"/>
  764.    <category term="madagascar" scheme="http://www.flickr.com/photos/tags/"/>
  765.    <category term="antisiranana" scheme="http://www.flickr.com/photos/tags/"/>
  766.    <displaycategories>
  767.            </displaycategories>
  768.    <title>flickr: Antisiranana</title></entry>
  769. </feed>
  770.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda