Updated source code to use https for links. Be alert for any unexpected side-effects.
Category: "Activity log"
Delivered 1 box to English Dept. of av materials from storage in archives.
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
Received spring course change notice from RELS.
Made change to site with new information.
Sent confirmation to RELS advising change completed.
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.
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.
Received request from SA (R/St) for 2014-15 courses
to be added to site.
Updated current website.
Received course listing for 2014-2015 from SA (MedSt).
Added courses to current site
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.
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.
Uploaded html files to Cascade site (Assets)
Updated journal index with active links.
Sent confirmation email to AY (cc'd SA)re tasks completed.
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.
Uploaded files to Cascade journal folder.
Updating journal links in progress.
Updated EMRC site with new 2014 announcements changes and additions.
Sent SB, & Stewart confirmation email advising site now updated
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.
Completed build out according to spreadsheet provided of English Cascade site .
Client to provide content which is forthcoming.
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.
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
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)
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
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.
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.
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. -->
<item>cat</item>
<item>dog</item>
<item>fish</item>
</list>
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.
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:
<appInfo>
<application ident="ImageMarkupTool02" version="2.0.0.0" notAfter="2011-09-29T14:06:14">
<label>Image Markup Tool</label>
<desc> </desc>
<ref type="appURI" target="http://www.tapor.uvic.ca/~mholmes/image_markup/"></ref>
<ptr target="#imtLinkTypes"/>
<ptr target="#imtFacsimile"/>
<ptr target="#imtLinks"/>
</application>
</appInfo>
[...]
</encodingDesc>
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: http://www.tapor.uvic.ca/~mholmes/transformer/transformer3.zip.
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).
Received email from SB.
Decision: SB, GN, JN will meet in April re website development/completion.
Contact list completed and forwarded
to EGW & EF as requested.
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.
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.
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.
Addresses:
I've split the addresses from one field into three fields:
AddNum
AddStreet
AddNotes
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.
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.
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:
/blogs/skins/_bloglist.php
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.
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:
<code><stuff></code>
which will look like this in the final post:
<stuff>
The customization was made to:
/blogs/plugins/_quicktags.plugin.php
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.
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!
Followed my own instructions to upgrade the blog code to B2Evo 1.9.3.
We're now down to 0 for the second value -- we've gone 50, 40, 30, 0.
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.
This is a preparatory analysis of the changes for this version, and the accompanying action we need to take.
File | Differences | Recommended action |
---|---|---|
\conf\_application.php | The 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. |
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.
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.
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.
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.
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.
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.
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.
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).
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.
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" ccarlin@uvic.ca, "Catherine Caws" ccaws@uvic.ca "MC Desforges" desforge@uvic.ca "Scott Gerrity" sgerrity@uvic.ca "Suzanne Gessner" gessner@uvic.ca "Li-Shih Huang" lshuang@uvic.ca "John Lutz" jlutz@uvic.ca "Mathy Ritchiie" mritchie@uvic.ca "Julia Rochtchina" rjulia@uvic.ca "Ulf Schuetze" ulfs@uvic.ca "Ray Siemens"‚ siemens@uvic.ca "Karen Tang" Karent@uvic.ca "Gerlinde Weimer-Stuckmann" gweimer@uvic.ca Helga Thorson: Email: helgathorson@gmail.com
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.
[cgeshi_html4strict][/cgeshi_html4strict]
[cgeshi_css][/cgeshi_css]
[cgeshi_javascript][/cgeshi_javascript]
[cgeshi_xml][/cgeshi_xml]
etc.HTML (4.01 is it apparently) [cgeshi_html4strict]
some content
' } ?>[/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); pi.next(); } } 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]
[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]
[lt]encoding[gt]UTF-8[lt]/encoding[gt]
[lt]/map:serializer[gt]
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.
Checking the blogs from the new URL (hcmc.uvic.ca/blogs/) 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.
This is what we did, and what we learned:
- Created an SQL dump using phpMyAdmin.
- 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.
- 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.
- 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).
- 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.
- We called Ryan to have him increase the server and client settings for max_allowed_packet.
- 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. - 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).
- We did a restore into mySQL 5 like this:
./mysql -u hcmc -p hcmc_b2evolution < /home1t/hcmc/b2_bu.sql
- 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 hcmc.uvic.ca/blogs in order to get the blogs functioning as if they are part of the HCMC site.
- 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.
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>.
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.
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.
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.
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.
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:
- Check the mySQL 5 db and see if we can configure it so that the defaults are InnoDB tables, and utf8_unicode_ci everywhere.
- Take down the original PHP and archive it.
- Do a mySQL dump of all the data, and make an archive copy.
- Edit the dump, to do these replacements:
- latin1 -> utf8
- MyISAM -> InnoDB
- Save the file as UTF-8 (although that doesn't help with accented characters :-(.)
- Push up the edited dump into mySQL 5 to create the new db.
- Put all the 1.9.2 code in place (including our customizations).
- Configure the code to point at the new mySQL 5 db.
- Run the B2Evo installer script. It will modify the db to add new fields required for 1.9.2.
- Check that all is well (except for accented chars).
- Go into the Mariage and Moses blog settings and fix the broken accented chars (this can be done using HTMLKit).
- 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.
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?
A comparison of the _db_schema.inc.php files in 1.8 and 1.9 shows the following differences:
1.9 is missing:
from table T_blogs
blog_allowpingbacks
blog_pingb2evonet
blog_pingtechnorati
blog_pingweblogs
blog_pingblogdotgs
from table T_posts
post_flags
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
post_notifications_status
post_notifications_ctsk_ID
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.
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 blogs.hcmc.uvic.ca).
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:
- Copy the old db to a safe location.
- Do a new install of 1.9.2 in a VM, pointing it at the copy of the old db.
- 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
- 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?
- 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:
- Bring down the existing blog system.
- Archive it carefully.
- Build the new system, importing data from the old.
- Re-integrate each of our customizations, testing as we go.
- 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.
Products of a bit more research on 1.9.2:
- There are problems with the antispam plugin in 1.9.2. We rely on this.
- The upgrade docs currently don't cover moving to the 1.9 branch, so it's hard to know what will change.
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.
BLOG INSTRUCTION MEETING:
Martin, Stew and Greg discussed with Judy best means
and locations of blogging administrative input within newly created sub-categories.
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.
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.
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.
To do this, I edited this file:
/blogs/plugins/_quicktags.plugin.php
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.
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" />
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).
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.
- 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 ==).
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 http://web.uvic.ca/hcmc/researcher/planning.php). 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 http://web.uvic.ca/hcmc/researcher/planning.php). 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.
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.
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"/>
</map:match>
AGAIN, PROVED UNNECESSARY WHEN USING COCOON/EXIST/BLOCK. REMOVE IF PORTING OTHER PROJECTS PROVES IT'S NOT REQUIRED.
4. request:request-parameter is changed to request:get-parameter.
5. Any instances of
return
alone on a line should be changed to:
()
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)
indexer-case-sensitive=no
indexer-depth=8
preserve-whitespace-mixed-content=yes
stemming=no
suppress-whitespace=none
validation=none
enable-xinclude=yes
enable-xsl=no
indent=none
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).
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.)
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.
Corey reported four XSS vulnerabilities in B2Evo, with instructions for patching. Did the patches.
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.
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
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.
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.)
- 1
- 2