Welcome to

The Conxsys Blog

Thoughts on Conxsys, Notes/Domino, LotusScript, & Technology

Word Connectors: 1,000 Downloads Milestone

January 27th, 2014 by Corey Davis

appicon-72I am amazed to report that Word Connectors broke the 1,000 downloads milestone in less than a week! This has been a very interesting week watching the downloads and reviews come in. Thank you to all of our new customers and everyone who has downloaded, reviewed, and paid for Word Connectors.

Posted in Android, Apple, Conxsys, Games, Kindle Fire, 1,050 views, 0 Comments
Digg This Submit to del.icio.us Submit to Technorati  

Word Connectors

January 21st, 2014 by Corey Davis

appicon-72It has been a long time goal of mine to enter the gaming market. I’m thrilled to say that, after entering an agreement with game designer Ann Stone last year, today we are releasing Word Connectors and Word Connectors Free! This fun, word association game is great for both quick bursts of play or for longer marathon sessions. Word Connectors was made for people who like word games such as crossword puzzles or any of the popular tile-based word games. You start with four words. Three are connected. The goal is to figure out which word does not belong. It may sound easy, but it isn’t.

With Word Connectors you are free to play at your own pace. There are no timers, no annoying jiggling icons, and best of all you will never need to pay for hints or clues to move forward! It is a challenging game, but never frustrating.

Word Connectors is available today for iPad, iPhone, iPod Touch, Android devices and Kindle Fire. It is on sale today for the introductory price of $0.99! The sale will be in effect until February 21, 2014 after which the price will go up to $1.99. This gets you 500 challenging puzzles and no annoying ads. Not ready to buy? Word Connectors Free offers 100 puzzles free of charge. Both are available on the Apple App Store, Google Play, Amazon Appstore for Android, and the Kindle Fire. Find out more and get yours today!

Posted in Android, Apple, Games, Kindle Fire, 6,141 views, 0 Comments
Digg This Submit to del.icio.us Submit to Technorati  

New Direction

January 21st, 2014 by Corey Davis

Today something very different is coming from Conxsys. As a long time IBM Business Partner, Domino consultant, and maker of tools for Domino administrators, today starts a very new and very different chapter for this company. We are not leaving Notes and Domino behind. We are not leaving our enterprise customers behind. What we are doing is diversifying our portfolio into a broader market. We hope to bring new customers to Conxsys who have never heard of us before, and we hope that our long time Notes and Domino customers come along for the ride as well.

UPDATE: More info on the new direction has been posted.

Posted in Conxsys, 2,315 views, 1 Comment
Digg This Submit to del.icio.us Submit to Technorati  

Seeing White Square Instead of Sprite with Platino on iOS

December 28th, 2013 by Corey Davis

Recently I have been doing a lot of coding in Titanium working on mobile games for iOS and Android. I have teamed up with a woman who has been creating games for years and our first game, a simple but challenging word game, will be out in about the next month. I have been looking into creating 2D games (side-scroller games, tile-matching games, etc.) with Titanium and have recently been testing out Lanica’s Platino game engine. My first “hello world” was just some simple code to make sure I understood how to display a sprite. I instantiated the sprite like this:

