Archive for Web

Grayplicity v1.2 released!

// July 30th, 2008 // No Comments » // CSS, Web, Wordpress

After letting Grayplicity simmer for a few months, I’ve packaged and released the latest update tonight.  There’s several under the hood changes, some new plugin support, and added support for Gravatars (by request, with thanks to Brad) and WordPress 2.6′s image captions.  Feel free to download a copy and play around with it.

A look at some of the new features

A look at some of the new features

Here’s the short list of changes:

  • Added style support for Increase Sociability Plugin (wrap with classes gp_ISDigg and gp_ISStmbl)
  • Added style support for WordPress Related Posts Plugin
  • Fixed bug with wp_title() that cause a » to appear before a post title in the header
  • Added style support for wp-caption and wp-caption-text classes on images
  • Hid the “Search for:” label in the search sidebar widget
  • Gravatar support enabled in comments
  • Trackback/Pingback detection in comments

You can grab the latest revision at the Grayplicity home.  As always, I’m taking suggestions for improvements or changes.  I’m still interested in building in AJAX (Asynchronous Javascript And XML) commenting sometime soon, and I’d like to add in some more plugins at some point.  Unless there are some issues I’ve missed in the release, however, it’ll probably be a few months before another update comes down the pipes.

Gettin’ Your Macro On

// July 29th, 2008 // 3 Comments » // Scripts, Software, Web

I think it’s time to rock out with another dotCMS blog, and dig into some basic stuff that can be very useful to people getting started in the content management system.  There was a topic recently on the mailing list that was asking about where to look to see some examples of macros, and where you can save your own.  This looked to be a good topic to cash in on (speaking of cash, wanna loan me some?).

Macro output on a page

Macro output on a page

In dotCMS, a macro is basically like it is in other applications: it’s a collection of code one calls to reproduce complex processes in a simple, and straightforward fashion.  You know, to help stupid people out.  To put it in other terms, it’s effectively what one might call a function in other languages.  You give it a name, set parameters it can take, and define some output.  dotCMS comes out of the box with a lot of macros you can readily use, sometimes without even realizing it.  These include things like the commonly used pullContent(), and fancier tools like videoPlayer().  Naturally, dotCMS has a list of these built in macros, and how to use them.  If you want to take a look at example code, the built in macros are stored in /[dotcmsroot]/dotCMS/WEB-INF/velocity/dotCMS_library.vm.  Don’t mess with those though, because odds are you’ll break stuff.  Just trust me on this.

There are a couple ways to approach writing your own macros.  The first is to write a second .vm file, and store it with the default one in the velocity folder.  It will be loaded when the server starts, but requires a server restart when you change or update them, because they are cached in the system when it starts.  Conventionally, the file name dotCMS_library_ext.vm is recommended.  By convention, I just mean that’s what the dotMarketing programmer folks have recommended to me.  The other way is to use a static container, which you include first thing in all the templates you want the macros to be available to.  Macros edited and saved this way do not require server restarts to use, but naturally you must make sure you’ve included the container in EVERY template where you suspect your macros might be used (and also ones where they might not. Trust me, never underestimate the stupidity of your users).  Neither method is right or wrong, and you should just choose the way that fits your development style best.  I’m still looking for a solution that would qualify as chaotic neutral, however.

Okay, so naturally you need to have something of a working knowledge of Velocity code to write a macro, so if you’ve never taken the time to learn some, I suggest you go do that.  Mr. Falzone has talked about this issue, so go get yourself some learnin’ and stop trying to run before you can walk.  Now, get off my lawn. If you already know Velocity stuff, go anyway, he’s a nice guy and worked hard, so you owe it to him to read it and pretend like you’re new to the subject.  Don’t worry, it’ll be our little secret.  But, assuming you understand the basics, this should be pretty straightforward.  So, starting up, we need to define the macro.  I’ll use as an example the macro I wrote that pulls in a list of events from the calendar by a tag:

  1. ## Create a list of events based on a specific tag
  2. ## Optional Parameters:
  3. ##    $eventNum   - Changes the number of results to return
  4. ##    $listTitle  – Changes the title of the event listing
  5. #macro(pullEventListByTag $eventTag)
  6.  
  7. #end

