06/19/2008

XPages in Domino Designer 8.5


If you've downloaded the public beta of Domino Designer 8.5 (often referred to as DDE, or Domino Designer in Eclipse), you should have seen the new design element called an XPage. If you have been living in a cave (hey, hobbit, leave the zombies alone...), XPages are a web-only (at least for now) canvas upon which you can lay out various controls to produce radically new Domino application designs. XPages are to traditional Domino web development what Notes 4 and LotusScript were to @formulas and then-traditional Notes client development. No kidding, XPages allow for a massive paradigm shift.

Along with Andrew, Nathan and John (and quite a few others), I was at IBM in Westford this week for an class on XPages. We spent most of our time saying things like, "But that means we don't have to..." or "That means now we can..." The possibilities are endless. And I'm really - really - impressed. I've been beating IBM up privately over the fact that the shiny new LotusScript editor isn't in 8.50, and I thought that DDE without it wasn't enough of an improvement to bother with. I was wrong. Completely, totally, utterly wrong. If 8.50 included XPages and nothing else, it would still be the biggest thing that's ever happened to Domino development. Don't take my word for it, though - try it out yourself. And definitely keep an eye on the blogs over the next few months, because I guarantee Nathan's tutorial (on, get this, creating a JOIN in a Notes view - seriously!! Go read it now and come back, I'm not going anywhere...) will not be the last really cool XPages snippet you see.

Things that are difficult or impossible to do without XPages, but easy with them:

  • As mentioned above, Nathan already showed you JOINing data from multiple views and forms into a single view, in a quasi-relational way.
  • Similarly, performing quasi-relational updates to multiple documents based on a common key goes from being annoying to being completely trivial, because on a single XPages you can bind fields to multiple different forms/documents and save all the elements at once.
  • Paging through views, a la Google search results, which currently requires jumping through hoops, is as simple as dropping a control on a form. And yes, it handles responses and categories correctly. There are several styles built in, or you can choose to create a custom one.
  • Tabbed forms, currently hack-tacular, are also just a control on a form.
  • Multiple views and/or forms on one web page, which is another hack-tacular treat, typically requires iFrames and isn't supported visually in Designer, is trivial because XPages doesn't care how many view or table or field (or ...) controls you drop on a page.
  • Complete control over view output, including multi-row view entries, is as simple as using a repeat control to let you iterate over the view entries and do anything you want to them.
  • Search results, and their UI, and their sort order? Not a nightmare anymore. A simple matter of passing the search query to a page with a view control (or a repeat control), setting a 'search' property to reflect that query, and configuring the control and the XPage's layout however you want to see it. Passing that query involves using the application (or session or ...) scope, which you can see in Nathan's tutorial.
  • Date or time controls, list boxes, combo boxes, file upload/download, and rich UI controls in general, don't require hand-written html, css, and javascript - they're built into XPages as controls you can just drop on an XPage.
  • AJAX partial page refreshes are as simple as choosing which elements to refresh.

That's not a complete list by any stretch of the imagination. That's off the top of my head, based on things I was thinking about during the class. I bet the other geeks who were at the class would have a similar list containing the things that stuck out in their minds. The point is, there is so much power and flexibility available to us that the solutions we build are only going to be limited by our own imaginations.

