Work Archives, page 18

It’s hard not to blog about work. It’s hard to blog about work.

like a warm laptop on cold toes

how voyeuristic to see myself in a photo i didn’t know was being taken.

justin taking a picture on the coast in tanzania

it’s easy to forget what your body looks like, especially when you’re doing some idiosyncratic thing like scanning the horizon for an interesting photo. catherine took this during the same outing as the two photos below. it seemed like it was going to be overcast and stormy, but the clouds stayed out at sea, affording us some very dramatic lighting conditions.

well, i’m back at the hotel from the last full day at the office. friday is a local holiday, and the office only works half days on the last day of the week, so tomorrow is a sort of day that doesn’t count.

today we showed everyone how easy it is to export data from the database and create graphs, which I hope entices them to actually interact with it when we leave. i’ve also ventured into the usability quagmire of right-click context menus, as a way to remove the button-clutter for infrequent functions.

so i don’t actually leave town until late late saturday night, getting into chapel hill sunday evening courtesy of favorable time zones. between now and then, i just don’t know what i’m going to do (read: hang out at the pool).

first, a picture

this is a view of the indian ocean with the tide out as seen from the sea cliff. i’ve marked with an arrow where i believe i was standing when i took this photo. perhaps this more aptly conveys what i meant by “i got in the ocean”.

view from sea cliff

how bout a little on what i’ve been up to?

the piece de resistance came today: i made access (vba actually) copy some data from a query into the windows clipboard in a tab-separated format so that if you pasted it into excel or powerpoint, you can very easily create a graph!

which only took an hour this morning after i found this, but getting there required a super heightened awareness of the process of getting any manner of data from the database into a very specific “graph-able” format in excel. and that required a complete rethinking of how my database describes the data it stores. and that of course required a complete redesign of all the interfaces required for this data’s entry, review, retrieval, etc etc.

in other words, the database had to be completely redesigned in time for a 3:30pm meeting-cum-romp today (Tuesday!) with the health office chief who will be out for the rest of the week. (perhaps this is a good place to remind my dear readers that i arrived in tanzania last tuesday after traveling for three days)

it occurred to me today that this has been a lot like outward bound, except with laptops.

well, the meeting went well, the copy to clipboard feature is so cool that it’s almost underwhelming in its shear simplicity and effectiveness. my old user-interface paradigm is now no longer “mode-ed”, making it less like vi and more like word. there are still too many buttons, but that’s a usability dilemma for another day. here’s a not so interactive glimpse at what this all means:

indicator form

dear world,

i have been busy lately. but it’s a different kind of busy than usual. when i am usually busy, it means i am passionate about something i’m doing, i’m fired up about something new and daylight or going home or eating all fall by the wayside.

school is another kind of busy. school busy means i’m forced to jump through hoops for the sake of self-improvement by specified arbitrary deadlines. and the payoff is not something i have to live with or work with or support for months afterward, but something i can abandon and forget the moment the deadline passes. [i am looking forward to the end of this kind of busy. the best part of school is the people and i will sorely sorely miss that.]

my technical assistance trips to farawayplaces present a whole other kind of busy. during these trips i get dropped in a foreign world and for five or so days i have to do amazing feats interpersonally and technically, and then i disappear. and maybe i come back to update what i did the first time, or maybe the amazing feats of database programming can be useful at home. it’s sort of a blend of the two busies above and the one below.

the busy i’m experiencing this week was unexpected. for instance, today i got to work at 10am (i was pushing for 9am) and i left at just before 11pm. without saying much that does violate some kind of non-disclosure agreement or isn’t already obvious, we are trying to prepare a five year, $70 million dollar budget. our current project was bid for $22 million and was eventually increased to $47, lasting a sixth year. $70 million dollars is a lot of money, a lot to account for, and a lot of spreadsheets. the final proposal in it’s entirety will take up nearly four 3-inch binders. with the budget itself requiring at least two of those.

and that is what i’m working on. relentlessly formating, paginating, editing, revising countless spreadsheets. it’s not just that i’m bolding headers (which I’ve been doing a lot of) but occasionally discovering and fixing errors in the hundreds of thousands of dollars. and suddenly you’ve got 200,000 or 600,000 that you didn’t have before. and the budget has to balance to 70,000,000.00. to the penny.

the coolest thing is that this proposal, if accepted, is the lifeblood of the next five years of our project. my name is in several lines of that budget, my salary is accounted for. and so all of my effort whether it be debugging or hole-punching (i have not done that yet) seem entirely appropriate. i would be jealous otherwise.

–justin

State Transition Diagram for the CRUUD model

Having designed and redesigned countless user-interfaces, some for the web, and many using Microsoft Access, I’ve started more religiously employing the CRUD model, which stands for “Create, Retrieve/Read, Update, and Delete”. These are the four major functions a user-interface–especially one the interacts with a database–must perform.

Most users now expect fairly robust “undo” functionality, therefore I’ve added a fifth function to the paradigm, “undo”, giving birth to a new acronym: CRUUD (pronounced /crude/). The undo action provides an important alternative to the update action.

CRUUD State Transition Diagram
CRUUD State Transition Diagram

The diagram above is my present vision of how a professional user-interface should respond to user-interaction. The blue rectangles are the two main states, and in many cases are the same user-interface. The pink rounded rectangles represent the user-triggered events (usually implemented as buttons). The logic that the system performs in response to those events are captured in the diamonds and parallelograms. Below I’ve included two screenshots of a user-interface in both of the two states.

CRUUD State Transition Diagram: review state
Person Form in Review Mode
CRUUD State Transition Diagram: edit state
Person Form in Edit Mode

Second trip to Phnom Penh, Cambodia

In May of 2003 I traveled back to Phnom Penh, Cambodia to continue some work I had started there in January. The trip was two weeks long, affording opportunities to visit the genocide museum and the killing fields, as well as the ruins of Angkor.

wat phnom: 'phnom' means 'hill' in khmer, so this is the temple on the hill.
Wat Phnom: “phnom” means “hill” in khmer, so this is the temple on the hill (after which Phnom Penh is named)

Continue Reading