Search

What the Quote?

"Burn, my pretty, burn!!"

Myndi Birdsong

"i can has cheezburger?"

lolcat

"I'm trying to find a word for poop that rhymes with fail."

Nathan T Freeman

01/27/2012

avoid using a page ACL on servers that use Directory Assistance

Category xpages
XPages support definition of a page-specific ACL, allowing you to refine permissions for specific portions of an application, as described in this article. As Paul mentions in the comments, you can also set an ACL on a specific panel component; this allows you to define entirely different permissions for distinct portions of the same page. For example, if you were to create an "in-view editing" interface using a repeat control, you would typically create a panel inside the repeat, with a panel-specific data source bound to each document that is being iterated. In this scenario, you can define an ACL specific to that panel, which would allow you to block editing of information associated with records the user should not modify. This is a very useful feature.

There's a problem, however: the Directory API, in general, is rather buggy. While I haven't personally repeated my previous testing of the API within 8.5.3, there were serious issues with it in all prior 8.5.x releases. In fact, simple username queries could even cause server crashes. At the time, IBM told me they were able to reproduce the behavior, so I'm assuming the problem has already been resolved or is, at least, on their radar. But, again, I haven't yet confirmed that 8.5.3 fixes the problem.

As such, it is inadvisable to define a page- or panel-specific ACL if the application will be accessed on servers that support Directory Assistance. Keith and I have both gotten burned by this: specifically, if a user authenticated against an account in the primary Domino Directory accesses a page with an ACL, the page functions as expected... if, on the other hand, the same page is accessed by a user authenticated against an account in a directory registered with Directory Assistance (whether LDAP or a secondary Domino Directory), a 500 is often thrown. Replacing the ACL with an alternative approach to managing security and visibility of data resolves the problem.

01/23/2012

user adoption is a cultural phenomenon

Category musings
This post is the result of a dual inspiration: ISW's fascinating new offering, Kudos Badges for IBM Connections, and Lisa Duke's excellent article on the Social Business Insights Blog, "User Adoption - The Final Frontier of Social Business". If you'd like background on where I'm coming from, check out both before proceeding.

Lately all the talk is about "social" (which I'd like to remind my readers is an adjective, not a noun... unless you're referring to a specific gathering or party), but many have pointed out that, for those of us in the collaboration space, this concept is not new to us. We've been "social" in our use of software for decades. During my participation in GBS College (more about this in a subsequent post), it was obvious that this notion is not new to the incoming generation of employees either. They've spent the past few years sharing their personality on YouTube, broadcasting snippets of their lives on Twitter, and creating, strengthening, and renewing social connections on Facebook. Nobody trained them to do this... they just do.

And this, I feel, is what is being overlooked by many organizations looking to become a "social business", as well as some (including IBM) who are hoping to profit from those efforts.

Long ago, there was this thing called MySpace. Lots of people used it. I used it. Then Facebook came along. I can't remember the last time I logged in to MySpace. The tool itself is not what drives and maintains adoption; if a better tool arrives, people will use it instead. Understanding how to use a tool is not the key to adoption; if a user wants badly enough to use it, they'll figure it out. The key to adoption is cultural need.

Everyone who uses Facebook - all 800 million of them (as of the time of this writing) - have a reason. For some, it's simply the easiest way to stay in contact with people they already know... for many of these, it's replaced email entirely, as Facebook's internal messaging features suffice. For others, it's a way to forge new social connections by discovering people who share common interests. If my news feed is any indication, some just use it to play games. But for each, the tool meets some cultural need. If it didn't, they wouldn't use it. In fact, many Facebook users use it grudgingly... but they continue to use it because the perception of that cultural need still exists. I'm among that group: when Google+ initially went live, I had planned to defect, as it seemed it would be less annoying than I find Facebook to be. However, it hasn't yet reached a critical mass that allows me to use only that tool instead. As a result, I now only log in to Google+ when I receive a notification from it... the rest of the time, I continue to use Facebook.

For social business tools to gain adoption sufficient to provide true value, they must meet a cultural need that already exists.

At GBS, it is instinctive to use Connections. The most obvious reason is that we're an IBM Business Partner. We're not going to recommend a software solution to our clients that hasn't already proven to be successful inside the boundaries of our own firewall. We use Domino for email and many of our internal applications. We use Connections for internal blogs and wikis, and on my team, Activities has proven extremely useful. The less obvious, but arguably far more important, reason it just makes sense for us to use Connections is that the very soul of our company culture fosters social engagement. When I empower others by sharing my knowledge and insight, management notices. I am seen as adding more value when I distribute information than I would be if I simply hoarded it. We seek out ways to make each other more powerful and reduce duplication of effort by maximizing the sharing of our expertise. If Connections didn't even exist, we would find another way.

