357 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
Latest 7 Posts
Building an App with the frostillic.us Framework, Part 2
Fri, Jul 11th 2014 56
Building an App with the frostillic.us Framework, Part 1
Wed, Jul 9th 2014 98
The Trouble With Developing on Domino
Tue, Jul 8th 2014 290
Dabbling in Reflection
Mon, Jul 7th 2014 93
My Black Magic for the Day
Fri, Jul 4th 2014 144
Things I Rarely Use: sessionScope
Thu, Jul 3rd 2014 194
XPages Data Caching and a Dive Into Java
Wed, Jul 2nd 2014 149
Top 10
"Build Automatically", "Refresh automatically", and "Team Development"
Thu, Jan 23rd 2014 473
Domino the Identity Server
Tue, Feb 11th 2014 402
Couchbase StateManager for XPages, Part 1
Wed, Jan 29th 2014 379
So it goes.
Mon, May 12th 2014 349
An XPage As A Tree: Implications
Wed, Apr 16th 2014 319
SNTT: Reconstructing DateRanges
Thu, Feb 27th 2014 314
Better Living Through Reverse Proxies
Thu, May 30th 2013 301
My Current Model Framework, Part 2: An Example
Fri, Feb 21st 2014 295
Couchbase StateManager for XPages, Part 2
Fri, Feb 21st 2014 291
The Trouble With Developing on Domino
Tue, Jul 8th 2014 290

Jesse Gallagher
Blog Title frostillic.us
Blog Description No blog description listed in the feed.
Blog URL http://frostillic.us
RSS Feed http://unenc.frostillic.us/f.nsf/feed.xml
PlanetLotus Feed http://planetlotus.org/profiles/rss/jesse-gallagher
Validate Feed feedvalidator.org or validator.w3.org
Feed Last Checked Jul 13, 2014 9:12:28 AM EST. Realtime Update:
Landed Here Nov 22, 2011
Location Lansdale, PA, USA
Posts: # / 1st / Latest - -
Total Hits 18,481. myPL RSS Selections: 7

Recent Blog Posts

Building an App with the frostillic.us Framework, Part 2
Fri, Jul 11th 2014 3:12p   Jesse Gallagher
Define the data model Create the view and add it to an XPage Create the editing page Add notification to the model Add sorting to the view Basic servlet REST with Angular.js The first stage of building a frostillic.us-Framework-based app was a bit unusual - focusing on creating a model object in Java - but the next phase is about as bog-standard as it gets: Create the view and add it to an XPage The view we'll need is a basic one showing all Notes. We'll name it "NotesAll" to match the [read] Keywords: notes xpages java

Building an App with the frostillic.us Framework, Part 1
Wed, Jul 9th 2014 8:11a   Jesse Gallagher
Now that the framework I've been building is settling into a real project, I figured one of the best ways for me to explain how it works and to double-check my own assumptions is to make a tutorial on how to actually construct an app using it. This will be a very simple one to start with: a note-taking app with just a couple fields and only one business object to speak of. The overall conceit of the framework is that it uses standard/ExtLib components and idioms where appropriate but decl [read] Keywords: domino notes ntf xpages database development java openntf server sql xml

The Trouble With Developing on Domino
Tue, Jul 8th 2014 8:15a   Jesse Gallagher
The core trouble in my eyes with developing on Domino is that it is unloved for what it is. Not so much by customers (I have no interest in whether companies use Exchange or SharePoint or whatever), but more by IBM. The situation reminds me of Apple with products like WebObjects, Xserve, and Aperture: there's clearly a dedicated and talented team behind it, but the organization's heart isn't in it. The analogy is inexact: first, Apple's overarching motivations and strategies are much e [read] Keywords: admin connections domino ibm lotusphere apple bug community enterprise exchange exchange java mac server sharepoint

Dabbling in Reflection
Mon, Jul 7th 2014 12:15p   Jesse Gallagher
In a similar vein to my post from the other day, I'd like to discuss one of the other bugaboos that crops up from time to time in the edges of XPages development, usually spoken of in hushed tones: reflection. If you're not familiar with the term, reflection is an aspect of metaprogramming; specifically, it's the ability to inspect and operate on objects and classes at runtime. Reflection in Java isn't as smooth as it is in other languages, but it makes sense as you work with it. The [read] Keywords: xpages development java properties

My Black Magic for the Day
Fri, Jul 4th 2014 4:12p   Jesse Gallagher
One of the overarching goals for my model framework is to get the job of specifying business logic out of the XPage. So far, most of my work in the area revolved around building in the ability to override getters/setters, establish relationships, and so forth. However, a big problem remains: the XPage still needs to be told things about the data that are really the model's job, not the XSP markup's. Namely, validation. A little while ago, I "solved" this by adopting Hibernate Validator [read] Keywords: ntf xpages development email java server

Things I Rarely Use: sessionScope
Thu, Jul 3rd 2014 6:15p   Jesse Gallagher
As this post's title implies, I'm considering making this a series on XPages anti-patterns, but no promises there. In any event, this is a topic that's been stewing in my brain for a little while: my antipathy towards the session scope in XPages. Now, don't get me wrong: other than the "not reset on logout" thing that may be fixed by now, I have no technical qualms with sessionScope; it does what it says on the tin. However, I've often found that many people use it very frequently, [read] Keywords: xpages


