358 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
Latest 7 Posts
Musing About Web App Structure
Tue, Dec 16th 2014 83
How I Maven-ized My Framework
Mon, Dec 8th 2014 140
Using the ODA Design API for File-Resource Manipulation
Wed, Nov 19th 2014 180
Factories in XPages
Wed, Nov 12th 2014 277
Property Resolution in XPages EL
Tue, Nov 11th 2014 193
Using "Verboten" Property Names in Custom Controls
Sun, Nov 2nd 2014 238
CocoaLove Reflection
Sun, Oct 26th 2014 201
Top 10
A Welcome SSL Stay of Execution
Tue, Oct 21st 2014 402
Domino and SSL: Come with Me If You Want to Live
Wed, Sep 24th 2014 304
Factories in XPages
Wed, Nov 12th 2014 277
Using "Verboten" Property Names in Custom Controls
Sun, Nov 2nd 2014 238
"Build Automatically", "Refresh automatically", and "Team Development"
Thu, Jan 23rd 2014 218
CocoaLove Reflection
Sun, Oct 26th 2014 201
Property Resolution in XPages EL
Tue, Nov 11th 2014 193
Using the ODA Design API for File-Resource Manipulation
Wed, Nov 19th 2014 180
Better Living Through Reverse Proxies
Thu, May 30th 2013 162
Some Notes on Developing with the frostillic.us Framework
Thu, Oct 9th 2014 149

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 Dec 04, 2014 1:12:38 PM EST. Realtime Update:
Landed Here Nov 22, 2011
Location Lansdale, PA, USA
Posts: # / 1st / Latest - -
Total Hits 9,701. myPL RSS Selections: 7

Recent Blog Posts

Musing About Web App Structure
Tue, Dec 16th 2014 5:17p   Jesse Gallagher
I've been giving a lot of thought lately to how I feel about different structures for web apps. Specifically, in this case, the "structure" I'm thinking about is the "client-server" balance in the app itself and the associated method of data access. The impetus has been my minor fiddling with Angular over the past half a year or so. If you're not familiar with it, Angular is a client-side JavaScript framework focused on building full-fledged apps that run in the browser. The way it [read] Keywords: xpages application applications desktop development interface java javascript mobile server

How I Maven-ized My Framework
Mon, Dec 8th 2014 9:11a   Jesse Gallagher
This past weekend, I decided to take a crack at Maven-izing the frostillic.us Framework (I should really update the README on there). If you're not familiar with it, Maven is a build system for Java projects, basically an alternative to the standard Eclipse way of doing things that we've all gotten pretty used to. Though I'm not in a position to be a strong advocate of it, I know that it has advantages in dependency-resolution and popularity (most Java projects seem to include a "you c [read] Keywords: domino ibm lotus notes xpages community development eclipse integration java openntf profile properties workspace xml

Using the ODA Design API for File-Resource Manipulation
Wed, Nov 19th 2014 5:11p   Jesse Gallagher
As is characteristic of his blog, Sven Hasselbach recently posted two interesting posts on using the NAPI classes in the XPages runtime to manipulate files in the WebContent folder. If you haven't read the posts, I suggest you do so now, because it's knowledge that is very good to have. The NAPI classes are chock full of cheating sorcery. But the point of this post here is a bit of me-too-ism. Which is to say: the OpenNTF Domino API has you covered on this front. The API's Design packag [read] Keywords: domino dxl notes xpages database interface java openntf

Factories in XPages
Wed, Nov 12th 2014 5:18p   Jesse Gallagher
In my last post, I intimated that I wanted to write a post covering the concept of factories in XPages, or at least the specific kind in question. This is that post. The term "factory" covers a number of meanings, and objects named this way crop up all over the place (ODA has one, for example). The kind I care about today are those defined in an XspContributor object in an XPages plugin. These factories are generally (exclusively, perhaps) used for the purpose of generating adapters: as [read] Keywords: domino ibm notes xpages application development interface java

Property Resolution in XPages EL
Tue, Nov 11th 2014 10:19a   Jesse Gallagher
Reading Devin Olson's recent series on EL processing put me in the mood to refresh and fill out my knowledge of how that stuff actually happens. A while back, I made a small foray of my own into explaining how property resolution in XPages EL works, one which I followed up with a mea culpa explaining that I had left out a few additional supported types. As happens frequently, that still didn't cover the full story. Before getting to what I mean by that, I'll step back to an overview of [read] Keywords: domino ibm lotus xpages application development interface java javascript openntf properties xml