In contrast, at least two of my former employers maintained the opposite culture: hoarding knowledge was fundamental to job security. I survived at least one round of layoffs (and, in all likelihood, several) purely because my employer recognized that they'd already terminated everyone else who understood my job. If I had invested time and energy sharing my knowledge with my coworkers, that not only would have been viewed as a wasteful distraction from actually doing the work, I would have been viewed as comparatively expendable. That didn't sit well with me, and it's the primary reason I left.

Another facet of this that extends beyond simple professional survival is the notion of fulfillment. At heart, I'm a trainer. I love seeing the twinkle in someone's eye when they learn something new, particularly when they're energized by the possibilities, the implications of what they just learned. It's why I love attending and speaking at conferences. It's why internal training is among my favorite job responsibilities. I'm happier as an employee when I know that someone now understands something that also excites me because I was willing to share it with them. One of the many reasons I'm more content than ever in my career is that GBS welcomes this instead of punishing it. It's a key reason why we started the GBS College program last year and grew it this year.

GBS knows that social engagement is fundamental to our organization's success. Nathan and I have a long-established pattern: one of us gets some wacky idea, the other expands it into some insane goal, and then we try to make that goal a reality. That's how most of our open source projects, such as Decepticon, Medusa, and the XPages SDK got started. But sometimes the result is something like Transformer. The AppBuilder technology some of you may have seen last week at Lotusphere started out the same way, but in a sense, for me that's even more exciting, because it wasn't us that took it to the next level. We developed a proof of concept a couple years ago, but an entirely different team picked it up off the shelf, dusted it off, and made it awesome. But that didn't happen in isolation; we continued to share ideas with them that eased their efforts and helped them push the technology in exciting directions. And it goes both ways: lessons they learned are finding their way into Transformer as well. If our CEO only dictated from above what opportunities we will pursue, and how, not only would this type of communication not occur, these technologies would never even have existed. Instead, any employee's idea might be the seed of future success for GBS.

In summary, if employees aren't secure in the knowledge that their expertise, ideas, and feedback are welcomed and valued, you can train them all you want on how to use the social software you just installed, but they still won't use it effectively, if at all. They may even see the tool's arrival as a threat to their professional existence... this decade's "efficiency consultant". Conversely, if social engagement is already threaded into the very fabric of your organization, your employees will find a way to keep that engagement active and vibrant, whether or not you provide them software that fosters it. Connections will simply make them more powerful in doing what they already find culturally instinctive to do.

Finally, happy belated Squirrel Appreciation Day.

01/17/2012

my Skype account has been compromised

Category security
I got home from Lotusphere last night, and could no longer log in to Skype. My password has apparently been changed. Except that I haven't recently changed the password (which, admittedly, is probably why the account was compromised), so someone else must have changed it. I followed Skype's password reset procedure, twice, and both times after receiving an email containing a reset token, and immediately attempting to use said token, was told the token was invalid.

Skype provides no way to contact support unless you're already logged in, so their recommendation for contacting them if you can't log in is to create a new Skype account, then contact them from that account. So I did. I received an automated response, but have not yet received a personalized response. In the meantime, if you receive any odd communication from my Skype account (or my Skype phone number, which concerns me even more), it's not just me being my usual eccentric self... it's some bastard who hacked my account. I apologize in advance for any such annoyance.

Both my wife and I have used Skype for many years with no problems of this sort... about six weeks ago, her account was hacked. Now mine has been. So, Microsoft buys Skype and suddenly there's an indication of security vulnerabilities with their service... who could have possibly predicted that? </sarcasm>

01/16/2012

liveblogging the OGS

Category lotusphere
OK GO opens the the OGS with a 3 song set, including "All is Not Lost"... can't help hoping the audience is listening to that one.

Alistair calls attention to the 800 students GBS brought today.

Michael J. Fox takes the stage as guest speaker.

By the way, this live blog experience brought to you by Verizon 3G Mobile Hotspot... since the Lotusphere WiFi is, once again, completely useless.

Alistair retakes the stage, talking about the value and implications of "social business".

"I would probably shut off email too, if I wasn't running Notes."