var sprite = platino.createSpriteSheet({
image: '/images/SpriteSheet.xml',
selectFrame: 'TestSprite',
x: width / 2,
y: height / 2,
z: 1

All I ended up with was a white square the size of the sprite. When searching I found some other people having this problem, but none of the solutions applied. After some trial and error, I found that the problem was the way I was referencing the sprite sheet. Instead of

image: '/images/SpriteSheet.xml'

it should have been

image: 'images/SpriteSheet.xml'

Note the missing forward slash before the images directory. I began putting the forward slash when referencing any resource in Titanium when I starting working on Android apps. When developing for Android the forward slash is required otherwise your resources will not be found. For the last couple of months it has just become my practice to use the forward slash for both iOS and Android in order to promote code reusability. Apparently Platino is strict and the slash is a no-go (at least on iOS; I have not tested on Android yet).

Posted in JavaScript, Platino, Titanium, 3,970 views, 0 Comments
Digg This Submit to del.icio.us Submit to Technorati  

IBM Notes 9 Wallpaper

November 20th, 2013 by Corey Davis

With a new look and feel for the Notes 9 Social Edition client it seemed only right that it was time to update the Notes wallpaper that I created back in 2009. This time around I have included the basic desktop resolutions (both 4:3 and 16:9), iPhone (standard and Retina), iPad (standard and Retina), and several sizes for Android. If your favorite resolution is missing just let me know in the comments. You can get the wallpaper at conxsys.com/wallpaper.




Tags: , , , , , ,
Posted in Domino, 5,089 views, 2 Comments
Digg This Submit to del.icio.us Submit to Technorati  

Thanks Bruce

October 2nd, 2013 by Corey Davis

Today is Bruce Elgort’s last day as board chairman of OpenNTF, Inc. and I wanted to take a moment to thank him for all he has done for the Lotus community. For years he has been one of the best speakers at Lotusphere, his blog is always worth reading, and of course he was a co-founder of OpenNTF.org. I have never told Bruce this, but he is the reasons that I decided to become more vocal in the community. I don’t recall at which Lotusphere I met him, but he energized me to give back to a community that had selflessly given me so much. His infectious personality provoked me to step out from the shadows of community consumer and become a creator. This is why I co-authored a couple of Redbooks, why I started blogging, why I contributed code, and why I joined the steering committee and eventually board of directors of OpenNTF, Inc.

Under Bruce’s leadership these past few years, OpenNTF has become a fully incorporated non-profit entity. OpenNTF now receives code contributions by IBM. OpenNTF has successfully run several contests, the most spectacular of which has been this year’s Appathon with an amazing $10,000 in prize money! OpenNTF has started other sites as well including XSnippets, XPages.info, and Collaboration Today. Needless to say, Bruce has been a major driving force and his presence will be missed on the board. But, Bruce has moved on to greater goal which is to educate our future programmers at Clark College and therefore I cannot blame him.

Thanks, Bruce, for everything!

Posted in Domino, 3,287 views, 0 Comments
Digg This Submit to del.icio.us Submit to Technorati  

Book Review: Instant IBM Lotus Notes 8.5.3 How-to

April 26th, 2013 by Corey Davis

Instant IBM Lotus Notes 8.5.3 How-to is the latest Lotus Notes title out of Packt Publishing. If you are new to the How-to series, they are the Packt equivalent to the O’Reilly pocket guides. Hmmm, didn’t someone say that they should do this awhile ago?

This short to-the-point book will likely be a welcome sight to end-users who tend to have little to no interest in the massive tomes that are usually published. Each chapter follows an easy to understand format of problem or topic, followed by “Getting ready”, “How to do it”, “How it works”, and finally “There’s more”. When used properly, this formula can make it easy for the reader to find quick answers to specific topics or problems. Sadly, these sections really are not used to their full extent in many chapters. For instance, the chapter Mastering Calendar and To-Dos uses calendar federation as its “How to do it” with the real calendar mastering tips in the “There’s more” section. Maybe it’s me, but it just doesn’t read smooth.

Now, that said, it doesn’t mean that this book is bad. In fact, there are many very useful tips. I would go so far as to say that I would be quite happy if every one of my customer’s end-users had this book on their desk. You just need to look past this books quirks and you’ll find some wonderful nuggets of information.

Disclaimer: Packt Publishing provided a free review copy of the book for the purpose of this review.

The book is available now from Packt Publishing and Amazon.

Tags: , ,
Posted in Domino, 11,676 views, 0 Comments
Digg This Submit to del.icio.us Submit to Technorati  

Flow v1.1 Released on OpenNTF

December 10th, 2012 by Corey Davis

It has been 4 years since I released the first beta version of Flow on OpenNTF.org, and almost 2 years since the last update. I must apologize to the users who suggested modifications to Flow and have been waiting for me to get them into the code. This is a minor release, but it does have some nice new features thanks to those patient users.

Critical Error Logging
Error logging has to be part of any logging tool, and Flow was no exception. However, now you can trap for critical errors and in one line of code log the error to the log document and send an e-mail about the error to whomever needs to know about it. This will alleviate the tedious task of looking through your logs for those critical errors because you will be notified by e-mail as in the example below:

Log Summary
While logging is a great way to see the step-by-step process that your agents take to ensure healthy activity, there are times where you only want to see a quick summary such as a successful completion message or number of documents processed as in the example below:

Task Timers
Two different timer functions were added so that you can easily time and log how long different events in your code take to process. These convenience functions can be exceptionally useful during performance tuning.

No More Formula Errors in the Log View!
Yes, finally, the ugly date/time formula errors in the log are a things of the past! As soon as the log document is created, the start date is recorded and the summary flag set so that we no longer get those ugly errors:

That pretty much wraps up the changes to v1.1. Instructions for how to use these new features can be found in the Flow API Guide. Flow, the advanced LotusScript logging engine, can be downloaded from OpenNTF.org. Flow is free and open-source, so feel free to modify it in any manner that suits your needs. If you do make an interesting modification, please let me know and I may incorporate it into the next version.

Tags: , , , , ,
Posted in Domino, 1,466 views, 0 Comments
Digg This Submit to del.icio.us Submit to Technorati  

Book Review: IBM Lotus Notes and Domino 8.5.3: Upgrader’s Guide

March 15th, 2012 by Corey Davis

Continuing to fill the void left by the lack of Domino titles by other publishers, including IBM’s own Redbooks, Packt Publishing has just released IBM Lotus Notes and Domino 8.5.3: Upgrader’s Guide. The book promises to teach readers how to upgrade to Notes and Domino 8.5.3, the changes made to the Notes 8.5.3 client, how SOA is integrated into Notes 8.5.3, avoiding coexistence issues, and more.

The first chapter jumps right into the SOA (service-oriented architecture) topic. It explains what SOA is and describes the lifecycle of the architecture before explaining how it integrates with the Notes 8.5.3 client. This is followed by a lengthy discussion on composite applications. While the information on composite applications is good, I find it oddly out of place in this book considering that composite applications were introduced in Notes 8.0 in 2007. Considering that this book is aimed at upgraders and not first-time users, it seems redundant. The chapter concludes with a quick description of open technologies built-into Notes 8.x.x such as OASIS/ODF support and Eclipse.

Chapter Two, Overview of New Lotus Notes 8.5.3 Client Features, covers all major features added from Notes 8.0, 8.5, 8.5.1, 8.5.2, and finally 8.5.3. While this is also redundant for anyone upgrading, I find it very useful as it provides a single location to look at when I am asked which version a certain feature was added.

The third chapter very briefly covers Lotus Symphony.

Lotus Domino server features is the topic of Chapter Four. As with Chapter Two, the authors cover all major features to Domino since 8.0. Unlike Chapter Two, they are not segregated by version, except for the 8.5.3 enhancements which don’t show up until the end of the chapter. Before you get to those, there are sections on the Tivoli Directory Integrator, DirLint, SSO authentication for LTAPToken2, and some other topics that, while good information, seem misplaced in this chapter.

Chapter Five, Deployment Enhancements in Notes/Domino 8.5.3, begins with client provisioning. The topic quickly discusses Smart Upgrade and Eclipse provisioning before moving on to policies. The policies discussion is very complete and includes a wonderfully detailed section on controlling replication settings via policies for organizations pushing a local mail file replica architecture.

Domino 8.5.3 enhancements are covered in Chapter Six. Again, the authors go back and cover topics that any upgrader should already be familiar with such as DAOS and ID Vault before tackling the new stuff. The end of the chapter has a good but oddly placed section on iNotes modifications from the end-user perspective.

Chapter Seven, Upgrading to Lotus Notes and Domino 8.5.3, is really about planning. It is difficult to find fault with the authors here, however, considering that upgrading Notes and/or Domino is such a simple task. But, if you were looking for the technical steps on how to upgrade, you won’t find it here.

Coexistence is covered in Chapter Eight. Mostly it discusses which of the new features will not work with older versions of Domino. It is short, but one that any IT manager facing an upgrade should read.

The ninth chapter moves on to development. Only touching on the topic briefly, it is disappointing to see composite applications come up again considering that they were covered very well in the first chapter. Modifications made to views, formula and LotusScript languages, and a brief discussion on XPages, CSS, and JavaScript controls are covered. The chapter also covers the Lotus Component Designer, the blog template, and Lotus Expeditor.

Chapter Ten, Integration with Other Lotus/IBM Products, starts out with a full walkthrough of how to install and configure Quickr before moving on to a short overview of installing Sametime and Connections.

The book wraps up with a chapter all about the Domino Configuration Tuner. This is a wonderful chapter describing the DCT and is one that all admins should read.

All-in-all, this book is not unlike the previous IBM Lotus Notes and Domino 8.5.1 upgrader’s guide. It is well written, chock-full of good information spanning audiences of end-users, line-of-business users, administrators, developers, and IT managers, but so much of it is old information about previous versions on Notes and Domino that the reader is left feeling that the authors didn’t have enough to write about. And, to be fair, they probably didn’t. Upgrading is a simple process in the world of Notes and Domino. While this is a good book, one at half the size would have been more appropriate. Perhaps Packt should consider a new line of books not unlike the O’Rielly pocket references.

Disclaimer: Packt Publishing provided a free review copy of the book for the purpose of this review.

The book is available now from Packt Publishing and Amazon.

Tags: ,
Posted in Domino, 10,165 views, 4 Comments
Digg This Submit to del.icio.us Submit to Technorati  

LotusScript Random Password Generator

February 9th, 2012 by Corey Davis

I am working on a small project for a customer which, when complete, will be uploaded to OpenNTF. Part of the project required a random password generator so I set about searching for one. And I did find some, but none that did what I needed. I needed variable length passwords and the option to use special characters for added security. I could have just used one of the examples I found, but since they did not have a license associated with them and I want to upload the finished product to OpenNTF, I opted to write my own. As usual, I will walk you through the code.

1: Public Function GeneratePassword(length As Integer, useSpecialChar As Boolean) As String
2:	On Error GoTo ErrHandler

The function is called GeneratePassword and it accepts two parameters: the length of the password as an Integer, and whether or not to use special characters as a Boolean. And, of course, there is error handling.

4:	Randomize
6:	Dim pass As String
7:	Dim charCount, char As Integer
9:	If length > 63 Then Let length = 63	'Notes passwords cannot be more than 63 characters long

We start by calling the Randomize statement in order to seed LotusScript’s random number generator Rnd(), and declaring the variables we are going to use. We then make sure that the password length is not more than 63 characters since that is Domino’s password length limit.

11:	For charCount = 1 To length
12:		Let char = Round((Rnd() * 1000), 0)
13:		If useSpecialChar And (CInt(char) >= 33 And CInt(char) =< 126) Then
14:			Let pass = pass & Chr$(char)
15:		ElseIf (CStr(char) Like "[4][8-9]") Or (CStr(char) Like "[5][0-7]") Or _
16:		(CStr(char) Like "[6][5-9]") Or (CStr(char) Like "[7-8][0-9]") Or _
17:		(CStr(char) = "90") Or (CStr(char) Like "[9][7-9]") Or _
18:		(CStr(char) Like "[1][0-1][0-9]") Or (CStr(char) Like "[1][2][0-2]") Then
19:			Let pass = pass & Chr$(char)
20:		Else
21:			Let charCount = charCount - 1
22:		End If
23:	Next charCount

Now we move on to the heart of the function. We are going to loop through the code until we have generated a password that is the requested length. The first thing we will do, in line 12, is generate a random number (remember, Rnd() generates a random number between 0 and 1 such as .4285735) and then convert it and round it to a whole number. On line 13 we will check to see if we are allowed to use special characters and, if so, we will then see if our random number falls between 33 and 126. If so, we will get the character represented by that number and add it to our new password in line 14. If we are not using special characters, we will then move on to lines 15-18 and check to see if our number is 48-49 or 50-57 or 65-69 or 70-89 or 90 or 97-99 or 100-119 or 120-122. Yikes! If you step back from that a little, we are actually just checking to see if the number is between 48-57 (which, when run through Chr$() are the numbers 0-9), or 65-90 (a-z), or 97-122 (A-Z). There are a number of ways in which to handle this part of the task, and both of the other random password generators that I linked to above handle it differently, so you may want to look at those. So, just like before, if our number matches we will get the character represented by the number and add it to our new password. In lines 20-21, when none of the above match, we will decrement our counter since we did not add a character to the password. Finally we will run through the loop again until we have the correct password length.

Note: as I sit here writing this, I wonder if I should have used a Do/While loop rather than For/Next since I am modifying the counter within the loop. It works just fine, but may not be best practice.
25:	Let GeneratePassword = pass
27:	Exit Function
30:	Error Err, Error & { on line } & Erl & { in } & GetThreadInfo(1) & Chr$(13)
31:End Function

Finally, we will assign the new password to GeneratePassword in order to pass it back to the calling code and exit the function. We also have our error handling. We won’t really handle the error so much as trap it and bubble the error up to the calling code to handle.

In the end, we get random passwords like “1L4fXmEX” or, with special characters turned on, like “e$+E6f}d”.

You can download this function below, or it will be available as part of an OpenNTF project to be announced in the next couple of weeks.


Posted in Domino, SnTT, 6,096 views, 2 Comments
Digg This Submit to del.icio.us Submit to Technorati  

Page 1 of 1512345...1015...Last »

CC-GNU GPL Creative Commons License
The Conxsys Blog by Corey Davis is licensed under a Creative Commons Attribution 3.0 Unported License unless otherwise specified. Based on a work at conxsys.com/blog. All code on this blog is licensed under the CC-GNU GPL version 2.0 or later unless otherwise specified.

Copyright © 2006-2010 by Conxsys | Login | Powered by Wordpress | Template based on a design by Design4