Atlanta trip wrapup, part the first

I’m going to do a separate post, quite likely on my work blog, about all the things I learned, want to try, etc. For that I want to be someplace where I can have my tablet sitting next to my work computer so I can look at my notes while I write my wrapup.

But I kinda want to write about the trip itself. I realized shortly before I left that this is the first time I’ve been on a plane since SxSW 2009; the first time I’ve been to the south; my first new place outside the northwest since the first time I went to SxSW; my first time in the Eastern time zone since a training I went to in Boston in…? 1999 maybe? It was for a CRM-type system we were installing at United Way. Why yes, I am a homebody.

Flying still pretty much sucks. Getting to the airport from Olympia is a hassle; this time I took the airport shuttle (another first), which meant leaving the house at 3:45am to catch an 8am flight. Since I had a D&D game the night before, I ended up staying up with C, cleaning, finishing my packing, and watching Zoolander. Twice. Because it’s that awesome. Going through security with both a tablet (mine) and a laptop (work’s) was a bit crazy. I had so many bins. Both ways security was not all that horrible, although the whole idea of it just rubs me entirely the wrong way. No backscatter for me, by the way, just X-ray.

I used the airline’s app to get my boarding pass on my phone. I’ll admit that I find the whole thing still sort of magical; and it was nice to have one less thing to carry. Also, fabulous use of QR codes, which get mocked a lot.

But flying itself is tiring, noisy, and crowded. (Also sort of miraculous, when you think about it.) I’ve been in a window seat near the back both times; to Atlanta the whole row was full — the whole plane was full — and it was awkward being crammed in there; on the way home (I’m in the air now) I have a row to myself, although on the other side of the aisle is a woman traveling with her toddler. That poor kid; spent most of the climb to cruising altitude FREAKING THE HELL OUT.

The tablet has been fabulous through this whole trip. I really appreciate the WordPress Android app, and keep wondering what similar options are available for Drupal. There’s two parts of it: a simple interface (if I want I can go to full-screen writing) and local drafts. I’m writing a blog post on an airplane! Ok, there’s actually wifi on the plane, but it’s $13, which is just silly. So I’m writing a local draft, which I’ll probably publish later this evening, and it’s as simple as changing the status and saving again. Besides the plane, it’s nice when conference center wifi is flaky, as it so often is. I just wish I could have used it with my work blog, but the authentication didn’t work. ๐Ÿ™ I’m pretty sure I know why, and it makes sense, but it’s a bummer. I love the smallness and versatility of this tablet, with the keyboard for all my note-taking, and then taking it off to read on the plane. I took my work laptop, in case I wanted to try to get any work done, and other than for going through airport security, I think I only took it out once, and that was to work on an Excel spreadsheet. I even checked my email on this thing…altho Outlook in the browser is horrible, it was good enough for skimming through to make sure nothing had exploded.

As for Atlanta…the gracious thing to say is that it was not generally my cup of tea. Some of that was probably the neighborhood around my hotel and the conference center, on the edge of Georgia Tech. It felt dead. Part of it was disorientation: I swear that every time I had to make a choice of which direction to go, I picked the wrong one. Every time. Thank goodness for Maps on my phone. Then again, much the same thing happened when I rented a car in Rochester, NY for HighEdWeb, way back when. Got completely lost twice in the space of about 15 minutes. And a lot of it was the weather. The temperature was about the same as Olympia; we’ve been having lovely September late summer/pre-fall, so upper 70s, low 80s. But the humidity! Which I know is a cliche, but damn, apparently there’s a reason for that. It just felt horrible. We got some thunderstorms, including a tornado watch, and luckily I only once got caught in a few raindrops. It was especially disconcerting to look out the window at overcast, and my brain isn’t expecting anything much warmer than low/mid-60s, but then to go outside and just melt. Bleh.