"Imagine the possible: grab a Red Bull and the nearest nerd, and get going."

Alistair gives the Champions a shoutout, invites Novak on stage. Asks him to choose on behalf of the community, "demo or no demo". He chooses demo. Enter Jeff Schick.

Jeff describes some of the features in "Connections Next", hands off to Suzanne Livingston. She shows a notion of "embedded apps" within the Activity Stream. Showing reports, applications, email and calendar all integrated into a single coherent interface. I think this is what Portal was supposed to be a decade ago.

LotusLive Symphony (a.k.a. "IBM Docs") demo gets enthusiastic applause.

Community-specific activity metrics for community owners.

Real-time group video.

"Related Communities" feature allows integration across Connections deployments.

New mobile interface looks slick.

Jeff comes back and announces "IBM Connections Mail": front end for Domino or Exchange.... "strategy that will outlast Outlook".

IBM Docs: "content at rest equals cost, content in motion equals value"... Sharepoint is a "document coffin".

Ron showing Symphony viewer on iPad. Uploads a presentation from email to Connections in a couple finger gestures. Shows next version of Android interface for Connections, including more native device capability integration. Chatting via Sametime on the iPad, Briaplaces a video call directly from iPad via Unyte.

Jeff introduces CIO of Bayer. On a side note, apparently it's pronounced "buyer"... guess I've always mispronounced it. They have deployed Connections to 125,000 users.

Larry Bowden arrives to talk about "Web Experience"... I forget, is that what they call Portal now?

Larry introduces Brian Cheng to do some demos, crowd goes wild. Brian's a rock star. He shows integrated web content management driven from the iPad mobile interface, including basic video editing. Cool stuff.

Brian introduces Sandy Carter. Sandy describes the "social business adgenda", then announces CIO of Premier healthcare alliance.

Kevin Cavanaugh and Doug Cox now on stage, announcing some new features for Notes and Domino, and now Ron is back, showing the same kind of embedded experiences Suzanne was showing in Connection, but in the Notes client.

XPages can be embedded applications... XPages can also consume embedded applications. Ron pulls up Designer and calls attention to the Connections Client component from the Social Business Toolkit.

iNotes supports these embedded applications as well.

Ron shows the Notes browser plugin. Thunderous applause.

"LotusNotes Social Edition"... sometime later this year.

Cavanaugh mentions GBS Transformer as an option for turning Notes apps into XPage apps.

Doug describes the XWork offering.

Kevin describes OpenNTF as "exremely vital".

Trilog wins "Innovation in Social Business Application Development".

Doug introduces Mike Rhoidn to talk about SmartCloud.

LotusLive is now IBM Smart Cloud for Social Business.

Rhodin hands off to GAD, another customer testimonial.

Now Kristen Lauria. Should be interesting to hear her perspective.

"Delivering Better Business Results through Social Business Solutions in the Cloud": Applicable Limited

Final award (CTO Award): Ascendant wins.

Kristen introduces Dr. Jeffrey Burns from Children's Hospital Boston.

Inspiring story about creation of a social network for doctors to facilitate better treatment worldwide.

Alistair announces there will be a Lotusphere 2013.

All in all, a well-paced OGS. Nothing earth-shattering, but the crowd seems to have enjoyed the show.

01/13/2012

Usul no longer needs the weirding module

Category xpages
A common misconception, due primarily to the content of this blog and my occasional public speaking, is that I write XPage applications for a living. But that's just my hobby. My day job is writing extension library controls for others to use in their XPage applications. And for me to use in my hobby apps too, I suppose. As such, my Package Explorer might look subtlely different from yours:



Because the differences are likely subtle, let me call attention to just a few:

  • Only the Package Explorer is in my perspective, not the Application Navigator. This is because I write library controls, not XPage applications.
  • The menu bar at the top indicates this is Eclipse, not Domino Designer. This, again, is because I write library controls, which doesn't require Domino Designer. Periodically, as changes to a given library are deemed stable, I deploy them to an update site from which others can then install the library into Designer. But to do the development, I don't actually need to have Designer open.
  • The system path of the JAR files referenced as plugin dependencies for the project expanded in the screenshot refer to "xpagessdk". This is a nod to the XPages SDK project Nathan contributed to OpenNTF on Monday. This project makes it easy to configure a vanilla Eclipse installation for XPage control library development without the need for the Expeditor Toolkit.
  • Finally, as may already be obvious due to the name of the JRE, the location of the menu bar, the colored circles above the toolbar, and, of course, the frickin' Apple logo, this Eclipse installation is running on a Mac. Not inside a Windows VM in Parallels burning through half my RAM... just a Mac. And yet somehow there are no nasty little red X icons telling me my projects won't compile. I can perform my primary job functions as a Domino developer without getting hassled to reboot to install Windows updates that fix what Microsoft should have gotten right the first time... or consigning the bulk of my CPU's processing power to an antivirus program intended to protect me from script kiddies exploiting the weaknesses for which Microsoft hasn't yet released a Windows update. I can just open the lid of my MacBook Air, write some code, commit it to the source repository, then close the lid again. I haz a happy.


