BOL Tricks

In order to enable easier checking of Benchmarks Online against the print (aka 1993) version, I implemented a switch that allows you to specify the 1993 version as the default tab displayed. To enable to switch you have to visit the utility with the querystring bmtabver=1993 appended. So the following URL would enable the switch:

http://www.project2061.org/bol?bmtabver=1993

To disable the switch change the value from 1993 to 2007 (or delete the “bmtabver” cookie from your browser).

This switch is not publicly noted on the site (though visitors to this entry would obviously know of its existence).

Atlas/Benchmarks Databases

The data for Benchmarks Online (BOL) is pulled from various tables in the Items database. Some of these tables are also used for the Atlas Statements Database (ASD). Since staff would like for the statements in the ASD to reflect the most recent working version we needed a way to prevent this from affecting BOL, which needs to maintain a stable set of publicly available statements. As a temporary resolution the tables that are used to populate BOL have been copied into a new database called Standards. Going forward, if the content of these tables is updated and those updates need to also be reflected in BOL both copies of each table should be updated.

A long-term goal is to develop a system to contain information related to our standards documents (namely Benchmarks and Atlas). This new system should implement some kind of versioning capability so that we can maintain stable and working copies of the benchmarks statements. This would also allow us to keep better track of how resources are aligned to statements. Currently as a statement is modified we have no way of knowing the wording to which a resource has been aligned.

BOL Text utility updates

The Benchmarks Online Text (Verbiage) Utility has been partially rewritten to better facilitate maintenance of the new BOL website content.

Location: http://flora.p2061.org/items/bm_statements.php (same as before)

Changes:

  • Search form has been added above list of existing BOL text.
  • Search and navigation of existing BOL text is asynchronously generated.
  • The initial display is no longer the ‘Enter New’ interface. Click on the ‘Enter New’ link to display the interface. The initial display is now the list of existing BOL text data along with search form.
  • ‘Enter New’ form has been updated to support Quote classified content (minor oversight in previous version).

Finding existing BOL text is now much easier and faster!

Windows Media Player Plugin for Mozilla

While developing and testing video/audio features for the PR project I found WMP caused Firefox to crash consistently upon closing (video/audio would play once, then any subsequent actions resulted in a browser crash).

Error (something to the extent of):

Windows Media Player Plug-in Dynamic Library

This plug-in has performed an illegal operation…

