A Retrospective on Cleveland qua æsthetic

Cleveland is a funny place. Like Wisconsin, it’s significantly greener than Illinois, and I find myself surprisingly aflush at the sight of all the verdure, but Cleveland is like a rusted, hulking monolith overgrown by jungle. The juxtaposition is frightening: while lost, we drove along so many leafy parkways lined with large embellished houses, but our destination was inevitably in the sprawl of the city itself, hemmed together with slummy, apartmented streets and the blackened faux-marble of the botanical gardens, the public library, and the enormous Presbyterian church on Euclid Ave. One building along a main drag called Chester St. appeared to have two dark bronze statues of skeleton warriors, as though someone had stitched together twisted detritus from a plane wreck to make this thanatotic duo, their sharp ribs prominent, their wielded swords even moreso.

It rained all three days we were there, in random spurts of thunderstorms. Cleveland’s drainage—at least downtown—isn’t the best, as even a relatively gentle storm left standing pools of water on the roadsides and muddy ponds in the grassy medians as late as the next morning. I’ve already said that Cleveland is organic, but add near-constant construction and rain to the list, and the city itself is a violent storm of confusion, parkways ceding to slums, trees to effaced apartment complexes, prestigious university to vacant, overgrown gas stations.

I realize that I saw but a fraction of the city, but I would expect that the university-dominated section would be a thriving little community of its own. Perhaps things are different during the school year: I saw few college students at all; only middle-aged conference attendees and the occasional gaggle of misguided tourists—why Cleveland?—gaping at the squalor.

A Retrospective on Ben qua Conference Attendee, as Well as a Discussion of Code

But enough sentiment. My own journey to get here, in a plain grey van, speeding down I-480, was just as mixed. I woke at 7:09 this morning and —my understanding being that only my boss and his boss were going to the presentation at 10:30—went back to bed, to be awoken exactly four hours later at 11:09 by the sound of little kids (?) playing soccer on the athletic field next door. I was alone—all four of my companions had gone to the presentation, had even called for me through the door of my sleeping area, but to no apparent avail. The neck-ache I awoke with had nothing on the painful feeling of being such a schlub.

I mentioned last night that the recurring theme of the conference was that Oracle’s portal is utter shit. To that end, I find myself excited not by the opportunity to work with it, my loving ministrations being severely limited by its obstinate nature, but the opportunity to work with Tim, our DBA and resident Java guru, on his separate-but-not webpiece that will tie into the portal. Having seen yesterday’s presentation on Web 2.0 and AJAX, he and I decided that it would be a good idea to integrate it into his webpiece. Since the logic that drives the overhead menu requires database calls, we thought that using AJAX to load content into the specified area would reduce overhead and feel more responsive to the user, broken back-button or no. So, during the afternoon session on Thursday, I found a little AJAX script and made a working prototype with static HTML. Tim came back from his afternoon session with news of OS3Grid, a Javascript-based table system that allows for dynamic reordering, editing, and effects that wouldn’t be possible in IE with pure CSS. The only problem is that they don’t want to work together: the function to render the grid is run on page load, which doesn’t work if you are loading the grid’s host page with AJAX. I hacked up a fix by adding a new line to the AJAX script’s pageload function that reevaluates OS3Grid’s table-rendering function, forcing the grid to be rendered when the page was loaded with AJAX. The only problem is that each grid has a specific line that has to include the name of the parent div that hosts the rendered table, and since we’re guaranteed to have pages with multiple tables, we can’t simple hard code a standard id into the function and let it go. I will need to research other methods of forcing the script to run.

These are both neat Javascript tricks, but the real question is how well we can get them to work with the database. The AJAX function for navigation is entirely client-side: there’s not yet AJAX to submit any forms or grab any data from the database—it merely calls a JSP, which in turns talks to the database. One of the interesting features of OS3Grid, however, is the ability to edit table contents, and I’d like to make it so that an edited table cell submits—via AJAX, of course—back to the the database the changed contents. For that, I’ll need Tim’s help in using AJAX to talk to Java to talk to the database. It’s possible, of course, but my experience with Java is so limited that the slightest problem will sending me running to Google. Still, I think that this has the potential to be a really great interface, and I really like working with Tim because he’s truly excited about what he’s doing, and he asks things of me that push my limits and force me to improve my knowledge set.

