Tools


We are planning to establish a mechanism that provides a central location for participants to exchange data files - and thus meet the particular need of establishing a procedure to submit data files into a community database. In the past we have done this by providing a group of users individual logins and passwords as well as group privileges to log-on to ftp to the central computer. This works well for those who are somewhat familiar with unix but introduces barriers for those unfamiliar with unix commands, shared spaces, and the concept of group file privileges.

Four alternatives to exchanging files include: 1) ftp, 2) subversion, 3) remote mount, and 4) WebDAV. The scope of the project pervasive availability would be: a) involves fairly small number of people (PAL 10; CCE 25); b) involves some remote geographic locations such as New York or Oregon; and c) includes desire to ensure some security through defined groups/accounts.

First thought is that subversion is not highly transparent for most users. We haven’t yet discussed the security arrangements for group use of ftp. We have, however, successfully used the remote mount option as a file exchange mechanism in some of our early iOcean supported collaborative work, ie with PAL and CCE projects. This approach makes use of three protocols with a fair amount of network overhead (afp for mac; smb for pc; nfs for unix).

Webdav is an approach JRW has been investigating through the Apple’s .mac endeavor with iDisk (remote mounts). WebDAV is the open source underlying environment that supports desktop disk mounts. In addition, it uses a single protocol (http) across all platforms and can likely be part of existing authentication schemes (she says hopefully). Webdav does not allow for versioning, but to me this seems a minor issue as I’m comfortable with engaging the user in naming their own files rather through an automated mechanism. This technology is being used by macworld’s .mac file sharing service which makes it a bit of a mystery as to why we haven’t heard about more groups locally or in our communities making use of it.

iDisk creates an icon on your desktop, allowing you to drag and drop files just as with any other type of hard drive. Xdrive and MySpace have similar features but both these technologies are available only to PC.

