<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Risk Think &#187; Support Systems</title>
	<atom:link href="http://bpc.bishopphillips.com/riskthink/index.php/topics/support-systems/feed/" rel="self" type="application/rss+xml" />
	<link>http://bpc.bishopphillips.com/riskthink</link>
	<description>Enterprise Risk Management and BPC RiskManager</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:48:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to recover your data from a dead Acer Aspire Easystore Raid1</title>
		<link>http://bpc.bishopphillips.com/riskthink/index.php/2011/05/13/how-to-recover-your-data-from-a-dead-acer-aspire-easystore-raid1/</link>
		<comments>http://bpc.bishopphillips.com/riskthink/index.php/2011/05/13/how-to-recover-your-data-from-a-dead-acer-aspire-easystore-raid1/#comments</comments>
		<pubDate>Thu, 12 May 2011 18:47:24 +0000</pubDate>
		<dc:creator>Jonathan Bishop</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[IT Support]]></category>
		<category><![CDATA[Support Systems]]></category>
		<category><![CDATA[Acer Aspire EasyStore]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://bpc.bishopphillips.com/riskthink/?p=218</guid>
		<description><![CDATA[The article explains how to recover a RAID1 drive from an Acer Aspire EasyStore (linux version released 2007 through 2010) using a spare computer after the Acer EasyStore has died. ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The Acer Aspire Easystore NAS units come in a variety of versions.  The latest unit uses a windows OS, but the earlier versions used a dumbed down Linux OS.  The units are, if not especially cheap, at least low priced.  This article is about the earlier versions using the Linux OS and recounts how we recovered our data from a failed unit.</p>
<p>The problem with the Linux based Acer Aspire Easystore is that while the unit will happily allow drives to be replaced, if you lose the motherboard or the Ethernet port you are in serious trouble.   It surprisingly easy to suffer a catastrophic problem.  For example, if you upgrade the firmware from 2.0 to 2.5 your unit can stop responding.   Further you can lose the motherboard  for a variety of  other reasons &#8211; for example, they seem especially sensitive to minor DC power spikes.  If the dreaded red light indicating &#8220;unrecoverable software&#8221; lights up or the unit simply stops talking to the network, you will rapidly discover you  are essentially screwed. </p>
<p>Acer&#8217;s maintenance support, seems excellent when you contact them.  They will happily replace the unit for you (in fact that is all they will do!) and even send out a technician to swap your old still working drives into the new unit.  Unfortunately that is when you discover you have a serious problem.</p>
<p>The replacement unit will not read the RAID array from the old drives &#8211; even if your drives are otherwise OK.  If you are lucky, it will recognise the user accounts &#8211; but it will not give you back access to your data.  Acer&#8217;s helpful response is that you must rebuild the array.  Do not under any circumstances do this or you will lose your data!</p>
<p>This is what you must do&#8230;</p>
<p>In our case we always use RAID 1 on low cost RAID systems.  This essentially gives 2 copies of each disk without co-dependence across multiple disks for data recovery.</p>
<p>Recovering your data from the Acer becomes quite simple in this situation.</p>
<p>What you will need:</p>
<p>A spare computer (a Windows desktop is fine) with:</p>
<ul>
<li> at least one spare SATA port,</li>
<li>a spare SATA cable, (or just unplug an existing drive from the desktop computer and use its cable),</li>
<li>a spare HD drive  in FAT32 or Linux disk format so it can be accessed easily under Linux (or other NAS on the network) with enough space to store the files you recover from your Acer Easystore drive(s)</li>
<li>a CD ROM. </li>
</ul>
<p>Either the on the same  machine, or another, you need a writable CD drive, a spare blank CD and an internet connection.</p>
<p>Now follow these steps:</p>
<p>Step 1  Assuming you do not have a way to write ISO formats onto a CD ROM go here and download the ISO writer:</p>
<p><a href="http://isorecorder.alexfeinman.com/isorecorder.htm">http://isorecorder.alexfeinman.com/isorecorder.htm</a></p>
<p>Just double click to install it and once installed you merely right-click on an ISO image and choose &#8220;Copy image to CD&#8221;.</p>
<p>Step 2: Get a copy of the latest version of Knoppix Linux from here (or other Knoppix mirror).   I used Knoppix 6.4.4</p>
<p><a href="http://www.mirrorservice.org/sites/ftp.uni-kl.de/pub/linux/knoppix/">http://www.mirrorservice.org/sites/ftp.uni-kl.de/pub/linux/knoppix/</a></p>
<p>You do want the ISO image and unless you are visually impaired you do NOT need the ADRIANE version.</p>
<p>Step 3.  Put your blank CD into your writable CD drive and right click on the ISO image you just downloaded.  Choose &#8220;copy image to CD&#8221;.  This will give you a bootable version of Knoppix Linux on a CD ROM.</p>
<p>Step 4.  Turn off and open up your spare desktop computer and plug the first RAID1 drive from your dead Acer Aspire Easystore into the SATA data cable and the SATA power cable and plug the other end of the SATA data cable into a spare SATA port on the motherboard (or SATA sub-board).  Note the number written on the motherboard this will help you find the drive later.  You only need to plug in one drive from each RAID1 pair.  The drives are arranged in pairs making one volume each in the easystore &#8211; so the top two are one volume and the bottom two are another volume.  You want one drive from each volume.  We will just do one volume in this sequence, and you should repeat the following steps for the second volume after completing the first.</p>
<p>Step 5.  Turn on the computer and if it does not already boot from a CD ROM, trigger the BIOS setup on startup and change the boot order so that it boots from a CD ROM first.  Save and exit and allow the computer boot up.</p>
<p>Step 6.  Once Linux has started (you may have some minor config steps to work through), click on the little filing cabinet in the bottom left hand corner of your screen.  This will show you the mounted devices.  If your machine also has NTFS drives in it or even an existing RAID array in it there will be some drives marked OS which you will not be able to access.  Ignore these.  Your FAT32 drives and your Acer EasyStore Raid1 drive should be visible.  The mounted Acer drive will show as something like &#8220;sdc4&#8243;, where the &#8220;sdc&#8221; part might be sda, sdb, sdc, etc.  The number refers to the partition on the drive that could be read.  This will not have your data in it &#8211; so don;t get excited just yet.</p>
<p>Step 7.  In the bottom left hand corner of your screen, beside the filing cabinet icon is the Knoppix logo.  This is the equivalent of the windows &#8220;start menu&#8221;.  Click on this and from &#8220;preferences&#8221; choose &#8220;GParted&#8221;.  Let this do its stuff and when it has finished opening select the GParted menu, and from that the &#8220;Devices&#8221; submenu.  From this look for and select your Acer drive.  In my case it was on /dev/sdc -  yours may be different &#8211; but will be the one that was showing the &#8220;4&#8243; in its name when you looked in the file system display.</p>
<p>Step 8.  After GParted has scanned it, you will notice this has 4 partitions.  The Linux swap and the system &#8211; both of which will be mounted and then two others &#8211; which will not be mounted.  The big one has your data, and the little one is just some spare space.  The big one will probably have a &#8220;2&#8243; in its name.  In my case it was &#8220;sdc2&#8243;.  It will also be showing the file system type &#8211; probably &#8220;ext2&#8243;.  Note both the name (eg. sdc2) and the file system (eg &#8220;ext2&#8243;) &#8211; you will need them in a second.</p>
<p>Step 9.  Select this line by left clicking on on it and then right click to bring up the context menu.  From the context menu that displays choose &#8220;Manage Flags&#8221;.</p>
<p>Step 10.  In the &#8220;manage flags&#8221;  window that opens tick the &#8220;Raid&#8221; flag.  Then open the &#8220;Manage Flags&#8221; menu again and untick the &#8220;Raid&#8221; flag.  Close GParted.</p>
<p>Step11. From the &#8220;start menu&#8221; in the lower left hand corner of your screen choose &#8220;Accessories / Root Terminal&#8221;. </p>
<p>Step 12.  When the console window opens type the following:</p>
<p>mount   /dev/sdc2   /media/sdc2 -oro -text2</p>
<p>NOTE:  change the &#8220;sdc2&#8243; to the device name (and partition number) you saw in GParted earlier and the  &#8220;ext2&#8243; file system type to the one you saw there as well.  It will most likely be ext2, but it might be ext3.   You have just mounted your lost data as &#8220;/media/sdc2&#8243;  &#8211; or whatever sd you entered above.</p>
<p>Step 13.  Click on the filing cabinet icon in the bottom left of the screen and in the address bar enter (adjusted appropriately for your device name):</p>
<p>/media/sdc2/</p>
<p>Your lost files should now be visible. </p>
<p>Step 14:  Copy your lost files to your spare drive or other network store.   The Acer drive was opened in read-only mode by the mount command so you will can only copy or read them.</p>
<p>If you have two RAID1 volumes in your Acer EasyStore you should repeat all the steps  from step 4 for the second volume as well.</p>
<p>Good luck!  Feel free to drop me an email (or a comment here) if you have a question.  You can also rebuild a RAID5 array in a similar fashion &#8211; but it is a little more complex than the process for RAID1 recovery.</p>
<div class="shr-publisher-218"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://bpc.bishopphillips.com/riskthink/index.php/2011/05/13/how-to-recover-your-data-from-a-dead-acer-aspire-easystore-raid1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Choosing a wiki, blog and forum system – and getting them to work together. (Part II)</title>
		<link>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/14/choosing-a-wiki-blog-and-forum-system-%e2%80%93-and-getting-them-to-work-together-part-ii/</link>
		<comments>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/14/choosing-a-wiki-blog-and-forum-system-%e2%80%93-and-getting-them-to-work-together-part-ii/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 15:15:11 +0000</pubDate>
		<dc:creator>Jonathan Bishop</dc:creator>
				<category><![CDATA[Support Systems]]></category>
		<category><![CDATA[BPC forum]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[system Reliability]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bpc.bishopphillips.com/riskthink/?p=74</guid>
		<description><![CDATA[Cross php application intermittent page load faults prove to be caused by insufficient available memory for the PHP engine.
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>It is a few days after my post on the topic of getting the three open source applications &#8211; MediaWiki, WordPress and MyBB &#8211; all written in PHP using MySQL and running on Windows under IIS.   We seem to have reached an good level of stability since then &#8211; not perfect, but seemingly about 97%.  Considering the code for these three systems (and the code for the PHP and MySQL engines) is multi platform and open source, I think that is a pretty impressive outcome.  I am both surprised and impressed.</p>
<p>Compared to a commercial environment, open-source developers don&#8217;t have access to the same tools, nor the ability to hand pick and hone development teams over many years.  Debugging, optimisation and code tracing tools are simply not the same.  Contrast to a Delphi environment costing thousands of dollars per developer with full production grade debugging support and the ability to use commercially purchased components &#8211; the open source development team (if not necessarily the individual developer) must use a mixture of tools not necessarily purpose built to work together.  Teams self select, although inevitably filtering occurs over time, and project direction is committee based and therefore more difficult to keep focused than CEO based direction.  So the standard achieved by all of these components is remarkable.</p>
<p>In our case the instability seemed to be caused by insufficient memory being allocated to PHP.  We upped it to 256MB and the intermittent page failures disappeared.  I suspect we will need to go higher than that as the usage grows &#8211; or possibly lower, depending on whether the space is session based or shared. </p>
<p>I am not sure how the PHP memory management interacts with the OS memory management, not whether the PHP memory space is shared between PHP applications, between sessions or specific to each session or application.  We, therefore, will adopt an approach of incremental growth/tuning until we have had a chance to read up on the PHP memory management system and had more time to understand the loads being placed on the servers.  I suspect that the PHP memory model differs between CGI and in-process implementations implementations anyway.   We have a number of large database and graphical processing systems on the dev cluster  so I don&#8217;t want to unnecessary rob memory from those systems, otherwise we would just allocate a few gigabytes to the PHP systems.  Based on the observed behaviour, I suspect it is shared between sessions and apps within the same inprocess server (which would make sense).  Whether is is assigned, or meerely available is another issue, and not clear at this point, nor whether unused memory is free to paged out of RAM or returnes to the OS when not required.</p>
<p>We are noting that we tend to have to specifically instruct the PHP apps to tell browsers not to store the pages in the caches (see the earlier post).  I think this is probably a good point for PHP programmers to note.  There are very few scenarios where a PHP web page should be cached &#8211; because by definition, they are generated &#8211; so it is a good idea to ensure that the header sent by the PHP page includes a &#8216;header(&#8220;no-store&#8221;);&#8217; instruction by default &#8211; unless you specifically want it to be cached on the browser.</p>
<p>I must say: the more I look into the architecture and code of the WordPress system, the more impressed I am.  What is going on behind the scenes to display this blog to you is simply outstanding.  It is not so much the display method that is so clever (although that is clever enough), but the architecture and the administration/maintenance and update mechanisms are nothing short of brilliant.  There have been some very, very talented people working on this application.</p>
<div class="shr-publisher-74"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/14/choosing-a-wiki-blog-and-forum-system-%e2%80%93-and-getting-them-to-work-together-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosing a wiki, blog and forum system &#8211; and getting them to work together.</title>
		<link>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/choosing-a-wiki-blog-and-forum-system-and-getting-them-to-work-together/</link>
		<comments>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/choosing-a-wiki-blog-and-forum-system-and-getting-them-to-work-together/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 20:58:07 +0000</pubDate>
		<dc:creator>Jonathan Bishop</dc:creator>
				<category><![CDATA[Support Systems]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[MyBB]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bpc.bishopphillips.com/riskthink/?p=59</guid>
		<description><![CDATA[The selection of a wiki, blog and forum solution that would work together on a shared platform.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>It was a perplexing decision as to which BB software to use.  The most reliable system we have been involved in has been the team.bishopphillips.com site which uses MS Sharepoint.  The upsides to this system include incredible versatility;  that it is MS SQL  Server based and therefore a technology we know really well; and incredibly reliable &#8211; it just never goes down.  The downside is that it is a bandwidth hungry beast and every page sends a small encyclopedia of data between the browser and the server.  It works a treat on the intranet, but it is possibly less ideal for internet usage where bandwidth has to be shared among other heavy consumers.</p>
<p>The BPC dev team site (where this blog and the other interactive apps are located) does not have as much comms bandwidth as the main web site, so we have to be a little circumspect with the comms weight of apps we put here.  The nature of this site is that it hosts our production and experimental apps that face the internet and therefore has highly variable bandwidth consumption and is under a lot of stress.  On the plus side, it gets 24*7 human monitoring because it has to have high availability and is constantly being updated. </p>
<p>We dropped a second hi-speed link into the dev site a year ago but have retained the slower link as the main comms path as it is 99% reliable, whereas the higher speed link still has emotional problems with the local exchange.  So all up, we need the apps we put here to be as light on comms overhead as possible.</p>
<p>It was quite an issue deciding which way to go.  The riskwiki (using media wiki) running on php and MySQL for about a year or two has proven to be very reliable and reasonably &#8216;tinker-able&#8217;.  As a production language PHP is not my first choice, because like most web languages (JavaScript, PHP, ASP Markup, HTML, DHTML, Java, CSS) it is a syntactic design disaster that begs coding errors.  This is not to pass judgement on these languages from the perspective of performance, versatility, or reliability.  Syntactically PHP is better than most, but still far from perfect.   By syntax we mean the grammar of the language.</p>
<p>On the plus side, PHP is incredibly easy to use, and lends itself to some very neat template based layering decisions and design patterns, works well with HTML/CSS/JavaScript/Ajax based clients (like browsers), gives instant feedback during development and is incredibly cross-platform portable.  So as an open source development language it has some advantages.  Debugging, however, can be a nightmare. </p>
<p>So when we investigated the blogging options and came across WordPress we were comfortable with it using both PHP and MySQL on the same server as our wiki. </p>
<p>The previous post discussed our experience in getting the WordPress system to work.  Except for the bug we had to deal with, it was an extremely simple exercise.  If we had not had that issue to address, it would have taken about 30 minutes &#8211; if that.   Similarly, setting up the RiskWiki a year or so ago was a fast and simple exercise.</p>
<p>One of the really impressive things about WordPress is the astounding range of quality themes and plug-ins available for it at no cost.  The plug-ins expand the functionality of the WordPress system to be way more than a simple blogging application.  There are plug-ins for e-commerce (turning your WordPress into an online shop, petition management (for lobbyists), content management (for web site control), and even a bulletin board/forum plug in that turns WordPress into &#8211; you guessed it &#8211; a bulletin board.</p>
<p>So when we turned to the question of what system to use for our forum, naturally we first considered using the WP-Forum (or rather its later cousin) for our bulletin board.  In the end, however we decided that it was best to use an application dedicated to an intended purpose rather than a plug-in that converts a blog engine into a bulletin board, a purpose for which the underlying software is possibly not optimised.  It was a close thing however, and we may yet go back and change to the Forum plug-in for WordPress.</p>
<p>The bulletin board we settled on was MyBB &#8211; for no particular reason other than it had a plug in for WordPress (that we aren&#8217;t actually using yet) and had a long development history, an apparently vibrant development community and seemed to have a huge range of management capabilities available for it.  Also &#8211; critically for us &#8211; it runs on PHP 5 and MySQL &#8211; so it matched the existing open-source software environments used by our RiskWiki wiki and RiskThink blog platforms.</p>
<p>The installation process was similarly straight forward &#8211; except that we had to make a few edits to some of the admin pages similar to the fix for WordPress to ensure the browsers were not caching some of the PHP files.  (I am starting to wonder whether IE has changed the caching model with recent security patches).</p>
<p>Now the tricky bit &#8211; we now have 3 systems using PHP and MySQL &#8211; all open-source.  Our apps of course use Delphi and MS SQL &#8211; which means they are all compiled (not interpreted apps). </p>
<p>When we just had the two systems &#8211; RiskWiki and WordPress the shared environment was 100% reliable.  Now that we have added the third &#8211; MyBB we are getting periodic page drops (As you may have noticed). Necessitating the server to step in and restart the offending application.  This is particularly likely to occur when you jump from one to another, rather than going via a static web page.  Assuming there is nothing intrinsically wrong with any of the apps, we are thinking that it is a either a MySQL or PHP problem. </p>
<p>We have turned on full logging to see if we can trace what is happening and hopefully we will have a solution in a few days. </p>
<p>More on this to come&#8230;</p>
<div class="shr-publisher-59"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/choosing-a-wiki-blog-and-forum-system-and-getting-them-to-work-together/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Getting WordPress V2.8.3 to drag and drop widgets and display the blog edit screen correctly &#8211; a debugging tale.</title>
		<link>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/getting-wordpress-v2-8-3-to-drag-and-drop-widgets-and-display-the-blog-edit-screen-correctly-a-debugging-tale/</link>
		<comments>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/getting-wordpress-v2-8-3-to-drag-and-drop-widgets-and-display-the-blog-edit-screen-correctly-a-debugging-tale/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 20:17:03 +0000</pubDate>
		<dc:creator>Jonathan Bishop</dc:creator>
				<category><![CDATA[Support Systems]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bpc.bishopphillips.com/riskthink/?p=55</guid>
		<description><![CDATA[How to fix the widget drag-drop failure in WordPress v2.8.3, fix the blog edit panel and get the screen options and other menus to display correctly (or at all).]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>The Problem:</h2>
<p>The latest version of WordPress is really very good, and once it is working properly is really quite impressive; but in our environment we had some serious issues that made it non-functional initially, requiring two days of solid debugging of the code.</p>
<p>While the general public part of the blog worked fine, the administration screen was essentially non operational.  Various menus would not display on the browsers (IE7 IE8 and FF 2.0) and the blog authoring screen would display properly only the first time a blog was authored on any given browser.  The second and later times, the button would disappear, and the text was white (making it invisible).   The public pages could not be configured properly as the widget drag/drop mechanism stubbornly refused to drag and drop, and the accessibility menu (the alternative widget configuration mode) would not display.</p>
<p>Searching the WordPress forum site and documentation revealed scores of people with the same problem (but by no means universal) and no practical solutions for solving it &#8211; except it a few cases where plug-ins were involved, and where the user was using google gears.  We had not plug-ins yet, and are not prepared to install google gears.  So we were faced with either removing the software or debugging it (is is open-source after all!).  So we decided to debug it instead.</p>
<p>Now thinking about what was happening we noted that, firstly, we did not install a little optional tool offered by the WP installer called Google Gears which caches scripts, etc on the browser to improve performance. It emerged later that, for some users, installing google gears fixed their widget-drag drop problem.  We excluded this because our development and support computers have to be as close to yours as we can get them &#8211; and larger corporates are not in the habit of allowing modifications to browsers, which Google Gears represents.  Secondly we have been pretty much stripping out google junk from most of our dev systems after we discovered some of there libraries in unauthorised locations (like their very annoying web address redirector that takes you to a google add page when the browser fails to find the site you entered because you typed a single character wrongly).  Lastly, we are increasingly using MS&#8217;s Bing since it is proving to be a better search engine than google lately &#8211; no advertisements and more accurate searches.  We started wondering if the people without the WP problems had all installed Gears.</p>
<p>Further thinking about the behaviour led us to test what happened when we deleted the browsing history. Surprise, surprise &#8211; the blog authoring page worked the first time after the browsing history was deleted &#8211; then became dysfunctional on the second access.  So clearly we were looking at some kind of caching anomaly.  Caching is the mechanism whereby the browser stores stuff locally to speed browsing and, theoretically, getting fresh copies if it has changed on the server.  This works fine with static web pages and images, but is less effective when pages are dynamically generated, but seem to have the same name.</p>
<p>So we turned on the debuggers and looked at what was happening.  Looking at the WP page code, however suggested that everything should be fine.  The place where, and the object about which, the debugger was complaining was theoretically correct from the perspective of caching in that it was uniquely named with each access.  Yet the debugger and the browser insisted that they could not find the object bing referenced and housed in the offending script. </p>
<p>So we looked around on the server code and discovered that the WP programmers had done something a little odd, that in theory should not have mattered.  The WP app generates JavaScript libraries dynamically using a list of required libraries fed to a php page called load-scripts.php.  Most web apps tend to ether have a static JavaScript library that is fed to the browser once for all pages or use some mechanism of creating a dynamic library on a page by page basis. WP uses a shared php script that receives a list of required scripts  for that purpose.  To ensure updating of the script list, the calls to the load-scripts file added a parameter with random  string in the call line &#8211; so it should be refreshed each time the calling page executes.  Now, in the \admin\load-scripts.php file they had inserted a header command that defined to the browser the caching rules for the JavaScript code dynamically constructed by the php script.  This is where it got strange &#8211; the caching rule said that the generated page should expire some time 12 months from now &#8211; but the load-scripts call lines in the hosting pages were clearly intended to cause the load-scripts page to be refreshed with each access (which makes sense for a dynamically generated JavaScript library).  So the browser was being told to keep the script indefinitely, while the access model was designed to ensure it would never be required again.</p>
<p>Not Right! (As my four year old son would say.)  On the face of it, this should not matter &#8211; it is just wrong, but the browser should go away and get the scripts again anyway based on the uniqueness of the calling line, but either the browsers all share a common bug, or they are smarter in the cache management than we realise, because they were clearly not getting the scripts again &#8211; they had, after all, been told that library of scripts would be current until 2010, but then the DOM in the browser could not find the JavaScript objects, because they had not been retrieved for the current instance of the browser page, and the library containing them was not the same name as the expected one (or something like that!).   Either way, the fix was straight forward &#8211; change the caching rule to match the way the load-scripts.php page is called: </p>
<p>1. Locate the file &#8220;\WordPress\wp-admin\load-scripts.php&#8221;<br />
2. Open it in a text editor visual studio or equivalent is preferred, but notepad will do. DO NOT USE MS_WORD or similar word processing tool.<br />
3. Locate the following line:<br />
header(&#8220;Cache-Control: public, max-age=$expires_offset&#8221;);<br />
4. Comment this line out so it looks like this:<br />
/* header(&#8220;Cache-Control: public, max-age=$expires_offset&#8221;);<br />
*/<br />
5. Add in the following line<br />
header(&#8220;Cache-Control: public, no-store&#8221;);<br />
6. Double check that you have written the above line EXACTLY as shown.<br />
7. Save the file<br />
8. Now go to your browser and delete all browser file history (sorry, but this is essential or you won&#8217;t see the fix.). On IE 7 you do this by:<br />
a. From the menu bar: Tools/Internet Options<br />
b. Select the General tab<br />
c. Under browsing history choose &#8220;delete&#8221;<br />
d. On the window that opens, choose &#8220;Delete Files&#8221;<br />
e. Confirm and close windows<br />
f. Close ALL open browsers and restart the browser.</p>
<h2>The Result:</h2>
<p>All menus in the admin panel now work, widgets can be dragged and dropped and blog editing works correctly &#8211; in IE 7, IE 8 and FireFox 2.0</p>
<p>Simple.</p>
<div class="shr-publisher-55"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/getting-wordpress-v2-8-3-to-drag-and-drop-widgets-and-display-the-blog-edit-screen-correctly-a-debugging-tale/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>New Forum/Bulletin Board Site Launched</title>
		<link>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/new-forumbulletin-board-site-launched/</link>
		<comments>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/new-forumbulletin-board-site-launched/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 16:25:37 +0000</pubDate>
		<dc:creator>Jonathan Bishop</dc:creator>
				<category><![CDATA[Support Systems]]></category>
		<category><![CDATA[BPC forum]]></category>
		<category><![CDATA[MyBB]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[system Reliability]]></category>

		<guid isPermaLink="false">http://bpc.bishopphillips.com/riskthink/?p=53</guid>
		<description><![CDATA[Announcing the launch of the new BPC Forum site.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>We have just turned on the new public BPC support &amp; discussion forum at <a href="http://bpc.bishopphillips.com/forum/">http://bpc.bishopphillips.com/forum/</a> .  It is new, so the cupboard looks a little bare at the moment, but we trust some of you will find it of use.  Whether we had a forum, has been a question that is frequently asked by new clients and although the team.bishopphillips.com site has been around for a few years, it is primarily used by BPC staff and is less easily accessed than the new forum.  </p>
<p>The reality is that our email response system has been so good and the robustness of the applications so high that there simply is not the demand for a bulletin board style help system.  Even though the team.bishopphillips.site has been available for client access, clients have almost universally opted simply to email issues and questions and get a response in a few minutes to a couple of hours.  We sweep the emails every month and add common issues, or issues we think are of public consumption to the FAQ in the riskwiki.  The fact that a traditional layer of support is really just not needed with BPC RiskManager  is difficult to explain to new clients and so we have decided to launch a site.</p>
<p>It is monitored continuously by the BPC Dev team so we should see stuff arriving pretty quickly.  Please remember that it is new and the software is a little experimental so it may have short outages from time to time.  If it is down when you access, try again in a few minutes and it should automatically restart in about 2 minutes.</p>
<p>The RiskWiki (MediaWiki), the Blog (WordPress) and the Forum (MyBB) all use the same underlying technology - PHP and MySQL.  The introduction of the Forum to that set has introduced some instability which we are still working through so periodically one causes the other to fall over.  Everything is on auto restart, so if something is down when you first access it will come back  up in a few minutes.  I am sorry about this, but hopefully over the next week we will find the culprit of the problem and get back to our normal 99.9% system reliability.</p>
<div class="shr-publisher-53"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://bpc.bishopphillips.com/riskthink/index.php/2009/08/12/new-forumbulletin-board-site-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