§1236 · June 30, 2006 · 1 comment · Tags: , ,

Tonight, I blog once again from my dorm room.

There is a certain special something about the get-togethers of IT people and programmers. On the surface, much of it may look the same: the same beer is drunk in the usual amounts, there is some bad karaoke by brave souls—there is still the same social awkwardness, if compounded somewhat by the hermetic nature of some programmers, myself included, who are less than stellar at niceties.

No, what is really special is that these people will all bitch about the same thing, and the tenor of the bitching becomes harsher and less jovial the more beers they consume. If I have learned one thing during this conference, it’s that no school here really likes Oracle’s portal. And why should they? It’s the best that 1998 has to offer, refusing to integrate with most other systems, comprised of a supremely messy set of logic that produces an even messier webpiece that can only be fixed by hacks and kludges. What’s more, we’re paying thousands every year to belong to this consortium that’s based on Oracle’s portal, and yet I’ve yet to hear any really positive things said about it.

Funny how nobody asks the technical people which software to use, hunh?

Tonight was a conclusive party or dinner or both which was attended by most of the conference attendees. Mostly because there was free beer. The shindig was held at a riverside bar/cafe called Jillians, nestled beneath a tarp-covered bridge and flanked by a coffee-brown river with an Indian name that I don’t remember. The food was pretty good: rather dry chicken breasts in a sort of runny alfredo sauce, diced roasted potatoes, mostaccioli wok-fried with red peppers. An overly-nutty slice of carrot-cake for desert. The bar initially was having problems with the tap, but I managed to get both the Great Lakes Dortmunder and the Great Lakes Holy Moses from the tap, and both were good: the Dortmunder was a run-of-the-mill—but well done—lager, and the Holy Moses was a darker, sweeter ale redolent of molasses. I won’t bother describing the Amstel Light, which I should not have ended with, but the Sam Adams Summer Ale was also good, if overly foamy and cloudy because of the issues with the kegs (also, it was just a little bit urinish).

Tomorrow, I don’t even have to get up early, as my boss and his boss are making an hour-long presentation at 10:30, and we’re basically getting right back on the road after that, hoping to somewhat avoid the horrible I-80/I-94 rush hour traffic, though I’m not so naïve as to think we won’t hit it anyway. Oh well, I’ve got to slog through Rousseau’s The Social Contract, so I’ll keep plenty busy.

§1233 · June 29, 2006 · (No comments) · Tags:

I blog this afternoon from a comfy chair in the Dively Center at Case Western.

I hope I am not beginning a trend for this trip wherein some disaster awaits me ever morning. Though my back is considerably better—it only hurts, and less so, when I breath or move to extreme degrees—but my entire neck was stiff and sore, and I had a bitching headache. It felt like I had been biting down in my sleep, and there really wasn’t a single part of my head that didn’t hurt. As often accompanies my headaches, my stomach was a little hollow center, a precursor to nausea. I showered and didn’t feel better, only tired. I ate an apple and drank a bottle of water with my vitamin. I begged some ibuprofen from a companion. I still felt like shit.

I could barely even touch the coffee and muffin at the meet&greet at the Dively Center, taking a few sips and a few bites and slumping down in my chair while the rest of my group talked about portals and databases.

The first session, which started at 8am, was a couple of the University of Montana’s lead programmers talking about Web 2.0, and more specifically, how they leveraged AJAX (specifically, DWR) in their portal. It was actually interesting, because they showed code and talked about what happened and promised downloadable proof-of-concept. As you might expect, their modifications and thoroughly unsupported by Oracle, because the portal itself is far too shitty to support such a modern feature. The AJAX changes take place outside of the PDK.