It did clear up Tuesday afternoon, just in time for the conference to be over, so I took the MARTA out to Decatur. Originally, the idea was to go buy some yarn and knitting needles. I brought a project with me, and ended up doing so much knitting on the plane & in sessions that I (finally!) got to a point where I had to stop. I have to decide whether to put buttons or snaps on this tablet sleeve I’ve been working on erratically since January, and until I’ve got something in hand, I don’t want to either finish it out flat or make buttonholes. I was pretty sure I’d want knitting for the plane ride. So I looked up knitting shops around Atlanta, and the one closest to a MARTA stop was in Decatur. And then I saw on the map that there was a Batdorf & Bronson coffeeshop like three doors down, so that seemed like fate. (B&B is an Oly institution, and the only other place that they have a roastery & cafe is in Atlanta. I don’t know why.) I’m glad I took the trip. It got me out of the tiny dull loop between the hotel and the conference center; the weather was finally manageable, and Decatur itself was quite nice. I found a lovely inexpensive yarn. The barista at B&B had gone to Evergreen for a year, and he also made a fabulous mocha, plus recommended a good place for dinner. That turned out to be incredibly delicious. (Joel’s on Ponce de Leon, FWIW.) There were quite a few cute quirky shops, an old courthouse & Civil War cannon, and music playing on a plaza. I came home at sunset, and by then the weather was pleasant, and I was in a much better mood.

What else?

That whole staying up all night on Saturday thing ended up mitigating the jet lag; it was like a full reset. I just wish I’d taken a nap Saturday afternoon. (We had a great game, I think mostly because I spent the whole day reading & writing & prepping.)

The hotel was swanky. I loved the bathroom, but found the abundance of overly fussy (?) doormen a little unnerving. Dude, I can open the door myself; I don’t need four guys greeting me and opening the door.

I sort of want to write about what I observed re: black/white, but I don’t quite know how or even whether to address it. In some ways it reminded me of L.A., only more so.

There was an Interface/FLOR (carpet tiles!) showroom close by, and I dropped in out of curiosity. Alas, it was their commercial showroom, but the woman at the reception desk was delightful. So friendly and engaging, plus she gave me the latest catalog, and it looks like now they have residential showrooms in both Seattle and Portland.

I don’t know that I have much more to say about it at the moment, halfway through my flight home. I’m very much looking forward to being back in Olympia.

[edit: written Weds, ended up not getting this posted until Friday morning]

vassar lessons learned

webdesign.vassar.edu

“sample site”

staffing: director, assistant director (& partner in computing), 4 designers, one developer

“condensed core” in cascade. they do use includes for (some?) navigation so they can make system-wide changes w/out republishing all.

they do custom designs for every site. but at the same time, they’re working on the content in the sample site design in cascade.

they post about projects on their blog.

Communications “site” is assets outside Cascade, plus “Secure”, plus “Internal”, plus site-specific — would do it differently, only two sites, if they did it over.

“Announcements” go to database publish. How odd. I guess this is where I’d look at setting up a WordPress and having a block to include.

Regions in sets of 3: pre, actual, post.

PHP server variables. Where we’ve done weird things with the folder.

Man, everybody uses index blocks for navigation.

[system-view:internal] -> “you won’t see this here but it’ll be on the live site”
[system-view:external] -> some php stuff

They don’t use workflow or publish sets.

Publish everything to a database “CMS Audit”, but they call it “Leave this checked” so people leave it checked. ๐Ÿ™‚

Their announcements are organized by year in every site, but they’re published to a database.

Override URL (for links directly to other sites) — that’s intriguing.

It’s all very tidy.

server variables in the htaccess file. how curious.

They do everything on its own domain (english.vassar, etc), and then something quirky for testing.

“Template” is only visible to web team, basically a style guide.

They use PHP to include little bits of catalog, etc., with that internal bit having a note explaining what’s happening. (This seems a lot like what we have in various places.) I’m not sure how I feel about that. Common block of typical business hours. Would that work for us?

reporting – since everything is also written to mysql, all the reporting comes from there. also includes history of redesigns.

gets an email every day of what pages were published, by site, highlighting what’s new, oh hey with a link directly to the CMS!

why secure site for common assets: was particular for a specific project.

their alum site is both Cascade & Harris, together. will have to ask her about that. secure site, then, is to avoid mixed content errors.

OxygenXML

and Justin’s doppelganger is here again! So weird.

well of course the longbeard (like Oakwright quality) is running this session. and of course he works at UCDavis.

law school has separate instance of cascade.

“loving Cascade”?

Maslow’s law: hammer/nail.

another person who uses Cascade to push content to campus display screens. huh.