So, we start by calling the macro() function, naming it, and giving it a list of variables to expect.  You can have more than one variable, just list them one after the other (no commas or anything).  As you can see, before I open the macro, I list a couple variables in comments that aren’t required, but can be set before you use pullEventListByTag() and they’ll be pulled in later.  Next, I’m going to set three variables that I’ll use when querying for events, then I’ll build out the query and set it as a variable, and set how I want it ordered (date1 is the event start date).

  1. ## Create a list of events based on a specific tag
  2. ## Optional Parameters:
  3. ##    $eventNum   – Changes the number of results to return
  4. ##    $listTitle  - Changes the title of the event listing
  5. #macro(pullEventListByTag $eventTag)
  6.   #set($eventListPast= $date.format(‘MM/dd/yyyy’, $UtilMethods.addDays($date.getDate(),0)))
  7.   #set($eventListToday= $date.format(‘MM/dd/yyyy’, $date.getDate()))
  8.   #set($eventListFuture= $date.format(‘MM/dd/yyyy’, $UtilMethods.addDays($date.getDate(),80)))
  9.  
  10.   #set($query = "+type:content +deleted:false +structureInode:492 +text4:${eventTag} + (+languageId:1* +( ((date1:[${eventListToday} 00:00:00 TO ${eventListFuture}]))) +live:true)")
  11.   #set($orderBy = ‘date1 asc’)
  12.  
  13. #end

Okay, next up I’m going to check for those optional variables, and if they aren’t set, it will give some default values.  After that, I’ll call the pullContent() macro (as you can see, you can call other macros within macros), and save the results in its own list variable.

  1. #macro(pullEventListByTag $eventTag)
  2.  
  3.   #set($query = "+type:content +deleted:false +structureInode:492 +text4:${eventTag} + (+languageId:1* +( ((date1:[${eventListToday} 00:00:00 TO ${eventListFuture}]))) +live:true)")
  4.   #set($orderBy = ‘date1 asc’)
  5.  
  6.   #if(!($UtilMethods.isSet($eventNum)))
  7.     #set($eventNum = 10)
  8.   #end
  9.   #if(!($UtilMethods.isSet($listTitle)))
  10.     #set($listTitle = ‘Related Events’)
  11.   #end
  12.  
  13.   #pullContent("$query" "$eventNum" "$orderBy")
  14.   #set($eventMacroList = $list)
  15.  
  16. #end

That takes care of the heavy lifting.  Next I’ll start the output.  In this case I’ll build out a <div> to hold the contents, pump out a header, and start a standard foreach() loop for the results in $eventMacroList just as we would when using the pullContent() macro like any other time.  I told you this wasn’t hard.

  1. #macro(pullEventListByTag $eventTag)
  2.  
  3.   #pullContent("$query" "$eventNum" "$orderBy")
  4.   #set($eventMacroList = $list)
  5. <div class="small">
  6.   #foreach($eventMacroEntry in $eventMacroList)
  7. <div style="margin:.5em 1em"><strong>$date.format(‘MMM dd’, $eventMacroEntry.startDate) |</strong> #if($UtilMethods.isSet($eventMacroEntry.description)) <a href="/calendar/index.dot?id=$eventMacroEntry.identifier">$eventMacroEntry.title</a> #else $eventMacroEntry.title #end</div>
  8. #end</div>
  9. <div style="text-align:right"><a href="/calendar/?tag=$webapi.encodeURL($eventTag)"><small>More "$eventTag" Events $raquo;</small></a></div>
  10. <!— end eventsTagged —>
  11. #end

And believe it or not, that’s it. Once this is saved and initiated in the manner you choose, you can call your custom macro with the parameters you’ve set, and it will execute the code. In this case, you could call pullEventListByTag(“football”) to return all events tagged football. On another page you could call pullEventListByTag(“baseball”) and get a different set, but still get the same structured output.  Such is the nature of macros.  Any process you would need to do over and over again, or need to simplify for less savvy users are prime candidates for macroification.  In simple terms, this example is nothing more than a macro to automate a pullContent() call and foreach() loop.  If you look at the default macro file in dotCMS, you’ll see how much more complex you can get with them.