When I originally heard some of the capabilities we would be given by dropping controls on a canvas (seriously, IBM, that's what the name should be, not XPage), I thought we would be restricted by what those controls included when IBM built them. In other words, I thought this was just the Java applets all over again. And, as you should know by now, I was wrong. First of all, it's possible to build custom controls ourselves. Secondly, if we don't like the way the Designer's IDE is doing something on our XPage, we can go directly to the source and edit it manually. And finally, just about everything I saw, properties or events or labels, can be computed. In his 'join' tutorial, Nathan points out the 'little diamonds' that allow setting things dynamically, and the fact that they exist is extremely (or XTremely?) cool.

Quick note: this deserves an entire entry, and I'm sure somebody will write it if I don't get to it first, but the server-side JavaScript we can use all over the place includes JS versions of the back-end LotusScript classes. So we not only have @functions in the JavaScript (you did read Nathan's tutorial, right?), we also have access to back-end LotusScript objects. If your primary skill as a Domino developer revolves around your ability to manipulate those classes, you aren't going to have much trouble moving to JavaScript on an XPage. LotusScript and JavaScript are syntactically different, but there are a lot of similarities, and going from one to the other isn't particularly difficult.

Conclusions: These are MY conclusions, not IBM's or even Acme, Inc's (the legendary employer). And I am, as always, an idiot. Believe me at your own risk.

  1. XPages will give Domino (web) developers a 500% productivity increase. For free.
  2. XPages will allow us to build applications we either cannot build at all or can build only at prohibitive cost and effort now.
  3. Once XPages are available in the client (not hinting at NDA secrets here, I'm not saying that will happen at all, much less any idea of when, but IBM has been asked to provide that by quite a few people, publicly, and they aren't idiots - they have to see the potential), forms, pages, framesets, subforms, navigators, outlines, and MAYBE even views become effectively deprecated - or at least unnecessary. This is huge. If XPages, and the custom controls that come with them, contain the entire application UI and business logic, why use the traditional elements at all? So many of our current limitations and restrictions go away with XPages, and they are so much more powerful and flexible that we won't WANT to use the old elements. And hopefully IBM will develop future XPages iterations in such a way that we don't HAVE to. I'd like to see a data schema editor, rather than binding my XPage fields to fields from a form. A decent XML editor would do quite nicely. I'd like to define view indexes, but not formatting, and I don't think I need to see the view in the current visual representation in order to do that (think SQL). Maybe those things are impossible, but that's what occurs to me when I think of a world where most of the current UI design elements are irrelevant.
  4. JavaScript is going to be the new LotusScript. Or at least that's MY theory. And this is very good news. It's a scripting language, which means it has a low entry point for newbies, but it also supports a very high level of sophistication (see: frameworks like Prototype, jQuery, Ext, etc). It is also extremely popular and well-known, which is a nice change for us Domino geeks.
  5. Number 4 does NOT mean LotusScript is dead. The core language hasn't changed much in years. The new developments are almost always in the Domino classes. I don't expect that to change. And I definitely expect to see a real LotusScript editor in Eclipse, in case you're thinking its absence from 8.5 means IBM won't build it at all - that's just not going to happen. Think of LotusScript the way we think of @formulas. They still exist and are often the best way to get something done, they are still expanding in functionality and power, but they are definitely superseded by LotusScript as the development language of choice. I just expect JavaScript to do the same thing to LotusScript, and LotusScript to remain a useful tool just like @formulas.
  6. XPages are NOT difficult to learn. They are very powerful, very flexible, and the possibilities may seem overwhelming at first. But - and remember, I'm the guy who ranted at great length on this site about how unnecessarily difficult it was (and is) to do CA and Eclipse plugin work, so I'm not a PollyAnna when it comes to this sort of question - it isn't difficult to USE the techniques. The difficulty will lie in learning what they all do, and figuring out which one is the best way to accomplish a particular goal. But the actual code and the techniques involved? Not hard at all.

Start working with XPages in the beta. Really. And be prepared to be blown away.

05/06/2008

Of Brothers, Big and Little


Cory Doctorow has a new book out. It's aimed at the YA market, and it's called Little Brother. If you follow that link, you'll learn (if you didn't already know) that Cory gives his books away for free, in various downloadable formats. But we're all grownups. We can afford a book, and the man who wrote this one has earned the money. Go buy a copy. Read it. Then give it to somebody else and nag them until they read it. It's not the best book ever written, but it is very, very good. It is not just a very engaging read, though, it is also one of the more important books I've read in a while. There are 14 year old kids everywhere reading it and deciding how this world will work in the future. Maybe the grownups should do our part, too.

Oh, and thanks, M1k3y.


05/05/2008

Why Twitter Sucks


Mooney would probably call this "twatter," because I'm about to be a twat about Twitter. If you had the misfortune to be absent from the inaugural Worst Practices Lotusphere session, where Paul uttered his now legendary expletive, use your imagination (just make sure to say it in an Irish accent, bear in mind that to him it's hardly objectionable at all, and picture Peter Pan-level boyish charm in full force at the time...). I come not to praise Twitter, but to bury it (I should be so lucky).

