Category: "Activity log"

TLS for links in the blog

April 7th, 2017

Updated source code to use https for links. Be alert for any unexpected side-effects.

Archive Room

January 26th, 2016

Delivered 1 box to English Dept. of av materials from storage in archives.

SP205 course website

April 2nd, 2014

SA, myself and GMcB met today to review her new SP205 course website.
Site Purpose: Promotional re new Fall 2014 course
Discussed: site structure, content, images
Content: GMcB providing

Account: applied for and provisioned

Next steps:
- JN - start building website

Religious Studies website

April 2nd, 2014

Received spring course change notice from RELS.
Made change to site with new information.
Sent confirmation to RELS advising change completed.

Latin American Studies Website

March 3rd, 2014

Received requests from BAK (LATAM)to update site with new announcements.
Completed site updating.
Archived some links to specific pages.
Sent confirmation email to BAK (cc'd Stewart, HCMC)updates completed.


February 14th, 2014

Received requests from SB (EMRC) to update their site with new announcements.
Updated talks page with previous January 2014 talk.
Sent confirmation email to SB & Stewart advising site updated as requested.

Religious Studies website

February 5th, 2014

Received request from SA (R/St) for 2014-15 courses
to be added to site.
Updated current website.

Medieval Studies website (current site)

January 31st, 2014

Received course listing for 2014-2015 from SA (MedSt).
Added courses to current site


January 31st, 2014

Received request from KB for slight changes to Publications section on
Cascade site.
Completed changes; published to pre-prod; sent confirmation email to KB, EGW and SA advising changes completed.


January 29th, 2014

Added department resources with active links to index page as requested.
Re-published site to pre-prod.
Sent email confirmation of above task completion to KB, EGW, cc'd SA.

Philosophy - Cascade

January 21st, 2014

Uploaded html files to Cascade site (Assets)
Updated journal index with active links.
Sent confirmation email to AY (cc'd SA)re tasks completed.

Latin American Studies Website

January 20th, 2014

Received pdf (poster)from BAK; created link to poster for existing upcoming announcement item on already on site.
Site updated with link created on all pages; sent confirmation to BAK (cc'd SA)with update; synchronized website.

Philosophy - Cascade

January 17th, 2014

Uploaded files to Cascade journal folder.
Updating journal links in progress.


January 17th, 2014

Updated EMRC site with new 2014 announcements changes and additions.
Sent SB, & Stewart confirmation email advising site now updated


January 16th, 2014

Received requests from SB (EMRC) for changes to Announcements section with new
announcements, events and presentations for 2014.

Completed all additions/changes; sent confirmation email to SB & cc'd SA.


January 16th, 2014

Completed build out according to spreadsheet provided of English Cascade site .
Client to provide content which is forthcoming.

Latin American Studies Website

January 16th, 2014

Received request from BAK (Latam) for Announcements updates to site.
Announcements section updated with 4 upcoming dates and details.
Sent update email confirmation to BAK.

Hispanic and Italian website

April 17th, 2013

After extensive period of time working on this site, importing content from
old format to Cascade and from moving site/content to another new Cascade format
this site has been submitted to Communications for review/approval.
Awaiting feedback

Religious Studies

February 7th, 2013

Received request from SA (RelSt) to post on their site a job listing.
Completed request and sent confirmation email to SA (cc'd SA/HCMC also)

Medieval Studies website

February 7th, 2013

Received request from SA (MedSt) to removed sessional posting on their site.
Completed request and sent confirmation email to SA (cc'd SA/HCMC)

HCMC website - Cascade

April 30th, 2012

HCMC website - Cascade

Spent time today reviewing HCMC site again with thoughts of what to include/exclude
etc. in the new site.

Primaries and secondaries have been created with some content included. Significant editing of previous content required for new website. Creation of new blocks and request for content in progress.

HCMC website - Cascade

April 30th, 2012

Spent time today reviewing HCMC site again with thoughts of what to include/exclude
etc. in the new site.

Primaries and secondaries have been created with some content included. Significant editing of previous content required for new website. Creation of new blocks and request for content in progress.

Refined the CSS for the blogs for showing XML code

November 18th, 2011

As part of some other work, I've enhanced my Transformer sequence for escaping and tagging XML code so that it works for comments as well, and added bolding to the code. I've updated the CSS file for the blogs to support this too, so this should look nicely syntax-highlighted:

<list type="numbered">
<!-- This is a list of pets. -->

Updated CSS to make printing of posts practical

August 16th, 2011

Added an @media:print section to skins/hcmc/custom.css to hide all the site menus etc which get in the way when printing a post, and to reposition the post so that it fills the page properly. It's been frustrating how difficult it is to print a post without losing content, and this should solve the problem.

Added CSS to support syntax highlighting in XML/HTML tags

June 15th, 2011

I've created a Transformer sequence which takes XML code, escapes it, and adds formatting tags that highlight tags, attribute names, and attribute values. To enable the use of this, I've added CSS classes to hcmc/custom.css. Here's a test of the results:

    <application ident="ImageMarkupTool02" version="" notAfter="2011-09-29T14:06:14">
      <label>Image Markup Tool</label>
      <desc> </desc>
      <ref type="appURI" target=""></ref>
      <ptr target="#imtLinkTypes"/>
      <ptr target="#imtFacsimile"/>
      <ptr target="#imtLinks"/>

Here's the sequence: Transformer 3 sequence for escaping and tagging XML code for syntax highlighting on the blog

and here's the app you need for it:

Medieval Studies website

May 12th, 2011

Updated Medieval Studies Website:
Received a request from SA (MSt) to update their website with the FALL 2011 and SPRING 2012 courses.

Entered today FALL 2011 and SPRING 2012 Medieval Studies Courses and poster information.

Sent email confirmation to SA (MSt).

Early Modern Research Collective website

March 14th, 2011

Received email from SB.
Decision: SB, GN, JN will meet in April re website development/completion.

finding FLEAT3 article

August 4th, 2010
Got request from someone in Brazil for an article in FLEAT3. Couldn't find electronic or paper copy in temporary office. emailed Greg Fanning as we produced the document. Went over to workroom and found paper copy. Met Greg who'd just found a PDF file and had emailed it to me. Forwarded that to enquirer.

intd: modify htaccess for interdisciplinary applicant site

May 6th, 2009
tested and updated Jennifer and Lisa on readiness of site in the intdapps account for their purposes. Provided list of netlink ids with access. They will get back to me with the week with modifications to that list.


January 9th, 2009

Contact list completed and forwarded
to EGW & EF as requested.

Admin: info prep

January 8th, 2009

Attended yesterday's HCMC meeting with EGW, MH, GN, EF (see posting).
Preparing Humanities and Continuing Studies contact information regarding lab use/users requested by end of week for EGW/EF.

more on one big table for GIS implementation

July 25th, 2008

A while ago I did a bunch of GREP work on some excel files PD sent me to: divide one address field into StreetNum, StreetName and StreetNotes fields. In doing that I noticed that the pointers in that file to records in another table were out by a fixed number so modified that too.

Turns out that the file PD sent me had the address field sorted in the wrong order relative to all the other fields for each record, so he fixed that and I had to re-do the GREP. Having completed that I then set to do the renumbering and noticed that due to the new sorting, the pointers were now off by a gradually accumulating number, rather than a fixed number. It took half a day to get the pointers sorted out.

Sent the updated files to PD. He's satisfied everything's in order now.

normalize streets and directory points in census_directory_matches

June 26th, 2008

I've normalized the data in the census_directory_matches.xls file, so that the address street name and street number appear in separate fields, and so the pointer to the records in the business_directory table are correct.


I've split the addresses from one field into three fields:
Some of the numbers contain the 1/2 character. This may matter later as the inclusion of that character means the numbers can't be treated as integers (obviously as they're not), and I'm not sure if they can be treated as decimals either (depends if the software is smart enough to figure out that "1/2" is the same as "0.5". We can certainly always treat those numbers as strings of characters (i.e. do searches on them). We'll cross that bridge when we come to it.

I made no effort to normalize street names, but let PD know that there are apparent inconsistencies in the original data, if that matters.

Record Id's

The copy of the database PD derived the census_directory_matches file from was out of date, so the xls file had values in the "recordId" field which pointed to non-existent records in the 1892 business_directory table.

I created a new field called curDirId in the census_directory_matches file. I copied the values from the recordId field into the curDirId field and then did the following:

For records with old recordId 2585+ : adjust curDirId by +2327
For records with old recordId 2662+ : adjust curDirId by -1
For records with old recordId 4003+ : adjust curDirId by -1
For records with old recordId 6504+ : adjust curDirId by -1
For records with old recordId 8783+ : adjust curDirId by -1
For records with old recordId 12180+ : adjust curDirId by -1

The first step started the numbering at the correct place. I then discovered that the current database has five fewer records than the version PD must have been using, so I had to go through and figure out where to adjust the numbers again to correct for that.

Turned off comments on all blogs

May 17th, 2007

The quantity of comment spam has reached the point where we're no longer prepared to put up with it, so we've turned off comments on all blogs. If anyone needs comments turned on for their blog, let me know.

I also deleted Stew's Placeholder blog (what used to be DeptSites), as it was never used.

decommissioned DeptSite blog

May 10th, 2007
I recently created a DeptSite blog, but on consideration it makes more sense to expand the scope of the HumSite blog to includes all major humanities dept site development and use the existing Depts blog for minor updates etc. I made the necessary modifications to the descriptions etc for the HumsSite blog and renamed the DeptSite blog to Placeholder, ensured I'm the only member and set configs so it's basically invisible to everyone else.

turned off comments on Vac/Hours

May 10th, 2007
Getting a bunch of spam comments on the vacation/hours blog, so I disabled comments in the Blog Settings for the blog. Given the nature of the blog, I don't think any legitimate user will want to comment.

Fixed a sort problem in the blog menu

May 1st, 2007

The left menu in the main blog home page, showing the list of blogs, was sorted case-sensitively, with lower-case elements such as teiJournal sorting after all the upper-case ones. Investigated this, and found that the sorting code is in this page:


This code basically creates an array of the blog list item tags, indexed on the blog name, and then sorts it using ksort. Lower-casing the blog name before it's used as the array key solves the problem, so I've implemented that fix.

Added a new Quicktags button to the posting toolbar

April 24th, 2007

We often need to mention <HTML> <tags> in our posts, and I was getting a bit tired of typing all the escaped angle brackets. Now, if you highlight a word, then press the "tag" button on the post editing toolbar, you'll see this:


which will look like this in the final post:


The customization was made to:


Added bookmarklets link to sidebar

April 2nd, 2007

As proposed by Greg in this feature request, I added two links to reports on the logged-in user's tasks and activities today to the right sidebar. I don't think there's a need for an outstanding tasks link, because they show in red on the regular task list.

More on antispam

March 30th, 2007

Found a much more efficient way to delete comment spam and blacklist its source. If you go into the antispam plugin settings, and add a url from a comment spam to the list, it pulls out all comments which contain that url and offers to delete them en masse. Neat!

Did the upgrade to 1.9.3

March 30th, 2007

Followed my own instructions to upgrade the blog code to B2Evo 1.9.3.

More spam, more changes

March 30th, 2007
This time set it to -90, -50, which is pretty extreme. If this doesn't work, we'll need to consider turning off comments. I don't know if anyone's using them much anyway.

More comment spam, so tweaked settings again

March 29th, 2007

We're now down to 0 for the second value -- we've gone 50, 40, 30, 0.

More spam - adjustment made

March 29th, 2007
Per Martin's post I've adjusted the threshold from 40 to 30 as I just a whack of spam.

Added a table class to the stylesheet for posts

March 29th, 2007

We often need a simple grid table for use in posts, and the post handling code won't allow the use of inline styles or stylesheets in the post. I added a new class, hcmcGridTable, to the custom.css stylesheet which can be set on the table to give it borders and vertical-align text to the top.

Preparing for 1.9.3 upgrade

March 29th, 2007

This is a preparatory analysis of the changes for this version, and the accompanying action we need to take.

FileDifferencesRecommended action
\conf\_application.phpThe only significant change is in the version number.We have two customizations in this file. Recommend that we keep our file, and just change the version number in it.
\plugins\ basic_antispam.plugin\ _basic_antispam_plugin.php Addition of one line, "return true", plus version number changes. Adopt the new version.
inc\VIEW\ collections\ _blogs_list.php One change plus version number update. We have no customizations in this file, so we should just take the new one. Adopt the new file.
inc\MODEL\items\ _item.class.php Most differences involve our own customizations, but there are some minor changes. We should integrate the new changes into our existing file; that is less onerous than the reverse.
inc\MODEL\items\ _itemquery.class.php Only two changes: version info, and a one-line addition. We have no customizations in this file. Adopt the new file.
\skins\wpc_default\ _linkblog.php One small fix and one extra carriage return. Adopt the new file.
\skins\wpc_default\ _main.php Three minor changes, and no customizations. Adopt the new file.
\inc\_misc\ _plugin.class.php One change plus version info update. No customizations. Adopt the new file.
\inc\_misc\ _plugins.class.php Numerous small updates but no customizations. Adopt the new file.
\inc\MODEL\users\ _user.class.php Version info plus one small change; no customizations. Adopt the new file.
\inc\VIEW\users\ _users_form.php Version info plus one small change; no customizations. Adopt the new file.
\inc\CONTROL\users\ b2users.php Version info plus one small change; no customizations. Adopt the new file.
\inc\CONTROL\collections\ blogs.php Version info plus one small change; no customizations. Adopt the new file.
\rsc\js\bozo_validator.js One change, no customizations. Adopt the new file.
\doc\changes.html Documentation of changes. Adopt the new file.
\blogs\charts.txt Doesn't exist in the original, and is a 0KB file. Ignore.
\rsc\js\styleswitcher.js Multiple changes but no customizations. Adopt the new file.
xmlsrv\xmlrpc.php Two changes plus version info, no customization. Adopt the new file.

Do B2Evo upgrade to 1.9.3

March 28th, 2007

The new 1.9.3 upgrade zip is waiting on your desktop. A cursory look suggests that there may not be any files in it in which we've made changes, but each one will have to be checked manually for customizations in our install tree, before we overwrite them.

Tweaked the blog settings

March 26th, 2007

Got some spam comments over the weekend, so we tweaked the deletion factor, reducing it from 50 to 40. If that doesn't work, we'll bring it down another 10 points until it does.

Added a trap for posts with no title.

March 19th, 2007

There's been a long-standing request for a trap to prevent people creating posts with no title (because this makes RSS feeds look odd, among other things).

Implemented this by adding the trap to this file:

  • blogs/rsc/js/hcmc_functions.js

This file now traps for two things: whether a value has been inserted for Minutes worked (when creating a post in the Activity log category), and whether the title (trimmed for leading and trailing whitespace) has a length of more than one character.

Investigating the db size

March 7th, 2007

After some investigation, it seems likely that it's our logging settings that are bumping up the size. The sessions and hitlog tables have tens of thousands of entries. I've reduced the logging days from 15 to seven, and instructed to db to prune the older entries. We'll wait and see how much effect that has.

Fixed RSS for HCMC site feed

March 6th, 2007

Created a custom RSS URL using the HCMC Stats function, drawing only from posts which have the Announcements category checked, then Stew plugged it into MagpieRSS; the main HCMC site feed now shows only announcements.

decide on how to handle links in print css for hcmc site

February 26th, 2007
With Martin and Greg, worked out a convention for handling links on the HCMC site so that they appear properly in the print output. The difficult case was links with the URL as the link text as well as the href attribute - we wanted only one of those two instances of the text to appear. The internal nav links are all contained in internalNav divs, so we can handle them

Tweaked report display for Greg's CSS again

February 21st, 2007

Added the squared plus and squared minus characters (u229E and u229F) for the expando buttons that show and hide posts in reports, in place of the regular plus and minus.

Updated report output for CSS

February 21st, 2007

Greg's new CSS has some nice alternating background shading for table rows, but it requires a class of "odd" to be set on every alternate <tr> tag. Edited report.php to add this.

TASK: finish blogs CSS

February 19th, 2007

As of now, the CSS updates to the front- and back- ends are pretty much finished. The few things that I wanted to adjust are too painful to deal with (they'd need PHP hacked to accommodate minuscule aesthetic goals) so I'll leave them to the following task.

The Task:
Respond to CSS bug reports for the two parts of the blog (front end and back end).

Blog backend CSS

February 16th, 2007
I've been working on the CSS for the admin backend for this blog engine in order to incorporate it into the main HCMC site (at least to a certain extent). I assumed it would be fairly straightforward, but it's become clear that there is a lot going on back here. I'll be posting a task for myself to continue this over the next few weeks. Please comment on the task to offer critiques and suggestions/oversights etc. I've done this work using only Firefox on Linux, so there will certainly be rendering differences, specifically in regard to fonts and border sizes.

A bit of research and a task obviated

February 12th, 2007

Did some further research into the request to limit comments to logged-in users. It turns out that you can tune the anti-spam plugin to automatically delete comments below a certain spam threshold, and automatically publish those above another threshold. If this works, it will remove the need for any serious hacking to limit comments to logged-in users; the only real reason for this was to avoid spam. Set the values to -50 and +50 respectively; we'll see what results from this. If spam is still occasionally showing up, we can tweak again.

New blog on CMC Research Collective

February 12th, 2007

Follow up information. Thank you for creating the blog. I will post the initial announcement below.

The opening description:

Welcome to our research collective!

In the fall of 2006 we set out to develop a network of people from the Faculty of Humanities who are using or are interested in using CMC (Computer Mediated Communication). At the moment, we are about a dozen people representing six departments and the HCMC sharing experience and research on creating new learning environments and communities.

We use this blog for announcements and discussions. We also like to extend the invitation to new members to join us!

The Netlink IDs: "Claire Carlin", "Catherine Caws" "MC Desforges" "Scott Gerrity" "Suzanne Gessner" "Li-Shih Huang" "John Lutz" "Mathy Ritchiie" "Julia Rochtchina" "Ulf Schuetze" "Ray Siemens"‚ "Karen Tang" "Gerlinde Weimer-Stuckmann" Helga Thorson: Email:

The Announcements:

1. Next meeting: Wednesday, Feb 28th, 2007 at 6:30 p.m. at Martin's Pub/Place (3838 Cadboro Bay: in the little village down the hill) We have booked the upstairs room.

Testing new syntax highlighter code

February 12th, 2007
If you wrap some code with a cgeshi tag a plugin library called GeSHi will provide some basic highlighting as below. Tags used in the below examples are: [cgeshi_html4strict][/cgeshi_html4strict]

HTML (4.01 is it apparently) [cgeshi_html4strict]

some content


[/cgeshi_html4strict] CSS [cgeshi_css]div#pageFooter { clear: both; background-color: #fff; width: 738px; margin: 0 auto; padding: 0 0 1ex 0; } p.baseline, p.baseline a { border-top: 1px solid #ddd; text-align: center; font-size: 74%; color: #aaa; padding: 1ex; margin: 0; }[/cgeshi_css] Javascript [cgeshi_javascript]function TrimEndToTag(ElName){ var El = document.getElementById(ElName); if (El != null){ s = El.value; while ((s.charAt(s.length-1) != '>')&&(s.length>0)){ s = s.substring(0,s.length-1); } El.value = s; } return true; }[/cgeshi_javascript] XML XML seems to be finicky. I keep getting illegal tag warnings from either b2 or GeSHi. I'll look at it again another time. PHP [cgeshi_php]<?php $evousers = $DB->get_results('SELECT * FROM T_users ORDER BY user_ID'); foreach ( $evousers as $user ) { // Access data using object syntax echo $user->user_ID; echo ' ('; echo $user->user_firstname; echo ' '; echo $user->user_lastname; echo ')
' } ?>[/cgeshi_php] Java [cgeshi_java]/* Output: move to 0.0, 0.0 line to 72.0, 0.0 line to 72.0, 72.0 line to 0.0, 72.0 line to 0.0, 0.0 close */ import java.awt.Shape; import java.awt.geom.PathIterator; import java.awt.geom.Rectangle2D; public class MainClass { public static void main(String[] args) throws Exception { Shape s = new Rectangle2D.Double(0, 0, 72, 72); PathIterator pi = s.getPathIterator(null); while (pi.isDone() == false) { describeCurrentSegment(pi);; } } public static void describeCurrentSegment(PathIterator pi) { double[] coordinates = new double[6]; int type = pi.currentSegment(coordinates); switch (type) { case PathIterator.SEG_MOVETO: System.out.println("move to " + coordinates[0] + ", " + coordinates[1]); break; case PathIterator.SEG_LINETO: System.out.println("line to " + coordinates[0] + ", " + coordinates[1]); break; case PathIterator.SEG_QUADTO: System.out.println("quadratic to " + coordinates[0] + ", " + coordinates[1] + ", " + coordinates[2] + ", " + coordinates[3]); break; case PathIterator.SEG_CUBICTO: System.out.println("cubic to " + coordinates[0] + ", " + coordinates[1] + ", " + coordinates[2] + ", " + coordinates[3] + ", " + coordinates[4] + ", " + coordinates[5]); break; case PathIterator.SEG_CLOSE: System.out.println("close"); break; default: break; } } }[/cgeshi_java] Delphi [cgeshi_delphi]procedure TForm1.FormCreate(Sender: TObject) ; begin Image1.Transparent := False; Image2.Transparent := True; Image3.Transparent := True; with Image3.Picture.Bitmap do begin //middle of the image TransparentColor := Canvas.Pixels[24,24]; //actually not needed TransparentMode := tmFixed; end; end;[/cgeshi_delphi] Bash [cgeshi_bash]# save LD_LIBRARY_PATH if [ -n "$LD_LIBRARY_PATH" ]; then OLD_LIBRARY_PATH="$LD_LIBRARY_PATH" fi # add lib/core to LD_LIBRARY_PATH for readline support export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$EXIST_HOME/lib/core" JAVA_ENDORSED_DIRS="$EXIST_HOME"/lib/endorsed $JAVA_CMD $JAVA_OPTIONS $OPTIONS \ -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \ -jar "$EXIST_HOME/start.jar" backup $* if [ -n "$OLD_LIBRARY_PATH" ]; then LD_LIBRARY_PATH="$OLD_LIBRARY_PATH" fi[/cgeshi_bash]

Testing new code display plugin

February 12th, 2007
I've installed a new plugin for displaying code. It is called... Display Code Plugin! What do you think? I like it alot. In fact, I'm keen to cull the quicktag bin and add this one (maybe even instead of the <code> quicktag?) To make this one work just wrap your code in <amcode></amcode> and it will display as below.
[lt]map:serializers default="html"[gt]
    [lt]map:serializer logger="sitemap.serializer.links" name="links" src="org.apache.cocoon.serialization.LinkSerializer"/[gt]
    [lt]map:serializer logger="sitemap.serializer.xml" mime-type="text/xml" name="xml" src="org.apache.cocoon.serialization.XMLSerializer"[gt]

Updated the bookmarklets

February 12th, 2007

Since the blog location has changed, and there are new features in the reporting, I created a new explanation for the useful bookmarklets, this time in a text file here. The text file is necessary because in any post, long urls are chopped off and can't be completely selected.

added illness category to vac/cto blog

February 12th, 2007
Added a illness day category to the vacation/cto blog and posted three posts covering my illness last week as a test. seems to work.

New URL working; one CSS issue

February 12th, 2007

Checking the blogs from the new URL ( everything seems to be working fine. I did notice that there's a very minor display issue with the titles. When a blog doesn't have a subtitle (such as the All blog), the title bar is narrower, causing the search box to hand down outside the bar. I've rather cheekily assigned this as a task to Greg to fix, since he's the CSS guru for the blogs.

Documentation of the update from 1.8 to 1.9.2

February 9th, 2007

This is what we did, and what we learned:

  1. Created an SQL dump using phpMyAdmin.
  2. We changed latin1 to utf8, changed the tables to InnoDB, and also changed the default encoding for en_CA to utf-8, so which will help normalize data in future.
  3. We tried to upload through phpMyAdmin. Our cress version allows files of up to 15 MB (ours is ten), but the PHP timeout proved too short and only part of the file was imported. We deleted the tables to start again.
  4. We went to the mysql command line on cress, and tried importing from there. The first attempt failed because of the utf-8 BOM (presumably PHP had disposed of that when we used phpMyAdmin).
  5. The second attempt, with a non-bom file, also failed with this error: "got a packet bigger than max_allowed_packet". We found documentation on this here.
  6. We called Ryan to have him increase the server and client settings for max_allowed_packet.
  7. Ryan was too busy to respond quickly, so we decided to try a new approach. We did a new dump using mysqldump, like this:

    ./mysqldump -u tapor -p --set-variable=max_allowed_packet=16M hcmc_b2evolution > /home1t/hcmc/b2_bu.sql

    This dump is set to break up the sql appropriately for the default package size.
  8. Again, we edited the file as in (2) above. We also, for good measure, changed the encoding for Swedish to utf-8 to catch any instances of posts going into the db with that encoding. We saved as ANSI (so there's no BOM, but the UTF-8 encoding is preserved).
  9. We did a restore into mySQL 5 like this:

    ./mysql -u hcmc -p hcmc_b2evolution < /home1t/hcmc/b2_bu.sql
  10. We changed the base url in conf/_basic_config.php to point at lettuce, otherwise links on the site always go back to the old site. We may later have to change this to in order to get the blogs functioning as if they are part of the HCMC site.
  11. We tested posting, reporting, languages/character sets, and so on.

Still not finished: update of CSS, which is a bit borked because it appears that some class names may have changed.

Testing languages such as 日本語 and Français

February 9th, 2007

This is a test of the language handling in the new installation of B2Evo 1.9.2. Including minutes spent on this test.

これは日本語です。Je ne suis pas un élève.

This is a test with some <angle> <brackets>.

Made revisions in preparation for upgrade tomorrow

February 8th, 2007

Since we (temporarily) have a working pilot of B2Evo 1.9.2 on a VM, I took advantage of this to hack away for a bit and add a couple of the features on my task list, before we go live tomorrow:

  • Added options to sort the stats reports by deadline date, so you can list your tasks in order of urgency.
  • Made the list of blogs alpha-sort in the dropdown selector in the stats page.
  • Created a new layout for the stats page, grouping the controls into three columns.

New blog on CMC Research Collective

February 8th, 2007

I would like to open a new blog on the newly forming research collective on computer mediated communication (CMC) in the Humanities. Categories are Announcements and Discussion.

Short title: CMC Collective. Long title: CMC Collective in the Humanities.

I will forward a description shortly, along with netlink ids of those involved, most of which already have projects underway with us. Thanks.

New blog on CMC Research Collective

February 8th, 2007

I would like to open a new blog on the newly forming research collective on computer mediated communication (CMC) in the Humanities. Categories are Announcements and Discussion.

Short title: CMC Collective. Long title: CMC Collective in the Humanities.

I will forward a description shortly, along with netlink ids of those involved, most of which already have projects underway with us. Thanks.

Bugfixes for the HCMC Stats page

February 5th, 2007

Found and fixed a couple of little bugs that aren't affecting anything, but showed up when we were working on the port:

  • Ampersands were not being escaped in drop-downs of categories (as in R & D). This made the XHTML invalid.
  • Three associative arrays which are constructed to make it easy to look up the name/id relationships in tables did not have a default fallback value for when the lookup value was null.

Much work preparing to update B2Evo (Martin and Greg)

February 5th, 2007

We've been preparing for the port from v 1.8.x to 1.9.2 by testing the migration process out. There are even more reasons now why it's a good idea to migrate:

  • In the process, we can move from mySQL 4 to 5 (better language support).
  • We can move from MyISAM tables to InnoDB tables (more stable, faster, etc.).
  • We can fix the character encoding issues plaguing the current version, which was set up with latin-1 tables and fields instead of utf-8.
  • We can introduce a new fix we've tried which sorts the blog list alphabetically.
  • We can add three minor bugfixes in Martin's customizations which have shown up in the process of testing.

The port itself is a complicated business, though. This is what we need to do:

  1. Check the mySQL 5 db and see if we can configure it so that the defaults are InnoDB tables, and utf8_unicode_ci everywhere.
  2. Take down the original PHP and archive it.
  3. Do a mySQL dump of all the data, and make an archive copy.
  4. Edit the dump, to do these replacements:
    • latin1 -> utf8
    • MyISAM -> InnoDB
  5. Save the file as UTF-8 (although that doesn't help with accented characters :-(.)
  6. Push up the edited dump into mySQL 5 to create the new db.
  7. Put all the 1.9.2 code in place (including our customizations).
  8. Configure the code to point at the new mySQL 5 db.
  9. Run the B2Evo installer script. It will modify the db to add new fields required for 1.9.2.
  10. Check that all is well (except for accented chars).
  11. Go into the Mariage and Moses blog settings and fix the broken accented chars (this can be done using HTMLKit).
  12. Test, test and test again.

This is best done on a weekend, for obvious reasons. We'll need an OK to do this on a weekend.

New blog on Moodle

February 5th, 2007

I would like to propose a new blog on Moodle. Ricardo Draper, Erica Price-Edny, and I have been appointed by Mark Roman to explore the possibility of providing centralized Moodle services and support.

Right now it's not at the project stage, but we need a place to share information and discussion. I plan to post results of interviews on usage, costs for support, support models, and the like. Mark Roman says he will likely make it a formal project in the near future.

I know a number of us have an interest in Moodle. I'm recommending we use the blog as a shared space where we post our findings, and allow others to review and post as well. We could create categories based on user groups or types of information (Technical/Admin/Pedagogy, etc.)

Any thoughts on this?

1.8 to 1.9. upgrade notes: DB schemas

February 5th, 2007

A comparison of the files in 1.8 and 1.9 shows the following differences:

1.9 is missing:
from table T_blogs

from table T_posts

from table T_basedomains
INDEX dom_type (dom_type)

from table T_useragents
INDEX agnt_type ( agnt_type )

from table T_hitlog
INDEX hit_datetime

the upgrade function at line 476
this functionality appears to still exist in the new version, so it's been added elsewhere I assume

1.9 adds:
to table T_posts

to table T_hitlog
new INDEXes
INDEX hit_agnt_ID, hit_uri and hit_referer_dom_ID

new table T_item__prerendering, which is described as a prerendering cache table

to table T_plugins
plug_name and plug_shortdesc

1.9 alters:
table T_locales
loc_datefmt and loc_timefmt from varchar (10) to varchar (20)

table T_hitlog
hit_referer_type adds 'self' and 'admin' to the values in ENUM

I am inclined to say that there is nothing schema-related that should dissuade us from upgrading to 1.9.

minutes worked on update to 1.9

February 2nd, 2007
minutes worked with Greg and David on moving fields from old database to new database see Greg's post

b2evo 1.9.2 upgrade

February 2nd, 2007

I've built a b2evo machine running 1.9.2 in its stock configuration (including the DB schema).

As Martin says here there are many differences between our current codebase and the current 1.9.2 version, and I think it is too dangerous to consider creating a patch to upgrade.

What I'm implementing now:
With the new install I will incorporate Martin's patches one by one, ensuring that the app still works after each change. The first patch will be the DB changes that he made, then I work on the php. Once we're convinced that an upgrade will work I'll redeploy the new codebase on lettuce and set up a virtual host (like

More on 1.9.2

February 2nd, 2007

Greg's preliminary diff of 1.8.5 against 1.9.2 shows that there are many, many differences. The database itself is also different, according to a response to my query on the B2Evo site. I've posted another query for documentation of the differences; I couldn't find any.

What we're learning now suggests that the best approach is this:

  1. Copy the old db to a safe location.
  2. Do a new install of 1.9.2 in a VM, pointing it at the copy of the old db.
  3. Examine carefully what is imported into the new db:
    • What fields have changed?
    • Was our customization carried over? This is the info about the customization:
      The evo_posts table contains the fields which store individual posts. An integer field has been added to that table:
      post_minutes_worked int(11) UNSIGNED No 0
  4. Do any changes in the db field affect our customization code? In other words, have any fields which are referred to in our custom code changed name, disappeared, or moved?
  5. Are there any other changes which affect our customizations? (For instance, does our HCMC skin work.)

Once we have this information, we can assess the practicality and desirability of moving to 1.9.2. If we do move, we'll need to approach it like this:

  1. Bring down the existing blog system.
  2. Archive it carefully.
  3. Build the new system, importing data from the old.
  4. Re-integrate each of our customizations, testing as we go.
  5. Once all is working, bring the new system up, on the URL of the old system.

Since everyone relies on the blog for daily work, this might be a job for a weekend.

More on 1.9.2

January 31st, 2007

Products of a bit more research on 1.9.2:

Because of this, I recommend that we stay with the 1.8 branch for the moment, while we ask some very specific questions on the forums.

Discussion on Blog Input

January 19th, 2007


Martin, Stew and Greg discussed with Judy best means
and locations of blogging administrative input within newly created sub-categories.

Discussions on use of the blog

January 19th, 2007

Judy, Stew, Greg and I had a half-hour discussion to clarify the best ways of handling the kind of admin info Judy is going to be entering into the blog. We added a couple of categories to the Admin blog, and we'll probably add more in the future.

Useful bookmarklets for the blog

January 18th, 2007

Updated the bookmarklets on 12/02/2007 to take account of the fact that the blog url has changed, and there's now the option to display tasks ordered by deadline date. In the process, discovered that there's no way to show full, long URLs without their being cut off, so I moved the main post over to a file, and here is a link.

Discussing blog with Judy

January 18th, 2007

Spent a little time running through the blog functions with Judy again, after I noticed she hadn't been posting. Since the value of the system lies in the fact that we all participate and post everything that we do, we should prod each other a little when we notice someone's not that active.

Added button to escape brackets in code

January 10th, 2007

To do this, I edited this file:


I added a function called EscapeTags to do the replacements, and a function called b2evoEscapeTags to get the selected text, pass it to the first function, and replace the result in the text. Finally, I added a new button to the end of the toolbar, modelled on the X (Close all tags) button. These last two buttons call special functions, whereas all the others just call a generic function and pass their open and close tags into it.

IE7 now discovers the RSS feed automatically

January 8th, 2007

Figured out how to make IE7 find the RSS feed: you add a link tag to the header of the page like this:

<link rel="alternate" title="RSS feed for this report" href="blah..." type="application/rss+xml" />

Reports now available as RSS feeds

January 8th, 2007

Added the following new features to the HCMC Stats reporting:

  • You can choose to use a custom title for your report, by checking a checkbox on the report page and entering a title in the text box below.
  • The title now shows up as a header in the page, above the report table, and as the document title in the standalone report view.
  • Each report is now also available as an RSS feed (RSS 2 only). To get the RSS, generate the report, then click on the RSS image at the top right of the report table.
  • The RSS feed also uses the custom title.
  • The following variables in the reports.php file (near the beginning) can be used to control aspects of the RSS output:
    • $rss_content_max_length = 150; (content of the post is truncated at 150 words).
    • $rss_item_limit = 12; (only the first 12 posts meeting the filter criteria are shown).
    The latter is important for an RSS feed; you'll want to make sure your report is sorted "Newest first" (the default) to get a standard RSS list.

Modified the following files:

  • /blogs/inc/CONTROL/hcmc_stats/hcmc_stats.css
  • /blogs/inc/CONTROL/hcmc_stats/hcmc_stats.php
  • /blogs/inc/CONTROL/hcmc_stats/report.php

Here is an example feed, which always shows the last twelve posts I've made to all the blogs. IE7 doesn't seem to handle RSS 2, but Firefox and Opera handle it natively, and any RSS reader such as Sage will have no problem. I don't think it's worth re-doing this work several times to get the other RSS formats, because these feeds will be specific to individual users, generally speaking.

CSS hack for images in posts

January 2nd, 2007
David needed to place an image in a post. The obvious way to do this is to use the upload dialogue from the post composer. The dialogue offers to insert the code required. If you accept, it places the graphic in a div and imposes a class of image_block, which didn't exist in my custom css. I added it and gave it some basic style (centred, thin border etc.). This only affects uploaded images.

Moving posts from one blog to another

December 8th, 2006
Did this for six of Stew's posts re HumsFac site. Two stages involved: 1. Change post_main_cat_id in the posts table to the cat id for the category in the new blog. 2. Change cat id in the postcats table (there's a redundant entry there, and that's what's used by the blog machinery to decide what to show). This really should have a GUI. It's messy and we'll probably do it often enough to make it worthwhile.

Turned off Auto-P by default

December 8th, 2006
This turned out to be easier than I thought; it's a setting in the admin backoffice (App settings / Plugins / Auto-P / Edit).

Bugfix and enhancements

December 8th, 2006
  • Looked into the deadline date bug. Turned out it was caused by the actual dates on tasks being wrong (tasks for early months of next year had 2006 deadlines).
  • In the process of fixing that, decided that deadlines should be displayed in a useful manner.
  • Added code to put deadlines in brackets after post titles in the report.
  • Added more code to check the date of deadlines, and for tasks with status Outstanding, where the deadline is passed, display dates in red.

David helped a lot with this; I discovered I'd been doing some risky things in PHP (associative arrays using integer index values), so we switched them to strings for the sake of stability. David also helped debug a stupid error of mine (= instead of ==).

Online submission form and practices

December 7th, 2006

I sent the post below (third paragraph down) via email yesterday. I'm posting it here now. The first paragraph below is my comment to Martin's response. His original response is the second paragraph down.

I have no problem using the term "proposal" instead of "charter" on the online submission form, or eliminating the word altogether from the web site or the form. But I really don't want to make substantial changes to the process outlined on the web site (again, see A project "overview" is not the same as a submitted proposal, because it involves our evaluation, approval, resource allocation, etc. If these items belong in the plan (especially for smaller projects), so be it, but they need to belong somewhere, agreed upon formally by all, to "hang on the wall" in the formal Documents category of the project blog. For larger projects, the "overview" proceeds to and is superceded by a plan. The overview is "what", the plan "how". I don't mean to cover old ground, but Stewart and I set up the process posted on the web site after some discussion and consultation, and I would prefer to stick to it.

Martin: Incidentally, the word "charter" has to go. It's meaningless in this context, and part of the problem with evaluating these documents is that nobody knows what they are. It's a proposal. Once it's accepted, it should be superceded by a plan. Everybody knows what they are and what they're for. You evaluate and accept or reject a proposal; you follow a plan. What do you do with a charter? Hang it on your wall?

Scott: As of the moment we have laid out a process for charter creation that involves consultation and write up by one of us (see These are guidelines based on practices, and can be changed if we feel another method would be more effective.

My questions are:

  • Do we want to change our practices around charter creation (allow folks to submit without consultation) or do we wish to address only the mechanism?
  • We have agreed already that charters "precede" blogs, so where do we post charters initially?
  • Charters require consultation and review, so how do we circulate criteria/charter effectively for comment and approval? (A blog seems the obvious place for this. Perhaps we create another blog called "Proposals"?)

I like the idea of an online submission form but realize quite clearly that any charter submitted by a researcher will need substantial revision after consultation with us. We could close the online form to internal use only, or just expect that substantial revision will be required regardless of who submits it originally.

Comments, questions and suggestions, please.

ABANDONED TASK: Make it possible to limit comments to logged-in users

December 7th, 2006

This task's deadline has been pushed into March because it's not worth doing until we have assessed whether we are to move to B2Evo 1.9.2. There's no point in doing a customization, then having to port it to a new system; best to undertake it on the new system if and when it's running.

In some blogs, we want outsider comments (e.g. the IMT blog, where users have posted bug reports). On others, we want to limit comments to logged-in users. This is not possible with B2Evo. There is a documented hack here showing how to limit all comments to logged-in users; in order to extend this to make it configurable per blog, we'd need to create a new boolean db field in the blogs table, add to the admin GUI a checkbox for turning it on and off, and extend the hack code to check for both login and/or this boolean before allowing a post. Not urgent, but very desirable.

Notes for porting projects to the new eXist

December 6th, 2006

These are the results of my previous research, now confirmed, on changes required when porting projects from the old eXist (1.0b) to 1.1.1. Additions will be made to this list as other projects are ported and we discover other changes that might need to be made:

1. Remove any bindings of the fn: prefix. These seem to be redundant survivals, and clash with an internal binding in eXist.

2. You may need to add an explicit XQuery generator to the sitemap -- take it from the sitemap in the XQuery folder of eXist. [THIS DID NOT PROVE NECESSARY WHEN USING THE 1.1.1 VERSION OF EXIST BUILT INTO COCOON AS A BLOCK.]

3. For any project, we will need to add a map:mount element to the appropriate location (along with all the others) in order to cause the project sitemap to be loaded in the context of the project itself, overriding the root sitemap (otherwise the root sm takes precedence):

<map:match pattern="katakana/**">
<map:mount check-reload="yes" src="katakana/sitemap.xmap" uri-prefix="katakana"/>


4. request:request-parameter is changed to request:get-parameter.

5. Any instances of
alone on a line should be changed to:

More work on eXist 1.1.1 deployment

December 6th, 2006

With Greg:

Researched and tested user permissions that we should be using for our collections and documents. rwurw-r-- (0764) seems like the best default, so Greg set that in the conf file. Also set query timeout to one minute. The default document fragment size (number of nodes permitted) is 10,000; this was way too small for some of the Katakana calculations, so we elected to set this to unlimited (=-1) on the basis that we'll restrict excessive query load by using the timeout instead. Any query taking longer than a minute becomes impractical from the UI point of view, so a timeout error would be a signal that optimization needs to be done.

Further items added:

cachesize set to 96 MB (i.e. doubled)
collectioncachesize set to 256 (ie. doubled)



TASK: Make all reports available as RSS

December 5th, 2006

Spent some time investigating the best way to make canned reports available; the current system allows any report to be bookmarked, so, for example, you can generate a report for "my outstanding tasks" then return to it any time to see a current view of that data. It would be helpful if the report page could also spit itself out as RSS so you could subscribe to a feed version of any report. This is medium-term. Should take three or four hours (depending on how many RSS feed formats we want to support).

Fixed stats display for bloggers

December 5th, 2006

Regular bloggers (not privileged) didn't see the HCMC Stats link in the admin page. This was due to two things:

1. The HCMC Stats link was set to the same privilege level as the user controls, instead of being set to the "stats" level.

2. Bloggers didn't have permission to access "stats" level material. (I gave them View perms.)

Tweaked the permalink to full posts

November 29th, 2006

The permalink I added yesterday, leading from the report to the full posts, was not working correctly on the standalone report because relative URLs were wrong. Added a base tag to the standalone report, which means other urls can be simplified too.

Added four fixes for XSS vulnerabilities

November 29th, 2006

Corey reported four XSS vulnerabilities in B2Evo, with instructions for patching. Did the patches.

Added link from report to blog posting

November 28th, 2006

Each post title in the report table is now preceded by a small page image linking directly to the post itself. We can now use the report tool as another type of search engine to find a post and then jump to it.

Took a bit longer than it should to do this because I'm sick in bed and not firing on all cylinders.

COMPLETED TASK: One more tweak we need

November 27th, 2006

I spent a little time playing with the system and thinking about the reports, and it seems to me that we need to include in each report item (ie blog posting) a link back to the original posting. I'm already using the reporting interface to find stuff in previous posts, so being able to jump back to it will be handy.

Other than that, I think we have a system we can work with for a few months, till we're used to it, and then we can revisit it and perhaps do some more customization.

minutes worked on get report format working

November 24th, 2006

minutes worked on get report format working

TASK: Fixed locale-related character-encoding issues

November 24th, 2006

In the process of working on the report backend, I discovered some problems with the language settings. Users can choose to post in various languages, according to the locale they choose, and then their posts will be stored in that charset. When any page combines posts from different locales, some characters will be garbled. This needs to be fixed, but the nature of the system is such that it can't be fixed without re-working the entire language system of B2Evo. This requires substantial research ahead of time. Discussed this at length with Greg.

Got report formats working

November 24th, 2006

Finished the core PHP for reports:

  • Finished tidying up the SQL (stripping off a WHERE at the end where no params were supplied, so a query for everything now works).
  • Added some controls for what columns should be included in the table.
  • Rewrote the output code to respond to those controls.
  • Added header and closing tag generation for the standalone page, based on code in /blogs/a_noskin.php.
  • Tested the standalone page for validation errors; found lots, mainly due to ampersands etc. not escaped. Fixed those.
  • Hooked in the CSS and JS for the report form. Kept it absolutely simple (no fonts specified, for instance), because it is a report and shouldn't really be decorative. Most often it will be saved and massaged in another program.
  • Tested and tweaked.

(Worked with Stew for some of the time.)