So, the complete macro for this example would be as follows.  Feel free to copy and modify it to fit your own needs, or to play around with to get used to the process.  I’d be happy to see how you improve or modify it.  You can also discuss it in the forums, or share your own creations.

  1. ## Create a list of events based on a specific tag
  2. ## Optional Parameters:
  3. ##    $eventNum   – Changes the number of results to return
  4. ##    $listTitle  - Changes the title of the event listing
  5. #macro(pullEventListByTag $eventTag)
  6.   #set($eventListPast= $date.format(‘MM/dd/yyyy’, $UtilMethods.addDays($date.getDate(),0)))
  7.   #set($eventListToday= $date.format(‘MM/dd/yyyy’, $date.getDate()))
  8.   #set($eventListFuture= $date.format(‘MM/dd/yyyy’, $UtilMethods.addDays($date.getDate(),80)))
  9.  
  10.   #set($query = "+type:content +deleted:false +structureInode:492 +text4:${eventTag} + (+languageId:1* +( ((date1:[${eventListToday} 00:00:00 TO ${eventListFuture}]))) +live:true)")
  11.   #set($orderBy = ‘date1 asc’)
  12.  
  13.   #if(!($UtilMethods.isSet($eventNum)))
  14.     #set($eventNum = 10)
  15.   #end
  16.   #if(!($UtilMethods.isSet($listTitle)))
  17.     #set($listTitle = ‘Related Events’)
  18.   #end
  19.  
  20.   #pullContent("$query" "$eventNum" "$orderBy")
  21.   #set($eventMacroList = $list)
  22. <div class="small">
  23.   #foreach($eventMacroEntry in $eventMacroList)
  24. <div style="margin:.5em 1em"><strong>$date.format(‘MMM dd’, $eventMacroEntry.startDate) |</strong> #if($UtilMethods.isSet($eventMacroEntry.description)) <a href="/calendar/index.dot?id=$eventMacroEntry.identifier">$eventMacroEntry.title</a> #else $eventMacroEntry.title #end</div>
  25. #end</div>
  26. <div style="text-align:right"><a href="/calendar/?tag=$webapi.encodeURL($eventTag)"><small>More "$eventTag" Events $raquo;</small></a></div>
  27. <!— end eventsTagged —>
  28. #end

Post-eduWeb 2008 (Day Hell)

// July 23rd, 2008 // 3 Comments » // Tech, Travel, Web

Well, if there’s one thing we can all rally around, it’s that we’re (hopefully) surviving a travel day from hell getting home from Philadelphia.  At least we got off the ground though.  The only problem is, I’m writing this on my $7.95/day wifi pass at the Atlanta airport where I am stuck until 8:00AM.  At least we got time to eat something after 8 hours.

Not our plane!

Not our plane!

The story goes like this: we got to the Philly airport in good time, about 2:45 for a 5-something flight.  The check-in guy gives us the first bad news.  We’ll miss our connection because the flight we’re scheduled for is being delayed.  BUT, there was a flight boarding to leave at 3:30 that would get us here in plenty of time.  We rejoiced.  The travel gods had smiled. But it was a cruel, evil smile indeed.  We hurried to clear security and get to the gate, and made it just in time, even though John got the business for having some Trump Ice stowed in his bag (see Brad, I told you that stuff was trouble!).

We boarded.  We sat.  We rolled. We stopped.  All of the sudden we were 15th in line to take off.  That’s not a hyperbole, like “we were the millionth plane in line to take off.”  We were literally 15th.  And now that we were waiting, storms south of the airport had blown in, and we all had to wait.  And wait.  And wait.  Turns out the travel gods built up our hope only to enjoy smashing them to bits, laughing as we sat on the uncomfortable as hell plane on the tarmac for about three hours. At least they let us up to pee.  But something about pooping on a plane terrifies me.  Like sitting on the bottom of a pool drain… (pink sock!)

We finally cleared the ground sometime around 6:30 I believe, and our one hour forty minute flight had to be lengthened to go around travel god booby traps.  The end result?  Yeah, we still missed our connection.  By ten minutes.

So, we got sent to the customer service area, which has to be one of the most god awful thankless jobs in an airport, and I called and cancelled the hotel in KC, and we’re stuck here till 8:00AM.  The bitter irony is, we’ll still actually get home about the same time, because we’ll land about the time we had planned to leave the hotel anyway.  The travel gods are actually evil bitch goddesses.  Mean creatures with giant magnifying glasses, and we’re the ants.

But like I said, at least we got somewhere.  I hear some of you didn’t even get out of Philly.  Look at it this way, where would you rather have run out of fuel, the tarmac or the air?  Yeah, I know, it still sucks.  At least I calmed down now that we’re sitting in comfortable chairs, I have internet, and a warmish bottle of Coke that tastes rigorously secured.  I also skimmed one of John’s Motrin 800 for my back.

So, my next suggestion is that I think we need an “I survived post eduWeb travel” support group.  And we need to do some kind of sacrifice next year.  I’m thinking e-mail.  It’ll be dead soon anyway, right?

Last note, uploaded the last of my pictures from eduWeb.

eduWeb 2008 Day 3 (Can I go home yet?)

// July 23rd, 2008 // 4 Comments » // Tech, Travel, Web