Susan Bulloch had a very insightful post on the subject of geeks twittering (and IMing and surfing, etc) while those around them were trying to be social in the Real World (aka MeatSpace). I'm not going to be that deep about it, butI am officially coming out of the proverbial closet as a Twitter hater. Twitter bugs me, for lots of reasons. Here are a few of them:

  • There are no unread marks. Oh, I know, lots of things don't have unread marks. But guess what does (besides Notes)? RSS Readers. It is soooooo much easier to keep up with blogs than it is to keep up with a Twitter stream. I only "follow" about 50 people, of whom about 15 post updates regularly, but I still find myself annoyed by how much I have to wade through to try to keep up. I read several hundred blogs via RSS with no such problem.
  • People use it to say the most inane things. I'm not going to call out any of the Tweeters in our community, so if you see yourself in here it's coincidental (really - if I want to call you out, I will), so these examples come from the public stream - do we all really need to know what somebody had for breakfast, which pair of shoes they are wearing, that they posted something on their blog (there's this funny little thing called RSS, you may have heard of it...), how many unread messages there were that morning, or what TV show they're about to watch? Really?!?
  • Conversations are unbelievably disjointed. Between a post and its response, dozens of others appear, to the point where following the conversation requires several hops back and forward through the stream. I've seen people use it to collaborate, and successfully too, but I am amazed they went through so much trouble when a simple email or chat thread would have been much easier for them. And I realize that it's not hard to follow a conversation if people correctly use the @tweeter convention, but given the number of typos I see in twitter names, it's definitely not foolproof. Following it when you're a casual observer, though? Not reasonable. In which case it would be better off out of the Twitter stream, since its only real benefit IS the fact that many people can see it at once.
  • 140 characters?!? Seriously, fuck that.
  • Not only are there no unread marks, there isn't even a concept of the stopping and starting point from day to day. The most recent tweets are at the top, and unless you are constantly online in Twitter (and some are, I know, but some of us have actual work to do during the day), you have to scroll through backwards to find the place you stopped yesterday, and scroll forwards again to catch up. I usually can't be bothered, it's way too annoying, so I miss about 70% of the tweets. And yet, somehow I'm not crushed.
  • People tie their Twitter posts to their Facebook status updates. I know why they do it (why do essentially the same update in two places?), but as the information consumer it is very annoying. Facebook status updates and tweets serve two different purposes. One gives friends and family a brief snapshot of what's important to you at that moment. The other is a stream of electronic diarrhea containing every random useless thought that crosses your mind. Crossing streams? Always a bad idea...
  • Because not everyone follows everyone else (even in our self-absorbed little corner of the internets), we all get to see responses that don't make any sense because we didn't see the original post.
  • People claim there's no spam in Twitter, but they're fooling themselves. It's there, and it's only going to get worse. Even if it's just a "can I follow you?" request, think of what will happen when you get dozens a day.
  • People tweet instead of blogging. Oh, not major posts, but little things that they otherwise would have expanded into medium sized blog entries, definitely. Count the number of blog postings while the Twitter use in our community went up - it definitely went down, and significantly, too. There is a finite amount of time and energy available for creation of content on the interweb, and every hour spent on Twitter is less time available for blogging. And yet, Blog postings are much more likely to be really useful, both in terms of immediate effect (more people read your blog than follow you on twitter - guaranteed) AND in terms of long-term availability via Google. So to the extent that Twitter reduces blogging, it goes from being an annoyance to being an actual problem.

In short? It sucks. Not to beat around the bush or anything. :P

I'm aware that there are useful Twitter add-ons that address some of my issues. I tried some of them, but to use them on a regular basis would mean investing more time in Twitter than I think it's worth. I'm not completely avoiding it, mind. I use Twhirl on my Mac, and it's decent at showing me recent entries. TwitNotes allows me to connect from work, if I choose (which I rarely do). And I tried the phone alerts, but they drove me absolutely insane; I already get my work and personal email on my Blackberry, adding Twitter meant the thing was vibrating more often than not (keep the dirty jokes to yourself, Julian).

So color me a Luddite, I guess. Or would that be a Twuddite?

PS Now everyone on my list of "followees" will think I'm annoyed by them. And sometimes I suppose I am. Heck, sometimes I'm annoyed by myself (and I'm hardly alone there...). But if I was truly irritated by anyone, I'd just stop following them. I'm really annoyed by the tool. Really. And yes, it's entirely possible I'll just dump it.


03/19/2008

Web of Deception: Chapter 3 - Catalyst



NOTE: This is a continuation of the "Web Of Deception" round-robin story. If you're late to the party, please start with Chapter 1 on Ben's site and go from there. You can also follow the RSS feed hosted at http://www.andthentheboilerburst.com/WebOfDeception.rss.


Damn, that was fun! JC raced away to hide in the garden, and for the first time he really enjoyed the ridiculous, short, hairy form he was stuck with. That big oaf had been about to ruin everything, so JC needed a quick distraction. And who said work couldn't be fun? Oh, the look on his face. Ha! It was tough to tell if he'd been more upset by the claws turning his leg into swiss cheese or the pseudo-sexual mock rape of his jeans. Probably the sex. What a narrow-minded twit. After all, what happens between two consenting adults - well, ok, technically it was one consenting temporarily feline being and one definitely non-consenting adult, but who's quibbling? *snicker*

Ah, surrounded by morons, as usual. The musclebound buffoon clearly had all the imagination of a fence post. A rotten, moss-coverered fence post, at that. The only way he would cause trouble would be by bumbling and fumbling into something. Which he almost did just then. Why the heck were these crazy Outsiders so oblivious sometimes? One day, they were freaking omniscient, or so you'd think. The next, they'd wander aimlessly and never notice anything, up to and including being run over by a pickup. Good luck figuring out which day was which, though. And may all the gods help you if you guessed wrong!

The woman, on the other hand, obviously had more than enough imagination for both of them. Sniffing the wool, as if it were a tisane or a potion. The fool had no idea what she was dealing with. And she'd better hope she never found out. A little bit of knowledge is a dangerous thing, and that little tramp was definitely dangerous. And not just to the walking fence post she'd been playing with, either. Not that he could tell. No way a woman like that was serious about a guy as dumb as him. Why don't they ever learn? A flirty smile, a little leg, and down they tumble. Idiots.

And what was going on with that creepy little caveman, anyway? Always spying on everyone, and not very good at it, either. If you're going to sneak through a garden to steal a look at the new neighbors, maybe you should leave the bag of wool at home, eh? Not like that stuff is likely to get caught on a branch or anything, is it? Yeah, that's the sign of a good spy, the one who leaves a trail of black wool behind him.

As usual, JC knew he was going to have to do all the heavy lifting. These fools were a complete waste of oxygen. And yet they got to walk, and talk, and use opposable thumbs. Yeah, no doubt about it. The universe had a very twisted sense of humor.


"Mike! What's wrong?" Callie raced back outside, just in time to see a very ugly cat jump off Mike's bloody leg and disappear into the garden. "What happened? Are you all right?"

"Not exactly, no. Thank God that cat's gone. I thought he was gonna rip my leg right off!" Mike levered himself back onto the porch, injured leg held awkwardly in front of him.

"Stay right there, I'll get some water to wash the cuts out. Oh, you're going to need a tetanus, too! That cat did NOT look clean."

Callie grabbed a big pot and started the hot water running to fill it up, then went digging through the boxes for a clean towel. When she found the towels, the water was steaming. She carried both out to the porch and told Mike to take his jeans off.

"You'd like that, wouldn't you," he tried to leer good-naturedly, but it fell a bit flat.

Callie smiled encouragingly at him while she soaked a towel in the hot water. "This will sting a bit, but we've got to clean out those cuts."

"I know," Mike said. "Don't worry about it, the sooner we get this cleaned up, the sooner I can dig out my shotgun. See if that crazy animal likes buckshot as much as it likes denim."

Callie frowned thoughtfully as she turned away to wring out the towel. On the surface she focused on cleaning Mike's scratches, but most of her attention was focused on the strange things she'd seen.

She didn't think Mike would get a shot at that cat anytime soon. It's behavior had been very odd, and she could have sworn it stopped briefly to look back at her before it disappeared for good. That wasn't too unusual by itself, but when the cat also stuck out its tongue and then even winked, Callie decided it had to be a very strange cat indeed.

Not as strange as the queer, little man she'd seen skulking in the garden, though. He'd jumped when she looked at him, as though he was used to being invisible, then scurried away furtively. More importantly, he'd been carrying some sort of shoulder bag full of that awful black wool. Talk about disturbing memories. And to think Mike thought it looked like the sweater Gran gave her for her coming of age celebration. She shuddered at the idea of wearing anything made of the nasty stuff.


The hobbit shook and trembled, finally safe and resting back in his cave. Every trip outside took more out of him. He hadn't wanted to go at all, but he needed more special wool. He couldn't do without it. What was the point in staying alive all this time, if he didn't finish the knitting? He'd show them, yes, show them all. The ones who were left, anyway. They never believed him. Oh, they said it was just more hallucinations, but he'd left those days long behind. Nothing from back then compared to this. He'd told them, but they didn't understand. They hadn't seen.

Things might be changing, though. He had neighbors again. He'd been unable to resist a side trip to the farmhouse when he saw that old fraud Tom Dufay driving up. They should talk to Dufay about hallucinations, between his mystical crystal mumbo-jumbo and his constant search for proof of government conspiracies. Oh, he talked a good game, but he had his own agenda. So when the hobbit saw him heading to the farmhouse, he followed. And met his new neighbors. Or as close to meeting them as he was likely to get, these days.

It had been such a long time since he'd seen two healthy, happy people living nearby that he was a bit stunned. The woman, in particular, stole his attention clean away. He'd been trapped like a fly in honey until she saw him looking in the window. That broke the spell, and he had to run away. It wouldn't do to be caught now. He was almost ready.

For a moment, his memory slipped back to the sight of her, and he allowed himself a fantasy that was at once wistful and sly, imagining what would happen if she fell in the brook the way the Tyler boys used to. The water was never very deep, but even if it flooded, a woman like that carried her own flotation devices, he thought with a fading, warped gleam in his eye.

Suddenly, the cave flooded with light as a hand pulled aside the vines covering the entrance. The hobbit shrieked in surprise, falling over backwards and scrambling away from the opening.



This story is continued by Jess Stratton, who kindly included the word "pinafore" in Chapter 4. Stay tuned for updates to "Web of Deception" at the RSS feed hosted at http://www.andthentheboilerburst.com/WebOfDeception.rss.


03/17/2008

Web of Deception


So Ben Langhinrichs had this crazy idea. He thought it would be entertaining to get a bunch of people to write a story, one chapter at a time. Sounds normal so far, right? The catch? The people in question haven't agreed on a plot. Or a character set (no, not that kind of character set, ya geek...). Or even a genre. And each person is going to write their chapter with absolutely no input from any of the others (though they will be written in order, at least...).

Ah, now this should be charmingly chaotic. heh. And considering who has signed up (so far, the list includes: Duffbert, Julian, jonvon, Francie, Gab, Wild Bill, Andre Guirard, my long-lost cousin Steve McDonagh, Jess, Libby, and my humble self), I'm betting it will be thoroughly entertaining. Perhaps mind-bending, or twisted, or just plain odd. But definitely entertaining.

The first chapter, by Ben himself, is here. It's a bit, well, creepy. Go figure. There is an RSS feed that will contain all of the chapters here. And Julian is on the hook for chapter the second, preferably featuring the word "equinox" (did I forget to mention that the current author chooses the next one, and assigns them a "word of the day" to use? Can't wait for my shot at THAT little rule... *snicker*). So enjoy the insanity. And by all means join in. If you don't have a blog, I'd be happy to host your entry (and others will as well).

03/15/2008

Return to Dark Castle!


It was 1986. On a tiny Mac Plus with no hard drive, a grey-scale screen the size of a postage stamp, and astonishingly magical (oh, sure, they're primitive NOW...) graphics and sounds, several purportedly intelligent college students spend hours, days, and weeks throwing rocks at rats, swinging on ropes, and getting shot by cross-bows. The game was called Dark Castle, and it was simply awesome. A few years later, the geeky gaming world was blessed with Beyond Dark Castle, and it was good. But that was the end of it. Or so we thought.

It is 2008. And the long drought has ended. The Dark Castle is back. The third incarnation is called Return to Dark Castle, and you can have it for about $30.

I played the demo a couple of weeks ago. Good stuff. They've got the game right. So if you were a Dark Castle fan, you've got to check this out.

Aside: The other game we were addicted to back then was called The Ancient Art of War. Great game. I'd love to find it again. If anybody has it or knows where I can get it, I'll be eternally in your debt.




03/07/2008

Goofing Around


Ever have a perfect day? You wake up refreshed and rested, the sun is shining, the birds are singing, and all is right with the world? Everyone is happy to see you, the newspapers are full of good news, and all your bills are paid on time?

Me neither. And it doesn't look like that's going to change anytime soon.

They tell me my mother was a psychic. After all, she named me Seamus. So obviously she knew I was going to be a private detective, right? You know, a shamus. Personally, I think if Mom knew I was going to be a private detective, she'd have taught me to spell my name differently. If you knew your son was going to be a farmer, would you name him Phyrmir?

No, Mom didn't have The Sight. Sure, our ancestors were Irish, and the Gaels practically have a monopoly on that Gift. But people who can see the future don't get run over by buses. Besides, if Mom was psychic she'd have told me to stay away from fairies. No mother likes to see her son get his butt kicked all over the city by a six inch tall, cigar smoking tough guy named Irving.

I know what you're thinking. What kind of private detective loses a fight with somebody who doesn't even come up to his knees? But Irving's not just a really short guy; he's a fairy. And fairies have the special ability to make things heavier or lighter. That's a pretty good party trick, and Irving came up with a thoroughly disturbing way to use it. He spent several minutes tossing pebbles at me. 300 pound pebbles.

Me? I have the special ability to run faster than usual when people are trying to kill me. I put a few blocks between myself and that tiny but disproportionately deadly pain in the ass, and then I sat down and wheezed for a while. Those of us on the wrong side of 40 need a little extra recovery time.

*******

I wrote that almost two years ago, but I forgot about it until tonight. I like that kind of writing, so it made me smile. I sort of feel like I should have paid some sort of fee to Mike Midas, though, before posting it here. :D


03/05/2008

What's Your Perfect Job? Perfect Employer?

I was thinking about this the other day and decided to write it down. I threw in some explanatory comments in case anyone wants to try and understand it, but mostly this one is intended for me.

I'm 41 years old (physically, that is - mentally, I might be 14 on a good day), so I've got roughly 20 years worth of experience in various positions at several different types of employers. I've worked for a college (and also a university), a manufacturing company, a consulting company, a tech support provider, and a major retailer. I've worked on level 1, 2, and 3 support at a help desk, been a network administrator, a Notes administrator and developer (many times), a technology-agnostic developer, an architect, a tech lead, and a department manager. Oh, and I've flipped burgers, too, but not since I was 18...

So when I look at jobs and employers, either the one I have now (at the legendary Acme, Inc) or potential ones I see posted or am asked to consider, do I use all of that experience to make sure I've found a good match? Well, not really. At least, not in any formal, structured way. Like most people, I ask questions and try to find out if the job is a good fit, but ultimately I tend to go with my gut reaction. And I think I should stop doing that, because sometimes it misleads me. So that's why I'm writing this down now, because I want to be able to refer back to it. It will change over time, of course - there are things on this list that I wouldn't have thought of 10 or even 5 years ago.

In no particular order, here are some of the factors that make a job a good or bad fit for me. There's not a job in the world that meets all of these requirements (well, I suppose I could start my own company and make all the rules myself), but if there are too many places where a job doesn't line up that should send up a warning flag.

The most important thing I want out of a job? In a word, it has to be challenging.

What do I want to do at work? I like Notes and Domino and various web technologies best, but I'm a geek - I like technology in general. I like solving problems and troubleshooting. I like designing systems from the ground up. I like writing. I don't necessarily *like* speaking in public, but I like the challenge of facing down one of my bigger fears, and I like the fact that I am (reportedly) pretty good at it. I like making decisions, in part because I don't like it when other people make bad decisions and leave me to deal with the consequences. I like helping people. I like finding ways to make people, processes, and systems more efficient. I like working with smart people, the smarter the better (I don't need to be the Alpha Geek on a team, though I often am).

What don't I want to do while I'm at work? I don't ever want to work phone support again (*shudder*). I don't want to be in pure maintenance/support mode as a developer, where I'm not allowed to build new things and spend all my time keeping old ones patched together. I don't like to be bored. I really don't like repetitive manual tasks (I do love to automate them, though), and I also don't like red tape and administrivia - which I consider to be a particularly pernicious form of repetitive manual task.

Technical Issues:
  • I want the ability to install tools on my computer without getting 23 approvals and having an official company representative install it for me...
  • Employees should be allowed, nay encouraged, to use open source software and freeware, not barred from it (grrrrrrr, recent pet peeve here).
  • Speaking of open source software, when I write something interesting that doesn't give the company a competitive advantage (or can't be sold), I should be able to release it as open source. It's good PR for the company, it gives us free testing and bug reports, and other developers will often improve on it and donate their improvements. Participation in the OSS community is *not* a bad thing...
  • I'd like control over what is and is not running on my computer (I know, what are the odds of THAT, right?)
  • The company should recognize that good hardware does make you more productive - multiple monitors, lots of RAM, fast processors and drives, etc.
  • It would be nice to have the ability to use Mac/Linux on my work computer (yes, Greyhawk, I am totally jealous that you convinced your boss to let you use a Mac! You rock, man!).
  • I need 24x7x365 access to email, whether Craicberry or iPhone or whatever device is more appropriate.
  • Everyone should have access to community tools (external Sametime servers and blogs and forums and newsgroups and ...).