XPages Data Caching and a Dive Into Java
Wed, Jul 2nd 2014 2:11p   Jesse Gallagher
One of the most common idioms I run into when writing an app is the desire to cache some expensive-to-compute data in the view or application scope on first fetch, and then use the cached version from then on. It usually takes a form like this: public Date getCachedTime() { Map applicationScope = ExtLibUtil.getApplicationScope(); if(!applicationScope.containsKey("cachedTime")) { // Some actual expensive operation goes here applicationScope.put("cachedTime", new Date()); } return [read] Keywords: xpages application interface java

Another Round of URL Fiddling
Thu, Jun 19th 2014 3:11p   Jesse Gallagher
I was working on another installment of "Be a Better Programmer", but the result isn't where I want it to be yet, so it'll have to wait. Instead, I'll share a bit about my latest futzing around when it comes to improving the URLs used in an XPages app. This has been a long-running saga, with the latest installment seeing me stumbling across a capability that had been right under my nose: the ViewHandler's ability to manipulate the URLs generated for a page. That method worked, but h [read] Keywords: ibm xpages css dojo java properties server xml

The frostillic.us Framework
Mon, Jun 9th 2014 1:15p   Jesse Gallagher
For a while now, I've maintained a project called XPages Scaffolding on OpenNTF and GitHub. This project is the NTF that I use when creating a new XPages application and acts as a storehouse for my "bag of tricks", things like my model framework, controller classes, and various goodies I've picked up over the years, like a JSFUtil class and a flashScope. For a while, I've figured that, once this stuff is in proper shape, I'd extract it into an OSGi plugin and get it out of the NSF. L [read] Keywords: domino ntf xpages application applications development email integration java mobile openntf properties server

REST Services for my Model Framework
Fri, Jun 6th 2014 7:15a   Jesse Gallagher
Recently, I've been refactoring out my framework code from XPages Scaffolding into an OSGi plugin. Part of this is just to help with code reuse and versioning: having a whole bunch of framework classes in each NSF is a drag, both from a perspective of having a bunch of extra stuff in the NSF and for having to worry about keeping them up to date (a template would work, but eh...). But another part is that it lets me work on some new features I've been itching to try. One of thos [read] Keywords: domino xpages java

Be a Better Programmer, Part 3
Thu, Jun 5th 2014 8:12a   Jesse Gallagher
After a break last week, this week's entry returns a bit to practical concepts. Specifically: Develop a Working Knowledge of Relative Speeds Performance of an app depends on almost-countless factors, but I've found that you mostly just need to know a few general ideas and rules of thumb to avoid the real pitfalls. Big O Notation The first thing to have a general working knowledge of is the naively-named Big O notation. This is one of the core concepts in a Computer Science curriculu [read] Keywords: domino database java

Wed, Jun 4th 2014 6:14p   Jesse Gallagher
This is a topic that doesn't really fit my usual bailiwick of Domino programming, nor is it something I'm particularly qualified to comment on, since the most Objective-C programming I've ever done was some putzing around years and years ago with a weird idea for a pseudo-database that didn't even involve Cocoa, but I'm going to talk about it anyway. I'm really excited about Swift. In case you don't follow Apple circles, Swift was one of the fire hose of announcements at WWDC on Mo [read] Keywords: domino apple bug database development integration java python

Coaxing Enums Into XPage Combo Boxes
Wed, May 28th 2014 4:11p   Jesse Gallagher
I've been reworking Forms 'n' Views over the last couple days to use it as a development companion for the OpenNTF Design API, and one of the minor hurdles I ran across was presenting a getter/setter pair that expects a Java Enum to an XPages control (a combo box in this case, but it would be the same with other similar controls). I had assumed at first that it would simply not work - that the runtime would entirely balk at the conversion. However, it turned out that XPages does half th [read] Keywords: domino ibm xpages development java javascript openntf

Code for Tim: LESS CSS for XPages
Sun, May 25th 2014 2:15p   Jesse Gallagher
When OpenNTF announced the "Code for Tim" initiative, I browsed Tim's GitHub repository list and one stuck out to me: the "xspless" stub repository for adding LESS CSS support to XPages. I'd latently wished for this sort of feature for a while, but hadn't yet set out down the path. It seems Tim had had the same desire, and had taken at least one more step than me. I've decided to try my hand at making this desire a reality, and it's borne some fruit so far. I've created a [read] Keywords: domino xpages css database development eclipse openntf server

Be a Better Programmer, Part 2
Thu, May 22nd 2014 10:12a   Jesse Gallagher
For this week's installment, I'd like to cover a more abstract topic than last time: Develop a Philosophy of Programming By this grandiose title I don't mean that your outlook on programming has to be an answer to life, the universe, and everything (though tell me if it is), but more that it's useful to know why you do what you do. Why are you a programmer? I'm assuming it's not because of a particular love for "delivering" "enterprise" "workflow" "solutions". In my case, i [read] Keywords: enterprise outlook

For-fun Project: NSF StateManager
Tue, May 20th 2014 3:11p   Jesse Gallagher
Earlier this year, I created a StateManager for XPages using Couchbase as a back end. Mostly, this was just to give myself an excuse to mess around with XPages internals and Couchbase. But even still, it had an interesting characteristic: by storing the state of an XPage between requests in a location available to multiple servers, the XPages became cluster-friendly - you could load an XPage on one server and make later requests to another (though it would take further work to handle other [read] Keywords: admin domino xpages database openntf server

The DSAPI Login Filter I Wrote Years Ago
Mon, May 19th 2014 12:11p   Jesse Gallagher
In one of the conversations I had at the meetup yesterday, I was reminded of the DSAPI filter I use on my server for authentication, and remembered I'd yet to properly blog about it. Years ago, I had a problem: I was setting up an XPages-based forum site for my WoW guild, and I wanted sticky logins. Since my guildies are actual humans and not corporate drones subject to the whims of an IT department, I couldn't expect them to put up with having to log in every browser session, nor did I [read] Keywords: admin domino xpages database password server

Be a Better Programmer, Part 1
Thu, May 15th 2014 4:11p   Jesse Gallagher
For over a year now, I've had notes on this blog-post series sitting on my desktop, staring at me and asking why I haven't actually started it. Well, I'm going to start it now. The title and core concept are stolen from the illustrious Day[9], though I expect any mentions of video games will be incidental at best. What I want to do is encourage everyone, myself included, to be a better programmer, and I aim to do this by sharing overall concepts and strategies that I have found to hel [read] Keywords: foundations notes xpages database desktop java outlook xml

So it goes.
Mon, May 12th 2014 6:12p   Jesse Gallagher
Having only briefly met Tim Tripcony in person and lacking the writing skill for the task, I feel like it's not entirely proper for me to comment on his death, but I'm doing to do so anyway. Years ago, when I was finding out about the Lotus community and starting my journey learning XPages, Tim immediately stood out as one of The People to pay attention to. His knowledge of the platform and willingness to share made his blog an excellent resource, but it was more than that. In a way that [read] Keywords: lotus xpages community

Book Review: Mastering XPages, Second Edition
Sun, May 11th 2014 3:12p   Jesse Gallagher
For a review of Mastering Xpages, I could copy almost wholesale the introduction from my review of XPages Extension Library: the low count of XPages books makes each one an essential purchase. As before, fortunately the book rises above that obligatory baseline and is absolutely worth your time. That's the upshot of this review: if you're a Domino programmer, buy and read this book. Size One of the first things you notice about the book is its size, clocking in at over a thousand pages [read] Keywords: domino ibm rich text xpages application community css development enterprise java javascript mobile

Pretty URLs: A Step in the Right Direction
Sat, May 10th 2014 9:11p   Jesse Gallagher
A long time ago, I mused a bit about the URL problem in XPages. The core problem then, as it is today, was that XPage URLs are ugly as sin. Domino URLs were never pretty, but XPages took them back a few steps. Just look at this normal-case monstrosity: https://someserver.com/foldername/app.nsf/somepage.xsp?action=openDocument&docum entId=E0023409DE744F8085257CD3007006A3 Barely any part of that has anything to do with the task at hand! Some parts - like the folder path and NSF name [read] Keywords: domino xpages server

Using a ViewHandler to Serve a Different XPage
Sat, May 3rd 2014 8:12a   Jesse Gallagher
I've been using a ViewHandler class for a while now for a specific purpose: injecting controller objects automatically. However, I hadn't really dug into them further than that. I should have, though: I spent a little time poking around this morning and found that they can help solve two minor annoyances I've had for a while. For the purposes of this post, the pertinent one of those is the ability to serve a different XPage than the one requested. In normal cases, this isn't a particu [read] Keywords: domino notes xpages database

Expanding your use of EL: Mea Culpa
Fri, May 2nd 2014 7:11p   Jesse Gallagher
A while back, a wrote a couple posts about using Expression Language (EL) to clean up your XPages code, and in the first of them I gave what I labeled an exclusive list of the interfaces that XPages EL provides special support for (as opposed to just looking for getters/setters). It turns out I was sorely mistaken: there are at least two other types that EL specially supports. The first is the class used for JavaScript objects, such as allowing #{foo.bar} to bind like you'd expect to [read] Keywords: xpages interface javascript

My Current Ideal App-Dev Routine, April 2014
Sun, Apr 27th 2014 11:11a   Jesse Gallagher
Though most of my paying work involves working with clients' creaky old databases, greenfield projects will always have my heart. For these and for my side projects, I've been moving towards an ideal Domino-app strategy that seems to serve me well. The Setup My apps consist of at least two NSFs: one for the app itself and at least one for data. The only non-design notes in the app NSF are for app configuration, and even then I keep it limited. Everything else goes in the "data" databa [read] Keywords: administration domino notes ntf xpages bug database desktop development dojo laptop network server vm

An XPage As A Tree: Implications
Wed, Apr 16th 2014 3:11p   Jesse Gallagher
A few posts ago, I talked about how the skeletal nature of an XPage is really a very abstract representation of a UI. At its core, it isn't conceptually tied to the web - and, indeed, the probable bulk of the work done by JSF is to push against the normal rules of the web. The goal of XPages/JSF is to abstract away the messy business of writing web pages, much like a cross-platform mobile framework attempts to abstract away the chore of writing to iOS or Android directly. In practice, I [read] Keywords: xpages css desktop java mobile network properties server widget

How I Added File-Download Support To My Model Framework
Sat, Apr 12th 2014 10:33a   Jesse Gallagher
Unlike the last few posts, this one isn't as much a tip or tutorial as it is an attempt to share my suffering by detailing the steps I took recently to add file-download and -upload support to my current model framework. The goal of my framework overall is to retain the benefits of normal Domino document data sources (arbitrary field access, ease of use in simple cases, and compatibility with standard XPage idoms) while adding on useful new abilities (getters/setters, relationships with o [read] Keywords: domino ibm application interface openntf

Loading Resources via Themes
Thu, Apr 10th 2014 10:36a   Jesse Gallagher
In today's TLCC XPages webinar, Marky Roden had a great presentation discussing resources and design definitions to help speed up Designer. If you didn't catch it live, it's worth tracking it down when it's available. I'd like to build on what he was talking about a bit by explaining how to use themes to load resources in a way that also prevents Designer slowdown while having the secondary benefit of being clean design (with some caveats that I'll get into). If you're not familiar [read] Keywords: xpages application css development dojo javascript properties xml

The Collections Framework as Education
Sun, Apr 6th 2014 4:15p   Jesse Gallagher
While I've been formulating the followup to my last post, I've also been thinking about how wonderful the Java Collections framework is. I've been singing its praises for a long time (as have others), but what's stood out to me lately is how well it encapsulates many of the most important foundational concepts of Java. One of the reasons Java appears so intimidating and foreign to Notes developers is that the way many are introduced to it - as an auxiliary for XPages - involves learni [read] Keywords: notes xpages database interface java

An XPage As A Tree
Tue, Apr 1st 2014 8:05p   Jesse Gallagher
I'd like to take a blog post or two to discuss an aspect of XPages that isn't directly applicable to normal XPage development, but which can be a conceptual shift that causes a lot of things to fall into place: the tree nature of an XPage. This has nothing to do with Java, SSJS, beans, or JSF phases. It barely even has much at all to do with web pages. You've likely heard that XPages aren't really XML - that they're actually Java, created from the "simpler" XML you write. This is tr [read] Keywords: ibm xpages application development enterprise interface java javascript properties python server xml

Life in Other Worlds
Tue, Mar 25th 2014 5:17p   Jesse Gallagher
I've found the reaction to BlueMix to be pretty interesting. Unsurprisingly, the main question in our community has been "how does this relate to Domino?" The answer is pretty clear: it doesn't. That's not really a bad thing! About half of the problems a platform like BlueMix solves - app packaging, multi-server availability, data-store access - are either non-issues on Domino or are done much more easily with it than with other app servers. The other advantages, well... IBM could lik [read] Keywords: domino ibm notes community development eclipse java microsoft python server

SNTT: Reconstructing DateRanges
Thu, Feb 27th 2014 8:11a   Jesse Gallagher
In the OpenNTF API chat, I was reminded yesterday of how terribly broken DateRange retrieval is in Java. Specifically, though you can create date ranges and use them in view lookups, retrieving them from documents or view entries is FUBAR. To wit: Field Value 02/27/2014, 02/28/2014, 02/27/2014 - 02/28/2014, 01/01/2014 12:00 AM - 01/02/2014 12:00 PM doc.getItemValue("SomeField") [02/27/2014, 02/28/2014, 02/27/2014, 02/28/2014, 01/01/2014 12:00:00 AM EST, 01/02/2014 12:00:00 PM EST] No [read] Keywords: lotusscript sntt java openntf

My Current Model Framework, Part 2: An Example
Fri, Feb 21st 2014 2:11p   Jesse Gallagher
To go along with the updated release of my Scaffolding project yesterday, I've created an example database created with that template and containing a basic use of my model framework: model-framework-example.zip This demonstrates a few things about the framework: Setting up the two classes that go with each object type - the object itself (e.g. model.Department) and the "manager" class that handles fetching objects and collections (e.g. model.DepartmentManager) and adding the collectio [read] Keywords: database xml

Couchbase StateManager for XPages, Part 2
Fri, Feb 21st 2014 9:11a   Jesse Gallagher
I had the opportunity to dive a little back into the StateManager I wrote the other week to try out a theory. The first thing I noticed was that there was a minor problem: it didn't work at all. Specifically, the code I had didn't actually store the whole proper state of the view, so it ended up being regenerated anew each time; the fact that this didn't cause an error was what led me astry. Fortunately, I was able to scrounge together enough code to get it to work properly, bringing t [read] Keywords: domino xpages java

Domino the Identity Server
Tue, Feb 11th 2014 7:10a   Jesse Gallagher
As seems to happen a lot lately, my fancy was struck earlier by a Twitter conversion, this time about the use of Domino as a personal mail server. Not only do I think there's potential there, but it should go further and be a drop-in replacement for personal mail, calendar, and contacts storage. I think there's tremendous value in controlling your own domain and the services on it, without being permanently attached to someone else's name for an email address (your school, your company, [read] Keywords: admin domino ibm inotes notes notes client development email google security server twitter

Couchbase StateManager for XPages, Part 1
Wed, Jan 29th 2014 1:11p   Jesse Gallagher
The other day, I attended Tony McGuckin's Connect session on XPages scalability (a companion to his earlier Masterclass on performance) and I was inspired to try out a thought I had: could it work to use Couchbase to further push the bounds of XPages scalability? If you're not familiar with Couchbase, it's a product similar to CouchDB, which is in turn essentially Domino-the-DB-server re-done for modern needs. Last summer, I wrote some data sources to use Couchbase data in an XP [read] Keywords: domino xpages application database java password properties server xml

"Build Automatically", "Refresh automatically", and "Team Development"
Thu, Jan 23rd 2014 4:10p   Jesse Gallagher
TL;DR: "Build Automatically" and "Refresh automatically" are unrelated, but work together when both enabled when using SourceTree for source control. I just had a conversation on Twitter where I went a little crazy talking about my hopefully-correct view of how the various sync processes in Designer work when you're dealing with source control. The original impetus was a post by Mark Leusink about the fact that you have to build your NSF project in order to sync it with an on-disk-pro [read] Keywords: application development eclipse server twitter

Data separation with an asterisk
Thu, Jan 9th 2014 8:12a   Jesse Gallagher
A little while ago, I converted over to the practice of separating your XPage app from the NSF that contains the data, even when it's going to be a one-to-one mapping. This confers a number of advantages in the areas of easier testing, easier development, programming discipline, and security. One of my favorite aspects is the ability to do this on your data DB: Don't allow URL open This alone adds tons of security: no more worrying about ?ReadViewEntries, hiding your views from the web, [read] Keywords: notes notes client rich text xpages database development security server

Go read: "Paul Hannan, The XPagers [sic] Champion"
Tue, Jan 7th 2014 4:44p   Jesse Gallagher
In spite of its heinous, brutal titular attack on English-language rules of plural punctuation*, I urge you to go read David Leedy's recent post about Paul Hannan. I can't add too much other than my agreement. Paul always does an excellent job filtering through our grousing on Twitter and it'll be a shame to not meet him in person at my first Lotusphere. * I kid.† † Not really. [read] Keywords: lotusphere twitter

A Quick, Dirty, and Inefficient @ManagedBean Implementation in XPages
Tue, Dec 17th 2013 8:11a   Jesse Gallagher
By now, most of us are pretty familiar with the process for adding managed beans to an XPages app: go to faces-config.xml and add a ... block for each bean. However, JSF 2 added another method for declaring managed beans: inline annotations in the Java class. This wasn't one of the features backported to the XPages runtime, but it turns out it's not bad to add something along these lines, and I decided to give it a shot while working on the OpenNTF API. The first thing that's required [read] Keywords: domino ibm xpages application database interface java openntf xml

The Curse of TMTOWTDI
Tue, Nov 26th 2013 2:17p   Jesse Gallagher
TMTOWTDI is a Perl-ism, standing for "there's more than one way to do it". It is often a blessing, particularly in the context of Perl, in that it results in multiple synonymous ways to accomplish the same task, each of which fits best in a different context. However, as you might expect, this is a double-edged sword that can lead to messy code and a difficult learning curve. It's this negative context that bites the XPages platform in a number of ways. One way is relatively benign bu [read] Keywords: domino xpages application database development dojo java

Building My App On Custom Renderers
Sun, Nov 24th 2013 7:18p   Jesse Gallagher
A little while ago, I mentioned how I have become smitten with custom renderers - Java classes that take XPage components like application layouts and widgets and render them in custom HTML. Though I've had a lot of other things to work on in between then and today, my ardor for the subject has not dimmed. So today, I mostly completed the process for my task-tracking app. At a high level, the app is a fairly typical web app built using the popular-for-good-reason Ace - Responsive Admin Te [read] Keywords: admin xpages application css development java properties widget widgets

Internalize This Deep Wisdom
Tue, Nov 19th 2013 5:17p   Jesse Gallagher
Toby Samples tweeted earlier an old blog post by Jeff Atwood about the virtue of minimal code, and I think everyone would be well-served by reading it and the articles it links to (the Wil Shipley post has since moved (incidentally, if you don't currently pay attention to Wil Shipley, you really, really should )). I've found maintaining the goal of reducing the conceptual weight of my code to be the most valuable tool in my belt. One way of doing that is to separate out unr [read] Keywords: xpages

My Current Model Framework, Part 1
Sun, Nov 17th 2013 10:21a   Jesse Gallagher
As I do from time to time, I've recently been taking another stab at a standard model framework for my XPage apps. My latest one has been proving its worth in a couple apps I've been writing lately, and I'd like to go over the general goals and advantages of the way it works. The framework is focused on a couple main ideas: Low Overhead. The Java language requires a certain amount of overhead to get anything done, but I want to minimize that. The task of defining a new model object con [read] Keywords: domino xpages database eclipse java openntf

I Am Terribly Excited About Custom Renderers
Tue, Nov 12th 2013 6:10p   Jesse Gallagher
It's much to my chagrin that it took me until this past weekend to properly dive into custom renderers. I had seen them before, primarily when working with mypic, but always avoided building my own, primarily because of what a hassle they are to write. However, I'm now convinced that the hassle is worth it, at least for some primary uses. If you're not familiar with custom renderers, they're sort of an odd beast, but they're the kind of thing where the concept eventually "clicks" in [read] Keywords: ibm xpages application css java properties

How I Want To Use Domino, Take 2
Wed, Oct 30th 2013 1:10p   Jesse Gallagher
A while back, I wrote a post about how I wanted to use Domino. The gist of that was that I was enamored with the idea of using Domino as a back-end database, but not necessarily as a app-dev platform on its own - basically, how you would use a SQL or NoSQL database. Since then, I've doubled down on my use of XPages as an app-dev platform with many advantages, but I still find it very useful to imagine Domino not as "Notes apps on the web, now with a modern coat of paint", but as a colle [read] Keywords: domino inotes notes sametime xpages css database development email profile server sql

Thanks, Bruce
Wed, Oct 2nd 2013 8:12a   Jesse Gallagher
Though I'm not as eloquent on the matter as the many others who have shared their appreciation for what Bruce Elgort has done for the community, I wanted to be sure to pitch in as well. I have been active in this community for a relatively short amount of time, but even before that Bruce's was one of the names I knew looking in from outside, from his personal contributions to the Taking Notes podcast and to his leadership of OpenNTF. And since I started being actively involved in the com [read] Keywords: notes community openntf podcast taking notes

URLs in XPages
Tue, Oct 1st 2013 6:11p   Jesse Gallagher
The topic of URLs came up today in a chat and in the most recent NotesIn9, and I think this is an area that deserves some particular attention. When designing any web app, it's easy to fall into some traps with URLs, and writing XPages code juggles things around a bit - some things are much easier than usual, some are insidiously harder. At a base level, there are four main types of URLs you'll use when writing a web app, distinguished by how they begin (don't quote me on the names, or [read] Keywords: domino rich text xpages css server

Domino Wishlist, September 2013
Fri, Sep 20th 2013 10:11a   Jesse Gallagher
I joined in a tweet from Paul Hannan earlier about desired Domino features (that's a very worthwhile thread to read - lots of great ideas from others) and it's had me thinking about more on my list. Fortunately, I have a blog for this kind of thing! I'm leaving off a couple big-ticket items like Eclipse-4.x-based Designer on the Mac because IBM may not be required for that. Make $WSIS not trigger crummy SSL behavior (really, first-class support for proxies in front of Domino, not just I [read] Keywords: domino ibm notes ods xpages database eclipse firefox java mac server ubuntu

Progress on the org.openntf.domino Design API
Fri, Sep 6th 2013 4:14p   Jesse Gallagher
The primary focus of my recent work with the OpenNTF Domino API has been the implementation of a fleshed-out design API. I've done a lot of work in my Domino-programming career manipulating design elements, usually via DXL (such as with my Forms 'n' Views app), and my aim is to codify all of that into the API itself, eventually growing it to cover almost every design element that Designer does (we'll see about Navigators, Composite Apps, and the like). One of the big hurdles in recen [read] Keywords: domino dxl rich text xpages java openntf properties xml

Materials From MWLUG 2013
Sun, Aug 25th 2013 10:13a   Jesse Gallagher
I gave two presentations at MWLUG 2013 in Indianapolis, and here are the slide decks and resources for those: AD110: Write Cleaner, More-Manageable XPages Applications With Java Slide Deck My blog template on GitHub My portfolio template on GitHub - I didn't actually go over this, but it was original plan: it provides a simple example of using controllers and my new model classes XPages Scaffolding on GitHub - this is the template I use when creating each new project and is the [read] Keywords: domino xpages applications database java openntf

Expanding your use of EL (Part 2)
Wed, Jul 24th 2013 10:15a   Jesse Gallagher
Last time, I said that my next post would delve into operations and comparisons in EL, but I figured first it would be good to have a real-use example of what I talked about last time. In several of my apps lately, I've taken to using properties files to store app configuration, primarily the server and file paths for the databases that store the actual data. The standard way of doing this is to use the platform's built-in bundle-handling abilities. However, that'd leave me stuck with e [read] Keywords: ibm application interface java properties server

Expanding your use of EL (Part 1)
Tue, Jul 23rd 2013 12:13p   Jesse Gallagher
One of the main aspects to cleaning up the code of an XPage is the heavy use of Expression Language (EL), which is XPages/JSF's shorthand language for binding properties to values and methods. The most common kind you'll run across is the kind you get for "free" when working with document data sources: This is the essence of EL in a nutshell: the actual code behind the scenes can be pretty complex, but EL handles that for you. It goes far beyond this, though, in two important ways: a [read] Keywords: domino ibm xpages application interface java javascript properties

Couchbase Followup and a Github Repository
Tue, Jun 18th 2013 1:19p   Jesse Gallagher
Since my initial tinkering with Couchbase, I've been idly thinking about improvements to the data sources and potential uses I may have for it. As for the latter, I think I may give a shot to implementing IKSG's new project-tracking system in it. I'll lose out on reader and author fields, but otherwise it'd be a pretty direct translation between NSF or Couchbase data stores. For the former, I decided to drop my development code in a Github repository and start tracking my to-dos there [read] Keywords: xpages database development java xml

Couchbase Data Sources for XPages
Mon, Jun 17th 2013 8:19a   Jesse Gallagher
The other day, I attended a Couchbase Developer Day in Philly. If you're not familiar with Couchbase, it's one of the young crop of NoSQL databases, and more specifically a document database and a conceptual cousin to Domino by way of Damien Katz. It's this similarity that makes it so interesting to me - Couchbase's still-living predecessor CouchDB started life as Notes built from the ground up for the web and the heritage is clear. Couchbase itself ends up being like if you melted dow [read] Keywords: domino notes xpages database java properties server

The "final" Keyword in Java
Sun, Jun 16th 2013 6:18p   Jesse Gallagher
Yesterday, I suggested that everyone enable finalizing parameters in their code cleanups and, better, to do the same in their Java save actions; later, I set Eclipse loose on the org.openntf.domino API to implement it there. Adding final keywords to method parameters (and elsewhere where possible) is one of the habits I picked up from reading Effective Java a bit ago, but it's kind of a subtle thing and the benefits aren't immediately obvious. If you're not at all familiar with the fina [read] Keywords: domino database eclipse java openntf

Development Improvements, June 2013
Tue, Jun 4th 2013 11:22a   Jesse Gallagher
I'm always looking to improve my programming/development/administration methods, and in the past couple months I've made a few more changes. To my chagrin, these changes are mostly things that I should have been doing for a while now and I've been sloppy to do them differently, but hey - fixing a problem is still improvement! Serious About Source Control I've been using source control for a while now, and I hope everyone else has as well. However, I've been lax in a couple ways, w [read] Keywords: administration domino dxl notes notes client ntf xpages application desktop development java mac server vm

Better Living Through Reverse Proxies
Thu, May 30th 2013 1:17p   Jesse Gallagher
A while ago, I set up Apache as a reverse proxy in front of Domino. Initially, that was in order to serve a WordPress site on the same server, but since then it has more than proven its worth in other ways, mostly in the areas of fault tolerance and SSL support. IBM recognizes those benefits, which is why Domino 9 on Windows comes bundled with IHS; however, I am a responsible admin, so I don't run Windows on my main servers. Fortunately, stock Apache does the job nicely... or it does usu [read] Keywords: admin domino ibm notes xpages server vm websphere

How I Got XPiNC Run-On-Server With SSO Working
Fri, May 17th 2013 5:14p   Jesse Gallagher
Among the new features in Domino 9 is this little guy, found on the Launch pane of a database's properties when you set it to open an XPage: If you've ever used an XPiNC application before, you'll know this is a godsend, promising the vast performance benefits of running an app on a server combined with the "the users are stuck using the Notes client" benefits of XPiNC. I turned this on for a new app on one of my client's servers (let's say the server name is ClientName-2/ClientNa [read] Keywords: admin domino notes notes client policies sametime xpages application database desktop network properties server

Public Service Announcement - NotesIn9 is down.
Tue, May 7th 2013 11:16a   Jesse Gallagher
David Leedy has run into some trouble with NotesIn9.com being down and he asked if I could help him get the word out about it, which I'm more than happy to do:     Hi - Just wanted to drop a note out there about my NotesIn9.com website.  Currently it's redirecting to someplace else for some unknown reason.  I assume it's been php hacked but I don't know.   My Wordpress site is generously hosted by Chris Miller and I've sent him a note.  Though since he's in the middle of the [read] Keywords: xpages bug

My Latest Programming-Technique Improvements
Tue, Apr 23rd 2013 9:18a   Jesse Gallagher
Over the past couple weeks, I've been trying out some new things to make my code a bit cleaner and I've been having a good time of it, so I figured I'd write up a quick summary. Composed Method First and foremost, I've been trying out the Composed Method of programming. This is not a new idea - indeed, it's a pretty direct application of general refactoring - but the slight perspective change from "factor out reused code" to starting out with clean, small blocks has been a pleasan [read] Keywords: agent domino ibm lotusscript xpages application database eclipse java openntf

Java Traps and Misconceptions
Tue, Apr 23rd 2013 6:16a   Jesse Gallagher
I wrote a post over at the Social Biz UG site covering a number of traps and conceptual hurdles I frequently see people running into when it comes to Java: https://www.socialbizug.org/blogs/gidgerby/entry/java_traps_and_misconceptions?l ang=en_us [read] Keywords: java

Fun With Old XML Features
Tue, Apr 2nd 2013 11:18p   Jesse Gallagher
One of the side effects of working on the OpenNTF Domino API is that I saw every method in the interfaces, including ones that were either new to me or that I had forgotten about a long time ago. One of these is the "parseXML" method found on Items, RichTextItems, and EmbeddedObjects. This was added back in 5.0.3, I assume for some reason related to the mail template, like everything else added back then. Basically, it takes either the contents of a text item, the text of a rich text ite [read] Keywords: domino ibm notes rich text xpages java javascript openntf xml

Release M1 of org.openntf.domino
Tue, Apr 2nd 2013 9:17p   Jesse Gallagher
Yesterday, we released milestone 1 of our improved Domino API. This is our first tagged release meant for proper testing - all of the classes are implemented, many of the banner features are in there, and we've been using it in various real-world situations. I switched a couple of my side projects over - my portfolio site, the code for this blog (though I haven't deployed the template yet), and a couple personal game-related apps. That kind of testing is going to be crucial in getting us [read] Keywords: domino openntf

We Have The Technology: The org.openntf.domino API
Thu, Mar 21st 2013 7:13p   Anonymous
As Nathan and Tim posted earlier today, a number of us have been working recently on a pretty exciting new project: the org.openntf.domino API. This is a drop-in replacement/extension for the existing lotus.domino Java API that improves its stability and feature set in numerous ways. The way I see it, there are a couple main areas of improvement: Plain Old Bug Fixes doc.hasItem(null) crashes a Domino server. That's no good! We've fixed that, and we're going through and fixing other [read] Keywords: agent domino dxl lotus notes bug database java openntf server xml

A Mini-Vacation With Ruby and the Domino Data Service
Sat, Mar 2nd 2013 4:11p   Jesse Gallagher
Since I've been neck-deep in LotusScript and Java for the past couple weeks, I decided to take a bit of a sanity break today and play around with Ruby. Specifically, I wrote a skeletal wrapper for the Domino Data Service in the ExtLib and the first steps of a Rails app using it a bit. I don't expect this to actually be useful down the line, or even necessarily to get any more work put into it, but it was a fun diversion. The API takes the same general shape as the normal Domino API, exce [read] Keywords: domino lotusscript database java server

I Know Some Guys
Tue, Feb 26th 2013 12:09p   Jesse Gallagher
I've been a bit quiet lately, but that's mostly because I've been pretty busy lately. After my old company began closing down, I started going whole-hog in my consulting company, I Know Some Guys. Naturally, I can't go TOO much into it, but the general gist is "so far, so good." We have a couple clients so far and they've been keeping me busy indeed. A lot of that has involved classic Notes client and web development, but I guess that serves me right for snickering at people work [read] Keywords: domino notes notes client consulting database development

The Bean-Backed Table Design Pattern
Tue, Jan 22nd 2013 4:13p   Jesse Gallagher
First off, I don't like the name of this that I came up with, but it'll have to do. One of the design problems that comes up all the time in Notes/Domino development is the "arbitrary table" idea. In classic Notes, you could solve this with an embedded view, generated HTML (if you didn't want it to be good), or a fixed-size table with a bunch of hide-whens. With XPages, everything is much more flexible, but there's still the question of the actual implementation. The route I've bee [read] Keywords: domino notes xpages database development java

More On "Controller" Classes
Mon, Jan 7th 2013 6:14p   Jesse Gallagher
Since my last post on the matter , I've been using this "controller" class organization method in a couple other projects (including a refresh of the back-end of this blog), and it's proven to be a pretty great way to go about XPages development. As I mentioned before, the "controller" term comes from the rough equivalent in Rails. Rails is thoroughly MVC based, so a lot of your programming involves creating the UI of a page in HTML with a small sprinkling of Ruby (the "view"), ba [read] Keywords: xpages development java javascript properties server

"Controller" Classes Have Been Helping Me Greatly
Wed, Dec 26th 2012 3:14p   Jesse Gallagher
I mentioned a while ago that I've been using "controller"-type classes paired with specific XPages to make my code cleaner. They're not really controllers since they don't actually handle any server direction or page loading, but they do still hook into page events in a way somewhat similar to Rails controller classes. The basic idea is that each XPage gets an object to "back" it - I tie page events like beforePageLoad and afterRenderResponse to methods on the class that implement [read] Keywords: domino ibm xpages interface java server

Moving From Ruby-in-XPages to Polyglot
Wed, Dec 12th 2012 1:18p   Jesse Gallagher
I've tweeted about this a couple times, but in some of my spare time lately I've put together a new, cleaner implementation of the generic-scripting-language support I first created back when I did my original work with Ruby. I named the new project "Polyglot" and it has two facets: The aforementioned generic-scripting-language support, done more cleanly and with better capabilities. A method for storing standalone page-generating scripts as documents in the database that are executed [read] Keywords: domino formula language lotus xpages database java

Programming Tips: Implied Booleans and the Ternary Operator
Tue, Dec 11th 2012 7:21a   Jesse Gallagher
This isn't Domino- or XPages-specific per se, but I figured I'd make a post about some of my favorite stylistic bits in many programming languages: implied boolean values and the ternary operator, which are distinct but often used together. What I mean by "implied boolean values" is when a language lets you use things that aren't strictly comparisons or boolean values in if/then tests. The best example for this is probably C (and no doubt the languages that came before it): for a lon [read] Keywords: domino xpages java javascript properties

Putting Apache in Front of Domino
Sat, Dec 8th 2012 1:10p   Jesse Gallagher
The other day, for my side-project company, I wanted to set up hosting for a WordPress site, ideally without setting up another whole server. The first two ideas I had were pretty terrible: Hosting it on Domino directly with PHP via CGI. Even if this worked, I assume the performance would be pretty poor and I'd have no confidence in its general longevity. Hosting it on Apache on another port and using Domino to proxy through. While Domino does have some minor proxy capabilities, they didn [read] Keywords: domino css linux server

My Current Data-Source Musings
Mon, Nov 26th 2012 5:10p   Jesse Gallagher
My quest to find the ideal way to access data in XPages continues. Each time I make a new project, I come up with a slight variation on my previous theme, improving in one or more of the various conflicting factors involved. The problem, as always, is that the standard xp:dominoView and xp:dominoDocument data sources alone are insufficient to properly separate business logic from presentation. On the other hand, accessing view data in a way that is both efficient and flexible via just the [read] Keywords: ibm xpages java

A Couple Blog Matters
Mon, Nov 26th 2012 5:10p   Jesse Gallagher
I've made a couple structural changes to the blog here. Normally, I wouldn't make a fuss over things like that, but they're pertinent to the overall theme. First off, I changed the links over on the right, adding a link to the in-progress home page of my side-project company, I Know Some Guys. We're in the market for contracts - web site projects, internal apps, and the like. I may have more about that later. I also promoted the link to my portfolio page to its own category. Since the [read] Keywords: ibm xpages application widgets

The Ruby Builder for XPages
Wed, Nov 7th 2012 12:14p   Jesse Gallagher
After I got Ruby in XPages to the point where it's generally working enough to power this blog, I set my sights on an even-more-important goal: being able to write backing Java classes in Ruby. While replacing SSJS is quite handy, my general use of inline scripting like that has declined significantly in favor of Java classes. Fortunately, JRuby has a language cross-compiler and some hooks to write Java-compatible Ruby classes. Unfortunately, I was repeatedly stymied by a couple things: [read] Keywords: ibm xpages application eclipse interface java

Self-Aggrandizement for Fun and Profit
Mon, Nov 5th 2012 8:15p   Jesse Gallagher
As I alluded to in my previous post, I decided to set up a "portfolio" site to house a list of projects I've made or collaborated on and my recently-updated resume: http://portfolio.frostillic.us The site itself is intentionally quite simple: it's meant to house clear content, while further details are available on linked pages. Nonetheless, despite its simplicity, it's allowing me to further refine a couple things I've been tinkering with lately: Bootstrap. Collaboration Today cam [read] Keywords: collaboration domino xpages applications database mobile

Taking a Swing at the URL Problem
Sun, Nov 4th 2012 6:13p   Jesse Gallagher
In the new portfolio web site I'm setting up for myself, I've decided to see what I can do about Domino's, and XPages' specifically, tendency towards ungainly URLs. An XPage URL, particularly an auto-generated one from, say, a view panel, can quickly become filled with undesirable elements - namely, ".nsf", ".xsp", "$$OpenDocument", "action=", and "documentId=". They all make sense and serve important purposes for the server, and to a certain extent URLs other than the main o [read] Keywords: domino xpages database server

Improving My Development Process: Source Control
Mon, Oct 22nd 2012 2:11p   Jesse Gallagher
I think it's fair to say that most professional programmers know that they should use source control, but, unless you work for a company that mandates it, you treat it like flossing or going to the gym. However, unlike your personal health and well-being, using source control is very important and can improve your life noticeably. I'm a recent convert, in part due to Domino's historic hostility to proper source control. However, since 8.5.3 and its inclusion of the surprisingly good So [read] Keywords: domino notes xpages application database development

A Couple Things I've Been Trying Out Lately
Tue, Oct 16th 2012 12:09p   Jesse Gallagher
I'm always trying to figure out new tricks and (groan) patterns for my XPages development, and I've had a couple trends and experiments lately that I think are worth mentioning. First off, I've been doing a lot of source control stuff lately, but that's a topic for another post, currently in crummy-draft form. Beyond that, I think I'll just start a list: The joys of ExtLibUtil. Historically, I've had a general "JSFUtil" class (with the name and original code copied from here), but [read] Keywords: domino lotus xpages database development java

Building XPages servlets with FacesContext access
Thu, Sep 6th 2012 7:11a   Jesse Gallagher
I have a confession to make: I'm not crazy about XAgents. Don't get me wrong - they do everything they're supposed to and do it well. However, it's always kind of bothered me that you take a visual design element like an XPage and turn off all the higher levels to get back down to the core servlet. Plus, it muddies the list of XPages in the DB - some are actual XPages, some are just wrappers for scripts. So my objection is essentially pedantry. However, the fact that my objection is wildly [read] Keywords: ibm xpages application database google java openntf

A Custom Control for dojox.widget.Toaster
Wed, Sep 5th 2012 8:14a   Jesse Gallagher
Update: Looks like Chris Toohey beat me to this by a couple months: http://www.dominoguru.com/pages/04092012113950.html Marky Roden did a presentation at MWLUG that included, among other things, a demonstration of Pines Notify, a jQuery plugin that provides Growl-style notifications - something that could come in tremendously handy in a lot of situations. I wanted to use something like this, but I decided to check to see if there's an equivalent in Dojo already, so I don't have to start incl [read] Keywords: css dojo properties widget

Quick-and-Dirty CKEditor Toolbar Setup for XPages
Tue, Sep 4th 2012 5:14p   Jesse Gallagher
A while back, I got annoyed by the lack of a "Source" button in the default rich text editor in XPages. After a bit of digging, I found that there is indeed one (not to mention a whole world of CKEditor toolbar plugins and enhancements) - just not by default. I think there's a way you can pick from a couple named "stock" toolbar layouts, but I ended up going the route of defining my own, naming each button in a group. In CKEditor, at least pre-3.6 (and I guess it works later too), toolbars [read] Keywords: domino rich text xpages xml

A Couple Updates to My Domino-One-Offs Repository
Tue, Sep 4th 2012 4:16p   Jesse Gallagher
I realized earlier that I let a couple of the classes in Domino-One-Offs stagnate relative to the versions I currently use. Since originally posting my convenience XML library and, more usefully, the DynamicViewCustomizer, I've tweaked both in my various projects to add more features I ended up needing. com.raidomatic.xml DynamicViewCustomizer SortableMapView The DynamicViewCustomizer has gone further down the path of Notes-client fidelity at the expense of a bit more overhead, doing things [read] Keywords: domino notes java xml

An Extended Document Data Source To Support MIMEBean
Wed, Aug 22nd 2012 5:11p   Jesse Gallagher
Ever since I personally came up with the idea of storing serialized Java objects in Notes documents via MIME, I've been trying to use the technique all over the place, since it's basically the best thing since sliced bread. My latest notion was that the pattern would be all the cooler if the serialized Java objects could be referenced directly in EL, so you could do something like #{doc.LineItems[3].cost}, pulling directly from a more-or-less normal Domino document. I decided to give implemen [read] Keywords: domino notes database java

Starting With Java Classes First
Mon, Aug 20th 2012 6:11p   Jesse Gallagher
Every time I make a new XPages app, I start by using the normal xp:dominoView and xp:dominoDocument data sources, on the theory that building with the standard set of components will keep things clean while I build on top of that. However, with each successive app, the time before I get annoyed at how messy the code has to be and start writing Java wrapper and management classes gets shorter and shorter. For example, in my Forms 'n' Views mini-Designer app, I have the sidebar list of database [read] Keywords: xpages database java javascript server

I Started Another Side Project
Thu, Aug 9th 2012 7:12a   Jesse Gallagher
While working on the view indexer thing (which seems to be taking the form of "yet another SQL exporter for Domino", but with some advantages), I started thinking about how I often want a nice, quick way to edit some views, forms, or stylesheets without having to launch Windows and Designer. The Mac client is there for views, but the experience still leaves something to be desired. In addition, I do very little lately that's intended to be seen directly in the Notes client - most views are se [read] Keywords: domino dxl notes notes client xpages dojo mac sql widgets

This View Indexer Thing Might Be Worth Some Time
Sun, Aug 5th 2012 2:16p   Jesse Gallagher
I've put a little more time into my small view indexer from the other day, and it seems even more promising now. The editor I made for it might give you some idea of the potential: Since the view building is all being done in Java, I decided to toss in the list of available JSR-223-compliant scripting languages currently available. The scripting context is given a variable "doc" that's a DocumentWrapper class I wrote that implements Map to make its use a bit easier. For added fun, I baked [read] Keywords: application java server

I Went Crazy and Made a Small View Indexer
Sat, Aug 4th 2012 9:12a   Jesse Gallagher
Warning: this post is almost entirely pie-in-the-sky nonsense, untethered from reality. Probably. So yesterday, for some reason, I got to thinking about Domino's view indexing and whether or not it can be readily done better. The current view indexer does its intended task with aplomb (most of the time), but it has its problems. For one, iterating over view indexes in Java (read: everything you should do in Domino today) is dog slow. More theoretically, since it deals only with summary data fo [read] Keywords: domino rich text database java oracle server wiki

Mixing Dojo's BorderContainer with OneUI
Tue, Jul 31st 2012 7:14p   Jesse Gallagher
Chris Toohey's post earlier today reminded me of a technique I've been using in some of my apps lately. Since most of what I've been doing has been for internal and admin/reporting-type apps, I've been using OneUI extensively - it's straightforward with the Extension Library, looks pretty good, and the consistency of UI works for that type of application. However, I ran into a problem with large views: putting a very horizontally-large table into the content area of OneUI breaks it horribl [read] Keywords: admin notes notes client application dojo

Faking Sortable View Data
Sun, Jul 22nd 2012 1:11p   Jesse Gallagher
There's a point in most decent-sized XPages apps I write where I switch from using standard data sources like xp:dominoView to writing Java classes that implement List, usually due to some multi-source data merging I have to do that would be extremely cumbersome or slow to do otherwise. This works well, but one problem is that view data sources have special powers that plain-Jane Lists lack, such as easy sortable column headers. Having encountered TabularDataModel a bit ago when making an acti [read] Keywords: domino ibm lotus notes xpages database development java oracle server

A Prototype In-App Messaging System for XPages
Mon, Jul 9th 2012 12:12p   Jesse Gallagher
Sven Hasselbach's post about ApplicationListeners the other day and the notion of post-MVC methods of app architecture got me thinking about the notion of generic messaging/events inside an XPages app. The first example that comes to mind is a project-tracking database where there may be events like "new task created" or "delivery ready for review" - business logic stuff where the fact that it's a document being modified is an implementation detail. In my actual project-tracking database a [read] Keywords: agent notes xpages application database interface java javascript openntf oracle properties xml

Using Lombok to Write Cleaner Java in Designer
Fri, Jul 6th 2012 4:15p   Jesse Gallagher
Java, as a language, has a number of admirable qualities, but succinctness is not among them. Even a simple "Person" class with just "firstName" and "lastName" properties can boil over with at least a dozen lines of boilerplate to add constructors, getters, setters, and equivalency testing. Fortunately, Project Lombok can help. Their main page contains a good video of the basics, while the Feature Overview page covers the rest. If you've written a lot of Java classes, I suspect that the v [read] Keywords: ibm lotus notes eclipse java properties server

Basic Org Charts With xe:navigator and xe:beanTreeNode
Fri, Jul 6th 2012 7:14a   Jesse Gallagher
The topic of generating org charts on an XPage came up recently, and I decided to try my hand at making a pretty basic one using a technique similar to my re-use of Outline design elements from the other week. Not only are the generated hierarchies potentially useful, but it ended up providing a much cleaner example of how to recursively generate an Extension-Library tree. To get started, I mocked up some basic data: I created a standard Domino directory database and created users with unique S [read] Keywords: domino database server

Using dojo.behavior
Tue, Jul 3rd 2012 6:16a   Jesse Gallagher
JavaScript in a browser is a messy business. While you can generally avoid writing a lot of client JavaScript when doing XPages development, it will eventually be necessary to get your hands dirty. While a bit of XSP.openDialog() here and there, things can get hairy when you want to start including the same or similar code everywhere. You can move the code blocks themselves off to a script library, but then you're still stuck including function calls inline. Enter dojo.behavior. I ran across d [read] Keywords: domino script library xpages css development dojo javascript

Book Review: XPages Extension Library
Mon, Jul 2nd 2012 4:14p   Jesse Gallagher
Unlike many development environments, there are only a handful of books about XPages. Combined with the historical lack of documentation, that makes all three - Mastering XPages, XPages Portable Command Guide, and XPages Extension Library - essential. In that sense, the quality of the book is a less important purchasing-decision factor than its mere existence. Fortunately, XPages Extension Library doesn't skimp on quality or breadth of coverage. The sections of the book track the natural progr [read] Keywords: xpages application development dojo eclipse java

Use Interfaces All The Time
Wed, Jun 27th 2012 6:15a   Jesse Gallagher
In addition to being useful concepts generally, Java interfaces can be used literally in code as a way of keeping your code as clean and generic as possible. While you can't ever create a new object based on an interface, you CAN use interface names as object types for variables and parameters. For example, this is a legal way to create a Vector of Objects: List someList = new Vector(); "That's great and all," you say, "but why bother doing that?" And indeed, in a simple case like a most [read] Keywords: agent domino ibm lotus notes xpages database interface java javascript oracle xml

Putting java.util to Use
Fri, Jun 22nd 2012 9:16a   Jesse Gallagher
I'm in the process of figuring out a good way to combine data from several sources into a single activity stream, which means that they should be categorized by date and then sorted by time. While that's a piece of cake with a single view, it gets hairy when you have several views, or perhaps several different types of sources entirely. Fortunately, abstract data types are here to help. You're already using Lists and Maps, right? For this, I decided to use Maps and one of my personal favorit [read] Keywords: interface java oracle wiki

Re-using Classic Domino Outlines, Rough Draft
Tue, Jun 19th 2012 3:14p   Jesse Gallagher
My current big project at work involves, among many other things, viewing individual project databases through a centralized "portal". These all use the same base template, but can be individually customized, usually with new or changed views. Additionally, I'm going to be granting web users varying roles that correspond to existing or planned access roles in the target database. The result is that I'm spending a good amount of time trying to dynamically adapt some classic Notes elements to [read] Keywords: domino ibm lotus notes xpages database java javascript openntf server

Reverse-Engineering File Formats for Fun
Mon, Jun 11th 2012 6:16a   Jesse Gallagher
Well, okay, it wasn't for fun; it was for work. About a year and a half ago, I had occasion to parse the contents of shared object files from a Flash Media Server ("*.fso" files), and I figured it might be interesting to go back over the kind of things I had to do to accomplish that. The first thing I did was to search around to see if anyone else had solved the same problem. However, while there are plenty of parsers for "Flash shared objects", not the least of which is in Flash itself, i [read] Keywords: java server wiki

Ruby Builder First Draft: Intriguing Failure
Sat, Jun 9th 2012 7:14a   Jesse Gallagher
For a while now, I've been fiddling with trying to make an Eclipse builder that smoothly translates Ruby files into Java classes and adds them to the project to be compiled, the idea being that, rather than only using Ruby inline in XPages or via "script libraries", you'd be able to write all of your supporting Java classes in it as well. I'd been giving it about an hour or so of frustration every couple of weeks, but yesterday I decided to hunker down and make it work. After patching the [read] Keywords: xpages eclipse java openntf

Created and Maintained by Yancy Lent - About - Blog Submission - Suggestions - Change Log - Blog Widget - Advertising - Mobile Edition