06.18.08

Items Utility: Piloting Data Entry Updates

Posted in PHP, Web Development at 5:05 pm

Piloting packets for this year are starting to come in and the data from these packets needs to be entered into the items utility. Because the questions in the packet have changed from previous years, and due to the rigid structure of the piloting data entry form and data tables, I decided to rewrite the data entry form. The new format allows more flexible on the front-end without requiring modification of the back-end. In addition I modified the way PHP interacts with the packet data from MySQL by utilizing a structured array to hold the data.

Read the rest of this entry »

06.17.08

Subversion Repository for Items

Posted in Web Development at 4:30 pm

I’m currently cleaning up the items utility so that it can be brought into subversion. I’ve already deleted unused files and done some reorganization of the site files. Next up I’m going to work on some interface modifications that I hope will simplify the it as well as create some common navigational elements across  pages. The final step will involve unifying the code in a control structure similar to other recent projects.

Because this is more of a long-term project it is being performed along side any current development of the items utility. As a result any modifications to the items utility should be brought to my attention so that they can be ported to the SVN working copy if necessary.

05.21.08

Using Subversion for Application Development and Deployment

Posted in PHP, System Administration at 3:25 pm

I recently wanted to update our install of WordPress to the latest version. WordPress is a fairly easy install, and we could learn a thing or two about application set-up by examining their code. But I recently switched to using subversion to deploy and maintain our install. In just the little bit I’ve used subversion so far, I believe development and deployment of our internal applications would be simplified by employing it for all our projects. Here’s a quick outline of the process, with examples based on my WordPress deployment.

Read the rest of this entry »

05.14.08

Expanding Search Terms for More Inclusive Results

Posted in MySQL, PHP, Web Development at 11:54 am

While working on the Benchmarks search I wanted to try and provide a feature I find useful on Google and other search engines: word form expansion (lemmatisation). A little research showed to me that this would require more work than we really should be spending on search functionality. Especially considering that the built-in MySQL full text search capability is sufficient for our needs. So I decided to focus on a feature that would still provide value but require little time: word stem expansion.

Read the rest of this entry »

05.13.08

Items Utility: School Reports Update

Posted in PHP, Web Development at 4:09 pm

I made a few updates to the school reports at the request of the researchers.

  • Added a save feature so that packet/item selections for a report can be retrieved at a later date.
  • Added the ability to set thresholds that must be met before the script will include statistics in the report.
  • Updated tables to reflect changes in displayed information and formatting.

In regards to the above changes, the save feature is of particular note for it inscrutibility. While the technique used to save/retrieve the report setting is adequate, the code to enable this functionality is not well-implemented. Unfortunately, time constraints required a fast, rather than best, implementation.

As modifications are requested this script is getting to be a little harder to work with. The code was created over the course of a week or two back in January. I was able to make quick work of it by using some concepts I initially worked out for summary table generation (and based on discussions with Brian W). While the data is stored in a psuedo object-oriented format, the script itself is fairly linear in design. If more modifications are requested the script may need some rewrites to enable a bit more flexibility.

05.07.08

Best Practices for Setting MySQL Server Runtime Parameters

Posted in MySQL, System Administration at 1:55 pm

Since we’ll be exposing MySQL to significantly more traffic (due mainly to the transition to a database-driven version ofBenchmarks Online [dbBOL]) I decided to spend some time optimizing the server’s settings. There are a number of settings that can be tweaked to improve performance. I based my decisions on the information available from the references cited and the performance statistics reported by MySQL (SQL SHOW VARIABLES or use PHPMyAdmin). MySQL has been running for 131 days as of the writing of this post (see cached copy of the runtime stats), so I expect the data will be a fairly good indication of the performance of MySQL under its current usage. Unfortunately, I expect the usage pattern to change significantly once dbBOL is released. As a result some of the settings used will be based on expected usage patterns. At specific intervals after dbBOL is released we should examine the performance of MySQL based on the runtime stats to determine if additional tweaking needs to be performed. I recommend the following schedule: 1 week, 1 month, 3 months, then every 6 months.

Read the rest of this entry »

04.02.08

BOL Tricks

Posted in Web Development at 4:56 pm

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

Posted in System Administration, Web Development at 1:42 pm

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.

03.26.08

BOL Text utility updates

Posted in Web Development at 2:12 pm

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!

03.18.08

Windows Media Player Plugin for Mozilla

Posted in Web Development at 3:04 pm

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