Career Development:
  • Speaking at conferences and writing articles should not only be permitted, it should be strongly encouraged.
  • Blogging should be a given, not a violation of the rules or a "don't ask, don't tell" proposition.
  • Participation in IBM/Lotus partner programs - Business Partner or Design Partner or Global Customer Partnership Council - should be considered part of the job. Insert other primary vendor/partner relationships as appropriate.

Company Style/Work Environment:
  • People should be valued for who they are and what they do, rather than how they look or how well they play political games.
  • Dress codes are From Hell - and neckties are Evil (don't get me wrong, I have no issue with looking professional - I just firmly believe that I can do that without strangling myself); business casual is fine, but truly casual is preferred when not in "impress the client" mode, which really should be most of the time.
  • Offices are vastly preferred over cube farms, but that's almost impossible to find - the minimally acceptable alternative is a relatively quiet work area (I worked above a manufacturing floor once, and that'll never happen again).

Process and Controls:
  • I don't like working on systems that are subject to FDA regulation - been there, done that, was really annoyed by it.
  • I don't like SOX compliance - am there, doing that, pretty irritated about it (and yes, I realize that wouldn't leave many companies to choose from, but then this is a wish list, after all).
  • I don't like PCI compliance - am there, doing that, moderately irritated about it.
  • On the other hand, (and I'm on record as saying so, forcefully) I absolutely do not approve of people who let their developers loose on production servers - I *like* controls, I just want them to be appropriate to the risk and not one-size-fits-all.

Benefits/Compensation:
  • Look, we all like to get paid, but it's not the only thing that matters. Salary goes together with atmosphere, commute/travel, flexibility, and family-friendliness to me. It's the whole work/life balance issue, and money can't buy you sanity. Enough money can compensate for issues in other areas (though eventually that wears out, I've found); great situations in other areas make smaller salaries more reasonable.
  • Three weeks vacation should be the minimum starting point, preferably four for experienced professionals.
  • Attendance at Lotusphere is mandatory, whether I'm speaking at the conference or not. If there is no budget to pay for it, I can do that myself (and have done so, 3 or 4 times), but under no circumstances should it be considered vacation time.