The morning Flickr update is done.  I was quite disappointed, no sooner had I gotten to the Boardwalk last night and my batteries went and died on me, so I ended up missing a lot of good shots.  Hunting down sushi was an interesting challenge, but by god, not only did we find it, we managed to put together a crew of about 22 people. Yeah, they totally hated us.  Hopefully everyone else tipped well (because I sure didn’t… no, I kid, I did).  I’m sorry to report it actually wasn’t that great, which is too bad.  That was, however, the best group I’ve managed to get together.  So, what’s everyone doing at HighEdWeb in Springfield? Heh.

The morning is starting as a painful one.  Stupid soft beds.  I’m getting rolling at Sarah Stanek’s presentation on effective web site management.  Didn’t hit topic tables this morning.  I’m gonna follow here as best I can, had to jump in a couple minutes late due to a last minute need for a jacket in the room.  We’re talking about turning skills as web users into skills for web authors.  A person might not know how to create what they want, but they know what they want to see, so we should give them the tools to do that.

Four steps of web writing: 40% organizing, 30% setting goals, 20% writing, 10% building.  Did you know 67% of all statistics are made up on the spot?  It’s true.  We’re back to a lot of basics: web users scan, not read, reuse content when possible, proofread.  More stats: web site creation is 80% organization and 20% composition.  What happened to 40/20?  Write, test, and revise navigation.  I’m getting that feeling of “too basic” again.  I think it’s time for conferences to have an “advanced concepts” track.

“Ideal links are 7-12 words in length.”  That seems like a really unusual statement.  While you see this with blogs where the title is a link, general contextual links will never be that long, and making them that long is kinda crazyish.  She’s also throwing out the idea that we should use words, not URIs.  Good concept, unless you want URI (Uniform Resource Identifier) recognition so people can go straight back without navigating clear through your site.  That’s a bit nitpicky though, because I understand why you should use words instead of URIs.

Hierarchy of web content: links and navigation, calls to action, support documentation, site home page, ande everything else. It is clear, relevant, short, relatable, easy to scan, and authentic.  You know, I really thought this was going to be about managing a web site, not about an introduction to creating and organizing content.  I was sorta thinking how you manage resources, work with other teams, control and drive development, etc.  Oh well.  Sorry, I’m cranky this morning, and still waiting on the Aleve to kick in.  Updates to follow…

Update ~9:29AM EDT

Nearing the end of the first session, and covering more writing tips.  It does make me glad that I don’t have to write, for the university at least.  Now, I do like the idea she presents to create a fake departmental site, full of bad writing and mistakes to use as an example and to train people to find and fix things.  It allows you to train consistently and to avoid calling anyone out as an example.  And to paraphrase: never underestimate the stupidity of your users.

Update ~10:21AM EDT

I’m taking a gamble in the session on e-mail in the new media landscape.  One, because I’m not terribly interested, and two, because it’s a vendor presentation.  But if I go take a nap, I might just sleep away the rest of the morning. And afternoon.  The vendor is Greg Cangialosi from Blue Sky Factory.  These guys are in the email business, so you can bet they’re going to be pushing the importance of email.  Let me be clear, I like email, I think it has its place, but I also think there are things that it isn’t good at and wasn’t meant for.  I also think it’s time for marketing to find a new medium, as email’s spam saturation level is so high that I think the effectiveness of it is in peril.  Plus, I’m not a proponent of HTML email.  I know some folks that will disagree with me, and can throw numbers to the contrary, and I admit it is a personal thing.  It made fun of my mom when I was a kid and I still hold a grudge.

He says “Email is THE dominant app.” I cannot argue with that.  It’s sorta like how Ali was the heavyweight champ, or VHS was the video format of choice.  Stat: ROI is ~$48 for every $1 spent on email.  Did you know 28% of all statistics are made up on the spot? It’s true.  I would like to see some methodology on those numbers actually.

Switching gears to RSS. Discussing how prevalent it has become, and how it’s being woven into the fiber of the web.  But the thinking is RSS can’t replace e-mail, which I’d agree with.  But I also don’t think it ever could have.  He states that e-mail is the currency used by all the accounts that you have, everywhere you go, every service you use, e-mail is the common thread through them all.

Greg presents the following “five gems” to capture data and build returns: incorporate social media (capture them every opportunity you get), optimize for mobile devices (positive brand experience), triggered and nuture e-mail (keep your brand in their mind = mindshare), permission is paramount (tell them what to expect), and lastly, don’t forget the parents (keep the decision makers in the loop).

Update ~10:35AM EDT