Using "Verboten" Property Names in Custom Controls
Sun, Nov 2nd 2014 8:11a   Jesse Gallagher
In an attempt to save you from yourself, Designer prevents you from naming your custom control properties after SSJS keywords such as "do" and "for". This is presumably because a construct like compositeData.for would throw both a syntax error in SSJS and the developer into a tizzy. However, sometimes you want to use one of those names - they're not illegal in EL, after all, and even SSJS could still use compositeData['for'] or compositeData.get("for") to access the value. Fortun [read] Keywords: ibm xpages javascript properties xml


CocoaLove Reflection
Sun, Oct 26th 2014 5:15p   Jesse Gallagher
This weekend, I attended CocoaLove a new Mac/iOS-development-related conference held in Philadelphia. Though my Cocoa resume consists of doing various tutorials every few years for the last decade or so, the location, concept, and speaker lineup were impossible to resist. The upshot: this was a great conference. As the tagline – "A conference about people, not tech." – indicates, the sessions weren't technical or even generally about programming as such. Instead, it was a bit more i [read] Keywords: domino ibm community development java mac twitter

A Welcome SSL Stay of Execution
Tue, Oct 21st 2014 3:11p   Jesse Gallagher
As you likely know from the torrent of posts on Planet Lotus on the topic, IBM announced a hopefully-imminent pair of updates to cover the two main SSL issues that have come to the fore recently: lack of SHA-2 support and the POODLE vulnerability in SSLv3. This is welcome indeed! Personally, I'm going to stick with the nginx approach for HTTP, even in simple setups, because I've found the extra features you can get (and the promising new ones I haven't tried) to be a dramatic [read] Keywords: domino ibm lotus planet lotus security server

Some Notes on Developing with the frostillic.us Framework
Thu, Oct 9th 2014 5:12p   Jesse Gallagher
Now that I have a few apps under my belt, I've been getting a better idea of the plusses and minuses of my current development techniques - the frostillic.us Framework combined with stock controls + renderers. This post is basically a mostly-unordered list of my overall thoughts on the current state. Component binding is absolutely the way to go. This pays off in a number of ways, but just knowing that the component is pointed unambiguously at a model property - and thus getting its field [read] Keywords: notes xpages development java network properties xml

Building an App with the frostillic.us Framework, Part 7
Tue, Oct 7th 2014 6:12p   Jesse Gallagher
Well, it's been much longer than planned, and this topic isn't actually particularly groundbreaking, but the series returns! Define the data model Create the view and add it to an XPage Create the editing page Add validation and translation to the model Add notification to the model Add sorting to the view Basic servlet REST with Angular.js One of the edge features of the Framework is that it assists in writing DesignerFacesServlet servlets - which are sort of like XAgents but written dir [read] Keywords: ibm xpages java

NotesIn9 Appearance: Custom Renderers
Thu, Oct 2nd 2014 7:12p   Jesse Gallagher
In a bout of unintentional timing, Dave Leedy posted an episode of NotesIn9 I recorded about custom renderers. This should pair nicely with my last post - the video provides an explanation for what renderers are, how to attach them to your components, and an example of a basic renderer for a widget container. So if you're interested in going down that path (which you should be!), perhaps the video will help. In it, I recommend looking at the source of Bootstrap4XPages, which remai [read] Keywords: widget

I Posted My WrapBootstrap Ace Renderkit
Tue, Sep 30th 2014 5:12p   Jesse Gallagher
Since I realized there was no reason not to and it could be potentially useful to others, I tossed the renderkit I use for the WrapBootstrap Ace theme up on GitHub: https://github.com/jesse-gallagher/Miscellany As implied by the fact that it's not even a top-level project in my own GitHub profile, there are caveats: The theme itself is not actually included. That's licensed stuff and you'd have to buy it yourself if you want to use it. Fortunately, it's dirt cheap for normal use. [read] Keywords: domino ibm development eclipse profile properties

A Note About Installing the OpenNTF API RC2 Release
Fri, Sep 26th 2014 12:16p   Jesse Gallagher
In the latest release of the OpenNTF Domino API, the installation process has changed a bit, which is most notable for Designer. The reason for this is due to the weird requirements in Designer for properly getting source and documentation working. When downloading the file, instead of the previous Eclipse update sites, there are two Update Site NSFs: one for Designer and one for Domino. There are a couple ways you can use these: If you're already using Update Sites for Designer or Domin [read] Keywords: domino notes application database eclipse openntf server

Domino and SSL: Come with Me If You Want to Live
Wed, Sep 24th 2014 1:12p   Jesse Gallagher
Looking at Planet Lotus and Twitter the last few weeks, it's impossible to not notice that the lack of SHA-2 support in Domino has become something of A Thing. There has been some grumbling about it for a while now, but it's kicked into high gear thanks to Google's announcement of imminent SHA-1 deprecation. While it's entirely possible that Google will give a stay of execution for SHA-1 when it comes to Chrome users (it wouldn't be the first bold announcement they quietly don [read] Keywords: domino ibm lotus notes notes client applications google integration java planet lotus server twitter websphere

Arbitrary Authentication with an nginx Reverse Proxy
Mon, Sep 22nd 2014 4:12p   Jesse Gallagher
I had intended that this next part of my nginx thread would cover GeoIP, but that will have to wait: a comment by Tinus Riyanto on my previous post sent my thoughts aflame. Specifically, the question was whether or not you can use nginx for authentication and then pass that value along to Domino, and the answer is yes. One of the aforementioned WebSphere connector headers is $WSRU - Domino will accept the value of this header as the authenticated username, no password required (it will als [read] Keywords: domino R6 xpages password server websphere ubuntu

Adding Load Balancing to the nginx Setup
Sat, Sep 20th 2014 8:16a   Jesse Gallagher
In an earlier post, I went over the basic setup of installing nginx on a single Domino server to get the basic benefits (largely SSL). Next, it's time to expand the setup to have one nginx server in front of two Domino servers. The concept is relatively straightforward: when an HTTP request comes in, nginx will pick one of the back-end servers it knows about and pass the request along to that. That allows for balancing the load between the two (since the act of processing the request is m [read] Keywords: domino xpages network server ubuntu

Generating JSON in XPages Applications
Thu, Sep 18th 2014 3:13p   Jesse Gallagher
This topic is fairly well-trodden ground, but there's no harm in trodding it some more: methods of producing JSON in the XPages environment. Specifically, this will be primarily about the IBM Commons JSON classes, found in com.ibm.commons.util.io.json. The reason for that choice is just that they ship with Domino - other tools (like Gson) are great too, and in some ways better. Before I go further, I'd like to reiterate a point I made before: Never, ever, ever generate code without prope [read] Keywords: domino formula language ibm xpages applications java xml

Setting up nginx in Front of a Domino Server
Thu, Sep 18th 2014 10:18a   Jesse Gallagher
As I've mentioned before and now presented on, I'm a big proponent of using a reverse proxy in front of Domino. There are numerous benefits to be gained, particularly when you expand your infrastructure to include multiple back-end servers. But even in the case of a single server, I've found it very worthwhile to set up, and not overly complicated. This example uses nginx and Domino on Ubuntu Linux, but the ideas and some configuration apply much the same way on other OSes and with othe [read] Keywords: domino notes linux server websphere ubuntu

Designer Experiment and Feature Request: JSF Tools in Designer
Wed, Sep 17th 2014 4:12p   Jesse Gallagher
TL;DR: You can install JSF tools in Designer to help out quite a bit with faces-config.xml editing, but there are bugs that may require changes in Designer's code to fix. I was having a discussion about Andrew Magerman's recent on-point jeremiad about SSJS and the topic got to the difficulty of using Java in XPages if you don't already know the ropes - creating classes, managed beans, etc.. I looked around a bit for examples of how other tools do it, and I found this page on using the [read] Keywords: domino notes xpages application applications development eclipse java properties workspace xml

Quick Tip: A View-Filtering Search Box
Tue, Sep 16th 2014 7:11p   Jesse Gallagher
One of the problems that crops up in some situations in XPages is the one described here: executing Ajax queries in too rapid a succession can cause the browser to cap them out until a full refresh. Depending on how you're encountering the problem, there may be a built-in solution: XSP controls that execute Ajax requests often have a throttling or latency parameter, and the same applies for "manual" JS widgets like Select2 (called "quietMillis" there). Another such situation is the to [read] Keywords: ibm xpages ajax javascript properties widgets xml

The Basic Xots Tasklet in the Blog
Sat, Sep 6th 2014 7:12a   Jesse Gallagher
Continuing in my two-day spat of blog posts shamelessly containing "blog" in the title, I figured I'd mention how I'm using Xots for new-comment notifications. If you're not familiar with it, Xots is a recent addition to the OpenNTF Domino API (added in the recently-released M5 RC1 build), intended to replace both agents and DOTS. There's still more work to be done on the scheduling portion, but Xots is perfectly capable of running manually-created tasks in a similar manner to Threa [read] Keywords: agent domino database openntf server

How I'm Handling URLs for the Blog
Fri, Sep 5th 2014 6:13p   Jesse Gallagher
As I mentioned in the introductory post for the blog, I'm putting my investigation into RequestCustomizerFactory classes to work in the blog. At its core, the point of what I'm doing is to allow me to write code like this: ...and have the generated link be something like: whatever The core of this is the ability of a RequestCustomizerFactory to specify a UrlProcessor that is used by basically every URL-generation routine in XPages to map the XSP-side URLs to their final HTML version. [read] Keywords: xpages database java server

New Blog Structure
Fri, Sep 5th 2014 3:13p   Jesse Gallagher
So I finally got around to re-doing my blog app after letting the previous one wither on the vine for years. The main things this new template has over the previous one are: A properly responsive design care of WrapBootstrap. Conveniently, it's the same design I use for our internal task-tracking app, so I had most of the renderers ready. Along those lines, the XSP structure is heavily based on standard/ExtLib components when at all possible, rather than putting the Bootstrap structure i [read] Keywords: development

(Not) My Slide Decks From MWLUG
Tue, Sep 2nd 2014 6:14p   Jesse Gallagher
At this year's MWLUG, I presented two sessions: one on using nginx as a reverse proxy and load balancer, and one on structured XPages development. Normally, the next step would be to post the slides, but my decks aren't particularly useful on their own - they were small 8-slide affairs that mostly served as a memory assistance to me, one sight gag, and then a "Demo" slide where I switched to the normal screen for the actual code. So my plan instead is to blog with the details. The latter s [read] Keywords: xpages development twitter

A Centralized Bean for Translation
Mon, Sep 1st 2014 2:12p   Jesse Gallagher
The normal method for doing translation in XPages is by using the built-in Designer tooling, which creates properties files for each language for each XPage in your app. This is okay, though it requires using Designer to update the properties (since apparently the translation happens as part of the build process). For the refresh of my blog I'm working on, I'm taking a different tack, inspired by the way a client does it and similar to how I do it in the Framework. Specifically, I have a cent [read] Keywords: domino ibm xpages application java javascript properties

Quick Tip: Use Dojo Content Panes for Speedier Initial Page Loads
Mon, Aug 18th 2014 5:13p   Jesse Gallagher
The XPages Extension Library is full of hidden gems and one I particularly like keeping in my back pocket is the control. It's a fairly unassuming control; like the rest of the components in the "Dojo Layout" category, it takes its name and basic concept from the underlying Dijit. However, you don't have to use it in a full Dojo layout - and, in fact, all of the actual layout types have more-appropriate XSP components. Presumably, its initial use is to load content from a specified UR [read] Keywords: xpages database dojo javascript network properties

My Sessions at MWLUG This Year
Mon, Aug 18th 2014 1:13p   Jesse Gallagher
As I mentioned at the end of this morning's post about SSL and reverse proxies, I'm going to be giving a session on using a reverse proxy in front of Domino at this year's MWLUG next week. Specifically, it will be one of two sessions, both on Friday: OS101: Load Balancing, Failover, and More With nginx I'll be discussing the general reasons why you would use a reverse proxy - not just the aforementioned SSL benefit, but also load balancing, failover, multi-app integration, new feature [read] Keywords: domino xpages integration server

Domino SSL and Reverse Proxies
Mon, Aug 18th 2014 7:12a   Jesse Gallagher
Domino's SSL stack has been long-in-the-tooth and awkward to deal with for a while. Until recently, this has mostly just resulted in the sort of stilted way you have to set up SSL keychains, using the Server Certificate Admin database initially and then "IKeyMan" more and more (specifically, an old version you need 32-bit Windows XP for, like a barbarian), but the job eventually got done. However, as a post from Steve Pitcher points out, this is becoming rapidly impractical. While I gen [read] Keywords: admin domino ibm database development server smtp websphere

Quicker Tip: Lowering XPage Build Overhead When Using Jars
Thu, Aug 14th 2014 1:13p   Jesse Gallagher
(Caveat: I don't actually know if this matters with the Jar design element in 9.0+, since the only times I've needed it are with clients using obsolete versions) If you use Jar files stored in an NSF in your build path with XPages apps, you've likely noticed that it makes your build times interminable, particularly if it's a large library. From what I can tell, Designer seems convinced that it must download the entire Jar file during every build, in order to find out what's inside of [read] Keywords: xpages archive eclipse

Be a Better Programmer, Part 4
Thu, Aug 14th 2014 7:12a   Jesse Gallagher
This topic isn't, strictly speaking, in the same vein as the rest of this series; instead, it's more of a meandering "case study" sort of thing. But it has something of a unifying theme, if you'll bear with me: Be Mindful of Your Layer of Abstraction Basically everything about computers has to do with layers of abstraction, but what I have in mind at the moment is how it interacts with web programming. First, I'll dive into a bit of background. The original premise of HTML was that [read] Keywords: domino xpages best practice css desktop development java javascript properties server widgets

Quick Tip: facetName-less Callbacks in XPages
Wed, Aug 13th 2014 5:12p   Jesse Gallagher
When you're setting up a Custom Control, you likely know by now that you can set up callback areas to add content to a specified place inside your CC content when it's rendered. They typically look something like this: Content Above Content Below You then drop content in there like so in your XPage: That works fine. However, you can benefit greatly by learning that both properties of the callback are optional. Leaving off the id isn't particularly interesting, [read] Keywords: ibm xpages properties xml

How I Learned to Stop Worrying and Love C Structs
Mon, Aug 4th 2014 8:12p   Jesse Gallagher
Since a large amount of on-site client time has put my framework work on hold for a bit, I figured I'd continue my dalliance in the world of raw item data. Specifically, what I've been doing is filling out the collection of structs with Java wrappers, particularly in the "cd" subpackage. For someone like me who has only done bits and pieces of C over the years, this is a fruitful experience, particularly since I'm dealing with just the core concept of the Notes API data structures wit [read] Keywords: domino dxl ibm notes rich text rich-text bug css java

Delving Into NSF Raw Item Data
Tue, Jul 29th 2014 11:12a   Jesse Gallagher
For the Design package of the OpenNTF Domino API, one of my goals was to add the ability to access the supporting structures around XPages: file resources, images, CSS, and, crucially, Java classes and the XPages themselves. My weapon of choice for the whole API is DXL, and this covered the job nicely for most of those aspects. DXL has clean representations for the first three in the list: specialized XML formats containing the pertinent metadata and a single BASE64-encoded block of the ac [read] Keywords: agent domino dxl lotus lotusscript notes rich text xpages css java leak openntf xml

Building an App with the frostillic.us Framework, Part 6
Wed, Jul 23rd 2014 12:12p   Jesse Gallagher
Define the data model Create the view and add it to an XPage Create the editing page Add validation and translation to the model Add notification to the model Add sorting to the view Basic servlet REST with Angular.js Add sorting to the view This step in the framework example is very similar to the second in that there's nothing particularly Framework-y about it. Technically, the work in the title of this step is already done: I had already enabled click-to-sort and set sortable="true" i [read] Keywords: notes xpages java

The Industry's Vileness
Tue, Jul 22nd 2014 9:13p   Jesse Gallagher
Fair warning: this post isn't technical. It's also full of sweeping generalities. When I attended middle and high school, it was as part of the last group of geeks and nerds that should face systemic ostracization. Naturally, high school will still be terrible for most people, just because it's full of high schoolers, but the world at large has seen a near-complete triumph for geeks and nerds generally. And this has had some very positive side effects: because we had to deal with exclu [read] Keywords: community development

Generating Toaster, dGrowl, etc. Notifications From Server Code
Tue, Jul 22nd 2014 10:12a   Jesse Gallagher
In yesterday's Framework-series post, I offhandedly mentioned that the "flashMessage" routine I use could easily be paired with or replaced by "toaster"-style notifications. This turned out to be very coincidental, as just today a NotesIn9 episode went up featuring Brad Balassaitis talking about using dGrowl for this purpose, along with an accompanying blog post. Whenever I've used something like this, I've run into situations where I want to generate the message from the server, sa [read] Keywords: formula language ibm xpages dojo java javascript properties server xml

Value and Method Bindings in XPages
Mon, Jul 21st 2014 3:12p   Jesse Gallagher
When you use any binding in XPages - anything with "#{...}" or "${...}", regardless of whether it's EL, SSJS, or other - you're creating what is called in JSF-land either a ValueBinding or a MethodBinding, and the distinction is important but can be subtle, particularly when dealing with SSJS. Value Bindings The simplest case of value bindings are sprinkled throughout even the most basic XPage app, created when you bind a control to a document's field: The meaning is clear: "thi [read] Keywords: notes xpages interface java javascript

Building an App with the frostillic.us Framework, Part 5
Mon, Jul 21st 2014 1:12p   Jesse Gallagher
Define the data model Create the view and add it to an XPage Create the editing page Add validation and translation to the model Add notification to the model Add sorting to the view Basic servlet REST with Angular.js Add notification to the model The next step in building our Framework app is a simple one: adding some basic visual notification when user saves a note. We'll leave the navigation rule to send the user to the home page in place and use flashScope (included in the Framework) a [read] Keywords: email java

Meandering Musing About Views
Sun, Jul 20th 2014 9:15p   Jesse Gallagher
As happens periodically, I've been thinking about Domino views lately. When I get into one of these moods, I find it helps to take a step back to look at what an NSF is. An NSF is, in its heart of hearts, a key/value store. Each entry has several keys of which the useful ones are Note ID and the UNID, which are 32-bit and 128-bit integers, respectively, and where the Note ID is fixed and the UNID is mutable. Each entry's value is a multimap with string keys and values that are either ef [read] Keywords: agent domino formula language ibm database java javascript openntf server sql

How I Deal With Collections in the Framework
Sun, Jul 20th 2014 8:13a   Jesse Gallagher
A post on Christian Güdemann's blog and a followup on Nathan Freeman's made me figure it could be useful to discuss how I deal with the job of working with document collections in the frostillic.us Framework. First of all: I am not solving the same original problem Christian had. His post discussed strategies for actually opening and processing every document and secondarily building a collection using inadvisable selection formulas for views (namely, @Today). I don't generally do that [read] Keywords: domino ibm rich text xpages bug database java openntf

Platform Defensiveness
Fri, Jul 18th 2014 6:12p   Jesse Gallagher
If you were a Mac user in the 90s and early 2000s, life could be tough. Though you loved your platform of choice and could see its advantages plain as day, you were in a distinct minority. The world was full of people ready to line up to explain why you're an idiot on a sinking ship. And the part that stung was that they weren't always wrong: for every person talking out of their ass about how great having a menu bar in every window was or the joys of running ancient line-of-business DOS [read] Keywords: domino ibm notes notes client xpages apple community desktop exchange exchange google mac microsoft server

Building an App with the frostillic.us Framework, Part 4
Thu, Jul 17th 2014 1:12p   Jesse Gallagher
Define the data model Create the view and add it to an XPage Create the editing page Add validation and translation to the model Add notification to the model Add sorting to the view Basic servlet REST with Angular.js Add validation and translation to the model Now that we have a page to edit the model objects, it's time to spruce them up a bit by adding some type information, an additional field, and some basic translation. When we first set up the Note model, it didn't contain any infor [read] Keywords: domino xpages java properties sql

Building an App with the frostillic.us Framework, Part 3
Thu, Jul 17th 2014 12:12p   Jesse Gallagher
Define the data model Create the view and add it to an XPage Create the editing page Add validation and translation to the model Add notification to the model Add sorting to the view Basic servlet REST with Angular.js On the scale of "bog-standard" to "weird", the next phase of writing a frostillic.us Framework app sits in the middle: the basic steps of creating a model-editing page are pretty standard, but you can use unique aspects of the Framework to save a bunch of coding and add som [read] Keywords: domino ibm notes xpages dojo properties xml

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

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