The New Podcast is a Real Thing: WTF Tech Episode 1
Mon, Oct 31st 2016 10:31a Jesse GallagherAs intimated at the end of the last This Week in Lotus, Stuart, Darren, and I
have launched a new podcast in a similar vein: WTF Tech. Since we're all in the
IBM sphere, that'll be the natural starting point for the topics we cover, but
it's not going to be IBM-focused as such. For this first episode, we lucked out
and had a couple-weeks period chock full of announcements, so we had plenty of
material. Give it a listen!

16

Cramming Rails Into A Maven Tree
Mon, Sep 26th 2016 1:25p Jesse GallagherBecause I'm me, one of the paths I'm investigating for my long-term
blog-reformation project is seeing if I can get Ruby on Rails in there. I've
been carrying a torch for the language and framework for forever, and so it'd
be good to actually write a real thing in it for once.
This has been proving to be a very interesting thing to try to do well.
Fortunately, the basics of "run Rails in a Java server" have been well worked
out: the JRuby variant of the language is top-notch and the

18

Quick Post: Maven-izing the XSP Repo
Sat, Sep 17th 2016 6:58a Jesse GallagherThis post follows in my tradition of extremely-narrow-use-case guides, but
perhaps this will come in handy in some situations nonetheless.
Specifically, a while back, I wrote a script that "Maven-izes" the XPages
artifacts, as provided by IBM's Update Site for Build Management. This may seem
a bit counter-intuitive at first, since the entire point of that download is to
be able to compile using Maven, but there's a catch to it: the repository is
still in Eclipse ("P2") format, which

19

Reforming the Blog in Darwino, Part 1
Thu, Sep 15th 2016 2:38p Jesse GallagherThis continues to be a very interesting time for Domino developers, with the
consternation of MWLUG giving way to IBM's recent announcement about their
plans for Domino. Like everyone, I have my feelings about the matter, but the
upshot is that moving-forward tone still stands. With that in mind, let's get
down to business, shall we?
I'm going to kick off my long-term blog series of moving my blog itself over to
a Darwino+JEE application. I say "long-term" because it's a pure side pr

17

There Are Pods That Need Casting
Tue, Sep 6th 2016 10:25a Jesse GallagherI had the pleasure of taking part in the long-awaited demise episode of This
Week In Lotus!
http://thisweekinlotus.com/115-doing-a-three-way/
We covered a lot of ground, with a reflection on this year's MWLUG, the Sturm
und Drang about Domino, Toscana/IBM design, and a few other topics. Most
important, though, is the special announcement at the end of the episode, which
you'll just have to listen for. Or skip to the end, I guess; there's a tracking
bar right on the page.

18

Quick XPages Utility: Keep Alive and Alert
Tue, Aug 30th 2016 2:17p Jesse GallagherFor one of my projects recently, I put together a small custom control that I
sure wish I had thought to do years ago: a "keep alive and alert" control. For
a long time now, the Extension Library has had a "keepAlive" control, which
keeps a page session (and, usually, authentication) alive while the user has
the browser window open, avoiding the otherwise-common issue of someone sitting
on a page "too long" and having it break underfoot. However, that doesn't cover
the edge cases: t

19

Change Is In The Air
Fri, Aug 26th 2016 4:41p Jesse GallagherDuring last week’s MWLUG, there was a clear sense that things are a little
different this year. Dave Navarre dubbed the technical implications “platform
agnosticism”, while I geared my presentation towards the feeling that change is
in the air.
This is not totally new. Red Pill Now cast aside the XPages UI layer and most
of the assumptions of Domino development to move to a new level; PSC's
presentations have long developed a polyglot tone, and this ramped up this
year; and people

19

MWLUG 2016 Slides
Sat, Aug 20th 2016 8:07p Jesse GallagherI just returned from this year's MWLUG, held in surprisingly-rainy Austin,
Texas. As every year, MWLUG is an outstanding event, particularly for a
development crowd (though I think admins get tons of material too). I'm
definitely looking forward to next year's in DC, and not merely because that's
a pretty quick drive for me.
I'll have some more to write later to follow up on the themes of this year's
event, but in the mean time I've uploaded the slides from my presentation:
AD106

20

MWLUG 2016
Mon, Aug 15th 2016 10:29a Jesse GallagherMWLUG 2016 is happening this week, down in I'm-sure-it's-not-deathly-hot
Austin, Texas. MWLUG has really proven to be a top-tier conference for our
community, and I'm looking forward to it again this year. To be fair, part of
that is that I'll be presenting on Friday, with a session entitled "Expand Your
Apps And Skills To The Wider World":
The technological world has changed, but the work done by your Domino apps has
not. Rather than discarding your old applications in a distruptive

9

Release Weekend: ODA and Darwino
Tue, Aug 2nd 2016 7:10a Jesse GallagherThis past weekend was a nice one for releases to a couple of the projects I
work on: the OpenNTF Domino API and Darwino.
The ODA release is something of a "consolidation" release over 2.0.0: it fixes
a few of the bugs that cropped up since then, adds some important lower-level
tweaks, and brings the graph REST API into the mainline release. One note with
the REST API is that, due to making use of a recently-added extension to the
core code, it requires a recent release of the Extension L

