February 23, 2005
Why Doesn't Case Have A Central CMS?
Last year, the university switched over to a universal web site template. The directive, as I understand, came from "the very top." The intent of the move was so simple, yet brilliant (let's disregard what we think about the actual template (fixed width, etc)). Unfortunately, the task of porting old pages to the new design was left up to countless individuals in every department on campus (I think some, 1, 2, 3, etc still haven't received the message). As us programming-savy individuals know, porting static web sites to revised static sites is mundane. The professional internet is powered by dynamic content management systems. So why does Case not have a centralized content management system?
*NOTE* Why I started writing this article, I intended to focus specifically on the question posed in the title, however, I sidetracked a bit about ITS structure on campus.
Content management systems (CMS) come in all shapes in sizes. Some are free. Some cost $50,000! (For a good round-up, see CMS Matrix.) Many corporations have their own products, including IBM, Apple, and AOL. Some universities even contribute open source solutions. Case has the money. Case has the technology infrastructure. Why isn't there a central CMS?
From my own personal experience with different CMSs, it is apparent that each seems to serve a specific audience. Many of the open source programs you hear about often are targeted towards bloggers and community sites. They promote interaction between users and easy submission of data. Others are targeted towards presentation of data. The major problem with this later group is that many of these systems are dynamic-- they pull info from a database for every page request. Compiling every page from scratch for every request is a bit redundant for a presentation site, especially one receiving a lot of traffic.
Take Zope for example. Zope is an amazing product. It is extremely configurable and robust. It can do almost anything you want. So what is wrong with Zope? IT IS WRITTEN IN PYTHON!!!. Of all languages to use for web programming, Python is pretty much near the bottom of my list for one sole reason: it is SLOW. Take the EECS Site for an example. See how long it takes for every single page request? Try loading a page at 3 AM when Zope's memory cache has been emptied by non-use. I once clocked it taking 6 seconds to load the front page! In defense of the EECS department, I am told the web server is running on very old hardware, so an upgrade would benefit matters greatly.
How do you approach this problem of being overloaded by dynamic content requests? You use the same method that this blog system uses: you use a dynamic backend to export static files. Whenever a page in the backend is changed, the files on the web server are updated.
Simple enough. So why doesn't Case have one? I'm not sure either.
What I do know is that creating a CMS to provide the service the university needs is well within the abilities of many individuals affiliated with the university, including myself. You ask: Greg, if you can do it, why haven't you? Well, the answer is I have. Last summer, I created a proof-of-concept CMS using PHP5. It was my first project using PHP5, yet the results are impressive. Even with purely dynamic requests, each page is rendered in about 0.02s, much better than most CMSs out there. Since this project was my first journey into the world of PHP5, the product is very amateurish and nowhere near complete. The admin interface is crude, but it gets the job done. It has nearly everything required to create a basic web site based off the Case template. Did I mention it can export the site to .html files? You can give it a spin here.
It has been a dream of mine to create my own "professional" CMS-- something comparable to Zope, but better. Herein lies a dilema: greed. There is a lot of money to be made from a good CMS. However, the nobility of releasing such a project as open source is enticing as well. I can give an example of both: At the University of Dayton, a few students got together to design a CMS. The result: LiquidMatric. We even have it on campus. An opposite example would be the person primarily responsible for the Jabber protocol. It is my understanding that one of the key developers of this project was offered a quite lucrative deal by HP to "finish" the product. In the end, both parties attained wealth and prominence, so which path is better?
I have drifed from my original question of why Case doesn't have a central CMS. I have no answers, but what I can say is that a central CMS for the university makes sense. Despite the mentality of the small IT "factions" at the university who love being independent of big brother (ITS) and independent from his services (CMS hopefully someday), central services work, at least with the caveat that they are designed properly and with extensibility in mind. Every IT camp at the university took its own unique approach to the migration. When the pioneers moved west, they took the Oregon Trail, they didn't each blaze a new trail. Although the lone road may be exciting and fulfilling, it is inefficient and thus impractical. The adventure seeking trailblazers should be the ones creating the path for others to follow. They pave the interstate; you and me drive on it and get to our destination faster.
The universal page template is intended to unify the visual presentation of the many components of the university. Isn't it about time that we unify the methods behind the presentation?
Trackback
You can ping this entry by using http://blog.case.edu/gps10/mt-tb.cgi/502 .
Comments
The problem with those few departments that are not brand compliant is not that they don't want to comply. It doesn't matter whether they want to or not... it should just happen. The problem is that the office with branding enforcement authority doesn't actually enforce the brand.
This is NOT a Kevin Adams thing. Kevin is not the Case Branding Police and has, to my knowledge, no interest in that role.
As for the no central CMS problem... that bee ain't gonna fly until someone gets stung by it. As it is, some departments have implemented their own CMS solutions, either off the shelf or homegrown as KSL did. I'm very impressed with Greg's CMS (SARGE) and hope sincerely that he manages to get it to market and make some serious cash from it. At any rate, the Case campus is big enough and diverse enough that a single CMS solution will probably not work. We're going to need a menu of at least 2 or 3 options from which departments can choose and which are managed centrally.
BTW, Greg, I got the following message:
"You must define a comment preview template."
when I hit the preview button for this.
Oh, I'd love to conform to the Case template. But you are correct...editing static files is a pain in the you know what. I already converted my department's site to the old template from a site that had no template whatsoever. That was a pain, and I had less than 100 pages. I wanted to wait until the new template came out before I made the conversion, but the "this template is a beta...a university approved template incorporating the new logo will be out in a few weeks" message on the web development website was up for multiple months and I couldn't wait any longer (I'm sure that was a hold up with the higher-ups, not the web development department). Now the site is over 200 files large. I did manage to break all the branding rules by inserting the new logo in the old template, but nobody's come to arrest me yet. Now that the new template validates with the W3C, when I do convert to the new template I'll want to clean up my code so that it validates with all the content...which will make the task even more time consuming. I simply make a much easier to manage site on my own server with php or whatever, but I really like having the site on the Aurora server (it seems more official), and the professors would not like if their personal page URL changes. The Aurora server allows a safe version of perl, but accessing databases does not seem to be a safe operation.
Alright...that's enough complaining. I guess I was mostly responding to Keith's assumption that people who are not using the new template do not want to use it. Later.
Greg, et al,
I think all of those who saw your CMS last summer were quite impressed with the effort, and it is my understanding that there are people in ITS working towards a central system to provide this functionality. As mentioned though there may not be a one-size fits all solution. The web needs of the greater Case community can be quite diverse. What I would envision would be opt-in tools that departments can use or not depending on their needs.
CMS would be especially useful for those departments that don't have maintainers well-versed in HTML. Of course no matter how the pages are created, it will still take manpower to not only provide the content, but to think about what that content should be.
While the tools of production are important, it is my wish that people also consider the richness of the content itself. Re-branding a site is not merely a matter of cutting and pasting the guts from old file A into new templated file B.
I realize I'm running off on a tangent from your original post, but this seemed like a good time to remind ourselves that the brand is more than a logo and a box of curved and straight lines. It's also the words and images that we produce to market our programs or disperse information.
When re-branding a site or building a new site it's important for us all to consider who we are trying to reach, and what we are trying to communicate. Do we have a marketing message? Do we want our visitors to do something such as donate money, apply for admission, read a certain book for class, attend a lecture, volunteer in the community? Do we want to disseminate information such as the hours the swimming pool is open, the deadline for returning books to the library, the location of a class? Do we want to impart knowledge such as the implications of the Michelson-Morley experiment, the reasons for teaching evolution in the classroom, or the history of photography?
Once we've defined the goals for a site, and created the content, then the template serves merely to frame the content and provide an intuitive navigational structure that supports these goals.
Regarding the actual building of the sites, I heartily endorse having additional tools. The more options the better.
And for Matthew, with your recently updated site, you may find that the process isn't as painful as you'd thought. I've found that with each iteration of a site it becomes easier, because each version has cleaner code with which to work. I launched a 400+ page site for alumni last winter. It was quite time-consuming because the prior version had been launched in 1999 and was rife with icky font codes. I also had to rethink content and organization. My new version used CSS for everything including layout. I was able to make the conversion to the templates this summer in a fraction of the time it took to do the previous version. And the next time I have to redo this or some other site--whether using regular html or a content management system--it should be even easier because the code is cleaner.
There is certainly no CMS that we can generalize to the point that it will work for all of Case's campus.
I say, each department/organization can choose which CMS fits them the best (no need for us to be fascists about it and dictate, "This is the ONE TRUE CMS that you must use or we will disallow you from posting on WWW!"). We open up WebDAV access using LDAP groupings for access control; and each department can have at it.
Actually, I should clarify that a bit as there are groups researching CMSs.
I wouldn't mind it if there was a CMS available that departments and organizations could use by default. But, way more important than offering up a CMS is WebDAV access that would enable departments and organziations to decide for themselves what to use.
Again, why should ITS dictate what CMS everyone should use?
Hi.
Sorry, but what you may have heard about Python is false. Python is not slow relative to say, Perl or PHP. Perl, for example, only really beats Python in speed in regular expressions (gee, I wonder why?). Python is not slow. Zope with Plone is slow. Not to mention that Dictate, the server it's running on, is completely incapable. I'm a developer for the EECS site and trust me, Python is the last of our problems -- it's all the server.
Python is at the TOP of my list for web development. Perl? PLEASE. Talk about obsolete. When developing complex web applications the last thing on my mind is easily compiling regular expressions.
PHP? It may be easy to pick up, but it too is a design nightmare. It's like the C of the web! No organization, and not well-suited to reach out of its original design context of in-page code and templating. Separation of design, code and content is what we're after, right? Yet PHP promotes non-display-oriented code mixed in with template markup!
Python is at the TOP of my list for web development. Perl? PLEASE. Talk about obsolete... PHP? It may be easy to pick up, but it too is a design nightmare. It's like the C of the web!
Python. C'mon, man, Python is sooooooo 2003. Get with it, Ruby is where it's at!
It seems my post has spawned a lot of comments. I'd like to clarify some points I didn't emphasize too greatly:
1) Should Case have a mandatory CMS? NO: Everyone has his or her own special needs. No CMS can provide the functionality that everybody needs.
2) Then what did you mean? I simply meant that I think it would be beneficial if central IT offered a product/solution that would make it easy and efficient to develop web sites. A simple web script to take content, render it in the Case template, and output to static files is more than sufficient for most sites. This holds especially true for those who won't need the advanced functionality that a it-can-do-it-all-(almost) CMS provides.
3) Python vs PHP vs Perl vs The World: Who Wins?
This sounds like the title of a future blog entry. The topic has been discussed at length all over the web, especially in newsgroups. I believe that in the end it pretty much comes down to personal preference. There are pros and cons of each. However, I will say that PHP 5 is my language of choice. Brian, what you said about PHP with regard to separation of code is technically correct. However, much like Python which doesn't have many web-handy tools in its default install (correct me if I am wrong on this, but it is because Python was never designed as a web scripting language), PHP has extensions for handling content presentation. The best one, Smarty is an amazing template engine. It does everything I could ever wish for and more. For the USG project, we use Smarty extensively. Our presentation designer codes up the design, tells us what variables we need to export, and it is done.
I wasn't too fond of PHP before version 5 because I thought it was a relatively immature language (mainly because of the lack of OO). Since the release of version 5, I have been hooked. 5.1, which last I heard is to go beta on March 1st, features a built-in universal database abstraction layer, which will hopefully be a lot faster than ADODB, which is what I currently use.
Bottom line: PHP is designed with web scripting in mind. It is no wonder so many people choose it (1, 2, 3) over Python.
I'll be glad to take place in a later debate. My intention was to post a lot more about Python on my blog when it started. It seems that you're our PHP guru, Jeremy's the Perl hacker, and I'm the Python wizard. Hopefully we can get some nice discussion going on around here.
But with respect to one of your points above: you say that Python doesn't include web-handy stuff in the default install, but from the Smarty web site you link to it doesn't seem like Smart is in the 'default' install of PHP either?
There are web-handy tools in the default Python install (the cgi module can be used to create any web application, but I wouldn't call it a framework by any means). But to understand why it doesn't include, say, a templating mechanism by default is due to the rules behind Python's "batteries included" philosophy: in order to become part of the standard library, a module has to be regarded as THE best in its field. For templating purposes, and even entire web frameworks in general, there are more than a dozen mature, widespread, and quite different Python modules for each. They're all quite good, and it's pretty hard to get consistent recommendations about which to use, because everyone has their own preference. It's pretty much for this reason only that more web-scripting stuff isn't included in the Python core.
And just a quick, general quip: just because C is the most widespread language in the world doesn't make me want to write it.
Also, I'm almost positive that mod_python gives the developer a LOT more control than PHP, so it can be pretty confusing to some. You can control any aspect of the Apache process with it. But if you want Python to act like PHP (code within markup and such), then mod_python also lets you do that--it's just not like that by default.
I think it would be beneficial if central IT offered a product/solution that would make it easy and efficient to develop web sites. A simple web script to take content, render it in the Case template, and output to static files is more than sufficient for most sites.
Uhhh.... you mean.... uhhh... the blog server?
http://blog.case.edu/its-news
http://blog.case.edu/case-news
http://blog.case.edu/orgs/cgreal
http://blog.case.edu/colleges/ArtSci
I believe that in the end it pretty much comes down to personal preference.
Now, that's just crazy talk. You should always listen when one person tells you that their favorite programming language is better than yours. Always. With that in mind, LISP RULES!
Jeremy's the Perl hacker
I've actually done far more PHP than I have Perl.
I've actually done far more PHP than I have Perl.
Sorry. I just remember you going so far as to say that since many of Case's web services use Perl, that it would be a good idea for Case to directly fund the Perl Foundation (or something similar). At that point I pretty much labeled you a zealot.
Regardless, I've probably done far more C++ than Python, but that doesn't really have much to do with my *preference*, does it?
dog sex toon dog sex videos girls
The judge who put coded messages in his Da Vinci Code plagiarism trial ruling has written another...
The Red Hot Chili Peppers are leading the way at this years MTV Europe music awards with four nominations...
The Red Hot Chili Peppers are leading the way at this years MTV Europe music awards with four nominations...
dbzcapx dyuv wbyq ihtjeq thdkbycj vyto apezjxs
Hi very nice blog
i reed this blog
My[url=peircing.casinogamefactory.com]piercing[/url] fetish first started in 5th grade when I saw my friend get her belly button [url=body-peircing.kisswings.com]pierced[/url]. It was really cool and I wanted one right away. I asked my parents, but I was like ten, so obviously the answer was a definite no. When I was in seventh grade I started nagging and nagging them. No no no no no. Only if I got all A's and B's was I allowed. I promised my mom that I would show her some good grades, then she would let me get it [url=nipple-peircing.eticketsontime.com]pierced[/url] and if I didn't keep my grades up I'd take it out. Sounds good. In 8th grade, I wrote up a contract saying I would keep my grades up, and keep my room clean and what not. I don't get the best grades[url=peircings.casinogamefactory.com],[/url] but my room usually stays clean. Most of the rules that I made for my belly button ring I didn't keep[url=body-peircings.casinogamefactory.com],[/url] but my mom thinks it's cute so she's not going to make
me take it out.
paigeczd cbxfq kgel hayvsl gcxhafzod nbrmiedu lpugftqmk
Hi, nica site!
> [url=So many spammers here :(
][/url]
Hi, nica site!
> [url=So many spammers here :(
][/url]