203 Lotus blogs updated hourly. Who will post next? Home | Blogs | Search | About 
Latest 7 Posts
Composing With Docker
Thu, Nov 2nd 2017 6
Hacktoberfest and More
Tue, Oct 24th 2017 4
Go Evergreen
Tue, Oct 17th 2017 4
Change is in the Air
Fri, Sep 1st 2017 7
Open Source Contribution
Fri, Jun 16th 2017 4
Docker Quick Tips
Fri, Apr 28th 2017 7
Notes in 9: Dev Tools Grab Bg
Tue, Apr 4th 2017 3
Top 10
Building Java Objects From JSON
Thu, Jan 22nd 2015 10
Task Runners pt.4
Thu, Dec 17th 2015 9
Notes in 9: Docker + SonarQube
Wed, Feb 24th 2016 8
When You Need a Comparator
Thu, Jan 8th 2015 7
A Brief Intro to Nginx
Mon, Mar 23rd 2015 7
XSLTProc in the Buff
Thu, Mar 24th 2016 7
Using Node to Connect to an IBM i
Wed, Apr 20th 2016 7
Eric and the Quest for More Coffee, pt.2
Fri, Jul 15th 2016 7
Docker Quick Tips
Fri, Apr 28th 2017 7
Change is in the Air
Fri, Sep 1st 2017 7

Something I Overheard at MWLUG
Twitter Google+ Facebook LinkedIn Addthis Email Gmail Flipboard Reddit Tumblr WhatsApp StumbleUpon Yammer Evernote Delicious


This is a quick post, covering something I overheard while at MWLUG and comes back to some application architectural principles which I have a bit of a passion for. Read on at your own peril :wink:

[Update] I added a bit from a tweet by Tony McGuckin about the XPages runtime’s components. [/Update]

Back to the Grind After MWLUG

There’s an intersting slump I experience after getting back from a conference. Not only do I get to clear out of the mountain of things that seem to crop up only while I’m out of the office, but it seems that I’m able to come away from such a gathering with other developers with lots of great ideas for both my growth as a developer but also for what I’m able to accomplish for my company and its users that it’s a nearly unbearable amount to be able to extract from my own head, but I try. For this last week though, I just worked the tasks at hand.

A Funny Thing

While at MWLUG, I overheard someone make a reference to people “not liking POST” as an HTTP request. I’m fairly certain it may have been said in jest as a blog post I wrote previously talked about “classical” AJAX-y requests containing markup (specifically analagous to an XPages partial refresh event, which fires a dojo.xhrPost that returns the HTML content of the selected refreshId and re-injects the content to the page). So here’s a reminder to all, XPages gives us:

  • an application runtime (JSF)
  • a striped database (though for performance it’s best to separate it)
  • with a greatly convenient security model (that makes it very easy to map roles and groups across applications)
  • and a bunch of OoB (out of the box) controls that aid in RAD and have some excellent hooks to automate a large number of functions (ExtLib Relational controls, for instance)

[Update] As Tony McGuckin pointed out on Twitter, there’s more to the XPages runtime than just the JSF runtime components. Since it’s a larger list than my couple of bullet points, I’ll let the tweet and screen shot from the liked XPages Masterclass video do the talking.

The Tweet
The Screen Shot


My Beef With Transporting Markup

My list above of what XPages provides us lists the controls that we most often associate as being “XPages” (specifically the design elements of XPages and Custom Controls, along with the xp and xe controls) at the end. My approach is opinionated in the absolute segregation of front-end and back-end, but it uses the application runtime provided by XPages (and its JSF implementation) to provide a great experience with excellent results. The OoB elements give us one way of doing things, so since it bugs me, I’m going a different way, without issue.

Transporting markup in our post-page load XHRs is inefficient; regardless of whether we call them AJAX calls, partial refreshes, or whatever. That’s my bottom line. I don’t think POST as an HTTP method is inferior (they’re just HTTP methods), but to add to a request’s body content, just so we can get a small data update in the screen, when we could otherwise have our data providing the same response just in how we build our URI from a simple GET, the logic seems clear to me.

What to Do About It

As my demo application has been showing, I’ve been going the direction of a front-end heavy app (AngularJS app in the UI) with HTTP servlet RESTful API driven data access. This doesn’t necesssarily need an XPages design element (root XPage and Custom Control) since it can/is served from the WebContent directory. For any still wondering, yes I do continue development on and maintain applications that aren’t entirely “my way” when it comes to what are already in use. I’ve refactored core code when able (I’ve seen some scary SSJS libraries and vanquished as many beasts as I’ve been able to) because I firmly believe in keeping core business logic separate from UI logic.

That being said, my advice to any in a “normal” XPages context is embrace the JSON-RPC control and Java beans (managed or POJO). If your business logic is driven inside a controller class, it can just as easily be invoked from a bean or from a servlet (or from SSJS inside a JSON-RPC’s method script). If Java isn’t your thing (if you’re still learning, and you should embrace your JEE stack), the JSON-RPC control lets you accomplish most of the same task of exposing server-side operations and logic, with minimal overhead, to the client-side (browser) for CSJS access; it’s a win-win either way.

In Case You Missed It…