This did not occur in the previous PR release, so I’m guessing it may represents an incompatibility between WMP and more recent Firefox updates. I found this related technote (http://kb.mozillazine.org/Windows_Media_Player#Installing_the_new_plugin) which accurately described the problem I was having. I tested the plug-in and surprisingly it worked. I say surprisingly because the download site seems to be almost a year old. In addition, the new plug-in seems to be able to manage the configuration settings better than before. I’d like to suggest this plug-in be added to future updates for the rest of the department, but we may want to find out if others experience similar issues with WMP under the latest release of FF (2.0.0.12) and/or what specifically is causing the crash. I have my theories, but with the new plug-in I may not be able to test them. I’d like to know if anyone else encounters this.

Plug-in Download site: http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx

Items: Summary Tables Update

The number produced by summary table 8 in the items utility were not quite correct. The researchers noted that the means by which calculation of answer selection was performed was not quite as they wanted it.

Luckily table 8 uses a new summary table generation technique I borrowed from the school reports. The data, display, and summarization code is segregated to a certain degree (though not as much as would be preferred). This allows me to update one aspect of the script without having to monkey around too much with other aspects.

The data is currently stored in a data array that is organized to allow for relatively easy access. The summary information is currently compiled inline in the code. While this isn’t ideal, the method used (summary arrays) should allow for better segregation in the future. The calculation of concern is stored in its own function, answer_selected(). That function includes some basic versioning capability and so I was able to add a new version of the calculation that matches the researchers expectation without changing anything else in the code.

I think a modification of this technique would work well for all tables in the utility and should not require significant investment in development time. As additional tables need work I may investigate adding them as components of the new summary table script (summary_table.php).

Stupid Dreamweaver Bug

After making some seemingly insignificant changes to a css file, Dreamweaver CS3/9 suddenly crashed. System restart did not work nor did recreating user config. Before re-installing I chanced upon this blog entry on Google groups. Look for a comment by David Powers regarding a bug wherein if a file is exactly 8,192kb (or a multiple of), the site caching fails and the application crashes. Amazingly he was right. I added a few bytes to the file and problem solved. This has got to be the stupidest thing I’ve heard in a while.

IIS and PHP

IIS can’t find php.ini

I installed PHP on the Windows server today and ran into what seems to be a fairly common problem (BrianW can affirm): sometimes PHP is unable to find the php.ini file when processing web-based content. In my case PHP was installed as an ISAPI filter. I suspect that when using the ISAPI filter PHP must be looking in the in the location IIS is running from, rather than the location of the ISAPI DLL (which is located in the PHP folder).

To address the problem I added a PHPRC environment variable. Now everything seems to work as expected. There are a number of options for specifying the location of the php.ini file. See the PHP documentation for runtime configuration.

IIS returns an error

If you’ve fully set up PHP and configured IIS correctly (including enabling the Web Service Extension) then one last thing to check is the path to the DLL specified for the Web Services Extension vs. the value for the application extension in the web site properties. These should match exactly.

BOL updates

The search upgrades and bug fix have been implemented and uploaded to the development and production servers.

Search filtering by current bm, old bm, prose has been corrected.

Fulltext viewing is now available for each search result (‘fulltext’ link following the truncated text), or all search results (‘Output Format’ menu option).

A new results formating option currently labeled ‘Custom1′ is in the Output Format’ menu which displays the results in table format similar to old BOL search result output.

Files updated:
index.php, bol_search_func.php, bol.js

floradev not accepting connections

Yesterday we were unable to connect to floradev via ssh or browser.  The VM control panel indicated ther server was running, no apparent alarms/warnings or recent maintenance.  We restarted the server, which seemed to correct the problem.  Today, the same problem.  Restarted the server again and inspected log files.  After about 30 mins while looking through the log files via ssh the connection was dropped, possibly due to inactivity (I was viewing the log with vi rather than tail), but again the server is not accepting new connections.  Yesterday after the reboot, I was interacting with the server regularly and never lost the connection while I was working.  In addition, I closed and reopened the connection multiple times.  This leads me to believe it has something to do with the idle/power-save or some related feature.

The only atypical log entry around the last failure:

feb 29 16:37:02 floratest syslog-ng[3165]: STATS: dropped 0

However, this event is logged regularly.

Another reason I think this related to the power-save is some error messages noted during reboot:

 Feb 29 17:05:35 floratest rcpowersaved: CPU frequency scaling is not supported by your processor.
Feb 29 17:05:35 floratest rcpowersaved: enter ‘CPUFREQD_MODULE=off’ in /etc/sysconfig/powersave/cpufreq to avoid this warning.
Feb 29 17:05:36 floratest rcpowersaved: Cannot load cpufreq governors – No cpufreq driver available
Feb 29 17:05:36 floratest [powersave]: ERROR (CPUFreq_Userspace:42) Could not set userspace governor, seems as if the cpufreq_userspace module is not loaded.
Feb 29 17:05:36 floratest [powersave]: ERROR (read_line:43) Could not open file for reading: ‘/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies’
Feb 29 17:05:36 floratest [powersave]: ERROR (read_line:43) Could not open file for reading: ‘/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq’
Feb 29 17:05:36 floratest [powersave]: ERROR (read_value:82) Could not read value in file /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq: error: No such file or directory!
Feb 29 17:05:36 floratest [powersave]: ERROR (read_line:43) Could not open file for reading: ‘/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq’
Feb 29 17:05:36 floratest [powersave]: ERROR (read_value:82) Could not read value in file /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: error: No such file or directory!
Feb 29 17:05:36 floratest [powersave]: WARNING (getMinMaxSpeeds:349) Speedstepping not supported! Was the correct cpufreq module loaded?
Feb 29 17:05:36 floratest [powersave]: WARNING (initFreqsViaTesting:377) Could not read min and max speed
Feb 29 17:05:36 floratest [powersave]: ERROR (PM_Interface:231) Cannot create cpufreq objects

These errors were also reported in a reboot that occurred last night.

This is a link to a post of someone experiencing similar problems, but no solution was posted:

http://groups.google.com/group/alt.os.linux.suse/msg/50d790f2caf4edca