In terms of their portal: after testing some of it, I must say I’m confused at some of the spots where they decide to use AJAX, such as with their login script that leads to an entirely new page load, anyway. That, and their display code is still a mess, as I mentioned. I am familiar with AJAX, being a child of the Web 2.0 generation, and in fact I use AJAX comments here on my site, which I fell in love with while I used K2, even though I grew to hate K2 itself. Go ahead: try the comments out on this entry.

Despite how interesting it sort-of was, I could think of nothing else during the presentation other than how much I wanted to throw myself down a stairwell. Or at least go back to the dorm and sleep. So that’s what I did, as it’s not even a 5-minute walk from the Dively Center, first calling the ever-beautiful Allison and wishing her a good morning, and then taking out my contacts, setting my alarm for an hour, and going out like a light.

I awoke just before my alarm went off, a bit hot and a lot wrinkled, but feeling 100% better. I splashed water on my face, put my shoes back on, and hightailed it down to the Starbucks on the ground floor, where the harried—and apparently only—worker fulfilled my order of “White Chocolate Mocha” with an iced White Chocolate Mocha. Apparently, that’s her default in the summer or something. Despite my love of hot coffee, I figured it would be good, and it is: I’m drinking it now while I type this, waiting for my boss and the rest of the cadre to finish with their current sessions. Me, I’m just happy to feel better.

§1232 · June 29, 2006 · (No comments) · Tags:

I blog tonight from my dorm room at Case Western.

When I first woke up this morning and rolled out of bed, I had no inclination that something was wrong. Likely, my scope of movement when I first awake—5:45 or any other time—is circumscribed to the point that I’d barely notice missing limbs. It wasn’t until I was in the shower, trying to wash underneath my arms, that I realized that something was terribly amiss.

In terms easy to understand, it felt like someone was stabbing me under the right scapulum with a knife every time I twisted, stretched, or even inhaled. A variety of diagnoses occurred to me, but of course I knew the culprit: stiff, tumescent dorm beds make for stiff, groaning web developers. And of course, that goddamnable knot has remained beneath my shoulder blade all day, so I sound like a decrepit old man whenever I so much as hoist my laptop case onto my lap, groaning all the way. No amount of bending, stretching, or funny breathing seems to help.

In fact, the only time when it feels tolerable is now, after 40 or 44oz of Killians from Applebee’s, where we went for dinner—that is, after driving around Cleveland, lost, for about an hour, in sporadic emeses of ballistic rain, searching in vain for some lost bar named after a monkey.

We were all in a fairly good mood—the first day of the conference, though eminently forgettable, was hardly bad, and at the very least it reinforced suspicions we had about the technical feasibility of certain things. After a successful trip to Wal-Mart for essentials like a toothbrush and soap, we prowled for a restaurant/bar. You can perhaps picture the absurd sight of a large, 11-seat van in muted grey tooling around Cleveland, basically in circles, full of five geeks in search of meat and beer, navigating only by vague, natural-language directions.

It turns out that the monkey-named bar was replaced by a quick-care medical facility before our arrival in Ohio, and so we defaulted to Applebees, which of course was about a 30-second drive from Wal-Mart, but which we arrived at only after a ridiculous 45 minutes of bewildered, aimless circumnavigation of downtown Cleveland. The Applebees in Joliet, whose praises I normally sing, would be ashamed by the Applebees in Cleveland, which is not only slow, but serves tough, dry steaks. About the only thing to be said in its defense is that is has Killians on tap.

I really don’t have much to say—sadly, even the vacationary life of a bunch of technology geeks is about as interesting as carpet lint. The most that can be said for me is that I’m considerably funnier with two tall beers in me, though I can attest that when I am truly inebriated I am solemn as a caricatured Indian chief. C’est la vie.

§1231 · June 28, 2006 · 1 comment ·

I write today from the Dively Center of Case Western.

