Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://www.davidpashley.com/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. xmlns:georss="http://www.georss.org/georss"
  9. xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
  10. >
  11.  
  12. <channel>
  13. <title>David Pashley.com</title>
  14. <atom:link href="https://www.davidpashley.com/feed/" rel="self" type="application/rss+xml" />
  15. <link>https://www.davidpashley.com/</link>
  16. <description></description>
  17. <lastBuildDate>Mon, 18 Jan 2016 14:40:36 +0000</lastBuildDate>
  18. <language>en-US</language>
  19. <sy:updatePeriod>
  20. hourly </sy:updatePeriod>
  21. <sy:updateFrequency>
  22. 1 </sy:updateFrequency>
  23. <generator>https://wordpress.org/?v=6.4.3</generator>
  24. <site xmlns="com-wordpress:feed-additions:1">58528584</site> <item>
  25. <title>NullPointerExceptions in Xerces-J</title>
  26. <link>https://www.davidpashley.com/2016/01/18/nullpointerexceptions-in-xerces-j/</link>
  27. <comments>https://www.davidpashley.com/2016/01/18/nullpointerexceptions-in-xerces-j/#comments</comments>
  28. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  29. <pubDate>Mon, 18 Jan 2016 14:40:36 +0000</pubDate>
  30. <category><![CDATA[java]]></category>
  31. <category><![CDATA[xerces]]></category>
  32. <guid isPermaLink="false">http://www.davidpashley.com/?p=479</guid>
  33.  
  34. <description><![CDATA[<p>Xerces is an XML library for several languages, but if a very common library in Java.&#160; I recently came across a problem with code intermittently throwing a NullPointerException inside the library: [sourcecode lang=&#8221;text&#8221;]java.lang.NullPointerException at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source) at org.apache.xerces.dom.ParentNode.item(Unknown Source) at [&#8230;]</p>
  35. <p>The post <a href="https://www.davidpashley.com/2016/01/18/nullpointerexceptions-in-xerces-j/">NullPointerExceptions in Xerces-J</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  36. ]]></description>
  37. <content:encoded><![CDATA[<p>Xerces is an XML library for several languages, but if a very common library in Java.&nbsp;</p>
  38. <p>I recently came across a problem with code intermittently throwing a NullPointerException inside the library:</p>
  39. [sourcecode lang=&#8221;text&#8221;]java.lang.NullPointerException<br />
  40.        at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source)<br />
  41.        at org.apache.xerces.dom.ParentNode.item(Unknown Source)<br />
  42.        at com.example.xml.Element.getChildren(Element.java:377)<br />
  43.        at com.example.xml.Element.newChildElementHelper(Element.java:229)<br />
  44.        at com.example.xml.Element.newChildElement(Element.java:180)<br />
  45.        &#8230;<br />
  46. [/sourcecode]You may also find the NullPointerException in ParentNode.nodeListGetLength() and other locations in ParentNode.</p>
  47. <p>Debugging this was not helped by the fact that the xercesImpl.jar is <a data-mce-href="http://stripped of line numbers" href="http://stripped of line numbers" target="_blank">stripped of line numbers</a>, so I couldn&#8217;t find the exact issue. After some searching, it appeared that the issue was down to the fact that Xerces is not thread-safe. ParentNode caches iterations through the NodeList of children to speed up performance and stores them in the Node&#8217;s Document object. In multi-threaded applications, this can lead to race conditions and NullPointerExceptions. &nbsp;And because it&#8217;s a threading issue, the problem is intermittent and hard to track down.</p>
  48. <p>The solution is to synchronise your code on the DOM, and this means the Document object, everywhere you access the nodes. I&#8217;m not certain exactly which methods need to be protected, but I believe it needs to be at least any function that will iterate a NodeList. I would start by protecting every access and testing performance, and removing some if needed.</p>
  49. [sourcecode lang=&#8221;java&#8221;]/**<br />
  50. * Returns the concatenation of all the text in all child nodes<br />
  51. * of the current element.<br />
  52. */<br />
  53. public String getText() {<br />
  54. StringBuilder result = new StringBuilder();</p>
  55. <p> synchronized ( m_element.getOwnerDocument()) {<br />
  56. NodeList nl = m_element.getChildNodes();<br />
  57. for (int i = 0; i &lt; nl.getLength(); i++) {<br />
  58. Node n = nl.item(i);</p>
  59. <p> if (n != null &amp;&amp; n.getNodeType() == org.w3c.dom.Node.TEXT_NODE) {<br />
  60. result.append(((CharacterData) n).getData());<br />
  61. }<br />
  62. }<br />
  63. }</p>
  64. <p> return result.toString();<br />
  65. }[/sourcecode]Notice the &#8220;synchronized ( m_element.getOwnerDocument()) {}&#8221; block around the section that deals with the DOM. The NPE would normally be thrown on the nl.getLength() or nl.item() calls.</p>
  66. <p>Since putting in the synchronized blocks, we&#8217;ve gone from having 78 NPEs between 2:30am and 3:00am, to having zero in the last 12 hours, so I think it&#8217;s safe to say, this has drastically reduced the problem.&nbsp;</p>
  67. <p>The post <a href="https://www.davidpashley.com/2016/01/18/nullpointerexceptions-in-xerces-j/">NullPointerExceptions in Xerces-J</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  68. ]]></content:encoded>
  69. <wfw:commentRss>https://www.davidpashley.com/2016/01/18/nullpointerexceptions-in-xerces-j/feed/</wfw:commentRss>
  70. <slash:comments>2</slash:comments>
  71. <post-id xmlns="com-wordpress:feed-additions:1">479</post-id> </item>
  72. <item>
  73. <title>Working with development servers</title>
  74. <link>https://www.davidpashley.com/2014/04/23/working-development-servers/</link>
  75. <comments>https://www.davidpashley.com/2014/04/23/working-development-servers/#comments</comments>
  76. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  77. <pubDate>Wed, 23 Apr 2014 15:31:45 +0000</pubDate>
  78. <category><![CDATA[computing]]></category>
  79. <guid isPermaLink="false">http://www.davidpashley.com/?p=467</guid>
  80.  
  81. <description><![CDATA[<p>I can&#8217;t believe that this is not a solved problem by now, but my Google-fu is failing me. I&#8217;m looking for a decent, working extension for Chrome that can redirect a list of hosts to a different server while setting [&#8230;]</p>
  82. <p>The post <a href="https://www.davidpashley.com/2014/04/23/working-development-servers/">Working with development servers</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  83. ]]></description>
  84. <content:encoded><![CDATA[<p>I can&#8217;t believe that this is not a solved problem by now, but my Google-fu is failing me. I&#8217;m looking for a decent, working extension for Chrome that can redirect a list of hosts to a different server while setting the Host: header to the right address. Everything I&#8217;ve found so far assumes that you&#8217;re running the servers on different urls. I&#8217;m using the same URL on different servers and don&#8217;t want to mess around with /etc/hosts.</p>
  85. <p>Please tell me something exists to do this?</p>
  86. <p>The post <a href="https://www.davidpashley.com/2014/04/23/working-development-servers/">Working with development servers</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  87. ]]></content:encoded>
  88. <wfw:commentRss>https://www.davidpashley.com/2014/04/23/working-development-servers/feed/</wfw:commentRss>
  89. <slash:comments>5</slash:comments>
  90. <post-id xmlns="com-wordpress:feed-additions:1">467</post-id> </item>
  91. <item>
  92. <title>Bad Password Policies</title>
  93. <link>https://www.davidpashley.com/2014/04/16/bad-password-policies/</link>
  94. <comments>https://www.davidpashley.com/2014/04/16/bad-password-policies/#comments</comments>
  95. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  96. <pubDate>Wed, 16 Apr 2014 01:03:01 +0000</pubDate>
  97. <category><![CDATA[computing]]></category>
  98. <guid isPermaLink="false">http://www.davidpashley.com/?p=459</guid>
  99.  
  100. <description><![CDATA[<p>After the whole Heartbleed fiasco, I&#8217;ve decided to continue my march towards improving my online security. I&#8217;d already begun the process of using LastPass to store my passwords and generate random passwords for each site, but I hadn&#8217;t completed the process, with [&#8230;]</p>
  101. <p>The post <a href="https://www.davidpashley.com/2014/04/16/bad-password-policies/">Bad Password Policies</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  102. ]]></description>
  103. <content:encoded><![CDATA[<p>After the whole Heartbleed fiasco, I&#8217;ve decided to continue my march towards improving my online security. I&#8217;d already begun the process of using <a href="http://lastpass.com" target="_blank">LastPass</a> to store my passwords and generate random passwords for each site, but I hadn&#8217;t completed the process, with some sites still using the same passwords, and some having less than ideal strength passwords, so I spent some time today improving my password position. Here&#8217;s some of the bad examples of password policy I&#8217;ve discovered today.</p>
  104. <p>First up we have Live.com. A maximum of 16 characters from the Microsoft auth service. Seems to accept any character though.</p>
  105. <p><a href="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-213657.png"><img decoding="async" alt="Screenshot from 2014-04-15 21:36:57" src="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-213657-300x101.png" width="300" height="101" /></a></p>
  106. <p>&nbsp;</p>
  107. <p>This excellent example is from creditexpert.co.uk, one of the credit agencies here in the UK. They not only restrict to 20 characters, they restrict you to @, ., _ or |. So much for teaching people how to protect themselves online.</p>
  108. <p><a href="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-173828.png"><img fetchpriority="high" decoding="async" alt="Screenshot from 2014-04-15 17:38:28" src="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-173828.png" width="695" height="563" /></a></p>
  109. <p>Here&#8217;s Tesco.com after attempting to change my password to &#8220;QvHn#9#kDD%cdPAQ4&amp;b&amp;ACb4x%48#b&#8221;. If you can figure out how this violates their rules, I&#8217;d love to know. And before you ask, I tried without numbers and that still failed so it can&#8217;t be the &#8220;three and only three&#8221; thing. The only other idea might be that they meant &#8220;&#8216;i.e.&#8221; rather than &#8220;e.g.&#8221;, but I didn&#8217;t test that.</p>
  110. <p><a href="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-162017.png"><img decoding="async" alt="Screenshot from 2014-04-15 16:20:17" src="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-162017.png" width="708" height="419" /></a></p>
  111. <p><strong>Edit: </strong>Here is a response from Tesco on Twitter:</p>
  112. <p><a href="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-16-074758.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-462" alt="Screenshot from 2014-04-16 07:47:58" src="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-16-074758.png" width="636" height="383" srcset="https://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-16-074758.png 636w, https://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-16-074758-300x180.png 300w" sizes="(max-width: 636px) 100vw, 636px" /></a></p>
  113. <p>Here&#8217;s a poor choice from ft.com, refusing to accept non-alphanumeric characters. On the plus side they did allow the full 30 characters in the password.</p>
  114. <p><a href="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-152208.png"><img loading="lazy" decoding="async" alt="Screenshot from 2014-04-15 15:22:08" src="http://www.davidpashley.com/wp-content/uploads/sites/2/2014/04/Screenshot-from-2014-04-15-152208.png" width="486" height="214" /></a></p>
  115. <p>&nbsp;</p>
  116. <p>The finest example of a poor security policy is a company who will remain nameless due to their utter lack of security. Not only did they not use HTTPS, they accepted a 30 character password and silently truncated it to 20 characters. The reason I know this is because when I logged out and tried to log in again and then used the &#8220;forgot my password&#8221; option, they emailed me the password in plain text.</p>
  117. <p>I have also been setting up two-factor authentication where possible. Most sites use the Google Authenticator application on your mobile to give you a 6 digit code to type in in addition to your password. I highly recommend you set it up too. There&#8217;s a useful list of sites that implement 2FA and links to their documentation at <a href="http://twofactorauth.org/" target="_blank">http://twofactorauth.org/</a>.</p>
  118. <p>I realise that my choice LastPass requires me to trust them, but I think the advantages outweigh the disadvantages of having many sites using the same passwords and/or low strength passwords. I know various people cleverer than me have looked into their system and failed to find any obvious flaws.</p>
  119. <p>Remember people, when you implement a password, allow the following things:</p>
  120. <ul>
  121. <li>Any length of password. You don&#8217;t have to worry about length in your database, because when you hash the password, it will be a fixed length. You are hashing your passwords aren&#8217;t you?</li>
  122. <li>Any character. The more possible characters that can be in your passwords, the harder it will be to brute force, as you are increasing the number of permutations a hacker needs to try.</li>
  123. </ul>
  124. <p>If you are going to place restrictions, please make sure the documentation matches the implementation, provide a client-side implementation to match and provide quick feedback to the user, and make sure you explicitly say what is wrong with the password, rather than referring back to the incorrect documentation.</p>
  125. <p>There are also many JS password strength meters available to show how secure the inputted passwords are. They are possibly a better way of providing feedback about security than having arbitrary policies that actually harm your security. As someone said to me on twitter, it&#8217;s not like &#8220;password is too strong&#8221; was ever a bad thing.</p>
  126. <p>The post <a href="https://www.davidpashley.com/2014/04/16/bad-password-policies/">Bad Password Policies</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  127. ]]></content:encoded>
  128. <wfw:commentRss>https://www.davidpashley.com/2014/04/16/bad-password-policies/feed/</wfw:commentRss>
  129. <slash:comments>21</slash:comments>
  130. <post-id xmlns="com-wordpress:feed-additions:1">459</post-id> </item>
  131. <item>
  132. <title>A New Chapter</title>
  133. <link>https://www.davidpashley.com/2013/09/23/new-chapter/</link>
  134. <comments>https://www.davidpashley.com/2013/09/23/new-chapter/#respond</comments>
  135. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  136. <pubDate>Mon, 23 Sep 2013 07:20:58 +0000</pubDate>
  137. <category><![CDATA[life]]></category>
  138. <category><![CDATA[Uncategorized]]></category>
  139. <guid isPermaLink="false">http://www.davidpashley.com/?p=426</guid>
  140.  
  141. <description><![CDATA[<p>It&#8217;s been a while since I posted anything to my personal site, but I figured I should update with the news that I&#8217;m leaving Brighton (and the UK) after nearly nine years living by the seaside. I&#8217;ll be sad to [&#8230;]</p>
  142. <p>The post <a href="https://www.davidpashley.com/2013/09/23/new-chapter/">A New Chapter</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  143. ]]></description>
  144. <content:encoded><![CDATA[<p>It&#8217;s been a while since I posted anything to my personal site, but I figured I should update with the news that I&#8217;m leaving Brighton (and the UK) after nearly nine years living by the seaside. I&#8217;ll be sad to leave this city, which is the greatest place to live in the country, but I have to opportunity to go explore the world and I&#8217;d be crazy to let it pass me by.</p>
  145. <p>So what am I doing? In ten short days, I plan to sell all my possessions bar those I need to live and work day to day and will be moving to Spain for three months. I&#8217;m renting a flat in Madrid, where I&#8217;ll continue to work for my software development business and set about improving both my Spanish and my fitness.</p>
  146. <p>If you want to follow my adventures, or read about the reasons for my change, then check out the <a href="http://experimentalnomad.com/all-change-the-mission/">Experimental Nomad</a> website.</p>
  147. <p>The post <a href="https://www.davidpashley.com/2013/09/23/new-chapter/">A New Chapter</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  148. ]]></content:encoded>
  149. <wfw:commentRss>https://www.davidpashley.com/2013/09/23/new-chapter/feed/</wfw:commentRss>
  150. <slash:comments>0</slash:comments>
  151. <post-id xmlns="com-wordpress:feed-additions:1">426</post-id> </item>
  152. <item>
  153. <title>Multiple Crimes</title>
  154. <link>https://www.davidpashley.com/2011/01/29/multiple-crimes/</link>
  155. <comments>https://www.davidpashley.com/2011/01/29/multiple-crimes/#comments</comments>
  156. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  157. <pubDate>Sat, 29 Jan 2011 13:35:20 +0000</pubDate>
  158. <category><![CDATA[mysql]]></category>
  159. <guid isPermaLink="false">/multiple-crimes</guid>
  160.  
  161. <description><![CDATA[<p>mysql&#62; select "a" = "A"; +-----------+ &#124; "a" = "A" &#124; +-----------+ &#124; 1 &#124; +-----------+ 1 row in set (0.00 sec) WTF? (via Nuxeo)</p>
  162. <p>The post <a href="https://www.davidpashley.com/2011/01/29/multiple-crimes/">Multiple Crimes</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  163. ]]></description>
  164. <content:encoded><![CDATA[<pre>
  165. mysql&gt; select "a" = "A";
  166. +-----------+
  167. | "a" = "A" |
  168. +-----------+
  169. |         1 |
  170. +-----------+
  171. 1 row in set (0.00 sec)
  172. </pre>
  173. <p>WTF? (via <a href="https://doc.nuxeo.com/pages/viewpage.action?pageId=3343486">Nuxeo</a>)</p>
  174. <p>The post <a href="https://www.davidpashley.com/2011/01/29/multiple-crimes/">Multiple Crimes</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  175. ]]></content:encoded>
  176. <wfw:commentRss>https://www.davidpashley.com/2011/01/29/multiple-crimes/feed/</wfw:commentRss>
  177. <slash:comments>5</slash:comments>
  178. <post-id xmlns="com-wordpress:feed-additions:1">319</post-id> </item>
  179. <item>
  180. <title>Letter to my MP regarding the Digital Economy Bill</title>
  181. <link>https://www.davidpashley.com/2010/03/17/digital-economy-bill-letter/</link>
  182. <comments>https://www.davidpashley.com/2010/03/17/digital-economy-bill-letter/#respond</comments>
  183. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  184. <pubDate>Wed, 17 Mar 2010 12:35:53 +0000</pubDate>
  185. <category><![CDATA[politics]]></category>
  186. <guid isPermaLink="false">/digital-economy-bill-letter</guid>
  187.  
  188. <description><![CDATA[<p>I have just sent the following email to my MP, David Lepper MP, outlining my concerns about the Digital Economy Bill. I urge you to write to your MP with a similar letter. Open Rights Group&#8217;s guide to writing to [&#8230;]</p>
  189. <p>The post <a href="https://www.davidpashley.com/2010/03/17/digital-economy-bill-letter/">Letter to my MP regarding the Digital Economy Bill</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  190. ]]></description>
  191. <content:encoded><![CDATA[<p>I have just sent the following email to my MP, David Lepper MP, outlining my concerns about the Digital Economy Bill. I urge you to write to your MP with a similar letter.</p>
  192. <p><a href="http://wiki.openrightsgroup.org/wiki/How_To_Talk_To_Your_MP_Notes">Open Rights Group&#8217;s guide to writing to your MP</a></p>
  193. <pre>
  194. From: David Pashley &lt;david@davidpashley.com&gt;
  195. To: David Lepper
  196. Cc:
  197. Bcc:
  198. Subject: Digital Economy Bill
  199. Reply-To:
  200.  
  201. Dear Mr Lepper,
  202.  
  203. I'm writing to you so express my concern at the Digital Economy Bill
  204. which is currently working its way through the House of Commons. I
  205. believe that the bill as it stands will have a negative effect on
  206. the digital economy that the UK and in particular Brighton have
  207. worked so hard to foster.
  208.  
  209. Section 4-17 deals with disconnecting people reported as infringing
  210. copyright. As it stands, this section will result in the possibility
  211. that my internet connection could be disconnected as a result of the
  212. actions of my flatmate. My freelance web development business is
  213. inherently linked to my access of the Internet. I currently allow my
  214. landlady to share my internet access with her holiday flat above me.
  215. I will have to stop this arrangement for fear of a tourist's actions
  216. jeopardising my business.
  217.  
  218. This section will also result in the many pubs and cafes, much
  219. favoured by Brighton's freelancers, from removing their free wifi. I
  220. have often used my local pub's wifi when I needed a change of
  221. scenery. I know a great many freelancers use Cafe Delice in the
  222. North Laine as a place to meet other freelancers and discuss
  223. projects while drinking coffee and working.
  224.  
  225. Section 18 deals with ISPs being required to prevent access to sites
  226. hosting copyrighted material. The ISPs can insist on a court
  227. injunction forcing them to prevent access. Unfortunately, a great
  228. many ISPs will not want to deal with the costs of any court
  229. proceedings and will just block the site in question. A similar law
  230. in the Unitied States, the Digital Millenium Copyright Act (DMCA)
  231. has been abused time and time again by spurious copyright claims to
  232. silence critics or embarrassments.  A recent case is Microsoft
  233. shutting down the entire Cryptome.org website because they were
  234. embarrassed by a document they had hosted.  There are many more
  235. examples of abuse at http://www.chillingeffects.org/
  236.  
  237. A concern is that there's no requirement for the accuser to prove
  238. infringement has occured, nor is there a valid defense that a user
  239. has done everything possible to prevent infringement.
  240.  
  241. There are several ways to reduce copyright infringement of music and
  242. movies without introducing new legislation. The promotion of legal
  243. services like iTunes and spotify, easier access to legal media, like
  244. Digital Rights Management free music. Many of the record labels and
  245. movie studios are failing to promote competing legal services which
  246. many people would use if they were aware of them. A fairer
  247. alternative to disconnection is a fine through the courts.
  248.  
  249. You can find further information on the effects of the Digital
  250. Economy Bill at http://www.openrightsgroup.org/ and
  251. http://news.bbc.co.uk/1/hi/technology/8544935.stm
  252.  
  253. The bill has currently passed the House of Lords and its first
  254. reading in the Commons. There is a danger that without MPs demanding
  255. to scrutinise this bill, this damaging piece of legislation will be
  256. rushed through Parliament before the general election.
  257.  
  258. I ask you to demand your right to debate this bill and to amend the
  259. bill to remove sections 4-18. I would also appreciate a response to
  260. this email. If you would like to discuss the issues I've raised
  261. further, I can be contacted on 01273 xxxxxx or 07966 xxx xxx or via
  262. email at this address.
  263.  
  264. Thank you for your time.
  265.  
  266. --
  267. David Pashley
  268. david@davidpashley.com
  269. </pre>
  270. <p>The post <a href="https://www.davidpashley.com/2010/03/17/digital-economy-bill-letter/">Letter to my MP regarding the Digital Economy Bill</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  271. ]]></content:encoded>
  272. <wfw:commentRss>https://www.davidpashley.com/2010/03/17/digital-economy-bill-letter/feed/</wfw:commentRss>
  273. <slash:comments>0</slash:comments>
  274. <post-id xmlns="com-wordpress:feed-additions:1">285</post-id> </item>
  275. <item>
  276. <title>Mod_fastcgi and external PHP</title>
  277. <link>https://www.davidpashley.com/2010/03/07/mod_fastcgi/</link>
  278. <comments>https://www.davidpashley.com/2010/03/07/mod_fastcgi/#comments</comments>
  279. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  280. <pubDate>Sun, 07 Mar 2010 23:02:49 +0000</pubDate>
  281. <category><![CDATA[apache]]></category>
  282. <guid isPermaLink="false">/mod_fastcgi</guid>
  283.  
  284. <description><![CDATA[<p>Has anyone managed to get a standard version of mod_fastcgi work correctly with FastCGIExternalServer? There seems to be a complete lack of documentation on how to get this to work. I have managed to get it working by removing some [&#8230;]</p>
  285. <p>The post <a href="https://www.davidpashley.com/2010/03/07/mod_fastcgi/">Mod_fastcgi and external PHP</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  286. ]]></description>
  287. <content:encoded><![CDATA[<p>Has anyone managed to get a standard version of mod_fastcgi work<br />
  288. correctly with <tt>FastCGIExternalServer</tt>? There seems to be a<br />
  289. complete lack of documentation on how to get this to work. I have<br />
  290. managed to get it working by removing some code which appears to<br />
  291. completely break <tt>AddHandler</tt>. However, people on the FastCGI<br />
  292. list told me I was wrong for making it work. So, if anyone has managed<br />
  293. to get it to work, please show me some working config. </p>
  294. <p>The post <a href="https://www.davidpashley.com/2010/03/07/mod_fastcgi/">Mod_fastcgi and external PHP</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  295. ]]></content:encoded>
  296. <wfw:commentRss>https://www.davidpashley.com/2010/03/07/mod_fastcgi/feed/</wfw:commentRss>
  297. <slash:comments>1</slash:comments>
  298. <post-id xmlns="com-wordpress:feed-additions:1">334</post-id> </item>
  299. <item>
  300. <title>Reducing Coupling between modules</title>
  301. <link>https://www.davidpashley.com/2010/02/25/reducing-coupling/</link>
  302. <comments>https://www.davidpashley.com/2010/02/25/reducing-coupling/#comments</comments>
  303. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  304. <pubDate>Thu, 25 Feb 2010 09:30:18 +0000</pubDate>
  305. <category><![CDATA[puppet]]></category>
  306. <guid isPermaLink="false">/reducing-coupling</guid>
  307.  
  308. <description><![CDATA[<p>In the past, several of my Puppet modules have been tightly coupled. A perfect example is Apache and Munin. When I install Apache, I want munin graphs set up. As a result my apache class has the following snippet in [&#8230;]</p>
  309. <p>The post <a href="https://www.davidpashley.com/2010/02/25/reducing-coupling/">Reducing Coupling between modules</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  310. ]]></description>
  311. <content:encoded><![CDATA[<p>In the past, several of my <a href="http://reductivelabs.com/products/puppet/">Puppet</a> modules have<br />
  312. been tightly coupled. A perfect example is <a href="http://httpd.apache.org">Apache</a> and <a href="http://munin.projects.linpro.no/">Munin</a>. When I<br />
  313. install Apache, I want munin graphs set up. As a result my apache class<br />
  314. has the following snippet in it:</p>
  315. <pre>
  316. munin::plugin { "apache_accesses": }
  317. munin::plugin { "apache_processes": }
  318. munin::plugin { "apache_volume": }
  319. </pre>
  320. <p>This should make sure that these three plugins are installed and that<br />
  321. munin-node is restarted to pick them up. The define was implemented like<br />
  322. this:</p>
  323. <pre>
  324. define munin::plugin (
  325.      $enable = true,
  326.      $plugin_name = false,
  327.      ) {
  328.  
  329.   include munin::node
  330.  
  331.   file { "/etc/munin/plugins/$name":
  332.      ensure =&gt; $enable ? {
  333.         true =&gt; $plugin_name ? {
  334.            false =&gt; "/usr/share/munin/plugins/$name",
  335.            default =&gt; "/usr/share/munin/plugins/$plugin_name"
  336.         },
  337.         default =&gt; absent
  338.      },
  339.      links =&gt; manage,
  340.      require =&gt; Package["munin-node"],
  341.      notify =&gt; Service["munin-node"],
  342.   }
  343. }
  344. </pre>
  345. <p>(Note: this is a slight simplification of the define). As you can<br />
  346. see, the define includes <tt>munin::node</tt>, as it needs the definition of the<br />
  347. munin-node service and package. As a result of this, installing Apache<br />
  348. drags in munin-node on your server too. It would be much nicer if the<br />
  349. apache class only installed the munin plugins if you also install munin<br />
  350. on the server.</p>
  351. <p>It turns out that is is possible, using <a href="http://reductivelabs.com/trac/puppet/wiki/VirtualResources">virtual<br />
  352. resources</a>. Virtual resources allow you to define resources in one<br />
  353. place, but not make them happen unless you realise them. Using this, we<br />
  354. can make the file resource in the <tt>munin::plugin</tt> virtual and realise it<br />
  355. in our <tt>munin::node</tt> class. Our new <tt>munin::plugin</tt> looks like:</p>
  356. <pre>
  357. define munin::plugin (
  358.      $enable = true,
  359.      $plugin_name = false,
  360.      ) {
  361.  
  362.   <b># removed "include munin::node"</b>
  363.  
  364.   <b># Added @ in front of the resource to declare it as virtual</b>
  365.   <b>@</b>file { "/etc/munin/plugins/$name":
  366.      ensure =&gt; $enable ? {
  367.         true =&gt; $plugin_name ? {
  368.            false =&gt; "/usr/share/munin/plugins/$name",
  369.            default =&gt; "/usr/share/munin/plugins/$plugin_name"
  370.         },
  371.         default =&gt; absent
  372.      },
  373.      links =&gt; manage,
  374.      require =&gt; Package["munin-node"],
  375.      notify =&gt; Service["munin-node"],
  376.      <b>tag =&gt; munin-plugin,</b>
  377.   }
  378. }
  379. </pre>
  380. <p>We add the following line to our <tt>munin::node</tt> class:</p>
  381. <pre>
  382. File&lt;| tag == munin-plugin |&gt;
  383. </pre>
  384. <p>The odd syntax in the <tt>munin::node</tt> class realises all the<br />
  385. virtual resources that match the filter, in this case, any that is<br />
  386. tagged <tt>munin-plugin</tt>. We&#8217;ve had to define this tag ourself, as<br />
  387. the auto-generated tags don&#8217;t seem to work. You&#8217;ll also notice that<br />
  388. we&#8217;ve removed the <tt>munin::node</tt> include from the<br />
  389. <tt>munin::plugin</tt> define, which means that we no longer install<br />
  390. munin-node just by using the plugin define. I&#8217;ve used a similar<br />
  391. technique for logcheck, so additional rules are not installed unless<br />
  392. I&#8217;ve installed logcheck. I&#8217;m sure there are several other places where I<br />
  393. can use it to reduce such tight coupling between classes.</p>
  394. <p>The post <a href="https://www.davidpashley.com/2010/02/25/reducing-coupling/">Reducing Coupling between modules</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  395. ]]></content:encoded>
  396. <wfw:commentRss>https://www.davidpashley.com/2010/02/25/reducing-coupling/feed/</wfw:commentRss>
  397. <slash:comments>2</slash:comments>
  398. <post-id xmlns="com-wordpress:feed-additions:1">332</post-id> </item>
  399. <item>
  400. <title>Maven and Grails 1.2 snapshot</title>
  401. <link>https://www.davidpashley.com/2009/12/22/grails-1-2-maven/</link>
  402. <comments>https://www.davidpashley.com/2009/12/22/grails-1-2-maven/#respond</comments>
  403. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  404. <pubDate>Tue, 22 Dec 2009 23:01:35 +0000</pubDate>
  405. <category><![CDATA[java]]></category>
  406. <guid isPermaLink="false">/grails-1.2-maven</guid>
  407.  
  408. <description><![CDATA[<p>Because I couldn&#8217;t find the information anywhere else, if you want to use maven with Grails 1.2 snapshot, use: mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.grails -DarchetypeArtifactId=grails-maven-archetype -DarchetypeVersion=1.2-SNAPSHOT -DgroupId=uk.org.catnip -DartifactId=armstrong -DarchetypeRepository=http://snapshots.maven.codehaus.org/maven2</p>
  409. <p>The post <a href="https://www.davidpashley.com/2009/12/22/grails-1-2-maven/">Maven and Grails 1.2 snapshot</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  410. ]]></description>
  411. <content:encoded><![CDATA[<p>Because I couldn&#8217;t find the information anywhere else, if you want to<br />
  412. use maven with Grails 1.2 snapshot, use:
  413. </p>
  414. <pre>
  415. mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate
  416. -DarchetypeGroupId=org.grails
  417. -DarchetypeArtifactId=grails-maven-archetype
  418. -DarchetypeVersion=1.2-SNAPSHOT     -DgroupId=uk.org.catnip
  419. -DartifactId=armstrong
  420. -DarchetypeRepository=http://snapshots.maven.codehaus.org/maven2
  421. </pre>
  422. <p>The post <a href="https://www.davidpashley.com/2009/12/22/grails-1-2-maven/">Maven and Grails 1.2 snapshot</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  423. ]]></content:encoded>
  424. <wfw:commentRss>https://www.davidpashley.com/2009/12/22/grails-1-2-maven/feed/</wfw:commentRss>
  425. <slash:comments>0</slash:comments>
  426. <post-id xmlns="com-wordpress:feed-additions:1">306</post-id> </item>
  427. <item>
  428. <title>Conversations regarding printers</title>
  429. <link>https://www.davidpashley.com/2009/12/08/printer-conversation/</link>
  430. <comments>https://www.davidpashley.com/2009/12/08/printer-conversation/#comments</comments>
  431. <dc:creator><![CDATA[David Pashley]]></dc:creator>
  432. <pubDate>Tue, 08 Dec 2009 15:42:03 +0000</pubDate>
  433. <category><![CDATA[linux]]></category>
  434. <guid isPermaLink="false">/printer-conversation</guid>
  435.  
  436. <description><![CDATA[<p>I just had the following conversation with my linux desktop: Me: &#8220;Hi, I&#8217;d like to use my new printer please.&#8221; Computer: &#8220;Do you mean this HP Laserjet CP1515n on the network?&#8221; Me: &#8220;Erm, yes I do.&#8221; Computer: &#8220;Good. You&#8217;ve got [&#8230;]</p>
  437. <p>The post <a href="https://www.davidpashley.com/2009/12/08/printer-conversation/">Conversations regarding printers</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  438. ]]></description>
  439. <content:encoded><![CDATA[<p>I just had the following conversation with my linux desktop:</p>
  440. <blockquote>
  441. <p>Me: &#8220;Hi, I&#8217;d like to use my new printer please.&#8221;</p>
  442. <p>Computer: &#8220;Do you mean this HP Laserjet CP1515n on the network?&#8221;</p>
  443. <p>Me: &#8220;Erm, yes I do.&#8221;</p>
  444. <p>Computer: &#8220;Good. You&#8217;ve got a test page printing as we speak.<br />
  445. Anything else I can help you with?&#8221;</p>
  446. </blockquote>
  447. <p>Sadly I don&#8217;t have any alternative modern operating systems to<br />
  448. compare it to, but having done similar things with linux over the last<br />
  449. 12 years, I&#8217;m impressed with how far we&#8217;ve come. Thank you to everyone<br />
  450. who made this possible.</p>
  451. <p>The post <a href="https://www.davidpashley.com/2009/12/08/printer-conversation/">Conversations regarding printers</a> appeared first on <a href="https://www.davidpashley.com">David Pashley.com</a>.</p>
  452. ]]></content:encoded>
  453. <wfw:commentRss>https://www.davidpashley.com/2009/12/08/printer-conversation/feed/</wfw:commentRss>
  454. <slash:comments>3</slash:comments>
  455. <post-id xmlns="com-wordpress:feed-additions:1">328</post-id> </item>
  456. </channel>
  457. </rss>
  458.  
  459. <!--
  460. Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/
  461.  
  462. Page Caching using Memcached
  463. Minified using Memcached
  464.  
  465. Minify debug info:
  466. Theme:              6f66b
  467. Template:           index
  468.  
  469. Database Caching 36/73 queries in 0.023 seconds using Memcached
  470.  
  471. Served from: davidpashley.com @ 2024-04-25 16:58:19 by W3 Total Cache
  472. -->

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//www.davidpashley.com/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda