Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update site

  • Loading branch information...
commit 719fdd5c2a5095f0f1dd5e7569a3c6b9ba44cd35 1 parent b8bfd34
David Beitey authored
Showing with 8,945 additions and 680 deletions.
  1. +54 −9 author/davidjb.html
  2. +57 −10 author/davidjb10.html
  3. +71 −10 author/davidjb11.html
  4. +67 −10 author/davidjb12.html
  5. +72 −10 author/davidjb13.html
  6. +68 −10 author/davidjb2.html
  7. +69 −10 author/davidjb3.html
  8. +64 −10 author/davidjb4.html
  9. +65 −10 author/davidjb5.html
  10. +61 −10 author/davidjb6.html
  11. +61 −10 author/davidjb7.html
  12. +64 −10 author/davidjb8.html
  13. +59 −10 author/davidjb9.html
  14. +88 −0 blog/2008/11/index.html
  15. +86 −0 blog/2008/12/index.html
  16. +94 −0 blog/2008/index.html
  17. +102 −0 blog/2009/01/index.html
  18. +92 −0 blog/2009/02/index.html
  19. +86 −0 blog/2009/04/index.html
  20. +82 −0 blog/2009/05/index.html
  21. +88 −0 blog/2009/06/index.html
  22. +88 −0 blog/2009/07/index.html
  23. +86 −0 blog/2009/08/index.html
  24. +96 −0 blog/2009/09/index.html
  25. +86 −0 blog/2009/10/index.html
  26. +84 −0 blog/2009/11/index.html
  27. +88 −0 blog/2009/12/index.html
  28. +178 −0 blog/2009/index.html
  29. +88 −0 blog/2010/01/index.html
  30. +82 −0 blog/2010/02/index.html
  31. +84 −0 blog/2010/03/index.html
  32. +2 −2 blog/2010/04/good-morning-world-plone-day/index.html
  33. +84 −0 blog/2010/04/index.html
  34. +86 −0 blog/2010/05/index.html
  35. +86 −0 blog/2010/06/index.html
  36. +92 −0 blog/2010/07/index.html
  37. +84 −0 blog/2010/10/index.html
  38. +82 −0 blog/2010/12/index.html
  39. +128 −0 blog/2010/index.html
  40. +90 −0 blog/2011/01/index.html
  41. +84 −0 blog/2011/03/index.html
  42. +90 −0 blog/2011/05/index.html
  43. +82 −0 blog/2011/06/index.html
  44. +82 −0 blog/2011/07/index.html
  45. +82 −0 blog/2011/08/index.html
  46. +84 −0 blog/2011/09/index.html
  47. +1 −1  blog/2011/10/epic-sized-files-with-plone-4-1-2/index.html
  48. +88 −0 blog/2011/10/index.html
  49. +82 −0 blog/2011/11/index.html
  50. +84 −0 blog/2011/12/index.html
  51. +128 −0 blog/2011/index.html
  52. +82 −0 blog/2012/01/index.html
  53. +84 −0 blog/2012/02/index.html
  54. +90 −0 blog/2012/06/index.html
  55. +82 −0 blog/2012/08/index.html
  56. +82 −0 blog/2012/10/index.html
  57. +100 −0 blog/2012/index.html
  58. +82 −0 blog/2013/03/index.html
  59. +92 −0 blog/2013/04/index.html
  60. +84 −0 blog/2013/05/index.html
  61. +84 −0 blog/2013/07/index.html
  62. +82 −0 blog/2013/08/index.html
  63. +104 −0 blog/2013/index.html
  64. +84 −0 blog/2014/03/index.html
  65. +82 −0 blog/2014/05/index.html
  66. +82 −0 blog/2014/07/index.html
  67. +88 −0 blog/2014/index.html
  68. +11 −2 category/general.html
  69. +10 −1 category/github.html
  70. +15 −3 category/hardware.html
  71. +25 −5 category/it.html
  72. +58 −9 category/linux.html
  73. +47 −8 category/linux2.html
  74. +15 −2 category/plon.html
  75. +53 −9 category/plone.html
  76. +60 −10 category/plone2.html
  77. +60 −10 category/plone3.html
  78. +72 −10 category/plone4.html
  79. +60 −7 category/plone5.html
  80. +67 −9 category/python.html
  81. +24 −4 category/python2.html
  82. +6 −1 category/ubuntu.html
  83. +70 −9 category/web.html
  84. +32 −5 category/web2.html
  85. +3 −3 feeds/all-en.atom.xml
  86. +3 −3 feeds/all.atom.xml
  87. +3 −3 feeds/davidjb.atom.xml
  88. +3 −3 feeds/davidjb.rss.xml
  89. +3 −3 feeds/plone.atom.xml
  90. +54 −9 index.html
  91. +57 −10 index10.html
  92. +71 −10 index11.html
  93. +67 −10 index12.html
  94. +72 −10 index13.html
  95. +68 −10 index2.html
  96. +69 −10 index3.html
  97. +64 −10 index4.html
  98. +65 −10 index5.html
  99. +61 −10 index6.html
  100. +61 −10 index7.html
  101. +64 −10 index8.html
  102. +59 −10 index9.html
  103. +5 −1 tag/1004.html
  104. +6 −1 tag/910.html
  105. +6 −1 tag/alpha.html
  106. +10 −2 tag/apache.html
  107. +15 −2 tag/audio.html
  108. +6 −1 tag/bios.html
  109. +16 −4 tag/blob.html
  110. +5 −1 tag/boot.html
  111. +6 −1 tag/bug.html
  112. +8 −1 tag/build.html
  113. +55 −9 tag/buildout.html
  114. +26 −3 tag/buildout2.html
  115. +19 −2 tag/calendar.html
  116. +15 −3 tag/centos.html
  117. +17 −2 tag/cherokee.html
  118. +17 −3 tag/code.html
  119. +14 −2 tag/collective.html
  120. +34 −5 tag/content.html
  121. +18 −3 tag/css.html
  122. +15 −3 tag/database.html
  123. +16 −3 tag/date.html
  124. +12 −2 tag/deliverance.html
  125. +10 −1 tag/dell.html
  126. +17 −3 tag/dexterity.html
  127. +8 −1 tag/docs.html
  128. +17 −3 tag/easy_install.html
  129. +8 −1 tag/editing.html
  130. +28 −4 tag/egg.html
  131. +5 −1 tag/eggs.html
  132. +29 −4 tag/error.html
  133. +6 −1 tag/export.html
  134. +15 −2 tag/fastcgi.html
  135. +7 −1 tag/features.html
  136. +5 −1 tag/fields.html
  137. +9 −2 tag/file.html
  138. +10 −2 tag/files.html
  139. +16 −3 tag/fix.html
  140. +8 −1 tag/flash.html
  141. +4 −1 tag/folder.html
  142. +2 −2 tag/food.html
  143. +21 −3 tag/form.html
  144. +9 −1 tag/forms.html
  145. +17 −2 tag/git.html
  146. +22 −2 tag/github.html
  147. +9 −1 tag/google.html
  148. +14 −2 tag/graphics.html
  149. +13 −1 tag/hack.html
  150. +10 −2 tag/headphones.html
  151. +12 −2 tag/html.html
  152. +25 −4 tag/http.html
  153. +5 −1 tag/icons.html
  154. +6 −1 tag/ie.html
  155. +6 −1 tag/import.html
  156. +30 −5 tag/install.html
  157. +4 −1 tag/installation.html
  158. +6 −1 tag/jaunty.html
  159. +19 −2 tag/javascript.html
  160. +12 −1 tag/jenkins.html
  161. +11 −2 tag/karmic.html
  162. +1 −1  tag/large.html
  163. +6 −1 tag/ldap.html
  164. +13 −4 tag/life.html
  165. +47 −9 tag/linux.html
  166. +46 −8 tag/linux2.html
  167. +5 −1 tag/live.html
  168. +5 −1 tag/logitech.html
  169. +9 −2 tag/lucid.html
  170. +11 −2 tag/migration.html
  171. +43 −4 tag/nginx.html
  172. +4 −1 tag/packages.html
  173. +5 −1 tag/patch.html
  174. +10 −1 tag/pfg.html
  175. +5 −1 tag/pipes.html
  176. +11 −2 tag/plone-4.html
  177. +56 −9 tag/plone.html
  178. +59 −10 tag/plone2.html
  179. +65 −10 tag/plone3.html
  180. +68 −10 tag/plone4.html
  181. +66 −10 tag/plone5.html
  182. +72 −10 tag/plone6.html
  183. +20 −2 tag/plone7.html
  184. +46 −9 tag/problem.html
  185. +64 −10 tag/problem2.html
  186. +13 −1 tag/problem3.html
  187. +44 −6 tag/product.html
  188. +13 −1 tag/products.html
  189. +11 −2 tag/pulseaudio.html
  190. +57 −9 tag/python.html
  191. +63 −10 tag/python2.html
  192. +25 −4 tag/python3.html
  193. +8 −1 tag/recipe.html
  194. +5 −1 tag/red-hat.html
  195. +9 −1 tag/restart.html
  196. +5 −1 tag/rewrite.html
  197. +5 −1 tag/rpm.html
  198. +12 −2 tag/rules.html
  199. +23 −3 tag/script.html
  200. +5 −1 tag/settings.html
  201. +19 −3 tag/shibboleth.html
  202. +20 −3 tag/site.html
  203. +5 −1 tag/software.html
  204. +5 −1 tag/sound.html
  205. +5 −1 tag/ssd.html
  206. +4 −1 tag/ssh.html
  207. +7 −1 tag/static.html
  208. +2 −2 tag/sweets.html
Sorry, we could not display the entire diff because it was too big.
63 author/davidjb.html
View
@@ -369,7 +369,13 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
for newer versions of Nginx and associated add-on&nbsp;modules.</p>
</div>
<p>I&#8217;ve updated the custom version of Nginx that supports operating with a
-Shibboleth <span class="caps">SP</span> to version 1.6.0, now ...</p>
+Shibboleth <span class="caps">SP</span> to version 1.6.0, now that this version has become the lastest
+stable&nbsp;version.</p>
+<p>The build scripts located at
+<a class="reference external" href="https://github.com/jcu-eresearch/nginx-custom-build">https://github.com/jcu-eresearch/nginx-custom-build</a> have been updated, along
+with the patches required to make the Shibboleth integration happen due to the
+changes in the Auth Request Module now being built into Nginx since version
+1 ...</p>
<a class="readmore" href="http://davidjb.com/blog/2014/05/nginx-with-shibboleth-fastcgi-authorizer-support-updated-to-16/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2014/05/nginx-with-shibboleth-fastcgi-authorizer-support-updated-to-16/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -394,7 +400,11 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
</footer><!-- /.post-info --> <p>In case your <span class="caps">SCP</span>, Rsync, or other sort of file transfer works for a short
period and then suddenly stalls (permanently), then you may want to examine the
<span class="caps">MTU</span> configuration on your network interface. After trawling the web for hours,
-attempting to find a solution to why an <span class="caps">SCP</span> transfer ...</p>
+attempting to find a solution to why an <span class="caps">SCP</span> transfer of one file stalls between
+server A and B, whilst the exact same file transfers fine from C to B, the
+answer finally ended up being the <span class="caps">MTU</span>&nbsp;configuration.</p>
+<p>Curiously, the <span class="caps">SCP</span> transfers stall at exactly 2112 kB, which was thankfully my
+saving grace when I was searching. I&#8217;d ...</p>
<a class="readmore" href="http://davidjb.com/blog/2014/03/scprsync-transfers-stall-at-exactly-2112-kb/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2014/03/scprsync-transfers-stall-at-exactly-2112-kb/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -420,7 +430,11 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
Google Groups posts, Google Drive activity or somewhere else obscure
within Google&#8217;s domain? Tried changing that image several times
and it won&#8217;t budge - or it does and reverts itself right back?
-Your main Google+ avatar just doesn&#8217;t ...</p>
+Your main Google+ avatar just doesn&#8217;t want to sync up with other Google
+services? Sure, I hear you - you&#8217;re not alone. Your issue is probably
+intermittent too - you change the image on Gmail and your old image
+comes bounding back, possibly several days&nbsp;later.</p>
+<p>It&#8217;s an annoying issue and I feel for you. So ...</p>
<a class="readmore" href="http://davidjb.com/blog/2014/03/gmail-avatarphoto-always-reverts-after-being-changed/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2014/03/gmail-avatarphoto-always-reverts-after-being-changed/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -446,7 +460,11 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
database integration layer (as an <span class="caps">ORM</span> or otherwise), you may also be using
uWSGI to act as the application&nbsp;container.</p>
<p>If you try and fire up multiple processes to handle greater load coming in
-with the uWSGI ...</p>
+with the uWSGI option <tt class="docutils literal"><span class="pre">--processes</span></tt> (or <tt class="docutils literal"><span class="pre">-p</span></tt>, <tt class="docutils literal"><span class="pre">--workers</span></tt>; or uWSGI&#8217;s
+various configuration mechanisms), then you&#8217;ll probably find that after a
+short time, your web application will lock up and refuse to serve requests.
+For me, this was between 1 and 10 requests with using the <tt class="docutils literal">cx_Oracle</tt>
+database adapter against an Oracle ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/08/uwsgi-and-database-lockups-with-sqlalchemy/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/08/uwsgi-and-database-lockups-with-sqlalchemy/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -471,7 +489,11 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
</footer><!-- /.post-info --> <p>Ha, that&#8217;s a dodgy-sounding title if I ever heard one. If you&#8217;re
reading this, then I&#8217;ll assure you that these instructions are real,
open, and free, and that I&#8217;ve used them to unlock my device. Read&nbsp;on&#8230;</p>
-<p><strong>Update</strong>: I should mention that hexecute&#8217;s site at ...</p>
+<p><strong>Update</strong>: I should mention that hexecute&#8217;s site at
+<a class="reference external" href="https://sites.google.com/site/mf60guide/">https://sites.google.com/site/mf60guide/</a> now mentions his patch can unlock as
+well. I haven&#8217;t tried that, but from memory, the Windows drivers that are
+available on that site didn&#8217;t work with my <span class="caps">MF60</span> - presumably a different model
+or something similar. If what&#8217;s there doesn&#8217;t ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/07/unlocking-your-telstra-elite-zte-mf60-mobile-wi-fi-device-for-free/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/07/unlocking-your-telstra-elite-zte-mf60-mobile-wi-fi-device-for-free/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -497,7 +519,11 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
serve static resources within your Python-based server process, you may be left
scracthing your head if you suddenly find that resources aren&#8217;t being served
correctly. For me, this was manifesting as an incorrect <tt class="docutils literal"><span class="pre">Content-Type</span></tt>
-header, always being set to ...</p>
+header, always being set to <tt class="docutils literal">text/html</tt> for any type of static file being
+served. As a side effect, because I&#8217;m using <a class="reference external" href="http://diazo.org">Diazo</a> to
+theme my backend Pyramid application, this was automatically seeing this
+mimetype being returned to the browser and trying to &quot;theme&quot; the raw files.
+The global picture looked like a whole ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/07/all-fanstatic-resources-being-served-with-texthtml-mimetype-by-webobwsgi/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/07/all-fanstatic-resources-being-served-with-texthtml-mimetype-by-webobwsgi/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -524,7 +550,13 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
worry, you&#8217;re not alone. In fact, the issue is far more common than you think,
despite a lack of documentation on the&nbsp;web.</p>
<div class="section" id="confirming-the-problem">
-<h2>Confirming the&nbsp;problem ...</h2></div>
+<h2>Confirming the&nbsp;problem</h2>
+<p>Firstly, make sure that your Shibboleth <span class="caps">SP</span> configuration is, as best you can
+tell, correct. Also, make sure that your <tt class="docutils literal">shibd</tt> daemon has been
+restarted after any configuration changes you&#8217;ve made (and your
+FastCGI <tt class="docutils literal">shibauthorizer</tt> and <tt class="docutils literal">shibresponder</tt> applications too, if you&#8217;re
+using&nbsp;those).</p>
+<p>If you&#8217;re sure about ...</p></div>
<a class="readmore" href="http://davidjb.com/blog/2013/05/attributes-not-released-to-new-shibboleth-service-provider-sp/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/05/attributes-not-released-to-new-shibboleth-service-provider-sp/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -550,7 +582,11 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
be requiring you to have <tt class="docutils literal">libxml2</tt> installed &#8212; or something similar that
provides <tt class="docutils literal"><span class="pre">xml-config</span></tt>. What you&#8217;ll find is some erratic behaviour (or
complete failure) when attempting to serve an application that is also
-relying on ...</p>
+relying on <tt class="docutils literal">libxml2</tt>, but a different&nbsp;version.</p>
+<p>In my case, my original uWSGI was built with CentOS 5&#8217;s stock <tt class="docutils literal">libxml2</tt>
+library, but my Python application was using <tt class="docutils literal">lxml</tt>, built with a custom
+version of <tt class="docutils literal">libxml2</tt> (via Buildout with the <a class="reference external" href="https://pypi.python.org/pypi/z3c.recipe.staticlxml">z3c.recipe.staticlxml</a> recipe, in case you
+were curious). Because of these ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/05/uwsgi-and-libxml2-conflicts-aka-installing-uwsgi-with-a-custom-libxml2/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/05/uwsgi-and-libxml2-conflicts-aka-installing-uwsgi-with-a-custom-libxml2/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -581,7 +617,16 @@ <h1 class="entry-title"><a href="http://davidjb.com/blog/2014/07/project-green-h
</div>
<div class="section" id="original-post">
<h2>Original&nbsp;post</h2>
-<p><strong>tl;dr</strong>: You can have Nginx with ...</p></div>
+<p><strong>tl;dr</strong>: You can have Nginx with Shibboleth. Rebuild Shibboleth with
+FastCGI support, and recompile Nginx with a custom module:
+<a class="reference external" href="https://bitbucket.org/davidjb/ngx_http_auth_request_module">https://bitbucket.org/davidjb/ngx_http_auth_request_module</a>. You can now
+run the Shibboleth FastCGI authorizer and responder applications and
+successfully&nbsp;authenticate!</p>
+</div>
+<div class="section" id="background">
+<h2>Background</h2>
+<p>There&#8217;s a <strong>lot</strong> of posts around the web asking about integrating
+Shibboleth and Nginx, and so ...</p></div>
<a class="readmore" href="http://davidjb.com/blog/2013/04/integrating-nginx-and-a-shibboleth-sp-with-fastcgi/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/04/integrating-nginx-and-a-shibboleth-sp-with-fastcgi/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
67 author/davidjb10.html
View
@@ -43,7 +43,13 @@
</footer><!-- /.post-info --> <p>Always one for being on and beyond the bleeding edge of new technology,
I&#8217;ve (with the help of colleagues) been setting up a new technology for
applying themes to web sites.&nbsp; In particular, I&#8217;m applying Deliverance
-to Plone and whilst I&#8217;m not the first one to venture ...</p>
+to Plone and whilst I&#8217;m not the first one to venture out into the
+wilderness this way, I&#8217;ve got to be thinking that I could be one of the
+few people documenting their experience.&nbsp; Ah, but where to&nbsp;begin?</p>
+<div class="section" id="the-proxy">
+<h2>The&nbsp;proxy</h2>
+<p>Ah yes, the proxy.&nbsp; Deliverance is very kind to us in that it operates
+it&#8217;s own proxy.&nbsp; This ...</p></div>
<a class="readmore" href="http://davidjb.com/blog/2009/09/deliver-me-from-deliverance/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/09/deliver-me-from-deliverance/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -68,7 +74,11 @@
</footer><!-- /.post-info --> <p>Well, that&#8217;s always a good reason to let out a sigh of relief: I&#8217;ve
managed to migrate most of the content from my previous blog over at
Wikidot (which wasn&#8217;t really a blog so much as it was a hacked wiki).
-So, you&#8217;ll find a lot ...</p>
+So, you&#8217;ll find a lot more content here than before, which is good,
+because it makes me look like I&#8217;m actually dedicated to creating content&nbsp;;-)</p>
+<p>I&#8217;ve also relaxed restrictions on comments (and added <span class="caps">CAPTCHA</span> security)
+so comment away people, if you&#8217;re reading this.&nbsp; Just don&#8217;t expect much
+love if you spam ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/08/migration-complete-mostly/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/08/migration-complete-mostly/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -94,7 +104,14 @@
to re-order viewlets.&nbsp; In particular, this one is little different (but
not terribly so) because the original poster wanted to put the
breadcrumbs above the global sections (global tabs in Plone).&nbsp; Normally,
-this is straight forward because ...</p>
+this is straight forward because you just use a Generic Setup profile
+(viewlets.xml) and use an order manager to move your viewlet.&nbsp; This,
+however, is a teeny bit more complicated because you&#8217;ve got one viewlet
+that&#8217;s outside of another viewlet&nbsp;manager.</p>
+<p>Without further ado, my post from the&nbsp;forums:</p>
+<blockquote>
+<p>Check out
+<a class="reference external" href="http://plone.org/documentation/tutorial/customizing-main-template-viewlets/reordering-and-hiding-viewlets">http ...</a></p></blockquote>
<a class="readmore" href="http://davidjb.com/blog/2009/08/plone-re-ordering-viewlets/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/08/plone-re-ordering-viewlets/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -119,7 +136,13 @@
</footer><!-- /.post-info --> <p>It&#8217;s amazing to see how technologies can be so smoothly integrated these
days.&nbsp; I&#8217;m talking, at least in this instance, about how setuptools
works with PyPI (and then Plone.org&#8217;s Products section) and allows you
-to distribute your product(s) to the world.&nbsp; So far, I&#8217;ve ...</p>
+to distribute your product(s) to the world.&nbsp; So far, I&#8217;ve just got the
+one &#8212; collective.portlet.googleapps &#8212; but I&#8217;m sure time will pass and
+I&#8217;ll have some more useful things to contribute. Here&#8217;s a summary of
+what I&nbsp;did:</p>
+<ol class="arabic">
+<li><p class="first">Create the product.&nbsp; ZopeSkel is a wonderful help here for Plone
+products. [I lie a little bit in ...</p></li></ol>
<a class="readmore" href="http://davidjb.com/blog/2009/08/creating-distributing-a-new-plonepypi-product/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/08/creating-distributing-a-new-plonepypi-product/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -144,7 +167,11 @@
</footer><!-- /.post-info --> <p><strong><span class="caps">EDIT</span>:</strong> Watch out for python-ldap 2.3.10, the latest version at time
of writing. Seems like there&#8217;s an issue with it and Centos 5.4. Forcing
python-ldap to be version 2.3.8 works, though. (easy_install&nbsp;python-ldap==2.3.8)</p>
-<p>Previously, you might have read about setting up ...</p>
+<p>Previously, you might have read about setting up a Virtualenv on Ubuntu
+Jaunty. Now, that was reasonably painless since python-virtualenv and
+python-setuptools is in the Ubuntu repo. Whether it&#8217;s my Centos servers
+and their misguided repos or me just not being able to find such a
+related rpm packages, Centos just needs little more love to get ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/07/virtualenv-plone-and-centos-5/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/07/virtualenv-plone-and-centos-5/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -169,7 +196,11 @@
</footer><!-- /.post-info --> <p>I may well be late to the party and a little late to celebrate, but I&#8217;ve
just made the startling discovery that <span class="caps">VLC</span> 1.0.0 has now been&nbsp;released.</p>
<p>I&#8217;ve been using <span class="caps">VLC</span> since (before, actually) I thought there had to more
-to playing videos than needing ...</p>
+to playing videos than needing extravagent codec packs like K-lite or
+anything similar to be installed on your system.&nbsp; It&#8217;s been that long
+that the first version I used, if I remember correctly, wasn&#8217;t actually
+being specifically used for client-side file playback and was supposed
+to be geared towards video streaming over a ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/07/vlc-has-turned-1/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/07/vlc-has-turned-1/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -194,7 +225,12 @@
</footer><!-- /.post-info --> <p>Today&#8217;s interesting post concerns finding and replacing terms across
multiple files via a simple command.&nbsp; Thanks to <a class="reference external" href="http://www.64bitjungle.com/ubuntu/recursively-search-and-replace-terms-in-multiple-files-with-grep-xargs-and-sed/">this great blog post</a>,
it all comes down to one single line.&nbsp; I had found a previously-useful
-line of code, but the problem with that one was the fact that it used ...</p>
+line of code, but the problem with that one was the fact that it used
+the <strong>find</strong> command.&nbsp; The problem with that is that if you do a
+wildcard search for * in a directory, it&#8217;ll give you back &#8216;.&#8217; as a
+result.&nbsp; Trying to work with that just wasn&#8217;t&nbsp;happening.</p>
+<p>So, without further ado, the command (replacing &#8216;search&#8217; with your
+search term and &#8216;target ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/07/find-and-replace-across-files-linux-command-line/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/07/find-and-replace-across-files-linux-command-line/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -220,7 +256,11 @@
plone.app.blob: sometimes migrations won&#8217;t work when converting a
standard site&#8217;s files over to&nbsp;blobs.</p>
<p>That&#8217;s a pretty ambiguious description, but essentially, the error you
-might see will have a semi-normal traceback to start, and then ...</p>
+might see will have a semi-normal traceback to start, and then garbage
+(contents of a file, presumably) - which, depending on the file size
+might hurt your browser.&nbsp; The last part of the (normal) traceback reads&nbsp;thus:</p>
+<pre class="code pytb literal-block">
+<span class="x">File &quot;/home/buildout/instance/eggs/plone.app.linkintegrity-1.0.11-py2.4.egg/ plone/app/linkintegrity/handlers.py&quot;, line 158, in referencedObjectRemoved raise LinkIntegrityNotificationException, obj LinkIntegrityNotificationException ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2009/07/plone-app-blob-and-failed-migrations/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/07/plone-app-blob-and-failed-migrations/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -245,7 +285,11 @@
</footer><!-- /.post-info --> <p>It&#8217;s something I came across a while ago, but wasn&#8217;t exactly something
that stayed in the fore-front of my mind: how to let users choose or
select a theme (arbitrarily) on a Plone site.&nbsp; Normally, I stick to
-having one theme per site for continuity but a new ...</p>
+having one theme per site for continuity but a new theme-test site for
+clients is an&nbsp;exception.</p>
+<p>If you were to search Google for the right terms, you&#8217;ll find out how to
+let this happen, but I ended up having to go hunt it down myself.
+Hopefully this entry will help people (if I go and include as many ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/06/user-selectable-themes-in-plone/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/06/user-selectable-themes-in-plone/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -271,7 +315,10 @@
when outputted actually end up being the same&nbsp;date?</p>
<p><strong>Answer:</strong> I&#8217;m not sure, but I&#8217;m pretty sure it&#8217;s got something to do
with the wacky support the above-mentioned 3 products have for&nbsp;timezones.</p>
-<p><strong>The ...</strong></p>
+<p><strong>The background:</strong> Plone stores a DateTime object to record a user&#8217;s
+last login time.&nbsp; It doesn&#8217;t really matter what&#8217;s purpose is, because
+Plone (this time) isn&#8217;t at fault.&nbsp; The DateTime gets stored, no
+worries.&nbsp; The problem arises when you try to put that value back into a ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/06/datetime-in-pythonzopeplone-is-painful/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/06/datetime-in-pythonzopeplone-is-painful/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
81 author/davidjb11.html
View
@@ -43,7 +43,14 @@
</footer><!-- /.post-info --> <p>So, you&#8217;ve got a website that you&#8217;ve made and you&#8217;ve used a Flash movie
on it.&nbsp; Okay, no worries.&nbsp; Now, what if you tried to add a
(non-form-element) drop-down menu or some <span class="caps">AJAX</span>-ed content into the site,
-and found the Flash movie actually acted as an ...</p>
+and found the Flash movie actually acted as an&nbsp;overlay?</p>
+<p>This problem doesn&#8217;t seem consistent.&nbsp; Different OSs, browsers, and
+Flash versions don&#8217;t indicate consistency - that&#8217;s what I&#8217;ve seen
+anyway.&nbsp; Nevertheless, the problem persists for some users and it&#8217;s
+down-right&nbsp;annoying.</p>
+<p>The fix?&nbsp; Make your Flash code look similar to&nbsp;this:</p>
+<pre class="code html literal-block">
+<span class="nt">&lt;object</span> <span class="na">data=</span><span class="s">&quot;my-movie.swf ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2009/06/webpage-content-underneath-flash-content/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/06/webpage-content-underneath-flash-content/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -69,7 +76,12 @@
above-mentioned pieces of software together. In all seriousness,
Virtualenv is now appearing to be the best thing since sliced bread for
me to help out with making Plone/Zope usable under&nbsp;Jaunty.</p>
-<p>By default, as everyone should know ...</p>
+<p>By default, as everyone should know by now, a whole bunch of old Python
+2.4 packages got removed from Jaunty, throwing us Plone developers into
+peril.&nbsp; Well, those of us who hadn&#8217;t discovered the joys of virtualenv
+yet, that&nbsp;is.</p>
+<p>Here&#8217;s how to convert an existing buildout folder over to Virtualenv
+without too ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/06/virtualenv-plone-and-ubuntu-904-jaunty/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/06/virtualenv-plone-and-ubuntu-904-jaunty/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -95,7 +107,11 @@
limited-access account for blogging on my new site, I&#8217;m back here again.
(<span class="caps">EDIT</span>: Migrated from old&nbsp;site)</p>
<p>This time is a lot of fun and games with removing an &quot;open&quot; logical
-volume from within a CentOS environment ...</p>
+volume from within a CentOS environment. The dom0 machine has a set of
+logical volumes in a volume group for each of the VMs and one of them
+went and failed dismally, and after its xen destruction (xm destory foo)
+its <span class="caps">LV</span> was left with it being&nbsp;&quot;open&quot;.</p>
+<p>It&#8217;s not exactly easy to see how ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/05/unix-removing-open-logical-volumes-in-centosrhl/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/05/unix-removing-open-logical-volumes-in-centosrhl/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -120,7 +136,16 @@
</footer><!-- /.post-info --> <p>Oh dear. Products in Plone that don&#8217;t care to uninstall themselves at
all when removed. One such product that comes to mind is&nbsp;ZipFileTransport.</p>
<p>I could go into depth all day about its failure to uninstall, but in
-specific, it&#8217;s this line of code in its setupHandlers.py ...</p>
+specific, it&#8217;s this line of code in its setupHandlers.py file that kills&nbsp;me:</p>
+<pre class="code python literal-block">
+<span class="n">sm</span><span class="o">.</span><span class="n">registerUtility</span><span class="p">(</span><span class="n">ZipFileTransportUtility</span><span class="p">(</span><span class="s">'zipfiletransport'</span><span class="p">),</span> <span class="n">IZipFileTransportUtility</span><span class="p">)</span>
+</pre>
+<p>Now, where&#8217;s the unregisterUtility called? Nowhere, unfortunately. So
+when one tries to go and install/uninstall/reinstall/do certain things
+on the site, you get a nasty failure message about trying to unpickle a
+python&nbsp;object:</p>
+<pre class="code pytb literal-block">
+<span class="x">2009-04-23 10:19:19 ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2009/04/plone-issues-with-products/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/04/plone-issues-with-products/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -145,7 +170,13 @@
</footer><!-- /.post-info --> <p>Probably my last blog entry here because I&#8217;ll be moving to the <span class="caps">AWESOME</span>
WordPress very soon &#64; <a class="reference external" href="http://davidjb.com/blog">http://davidjb.com/blog</a> (with a nice new site design,
too)&nbsp; (<span class="caps">EDIT</span>: Migrated from my old blog 8-) ) . (<strong>2013 edit</strong>: Goodbye
-Wordpress, I really hate <span class="caps">PHP</span> and its security issues. I&#8217;m a ...</p>
+Wordpress, I really hate <span class="caps">PHP</span> and its security issues. I&#8217;m a Python developer
+and I really should be eating my own&nbsp;dogfood).</p>
+<p>Anyway, how to prevent the addition of new categories to the Plone
+listing (the inline comments aren&#8217;t mine, they&#8217;re&nbsp;copied):</p>
+<blockquote>
+It&#8217;s a bit hidden and probably undocumented but here we go: <span class="caps">ZMI</span> -&gt;
+portal_metadata -&gt; schema tab (should ...</blockquote>
<a class="readmore" href="http://davidjb.com/blog/2009/04/plone-clamping-down-on-categories/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/04/plone-clamping-down-on-categories/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -170,7 +201,12 @@
</footer><!-- /.post-info --> <p>Welcome to my new website and in particular, my new blog. My aim is to
use this site now and slowly (but surely!) move away from the old haunts
of Wikidot. It&#8217;s especially intelligent considering that I&#8217;m actually
-paying for webspace on a yearly basis (albeit not much ...</p>
+paying for webspace on a yearly basis (albeit not much money) but I
+figure I should be using it all the&nbsp;same.</p>
+<p>So, without further ado - I declare my new site open for business. Much
+like Queensland Transport and the local city council around here, the
+road is under construction. So, please don&#8217;t blame me (to my face ;) )
+for ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/04/my-new-site/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/04/my-new-site/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -196,7 +232,15 @@
here: <a class="reference external" href="http://dev.plone4artists.org/pm/p/plone4artists/ticket/160">http://dev.plone4artists.org/pm/p/plone4artists/ticket/160</a></p>
<p>which essentially boils down to this problem when you try and edit a
video subtyped File from p4a.plonevideo (or p4a.video or whatever it&#8217;s
-called&nbsp;now ...</p>
+called&nbsp;now):</p>
+<pre class="code pytb literal-block">
+<span class="x">Traceback (innermost last):
+* Module ZPublisher.Publish, line 119, in publish
+* Module ZPublisher.mapply, line 88, in mapply
+* Module ZPublisher.Publish, line 42, in call_object
+* Module zope.formlib.form, line 769, in __call__
+* Module p4a.video.browser.video, line 362, in update
+* Module Products.Five.formlib.formbase, line 55, in update ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2009/02/plone-plone4artists-video-cant-edit-videos/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/02/plone-plone4artists-video-cant-edit-videos/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -222,7 +266,12 @@
Buildout not the best thing ever? (and the people who are so very kind
to make the&nbsp;recipes?)</p>
<p>It&#8217;s made my work of managing our Plone infrastructure about 1000 times
-simpler since moving from ...</p>
+simpler since moving from Instancemanager (ughhh) and having to manually
+manage everything. I remember being a bit sceptical and very confused
+the first time I saw a buildout configuration file and thought that I&#8217;d
+never understand the&nbsp;thing.</p>
+<p>Far, far from it of course! Whilst a little daunting at first, buildout
+has (in ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/02/buildout-best-thing-ever/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/02/buildout-best-thing-ever/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -247,7 +296,15 @@
</footer><!-- /.post-info --> <p>Wouldn&#8217;t it be great if you could somehow add your Event content item
within the Plone <span class="caps">CMS</span> onto your Google Calendar with just a click? (it&#8217;d
be better with fewer, but 1 click is pretty good - give me a&nbsp;break!)</p>
-<p>Try this placed inside the <tt class="docutils literal">event_view</tt> page template ...</p>
+<p>Try this placed inside the <tt class="docutils literal">event_view</tt> page template (customise it in
+the <span class="caps">ZMI</span>) after the vCal and iCal&nbsp;links:</p>
+<pre class="code html literal-block">
+<span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">&quot;#&quot;</span>
+<span class="na">tal:attributes=</span><span class="s">&quot;href python:'http://www.google.com/calendar/event?action=TEMPLATE'
++'&amp;text='+here.title
++'&amp;dates='+here.start().toZone('UTC').ISO8601().replace('-','').replace(':','').split('+')[0]+'Z/'
++here.end().toZone('UTC').ISO8601().replace('-','').replace(':','').split('+')[0]+'Z'
++'&amp;location ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2009/02/plone-google-calendar-integration/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/02/plone-google-calendar-integration/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -276,7 +333,11 @@
<p>after trying to build zope2zeoserver from my buildout&nbsp;configuration.</p>
<p>After some searching, I found that it was due to my bootstrap.py script
(the one the gets buildout in the first place and creates the relevant
-scripts) was ...</p>
+scripts) was actually pulling down an outdated version of zc.buildout.
+So, the problem results because this old version of buildout doesn&#8217;t
+have a clue how to handle the given&nbsp;argument.</p>
+<p><strong>Solution:</strong> update the buildout. For me, that meant correcting the
+bootstrap script, but for you, it could be a matter ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/02/buildout-trying-to-create-a-plonezope-instance/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/02/buildout-trying-to-create-a-plonezope-instance/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
77 author/davidjb12.html
View
@@ -46,7 +46,14 @@
<ul class="simple">
<li>Needed to install <strong>libssl-dev</strong> because <strong>lcrypto</strong> was missing
(ambiguity anyone?) - Synaptic says that the package provides &quot;libssl
-and libcrypto development libraries, header files and ...</li></ul>
+and libcrypto development libraries, header files and manpages&quot; (but
+never mind a search for&nbsp;`libcrypto`…)</li>
+<li>Had to correct the relevant user that the recipe was telling pound to
+build&nbsp;as.</li>
+</ul>
+<p>The first point was pretty silly and the second one was just clearly my
+copy-and-paste&nbsp;mistake.</p>
+
<a class="readmore" href="http://davidjb.com/blog/2009/02/buildout-trying-to-build-pound/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/02/buildout-trying-to-build-pound/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -71,7 +78,14 @@
</footer><!-- /.post-info --> <p>Today&#8217;s puzzle: how to get Ubuntu (specifically <span class="caps">GNOME</span> Panels as it turns
out) to use my new dual-monitor setup and show only the tasks from one
monitor on that monitor&#8217;s panel. Sure, people had mentioned that it was
-possible (everywhere) but noone actually seemed to take the time ...</p>
+possible (everywhere) but noone actually seemed to take the time to
+mention how. That&#8217;s when I found this:
+<a class="reference external" href="http://www.lloydleung.com/2006/10/14/gnome-multiple-monitor-taskbar-window-listing/">http://www.lloydleung.com/2006/10/14/gnome-multiple-monitor-taskbar-window-listing/</a>
+so cheers go to Lloyd there. Still works (and should be fine on any
+version from at least now&nbsp;on):</p>
+<ol class="arabic simple">
+<li>Right click on anywhere on the launchbar, click “New&nbsp;Panel”</li>
+<li>Drag that to ...</li></ol>
<a class="readmore" href="http://davidjb.com/blog/2009/02/ubuntu-dual-monitors-separating-tasks/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/02/ubuntu-dual-monitors-separating-tasks/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -96,7 +110,12 @@
</footer><!-- /.post-info --> <p>So, for today&#8217;s problem, how can we get a <span class="caps">URL</span> (specifically the <span class="caps">GET</span>
request arguments) suitably encoded? Easy, if we&#8217;re talking about a
Python script that lives on the file system and can be used within
-Zope/Plone that way. But what about some sort of Python script ...</p>
+Zope/Plone that way. But what about some sort of Python script that has
+to exist on the Plone site (specifically, creating a PloneFormGen (<span class="caps">PFG</span>)
+Custom&nbsp;Adapter)?</p>
+<p>First thing I jumped to is urllib and urlecode: but no luck because
+you&#8217;re unauthorised to import the library in your script.&nbsp;Boo!</p>
+<p>After much poking, and Googling for something that I thought should ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-url-encoding-in-a-script/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-url-encoding-in-a-script/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -121,7 +140,12 @@
</footer><!-- /.post-info --> <p>…and I had thought that installing a graphics card in a computer was as
easy as opening the case, inserting the card, and booting the machine
(then Xorg config etc). Well, to tell the truth, I just moved my <span class="caps">HDD</span>,
-peripherals (gfx card included) to a new box - now a ...</p>
+peripherals (gfx card included) to a new box - now a Dell OptiPlex 755.
+But, it&#8217;s not that easy if you can&#8217;t boot your Ubuntu 8.10 <span class="caps">OS</span>!</p>
+<p>The computer kept spitting this message out, even though it just worked
+a few days&nbsp;ago:</p>
+<pre class="literal-block">
+15.848000 NVRM: This PCI I/O region assigned to your NVIDIA device is invalid ...</pre>
<a class="readmore" href="http://davidjb.com/blog/2009/01/linux-graphics-card-woes-bios-issues/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/linux-graphics-card-woes-bios-issues/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -146,7 +170,10 @@
</footer><!-- /.post-info --> <p>Here&#8217;s how to correct pesky problems in your code/<span class="caps">XHTML</span> since the line
number and column references are slightly useless in the <span class="caps">ZMI</span>.</p>
<p>Paste contents from a page or page template from the <span class="caps">ZMI</span> into a program
-like gedit and then the line and column reference numbers will be ...</p>
+like gedit and then the line and column reference numbers will be
+correct (once you remove the comment about the error from the top of the&nbsp;page).</p>
+<p>Editing in the <span class="caps">ZMI</span> is a bit painful, but we&nbsp;persevere.</p>
+
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-correcting-page-template-errors-easily/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-correcting-page-template-errors-easily/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -172,7 +199,13 @@
finally figured out why our Varnish configuration around here for
Plone/Zope hasn&#8217;t been accepting <span class="caps">PURGE</span> requests. Thus, without accepting
purge requests correctly, any content that gets changed in Plone doesn&#8217;t
-get updated ...</p>
+get updated in the cache until it times out (or we restart it). Ouch -
+especially because it affects all sites under virtual hosting, and a lot
+of these sites have publicly visible content that needs to be available&nbsp;immediately.</p>
+<p>So, the problem manifested itself as&nbsp;thus:</p>
+<ul class="simple">
+<li>Cache hits&nbsp;happen</li>
+<li>Performance was good ...</li></ul>
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-varnish-configuration-cache-hits-purge-fails/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-varnish-configuration-cache-hits-purge-fails/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -198,7 +231,12 @@
<p>The first perplexing puzzle for the week was a seemingly silly idea (it
still is) in Plone where it allows you to view the contents of a given
folder in batches of 20. Now, combine this concept (which is good) with
-a concept of being ...</p>
+a concept of being able to re-order items within the folder (which is
+good too), you end up with not being able to move items between&nbsp;&#8216;batches&#8217;.</p>
+<p>Troublesome. There&#8217;s nothing obvious that you can do aside from
+disabling your browser&#8217;s JavaScript and using the manual buttons. Nope:
+not&nbsp;feasible.</p>
+<p>Try making your ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-re-ordering-folder-contents/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-re-ordering-folder-contents/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -224,7 +262,14 @@
and we&#8217;re done, right? Well, sure, if we didn&#8217;t want to adhere to <span class="caps">W3C</span>&nbsp;standards.</p>
<p>To do the right thing, we need something like&nbsp;this:</p>
<pre class="code html literal-block">
-<span class="nt">&lt;object</span> <span class="na">type=</span><span class="s">&quot;application/x-shockwave-flash&quot;</span> <span class="na">data=</span><span class="s">&quot;movie.swf&quot;</span> <span class="na">width ...</span></pre>
+<span class="nt">&lt;object</span> <span class="na">type=</span><span class="s">&quot;application/x-shockwave-flash&quot;</span> <span class="na">data=</span><span class="s">&quot;movie.swf&quot;</span> <span class="na">width=</span><span class="s">&quot;100&quot;</span> <span class="na">height=</span><span class="s">&quot;100&quot;</span><span class="nt">&gt;</span>
+ <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">&quot;movie&quot;</span> <span class="na">value=</span><span class="s">&quot;movie.swf&quot;</span> <span class="nt">/&gt;</span>
+ <span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">&quot;alt.jpg&quot;</span> <span class="na">width=</span><span class="s">&quot;100&quot;</span> <span class="na">height=</span><span class="s">&quot;100&quot;</span> <span class="na">alt=</span><span class="s">&quot;&quot;</span> <span class="nt">/&gt;</span>
+<span class="nt">&lt;/object&gt;</span>
+</pre>
+<p>Not much to it there, and this is available everywhere on the web. It
+validates okay, and that&#8217;s what we&nbsp;need.</p>
+<p>However, if you follow normal procedure for sticking this ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-how-to-xhtml-compliant-flash-insertion/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-how-to-xhtml-compliant-flash-insertion/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -251,7 +296,15 @@
PloneFormGen (otherwise known as <span class="caps">PFG</span>) view to break in a nasty&nbsp;way:</p>
<pre class="code pytb literal-block">
<span class="x">Module None, line 13, in fgvalidate_base
-- &lt;fscontrollervalidator at /site/fgvalidate_base used for /site ...</span></pre>
+- &lt;fscontrollervalidator at /site/fgvalidate_base used for /site/registration-form&gt;
+- Line 13
+Module Products.PloneFormGen.content.form, line 519, in fgvalidate
+Module plone.protect.authenticator, line 60, in check
+Forbidden: Form authenticator is invalid.</span>
+</pre>
+<p>Obviously there&#8217;s some new validation code for forms in Plone 3.1+.
+Thanks to a very simple (and useful!) blog entry:
+<a class="reference external" href="http://www.die-welt.net/index.php/blog/239/Upgading_forms_in_Plone_3">http://www.die-welt ...</a></p>
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-ploneformgen-customisations/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-ploneformgen-customisations/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -277,7 +330,11 @@
you&#8217;ve seen a few of them, it&#8217;s straight forward enough to replicate for
new Plone sites and so&nbsp;forth.</p>
<p>However, to make things even easier on my brain I&#8217;ve found this:
-<a class="reference external" href="http://betabug.ch/zope/witch">http://betabug ...</a></p>
+<a class="reference external" href="http://betabug.ch/zope/witch">http://betabug.ch/zope/witch</a> , the Rewrite Rule Witch. Seems like the
+rules it produces are what I&#8217;d expect, which makes me ponder why, if I
+know they&#8217;re right, would I&nbsp;bother.</p>
+<p><strong>Reason:</strong> easy confirmation and less chance of&nbsp;typos.</p>
+
<a class="readmore" href="http://davidjb.com/blog/2009/01/rewrite-rules-made-easy/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/rewrite-rules-made-easy/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
82 author/davidjb13.html
View
@@ -45,7 +45,11 @@
aren&#8217;t always pretty. My latest escapade into trying to load up Varnish
through zc.buildout resulted in a hair-tearing out&nbsp;message:</p>
<pre class="code pytb literal-block">
-<span class="x">An internal error ...</span></pre>
+<span class="x">An internal error occured due to a bug in either zc.buildout or in a
+recipe being used:
+</span><span class="gt">Traceback (most recent call last):
+</span><span class="gr">File &quot;/tmp/tmp8o-_PD/zc.buildout-1.1.1-py2.4.egg/zc/buildout/buildout.py&quot;, line 1477, in main
+File &quot;/tmp/tmp8o-_PD/zc.buildout-1.1.1-py2.4.egg/zc/buildout/buildout.py ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2009/01/buildout-and-version-problems/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/buildout-and-version-problems/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -71,7 +75,11 @@
headphones causes your Intrepid Ibex install of Ubuntu to crap itself.
Even with the same set of headphones plugged back into the same port not
10 seconds later.&nbsp;Painful.</p>
-<p>But, the good news is that ...</p>
+<p>But, the good news is that after a few hours of pain, PulseAudio works
+and it&#8217;s magical in comparison to the older audio systems (3 apps
+playing audio at&nbsp;once..wow).</p>
+<p>Check out <a class="reference external" href="http://ubuntuforums.org/showthread.php?t=789578">http://ubuntuforums.org/showthread.php?t=789578</a> for a great
+walk-through on how to set it up on Hardy or Intrepid. Unfortunately ...</p>
<a class="readmore" href="http://davidjb.com/blog/2009/01/ubuntu-pulseaudio-joy/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/ubuntu-pulseaudio-joy/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -99,7 +107,11 @@
some useful&nbsp;info:</p>
<div class="section" id="troublesome-python-eggs">
<h2>Troublesome Python&nbsp;eggs</h2>
-<p>Now ...</p></div>
+<p>Now, much to my amazement, when you&#8217;re creating/compiling/whatever
+Python eggs for Plone you need to actually specify the files you want
+included in the build. I suppose it&#8217;s fair enough, but thought it might
+have actually done it for me. No such&nbsp;luck!</p>
+<p>The <tt class="docutils literal"><span class="caps">SOURCES</span>.txt</tt> file ...</p></div>
<a class="readmore" href="http://davidjb.com/blog/2009/01/plone-python-eggs-and-development/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2009/01/plone-python-eggs-and-development/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -126,7 +138,19 @@
separately from having to easy_install or install system-wide&nbsp;packages.</p>
<p>So it&#8217;s almost Christmas time and I&#8217;m still slaving away working. It&#8217;s
all about&nbsp;commitment.</p>
-<p>Today in ...</p>
+<p>Today in my life I&#8217;ve been trying to install the OpenXml product for
+Plone (using buildout, of&nbsp;course):</p>
+<pre class="literal-block">
+david&#64;computer:~/buildout/instance$ ./bin/buildout
+Uninstalling zopepy.
+Uninstalling instance.
+Updating plone.
+Updating zope2.
+Updating productdistros.
+Installing instance.
+Getting distribution for 'Products.OpenXml'.
+Got Products.OpenXml 1.0.1.
+Getting distribution for 'openxmllib ...</pre>
<a class="readmore" href="http://davidjb.com/blog/2008/12/plone-buildout-wont-install-products-openxml/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/12/plone-buildout-wont-install-products-openxml/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -154,7 +178,10 @@
<pre class="code bash literal-block">
ssh host.name -L YYYY:other.host:ZZZZ
</pre>
-<p>Essentially, this means logging into the first machine and creating ...</p>
+<p>Essentially, this means logging into the first machine and creating port
+<span class="caps">YYYY</span> on the local machine as the port <span class="caps">ZZZZ</span> from&nbsp;other.host</p>
+<p>Works&nbsp;well.</p>
+
<a class="readmore" href="http://davidjb.com/blog/2008/12/unix-ssh-port-forwarding/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/12/unix-ssh-port-forwarding/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -183,7 +210,12 @@
the src/ directory and create a development product with&nbsp;ZopeSkel:</p>
<pre class="literal-block">
&gt; paster create -t archetype
-Enter title (The ...</pre>
+Enter title (The title of the project) ['Plone Example']: Koansys Newproduct
+Enter namespace_package (Namespace package (like plone)) ['plone']: koansys
+Enter package (The package contained namespace package (like example)) ['example']: newproduct
+Enter zope2product (Are you creating a Zope 2 Product?) [False]: True
+Enter version (Version) ['0.1']:
+Enter description (One-line description of the package ...</pre>
<a class="readmore" href="http://davidjb.com/blog/2008/12/plone-archetypes-with-paster/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/12/plone-archetypes-with-paster/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -208,7 +240,14 @@
</footer><!-- /.post-info --> <p>I&#8217;m back with even more Plone goodness. Turns out Ploneboard has a
problem/issue (well, <span class="caps">HAD</span> an issue until I went and edited the code on
the <span class="caps">SVN</span> repository for the Collective of Plone. Read: will not have in
-the next major release) with redirecting the user after they ...</p>
+the next major release) with redirecting the user after they go and edit
+a post. So essentially the user ends up getting to a page that says
+&#8216;Insufficient privileges&#8217;, which is was extremely odd considering I do
+everything as an&nbsp;admin.</p>
+<p>The fix goes a little something like&nbsp;this:</p>
+<p>In ploneboard_scripts/comment_redirect_to_conversation change it to&nbsp;be:</p>
+<pre class="code python literal-block">
+<span class="c"># XXX if we ever ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2008/11/plone-ploneboard-conversation-editing/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/11/plone-ploneboard-conversation-editing/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -230,7 +269,19 @@
</address>
<p>In <a href="http://davidjb.com/category/plone.html">Plone</a>. </p>
<p>tags: <a href="http://davidjb.com/tag/edit.html">edit</a> <a href="http://davidjb.com/tag/hack.html">hack</a> <a href="http://davidjb.com/tag/javascript.html">javascript</a> <a href="http://davidjb.com/tag/plone.html">plone</a> <a href="http://davidjb.com/tag/redirect.html">redirect</a> <a href="http://davidjb.com/tag/template.html">template</a> </p>
-</footer><!-- /.post-info --> <p>Was wondering how to get a Plone page template to go to a page before the template actually loads. Now, actually getting Plone to not go to this template would be <span class="caps">FAR</span> better, but since we can’t actually modify the functionality of the Favourites content items in the content ...</p>
+</footer><!-- /.post-info --> <p>Was wondering how to get a Plone page template to go to a page before the template actually loads. Now, actually getting Plone to not go to this template would be <span class="caps">FAR</span> better, but since we can’t actually modify the functionality of the Favourites content items in the content listings (not easily), I instead modify it’s default&nbsp;view.</p>
+<p>Using&nbsp;this:</p>
+<pre class="code html literal-block">
+<span class="nt">&lt;head&gt;</span>
+ <span class="nt">&lt;metal:js</span> <span class="na">fill-slot=</span><span class="s">&quot;javascript_head_slot&quot;</span><span class="nt">&gt;</span>
+ <span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span>
+ <span class="na">tal:content=</span><span class="s">&quot;python:'location.href=\''+portal.absolute_url()+'/'+here.remoteUrl+'\';;'&quot;</span><span class="nt">&gt;</span>
+ <span class="nt">&lt;/script&gt;</span>
+ <span class="nt">&lt;/metal:js&gt;</span>
+<span class="nt">&lt;/head&gt;</span>
+</pre>
+<p>We see that the page reloads to the relevant location as soon as the
+head JavaScript ...</p>
<a class="readmore" href="http://davidjb.com/blog/2008/11/plone-page-template-redirects/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/11/plone-page-template-redirects/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -256,7 +307,13 @@
need to created a &#8216;Recent Changes&#8217; portlet that&#8217;s relative to where the
user is on the&nbsp;site.</p>
<p>Now, the standard portlet doesn&#8217;t do anything for me, so that&#8217;s pretty
-useless. I had ...</p>
+useless. I had a look at the standard code for the portlet too and it&#8217;s
+not really feasible to try and mess&nbsp;with:</p>
+<pre class="code xml literal-block">
+<span class="nt">&lt;tal:recentlist</span> <span class="na">define=</span><span class="s">&quot;view here/&#64;&#64;recent_view; results here/results;&quot;</span><span class="nt">&gt;</span>
+</pre>
+<p>However, using a (nasty?) workaround, if we put the classic Recent
+Changes portlet into play, we can change that above ...</p>
<a class="readmore" href="http://davidjb.com/blog/2008/11/plone-relative-recent-changes-portlets/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/11/plone-relative-recent-changes-portlets/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -282,7 +339,12 @@
https://github.com/davidjb/JCU-Thesis-LyX-Layout for you to fork and
improve. Feel free to drop me a line if you're using it! -->
<p>What might be interesting to all you <a class="reference external" href="http://www.jcu.edu.au/">James Cook
-University</a> or <strong><span class="caps">JCU</span></strong> folk out there (yeah, you know ...</p>
+University</a> or <strong><span class="caps">JCU</span></strong> folk out there (yeah, you know who you are!), is
+the attached zip file to this post. It&#8217;s a <a class="reference external" href="http://www.lyx.org/">LyX</a> layout that
+automagically inserts the required details into your thesis (Honours or
+PhD), assuming that you give the correct details to LyX. Just so you
+know, <strong>LyX</strong> is a <span class="caps">WYSIWYM</span> (what-you-see-is-what-you-mean) editor for
+<strong>LaTeX</strong>, which ...</p>
<a class="readmore" href="http://davidjb.com/blog/2008/11/jcu-lyx-layout/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2008/11/jcu-lyx-layout/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
78 author/davidjb2.html
View
@@ -44,7 +44,11 @@
responder applications for use with your favourite non-Apache and non-<span class="caps">IIS</span>
web server. Unfortunately, the default distributions don&#8217;t come with it
built by default. I&#8217;m looking into why this is the case, but for now
-here&#8217;s how ...</p>
+here&#8217;s how to rebuild the RPMs&nbsp;yourself.</p>
+<p><strong>Note</strong>: if you&#8217;re just looking to download something that works and don&#8217;t
+want to rebuild things yourself, we have <span class="caps">RHEL</span> 6, x86_64 packages available
+in a Yum repo at <a class="reference external" href="https://www.hpc.jcu.edu.au/rpm/">https://www.hpc.jcu.edu.au/rpm/</a>. You&#8217;ll also need to trust
+my ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/04/setting-up-a-shibboleth-sp-with-fastcgi-support/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/04/setting-up-a-shibboleth-sp-with-fastcgi-support/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -70,7 +74,10 @@
the error pages the software is generating are missing the Shibboleth logo?
If so, it&#8217;s because those error pages are attempting to display a logo
(typically <tt class="docutils literal"><span class="pre">/shibboleth-sp/logo.jpg</span></tt> by default) but the logo of the Griffin
-that ...</p>
+that you may have been used to seeing is no longer distributed with the&nbsp;software.</p>
+<p>Unfortunately, this change doesn&#8217;t appear to be documented (yet),
+but is highlighted in this discussion: <a class="reference external" href="http://shibboleth.1660669.n2.nabble.com/Shibboleth-logo-in-Red-Hat-RPM-tp7583386.html">http://shibboleth.1660669.n2.nabble.com/Shibboleth-logo-in-Red-Hat-<span class="caps">RPM</span>-tp7583386.html</a></p>
+<p>More or less, the reasoning given is that the Shibboleth ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/04/shibboleth-sp-logojpg-missing-from-distributions/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/04/shibboleth-sp-logojpg-missing-from-distributions/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -95,7 +102,21 @@
</footer><!-- /.post-info --> <p>This is a follow up to a previous post on
<a class="reference external" href="http://davidjb.com/blog/2013/04/switching-to-nginx-from-cherokee-why/">Switching to Nginx from Cherokee</a>. Read that in case you&#8217;re here and haven&#8217;t&nbsp;already.</p>
<p>All information here on a server level is related to <span class="caps">RHEL</span> 6. You will
-need to change some instructions for Debian based systems. CentOS ...</p>
+need to change some instructions for Debian based systems. CentOS
+should be fine and needs only a minor <span class="caps">URL</span> change in the repo&nbsp;configuration.</p>
+<ol class="arabic">
+<li><p class="first">Edit <tt class="docutils literal">/etc/yum.repos.d/nginx.repo</tt> and add&nbsp;this:</p>
+<pre class="literal-block">
+[nginx]
+name=nginx repo
+baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
+gpgcheck=0
+enabled=1
+</pre>
+</li>
+<li><p class="first">Run <tt class="docutils literal">yum install nginx</tt> to install&nbsp;Nginx.</p>
+</li>
+<li><p class="first">Start rebuilding your ...</p></li></ol>
<a class="readmore" href="http://davidjb.com/blog/2013/04/switching-to-nginx-from-cherokee-techincal-guide/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/04/switching-to-nginx-from-cherokee-techincal-guide/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -120,7 +141,18 @@
</footer><!-- /.post-info --> <p>After a switching away from Apache some time ago, our primary web server
had been running <a class="reference external" href="http://cherokee.github.io/">Cherokee</a> for quite a while
- since September 2011, in fact, looking back at the configuration history.
-More recently, however, I&#8217;ve switched us again. This time to <a class="reference external" href="http://nginx.org">Nginx</a> - with impressive improvements in performance and ...</p>
+More recently, however, I&#8217;ve switched us again. This time to <a class="reference external" href="http://nginx.org">Nginx</a> - with impressive improvements in performance and
+configurability (10x for some static files) &#8212; and&nbsp;reliability.</p>
+<div class="note">
+<p class="first admonition-title">Note</p>
+<p class="last">See my <a class="reference external" href="http://davidjb.com/blog/2013/04/switching-to-nginx-from-cherokee-techincal-guide/">technical guide</a> for technical
+info about&nbsp;switching.</p>
+</div>
+<div class="section" id="background">
+<h2>Background</h2>
+<p>Originally, the selection of Cherokee as web server software looked
+promising - the Cherokee project had been around for a while, was gathering
+support, had a reasonable level of uptake, and consistent ...</p></div>
<a class="readmore" href="http://davidjb.com/blog/2013/04/switching-to-nginx-from-cherokee-why/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/04/switching-to-nginx-from-cherokee-why/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -146,7 +178,12 @@
effectively like a standard reverse <tt class="docutils literal">proxy_pass</tt>. However, the documentation
isn&#8217;t entirely clear exactly how one can correctly serve an application
against a sub-directory &#8212; and have the application know its correct path
-such that it can create correct&nbsp;URLs ...</p>
+such that it can create correct&nbsp;URLs.</p>
+<p>Coming from a background of using the Cherokee webserver, uWSGI operated
+slightly differently within its configuration. This behaviour, as best I
+know, must have modified the given uWSGI parameters to correctly handle the
+sub-directory path. I haven&#8217;t looked into it, but it probably just does
+the same thing that ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/04/serving-uwsgi-apps-on-a-sub-directory-with-nginx/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/04/serving-uwsgi-apps-on-a-sub-directory-with-nginx/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -171,7 +208,10 @@
</footer><!-- /.post-info --> <p>Yes, I&#8217;m a little ashamed that I did used to run Wordpress as my blog and my
website. Being a Python developer that I am, it&#8217;s not exactly good form, nor
is it good for one&#8217;s sanity to have to keep updating something every few days
-with ...</p>
+with security updates. Maybe I&#8217;m giving <span class="caps">PHP</span> applications and Wordpress a hard
+time given their prevalence out in the wild, but the fact remains that it just
+wasn&#8217;t working for me. It might also have a little to do with the fact that my
+existing web host has decided ...</p>
<a class="readmore" href="http://davidjb.com/blog/2013/03/new-blog-goodbye-wordpress/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2013/03/new-blog-goodbye-wordpress/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -197,7 +237,11 @@
Ubuntu 12.10 is that my <span class="caps">GTK</span> toolbar icons are very large (32x32 pixels)
and have labels on them. This takes up a decent amount of screen real
estate in applications like gedit, Rhythmbox, and many others &#8212;
-effectively anything that ...</p>
+effectively anything that&#8217;s using <span class="caps">GTK</span>. What&#8217;s worse, it looks like the
+latest Ubuntu (Quantal Quetzal) now is adding visual padding/spacing
+around the buttons. I don&#8217;t like this at all and prefer my buttons to be
+tiny and without&nbsp;labels.</p>
+<p>As per the post at <a class="reference external" href="http://ubuntuforums.org/showthread.php?t=1859526">http://ubuntuforums.org/showthread.php ...</a></p>
<a class="readmore" href="http://davidjb.com/blog/2012/10/configuring-gtkgnome-toolbar-icon-sizes-and-labels-ubuntu-12-10-and-more/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/10/configuring-gtkgnome-toolbar-icon-sizes-and-labels-ubuntu-12-10-and-more/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -222,7 +266,12 @@
</footer><!-- /.post-info --> <p>This one couldn&#8217;t be simpler, but it&#8217;s worth noting all the same. &nbsp;I&#8217;ve just
experienced a situation where a <a class="reference external" href="http://www.virtualenv.org/en/latest/index.html">virtualenv</a>&nbsp; was being completely ignored by
all tools even though it was absolutely activated via <tt class="docutils literal">source bin/activate</tt>.</p>
-<p>The answer was to blow away the <tt class="docutils literal">lib</tt> directory within ...</p>
+<p>The answer was to blow away the <tt class="docutils literal">lib</tt> directory within the virtualenv and
+blow away the local Python interpreter at <tt class="docutils literal">bin/python</tt> and re-create the
+virtualenv. After deactivating and re-activating, everything works correctly&nbsp;again.</p>
+<p>I guess something in the environment (or env variables) got messed up.
+Who knows; it works&nbsp;now.</p>
+
<a class="readmore" href="http://davidjb.com/blog/2012/08/virtualenv-being-ignored-by-setuptoolsdistributeeasy_install/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/08/virtualenv-being-ignored-by-setuptoolsdistributeeasy_install/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -247,7 +296,11 @@
</footer><!-- /.post-info --> <p>Either my Dell Optiplex 990 computer or my Linux install has an issue:
occasionally, when I re-plug a <span class="caps">USB</span> device into the system, it&#8217;ll cause a
fault in the <span class="caps">USB</span> module in the kernel and <span class="caps">USB</span> goes dark. I&#8217;m unsure as
-to whether this is a hardware or ...</p>
+to whether this is a hardware or software issue, but I&#8217;d simply like to
+restart my <span class="caps">USB</span> subsystem and continue working. When searching the web
+for &#8216;restart <span class="caps">USB</span> in Linux&#8217; and &#8216;reload <span class="caps">USB</span> kernel module&#8217;, you get a
+plethora of results and none of which will work (seemingly due to how
+the Ubuntu standard kernel is ...</p>
<a class="readmore" href="http://davidjb.com/blog/2012/06/restartreset-usb-in-ubuntu-12-04-without-rebooting/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/06/restartreset-usb-in-ubuntu-12-04-without-rebooting/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -273,7 +326,12 @@
organization, depending from where you hail), its repositories, teams,
and service hooks has become a tedious task and that you&#8217;d rather be
doing something else? &nbsp;Maybe you&#8217;re of the mindset that there should be
-a better way of ...</p>
+a better way of doing things - a way that involves specific,
+version-controlled configuration and less repetition (less
+clicky-clicky). &nbsp;The good news is that there is &#8212; <a class="reference external" href="http://pypi.python.org/pypi/github-collective">github-collective</a>!</p>
+<p>This is a script, written in Python, that utilises <a class="reference external" href="http://developer.github.com/">GitHub&#8217;s <span class="caps">JSON</span>-based
+<span class="caps">API</span></a> to allow you to construct an ini-style text-based configuration
+representing your GitHub organisation and ...</p>
<a class="readmore" href="http://davidjb.com/blog/2012/06/easier-github-organisation-repository-and-team-management-with-github-collective/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/06/easier-github-organisation-repository-and-team-management-with-github-collective/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
79 author/davidjb3.html
View
@@ -44,7 +44,14 @@
<a class="reference external" href="http://plone.org/documentation/error/unable-to-create-a-folder-through-webdav/">http://plone.org/documentation/error/unable-to-create-a-folder-through-webdav/</a>,
but just a short editorial to also highlight that this is still very
applicable to Plone 4.x. Effectively, the symptom is that users will
-report seeing a &quot;401 Unauthorized&quot; error when trying to create ...</p>
+report seeing a &quot;401 Unauthorized&quot; error when trying to create folders
+within areas they have access to as an Owner. &nbsp;Without further ado, the&nbsp;documentation:</p>
+<p>Using a&nbsp;WebDAV&nbsp;client on a&nbsp;Plone&nbsp;site, site users are unable to create
+newfolders&nbsp;directories where they have Owner&nbsp;role.</p>
+<div class="section" id="problem">
+<h2>Problem:</h2>
+<p>The&nbsp;WebDAV&nbsp;&quot;make folder&quot; method, <span class="caps">MKCOL</span>, requires the &quot;Add&nbsp;Folders&quot;
+permission. This is ...</p></div>
<a class="readmore" href="http://davidjb.com/blog/2012/06/members-cant-add-folders-to-plone-via-webdav-401-unauthorized/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/06/members-cant-add-folders-to-plone-via-webdav-401-unauthorized/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -72,7 +79,18 @@
correctly accept post-receive hook <span class="caps">POST</span> requests from GitHub, even
though it was working fine. Without thorough testing, I can only really
see that the issue was related to upgrading Jenkins and/or the relevant
-Git and ...</p></div>
+Git and GitHub plugins. Thankfully, with even newer versions of the
+above, it has started working again. So, to those with issues, I offer
+this <span class="caps">KGS</span> (Known Good Set) of versions for your&nbsp;help:</p>
+<ul class="simple">
+<li>Jenkins&nbsp;1.470</li>
+<li>Jenkins <span class="caps">GIT</span> plugin&nbsp;1.1.19</li>
+<li>github-api&nbsp;1.28</li>
+<li>GitHub plugin&nbsp;1.4</li>
+</ul>
+</div>
+<div class="section" id="some-projects-work">
+<h2>Some projects ...</h2></div>
<a class="readmore" href="http://davidjb.com/blog/2012/06/jenkins-ci-and-github-post-receive-hooks-ceasing-to-work-potential-solution/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/06/jenkins-ci-and-github-post-receive-hooks-ceasing-to-work-potential-solution/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -98,7 +116,12 @@
range of options and supported platforms. &nbsp;For me, however, just getting
something seemingly simple up and running successfully was relatively
confusing. I&#8217;d like to contribute to the documentation when I can, but
-thought a dedicated page about <a class="reference external" href="http://tilestache.org">TileStache ...</a></p>
+thought a dedicated page about <a class="reference external" href="http://tilestache.org">TileStache</a> as a specific application
+(and associated configuration) was warranted. It does make more sense
+now,&nbsp;thankfully.</p>
+<p>I want to serve my TileStache application at <a class="reference external" href="http://mydomain.com/tiles">http://mydomain.com/tiles</a>
+(taking careful note of the sub-directory present). I&#8217;ve chosen an
+<span class="caps">INI</span>-style configuration for my instance and here&#8217;s what the ...</p>
<a class="readmore" href="http://davidjb.com/blog/2012/06/serving-tilestache-or-another-app-using-uwsgi-against-a-web-sub-directory/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/06/serving-tilestache-or-another-app-using-uwsgi-against-a-web-sub-directory/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -124,7 +147,12 @@
fantastic Buildout recipe that allows you to use Python code in
functions within its options. &nbsp;This means that - in the few instances
I&#8217;ve used it so far - have conditional statements regarding effectively&nbsp;anything.</p>
-<p>In the two examples ...</p>
+<p>In the two examples I added to the <a class="reference external" href="https://github.com/collective/mr.scripty/blob/master/mr/scripty/README.txt">source documentation</a>, I go and
+configure download links based upon architecture and separately,
+configure some (Java) environment variables based upon which directories
+exist (eg to handle different Linux distributions that might be
+running). This is only the start, but it&#8217;s a fantastic&nbsp;one.</p>
+<p>Amazing I ...</p>
<a class="readmore" href="http://davidjb.com/blog/2012/02/mr-scripty-my-new-best-friend/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/02/mr-scripty-my-new-best-friend/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -150,7 +178,10 @@
results, unsurprisingly. &nbsp;Most results are workarounds where you modify
the code, but what about if an application (like Jenkins/Hudson <span class="caps">CI</span>, in
my case) throws this error at you? The reason the error is occurring is
-because the <span class="caps">SSL</span> certificate ...</p>
+because the <span class="caps">SSL</span> certificate of the target you&#8217;re connecting to isn&#8217;t
+considered valid by your Java instance&#8217;s keystore. This may be because
+the certificate itself is invalid, or, in my case, the <span class="caps">CA</span> chain couldn&#8217;t
+be validated (my <span class="caps">OS</span> is <span class="caps">RHEL</span> (Red Hat) 5.7, with OpenJDK 1.6). &nbsp;For ...</p>
<a class="readmore" href="http://davidjb.com/blog/2012/02/java-http-request-fails-with-javax-net-ssl-sslpeerunverifiedexception-peer-not-authenticated/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/02/java-http-request-fails-with-javax-net-ssl-sslpeerunverifiedexception-peer-not-authenticated/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -176,7 +207,12 @@
that several times quickly) and through accessing a <span class="caps">CAS</span> <tt class="docutils literal">/logout</tt> <span class="caps">URL</span>,
as an application, you&#8217;re able to log the given user out. &nbsp;What wasn&#8217;t
clear (by Googling) was whether there&#8217;s a possibility to redirect the
-user back to ...</p>
+user back to the original application (or a given <span class="caps">URL</span>). &nbsp;I now know,
+thanks to the <a class="reference external" href="http://www.jasig.org/cas/protocol"><span class="caps">CAS</span> Protocol Documentation</a> (section 2.3), that any
+posts that mention adding <tt class="docutils literal"><span class="pre">?service=http://my.url/</span></tt> to the <tt class="docutils literal">/logout</tt>
+<span class="caps">URL</span> are incorrect, as this isn&#8217;t a valid parameter (at least not at time
+of&nbsp;writing).</p>
+<p>However ...</p>
<a class="readmore" href="http://davidjb.com/blog/2012/01/adding-a-return-url-during-logout-with-cas/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2012/01/adding-a-return-url-during-logout-with-cas/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -201,7 +237,12 @@
</footer><!-- /.post-info --> <p>I&#8217;ve recently been using the Logitech G930 headset with my Ubuntu 11.10
install and I&#8217;ve found that the default configuration offers nothing in
terms of decent sound (tinny, no bass, etc). Thankfully, I&#8217;ve been able
-to turn to pulseaudio-equalizer for help with turning down the treble ...</p>
+to turn to pulseaudio-equalizer for help with turning down the treble
+and up the bass. However, using pulseaudio-equalizer-gtk wasn&#8217;t an
+entirely satisfying experience as the default volume for my headset kept
+being set to 100% upon restart. Now, if you recall my <a class="reference external" href="http://davidjb.com/blog/2011/10/logitech-g930-headphones-audio-quality-under-ubuntu">previous post on
+this headset</a>, having the volume for the device set at 100% leads to
+static being ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/12/configuring-pulseaudio-equalizer-defaults/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/12/configuring-pulseaudio-equalizer-defaults/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -231,7 +272,16 @@
<a class="reference external" href="https://github.com/koppen/redmine_github_hook">https://github.com/koppen/redmine_github_hook</a> and restart your
Redmine&nbsp;instance.</p>
</li>
-<li><p class="first">Set up your local Git ...</p></li></ol>
+<li><p class="first">Set up your local Git instance for your repository.&nbsp; This is simple,
+but you need to follow these steps or else pulling your changes down
+won&#8217;t&nbsp;work:</p>
+<pre class="code bash literal-block">
+git clone --bare git://github.com/davidjb/123.git
+<span class="nb">cd </span>123.git
+git remote add origin git://github.com/davidjb/123.git
+</pre>
+</li>
+<li><p class="first">Configure your Redmine project&#8217;s ...</p></li></ol>
<a class="readmore" href="http://davidjb.com/blog/2011/12/notes-about-redmine-and-github-post-commit-hooks/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/12/notes-about-redmine-and-github-post-commit-hooks/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -257,7 +307,11 @@
latest ones in the 4.x series, or else have started using
plone.app.discussion earlier than that, you might have come across a
situation where comments on your site show user IDs as authors rather
-than ...</p>
+than a user&#8217;s full name. If you see this anywhere, chances are your
+comment&#8217;s migration didn&#8217;t go according to plan, and that the Creator
+information didn&#8217;t get recorded correctly on the&nbsp;comment.</p>
+<p>I&#8217;ve just written this on the Collective developer docs:
+<a class="reference external" href="http://readthedocs.org/docs/collective-docs/en/latest/misc/upgrade.html#fixing-creator-details-on-existing-comments">http://readthedocs.org/docs/collective-docs ...</a></p>
<a class="readmore" href="http://davidjb.com/blog/2011/11/user-ids-show-as-comment-authors-in-plone-4-x-after-migration-from-plone-app-discussion/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/11/user-ids-show-as-comment-authors-in-plone-4-x-after-migration-from-plone-app-discussion/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -282,7 +336,12 @@
</footer><!-- /.post-info --> <p>So I recently purchased a new set of Logitech G930 headphones and am
currently using them with the latest version of Ubuntu, 11.10.&nbsp; Set up
was a breeze - just plug, check your PulseAudio config, and play.&nbsp; For
-those of you, like me originally, who were wondering whether the G930 ...</p>
+those of you, like me originally, who were wondering whether the G930
+works on Linux, it certain does on&nbsp;Ubuntu.</p>
+<p>Now, it wasn&#8217;t all peaches and cream because of two things.&nbsp; Firstly,
+the audio output with the default configuration was completely lacking
+any depth and &#8216;substance&#8217; to the sound being produced.&nbsp; I&#8217;m not an
+audiophile and I have slight hearing ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/10/logitech-g930-headphones-audio-quality-under-ubuntu/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/10/logitech-g930-headphones-audio-quality-under-ubuntu/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
74 author/davidjb4.html
View
@@ -43,7 +43,12 @@
</footer><!-- /.post-info --> <p>Here&#8217;s a quick and dirty solution to me not being able to keep updated
with <span class="caps">OCZ</span> firmware updates for my Vertex 3 <span class="caps">SSD</span>.&nbsp; For whatever reason, <span class="caps">OCZ</span>
doesn&#8217;t provide a news feed of firmware updates (that I know of, correct
-me if I&#8217;m wrong!) so I&#8217;ve ...</p>
+me if I&#8217;m wrong!) so I&#8217;ve sorted a screen scraping Yahoo Pipes pipe to
+do it for&nbsp;me:</p>
+<p><a class="reference external" href="http://pipes.yahoo.com/pipes/pipe.run?_id=a1f15d7ead0122567ad6537b2de484a3&amp;_render=rss">http://pipes.yahoo.com/pipes/pipe.run?_id=a1f15d7ead0122567ad6537b2de484a3&amp;_render=rss</a></p>
+<p>This <span class="caps">RSS</span> feed will (or should) only ever feature just 1 item - the
+latest version information for the firmware.&nbsp; So, it won&#8217;t handle
+keeping track of ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/10/rss-feed-for-ocz-vertex-3-ssd-firmware-updates/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/10/rss-feed-for-ocz-vertex-3-ssd-firmware-updates/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -72,7 +77,11 @@
keyboard now&nbsp;works!</p>
</div>
<p>Just a quick note to anyone out there confused out of their mind if
-their Dell keyboard isn&#8217;t working with their ...</p>
+their Dell keyboard isn&#8217;t working with their computer during boot: there
+is some incompatibility between the OptiPlex 990 and the Dell <span class="caps">SK</span>-8135
+keyboard.&nbsp; I&#8217;m using the A06 <span class="caps">BIOS</span>, which is latest at the time of&nbsp;writing.</p>
+<p>The result of this is that you cannot use the keyboard during boot, so
+not within <span class="caps">POST</span>, not to ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/10/dell-sk-8135-keyboard-not-working-during-boot-post-bios-grub-on-optiplex-990/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/10/dell-sk-8135-keyboard-not-working-during-boot-post-bios-grub-on-optiplex-990/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -97,7 +106,12 @@
</footer><!-- /.post-info --> <p>In case you were ever curious, it&#8217;s definitely possible to upload
epic-sized files within the Plone <span class="caps">CMS</span>. Browser support aside (Firefox
and your 2 <span class="caps">GB</span> limits, I&#8217;m looking you), I&#8217;d previously had issues with
-being able to upload files larger than 4 <span class="caps">GB</span>, if memory serves correctly ...</p>
+being able to upload files larger than 4 <span class="caps">GB</span>, if memory serves correctly.
+Previously, there was an issue with files causing out-of-memory issues,
+and I&#8217;m fairly sure the errors I was getting were related to what was
+fixed by <a class="reference external" href="https://dev.plone.org/collective/changeset/244916/Products.CMFEditions/trunk/">this change</a>.</p>
+<p>For today&#8217;s test, Google Chrome was able to upload a 26.3 <span class="caps">GB</span>
+(28212643840 bytes) .tar file into Plone on ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/10/epic-sized-files-with-plone-4-1-2/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/10/epic-sized-files-with-plone-4-1-2/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -124,7 +138,11 @@
<pre class="code pytb literal-block">
<span class="x">2011-09-14 08:43:32 ERROR plone.app.upgrade Upgrade aborted. Error:
</span><span class="gt">Traceback (most recent call last):
-</span> File <span class="nb">&quot;/home/david/.buildout ...</span></pre>
+</span> File <span class="nb">&quot;/home/david/.buildout/eggs/Products.CMFPlone-4.1-py2.6.egg/Products/CMFPlone/MigrationTool.py&quot;</span>, line <span class="m">175</span>, in <span class="n">upgrade</span>
+ <span class="n">step</span><span class="p">[</span><span class="s">'step'</span><span class="p">]</span><span class="o">.</span><span class="n">doStep</span><span class="p">(</span><span class="n">setup</span><span class="p">)</span>
+ File <span class="nb">&quot;/home/david/.buildout/eggs/Products.GenericSetup-1.6.3-py2.6.egg/Products/GenericSetup/upgrade.py&quot;</span>, line <span class="m">142</span>, in <span class="n">doStep</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="p">(</span><span class="n">tool</span><span class="p">)</span>
+ File <span class="nb">&quot;/home/david/.buildout/eggs/plone.app.upgrade-1.1-py2.6 ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2011/09/attributeerror-nonetype-object-has-no-attribute-items-cant-upgrade-plone-3-to-4-x/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/09/attributeerror-nonetype-object-has-no-attribute-items-cant-upgrade-plone-3-to-4-x/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -149,7 +167,12 @@
</footer><!-- /.post-info --> <p>My recent work has involved copying files from a remote host, only
accessible via a hop, back to my local computer. This has been simple in
the past as the remote host has been able to connect to the local
-computer and <span class="caps">SCP</span> files directly, on account of the firewall ...</p>
+computer and <span class="caps">SCP</span> files directly, on account of the firewall allowing
+this. Recently, the firewall against the local computer has been
+reconfigured for security and direct connection is no longer possible. I
+could pass my files through a 3rd-party that both the remote and local
+machines can get to, but let&#8217;s say I don&#8217;t have&nbsp;one.</p>
+<p>What you ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/09/scp-files-back-home-using-reverse-ssh-in-1-command/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/09/scp-files-back-home-using-reverse-ssh-in-1-command/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -175,7 +198,17 @@
<a class="reference external" href="http://pypi.python.org/pypi/funnelweb">Funnelweb</a>, and you hit an ImportError for BeautifulSoup?&nbsp; You&#8217;re
definitely not alone, because I just hit the same issue.&nbsp; The answer is
simple &#8212; just ensure that you don&#8217;t use BeautifulSoup 4 or above (this
-is still ...</p>
+is still beta) &#8212; it uses a different namespace, specifically bs4.
+Thus, whilst you might have the BeautifulSoup egg satisfying your
+dependencies, any imports of this package are going to&nbsp;fail.</p>
+<p>For me, I&#8217;m using buildout, so I just pinned my version of BeautifulSoup&nbsp;thusly:</p>
+<pre class="code cfg literal-block">
+<span class="k">[buildout]</span>
+<span class="err">...</span>
+<span class="na">versions</span> <span class="o">=</span> <span class="s">versions</span>
+
+<span class="k">[versions]</span>
+<span class="na">BeautifulSoup</span> <span class="o">=</span> <span class="s">3.2 ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2011/08/importerror-no-module-named-beautifulsoup/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/08/importerror-no-module-named-beautifulsoup/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -203,7 +236,15 @@
someone would try and create some content within Plone (folders,
particularly). Errors looked&nbsp;like:</p>
<pre class="code pytb literal-block">
-<span class="x">Module ZEO ...</span></pre>
+<span class="x">Module ZEO.zrpc.connection, line 796, in wait. DisconnectedError&quot; and &quot;raise ReadConflictError().
+ReadConflictError: database read conflict error&quot;</span>
+</pre>
+<p>and&nbsp;also:</p>
+<pre class="code pytb literal-block">
+<span class="x">ERROR ZEO.zrpc (2515) can't decode message: '(K\x11K\x01U\tserialnos(]((U\x08\x00\x00\x00\x00\x00X\x...'</span>
+</pre>
+<p>&#8212; essentially the issue described <a class="reference external" href="https://mail.zope.org/pipermail/zodb-dev/2010-December/013893.html">here</a>. My <span class="caps">ZEO</span> server was running
+<span class="caps">ZODB3</span> 3.9 ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/07/watch-out-python-2-4-zeo-client-and-python-2-6-zeo-server/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/07/watch-out-python-2-4-zeo-client-and-python-2-6-zeo-server/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -228,7 +269,12 @@
</footer><!-- /.post-info --> <p>Today, I needed to migrate some legacy Plone installs set up using
Buildout. If I were to simply move the buildout files and re-run
buildout, I&#8217;d end up with the latest versions of add-on products - and
-since I&#8217;m using legacy versions of Plone 3, that&#8217;d almost certainly ...</p>
+since I&#8217;m using legacy versions of Plone 3, that&#8217;d almost certainly
+break the system.&nbsp; I do know about the Buildout extension
+<a class="reference external" href="http://pypi.python.org/pypi/buildout.dumppickedversions">buildout.dumppickedversions</a> (which does what its name suggests and
+exports picked versions of eggs) but I can&#8217;t re-run buildout to get this
+extension for risk of updating existing products (what I&#8217;m trying to&nbsp;avoid!).</p>
+<p>The good news is ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/06/extracting-a-buildout-versions-cfg-from-a-zope-instance-script/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/06/extracting-a-buildout-versions-cfg-from-a-zope-instance-script/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -254,7 +300,11 @@
at using instead of my current Apache installs in order to squeeze a bit
(lot) more juice out of my web&nbsp;services.</p>
<p>You can easily install Cherokee via its automated scripting and that&#8217;s
-really useful.&nbsp; Unfortunately, since I ...</p>
+really useful.&nbsp; Unfortunately, since I&#8217;m within a RedHat environment,
+init scripts and other useful aspects that come packaged with Apache
+don&#8217;t get installed when installing from source. Now, there&#8217;s a lot of
+activity regarding installing the latest packages for Ubuntu, but not
+much of anything recent for <span class="caps">RHEL</span> (current Cherokee is 1 ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/05/building-cherokee-rpms-on-rhel-6-x86_64/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/05/building-cherokee-rpms-on-rhel-6-x86_64/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -283,7 +333,11 @@
a Windows boot disk to handle the firmware upgrades, although they&#8217;ve
gotten less frequent as of&nbsp;late.</p>
</div>
-<p>I&#8217;ve just shelled out a good chunk of ...</p>
+<p>I&#8217;ve just shelled out a good chunk of money in buying an <span class="caps">OCZ</span> Vertex 3
+<span class="caps">240GB</span> solid state drive (<span class="caps">SSD</span>) and it&#8217;s amazingly quick. So amazingly
+quick that I thought I may just have fallen into a coma when I had to
+temporarily switch back to my old mechanical hard drive and boot from it
+again. And ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/05/how-to-updating-ocz-vertex-3-ssd-firmware-on-a-dell-m1530-laptop/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/05/how-to-updating-ocz-vertex-3-ssd-firmware-on-a-dell-m1530-laptop/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
75 author/davidjb5.html
View
@@ -43,7 +43,11 @@
</footer><!-- /.post-info --> <p>I stumbled upon <a class="reference external" href="http://spaceflight.nasa.gov/realdata/sightings/index.html"><span class="caps">NASA</span>&#8217;s space sightings page</a> a little while ago. For
those of you that don&#8217;t know, it&#8217;s a great site that lists opportunities
to view satellites that will be visible in your location and when/where
-to look to see them. Amongst the fact this ...</p>
+to look to see them. Amongst the fact this service exists and is free, I
+was amazed (and thankful!) that it actually lists lots of different
+locations, one of which is where I like in regional&nbsp;Australia.</p>
+<p>It&#8217;s a great setup and they offer an <span class="caps">RSS</span> feed for each location which
+keeps you updated. That&#8217;s great, but ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/05/putting-a-nasa-human-space-flight-sightings-rss-feed-into-your-calendar-program/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/05/putting-a-nasa-human-space-flight-sightings-rss-feed-into-your-calendar-program/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -70,7 +74,12 @@
buildout where you need to upgrade the Plone version, that compilation
of Zope will fail. The output will look something like&nbsp;this:</p>
<pre class="code pytb literal-block">
-<span class="x">Getting distribution ...</span></pre>
+<span class="x">Getting distribution for 'Zope2==2.12.17'.
+In file included from src/AccessControl/cAccessControl.c:51:0:
+include/ExtensionClass/ExtensionClass.h:83:20: fatal error: Python.h: No such file or directory
+compilation terminated.
+error: Setup script exited with error: command 'gcc' failed with exit status 1
+An error occured when trying ...</span></pre>
<a class="readmore" href="http://davidjb.com/blog/2011/05/cant-run-plonezope-buildout-on-ubuntu-11-04-after-upgrade-from-10-10/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/05/cant-run-plonezope-buildout-on-ubuntu-11-04-after-upgrade-from-10-10/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -96,7 +105,11 @@
case, upgraded from Ubuntu 10.04 (Maverick Meerkat). &nbsp;The upgrade
process seemingly went fine and then you were asked to restart your
computer. &nbsp;You diligently do so, only to come back to find that your
-computer ...</p>
+computer has frozen at <span class="caps">GRUB2</span> upon trying to boot the
+2.6.38-8-generic-pae kernel from the <span class="caps">GRUB</span> list. &nbsp;Now what? &nbsp;How do you
+fix&nbsp;this?</p>
+<p>The issue appears to stem from some form of installation issue where
+this new kernel isn&#8217;t set up right. &nbsp;Note: I don&#8217;t actually know ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/05/ubuntu-11-04-boot-freezes-with-2-6-38-8-generic-pae-kernel/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/05/ubuntu-11-04-boot-freezes-with-2-6-38-8-generic-pae-kernel/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -121,7 +134,12 @@
</footer><!-- /.post-info --> <p>We all see web pages like Internet banking, <span class="caps">HR</span> systems, email, and more
that allow you to log in, do something and load pages, log out, and then
prevent you from using your browser&#8217;s history to see that sensitive
-information.&nbsp; I&#8217;m amazed that in my searches I couldn ...</p>
+information.&nbsp; I&#8217;m amazed that in my searches I couldn&#8217;t quickly find a
+definitive source of information on how to achieve this.&nbsp; Pages across
+the web in a search for &#8216;stop caching&#8217; range from blog posts, to forum
+posts, to other pages, and people asking the question (try it: <a class="reference external" href="http://www.google.com/search?q=stop+caching">here</a>,
+or <a class="reference external" href="http://www.google.com/search?q=stop+caching+firefox">maybe here</a>).</p>
+<p>Maybe I got unlucky, but finding ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/03/disabling-caching-for-sensitive-web-pages-aka-how-to-prevent-logged-out-users-going-back/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/03/disabling-caching-for-sensitive-web-pages-aka-how-to-prevent-logged-out-users-going-back/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -146,7 +164,12 @@
</footer><!-- /.post-info --> <p>What you may notice if you&#8217;re developing with Plone/Zope, is that if
you&#8217;re storing small pieces of data within Plone&#8217;s session variable (the
session_data_manager tool), data expires after a few minutes.&nbsp; By
-default, this timeout is 20 minutes, but is far too short if you&#8217;re ...</p>
+default, this timeout is 20 minutes, but is far too short if you&#8217;re
+expecting the information stored to last for say the whole time a user
+is logged in.&nbsp; In this situation, you&#8217;ll need to increase the&nbsp;timeout.</p>
+<p>Documentation on changing the session timeout is potentially a little
+sketchy (Google &quot;session-timeout-minutes zope&quot;), but it&#8217;s clear that you
+need to change the ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/03/increasing-plones-session-timeout/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/03/increasing-plones-session-timeout/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -171,7 +194,11 @@
</footer><!-- /.post-info --> <p>It&#8217;s my very last Plone 2.5 site and I&#8217;m very happy to see the back of
it.&nbsp; Using the joy that is <strong>quintagroup.transmogrifier</strong>, I was able
to, without much manual effort, migrate my content from a Plone 2.5 site
-(constructed with instancemanager, of all things ...</p>
+(constructed with instancemanager, of all things!) straight into a shiny
+new Plone 4 site on&nbsp;Buildout.</p>
+<p>My only key need was to port the content and structure, and I was happy
+to make big allowances for the sake of certain content and time.&nbsp; So, my
+thoughts here mightn&#8217;t (probably won&#8217;t!) suit everyone.My requirements ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/01/migrating-plone-2-5-content-straight-onto-plone-4/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/01/migrating-plone-2-5-content-straight-onto-plone-4/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -196,7 +223,15 @@
</footer><!-- /.post-info --> <p>Recently, I&#8217;ve needed a PloneFormGen (<span class="caps">PFG</span>) form of mine to have certain
fields excluded when the form is displayed in one of Plone 4&#8217;s fancy
popups.&nbsp; At the same time, I need this field to still persist within the
-&#8216;standard&#8217; view of the form.&nbsp; It&#8217;s the request ...</p>
+&#8216;standard&#8217; view of the form.&nbsp; It&#8217;s the request object to the rescue, and
+all I&#8217;ve had to do is insert this <span class="caps">TALES</span> expression against the <em>Enabling
+Expression</em> for my <span class="caps">PFG</span>&nbsp;field:</p>
+<pre class="code python literal-block">
+<span class="n">python</span><span class="p">:</span><span class="n">request</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'HTTP_X_REQUESTED_WITH'</span><span class="p">)</span> <span class="o">!=</span> <span class="s">'XMLHttpRequest'</span>
+</pre>
+<p>and the end result is that unless the request is one of XMLHttpRequest,
+then we&#8217;ll show the&nbsp;field.</p>
+<p>Shouldn ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/01/checking-plone-request-for-ajaxd-requests-xmlhttprequest/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/01/checking-plone-request-for-ajaxd-requests-xmlhttprequest/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -222,7 +257,16 @@
&#8216;extends&#8217; configuration files within your buildout.&nbsp; It makes complete
sense, and especially so with respect to version pinning: the later
configuration&#8217;s versions will be the last one&nbsp;applied.</p>
-<p>So, it makes a lot of sense (in ...</p>
+<p>So, it makes a lot of sense (in hindsight!) that this configuration, and
+the fact I have version pins in my base.cfg, isn&#8217;t going to end&nbsp;well:</p>
+<pre class="code ini literal-block">
+<span class="k">[buildout]</span>
+<span class="na">extends</span> <span class="o">=</span><span class="s">
+ base.cfg
+ http://good-py.appspot.com/release/dexterity/1.0b2</span>
+</pre>
+<p>The Dexterity version pins are going to override the ones I have in my
+base.cfg.&nbsp; This ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/01/buildout-order-of-extends-configuration-files/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/01/buildout-order-of-extends-configuration-files/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -247,7 +291,14 @@
</footer><!-- /.post-info --> <p>This is pretty trivial (and trivial to fix), but I&#8217;m chronicling it for
my knowledge as much as anyone else&#8217;s.&nbsp; The issue is that a given Python
egg is missing some form of files, most commonly the &#8216;docs&#8217; directory in
-my experience, because the build wasn&#8217;t configured ...</p>
+my experience, because the build wasn&#8217;t configured&nbsp;correctly.</p>
+<p>The error goes somewhat like&nbsp;this:</p>
+<pre class="code pytb literal-block">
+<span class="x">Getting distribution for 'my.theme'.
+error: docs/HISTORY.txt: No such file or directory
+An error occured when trying to install my.theme 1.5.0. Look above this message for any errors that were output by easy_install.</span>
+</pre>
+<p>The solution is simple: just ...</p>
<a class="readmore" href="http://davidjb.com/blog/2011/01/python-eggs-and-missing-files-like-docs/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/01/python-eggs-and-missing-files-like-docs/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -272,7 +323,11 @@
</footer><!-- /.post-info --> <p>I&#8217;m not a fan of Microsoft&#8217;s solutions for mail (Exchange, Outlook,
Outlook Web Access, etc) because they simply aren&#8217;t as smooth as other
alternatives. In my case, my weapon of choice is Gmail for all my mail.
-Unless you really like the old-school style popup windows and ...</p>
+Unless you really like the old-school style popup windows and Web 1.0
+feel of Microsoft&#8217;s options, you&#8217;re probably opting for something else,
+too. Now, there&#8217;s no helping my institutional mail account as they&#8217;ve
+disabled all standards-compliant forms of access (<span class="caps">POP</span>, <span class="caps">IMAP</span>, <span class="caps">SMTP</span>; short
+of going down the route of <a class="reference external" href="http://davmail.sourceforge.net/">DavMail</a>). But, that said, there <strong>is ...</strong></p>
<a class="readmore" href="http://davidjb.com/blog/2011/01/bailing-on-outlook-web-app-windows-live-and-using-gmail-with-popsmtp-instead/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2011/01/bailing-on-outlook-web-app-windows-live-and-using-gmail-with-popsmtp-instead/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
71 author/davidjb6.html
View
@@ -43,7 +43,11 @@
</footer><!-- /.post-info --> <p>So, I&#8217;m the proud owner of a set of a <a class="reference external" href="http://www.logitech.com/en-gb/speakers-audio/headphones/devices/223">Logitech Premium Notebook
Headset</a>. I purchased these headphones a fair while ago - around 2
years - and just like any set of headphones, the foam ear pads
-deteriorated away when I took them out to use them after a long ...</p>
+deteriorated away when I took them out to use them after a long spell in
+storage. Usually, this wouldn&#8217;t be a problem if it were a set of
+headphones that used a standard shaped ear pad &#8212; just buy some
+replacement foam pages and put them on. These headphones aren&#8217;t so, with
+the shape being more like a D shape rather than ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/12/replace-your-logitech-premium-notebook-headset-foam-ear-pads/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/12/replace-your-logitech-premium-notebook-headset-foam-ear-pads/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -69,7 +73,11 @@
some twisted way).&nbsp; Unsurprisingly, removing content in Plone via the
<span class="caps">ZMI</span> when Plone says something can&#8217;t be deleted is likely to cause&nbsp;problems.</p>
<p>In my case, the fact I removed a Dexterity-based container (&quot;Project&quot;)
-caused users to ...</p>
+caused users to no longer add or edit content of my Project type.&nbsp; The
+reason for this boiled down to my use of RelationChoice fields, in order
+link Projects to Person objects and vice versa.&nbsp; The backend storage for
+the RelationChoice field is an instance of
+<tt class="docutils literal">z3c.relationfield.index.RelationCatalog</tt>, and this keeps ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/10/bad-relationships-relationchoice-relationcatalog-and-removed-dexterity-content-in-plone/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/10/bad-relationships-relationchoice-relationcatalog-and-removed-dexterity-content-in-plone/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -98,7 +106,17 @@
<div class="section" id="setting-up-the-drivers">
<h2>Setting up the&nbsp;drivers</h2>
<ol class="arabic">
-<li><p class="first">To make sure you have ...</p></li></ol></div>
+<li><p class="first">To make sure you have the right drivers, get this file:
+<a class="reference external" href="http://davidjb.com/files/fxlinuxprint-src-1.0.1.tar.gz">fxlinuxprint-src-1.0.1.tar.gz</a>, which is the drive source kindly
+obtained from the <a class="reference external" href="http://www.fujixerox.co.jp/download/apeosport/download/c4300series/linux_module.html">Japanese Xerox site</a>.</p>
+</li>
+<li><p class="first">Extract the archive somewhere on your hard&nbsp;drive:</p>
+<pre class="code bash literal-block">
+tar -xf fxlinuxprint-src-1.0.1.tar.gz
+</pre>
+</li>
+<li><p class="first">Make sure you&#8217;ve got <strong>build-essential</strong> and <strong>libcups2-dev</strong>
+packages installed (if on ...</p></li></ol></div>
<a class="readmore" href="http://davidjb.com/blog/2010/10/linux-printing-at-james-cook-university/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/10/linux-printing-at-james-cook-university/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -124,7 +142,14 @@
Internet Explorer. This time it&#8217;s version 8 and its rendering of lists,
and in specific, links within list items. Most humorously, Microsoft&#8217;s
own documentation (separate issue; about <a class="reference external" href="http://msdn.microsoft.com/en-us/library/bb250413%28VS.85%29.aspx">rounded corners</a>) gave me a
-laugh when it&nbsp;said ...</p>
+laugh when it&nbsp;said:</p>
+<blockquote>
+&quot;Microsoft is committed to providing a browser that
+accurately supports Web standards.&quot;</blockquote>
+<p>Maybe it&#8217;s just me, but I&#8217;ve given up waiting for the day that <span class="caps">IE</span> actually
+supports anything&nbsp;correctly.</p>
+<p>So, the issue I found was that with a <tt class="docutils literal">&lt;ul&gt;</tt> with a number of <tt class="docutils literal">&lt;li&gt;</tt>
+tags inside wouldn ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/07/oh-microsoft-we-do-tire-of-thy-bugs-in-ie/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/07/oh-microsoft-we-do-tire-of-thy-bugs-in-ie/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -150,7 +175,10 @@
overly-enthusiastic users &#8212; don&#8217;t try to recursively <tt class="docutils literal">wget</tt> your
Plone site (or other <span class="caps">CMS</span>, for that matter) whilst you&#8217;re logged in with
an account that can make edits. It <strong>will</strong> lead to a very bad situation
-where your site ...</p>
+where your site administrator and technical team need to step in and fix
+your mistakes. For the uninitiated, a loose recursive wget (when logged
+in with some degree of Edit rights) will hit every link that&#8217;s on your
+pages, and I mean in the (X)<span class="caps">HTML</span> <em>source</em>. For a Plone site, this ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/07/plonezope-truncating-a-data-fs-back-to-a-certain-datetime/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/07/plonezope-truncating-a-data-fs-back-to-a-certain-datetime/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -175,7 +203,11 @@
</footer><!-- /.post-info --> <p>Having a bad day? Just bombed your only copies of some files that you&#8217;d
been storing as blobs together with your Plone database? Maybe you had
the blobs stored incorrectly on your Zeo client, rather than the server,
-and then in a hasty effort to free some space (due ...</p>
+and then in a hasty effort to free some space (due to an on-going issue
+with blobs eating <span class="caps">HDD</span> space), deleted them. Whoops..they&#8217;re gone and
+their references are still in your Plone database. Or, in a less
+disastrous situation, maybe you just want to be able to run your Plone
+database without needing lost blobs? Read on.The suggestion ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/07/plone-running-plone-without-copies-of-blobs/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/07/plone-running-plone-without-copies-of-blobs/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -201,7 +233,11 @@
product egg means your <span class="caps">ZCML</span> gets automatically included. That&#8217;s great
because it means you don&#8217;t have to specify your product under the <span class="caps">ZCML</span>
section of your instance in buildout. One thing that isn&#8217;t so obvious
-(it&#8217;s ...</p>
+(it&#8217;s not mentioned that I can see on <a class="reference external" href="http://plone.org/products/plone/roadmap/247">plone.org</a>) is that if your
+package is marked for <span class="caps">ZCML</span> autoinclude, then Plone will automatically
+load an <tt class="docutils literal">overrides.zcml</tt> file in your&nbsp;product.</p>
+<p>Nothing hits you like a slippery wet fish in the face more than hitting
+this issue and having it ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/07/plone-overrides-zcml-gets-auto-included-with-z3c-autoinclude/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/07/plone-overrides-zcml-gets-auto-included-with-z3c-autoinclude/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -226,7 +262,13 @@
</footer><!-- /.post-info --> <p>So you, like me, have hit a situation where you&#8217;ve got a time-sensitive
application that won&#8217;t run? Maybe you&#8217;ve downloaded one of those apps
(like a demo) that won&#8217;t run after a certain date and time because it&#8217;s
-&quot;expired&quot;. Or else, maybe some other arbitrary ...</p>
+&quot;expired&quot;. Or else, maybe some other arbitrary time constraint is
+keeping you from running a Linux (or even Windows) program. On Linux
+(Ubuntu for me), there&#8217;s <tt class="docutils literal">faketime</tt> to the rescue - a very handy tool
+that does what it says on the box, changes the system time for given&nbsp;command.</p>
+<p>After installing faketime by something&nbsp;like:</p>
+<pre class="code bash literal-block">
+sudo ...</pre>
<a class="readmore" href="http://davidjb.com/blog/2010/07/linux-make-time-with-faketime/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/07/linux-make-time-with-faketime/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -252,7 +294,11 @@
instance being run together with a Plone 4/Zope instance, and them
trying to share the same blob storage folder.&nbsp; But, this only happens if
you misunderstand or incorrectly set the option of&nbsp; <em>shared-blob = off</em>,
-and <em>blob-storage</em> to ...</p>
+and <em>blob-storage</em> to be the same location as for Zeo in your buildout.
+If that previous set of (seemingly jumbled) thoughts doesn&#8217;t make any
+sense to you, then move along, nothing to see&nbsp;here.</p>
+<p>By default, at the time of writing, blob support within Zeo runs with
+the <em>bushy</em>layout, and creates ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/07/plone-4-local-zeo-blobs-conflict-with-plone-instance/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/07/plone-4-local-zeo-blobs-conflict-with-plone-instance/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>
@@ -280,7 +326,12 @@
- it&#8217;s a fantastic solution to problems like this. Many thanks to
Nathan Van Gheem, the author of the add on. Check out the link and
see how to install it (temporarily) on your Plone instance that
-needs its site manager cleaned ...</p></div>
+needs its site manager cleaned&nbsp;up.</p>
+</div>
+<p>Leftovers are typically useful when they&#8217;re in your fridge at home. They
+mean you don&#8217;t have to mess around making lunch for the next day for
+work, and can just grab them, and walk right out the door. Now,
+leftovers in the zope.component SiteManager aren&#8217;t ...</p>
<a class="readmore" href="http://davidjb.com/blog/2010/06/plone-sitemanager-leftovers-not-the-good-kind/">read more</a>
<p>There are <a href="http://davidjb.com/blog/2010/06/plone-sitemanager-leftovers-not-the-good-kind/#disqus_thread">comments</a>.</p> </div><!-- /.entry-content -->
</article></li>