8

Provisions for the Journey
Sun, Jun 19th 2016 10:27a Jesse GallagherIn my last post, I ended up recommending that Domino developers and
administrators take some time, if at all possible, to dive into new tools. In
some cases, that may be in order to stay indefinitely, but, even otherwise,
learning a new environment would have tremendous benefit to your existing
Domino work.
Since I'm not a full-time administrator myself, my advice is admittedly a bit
thin. It mostly involves my oft-repeated suggestion to try out a reverse-proxy
setup for HTTP. That could

14

Change Bitterness and Accidents of History
Fri, Jun 17th 2016 2:16p Jesse GallagherIt's pretty easy to see that change is in the air for Domino types. It's been
taking a number of forms for a while now - the long delay since the release of
9.0.1 and associated aging of the tools and infrastructure have led to a series
of forced adaptations for developers and administrators. Developers, for
example, have had to keep light on their feet to adapt to new browsers and
devices that the framework doesn't automatically support, as well as a shift
toward manually including jQu

9

Code Safety and Pedantry
Fri, Jun 3rd 2016 9:23a Jesse GallagherLately, I've been musing a lot on the topic of code "correctness" - that is,
beyond the normal case of wanting code to do what I intended, and further into
the realm of sweating even extremely-miniscule details. A lot of this is due to
my continued watching of the evolution of Apple's Swift language (I highly
recommend following Erica Sadun's blog for this). Swift is very much in the
camp of "make sure all your 'i's are dotted and 't's crossed" languages, as
opposed to more fast

15

Darwino for Domino: Conceptual Overlap and Distinctions
Wed, Jun 1st 2016 3:18p Jesse GallagherI've talked a bit so far about how Darwino related to Domino from a development
perspective, but I think it'd also be useful to delve into specifically which
concerns thw two platforms address, to see where they overlap and where they
don't.
There are two main categories to cover, since Darwino inherits Domino's unusual
trait of pouring over from "database" to "app-dev platform".
Database
As I covered a few posts ago, the two are similar at a conceptual level, both
being replicat

9

Speaking at Social Connections Toronto
Mon, May 30th 2016 11:57a Jesse GallagherBy virtue of one of the original speakers having to cancel, I will be
presenting at Social Connections in Toronto next week! Specifically, it will be
on the 7th at 2:30, and the topic will be OpenNTF's new tooling and initiatives:
OpenNTF has long been a central hub for community and open-source development
in the Notes/Domino world. In the past year, however, it has also expanded its
capabilities with new tooling and a broadening scope to the larger IBM
portfolio. This presentation wil

18

Old App Idea: App Manager
Tue, May 24th 2016 9:12a Jesse GallagherYears back, I took a small whack at an idea that had been percolating in my
head: a "app manager" application that would assist with the XPage-specific
portions of running a Domino server. It would cover a lot of ground that
Administrator really doesn't touch, such as inspecting NSFs to see which
contain XPage artifacts, highlighting potential problems with them, and
assisting with app-design backup and deployment.
It never really got too far, since there are always a hundred other thin

13

The Cleansing Flame of Null Analysis
Sat, May 21st 2016 9:18a Jesse GallagherThough most of my work lately has been on sprawling, platform-level stuff or
other large existing codebases, part of it has involved a new small app. I
decided to take this opportunity to dive more aggressively than previously into
automated null analysis and other potential-bugs tools.
What I mean by "null analysis" is letting the IDE or compiler try to help you
avoid NullPointerExceptions. Though there are plenty of other programming
mistakes you could still make, these are among the m

10

Quick, Short-Notice Announcement: Delaware Valley Soc-Biz UG Meetup
Tue, May 17th 2016 7:34p Jesse GallagherGranted, this is short notice, but for anyone in the southeast-PA area, there's
a meetup at IBM's offices this Thursday (the 17th) from 11 to 12:30. I'll be
there, giving a presentation about OpenNTF and some of the ways that I've used
the projects we work on there on my customer projects. Better still, there's
lunch! The signup form is over on Greenhouse here:
https://greenhouse.lotus.com/forms/landing/org/app/80846239-6f7a-4483-8ace-9e5e0
2b0a661/launch/index.html?form=F_Form1
If yo

13

Darwino for Domino: Domino-side Configuration
Mon, May 16th 2016 2:51p Jesse GallagherIn my last post, I mentioned that a big part of the job of the Darwino-Domino
replicator is converting the data one way or another to better suit the likely
programming model Darwino-side or to clean up old data. The way this is done is
via a configuration database on the Domino side (an XPages application), which
allows you to specify Database Adapters that configure the translation. While
it is possible to write these in Java, the primary way is to use a Groovy-based
DSL script.
The sim

11