Example of nuturing email: 52 tips in 52 weeks.  Nice, because it also suggests a “contract” that you’ll get an email a week, no more, no less.  Some things you can control and test: from line, subject line, copy, imagery, call to action, and a landing page.  “Email is the digital glue of it all.” I can see that thinking.

Greg’s blog is www.thetrendjunkie.com.  He’s also on Twitter, @gregcangialosi.

Update ~11:33AM EDT

OKay, got my bag into the hands of the busboy (busman?) for the next couple hours.  Managed to get checked out before the biggest part of the eduWeb rush I think (it’s currently pretty empty in here).  I can’t wait to get away from the stale 30 year old cigarette smell of this place.  For the record, the eduStyle award winners from yesterday’s lunch have been posted: http://www.edustyle.net/awards/winners.php.  I plan on seeing us on that list next year.  We just weren’t fast enough with the redesign to get in the running this year.  But that’ll give us a solid year to smooth things out.  Fear us.

Waiting for “How to Embed Video on Your Website” presented by Lance Merker of OmniUpdate.  Another vendor presentation on a subject not of a ton of value to me.  I’m hoping he covers some stuff like codecs and bitrates.  The last session like this I sat in on was just on recording and very basic editing, not at all what I wanted.  Our CMS (Content Management System) (dotCMS) is already set up to handle, embed, and display video just fine, but I always like tweaking settings to try and get clearer, more high quality FLVs.

Okay, the first photo was pretty funny.  Tried to get a photo of it, but he went to fast.  The concept is that video should be used to address the “short attention span theater.”  They are “information snackers.”  People viewed 11.5 billion videos in the month of March.

Videos on campus are good for campus tours, visual FAQs (neat idea, expanding on the screencasting concept), blog content, student perspectives, serial programming.  I wonder if anyone has thought to engage their broadcasting depart to put together a “TV show” that is ran only on the web, a la Dr. Horrible.

Hooray! Containers and codecs and players, oh my!  Finally someone seems to be getting to the good stuff.  Talking about YouTube as a potential, but not terribly effective solution.  It’s easy, but not ideal, and you end up with a branded, identifiable container that you have little control over.  Flash video is the ideal solution.  I think that’s a generally agreed upon medium at this point.

Talking transcoding to get to FLV now.  He’s recommending www.transcodeit.com to use cloud resources to get any common video format to flash.  No mention of bitrate or size controls though.  He’s doing a demo now, and it looks like there are no controls for such things.  I’ll mention Riva Encoder as well as a free FLV encoder.  I’ve found it to be pretty fast and decent.  Answering my question, he corrects my previous comment and says there are controls for bitrate, etc, we just need to wait until the upload of the sample video finishes on our brutal wifi here.

Update ~11:49AM EDT

Transcode-It actually doesn’t look too shabby for a free, online transcoding service.  It even has FTP (File Transfer Protocol) controls to automatically upload the transcoded video straight to your web site.  Interesting… Transcode-It apparently supplies code specific to OmniUpdate users as well.  They must be affiliated.  And now that I look at it, the Transcode-It site footer clearly states an OmniUpdate copyright.  So, just be aware.  Still looks like a good service, and you don’t have to use OmniUpdate to use it.

Also talking about captioning too.  He recommends MAGpie.

Update ~12:50PM EDT

Keynote! We’re almost done!  The closing keynote is being presented by Karine Joly, and is called “It’s the Community, Stupid!“  The concept is raising and nurturing online communities.    Unrelated: Heidi Cool got her presentation on blogging from yesterday posted.

So far, everyone seems pretty excited for this. Hopes are high, emotions are on edge.  Karine runs collegewebeditor.com.  She definitely puts togther a nice slide.  That’s something I definitely think separates the good speakers from the less than good.  Making a note of that to myself.  She brings up a point I mention occasionaly, that people are starting to suffer from communication overload.  I think this is the big failing point of the social web, that there’s just too much right now.  It’s hard to determine what is most important.  Ultimately there is no way to catch up and keep up.

We are in the relationship building business.  It’s easy to get lost in our information silo, and fail on connecting to certain audiences and targets.  Conversations build relationships, and the community is central to our job.  We can’t have conversations or relationships without a community.  She mentions the Groundswell book I linked the other day in Mark’s keynote.  I must make it a point to get that now, since it showed up in both keynotes.  “Community is about people’s need to connect, not your need to control.”

Karine’s 7 step plan for community building:

  1. What can you do for them? (their needs)
  2. What do you want? (your goals)
  3. If you build it with them, they will come. (participatory design)
  4. Exclusive content and conversation starters (exclusive valuable content)
  5. Listen, identify, and empower
  6. Call them back – on their terms (cross-promote)
  7. Meet your new boss(es) (treat them as stakeholders)