My last post, recapping my session at MWLUG, managed to get missed in my first tweet of the link. I updated the previous post (announcing my session at MWLUG) with a link at the top, but some may have missed it. Please check it out, there’s a link to my slide deck, GitHub repository with my configs, screen shots of my configs in use, and (you guessed it) my slide deck in PDF and PPTX formats.

Aug 31, 2015
2 hits

Recent Blog Posts
Composing With Docker
Thu, Nov 2nd 2017 2:00p   Eric McCormick
Background About a year ago, I blogged on automating server upgrades with Docker and a BASH script. This met the needs I had at the time, and worked itself out to be pretty stable. But, since I think about such things and always question my preconceptions, I went down a path of creating a Docker compose config file, something I wouldn’t have had to create from scratch by waiting a little while as one appeared as an example from GitLab. As it turns it, it was a great learning experience regardl
Hacktoberfest and More
Tue, Oct 24th 2017 2:00p   Eric McCormick
Hacktoberfest 2017 October brings many good things with it. It’s the beginning of autumnal colors here, along with some yard raking in my case. It also brings with it not just Oktoberfest, but Hacktoberfest! Hacktoberfest 2017 Hacktoberfest is a month long open source support initiative, sponsored by Digital Ocean, partnering with GitHub. It’s meant to promote open source involvement and contribution. As added incentive, if you meet the criteria, you can get a free t-shirt (and stickers).
Go Evergreen
Tue, Oct 17th 2017 4:00p   Eric McCormick
Happy 🎂 Day IE 11! On the 17th of October in 2013, Internet Explorer 11 was released from Microsoft. That means that as of today, this popular* browser is now four years old and, with all respect to it, it really ought to go. Good day sir. I said good day! Evergreen Browsers What makes a browser, or any software for that matter, evergreen? Well, the basic requirements for a browser, or any piece of software for that matter, are specifically the support of automatic updates, that bring in:
Change is in the Air
Fri, Sep 1st 2017 1:00p   Eric McCormick
I’m Back What Can I Say? In Case You Missed It If you find yourself asking “where was Eric?”, this should summarize it all: Instead of trying to do everything all summer, I tend to take a break from blogging and a lot of open source endeavors over the summer. It means I can focus on family time along with yard and house projects. Ah... Summer That’s all paid off and, with fall fast approaching, I’ve found myself wanting to start those things back up; ramping up into winter when
Open Source Contribution
Fri, Jun 16th 2017 5:00p   Eric McCormick
Intro It’s time to clear some of the backlog. I started this post a few months back and it should probably be sent on its way to clear the pile of drafts I haven’t finished yet… 🤔 I have a bit of a passion for open source software. My preferred distribution of Linux has been Ubuntu since 4.10, the Warty Warthog (I was even a minor contributor on a short lived, wildly popular project that aimed at improving the Ubuntu experience early on), I’ve enjoyed most open source projects I’ve
Docker Quick Tips
Fri, Apr 28th 2017 3:00p   Eric McCormick
Docker If you have been living under a rock, Docker is pretty much amazing. If you haven’t been living under a rock, you may be getting used to the idea of Docker, but still have the occasional question. I’ve found myself using Docker in increasing amounts and complexity over the last year or so. I’ve recently decided to start recording some of the tasks I’ve found useful, some of which may be less familiar to a beginner. If you’re so inclined, check out the playlist, embedded here.
Notes in 9: Dev Tools Grab Bg
Tue, Apr 4th 2017 1:00p   Eric McCormick
Intro I’m on Notes in 9 again, with a “grab bag” of a couple of tools I’ve put together recently that may be of a varying degree of useful for other Domino + XPages developers. You don’t need these to do development, but for the right person, they may help with their development workflow. Also of note, with the upgrade to Swiper with the FP8 release of Notes + Domino Designer, the limitations previously mentioned are no longer there! This means that my second tool I talked about, node-
Custom JSON Serialization With GSON
Mon, Jan 23rd 2017 2:00p   Eric McCormick
Intro Here’s a curious one, in which I found myself with a limitation of not being able to output JSON with scientific notation values. wait, what? If you’re wondering why that is, since both JSON and JavaScript allow scientific notation of number values, you are absolutely correct and that’s a great question. The strange thing was that I found myself outputting perfectly valid JSON to be consumed by something specific which didn’t allow scientific notation. I’m not entirely sure wh
Recapping 2016
Mon, Jan 16th 2017 3:00p   Eric McCormick
Intro Per usual, I’ve had a little break between things and decided to catch up with a bit of a summary of some recent things that each didn’t necessitate their own post. 2017 IBM Champion For starters, I’m honored to be named an IBM Champion in Collaboration Solutions (/ Social Business) for the third time. This would be a hat trick in (ice) hockey 🏒. I’m happy to be recognized with a group of people, developers and more, who are passionate about both their work and the plat
Rebirth: An App of Ice and Fire
Wed, Dec 14th 2016 4:00p   Eric McCormick
Intro If you read my blog for any of the Saga of Servlets series, then I hope that you’re excited I’m returning to the application I put together for it. This time, it’s as a conversation piece in regards to some of the build process modernization I engaged in recently, in order to unify the code base in its git repository. In any case, it’s helping pave the way forward before I update some of the back-end elements, when it will again be a talking point for some additional rework and

Created and Maintained by Yancy Lent - About - Planet Lotus Blog - Advertising - Mobile Edition