Monday, December 22, 2014

What Does it Mean to me to be an IBM Champion

For the first time ever I was selected as an IBM Champion for 2015.  I honored to be selected.  I would like to thank everyone who nominated me and selected me.  I have been given this honor but it is the ICS community that should accept the honor.  Without our wonderful ICS community events like MWLUG can not happen.  When Gregg Eldred and I started the MWLUG conferences, neither of us thought  it would last this long.  But it has been the wonderful community that includes not only IBM Business Partners like myself, but IBM Customers, and IBMers that make everything possible. It is this community that motivates me to spend a significant amount time to help organize this event.  I have been involved with many different communities, but nothing compares with what I have experienced in the ICS community.  The passion and the willingness to help each other is unprecedented compare to any other technology community.

As members of the ICS community, we are passionate about the products, whether is it Domino, Connections, Sametime or any other products in the ICS community. I have seen countless products come and go some super cool, but there is no other products out there in the world like Domino.  When Ray Ozzie created Lotus Notes, I can't imagine he thought this product would still be here 25 years later.

With the recent security breaches and all sorts of security issues, it really shows how advance Lotus Notes was when it came out. Surprisingly is still head of the curve and state of the art compared to all the new stuff, but that will be another future discussion.  There is no other product that is 25 years old and still on the cutting edge. Yes we have our complains and I have many, yes it is the not the fastest nor the coolest, but each time you think that Notes/Domino has been knocked out, it comes back and this is thanks to us the ICS community and our innovations.  I will be at IBM ConnectED 2015 this year for the first time in awhile.  So come and introduce yourself to everyone in our great community.  Everyone, thank you again and I look forward to another year being part of this great community.

Friday, October 3, 2014

More Fun Creating Dojo widgets and MVC

Here is another article in my "Fun with Dojo" series.

Dojo traditionally has been considered slow.  One reason is that Dojo loads alot of modules before it instantiates the page.  Dojo with AMD helps reduce the number of modules when it first loads but not the number of modules.  This is great.  However, one thing that I really dislike are Dojo Dijit widgets.  They are heavy, slow, and require a lot of modules to be loaded.

We like the Bootstrap widgets because they are lightweight. So instead of using Dijits that are built into XPages we created our own lightweight Dojo Bootstrap widgets that utilized the most minimal amount of required Dijit modules and dependencies.

One of the things that we had to figured out was what bare bone modules that we needed beside dijit._Widget in order to create our own widgets and include them in the loading process.  When we were using Dojo 1.53, we created a custom loader with all the required modules contained in a single file.  Rather than including _TemplateMixin and _WidgetsInTemplateMixIn and other mixin modules, we did everything using our own code within the buildRendering lifecycle.  This help reduce the additional modules that was required.
<div id="happy" class="user">
 <button class="icon"><i class="fa fa-user fa-lg"></i></button>

However, this approach eliminated a very power module.  In the example above, you can get a handle to the button node of the widget by using:

var btnNode=dojo.query('button',this.domNode)[0];


var btnNode=dojo.query('.icon',this.domNode)[0];

For users not familar with Dojo "this.domNode" is a handle to the widget, "this" being the widget itself.  Please note that "this.domNode" does not exist until it goes through the buildRendering lifecycle.

This is how we were getting a handle since we did not need all the stuff that was in the module dijit/_TemplatedMixin since we were calling buildRendering directly.  This worked fine but this approach added more code then we wanted for the widget.

So we took another look at how we could utilize what was included with Dojo, but at the same time not load stuff that we did not need. Within _TemplatedMixin, there is a call to another core module, dijit/_AttachMixin.  This module creates attach points and events to get a handle to different parts of the widget DOM and events. So in our previous example, rather than using dojo.query all you have to do is add the attribute "data-dojo-attach-point" to the DOM fragment and run
this._attachTemplateNodes(this.domNode) during the buildRendering lifecycle.

<div id="happy" class="user">
 <button class="icon" data-dojo-attach-point="btnNode">
  <i class="fa fa-user fa-lg" ></i>