Now that I've written all of that down and posted it here, I'm curious how other people would answer the same question. If you got this far, what describes or defines your perfect job/employer? Are you in that job right now? If not, do you look for it actively or do you wait until you're forced into action (could be reaching a particular level of frustration, could be economics, could be major life changes)?

Oh, and especially for those who know me particularly well, what did I forget to include?

02/11/2008

Session Abstracts: Lotusphere vs ILUG

Loads of people have mentioned that ILUG2008 is accepting session submissions, so I won't repeat all that fantabulous information. But I did want to show people how entertaining it can be to do even a session abstract at an event like ILUG. First, we have the session abstract Julian and I submitted for our Lotusphere session:

Reports, Charts, and Graphs in Lotus Notes

Do you need to generate some graphs from your help desk system? Need some custom reports out of your expense tracking database? Want to create charts on the fly in a Lotus Notes database and email them to your boss?

You can do all that and more! We will show you several ways to create reports, charts and graphs from - and in - your Lotus Notes databases, with no expensive third-party tools to buy at all!

Nothing wrong with it, and it clearly did the trick because we not only got to present but also had 5-600 people watching us. But it is a little bit dry. heh. Here's our abstract for a similar (not identical) session for ILUG (no, I have no idea if it has been accepted or not):

Charts! Reports! Graphs! Beer (no, not for you)...
by Rob McDonagh and Julian Robichaux