Let me be absolutely clear about one point: this is not a Domino Designer client for Mac. It doesn't (yet) understand the Designer VFS, so you can't just install the XPages SDK on your Mac and then start developing XPages on that Mac. You still need Designer for that (and, for Designer, you need Windows). However, you can develop artifacts that facilitate the development of, and enhance the user experience of, your XPage applications: controls, renderers, data sources, converters, validators, managed beans, phase listeners, custom EL bindings... the works.

I'm often asked to define the benefits of shifting most, or all, of an XPage application's logic from SSJS to Java. Those benefits are legion - improved performance, increased compile-time error management, true object oriented program structure, straightforward consumption of third-party libraries, and so on - but now you can add one more to the list: the higher the percentage of your application logic resides in Java, the less significant a role your operating system plays in your capacity to develop that logic. Write the bulk of your code on whatever machine you prefer (or are provided), in a comparatively lean and clean installation of Eclipse, and minimize the extent to which Designer - and, therefore, Windows - is required.

01/11/2012

getting nitpicky

Category terminology
I saw a post this morning stating that the Federal Reserve is migrating to Exchange. Perhaps it's because I've been sick the past few days, but I found myself getting annoyed by some of the terminology used in the post. I left a long, rambling comment to that effect, but have since decided to duplicate the content of that comment here, as it's something I feel strongly about, even when I'm not sick. Enjoy:


Sorry for the nitpick, because a lot of people make this mistake, but it doesn't make sense that any customer would be migrating from Lotus Notes to Exchange. I don't mean it doesn't make sound business sense (though one could argue that mail migrations rarely do)... I just mean that you literally can't migrate from Lotus Notes to Exchange. You can migrate from Lotus Notes to Outlook, or from Domino to Exchange, but you can't migrate from Lotus Notes to Exchange. Well, I guess you could, but then you'd be running a mail server on every user's desktop, which seems kind of ridiculous, and then you wouldn't have any mail client at all, so what's that supposed to accomplish?

I'm being facetious, of course. I know what you mean when you say they're migrating from Notes to Exchange. Everybody knows what that means... or do they? Does the customer know what that means? I know at least one Domino developer who works for the Fed, which almost certainly means they have at least one Domino application. So what does it mean that the customer is migrating to Exchange? Are they just moving the mail but leaving the applications running on the server? If so, then IBM isn't losing a customer. They're still getting licensing revenue. Perhaps not as much, if the licensing terms are being changed to reflect discontinued use of the Notes client to access the Domino applications, but it's still revenue. It's still a customer kept.

Or are they shutting down Domino entirely? If so, then they aren't migrating to Exchange: they're migrating to Exchange and Something Else. Most likely it's Sharepoint. But it could be PHP. Or Ruby on Rails. Or ColdFusion. Or Node. Or Salesforce. Or any of hundreds of other application platforms within which their Domino applications' functionality could theoretically be reimplemented. But regardless of the target, it won't be easy. Migrating mail is easy; there's always risk, of course, but it's essentially just a field-to-field and record-to-record mapping. Migrating applications is NEVER easy, regardless of the source or target platform. You need serious technology, serious workforce, or both, to successfully pull it off. And the differences between the capabilities of the platforms, especially when compared to the differences between mail platforms, are potentially enormous.

Many of us have been, and will continue to be, critical of IBM's apparent lack of effort to drive home to existing and potential customers the value of the Domino platform. But every time one of us refers to a "Notes to Exchange" migration, we're making their job more difficult, because we're reinforcing the delusion that such a thing exists. We're perpetuating the lie that Notes is a mail client. It is an application client; mail is one of the built-in applications it supports.