So your widget code will be:
 return declare([_WidgetBase,_AttachMixin]),{

So now we have a handle to the button node using "this.btnNode". Simple and easy. A view/controller in Dojo can just be a Dojo widget with Dojo widgets inside. Therefore you can extend the same process if you are using Dojo for your MVC framework.  This will be the topic of another future blog.

"this.srcNodeRef " is the reference to the DOM fragment on your HTML page that represents the widget.

Thursday, October 2, 2014

The Good, Bad, and Ugly about AMD in Dojo

We were testing iPhora Touch 2 with the attendees of MWLUG 2014 in the MWLUG portal and as usual, the interface had issues even after having outside users provide feedback before we rolled it out.  When you are so focused on the creation process it hard to see issues until it is seen by fresh pair of eyes.  So we are working on a new faster and improved interface for iPhora Touch. This is the evolution of any product.

Since we are using a JavaScript/JSON Restful API approach most of the changes will be on the front end and only minor changes to the back end which is great.  In theory we can swap out different interfaces with little impact on the back end.  This is where the newer AMD approach for Dojo comes into play. The use of AMD in Dojo allows us to modularize the UI components even more than what we had.  Therefore, we have been upgrading all the iPhora widgets from Dojo 1.53 to Dojo 1.10.0 and at the same time upgrading from Bootstrap 2.32 to 3.2 and the latest version of Fontawesome.  The View/Controller of the MVC framework becomes no more than a Dojo widget.  This will be the subject of upcoming blogs.

The AMD approach with Dojo has many advantages, but it also has a number of things that I do not like about it.  For example below is a simple set of code for reading a cookie and adding it to a DOM node and adding a class to a div tag using Dojo.

<div class="data-display"></div>

Dojo without AMD
var c = dojo.cookie('info');
var node=dojo.query('.data-display')[0];

Dojo with AMD it becomes
 var c=cookie('info');
 var node=query('.data-display')[0];
As you notice the amount of code for Dojo with AMD can quickly add up and if you miss a module path/declaration you get an error that won't make sense.  So you need to be careful in defining the path/declaration pair.

But like all good developers, I decided to create a new feature with my development tool to use a template to create my code.   This is where my mustache function comes in handy.  Below is an example of my code template that I have created.

As a result, all I have to do is have my compiler create the Dojo/Bootstrap widgets from the declaration tags, for example <ux:ipField id="hello"/> and assign the appropriate required modules to the assigned mustache tags and do a simple LotusScript find and replace.

However, one critical advantage of AMD is that you can create your own module and include or replace an existing module relatively easily. For example, we needed to replace the Dojo MVC JsonRest module "dojo/store/JsonRest" with our own "iphora/JsonRest" since it does not meet our requirement in how we are doing REST services. We copied the JsonRest.js code modified it and then placed into our iphora directory and now it is loading our module.

 var c=cookie.get('info');
 var node=query('.data-display')[0];

 var c=cookie.get('info');
 var node=query('.data-display')[0];

So we just point the path to our module.  No other changes in the code are required. 

Another disadvantage with the AMD module approach is that you need to be extremely careful if you are trying to create a compressed build of your own modules to reduce the number of http request during the loading process.

With Dojo without AMD, you can easily just concatenate all the modules into one single script file and load that script as part of the page instantiation process. However, Dojo with AMD requires you to create a build using an elaborate process that utilizes a package.json.  This is similar to how npm in nodejs does their builds.  More information can be found in this article.

Dojo with AMD is more powerful then ever but it just takes a little more work and can be fun!

Wednesday, October 1, 2014

Why an Ideal MVC Framework Fails

One of the "Next Big Things" these days is the use an MVC framework for developing Web applications. There are a number of MVC frameworks out there including Backbone, Ember, and the rapidly growing Angular. 

Ideally these MVC frameworks are great, hook things together and any changes to the model (data) and all the views are updated based on the controller code. If there is changes to the model, the data is automatically updated on the server. This is the ideal case.

However, it assumes one critical thing, you have the access rights to CRUD data on the server. This is an extremely dangerous assumption.

In our iPhora security model, we assume the opposite and you do not have access rights to any data on the server. We do not trust anything and any request. We assume that you are trying to hack and inject. Your authorization is checked during each request. We looked at using Angular since it is the hot stuff of the MVC world and everyone seems to be using it. We also looked briefly at Backbone. However, these required us to hack and patch the code to do what we wanted it do. As a result, it would be hard to maintain in the future when new versions of Angular or Backbone comes out.

Since we have been using Dojo for awhile, we looked at a couple of Dojo-based MVC frameworks including Dojorama and the Dojox/MVC. These two also assumes an ideal MVC approach which is not what we wanted. Also Dojox/MVC is heavy.

Most of the MVC frameworks works well for simple applications and even more complexity applications. But for our iPhora applications like iPhora Touch, within one session, the user access rights and roles will vary constantly depending of the state and application the user is accessing. 

One thing that all these MVC frameworks lack is good documentation not on how to use it but documentation regarding the core architecture and functionality. You have to go through all the code and test and sometimes it is trial and error and assumptions. What a pain.

So we decided to create our own MVC framework using Dojo. The newer AMD approach for Dojo lends itself to the MVC approach.  Dojo already has core methods to handle MVC including, dojo.stateful,, and Also, don't forget the powerful dojo.subscribe and dojo.publish. We used the Dojorama project as a guideline and starting point. This MVC project is a good demonstration of the power of Dojo.

So where are we? Our initial MVC architecture is completed and we have modified our development tools to handle the new MVC approach. But, we expect more changes to come as we test.  The base core code is almost complete and will be ready for a test during the next couple of days. Our existing page-based JSON Restful services API will require some minor changes that are relatively easy to make. We are half way done in updating our existing iPhora Dojo/Bootstrap widgets to Dojo 1.10/Bootstrap 3.2 with MVC-based hooks. So stay tune for more updates.

Tuesday, September 30, 2014

Don't What it, Hitch It

Async callbacks and closures is an incredible thing about JavaScript.   This is what makes environments like nodejs possible, a topic of many blogs to come.  Many of the JavaScript frameworks like my favorite framework Dojo have the ability to deal with closures and callbacks.  One of the issues that one needs to deal with is getting a handle to the current scope within a closure.

We discussed this and how to deal with it in Dojo in a previous blog.

The nice thing about Dojo is how extensive the library is.  This is also a negative thing since there is so many features that you might not beware of. As I am converting our iPhora library from Dojo 1.53 to Dojo 1.10.0, I realized there is also another method that you can use to get a handle to the current scope within a closure and that is dojo.hitch which has been around for a long time. 

In our previous example, we had a simple widget.

<div class="widget" id="happy">
<li id="1">
  <a href="#" tabindex="-1"><i class="icon-tools"></i>Hello</a>
<li id="2">
  <a href="#" tabindex="-1"><i class="icon-tools"></i>Hello</a>
<li id="3">
  <a href="#" tabindex="-1"><i class="icon-tools"></i>Hello</a>
<li id="4">
  <a href="#" tabindex="-1"><i class="icon-tools"></i>Hello</a>
<li id="5">
  <a href="#" tabindex="-1"><i class="icon-tools"></i>Hello</a>

To get handle to this within the closure, you can use this method
dojo.query('ul > li',this.domNode).connect('onclick',this,function(e){

or define "what" equal to "this" to get a handle
var what=this;
dojo.query('ul > li',this.domNode).connect('onclick',function(e){

With Dojo, you can also provide the current scope "this" by using dojo.hitch
    query('ul > li',this.domNode).on('click',lang.hitch(this,function(e){

Though you can use dojo.hitch in this way to replace the previous methods, one of the best ways to use dojo.hitch is with async xhr callbacks.  dojo.hitch provides an elegant approach when you need to do a callback during an async request.  I use this all the time for populating widgets or in the case of the MVC terminology, controllers.

If you try this.
require(["dojo/_base/xhr"], function(xhr){
  var args = {
    url: "hostnameurl",
    load: this.callback

you will get an error because "this" is not defined within the closure of the xhr request. You could define var what=this provide a handle as we did before. However, dojo.hitch is a better solution.

require(["dojo/_base/xhr","dojo/_base/lang], function(xhr,lang){
  var args = {
    url: "hostnameurl",
    load: lang.hitch(this,callback)

Now, you can get a handle to your current scope "this" and your callback will not bomb.

Monday, September 29, 2014

Installing Nginx Reverse Proxy on CentOS for Domino Our Experience

Over the past few weeks there has been a significant number of discussions about Domino and the lack of SHA-2 support.  Jesse Gallagher had an entire MWLUG 2014 session on this very topic.  When I ask Jesse to present on this topic, unbeknownst to me what a hot topic this would become and so timely.  First, IBM should have fixed these problems years ago.  For us this is a critical issue that if not addressed will kill the market for Domino.

Thanks to Jess efforts and contributions, there is a workaround that he presented and published recently in a series of blog articles on this very topic.  His solution is to configure nginx as a reverse proxy for Domino so that SHA-2 certificates can be used with Domino. nginx is not just a Linux solution but can also be a Windows solution since it is available for the Windows platform.

Jesse's article focused on setting up nginx reverse proxy on a Ubuntu server.  My comments here are about the differences between what Jesse explained for the Ubuntu server and what you will encounter in configuring nginx on CentOS in particular CentOS 6.5.

A great resource to guide you through the process of installing Nginx on CentOS can be found here:

By default the installation will not create site-available and site-enabled directories as it would in Ubuntu.  And they are not needed. A series of default SSL configure files will be created in the /etc/nginx/config.d directory including a ssl.conf template file and default.conf.   Make a copy of the ssl.conf file with the suggested renaming convention that Jesse explained and edit it in accordance to Jesse's instructions.  One thing to remember is that you need to rename the default.conf file in order for your new conf file to work.  If not, the default.conf file will override your new conf file settings.

After installing nginx you will need to create a request key for the SSL certficates

1. Create a directory for the SSL certificates, # sudo mkdir /etc/nginx/ssl

2. Switch to this directory # cd /etc/nginx/ssl

3. Create the request

# sudo openssl req -new -days 365 -sha256 -nodes -keyout -out -newkey rsa:2048 

leave out -sha256 for a SHA-1 request.
the -keyout parameter is the filename is the name of the key file that will be created
the -out parameter is the name of the request that will be sent to the certificate authority
in response to this command, you will asked to provide the organizational information and address, etc.
if the certificate expiration is to be different than one year, change -days 365 to the desired number of days

4. Limit access to the key , # sudo chmod 400

5. Send the .csr file to the certificate provider for signing. They will send back a crt file.

6. Limit access to the signed certificate, # sudo chmod 400

7. The certificate authority may send back multiple files. If so, then concatenate them:

# sudo cat  root1.crt >

The CRT file with your hostname.crt should be first. If there is more than one root or intermediate certificates, not sure of the order of those (try it and see).

After concatenating the keys to create the combined file, make sure you have a carriage return between the beginning and ending of each certificate. If you do not do this you will get an ERROR.

# sudo vi 

The process is relatively easy even for a Linux newbie like myself.  We are planning to add nginx as our reverse proxy for all our installations of Domino.  One advantage of having nginx as reverse proxy is that by having Domino connect using http instead of https for the reverse proxy, there is less loading on the Domino server and the system as a whole can handle more https connections.
The installation process of the SSL certificate follows the standard convention used by most solutions rather than the specific approach required by Domino.  Therefore, there is much more documentation available.

Additional articles I suggest one read is:

Please note, that if you have Network Solutions, they still do not have SHA-2 certificates available yet.  Can't believe that.

To learn more on how to install CentOS and Domino, Devin Olson has a series of great videos and pdfs on Youtube.

If you want to chat with the ICS Linux, sign up for the ICS Linux Chat on Skype that was started by our friend Bill Malchisky. 

Thursday, September 25, 2014

Gotcha, Creating Dynamic Script Blocks Using SSJS

For our iPhora applications we only use one XPage and dynamically create the content that appears.  We do this by storing the dynamic content in Notes Rich Text fields and using SSJS to read and generate the HTML/JavaScript during runtime. 

Since we are moving to an single page MVC model, we were adding a few addition xp:scriptBlock to generate the initial loader and pulling the information from a NotesRichText field.  We were using doc.getFirstValueString('richtextfield') to pull and create the script. No problem until, we had a JavaScript object declaration that was longer than 72 odd characters.

Unfortunately, there is an issue with Notes Rich Text fields that we encountered in the past using LotusScript that I forgot all about.  When you read a Notes Rich Text field it will automatically add a carriage return after 72 characters and this can drive you crazy. If the carriage return occurs between a JavaScript object declaration then you will get an JavaScript error.

To resolve this you need to switch to doc.getFirstItem("richtextfield").getUnformattedText() to read it.  The automatic carriage return that Domino/Notes pulls in is filtered out, but the carriage returns that you put in remains.

Tuesday, August 26, 2014

MWLUG 2014 Article in Grand Rapids Business Journal

Great Article about MWLUG 2014 in the Grand Rapids Business Journal.  Special thanks to Louise Burton for helping place the article.

Monday, August 25, 2014

MWLUG Is Heading South

With MWLUG 2014 just about to start in a couple of days, we will be announcing the host city for MWLUG 2015 on Friday at the closing session. So we have decided to head south for 2015.  And yes it is a bit of a stretch in calling some of these towns being in the Midwest.  Here are the potential host cities for MWLUG 2015.  We would like to hear your input so fill out the survey.
  • Atlanta, GA
  • Cincinnati, OH
  • Columbus, OH
  • Dayton, OH
  • Louisville, KY

Thursday, August 21, 2014

IBM has Renovations Inc and MWLUG has Midwest Bicycle Incorporated

As many of us who have attended Lotusphere/IBMConnect/Connected know that IBM references a fictitious company for their demonstrations called Renovations Inc.

We have a number of XPages with Java sessions and we wanted to apply the demos and designs to a company and cohesively tie the different sessions into how one company that was using XPages throughout their business. So we came up with Midwest Bicycle Incorporated. So as you attend these sessions you will learn how the Midwest Bicycle Incorporated uses XPages throughout their operation.

Announcing the MWLUG Outreach Program Recipient for 2014 - Kid's Food Basket

As many of you know MWLUG is not just about building knowledge of IBM solutions and networking with our fellow ICS community members, it is about being part of the community.  This is one of the reason we move MWLUG from city to city.  It is about getting to know your local community whether it is in your town or a different town.

Each year we have a fundraising drive for a local community organization in particular a local food bank.  This year with the help of Devin Olson our boots on the ground, we have selected Kid's Food Basket as our MWLUG 2014 Community Outreach Program Recipient.  We will be raffling off a weekend stay at the Amway Grand Plaza Hotel as the grand prize along with signed copies of Virgil Westdale's book.

Please take the opportunity to help feed the needy kids in Western Michigan.  Each raffle ticket is $10 and you can buy them at the registration desk starting Thursday morning.  We will announce the winners on just after the Speed Sponsoring on Thursday afternoon.  We can no longer use Eventbrite for the raffle so please bring exact change.  For ever $1 we raise we will provide 5 meals to kids.

Kid's Food Basket
"One in four children experience hunger in West Michigan.  Kids' Food Basket is a force for attacking childhood hunger, ensuring that lunch is not the last meal of the day for over 6,000 kids at 32 schools in Grand Rapids and Muskegon.  Sack Suppers are well-rounded evening meals that provide nutrition critical to the development of the brain and body."

To learn more go to:

Tuesday, August 19, 2014

Ask IBM Session at MWLUG 2014

In light of the recent conversations regarding SSL and SHA-2 support for Domino within the ICS community, the "Ask IBM" session will be a great session for IBM customers and partners to ask this and other critical questions to our IBM panel at MWLUG 2014.  Below is the official description of the session.  The session will be on Wednesday at 6:00 PM in the Imperial Room.

Ask IBM - IGS101
Here is a session you want to attend!! This will be like attending GURUpalooza, Ask the Developers and Ask the Product Managers but all at once. All (or most) IBMers attending MWLUG 2014 will join efforts and will answer all your questions related to Best Practices, Licensing, Roadmap, Offerings, Vision, etc. This will be a very informal roundtable/panel style session and will be lot of fun. Please come prepared with all those questions you always wanted to Ask IBM.

One Week Until MWLUG 2014 so Get Registered

We are one week away from the start of MWLUG 2014.  There is still time to register for this one and only ICS user group conference in North America this year.  This year we have 3 days of events and sessions. Take this opportunity to learn and network with all you ICS community members in person and be true to our MWLUG 2014 theme "Connecting the Human Community."

Here are the highlights for this years conference.

  • 44 sessions and workshops in 5 topics areas:
    • Application Development
    • Best Practices and Customer Business Cases
    • Mobility and Web Security
    • Open Source with ICS
    • System Administration
  • 3 BOF user group sessions
  • Wednesday visit to the Gerald Ford Library and Museum
  • Thursday Evening Social Event at Founders Brewing Co
  • Wednesday Evening Exhibitor Showcase Reception
  • OGS Guest Speaker, Virgil Westdale
  • OGS IBM Speaker, Kramer Reeves
  • Book Signing withVirgil Westdale
  • For Cyclist, Saturday MWLUG 2014 Bike Ride
  • Breakfast and Lunch for two days

So if you have not register for MWLUG 2014, time is getting close.  We still have room and the Amway Grand Plaza Hotel still have rooms available at the discount rate.

To register for MWLUG 2014 go to:

To register for the Amway Grand Plaza Hotel go to:

Friday, August 15, 2014

New Session at MWLUG 2014: Ask IBM

A new session has been added to an already packed MWLUG 2014.  The new session is entitled "Ask IBM".  If you are familiar with the "Ask a Product Manager" session at IBMConnect, you will know what this session is all about.  The difference is that you are up and front of the IBM panel almost in a one to one conversation.  This session is scheduled to be in the Imperial Room at 6:00 PM before the Exhibitor Showcase Reception that will be held in the Vandenberg Rooms.  So coming and join us and ask away.  Then continue your conversation with beer, wine, or soda and hors d'oeuvre and learn about all the great sponsors that we have at MWLUG 2014.

Don't forget to register and the hotel still has rooms.

Thursday, August 14, 2014

What is Next in IBM Mail Next?

Scott Souder from IBM is coming again to MWLUG 2014 and will be following up on his last year's OGS keynote and presenting the latest news about IBM Mail Next.

His presentation is:

IBM Mail Next: Focus on Your Work, Not Your Inbox!

Unlike many other trends, email is not going away. You know it, and IBM knows it, which is why IBM is revolutionizing the corporate inbox from the ground up for today's social and mobile workplace. Check out this session if you want to hear the details and see the latest update for Mail Next -- still under development -- and how your organization can position itself for driving massive improvements in end-user satisfaction, productivity and engagement with IBM's new cloud-based, easy-to-use inbox

Wednesday, August 13, 2014

MWLUG 2014 Keynote: IBM Collaboration Solutions - Vision and Strategy for Today and the Future

MWLUG 2014 is coming up in two weeks.  Our IBM OGS Speaker is Kramer Reeves.  He will be presenting IBM's current and future vision of IBM Collaboration Solutions including my favorite platform, Domino.  His presentation is entitled, "IBM Collaboration Solutions - Vision and Strategy for Today and the Future." So, if you want to know the future direction of IBM Collaboration and how it will impact your organization, it is important that you come to this session, OGS101.

The Amway Grand Plaza Hotel has been gracious enough to extend the MWLUG 2014 hotel discount of $129.00 as long as there are rooms available.  So get registered and come to the best ICS user group conference this year in North America and beer is included.

To register go to:

Monday, August 11, 2014

Guaranteed MWLUG 2014 Hotel Discount Expires Today August 11, 2014

The guaranteed MWLUG 2014 hotel discount rate of $129.00 for MWLUG 2014 attendees expires today, August 11, 2014.  The hotel is normally over $200 per night.  After today, if there are available rooms, the hotel may honor the rate but it is not guaranteed.  If you are coming to MWLUG 2014 and register for the hotel after today and there are no more rooms at the discount rate, please contact me and I will see what I can do.

But I prefer you register NOW!.

Thursday, August 7, 2014

Virgil Westdale Book Signing at MWLUG 2014

The MWLUG 2014 OGS Guess Speaker will be autographing copies of his books "Blue Skies and Thunder" after the OGS.  He and his co-author, Stephanie A Gerdes will be on handle to sign their book.  The cost of hardcover copies is $30 and for the paperback copy, $ 20.  We ask if you would like them to autograph a copy that you donate $10 to our  MWLUG 2014 Outreach Program designated Grand Rapids food bank.  We will also be raffling off a few signed copies.  The raffle donation will also be $10. All the proceeds with benefit a Grand Rapids food bank. Please bring exact change.  The OGS is a bit shorted this year in order to give everyone an opportunity to get a signed copy of the book. 

Wednesday, August 6, 2014

Three Weeks to MWLUG 2014, So Get Registered, Hotel Discount Expiring

We are three weeks away from MWLUG 2014 at the Amway Grand Plaza Hotel from August 27-29, 2014.  The special hotel discount is expiring on August 11, 2014.  I will attempt to extend that, but no guarantees.  This is going to be the best MWLUG conference we have ever had.  Here are some of the highlights for this year.


  • Kramer Reeves OGS presentation
  • Guest Speaker, World War II veteran, author, and inventor, Virgil Westdale
  • Wednesday Gerald Ford Library and Museum Tour
  • Thursday Social Event at Founders Brewing Company
  • 43 sessions and workshops plus three BOF user group meetings in five topics area:
    • Application Development
    • Best Practices and Customer Business Cases
    • Mobility and Web Security
    • Open Source with ICS
    • System Administration

So get registered and see you in Grand Rapids in three weeks.

Hotel Registration:

Thursday, July 31, 2014

Open Source Impact on the ICS Community

I am a big user of open source technologies including, Linux, Twitter Bootstrap, Dojo, and many other open source tools.  Open source technology has had a huge impact on the ICS Community in general.  We are fortunate enough to have a number of sessions this year at MWLUG 2014 that includes open source technology as part of their presentation. So come join us in these sessions.
Open Source Technologies: Nginx, OpenSSL, Apache HTTP Server
Load Balancing, Failover, and More With Nginx, Jesse Gallagher, CTO, I Know Some Guys, LLC
Putting an alternative web server in front of your Domino installation gives you a tremendous amount of flexibility and new abilities. This session will discuss using nginx on Ubuntu server to sit in front of several Domino servers and provide load balancing, automatic failover, multiple SSL certificates, and other tricks. The same concepts will apply to Apache and IBM HTTP Server.
Open Source Technologies: AngularJS
Write once, run anywhere - Angular.js in XPages, Mark Roden, Senior Consultant, PSC Group LLC
The business requirement to surface functionality from one application inside of another has long existed and is often difficult to implement. There has always been a gulf between displaying data and creating a functional application. Mark will demonstrate how the power of building a solution based on Angular.js allows an application to be "moved" from Domino to another platform easily and with the bare minimum of code re-write. Taking "Write once, use anywhere" in the literal sense, you will see how to make Domino applications running natively inside of other platforms. Client side frameworks such as Angular.js are the future of web development - come and see it in action.
Open Source Technologies: NodeJS
Achieving Developer Nirvana With Codename BlueMix, Ryan Baxter, IBM Corporation
BlueMix is a platform for composing and running virtually any application in the cloud without having to worry about the hardware, software, and networking needed to do so. This means that developers can be left to do what they do best….CODE! By eliminating the need to deal with the infrastructure typically required to deploy an app to the cloud, and providing a catalog packed with services from IBM and its partners, BlueMix allows developers to get their apps in the hands of their users with the lightening speed, quality and innovation their users demand. It doesn’t matter if your next app is targeting web, mobile, or the internet of things, you too can achieve developer nirvana with BlueMix, and it all starts by attending this session!
Open Source Technologies: Linux
The Headless Collaborator: Sametime 9 Command Line Installation, William Malchisky, President, Effective Software Solutions, LLC
IBM Sametime 9 is a great product, but with a complex installation procedure. Are you tired of being forced to load a Linux desktop environment just to get ST 9 going, then never use it again? Would you like to be able to simplify your Intel server installations considerably? How about speeding up the OS installation? If you answered, "Yes," at least once, mark your calendar and attend this brand new session debuting at MWLUG. You will see real-world techniques utilizing a Linux terminal window to get your ST 9 install done fast and with minimal hassle!
Open Source Technologies: Twitter Bootstrap
Modern Domino (Workshop), Nathan Freeman, Chief Software Architect, Red Pill Development and Peter Presnell, CEO, Red Pill Development
It is not uncommon for Notes client developers to feel intimidated by the wide range of technologies available when modernizing an existing portfolio of applications with XPages. In this s2-hour workshop we will provide a series of 20-minute introductions to many of these new and emerging technologies. Learn about Java, Beans, REST Services, Bootstrap, Mobile Controls, data visualization and a whole lot more.
Open Source Technologies: XPages Scaffolding
Building a Structured App With XPages Scaffolding, Jesse Gallagher, CTO, I Know Some Guys, LLC
Jesse will demonstrate building an example app using his XPages Scaffolding open-source project. Though Scaffolding will be the medium, the concepts will apply without it: building clean, modern Domino apps using Java in a way that fits with the framework and is not cumbersome. The goal is to break the conceptual separation between Java and the rest of XPages development and show how to use the best aspects of all available tools.
Open Source Technologies: Nginx, VirtualBox
From Many, One: Scaling applications with myriad servers, Doug Robinson, Prominic.NET
Many SMB software service companies have built a multi-tenant environment based on providing maximum service from a single server. However, as customer count increases, as clients grow in size, or as businesses look to migrate to the cloud, additional options are available. Adding virtualization and open source proxy technology, it becomes possible to give each client their own server that can be separately monitored for RAM, CPU, and disk usage. In this session we will walk through such a configuration from start-to-finish, discussing how to configure such an environment and ensure it has the performance and reliability to provide the best experience for users.

Tuesday, July 29, 2014

When The Human Community Saved the World - MWLUG 2014 - Part II - Announcing the MWLUG 2014 OGS Guest Speaker

When The Human Community Saved the World - MWLUG 2014 - Part I

Last year at MWLUG 2013 through the great efforts of Sam Bridegroom from Bridegroom Technologies, we able to have Iraq veteran and community spokesman Josh Bleill from the Indianapolis Colts to be our Opening General Session Guest Speaker.

This year was a challenge.  How can we duplicate the incredible presentation that Josh did in MWLUG 2013 and deliver to our ICS community similar expectations.  We wanted to really capture the essence of the MWLUG 2014 theme, "Connecting the Human Community" and what a community, a collection of us can do together and for each other.

We all go through hard times and challenges in our lives.  And our ICS community members are going through these challenges professionally and sometimes personally.  It is our community of colleagues and friends that helps us through these challenges.

Our Greatest Generation endured the hardship of the Great Depression, the Dust Bowl, diseases, and World War II.  They came out of it all stronger and more resilient.  So the challenge was on in finding a speaker who could best represent our theme.  Through the hard work of Devin Olson our MWLUG 2014 boots on the ground, I am truly honored to announce that the MWLUG 2014 Opening General Session Guest Speaker will be World War II veteran, author, inventor, pilot, member of the Nisei 442nd Combat Regiment, and former TSA officer Virgil Westdale.

About Virgil Westdale
Virgil Westdale was born on a farm in Indiana in 1918. The fourth of five children of a Japanese immigrant father and a Caucasian American mother, Virgil learned to be independent at a young age. The intervening years were filled with experiences that sometimes tested his spirit and endurance but never defeated him. Virgil is a veteran of the 442nd Combat Infantry Regiment that rescued the "Lost Battalion" and help free the Jewish prisoners from the Dachau Concentration camp. Ninety-one years later he retired from his job as the oldest airport security officer working for the Transportation Security Administration.
  • Author of "Blue Skies and Thunder"
  • World War II Observation Plane Pilot
  • Recipient of the Congressional Gold Medal
  • Recipient of the French Legion of Honor Medal
  • Holder of 25 patents
  • 14 years as a TSA Officer for Homeland Security
  • Combat Veteran of the 442nd Combat Infantry Regiment
So come to MWLUG 2014 for this unique opportunity to listen and learn from our "Greatest Generation"

To learn more about Virgil Westdale and the 442nd Combat Regiment go to:

There is still time to register for MWLUG 2014.  Go to:

Monday, July 28, 2014

When The Human Community Saved the World - MWLUG 2014 - Part I

Too often in our technology focused world we become no more than bits of data.  We become less and less social and feel lost within our technology. Communities for Generation X, Y is all about Facebook, Twitter, LinkedIn and other social media.  However, a community in the past was all about people and individuals.  Technology is just a vehicle to connect individuals, no different than hundreds if not thousands of year ago when stories and our history was told by the bonfire.  Our goal each year at MWLUG is to bring everyone together in person to share our knowledge and experience so that we can grow our community as people have done in the past.

Only through the test of time, will we know the impact of our ICS community in the fabric of technology.  However, there was one amazing community of men and women despite all odds save our world as we know it.

Over 70 years ago, the human race was tested to its greatest extend and our freedom, our democracy that we as Americans fought so hard to achieve was endangered of being lost.  

Abraham Lincoln stated in his Gettysburg Address over 150 years ago,

"—that this nation, under God, shall have a new birth of freedom—and that government of the people, by the people, for the people, shall not perish from the earth."

It was the cooperation and the sacrifice of millions and millions of Americans that allow the values of what we American hold dear to continue to exist. An entire generation of Americans met the call to action and made the ultimate sacrifice to ensure what Abraham Lincoln stated in his Gettysburg Address remained true. As with all communities they were bonded by a common cause. Everyone focused on one singular goal that made victory possible along with the will power of America and its Allies. This generation had already endured the hardship the Great Depression, the Dust Bowl, and many diseases. This generation, is "The Greatest Generation" as coined by journalist Tom Brokaw.

As The Greatest Generation fade into the sunset,  it is important that we connect to this community of veterans and learn as much as we can from their experience.  This lends directly to this year's conference theme, "Connecting the Human Community".

In the American Civil War, many of the soldiers were immigrants from countries like Ireland and Norway whom came to the United States to escape the tyranny of the European monarchs and dictators.  To them America was the one last chance for democracy and opportunity.  Despite being recent immigrants, many make the ultimate sacrifice and died for a country that they recently adopted.

During World War II, there were many ethic groups who were immigrants and American citizens whom despite the vase amount of discrimination they suffered made the ultimate sacrifice to ensure America and what it represented remain and prospered including African-Americans and Japanese Americans.  Even German-Americans and Italian-Americans suffered during the War. 

The Japanese-American population whom were extremely loyal to the United States suffered extremely and lost all their rights, possessions, and were interred in internment camps through out most of the war. This is one of the biggest injustices of our American history.  Despite all this injustices, there were many Japanese-Americans who served in the American military during the War to help save America against the Axis powers.

One American regiments known as the 442nd Combat Regiment was comprised mostly of Japanese-Americans and is the most decorated regiments in the history of the United States military. 
  • 21 Medal of Honor
  • 8 Presidential Citations
  • 52 Distinguished Service Cross
  • 1 Distinguished Service Medal
  • 560 Silver Stars
  • 22 Legion of Merit Medals
  • 15 Soldier's Medals
  • 4,000 Bronze Stars
  • 9,486 Purple Hearts
  • Congressional Gold Medal
This regiment played a critical role during the War in many locations throughout the War including rescuing the "Lost Battalion", and freeing the Jewish prisoners from the Dachau concentration camp.

As you already know this year is not only the 70 anniversary of D-Day but in October it is the 70th anniversary of the sacrifice made by the 442nd Combat Regiment is rescuing the Lost Battalion.  As part of honoring the Greatest Generation and the sacrifice that they made, MWLUG is connecting you to the Greatest Generation this year and will be announcing tomorrow our honored guest speaker, a member of this elite 442nd Combat Regiment whom like many of his community help save the world.

When The Human Community Saved the World - MWLUG 2014 - Part II - Announcing the MWLUG 2014 OGS Guest Speaker

Tuesday, July 22, 2014

MWLUG 2014 Session Schedule is Now Online

The session schedule for MWLUG 2014 is now online at the main site. I am looking forward to MWLUG 2014.  We have a lot of great and unique sessions that you will not find elsewhere in the ICS community.

So register as soon as you can, the special discount for the hotel rooms will be expiring in a couple of weeks.

Thursday, July 17, 2014

MWLUG 2014 Online Community Up and Running

The MWLUG 2014 Online Community is up and running.  If you signed up as an attendee and opt-in to be part of the online community, you should have already registered and sent log-in credentials.  We have two interesting conversations in the Attendees community that we would like you input.

- Softlayer vs AWS
- IBM Partnership with Apple

So coming and be part of these two conversations and get a chance to influence whether we should have a session covering these two topics at MWLUG 2014.

The full agenda and sessions will be coming out next week.

Monday, July 14, 2014

Announcing the Platinum Sponsor for MWLUG 2014

I am please to announce that the Platinum Sponsor for MWLUG 2014 is IBM. This is the second year that IBM is supporting MWLUG as the Platinum Sponsor.

I would like to thanks Kramer Reeves, Oliver Heinz, and Alysha LaFountain to make this possible.  Making MWLUG possible requires the effort of everyone in the ICS community including IBM Staff, IBM customers, and IBM Business Partners.

I am looking forward to MWLUG 2014 and making this the best MWLUG conference yet.  Also, I would like to thank all the other generous MWLUG sponsors for their support.

Gold Sponsors:
  • BCC
  • Panagenda
  • PSC Group
  • Riva CRM Integration
  • Sherpa Software
  • SugarCRM
  • Ytria

Silver Sponsors:
  • Crossware
  • Instant Technologies
  • Phora Group
  • Prominic.NET
  • Redpill Development
  • RPR Wyatt
  • Teamstudio
  • We4IT

Event Sponsors:
  • NotesCode
Don't forgot to register go to:

Tuesday, July 8, 2014

Announcing the MWLUG 2014 Thursday Social Event

Since Grand Rapids, Michigan is the Beer City USA, we thought it would be fitting to celebrate this at MWLUG 2014 with beer, wait we always do that.  So in great lengths, we had to decide where we would have the MWLUG 2014 Thursday Social Event. It was a very hard decision to make.

But we are please to announce that the MWLUG 2014  Thursday Social Event will be held at Founders Brewing in Grand Rapids, MI on Thursday, August 28, 2014 from 7:00 PM to 10:00 PM.

So if you are attending MWLUG 2014, come join us and sample some of the best Michigan has to offer.


For more information about the Founders Brewery go to:

Wednesday, June 25, 2014

Announcing the MWLUG 2014 Sessions and Workshops

We are please to announce the MWLUG 2014 sessions and workshops.  We have 43 sessions and workshops that will be presented starting from Wednesday, August 27, 2014 at 1:00 PM all the way to Friday 5:00 PM, August 29, 2014 with food and fun before in between and afterwards.

This year we had the largest number submissions from IBM customers.  Also, this year we had the largest number of submissions by potential speakers.

Congratulations to all the speakers that had their submissions accepted and thank you to all the speakers who submitted their abstracts.  The MWLUG 2014 speaker committee had a hard time rejecting the great abstracts that we received. Unfortunately, we only have so many slots. 

So don't miss this chance to attend MWLUG 2014 and receive 47 hours of technical and business training plus food and fun for the cost of a few Starbucks coffees.

Help connect the human community the most important community!!!

Monday, June 23, 2014

Preliminary Schedule for MWLUG 2014

Since everyone keeps asking.  Here is the preliminary schedule for MWLUG 2014.
Wednesday August 27, 2014
10:00 AM to 12:00 PM - Optional Social Event 
1:00 PM to 5:00 PM - Workshops and Sessions
7:00 PM to 9:00 PM - Exhibitor Showcase Reception

Thursday, August 28, 2014
08:00 AM to 09:00 AM - Breakfast
09:00 AM to 11:00 AM - Opening General Session
11:00 AM  to 12:00 PM - Sessions
12:00 PM to 01:00 PM - Lunch
01:00 PM to 05:00 PM - Sessions
07:00 PM to 10:00 PM - Thursday Social Event

Friday, August 29, 2014
08:00 AM to 09:00 AM - Breakfast
09:00 AM to 12:30 PM - Sessions
12:30 PM  to 01:30 PM - Lunch
01:30 PM to 04:00 PM - Sessions
04:00 PM to 05:00 PM - Closing Session