what IS coming in 7.2? Ah, he’s going to mention some of the examples where new features obviate oXygen tricks.

that’s the 2nd batman garment I’ve seen here today.

can edit the format & see what objects you want to preview it against, in newer version of cascade. Sweet.

unit testing for xslt? one of those topics I’ve really wanted to figure out.

tool in oxygen to make WSDL more readable

bsf.jar (beans scripting foundation), allows languages to use other languages? ok, like JS in XSLT — the date formatter. which I really like. get version 2.4 from commons.apache.org/bsf

/OxygenXMLEditor/lib – that’s where to put bsf.jar — should fix some of the things that haven’t worked in oxygen that DO work in cascade.

this is basically what I’ve been doing to get things set up! (feeling pretty good about myself)

live coding stuff.

had no idea about the diff tools: directories & files.

how does oxygen deal with html5 — since it’s so loosey-goosey with structure?

sleeeeeepy.

feeling sort of proud of myself: been doing this, what, 3 1/2 months? and I’ve worked out so much of this basically on my own, once I got the recommendation to use oxygen.

see, I knew that using index blocks for navigation was the way to go! otoh, I know Susan is right, and that it’ll take some training etc on our end to get editors doing it right.

THIS IS EXACTLY WHAT I WAS THINKING OF. (a single checkbox in the metadata set to decide whether to include in nav.) In 7.2 the builder for dynamic metadata is not going to suck quite so much. (more like the data def builder.)

If you load a DTD, then editing will be context-aware. Sexy. For building those dynamic metadata items (where I’ve just been copy/pasting samples from the HH KB) – thank goodness next version won’t be necessary. (when is that next version coming)

Default to not including in nav, which seems like the more sane choice.

Random thought: in theory you could create a link asset and add IT to the nav, which would probably make that a more consious decision.

outline view. (under the project file list)

ctrl+shift+i does prettifying (I’ve been using a Coda plugin!)

“transformation scenarios”? I’m not seeing the little xml > xsl dropdown thing that I use. XSL engines. Did I do that in some other setting?

FO Processing to do PDF.

Oh, add XHTML to a default thru the scenarios?

XSLT/XQuery input – shows a tree of the XML that’s being transformed. Click and drag into the xsl file?! DAMN. Also with the context-awareness. So all this requires setting up the transformation scenario? But seriously.

Skipping to something “nifty” ๐Ÿ™‚ — in site definition, include class “footnote” – how the heck does that work?

Numbering for footnotes via JS inside XSL. Not quite sure I’m following, altho I think if I saw the code for a while it would click. I bet this would be sweet for grouping too.

q: handling includes: he has two different include tags, one local and one for on the server, whichever commented out that he’s not using. a little bit chunky, but not horrible.

showed the debug, so just running to where the cursor is, to figure out a fragment.

Calendars

No knitting for me in this session. (Current project is at a stage where I have to stop.)

What kind of calendar info is kept in Banner?

He uses web services to auto-publish & update. YES.

Good URLs.

Does create a lot of pages in Cascade.

Ah, they have room schedules, every room on campus? O.o

Homepage has little date block with key calendars, in month layout.

They use banner for most of their scheduling. Interesting. So I’d need to find the R25 equivalents.

Full list for each day, then links to every room. Holy moley.

Also a weekly daybook type schedule with rooms.

Oooh, also a building map.

They really have pretty much every form of calendar layout you could imagine, often broken out by category.

Also faculty schedules. O.o

Wait, did he just say that they used this stuff to power digital signage?

Ok, now get to HOW…

C’mon….

(Really wishing for knitting.)

Yep, digital signage. And a wayfinding app…er, kiosk?

All the input for all the feeds is in banner.

Feed blocks for each of the (three) feeds.

I can so totally do this, if I can get stuff out of R25 and/or figure out how to send stuff from Drupal to Cascade.

Choosing the tool: grouping/recurrance really does require Velocity. (dammit. altho not surprised.) but basic stuff, no recurring: XSLT.

Block with data definition. So blocks instead of pages?

I’m not really following *how* he’s doing this. ๐Ÿ™ And I’m tired.

Wait, what? This seems a bit convoluted. Forget that: WAY convoluted.

What I really want to see is what the web services code looks like.