Darwino for Domino: Replication and Data Format
Wed, May 11th 2016 1:35p Jesse GallagherOne of the key points of interest in Darwino for Domino developers is its
two-way replication. Darwino's replication system was built in such a way that,
in addition to its own internal needs, you can also write a replicator to
connect to an entirely-unrelated system, as long as that replicator translates
the foreign data to and from JSON documents. Domino is a perfect case for this,
since the data model is already very similar, and its replicator ships with
Darwino and has been a focus o

9

An Overview of Darwino for Domino Types
Thu, Apr 14th 2016 6:05p Jesse GallagherSo, Darwino! I've mentioned it quite a few times on Twitter and, particularly,
in person, but I think it's high time I write some proper blog posts about it.
To start with, I'll cover what Darwino is. The short version is it's a
Java-based development framework with a replicating document database. The
interesting aspects go beyond that, though:
In addition to Java web servers, it targets mobile devices, both Android and,
through RoboVM, iOS. Those devices store their own replicas of t

8

A Bit of Code Archaeology
Thu, Mar 10th 2016 9:08a Jesse GallagherYesterday, I decided to toss the source of my first real XPages app up on
GitHub:
https://github.com/jesse-gallagher/Raidomatic
It's my WoW guild's web site, which had some forums as well as a
raid-management tool and loot tracker. I'm guessing that those tools won't be
particularly useful for your average XPages app, but they were interesting
things to build, and were a great exercise in figuring out the platform. Since
it is quite old, there are also plenty of terrible decisions i

7

Maven Native Chronicles: Running Automated Notes-based Tests
Sat, Feb 27th 2016 5:02p Jesse GallagherThis post isn't really in my ongoing Java thread, though it's related in that
this is the sort of thing that may come up in fairly-advanced cases. This post
will assume a functional knowledge of Maven, Tycho, and JUnit.
For Darwino, I ran into the need to run unit tests on Domino-adapter code
during the Maven build process. Since the Domino project tree uses Tycho, this
ended up differing slightly from standard Maven testing. Rather than using the
src/test/java directory in the same proj

7

That Java Thing, Part 16: Maven Fallout
Tue, Feb 23rd 2016 2:33p Jesse GallagherSo, after the last post's large task of converting to Maven, this step is
mostly about picking up the pieces and expanding on some of the concepts. We'll
start with M2Eclipse, usually rendered as just "m2e".
m2e
m2e is the set of plugins that acts as Eclipse's interface to Maven. It
more-or-less replaces the earlier maven-eclipse-plugin, though you will likely
still see references to that around. Eclipse doesn't have any inherent
knowledge of how Maven works, m2e has the complicated

8

That Java Thing, Part 15: Converting the Projects
Mon, Feb 22nd 2016 10:26a Jesse GallagherPrelude: there was a typo in the previous entry. Originally, the file URL read
"file://C:/IBM/UpdateSite", but, on Windows, there should be another slash in
there: "file:///C:/IBM/UpdateSite". I've corrected the original post now, but
you should make sure to fix your own settings.xml file if needed. Otherwise,
Maven will complain down the line about the URI "having an authority component".
The time has come to do the dirty work of converting our existing plugin
projects to Maven. Th

3

That Java Thing, Part 14: Maven Environment Setup
Sun, Feb 21st 2016 6:51p Jesse GallagherBefore diving into the task of converting our plugin projects to Maven, there's
a bit of setup we need to do. In a basic case, Maven doesn't require much setup
beyond the project file itself - it's a "convention over configuration" type of
thing that tries to make doing things the default way smooth. However, since
it's also a "Java" thing, that means that anything out of the ordinary requires
a bunch of XML.
Our big "out of the ordinary" aspect is OSGi. Maven and OSGi are often

9

That Java Thing, Part 13: Introduction to Maven
Fri, Feb 19th 2016 6:27p Jesse GallagherI've been laying warnings that this would be coming and you've seen me grouse
about it for over a year, but now the time has come to really dive into Maven
for Domino developers.
To lead into it, there are two main topics to cover: what Maven is and why you
should bother.
What Maven Is
Maven is a build automation tool, primarily for Java applications but able to
work with a number of other languages and environments.
The concept of a "build automation tool" is a strange one when you

5

Connect 2016 and Darwino 1.0
Mon, Feb 8th 2016 9:45a Jesse GallagherLast week was Connect 2016 and, while I don't have a full review of it, I felt
that it was a pretty successful conference. The new venue was much less weird
and more purpose-fitting than expected. Moreover, while the conference content
wasn't bursting with announcements and in-depth technical dives like at
something like WWDC, it did feel a bit more grounded and less marketing-hollow
than the last two. So I'll call it a win.
On the OpenNTF front, the conference saw a bit more in the slo

8

Connect 2016 Lead-Up
Tue, Jan 26th 2016 9:02a Jesse GallagherPhew, well, my plugin series continues its hiatus due to how thoroughly swamped
I've been with work the last couple months. It will return in time, ready to
dive into the fruitful and terrifying topic of Maven-ization. In the mean time,
we're very close indeed now to this year's Connect, and I'm looking forward to
it.
There are a number of sessions that I'm rather looking forward to, but I'd like
to mention two due to my indirect and direct association with them,
respectively.
Firs