From a community point of view, the WebDAV (http://www.webdav.org) defines itself as “WebDAV stands for “Web-based Distributed Authoring and Versioning”. It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers.” Dav is more general than an API, it is a protocol, an extention of the http protocol. Subversion uses the WebDAV protocol and has a WebDAV interface.

Articles:
http://ftp.ics.uci.edu/pub/ietf/webdav/intro/webdav_intro.pdf
http://www.cs.ucsc.edu/~ejw/papers/kim_oss04.pdf

Last night I upgraded this blog to WordPress 2.0, which was released at the end of last year. Though it contains some nice improvements, particularly in the user/admin interface, the performance was less than spectacular. The pages took much longer to load; I suspected that some of the plugins may be at fault. Sure enough, upon disabling all plugins, the site ran faster. However, since we rely on some of the plugin functionality, I decided to downgrade the site back to version 1.5.2.

It may be best to wait a few months before attempting to upgrade again. This will allow time for other developers to create plugins that work better with WordPress 2.0.

The main plugin at fault was “Extended Live Archives”, which provides the cool AJAX viewer for browsing through posts on the Archives page.

A question now looms whether we should upgrade the CCE site to WordPress 2.0. I figure that since it’s primary use is as a CMS and not a blog, it uses less plugins and thus performance may not be hindered. Additionally, I have been porting the Palmer site into WordPress 2.0, and the site seems to run OK… no worse than the CCE site runs on WordPress 1.5.2.

Read this article more about what’s new in WordPress 2.0.

A few notes from my experiences already:

  • The admin interface is more colorful and uses AJAX in some places for ease of usability, most notably when Deleting an item, and also receiving a Confirmation Flash Notice at the top of the page after having successfully completed some action.
  • It is much easier to upload images and files to a post. The Write Post page contains an embedded file uploaded/browser for inserting images and files directly into your posts. All uploaded files (by default) are stored and organized in /wp-content/uploads/(year)/(month)/ where year and month reflect the current date of the upload.
  • In FIREFOX and IE (I assume), there is a Rich Text Editor available when writing posts. This is particularly useful for those with little or no html knowledge, yet are comfortable with a WYSIWYG (What you see is what you get… e.g. Microsoft Word). editing environment. SAFARI on the Mac still lacks some Javascript functionality, and thus does not have the Rich Text Editor available. This however is not all that bad…
  • …Using the Rich Text Editor screws up Relative Links. The Rich Text Editor detects relative links (if you edit directly in html mode) and will convert them to absolute links… incorrectly (it converts the link using the wrong query path). Safari is advantageous because it allows you to save posts with relative links intact. This is extremely noteworthy, particularly for the CCE and Palmer sites which have a lot of static pages that may link to each other. If we ever move a site to a new location or domain, relative links will keep working while absolute links will break….
  • Thus, as I have been working on porting the Palmer site, I’ve been using a hybrid approach. I use Firefox to do the bulk of the admin work since it contains the Rich Text Editor. However, I use Safari whenever I need to create a relative link as part of a Page’s content. It’s kind of a pain, but it gives the best of both worlds. Hopefully the guys at WordPress will fix this Rich Text Editor (bug, feature, etc… which is it?) on a later version.

I hope this wasn’t too confusing.

Overall I think WordPress 2.0 is a nice improvement and is fairly intuitive, but it definitely has its kinks. Knowing and discovering the tricks like those above will help. Since the OI site is primarily used as a blog and relies on some cool plugins, I thnk keeping it at version 1.5.2 is okay for now. However, the Palmer site runs fine on WordPress 2.0, so there is no reason to revert it back. The CCE site should probably be upgraded to 2.0 as well.

FYI, the link to the CCE and Palmer WordPress development sites:
http://ccelter-dev.ucsd.edu/wordpress
http://pallter-dev.ucsd.edu/wordpress

Quick note: All the sites are using the same theme, each one tweaked differently. I added a dark-blueish background to this site to help the pages stand out better.

An exchange of emails with the UCSD library staff has given me some new insight into adapting UCSD’s Google search appliance to our web sites. The ‘proxystylesheet’ parameter can be set to the URL of a XSL file that is then used to style the appliance’s XML output. The search function on the UCSD Libraries page uses the following XSL file:

http://gort.ucsd.edu/itd/libraries_stylesheet.xsl

I haven’t tried developing an XSL file for the CCE search yet. I’m actually not sure if it is a better approach than the PHP wrapper approach I described in an earlier entry. The XSL file would have to be maintained separately from the CSS files that define our sites’ layout and appearance. This means that any time we made a change to the look and feel of a site, we’d have to duplicate that change in the XSL file. If anyone else has any thoughts on the pros and cons of the different approaches, I’d be interested to hear them.

I installed DokuWiki on iOcean a couple days ago. For those of you who weren’t there, DokuWiki is a code/project documenting tool that was demoed at last week’s WebHeads meeting. I haven’t had much chance to play around with it, but you’re all welcome to go take a look and try it out. The URL is:

http://oceaninformatics.ucsd.edu/dokuwiki/doku.php

There are no access restrictions in place right now, so don’t post any code that contains sensitive information (e.g. MySQL passwords). Also, you may want to look over the DokuWiki syntax if you want to try adding an entry.

The ongoing effort to bring Google Search to the OI sites has made some progress recently. While it turns out that we can’t register sub-domains of ucsd.edu for Google Public Service Search, we can tap in to UCSD’s Google Search Appliance. There are two ways we can do this:

1) We could create a custom front end, called a ‘client’, that would get registered with the search appliance. We could then create forms that queried the search appliance and requested that the results be displayed in a specific client. Hidden fields in the form could restrict the searches to one or more sub-domains.

2) We could use a PHP script as a proxy to send queries to the search appliance, again restricting searching to one or more sub-domains. The script would then get the results back as XML, parse them, and redisplay them in any format we choose.

So far, I’m not even sure if the first option is offered by UCSD - and even if it is, the second option seems to offer more autonomy and flexibility. So, I’ve started work on a PHP script that implements option two. Using the PHP XML parser functions and the Google search protocol, it’s been relatively painless to get a simple search interface up and running. My first experiment has been a simple test search page on the CCE site (I’m still working on the script, and I make no assurances that this page will be working when you click the link).