I woke up at 5:45am this morning to the screech of my alarm clock, which somehow seemed even more grating than usual, having been one of the few amenities supplied by the otherwise—ahem—austere housing department here (for which see my previous post). Last night, after I’d finished blogging, I realized with some degree of dread that I’d forgotten my toothbrush, having brought indeed everything else required for the care of my teeth except the most basic implement. At midnight in a strange city, I had no recourse but to go to bed feeling somehow fundamentally dirty, and waking up with my teeth feeling mossy. Today, I am told, we will having a shopping spree at Walgreens or Walmart or whatever store we can find to stock up on the essentials that we weren’t provided. Were we in a hotel, there would at least be a vending machine with toothbrushes, but sadly the dorm we are staying at appeared entirely vacant last night except for two malcontents watching the BET Awards in the common room at a volume loud enough to pulverize concrete.

The “free swag” situation improved somewhat when we arrived at the Dively Center: upon registering, one received a blue CampusEAI lanyard upon which was attached a name tag. Ostensibly, everyone is to wear it around his or her neck during the conference, but afterwards, of course, it can be used for pretty much anything. More importantly, our “free gift” was a Belkin 4-in-1 pen, a heavy metal affair with a bright bluish reading light, a laser pointer, a ballpoint pen, and a PDA stylus in one phallic cylinder. It requires four tiny batteries (included), but considering the number of times just today that I’ve accidentally flash the reading light or the laser, I have a sneaking suspicion that it will die within a month and I will have no desire to buy more batteries.

The lobby of the Dively Center was a real sight: wall-to-wall geeks, some of them long-haired misanthropes that look like they spend most of their time in the dark using vi, some of them crisp-collared management types, always greying just slightly at the temple and generally looking affable, and even some women, which is a rarity at technical conferences. I seem, as I suspected, to be the youngest person here. No matter: the first meeting put me in my element.

From 9am to 11:30am, I and a laptop:human ratio >1 were regaled with advice on how to attack the Oracle portal’s styling, either using the built-in style generator (which is, if you have a speck of intelligence, obviously crap), adding extra CSS (which we already do), or use a custom renderer. You see, Oracle’s portal allows one to customize where the content area goes, which means that I can place the portal contents within a standards-compliant template. The bad news is that the output created by the built-in code escape #content# is tables nested inside of tables, nested inside of tables. It’s enough to make you sick, and the end-user really has no control over what is outputted. The instructor assured us that later in the afternoon, he would go over customizing the renderer that outputted said tables.

Another attendee, who happened to be from a British university, and thus immeasurably fun to hear speak, complained about Oracle Portal’s total lack of compatibility with anything resembling a standard. “Good,” I thought. “Maybe I’ll get some answers. And maybe this guy will show up again and I’ll get to hear his accent more.”

Lunch was buffet-style, and was actually quite good. The chef—a trim black man with a rakishly-askew hat—announced the courses and the soups of the day, and I got lasagna and a turkey sandwich and pasta salad and cream of chicken soup and was quite stuffed. I only had to stop eating once, when trouble back at the university forced me to whip out my laptop and troubleshoot.

The afternoon session was a short one, only lasting until 2pm, and was actually no help at all. The instructor described editing the various files used for rendering, but it occurred to me in medias res that what I want to change in the portal—that is, changing the tables-in-tables-in-tables structure into a much simpler one based on flexible divs, ideally AJAXified ones—isn’t really possibly without a lot of work, because Oracle’s interface for adding portlets to a user’s page involves essentially a table-splitting mechanism, and I gather from the code that trying to change the way it’s outputting might break that. At any rate, it’s something to look into.

So here I am, drinking tea and eating an apple, typing on my laptop and its persnickity wireless network card. I relish the thought of getting a toothbrush and possibly beer. I sort of relish the thought of sitting down and reading Rousseau’s The Social Contract. I don’t know how in the world we’re going to stretch that out for the rest of the day.

§1230 · June 28, 2006 · 4 comments · Tags: ,