Community members are the stakeholders, and never forget that they know more than you do.  Eww, now we’re treated to Brad’s ugly mug on the projector.  I think I just threw up in my mouth a little.  But, good point on the random incentive to get students blogging.  Dammit Brad, stop making points I need to mention.  Karine’s showcasing a Ning group.  I keep coming back to this wondering if there’s a use for it with us.  I’m just not totally keen on relying on a free third party for something like that yet.

Update ~12:59PM EDT

And that’s that ladies and gentlemen.  I have a bag to go grab, and shuttles and planes to catch.  Hopefully it all goes as planned.  I’m taking tomorrow off, and will upload some more photos and maybe some finals thoughts then.  Good meeting those of you that I got to, look forward to seeing some of you at HighEdWeb.  Travel safe, those that are traveling, see you in the Twitterverse.

eduWeb 2008 Day 2

// July 22nd, 2008 // 2 Comments » // Tech, Travel, Web

Sorry, no clever title for the blog.  I wish that I could, but my word maker in my brain is broke down a little at the moment.  I think it’s time to do an SVN update on my brain.  I uploaded a mess of new pictures this morning to Flickr.  There’s an awesome building, I think Hannah’s, a stone’s throw from here that has some awesome video lighting going on with the side of their building.

PICT0576

We learned last night how the better half lives.  A group of us headed over to the Borgata (and I was stupid enough to leave my camera in the car), and man is it night and day between the Trump Marina.  If they are to be believed, and the Trump Marina is a five diamond hotel, the Borgata must be something like 12 diamonds.  Granted, navigating to get there was a challenge of its own, and leaving we ended up driving through a part of Stabbyville.  New Jersey is truly the land of 1,000 smells as well, and I think we found 15 just on the way to Borgata.  None were pleasant.  I suspect it could have been just me… I also finally met up with a number of people I’ve been stalking on Twitter, and I am proud to announce they are just as creepy as me.

The morning started out with a small breakfast of delicious, and complicated, bananas (don’t ask).  I am currently hanging out at the table topic for making your CMS (Content Management System) implementation a success.  Luckily, from the talk I’m hearing we are doing pretty well with how we’re going, and I’m glad I can’t share in the horror stories of others.  But I mock them silently.  Not really.  Sorry, I’m wearing my disco shirt today, it makes me spicy.

Updates will follow…

Update ~9:00AM EDT

Branding is Not For Cows is a marketing track session being presented by Alka Joshi of Evergreen Valley College.  The branding side of stuff isn’t really my concern personally, but hey, I gotta stay well rounded, and not in that “oh my god if I eat any more cheese cake I’m gonna be sweating cream and be well rounded” kind of way.  Actually, with our redesign almost done, I think our branding for the college is the least of our problems now, but it never hurts to get more insight.

She’s giving an example with Harvard University as being branded early on to reflect the kind of institution that they wanted it to be – shaping it as a research institution.  They took stories and branded them as The Harvard Classics, which they used as a foundation for literary fluency that would be associated with them.  However, as a matter of course, I don’t think most of us as universities could get away with such a dynamic step.

Alka’s four keys to successful branding are a strong brand strategy, consistent implementation, a strategic rollout campaign, and create transparency.  People should feel free to give their feedback on what you are creating.  They created a tag line, and also translated it into the major languages used on campus.  That idea is actually kind of neat.  I’m wanting to do something similar with our navigation.  Another thing we are starting on that she recommends is creating a style guide for consistent implementation.  I think that goes beyond just marketing though as well.  They also did outdoor signage that visually tied in to the branding.  One thing we do lack, is coordination between web branding and… everything else.

Add value with buses.  That’s a great idea… if you have buses.  We have the PACT, which isn’t so much a bus, as it is the public transit you take to get to the crack houses or get stabbed in the face.  For the record, crack is a better value. I’m just saying.

Update ~9:21AM EDT

Sorry, got distracted looking up directions to sushi.  Sushi is a delicious diversion.  We are on to transparency now, so I missed a little bit of something.  I’m going to guess that it wasn’t life or death though, given my current breathing status.  As part of transparency, she’s recommending a 2 week rollout period with an open door policy.  Handle controversy, and share results wraps up point.  Trust me, once we win a ton of awards for our new layout (which I’ll totally take credit for) I’ll be sure to tell everyone who listens, and plenty of others who won’t.