Mail continues to be a very necessary business tool, and its value should not be underestimated, but mail is not enough to keep customers, because the incremental differences between mail platforms is minuscule. In the face of Microsoft's tactics, IBM cannot stop mail migrations without resorting to their tactics. But they CAN sell Domino as an application platform. They can drive home to customers and to the market the truth that there's no application platform on the planet that does what it does. And we can ease that effort by avoiding the trap of describing the platform precisely the way Microsoft wants us to: as an email platform with nothing significant to distinguish it from their own offering.

01/05/2012

my abbreviated Lotusphere schedule

Category lotusphere
For various reasons, this year I will only be at Lotusphere for about 24 hours. I'm still looking forward to seeing everyone, so if you want to find me, I can already tell you where I'll be:

When Where
Sunday
6:30 PM – 9:00 PM Welcome Reception (a.k.a. Beach Party)
9:00 PM - TBD Kimonos
Monday
8:00 AM – 10:00 AM Opening General Session, front row (or thereabouts)
10:00 AM – 6:00 PM Solutions showcase, Pedestal 423


12/28/2011

I need your help

Category personal
A very dear friend of mine is going through a difficult time right now. Her brother is gravely ill, and she could use your help:

Our sister and their mom are both servers in the restaurant business.  Thankfully, both of their employers have given them the time off they need without their jobs being in jeopardy.  However, there is no paid time off and no vacation time in the restaurant business.  While they have always been able to just make ends meet, I am concerned about them not being able to spend time with Justin during his last days– either before death, or in the case that his heart miraculously recovers– a liver transplant.  If he does recover, he will absolutely be at the very top of the list because he is currently so very sick, so the transplant could happen very soon.

If, he does not make it, then I know that none of us have the means to pay for a funeral.  Either way, at this point, I’m looking for one of three things, or all three if you’re feeling generous:

  • Can you help with even $5 for my fundraiser?
  • Can you please pray, send light, send good juju, good energy, wrap him in healing, or whatever it is that you believe?
  • Can you tell everyone you know about this story?


I realize that you don't know my friend or her brother (well, actually, a few of you do), but if you have $5 to spare, would you consider helping a deserving stranger? At a minimum, please take a few minutes to read and share her story. Thanks.

12/18/2011

an open letter to Senator Saxby Chambliss

Category liberty
Dear Mr. Tripcony:

Thank you for contacting me regarding the fiscal year 2012 National Defense Authorization Act, passed by the Senate on December 1, 2011, that included several provisions relating to the authority of the United States to detain certain individuals associated with al Qaeda, the Taliban and 9/11 conspirators.

It is well-founded in our history that the United States has the authority to hold enemy combatants until the end of hostilities in order to prevent their return to the battlefield.  The detainee provisions in the National Defense Authorization Act codify this long-recognized authority, and make clear that any al Qaeda terrorist, whether foreign or American, who takes up arms against the United States, can be held under the laws of war.  Because we are at war, detention within a military framework is often the most fitting solution for handling certain terrorist detainees.  At the same time, the provisions ensure that the rights of United States citizens continue to be protected by the Constitution.  Thus, any American detained under this authority would still be able to challenge his detention in a federal habeas proceeding.

During the vigorous debate of the National Defense Authorization Act, several Senators offered amendments intended to address perceived problems with the provisions.  Rather than improve the legislation, however, these amendments would have severely undermined our intelligence collection efforts from suspected terrorists.  As we continue to fight al Qaeda and other terrorists, our primary concern must be to ensure that our military and intelligence professionals have the authority and flexibility they need to collect valuable intelligence.  Because of the negative impact these amendments would likely have had on such critical collection efforts, I am thankful the amendments were defeated.  Following vigorous debate and an agreement to re-emphasize current law concerning the detention of persons captured inside the United States, the Senate passed the National Defense Authorization bill with overwhelming bipartisan support. Following a conference with the House of Representatives, the final version of the National Defense Authorization Act was passed on December 15th.

If you would like to receive timely email alerts regarding the latest congressional actions and my weekly e-newsletter, please sign up via my web site at: www.chambliss.senate.gov.  Please let me know how I may be of assistance to you.



Dear Mr. Chambliss:

I appreciate your thoughtful, reasoned response. As I still disagree with your position on this legislation, I present the following counter-arguments for your consideration as time permits.

Article I, section 8 of the Constitution grants Congress authority to declare war. No such declaration has been issued since June of 1942. We are not, therefore, at war.

