Archive for February, 2007
* Che4Lib
Posted on February 21st, 2007 by Ross. Filed under About me, code4lib2007.
While the Lucene Preconference is starting, Selena and I will be working our way towards the airport to catch our flight to Guatemala City.
As Karen Schneider delivers her opening keynote, we’ll be at the U.S. Embassy in Guatemala getting Isaac Mario Singer-Seymour’s passport signed.
During the slot that I was supposed to speak about the Ümlaut and afterwards when the Metalib pilot group is picking Roy Tennant’s brain, Selena and I will be on our way back home, with our son.
There couldn’t be a better reason to miss Code4Lib. Have fun.
* Pay no attention to the man behind the curtain
Posted on February 18th, 2007 by Ross. Filed under ruby.
* YYZ
Posted on February 13th, 2007 by Ross. Filed under Toronto, libraries, presentations.
At the beginning of the month, I gave two presentations at the Ontario Library Association’s SuperConference. I had a good time. My first time to Toronto and it snowed. Although, with all due respect, Mr. Lee, YYZ totally sucked.
My presentations were:
Librarian’s Lib: Taking control of what’s ours
The Communicat: contribute to the collective collection, comrade
Some pictures I took while there
* To build or to modify
Posted on February 11th, 2007 by Ross. Filed under cms, coding, intranet.
I readily admit that I have a bit of a NIH problem. A lot of this is laziness (hey, it’s a lot of work to figure out how somebody’s code works) coupled with the fact that I write fast married to the dilemma of if I modify this program to meet our needs, what happens when we need to upgrade?
One place where I’ve really struggled with this is surrounding intranets. At Emory I built myStaffWeb specifically to handle situations like:
- Employee needs to submit timesheet.
- Timesheet needs to go to employee’s supervisor.
- If either of these tasks are late, emails need to be sent to the guilty party.
- The supervisor either approves the timesheet (sending it to HR) or rejects it (sending it back to the employee).
Workflows like this are pretty commonplace for intranet-y tasks. The problem is that most off the shelf portal systems can’t handle them. Drupal, Joomla/Mambo, the Nukes all have horizontally based roles (members, editors, admins, etc.), which work fine for ‘content’ based sites, but lacks the granularity needed for ‘doing business’.
I built something similar to myStaffWeb when I got to Tech to handle other, similar tasks (set GALILEO password, upload EAD finding aid, manage subject guides, etc.). For ‘custom’ type modules, such a system works well; I am able to build a new module quickly and based on user, group and role models set up workflows pretty easily.
The problem is that as staff want to use more commonplace web tools (wikis, blogs, simple web pages, file management), it gets more and more complicated to keep up. The ability to draw from a large development community to help make your knowledgebase (say) or FAQ makes life a lot easier (and allows you to spend time working on things that help your public rather than your staff).
There are, in fact, some portal/community CMSes that have both horizontal and vertical permissions (’manager’ of this group), such as Plone and TikiWiki, so I had held out hope they would work for us.
TikiWiki eliminated itself pretty quickly, however. It’s got an interface that only an engineer could love, is painfully slow, and uses the Galaxia workflow engine. I’m sure Galaxia is powerful and all, but it’s horribly over engineered for the simple workflows I need. Besides, most of our workflows are repetitive: employee -> supervisor -> task manager, to have to build that workflow in Galaxia every time for every app seems overkill.
Plone seemed perfect in every way. Our sysadmin installed it for the library collaboration committee to experiment with and it appeared to solve our problems. Groups and roles within groups, blogs, wikis, content. It looked like it could handle our intranet and our public website. Assuming we committed to it.
With every intranet I’ve developed, I have always looked at Zope. It seems to hold so much promise in this arena, but somehow, every time, something horrible goes awry. Zope (and therefore Plone) is an unholy beast and one of its biggest problems is that when something goes wrong, because it’s so alien (it uses its own webserver, its own database engine, it uses python in its own special way) there’s no body of knowledge to rely on to get you out of trouble. Nothing you’ve learned by using apache for the last 9 years helps you debug a Zope server problem. There may be ways to access the ZODB directly, but it’s not like being able to open phpMyAdmin and fixing a field value. Everytime I’ve dabbled with Zope, something bad has happened and I haven’t been able to fix it. And that sticks with you.
We had one of those problems early on with Plone (the sysadmin ‘accidentally locked the keys in the car’, as I put it — a bad incompatibility with the Zope control panel and Plone’s CAS plugin), but we got around it, documented it, made a policy for plugins and forged ahead. Despite my reservations about Zope, I suggested we commit to using Plone for the intranet and the public web. I didn’t see any point in trying to maintain two CMS systems if Plone was going to work for the intranet.
And then we found Plone’s fatal flaw. While working on a wiki to document how to troubleshoot the Umlaut while I was in Toronto, something happened and somehow I saved a much earlier revision of my page (losing about half my work). Since I had been saving my edits, I assumed I could just rollback to a previous save, but you know what happens when you assume. To my (and the sysadmin’s) horror, we realized that Plone has no concept of versioning.
There are Plone products that deal with this, but none have ’stable’ releases and, besides, depending on a product for such core functionality seems risky. When and if versioning is integrated into Plone core, will your product be compatible? Will you get stuck behind if a new version of Plone comes out and your particular product doesn’t work with it? This gaping hole in functionality (coupled with learning curve inherent in Plone to begin with) basically brought our Plone experiment to a grinding halt.
So last week I started redesigning the existing intranet. I’ve migrated it to rails, and yet again I’m amazed at how quickly I can get core functionality running. Ruby/Rails is so much better suited to object model in our intranet than PHP was it makes this tremendously easier. Rather than worry about building wikis and blogs and whatnot, we’re just using off the shelf products that are remotely editable. For wikis, we’re using OddMuse, for blogs we’re using WP-MU. This way, I only have to make clients in the intranet to access these remotely. In essence, the intranet aggregates services and manages permissions (this wiki is only available to the group or the user or to the library, etc.) and handles our specific needs, like timesheets and student employment applications and the like.
So basically we’re finding a compromise between invented here and there. Just in time for me to drop this project like a hot rock for a new position
(more on that later).
* Excuses, Excuses
Posted on February 11th, 2007 by Ross. Filed under About me, Guatemala, code4lib2007.
Given our exciting news about Che, I will not be attending Code4Lib 2007. It’s unclear whether or not we’ll be in Guatemala during the actual conference or just returned (I suppose there’s an outside chance that we won’t have gone, yet, but let’s not think about that), but I might as well give up my slot since we have a waiting list and my mind certainly wouldn’t be on it at any rate.
Still, it was a little sad to see how quickly I was replaced. That’s right, Singer, your 15 minutes are looking pretty 15 minutes ago.
Pages:
Categories:
- About me
- Access 2005
- Access 2006
- activerdf
- American History
- American Tackle Football — Collegiate
- American Tackle Football — Professional
- archives
- Atlanta vs. elsewhere
- Che
- cms
- code4lib2006
- code4lib2007
- code4libcon2008
- coding
- COinS
- Community building
- DSpace
- Eulogy
- experiment
- geeks
- Guatemala
- GV1202 .F34
- intranet
- jangle
- libraries
- Master of Library Science
- music
- OAI
- OpenURL
- philosophizing
- php
- platform
- Polishing the Turd
- politics
- presentations
- Python
- Real estate classifieds
- ruby
- Ruby on Rails
- sakai
- SRU
- Super Heroes
- Talis
- Toronto
- two-point-oh-no
- umlaut
- unapi
- Uncategorized
- xslt
Archives:
- November 2008
- September 2008
- July 2008
- April 2008
- March 2008
- January 2008
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- February 2005