I’m sleepy, and I’m ready to get back to work, to try doing some of this stuff.

Wish I’d gone to the workflows session the last time, I heard really good things about it.

Looks like the rain is going to have passed through by the time we get out, so I’m 95% sure I’m going to take bus/train out to Decatur to go to a yarn store, B&B (!), and maybe get dinner, if I can do all that before it gets *too* dark.

All his stuff is on github.com/ericepps/cascade-calendar

Hm. He’s writing CSS in Velocity? I don’t even.

Creating magazine in Cascade

His group is similar to ours, in re: being under advancement/external affairs.

The big issue of each issue having its own look/feel for the most part.

config set for each issue

(at what point do magazines go digital-first?)

structure is fairly consistent

2 thoughts: put magazine in its own “site”, and use it as testing for rwd &c.

when IS the next magazine due?

like the folder setup, seems like there’s a lot of repeating of files, which always makes me a little o.O

Journey from 4.9

It’s funny, 4.x in Cascade & 4.x in Drupal seem to have been almost equally crazy, although in noticably different ways.

they came from home-grown CMS.

one of the presenters has a fairly noticable accent, another presentation I’ll have to do extra listening.

wonder if Luke was at the same early user conference that they were at.

default examples? (I’ve found some useful things in those files.)

I need to join the listserve(s). several ppl have mentioned it.

production & test – prod goes to 2 public load servers, plus a “QA” for seeing things in process. plus they have a test instance that also goes to QA server.

_common_ folder was for resources that actually go to the server, CSS, JS, etc. – with some aliases via httpd.conf

interesting image of their (old) folder structure. also, config setup diagram.

seriously, even with the “old” (global) way, their setup was pretty damn sharp.

[oh great. I need the damn access code to get online. thank goodness for the WP app.]

using PHP includes for some of their navigation? why use Cascade, then? Really.

wondering if I ought to have gone to the workflow session. it’s interesting, but I really want to see how they got to the next thing!

“Artemis” single source dynamic content delivery? Wonder what that’s about.

interesting analogy to his brother’s gas station moving from separate pumps to the single pump with buttons for different gas: a lot of time/work/money up front, but huge savings ove time.

they had ~390 templates, ~600 config sets, ~350 users. the hell? ok, even I know that’s crazy-pants.

test instance of cascade “took over” QA server for a while. Interesting.

still wondering if we could do site migration in stages.

started with shared assets site, moving _common_ to _assets site – again, for shared css/js/images – the underscore mostly just for alphabetization reasons. with global templates (2, could be 1), global content types/configurations, and sample content. still looks really complicated to me.

then the main sites and really complicated sites.

created site migration inventory spreadsheet. love that sort of thing.

new sites had their own content types and shared some of the common ones.

and a spreadsheet of users to create new roles & groups.

heck, if I can do what I want to do over the next year, I should submit a presentation proposal. I can’t be as mind-blowing as UCDavis, but I think I can do some pretty cool stuff.

data definition for google analytics keys, and then an index block, and data definition blocks. makes sense. although I’m honestly wondering if we should move all the e.e sites to the SAME GA key, since we don’t have as diffused needs. (OTOH, I bet there’s some groups that would really appreciate having their own separate thing. there’s a whole thing to talk about in re GA.)

should have gone to the workflow session. I still have no idea how the hell workflows are supposed to work.

now only have 2 templates, about 10 config sets, have increased to 450 contributors.

the common “site” thing was clever, but caused problems in test. not really sure what they did to fix, sounds like maybe they went back to aliasing. (altho we could probly get some speed boosts by having a subdomain for those sorts of assets.)

they were able to get schedules (time/day/room?) into Cascade. could I do something with R25 api? so that you wouldn’t have to log in to my.e.e? is that even a good idea?

q: share block content across sites? yes, like what they’re doing with the common thing. (this guy from alaska down the row from me was asking good Qs yesterday, too.) users to have to browse to the different site, but my instinct is that it’s like picking from a library.)

didn’t really understand the question.

q: did they investigate using web services to migrate? no, altho some ppl do.

Modular Content

I met these folks earlier today. Nice people, sounds like they’re doing interesting stuff.

Wow. This is pretty intense. Also, they PREPARED CONTENT AHEAD OF TIME.

