Assuming my brain is still functioning on a level that facilitates higher math (e.g. addition), I have currently not been to bed in thirty-five hours (thirty-six by the time I finished this). So…take that in to account if this lacks any discernible level of c….co…coherency. I wish I could say that I was pretending there, and that I did know that word from the start. I did not. My brain is being fueled only by Coke and sushi at the moment.
Travel was long. Pretty self explanatory.
I did get all checked in to the hotel in time to make it to the pre-conference training sessions though. The first one dealt with handling the reporting mechanism in dotCMS. It’s a neat deal, as they have incorporated the Jasper Reports system as the driving force behind report output. What this allows you to do is download iReports and craft custom reports based on any data in the database that you want to. You can take it about as far as you are able to based on the permissions to the database you have. That might be duplicating Google Analytics like reports, user tracking metrics, or any combination thereof. The framework allows you to call and compile any data in the database you like, and input parameters such as dates or titles as control mechanisms. And we aren’t just talking reports like the top ten pages for a site. You could do the top ten pages visited by the top fifty most frequent users between January and July. Through their use of the Jasper framework, you aren’t limited by dotCMS’s code to get the information you want. I’d be lying if I said it all made sense. The concept is simple, but I could easily spend weeks learning the intricacies of iReport. They did say that the 1.6 release of dotCMS should come with a few basic reports installed, so you could use them to see how to structure more custom ones.
The second session dealt with the built in form handling. There is a document available which discusses most of the ins and outs of using it, and this was pretty well contained within the scope of that guide. Most CMS (Content Management System)’s come with some level of form handling these days. There’s some room for improvement here, such as the fact that the only access control resides at the portlet level. If someone is granted access to the web forms portlet, they can see results of any form that you have created. It’s nice since the form handler is built in and just works as a feature, but you must keep in mind it will still require you to write the code for the form, and set up any logical branching or such that needs to take place as it is filled out. And because of how the data is stored and extracted, I would be concerned about the ability to poison data entered into a form. I’m not saying it can happen, but just that I see a potential for it. Hopefully they’ll add on some kind of GUI front end that end users could use to build forms, that will be very helpful since at the moment you really need the forms to be made by someone familiar with how the handler works. But as far as I am concerned, forms will be a headache no matter how good your tools are. End users will always find a way to break or otherwise screw them up, heh.
I missed out on the end user training session and updating from SVN session due to having not mastered being in two places at once. I apologize. The guys have been really great though, and in just an afternoon I’ve gotten a ton of great info. The developers and programmers for dotCMS are all very great people to work with, and they have been happy to share ideas and insight into things, which is nice. When was the last time you met someone deeply involved with actually making Drupal or Wordpress? Here, the developers are both names and faces. The same folks responding on the mailing list and helping in JIRA are the ones going out to eat with you.
I’ll be back with more info as things continue, and after I get some much, much, much needed sleep.
What follows is a slightly re-edited (for clarity) version of my thoughts on using Adobe Contribute to run a site. It was originally posted to the uwebd mailing list during a discussion of different CMS (Content Management System) options that are out there. This was in response to a question directed to me regarding what I considered a “modern website” with respect to Adobe Contribute.
Why isn’t Contribute equipped to handle large scale (~10,000+ pages) sites? Contribute doesn’t really have the tools to do anything with regards to content reuse across a site. So as a result, there’s no way to develop interactivity (well, really, you can’t develop anything with it, it’s not a developer tool). You can also forget about getting fancy by integrating things like RSS feeds, or dynamic content in any useful ways (consider, Department X wants a list of their courses for the semester, if they are copy/pasting, there’s no way to control that content once they have plugged it in, which hurts when they totally forget about it the next semester). Contribute is best at static content, on static pages. One page at a time. The newest version (CS3) has done marginally better, in that you can at least paste HTML source code now, but the actual audience that Contribute is aimed at won’t really find that useful. If they knew and understood HTML well, they’d be using Dreamweaver, or at least NVU or something. The crazy part is how good it looks on paper, that idea of simple content management. The reality isn’t that good, especially for developers who must then deal with all the deadwood Contribute leaves behind as things get updated, removed, etc (which is substantial). And don’t forget any template changes you have to make, which would have to be filtered into every file, which is very time consuming (we use SSI (Server Side Include) templates to help stave that issue off, but then that has also caused certain bugs preventing people from creating things like bulleted lists. Craziest thing I’ve ever seen).
I am of the mindset that Contribute has lost its market. It was a good tool five years ago. The game has changed a lot in that time though. A good CMS does everything that Contribute can do with no more of an end-user learning curve, but with the added bonus of being flexible for use with the better power users you serve. Contribute doesn’t have any room to scale up that way. Power users get frustrated in it, and basic users just get lost. The key is that a basic user is a basic user. Period. No matter how simple the software seems on paper, you still have to train them before they can use it, so you might as well give them a tool that not only does things easily, but does them right. For instance, workflow is a joke with Contribute, and as a result page management becomes nearly impossible (and in turn confusing for basic users). There is no review mechanism at all, so content can quickly become outdated and never addressed down the road. We have departments that have copied information from other parts of the site that is out of date by years. This is because they haven’t had the tools to do it correctly in the past.
Like I said, Contribute is designed to do one thing very well, edit static content on static pages. If that is all you want, go nuts, but try anything beyond that and it’s just a bad tool for the job. And in today’s web, a “modern site” is one that generally does not rely on static content this way. Moreover, a “modern site” is one that also provides current, accurate, fresh data. If you have no ability to keep up on your content in some way, you are setting yourself up for failure. Anyone managing a large site knows that you can’t rely on the editors to simply take it upon themselves to review content (assuming that’s not their primary job). People rely on web sites now, it’s one of their first stops when they want information on something. If they lose faith in the site as a tool to retrieve accurate information on the subject they want, then you lose a customer. The crazy, lock-me-up-I’m-going-cuckoo goal of a “modern website” is therefore to be omniscient in regards to their audience. You must have a current and correct answer to every question your visitors can and will ask. Totally impossible, I know, but it’s what the audience expects, and there are a lot of ways we can certainly fake it with current web technologies. I don’t feel Contribute is up to that kind of job (not by a long shot).
(Caveat: this is all based on my personal experience in our environment with ~70 Contribute users. We do not run the Contribute Publishing Server. No doubt others might have more positive opinions.)
So, today I wrote the dirtiest function I have ever written in PHP. I typed more profanity at once than I think I ever have in the past. As part of a new AJAX (Asynchronous Javascript And XML) live search query displayer I wrote for our Google Mini, I had to do some filtering to make sure naughty phrases wouldn’t show up. This is a pretty straightforward script you could incorporate into different applications, like a shoutbox, or comment form.
Alternatively, you could swap in preg_replace() or eregi_replace() instead of preg_match() and censor phrases that way. In this example, I use preg_match() just to test the query, and if the filter matched, I excluded the query from display entirely. I have this set to match anything that occurs in a query, so if the word “butt” was a filter term, it would catch “butts,” “butthole,” and “buttmunch.” That saved a lot of extra typing and filtering. Yes, it increases the likelihood of a false positive, but in this case we weren’t too concerned about an overly aggressive filter.
If the filter makes a match, it returns a boolean value of true. From there, do as you will. You could build in your own handler code as well (especially if you just wanted to censor individual words).
If you have a better idea or refinement, comment below and I can tweak this appropriately.
In the field of higher education, universities have a unique roll in terms of their web site and the services that we provide to visitors and users. Because the landscape of a university is so expansive, it can be easy to get caught up trying to showcase and provide for many different fields. Common features like e-mail are being augmented around the world at colleges and schools with things like e-portfolios, web storage space, blogs, photo galleries, e-learning software, and user communities. It is the latter that I am interested in focusing on today.
While doing web development, the important question to answer is: “What need are we fulfilling?” Often times we will rush head long into development to keep up with the work load that piles up. Until recently, this was a relatively safe procedure, because we often were trying to keep up with everything, so even if what we did wasn’t needed right then, by the time it was done, there would be a use for it. Now, however, that is changing. The big buzz word is “social media” or “Web 2.0.” Let me be perfectly straightforward with my dislike of the phrase Web 2.0. I think it is a misnomer that is dangerously abused, particularly by those not in web development.
It is this social web that is creating development and support challenges for colleges and universities. Many have tried to create their own social networks, or play off the popularity of others. So what’s the problem? Money is painfully finite. So are developer resources. By creating a network, you create a sort of implied agreement between yourself and the user that you will support that service for them. Worse than that, you create a service that people might use, that by comparison is still inferior to private sector counterparts. Eventually usage will drop off, and you are stuck supporting something that only a handful of people still use, but by that point you can’t justify simply scrapping it.
This creates a huge problem for college staff. How do you handle the constant complaints and feature requests? Remember, we are in the business of education and student support. By getting into these new areas, you are suddenly binding yourself to new areas of support and growth it fields that didn’t even exist five years ago. Why put that pressure on yourself? This is especially true in the face of tools being made available like Facebook’s API (Application Program Interface), which are there to make it easier to let them handle our needs. Facebook makes a lot of money. Certainly more than us. They have a huge support network in place. Dedicated people. By leveraging them in place of a homegrown solution, you solve a number of issues. First, growth into that area becomes a marketing issue, where it belongs. Web marketing staff can get in, set things up, and use the tools without any real need for us to step in. You don’t expend resources developing and supporting something that is, in essence, a fad. Ten years from now certain aspects of social media will survive, no doubt, but there will be a new big thing on the block. But if you decided to make your own tool, you are stuck playing catch up. Instead, you could have just dumped and moved on. At worst, you are out a little time that you spent working in the API, but that’s minor compared to the alternative.
Let us not forget the biggest issue. This is social media. It’s all about people, and people are around long before they ever get to us. In today’s world, it is the social norm to already have a MySpace, and a Facebook at the very least. The more adept kids are running Photobucket or Flickr, del.icio.us accounts, checking Technorati, blogging, and on, and on. Unless you can do a better job than these sites, why compete? If you could do better, you probably wouldn’t be working in higher ed in the first place, so why would we want to reinvent the wheel? If students come in already tooled up for their social networking skills, we are better off augmenting them in their domain, rather than trying to graft a new one on top of it. We see this a lot with .edu e-mail accounts, where the student gets it, and tends to use it grudgingly when they have no other choice. They are here for four years, and will get more e-mail addresses from ISPs and employers in the future, why should they hang on to this one? The same goes with social networking, since there isn’t anything we can effectively offer that would make sense for them to add one more thing they need to get on and check every day. Instead, get out and make a MySpace profile, and invite students to it. Go to them, and show that you are willing to work with them on their level. Then, once the fad dies off, just kill off the profile and move on. It was time well spent, and you can get focused on the next big thing.
There is a perception issue that associates with all this: embracing vs. chasing. First off, there is the community of people that will take any opportunity to criticize something a university does when it is the slightest bit deficient. Not to mention the ones that pipe up when things really are deficient. If you create a social networking portal that is weak and uninteresting, you will be reamed for it in the kids’ eyes. That also attaches a stigma to you that you just don’t “get it,” and are trying to play catch up with, and invest in, something that’s just a fad. That’s the “chasing.” On the other hand, by embracing and leveraging existing sites, you avoid that criticism. How can they come down on you for something everyone is using (unless you really screw it up)? You also gain credibility at the management level because of the time and money you’ll save, as well as your ability to stay with the trends. Instead of being a second rate copier, you suddenly are seen as an organization that understands how to actually use the tools that are out there. You get it. You see the power that others have made and can make it your own. In a single day you can have Facebook and MySpace profiles, in a week networks are growing, you can be reaching people through YouTube, and you can be making impressions on kids in a fraction of the time had you tried to redevelop similar tools.
What we finally boil down to is the concept that a “web presence” today means much more than just running a .edu on a box in our server room. That used to be it. Now the landscape is different. Things are evolving, and so too must we. Entertainment industry professionals are latching on to this idea, promoting movies, games, and music in the blogosphere and on social networking sites. People’s entire job description consists of creating these profiles and commenting on people and networking to the web users. If it works for them, why can’t we make that same strategy work for us? We must create “presence.” Show that we can operate in space and that the technology out there is something we understand and can use to reach people. If we do it all ourself, we become internet xenophobes, holed up on our domain, unwilling to exist outside the confines of our server room. This means being daring, and possibly adding staff to address it, but in the long term, it is time and money well spent, and your web staff and programmers can stay focused on true university needs.
Well, while I am briefly in between jobs, I got to spend a little time this weekend back in Indy. I have decided that there is a funny thing in that town. Despite being gone 6 years, things in that town just don’t really change. Everything just still…is. Sure, there’s a Walgreens, and a new restaraunt. Big deal, huh? I just find in interesting and slightly amusing to go back and just see stuff not doing anything. I went to my first church service in….years. Same church though as when I went through half of confirmation a dozen years ago. My cousin was being confirmed today, which was why I went. To be supportive and stuff. But I realize that despite my best efforts, I don’t think I every feel quite so out of place and uncomfortable as I do in a church. I always have. It just feels so cultish, all these people standing up, sitting down, chanting, singing, and most of them haven’t a clue why really. It’s perplexing.
So come December of ‘07 it looks like I’ll be going on a Caribbean cruise. My grandparent’s 50th wedding anniversary is that year, and rather than buying Christmas presents and everything, they want to take the whole family on a cruise. We still have to pay part of our way of course though. I’ve never done anything like that before. Luckily there’s enough time between now and then to get money saved up. This is also a good opportunity for a girl to sucker a trip out of me, because come on, how much better would it be if I could go not just with my family, but with a girlfriend. But seriously, I dunno what to really expect out of this, I’ve never done a cruise before. I don’t really like boats, but these are bigger than your average boat. I think it might be fun. I guess. I hate family trips.
I’m still looking at new vehicles. Can’t really decide on what I want or can afford really. Part of me wants to wait, part is tired of putting up with my car, part of me wants a truck, the other a car. The part that wants a car doesn’t know if I want to move up to a 4 door luxury sedan, or stay in something 2 door and sporty. I suffer such dichotomy. Grumble grumble.
By the way, I know I might not be on the cutting edge of current sports fashion, but I’m just wondering when it became the thing for girls to play tennis in…almost nothing. Not that I’m complaining mind you! I just noticed some girls playing tennis on the way back from the grocery story and they were wearing…so very little. Like way less than I’ve ever seen girls play tennis in. Bikinis practically. Is this the new thing, because if so I’m so playing more tennis this year.
Posting tweet...