While several extended military engagements have been authorized by Congress since cessation of the Second World War, including our operations in Iraq and Afghanistan, the War Powers Resolution of 1973 was passed specifically to limit the authority of the President to engage our military forces indefinitely. This legislation has been controversial ever since, but has not yet been declared unconstitutional by the Supreme Court. As recently as March of this year, President Obama was rebuked by Congress for involving our military in the Libyan conflict without adhering to the provisions outlined in the aforementioned resolution.

Because organizations such as al Qaeda operate independently of a specific state government against whom we might declare war, there is little hope for ever establishing a peace treaty to which all of their members will adhere, irrespective of the outcome of any actions by our military. While our military may be effective in reducing - or even eliminating entirely - the strength and influence of any one specific terrorist organization, there will always be terrorists who wish us harm. There will always be a need for us to protect ourselves from these individuals and organizations. To consider this situation, therefore, an official state of war - at least, in the constitutional sense - is to accept a permanent condition under which the rights of citizens are reduced in order to facilitate such protection.

Article III, section 3 of the Constitution provides a definition for treason, including an "aid and comfort" clause. As such, no additional authorization is required to allow our government to punish citizens who either participated in the attacks on 9/11 or supported those who did. Such punishment, however, would be pursuant to a conviction of treason, and the Sixth Amendment guarantees the right to a speedy and public trial. To detain any citizen on suspicion of acts that would constitute treason without a timely opportunity to confront their accuser and argue their innocence, with aid of legal counsel, is a clear violation of that citizen's constitutional rights.

In closing, I would argue that one of the most well-founded principles in our history is the notion of "innocent until proven guilty". If the intention of indefinitely detaining enemy combatants is to "prevent their return to the battlefield", that implies that the battlefield is precisely where we originally found them, directly engaging our forces, weapon in hand. Anything falling outside of that scenario is a question of evidence. Any argument that we must detain an individual without trial because we "know" they are an enemy combatant is logically fallacious: while we may have evidence that a given individual has committed treasonous acts, until a conviction has been established, we do not have, in the judicial sense, proof. We cannot know for certain without a trial, so we cannot deny one category of suspect a trial without severely undermining the notion that a suspect's guilt must be judicially proven in order to justify their continued detention. To do so threatens the very fabric of our society; it may, from time to time, provide physical protection for a few Americans… but it makes us all less American.

Sincerely,
Tim Tripcony


12/01/2011

harnessing the XPages Extensibility API is now even easier

Category diy xpages
In our day job. Nathan, Keith and I (among others) use the XPages Extensibility API constantly. In fact, I suppose one could argue that it's pretty much all we do all day. But we're not using all of it every day, and like any technique that's only sporadically used, it's easy to forget the exact syntax for implementing and registering, for example, your own custom PhaseListener. As a result, each time we have a need to use a portion of the API that we haven't for a while, we often find ourselves digging through our project source tree so that we can use an existing implementation to jog our memory. As you might imagine, that source tree is a bit... well... massive.

So Nathan took it upon himself to make it easier to find example implementations by creating an OSGi plugin that consolidates examples of every reusable artifact that the Extensibility API allows us to create into a single library. And then he donated it to OpenNTF... he calls it the XSP Starter Kit. As detailed in the project overview, here's a list of some of the reference implementations this library contains:
  • Custom ApplicationFactory
  • Custom FacesContextFactory (including custom ExternalContext)
  • Custom Lifecycle
  • PhaseListeners
  • ApplicationListeners
  • SessionListeners
  • FacesContextListeners
  • ValueChangeListeners
  • ActionListeners
  • Custom PropertyResolver
  • Custom VariableResolver
  • Custom ViewHandler
  • NavigationHandlers
  • Custom StateManager
  • Resources and ResourceProviders
  • SSJS Library Provider
  • ManagedBeans for all 4 scopes (Application, Session, View, Request)
  • SessionScope generic storage map (be cautious with this, as it's a bad idea to share content that should be secure)
  • Implicit globals for SSJS

So... yeah, pretty much everything. But do you notice something obvious missing from the above list? That's right: UI Controls. After all, that's the first thing that comes to mind when we think about the Extensibility API, right? Well, this starter kit does include an example control as well. But controls are just a drop in the bucket compared to everything about the XPages runtime that the Extensibility API allows us to customize; I suppose you could consider this library an example of the whole bucket. So if you happen to notice anything else missing from this library that you'd like to see included as a reference implementation (<cough>custom data source</cough>), submit a feature request to the project... or request SVN access to the org.openntf.xsp.starter project and commit your own example.