She’s noting increased enrollment as an effect of this.  What I wonder is what about schools like us, that aren’t necessarily out to increase enrollment (they’re crammed like sardines into the dorms as it is).  Maybe I’ll ask… They are noting all the general feedback they got on the website to save for later.  She seems to be equating penetration to effectiveness, which I’m not sure I totally agree with.  Just because 100% of a group sees an ad, doesn’t mean they made a decision based on it.

Update ~10:12AM EDT

Okay, after a healthy poop (I’m kidding… no, I’m not), I’m ready for Head in the Cloud by Mike Richwalsky and Josh Tysiachney.  I refuse to spell either of those again.  This is to discuss how to handle the increasing load of things like tons of videos and such on sites.  The idea is to use external infrastructure to solve internal technology problems.  They use the analogy of an air conditioner, used on demand in the summer for added cost, but you just pay for the added cost.  This helps to prevent over spending on resources that you don’t need full time.  Look at people like flexiscale, GoGrid, Joyent, and MediaTemple for some examples.  Also popular services like Flickr and YouTube.

Amazon’s EC2 charges by the hour, starting at a dime an hour.  You also get command line access, stand alone control, browser plugins, etc.  He’s discussing the New York Times as an example: converting 4TB of TIFF files, and 11 million stories to PDF’s in 24 hours using 100 virtual servers at the cost of $240 plus the bandwidth.

S3 is Amazon’s storage service.  Again, you only pay for what you use on data centers in the USA and EU.  Usage is seamless to users.  It’s accessible over REST and SOAP, via browser plugins, and over FTP (File Transfer Protocol).  Consider SmugMug as an example, they saved $1 million on hardware by moving to S3, plus $100,000 in taxes by not buying hard drives.

Now, to use it in higher ed.  Allegheny is using it to host podcasts and video, plus admissions videos, political videos, and online tour media.  This has saved them 207.9GB of bandwidth over 2007.

Update ~10:31AM EDT

Keep in mind the opportunities for raw power related to things like registration systems that peak only at certain times: class registration, library usage, humanities, etc.  I know our portal gets hammered come finals and class registration time, so that might be a good value to a lot of people.  And then the big one, crisis communication.  Virginia Tech got hit with 432GB of traffic over 24 hours.  Using cloud resources with 4 servers, 8 cores, 15GM RAM, and 432GB of bandwidth, it totals $175 ($90 computing, $85 bandwidth).  Another price comparison: the cloud is good for backups, for instance 10.5TB = $392.11/month vs. $14K for a 9TB Dell AX150 array.

I’ve considered playing with the EC2 for some stuff a while back.  I’ve never done it, but sometime I really should just to see what it’s like from a cost vs. usage point of view.  Links: http://aws.amazon.com, http://code.google.com/appengine, and http://del.icio.us/awsbuzz.

I’m currently spying a bus bar up by the podium I might be able to leach off of during the next session…

Update ~11:31AM EDT

Richard Orelup is starting a presentation on AJAX (Asynchronous Javascript And XML) right now.  It has a long title, so I’m not typing it all out.  We all pretty well know what AJAX is, so I’m not gonna rehash all that either.  It has its roots in the Outlook Web Access interface back in 1996 though, so that’s interesting.

Interesting idea: do AJAX because it’s a buzzword, which makes it easy to sell to those who don’t understand any of this crap.  Richard makes a good point that if you use AJAX, you must do it right.  Keep in mind things that might not be able to parse it, like spiders, or users without Javascript.  Also, the higher level of interactivity can confuse people, or break other functionality (e.g. the back button, bookmarks).

Selenium is some open source automated testing software that can do screencaptures and such while checking, so that you can go back and review them without needing to test and screencap each browser separately.  This sounds pretty cool, similar to browsershots.org maybe.

I was hoping this would be much more technical in nature, as it is, it was pretty cursory with regard to what AJAX is and some of the security and performance concerns.  You can see his example site at http://www.valpoathletics.com/.

So far, I’ve managed to stretch my battery through two full sessions it seems. Go me.  But I’m hungry as balls, lunch T-minus one hour and counting…

Update ~3:01PM EDT

Okay, back from a brief quasi-nap after lunch and ready for the session on variable printing being presented by Cam Cruickshank and Matthew Allison.  My stomach’s actually still bothering me a little, hoping I’m not coming down with something.  If I throw up in the middle of a session you happen to be in, forgive me and please hold my hair back.  I seem to be doing a nice job of killing the batteries in my camera too.  I know, those two issues are totally related.

These guys are connected to a new university sub brand that is part of a 100% online associate degree program.  They’re also working to make a program that maximizes a student’s ability to transfer credit.