So what comes next? The search interface needs more polishing, especially if we want to implement feature similar to Google’s advanced search page. Also, now that we’re implementing searches, some issues have come to the forefront. For example, we need to consider page titles - right now, most of the pages on a given site have the same title, which makes search results less informative (thanks, Shaun, for pointing this out). Our current design templates weren’t created with a search bar in mind, so we’ll need to work this element in somehow. We might also want to start adding keyword metadata to our pages for more meaningful search results. I’m sure there are other issues to be addressed as well - any thoughts?

I just read about a new web-based collaborative writing tool available at:

http://www.writely.com

Collaboration begins when you enter a document online (similar to a blog post) at the writely.com website. You can also upload Word, HTML, OpenOffice, plain text or image files as well. Once you’re ready to share the document, you enter the email address of those you wish to collaborate with and they will receive a notice with the URL and password to use for logging into the collaboration. The site handles syncing changes made by each collaborator as well as maintains version control.

When the document is ready you can download it into Word or OpenOffice on your own machine for printing etc. and/or you can post it to your blog for community viewing. Writely only supports Firefox and Mozilla on the Mac, for the moment. The service is currently free. Not sure what their business model is but it looks really new and I imagine that they’re still trying to figure it out.

For more info, visit their site. There you’ll find a tutorial and FAQ. Worth a look.

in working with trasect figures in Matlab7.1 (R14) on my mac over the past few days, i have discovered a few secrets:

- Matlab has a canned feature for plotting with two Y-axis vairables (plotyy.m), but leaves double X-axis plotting up to the user. the way to do this is to create one figure, and then overlay a second set of axes on top of the original by ‘get’ting the axes ‘Position’ from the original set and using that to set the ‘Position’ for the second. when creating dual x-axis figures, there are a few things to consider:
1. overlapping tickmarks - if you create two sets of axes, it is likely because you are trying to plot two seperate sets of variables with different scales. This means dual tick-marks which may make your figure overly confusing. Possible solutions:
- use set(gca,’TickDir’,'out’) on one axes set to differentiate from the inward tick marks.
- do not use tick marks (see the next ’secret’ for more info)
- turn the bounding box off to remove ticks from secondary x and y axes, while leaving the primary tickmarks. set(gca,’Box’,'off’)
2. overlapping axes - only certain visualization fuctions seem to be compatible with xx figures. for example, adding a bar or plot is not possible as far as i can tell, nor are multiple levels to one of the axes (ie. no ‘hold on’ allowed!). much trial and error seems necessary! note: put more complicated figure (ie. contour, pcolor) on the bottom layer.
3. remember to turn off the background color in the overlapped axes, the default is white which will obscure the original figure. set(gca,’Color’,'none’)
4. set the second x-axis to the top by using the ‘XAxisLocation’ setting ‘top’.

- tick marks are fun! there are a few things the books don’t tell you:
1. while you CAN have tickmarks without labels, you CANNOT label intervals without tickmarks! you can get around this by hint #2.
2. you can change the tick mark length! this hidden value is not in any book or help menu that i have found, but it is invaluable for removing tick marks but leaving the labels. i found it using the ‘inspector’ feature under the plot tools. the command is set(gca,’TickLength’,[a b]) where a and b are mystery values. my experimentation shows that a must be a positive value greater than zero (ie. 0.001), or the tick marks will not appear at all, and that b seems linked to the actual length, with 0.4 being a common starting value, 5 being very very long! using [0 0.01] will remove the ticks from the figure. using this command in combination with ‘Box’,'off’ will leave the tick marks on your screen-display figure looking seperated from the axis, but when you export this problem disappears in the .tif version.
3. another way to include labels without the tick marks is to use the text function which still works well in double axes.

- the matlab defaults for image quality are very poor. suggestions are as follows:
1. when exporting, create a .tif with the openGL renderer and 150dpi. this will give a full-page figure of around 2Mb that looks nice. 300dpi is nicer, but the file size starts to get out of hand.
2. printing from the screen figure works well, but for some reason the pageSetup options are greyed out on the printMenu. remember to set your pageSetup Lines and Axes to ‘Color’ before printing!

- i have not yet found a way to make the colorbar logrithmic. i belive this is possible by changing the axes defaults for the colorbar (set bar=colorbar to get the handle for the axes!) but i do not know if it will translate the axes change to the color values. another possibility is to create a new colormap with log intervals for color. i will post more when i have it figured out!

Tomorrow is another WebHeads meeting, and I’ve been asked to talk some about Content Management Systems and our experiences with them. At last month’s meeting, Edgar talked about using Subversion for versioning web-applications, which I recapped with the blog post Using Subversion for Web Projects. For this post, I plan to outline some generalized notes about the different CMS’s we’ve used to help have a more focused talk for tomorrow.

This post is not intended to be read as a conventional post. I am updating this post live:

Content Management System

Google define: content management system

System for the creation, modification, archiving and removal of information resources from an organised repository. Includes tools for publishing, format management, revision control, indexing, search and retrieval.
members.optusnet.com.au/~webindexing/Webbook2Ed/glossary.htm

In the context of a Web site a CMS is a collection of tools designed to allow the creation, modification organisation and removal of information from a Web site. It is common for a CMS to require users to have no knowledge of HTML in order to create new Web pages.
www.bized.ac.uk/educators/16-19/business/marketing/lesson/sup_glossary.htm

Resources

Reviews

PostNuke

OI PostNuke

Mambo

OI Mambo

Xoops

Interoperability Xoops

Drupal

WordPress is an open source weblogging platform. It’s the platform I use to manage this blog and the platform - with some modifications - that Global Voices runs on. It has a reputation for being very user friendly, but for having some underlying architectural problems that make it hard to scale. Drupal is an open source multi-purpose content management system designed for the support of complex websites with multiple authors. It has a reputation for being ludicriously flexible, ungodly powerful and far too complex for mere mortals to use.
http://drupal.org/node/29364

OI Drupal

MediaWiki

OI MediaWiki

WordPress

OI WordPress — this site!

I’ve upgraded ImageMagick on iOcean to the latest release, 6.2.5. ImageMagick is a set of libraries for creating, manipulating, and converting images. There are some built-in command line tools that interface with these libraries, as well as interfaces for many common programming languages. In the process of installing ImageMagick I’ve also updated the jpeg and png libraries on iOcean. Additionally, I’ve installed the Image-Magick-Thumbnail module for Perl (the basic interface for Perl, PerlMagick, came bundled with the ImageMagick install). I’ll be installing a PHP interface in the near future - there are a few out there and I’m not sure yet which one I’ll be installing.

The reason I went through the trouble of installing these software packages is so that I could write an image gallery generator script. The last few galleries I’ve put up have been more time consuming than they really need to be, especially creating thumbnails for each image, so I’m going to write a helper Perl script. I’m curious to hear if anyone else has any other uses for scripted image manipulation.

This one threw me off a bit. For a program that’s highly advanced in a plethora of categories, WordPress has no native support for detecting daylight savings time. Fortunately, there’s a plugin available (called Time Zones) that adds this (usually already added and) basic functionality.

WordPress’s lack of this feature became apparent after Mason’s previous post. Both his post and my first comment to his post where dated an hour into the future. We have since corrected the post times and installed the Time Zones plugin, so now all future posts and comments will contain the proper timestamp.

In my opinion, it is not a good sign to rely on peripheral plugins for adding basic functionality to a program. Plugins should add extraneous and “luxury” functionality. Basic functionality should already exist in the core of the software. Hopefully the WordPress team can fix this in future releases. I guess this is a good reminder that nothing is perfect.

This post time should be around 4:30pm.

« Previous PageNext Page »