This is almost more than I can handle right now. I don’t even.

It’s a bit like what I’ve been doing with content types, but even more so.

Like I want a whole day of playing with this. Because right now it makes my brain hurt.

Blocks with data definitions is apparently the key.

They have a handout!

Wow, that’s a hell of a diagram.

“Blockhead” (index block? is that like the calling-page index block? it must be.) knows which blocks have been included, and then there’s a region in the template that adds the right css/js. THIS IS AWESOME.

I’ve done so much knitting today that I may have accidentally made my cover too big. :\

Boggling. Really, truly boggling.

There’s a block that does a bunch of configuration stuff. It reminds me a LOT of theme settings in Drupal, but with a bit more detail.

Also, using a block with a data definition for the Contact block?!

Wait, is this per page?! OMG. (Everything about this is OMG.)

If you combine what they’re doing with the configuration (etc) blocks with applying XSLT to a template, you could get something pretty trick.

I will compare this session to the one I saw at a Drupal thing in West Seattle where poplarware (Jennifer) talked about CCK (and maybe views, I don’t remember), as in: a bunch of stuff clicked at once and I could start to really understand how to do stuff.

Putting JavaScript into a Format

This one may be even nerdier than the previous ones, because it’s a very particular technical thing.

(there’s Justin’s doppelganger again.)

Is this going to be another knitting session, so I don’t get hopelessly distracted by Twitter?

Chrome XML Tree extension. Just FYI.

Dammit. Velocity.

Oh, this is like the thing I built. Only I like my thing better.

json? with sliderjs. i bet there’s xslt out there to generate json.

start-code vs start-root-code (and she didn’t know why she used the one she did) escapetool.js?

“if you have departments that want to use the same exact slideshow” — when the hell does THAT happen?

a questioner just described EXACTLY the same thing that I did. also: thought: zip archive to import all the pics, then go into each one to set up the alt/caption?

random generation of content via js? with a rational fallback, that’s not a terrible idea. will have to look into that for big block on homepage.

there was some other idea that I just had, but got distracted by the example, and errors therein.

Oh, now I remember: using hosted jQuery with fallback to local version, because ppl often have it cached.

Web Services

Oh dear, heavy accent. Which is fine, but will definitely take some extra effort to attend to.

SOAP? Really? Not REST? (Not that I know much about either.)

Anything with bulk changes. Is this where the “bug all page managers” thing I want to do comes in?

Oh….also could use it to create a form elsewhere and then turn the submissions into assets. I guess this is the thing that I was thinking about for calendar and/or catalog.

hmmm…authentication piece could be tricky. (remembering the issues with publish sets.) create a “web services” user? guy sittingย  next to me said they do something like that.

idea: drupal module for writing to cascade? are there soap-related modules?!

so every time something gets edited in the CMD (for example) it also gets sent to Cascade AND published. No PHP. Automatic URLs/Page Titles. I think you could even do the preview with that technique. Maybe.

Mind blown.

And now I have a slightly better idea of how SOAP works in PHP, which seems a lot like how Ajax stuff works in JS.

Template XSLT Formats

Trying to decide whether I’ll want to knit during this session. (And whether I want to go to the next one at all. Neither one is really calling to me.) Transforming one kind of XHTML into another XHTML? oh, hold on: this means i could make the content talk to the navigation so I could do that “you are here” thing I’ve been wanting, WITHOUT js. conditional js, based on what the content is. maybe obviates some things i’ve looked at content types to do. I did take out my knitting, tho I’ve had to stop a couple of times. this is pretty stony, now that he’s getting into it, but he started with a lot of talking about talking. start-root-code THIS. this is what i wanted to do all along. but wait: does this mean you have to put the content into the asset format as actual stuff? “[div id=”hideBodyId”]special[/div]” – how odd. but the 2nd format removes those. could you put a definition list in the first format? that would be super nerdy. www.iu.edu/~pagriet/csuc12/ oh, now I get it: you attach a format to the template in the template editing interface. (a really basic thing that was confusing me the whole time.) lightbulb just came on for reals. instead of all ids – “hideTitle” “hideBreadcrumbs” or “showBreadcrumbs” – use classes “hide” and “show” and then ids (or definition list) to know which thing.