Need some charts, graphs, and reports from your Notes databases? We'll show you some techniques you can use right away. Turn a view into a bar chart, export data to Excel (bleh) or Symphony (yay), and even create comely (that's right, we said comely) graphs on the fly. You can display it all in dialog boxes, on Notes documents, or on the web. Heck, you could even do all three at once -- we don't care!

All of these techniques work with Notes 7 and 8, and they use free tools and free libraries that are free so you can do this stuff for free. That's free, free, free, and yet more free. That's a whole lot of free right there, so save your company some money with this spectacular - yet free - presentation. In return, we will graciously allow you to buy us beer.
See the difference? When you're submitting an abstract for ILUG, you can relax and be your snarky self. And we didn't even get to the cursing. Yes, Virginia, there will be cursing at ILUG. In fact, I believe failure to curse during your presentation will be grounds for summary ejection from the country...

02/11/2008

Lotusphere BP210 Reports, Charts and Graphs Demo Database

On the off chance some of the people who want the database don't follow Julian's blog but do follow mine (in which case, what is wrong with you?!?), here be linkage:


As Julian blogged the other day, we spent some time after the conference cleaning up the database and adding some documentation. Hopefully, between the documentation and the code itself, you can figure out how things are supposed to work. If not, feel free to comment here or email me (address on the blog homepage). As far as we know, there's no reason the examples wouldn't work on Notes 6.5, and they definitely work on 7 and 8 because we tested in those versions.

We had a lot of fun doing the session, and both the live reaction and the session evaluations were flattering and very gratifying. Thanks for all the kind words. We had a number of people write in the comments that our session was the best one all week. And not a single person mentioned my triple chin! *snicker* Yeah, watching yourself on DVD is juuuuust a bit unnerving, even if it is the best way to become a better speaker.