All told, a total of four people in the room are currently doing variable print.  Variable print uses custom content and variables to tailor a document to an individual, such as academic programs, extracurriculars, identifiers, contacts, and financial variables.  I’ve seen some of this before from a school that someone else showed me.  It’s a neat idea certainly, and in an institution like ours I think the biggest question mark would be integrating the different tools.

They’re also showing not just print, but customized email as well, with different topics, photos, and information.  Their custom VIP pages (student portal) are being driven by a separate CRM application.  So we’re pretty much out in the cold on that one. They are capturing data via lists, surveys, interest pages, inquiry cards, and vendor lead forms.  Again, I think in our case, managing all of this would not be easy.  With no clear data path to our student portal, and no idea what’s there in the first place, I suspect we won’t get there any time soon.  I also wonder about information security, storage, and how it passes on.

Update ~3:23PM EDT

All their printing and mailing is outsourced.  I’d be interested to know if our print shop could keep up with something like this.  They are also keeping an account with the postal service that is drawn on for postage.  Unfortunately, this being a marketing track session, it’s not nearly technical enough for me.  I want to know the “how,” not just a bird’s eye view of the path from point A to point B.  Then again, since they are outsourcing, I doubt they even know the “how.”

A lot of what they are suggesting could be done within a CMS, I think, if you are clever with data capture, variables, and PDF output.  I think we could certainly manage that much.

Someone raised a question in the vein of what I was thinking, regarding FERPA, in this case with respect to postcards being sent with information detailing colleges the students have attended.  He says they haven’t gotten any complaints, but the matter seems a little too borderline for me.  Once students are admitted, their data leaves the CRM system, and migrates into the student database.  But it sounds like early collection isn’t given much security consideration.

Overall, this was a little off my mark unfortunately, as it was geared much too far to the marketing side for me.  But that’s just me.  I’d caution anyone though to check with your FERPA compliancy person before collecting and using data in this manner.

Update ~4:09PM EDT

Leading up to the session on catalog management, so far it looks like the unpopular place to be.  Anne Macdonald is the one to run this show.  And we’re starting off with technical difficulties: no projector.  That should make this considerably more difficult to follow.  Perhaps I could assist with clever shadow puppets.

Still no projector, but, I have discovered they used RedDot to build the backbone.  I know I’d like to investigate doing away with a print catalog at our school, largely because it’d make my job substantially easier in that area.  Mostly now she’s just talking about the logistical process to get to the decision to not print.  Now the hotel guy is here fiddling with stuff.  We’re at a casino, anyone wanna take bets on how much quicker I could probably fix it than him?

Update ~4:32PM EDT

Looks like this will be a short session.  On to the Q&A.  Projector never did work, which is unfortunate.

Update ~5:16PM EDT

Better projector luck at @hacool‘s presentation on blogs.  Sitting next to @sayitaintjonas, contemplating hijacking his livestream with my beautiful face.

Looks like Case is giving blogs to anyone who wants one: faculty, staff, students, and alumni.  They then have an aggregator to mix them up into a feed.  They are open to personal use as well, not just professional.  No word yet on the platform of choice, unless I missed it by trying to come up with ways to defile Nick’s webcam.  They are actually getting some pretty impressive traffic across their blogs, one in particular had over 13,000 unique visitors in May.  For the record, that’s more than me.

I’m waiting to hear about layout freedom that they have granted, if users are bound to a theme, or if there are some to choose from.  Still no platform mentioned.

Update ~5:44PM EDT

Looking at examples, they are clearly allowing some variation in themes for users.  I’m getting a tweet from @billyadams that Case is using Typepad for their blogs.  We’re getting a lot of screenshots of the various groups using their blog system so far, but not much info otherwise as much.  But, again, this is the marketing track, so my hunger for technical details will likely remain unsatisfied.

They are definitely running with a lot of blogs for different things.  I’m not sure we have enough dedicated people to keep up that much content flowing down RSS pipes.  I wonder what happens if an “official” area blog suddenly loses attention to posting, do they take it down?    I also default back to my old question of what kind of responsibility it creates for the institution to maintain those indefinitely.

Re: dead blogs, Heidi says they’d just contact them and leave it up them as to what to do with it.  Regarding hosting the blogs, they haven’t thought that far ahead really.  And they aren’t using Typepad, they’re on Moveable Type.  Billy lied to me.  He will pay.

And that’s that ladies and gentlemen.  Time for a mixer and then off to sushi on Boardwalk (where rent is $50 without hotels on it).  I follow up tomorrow with details of the evening and pictures.