<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brett Johnson &#187; projects</title>
	<atom:link href="http://mrscripter.com/category/projects/feed" rel="self" type="application/rss+xml" />
	<link>http://mrscripter.com</link>
	<description>Technical writing and web development</description>
	<lastBuildDate>Sun, 22 Jan 2012 21:19:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Graphical aid for generating object setup scripts (patent pending)</title>
		<link>http://mrscripter.com/2009/10/graphical-aid-for-generating-object-setup-scripts-patent-pending/projects</link>
		<comments>http://mrscripter.com/2009/10/graphical-aid-for-generating-object-setup-scripts-patent-pending/projects#comments</comments>
		<pubDate>Tue, 06 Oct 2009 05:23:48 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[dynamic-PDF]]></category>
		<category><![CDATA[event-publishing]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[patent]]></category>
		<category><![CDATA[q-replication]]></category>
		<category><![CDATA[rights-enable]]></category>
		<category><![CDATA[websphere-mq]]></category>

		<guid isPermaLink="false">http://mrscripter.com/?p=73</guid>
		<description><![CDATA[I joined IBM as an information developer intern (co-op) in June of 2005.  Dell Burner, my team lead, was working on a project with our visual designer and user experience engineer to create a quick start visual for setting up &#8230; <a href="http://mrscripter.com/2009/10/graphical-aid-for-generating-object-setup-scripts-patent-pending/projects">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmrscripter.com%2F2009%2F10%2Fgraphical-aid-for-generating-object-setup-scripts-patent-pending%2Fprojects"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmrscripter.com%2F2009%2F10%2Fgraphical-aid-for-generating-object-setup-scripts-patent-pending%2Fprojects&amp;source=mrscripter&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I joined IBM as an information developer intern (co-op) in June of 2005.  Dell Burner, my team lead, was working on a project with our visual designer and user experience engineer to create a quick start visual for setting up <a href="http://www.ibm.com/software/integration/wmq/">WebSphere MQ</a> for use with <a href="http://www.ibm.com/developerworks/data/roadmaps/qrepl-roadmap.html">Q replication</a>. Q replication is a database replication technology that is extremely high performing due to its architecture and infrastructure. The integral piece of making Q replication out perform standard <a href="http://www.ibm.com/developerworks/db2/roadmaps/sqlrepl-roadmap.html">SQL-based replication</a> is that it pushes its instructions over WebSphere MQ message queues.</p>
<p>WebSphere MQ administrators are a whole different audience than DB2 database administrators.  These two different products are like night and day. DB2 database administrators typically don&#8217;t know anything about WebSphere MQ and also are not likely allowed to touch the WebSphere MQ configurations.</p>
<p>Q replication was facing a major customer pain point when it came to configuring WebSphere MQ. The DBAs were not skilled in the technologies needed to implement it. In most shops, there were communication and procedural barriers to getting the environment configured. In most cases, the best case scenario for getting just the WebSphere MQ portion of the environment configured was a minimum of 1-2 days. If the DBAs were working in a z/OS shop, that time frame could be even longer.</p>
<p>Of course a best case scenario means all parties involved are well versed in their requirements and can communicate those from DBA to WebSphere MQ admin.</p>
<p>In an effort to ease the learning curve of Q replication, <a href="http://www.linkedin.com/pub/dell-burner/1/531/2ab">Dell Burner</a>, <a href="http://www.linkedin.com/pub/daina-pupons-wickham/4/945/4a7">Daina Pupons-Wickham</a>, <a href="http://www.linkedin.com/in/laukevin">Kevin Lau</a>, and Michael Mao undertook an effort to create a diagram based document and <a href="http://www.ibm.com/support/docview.wss?uid=swg27005484&amp;rs=3171">supporting instructions</a> for assisting DBAs to create their setup scripts that they would ask the WebSphere MQ admins to run.<span id="more-73"></span></p>
<h2>My contribution</h2>
<p>I was just two months into my coop and Dell was showing me the PDF of the diagram that he was going to present to one of our vice presidents later that day.  I had worked with PDFs a bit in previous jobs and at school and knew that I could add some additional functionality to his design that would improve it further.</p>
<p>In its current state, the diagram was intended to be printed out and the DBA was expected to hand write on it the names of the objects (while cross referencing the docs) that they expected their WebSphere MQ admin to create.  That first day before Dell presented to our VP, I was able to add text input fields that a user could type into instead of hand writing. I also added tooltips to each of the fields that added embedded assistance to help with explaining each of the objects to cut down on the need for looking up documentation.</p>
<p>Dell&#8217;s presentation was a hit even though it was just minor updates to the existing diagram.  As much as I added in just a single day, I knew there was still significant room for improvement.</p>
<p>PDFs support what is called &#8220;calculations&#8221; and other processing of form entries. An author can add JavaScript instructions and functions into the PDF that allow it to become more dynamic. I had already added all of the text fields and tooltips&#8211;why should we expect the DBAs to assemble their setup scripts when we could do it form them?</p>
<p>I created additional scripts that would take a users input into the diagram and transform the input into fully functional WebSphere MQ scripts that could be run as is. The instructions and PDF forms were also customized depending on the type of Q replication environment (unidirectional, bidirectional, peer-to-peer, event publishing, etc).</p>
<p>Download a copy of this tool from: <a href="http://www.ibm.com/support/docview.wss?uid=swg27006473&amp;rs=3171">WebSphere MQ Script generator for Q replication and event publishing</a></p>
<p>Watch a demo of the tool at:<a onmousedown="return rwt(this,'video_result','','res','5','AFQjCNE0rk1pbtRYblMABZ5a4kuLeUDE-A','&amp;sig2=oVbswYaktpIPvCtyxK0wfw')" href="http://www.google.com/url?sa=t&amp;source=web&amp;oi=video_result&amp;ct=res&amp;cd=5&amp;url=http%3A%2F%2Fwww.channeldb2.com%2Fvideo%2F807741%3AVideo%3A1602&amp;ei=s9LKSvj9GYvUsgPRu-GhBQ&amp;usg=AFQjCNE0rk1pbtRYblMABZ5a4kuLeUDE-A&amp;sig2=oVbswYaktpIPvCtyxK0wfw"> The <em>MQ Script Generator</em> &#8211; ChannelDB2</a></p>
<h2>User testing</h2>
<p>While still in the draft state and testing the scripts, we performed user testing and validation. We were able to measure that the new PDF tool was able to reduce user task time from 24-48 hours to down to 15-20 minutes.   Obviously a significant improvement in time and thus customer&#8217;s ROI.</p>
<h2>Patent application</h2>
<p>After some thought and later research, we determined that no one else had done anything similar. We filed our international patent application (US Patent App # 20070162891) in January of 2006. In July of 2009, we finally heard back from our first patent office&#8211;China granted our patent for our invention &#8220;Graphical aid for generating object setup scripts.&#8221; Chinese patent number is #ZL200710001513.4.</p>
<h2>Later additions and enhancements</h2>
<p>Eventually Adobe added the capabilities to Adobe Acrobat Professional that allowed content creaters to create &#8220;rights-enabled&#8221; PDFs. This basically means you can allow a user of your PDF that only has Adobe Reader to be able to save their filled out forms. Previously, the lack of that capability was extremely limiting.  With the addition of this capability, the InfoSphere Replication Server product now bundles my tool as a launchable function from the GUI.</p>
<p>While this PDF definitely helped reduce a major customer pain point, I believe its implementation could have been done in a richer way if we could have gotten a programmer to build the actual functionality into the product. This began as kind of a demonstration and turned into its own full-fledged tool.</p>
<p>Other use cases of this capability are constantly popping up so you might see something come along soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrscripter.com/2009/10/graphical-aid-for-generating-object-setup-scripts-patent-pending/projects/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Greasemonkey script for Lotus Connections dynamic drop-down menus</title>
		<link>http://mrscripter.com/2009/10/greasemonkey-script-for-lotus-connections-dynamic-drop-down-menus/projects</link>
		<comments>http://mrscripter.com/2009/10/greasemonkey-script-for-lotus-connections-dynamic-drop-down-menus/projects#comments</comments>
		<pubDate>Tue, 06 Oct 2009 05:00:47 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[ATOM]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Lotus-Connections]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[userscripts]]></category>

		<guid isPermaLink="false">http://mrscripter.com/?p=51</guid>
		<description><![CDATA[Install this script from userscripts.org: IBM Lotus Connections Drop-down menus IBM&#8217;s Lotus Connections software is an enterprise social software application that consolidates a lot of collaboration and information sharing within the enterprise to a single location. We use Lotus Connections &#8230; <a href="http://mrscripter.com/2009/10/greasemonkey-script-for-lotus-connections-dynamic-drop-down-menus/projects">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmrscripter.com%2F2009%2F10%2Fgreasemonkey-script-for-lotus-connections-dynamic-drop-down-menus%2Fprojects"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmrscripter.com%2F2009%2F10%2Fgreasemonkey-script-for-lotus-connections-dynamic-drop-down-menus%2Fprojects&amp;source=mrscripter&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Install this script from userscripts.org: <a href="http://userscripts.org/scripts/show/59219">IBM Lotus Connections Drop-down menus</a></p>
<p><a href="http://www.ibm.com/software/lotus/products/connections/">IBM&#8217;s Lotus Connections</a> software is an enterprise social software application that consolidates a lot of collaboration and information sharing within the enterprise to a single location. We use Lotus Connections quite extensively within IBM and it has been an amazing improvement over many of our previous tools and methods for project, team, and professional collaboration.</p>
<p>The recently announced Lotus Connections 2.5 features <a href="http://www-01.ibm.com/software/lotus/products/connections/communities.html">communities</a>, <a href="http://www-01.ibm.com/software/lotus/products/connections/blogs.html">blogs</a>, <a href="http://www-01.ibm.com/software/lotus/products/connections/wikis.html">wikis</a>, <a href="http://www-01.ibm.com/software/lotus/products/connections/files.html">file sharing</a>, <a href="http://www-01.ibm.com/software/lotus/products/connections/bookmarks.html">social bookmarking</a>, <a href="http://www-01.ibm.com/software/lotus/products/connections/activities.html">activities</a>,  <a href="http://www-01.ibm.com/software/lotus/products/connections/profiles.html">profiles</a>, and a <a href="http://www-01.ibm.com/software/lotus/products/connections/homepage.html">customizable dashboard</a>.  I can tell you that I use every single one of those features on a daily basis and its been a great step forward in so many ways. Knowledge is being better shared across our enterprise and it can be found more easily. Projects and teams can stay organized and on track. To-dos can be assigned and tracked.</p>
<p>While my overall satisfaction with the product is quite high, one small design issue bugs me. Thankfully, Lotus Connections is a web application that I can use the <a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey addon for Firefox</a> to alter aspects of the design.  I often find myself having to switch between sections in Lotus Connections&#8211;On a wiki page and need browse to a wiki section within a community.  The default design has a top bar menu with only top-most navigation items:</p>
<p><img class="alignnone size-full wp-image-52" title="lotus_connections-top-menu-default" src="http://mrscripter.com/wp-content/uploads/2009/09/lotus_connections-top-menu-default.jpg" alt="lotus_connections-top-menu-default" width="700" height="66" /></p>
<p>Getting around Lotus Connections sometimes requires clicking through multiple unnecessary pages.  I decided to add drop-down menus to each menu item to reduce the number of clicks to get around. I eventually discovered the ATOM feeds for each Lotus Connections area and determined I could add links for specific areas such as a list of all your communities or a list of all files that have been shared with you (had to blur out the actual files in the screenshot):</p>
<p><img class="alignnone size-full wp-image-53" title="lotus_connections-top-menu-files_submenu" src="http://mrscripter.com/wp-content/uploads/2009/09/lotus_connections-top-menu-files_submenu.jpg" alt="lotus_connections-top-menu-files_submenu" width="647" height="174" /></p>
<p>Overall, this script helps improve an already awesome application a bit more.  I&#8217;m hoping to convince the Lotus Connections teams to implement some kind of navigation that either matches this experience or something similar for being able to more quickly navigate to specific items in your network.</p>
<h3>Using this script</h3>
<p>You can use this script on http://ibm.com/communities, which is an IBM implementation of Lotus Connections 2.5. You can also customize the locations that this Greasemonkey script runs to include your own installations. For example, if you want it to run against http://mybusiness.com/connections/* you would include that location:</p>
<p><img class="alignnone size-full wp-image-78" title="lotus_connections_manage_scripts" src="http://mrscripter.com/wp-content/uploads/2009/10/lotus_connections_manage_scripts.jpg" alt="lotus_connections_manage_scripts" width="609" height="534" /></p>
<div><a href="http://userscripts.org/scripts/show/59219">Download</a></div>
<div></div>
<div>If you are an IBM employee, you can find an internal version of this script for use with our own internal deployments. Check my internal Connections Blog by searching for Greasemonkey.</div>
]]></content:encoded>
			<wfw:commentRss>http://mrscripter.com/2009/10/greasemonkey-script-for-lotus-connections-dynamic-drop-down-menus/projects/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Great Outdoors sample database (GSDB)</title>
		<link>http://mrscripter.com/2009/09/great-outdoors-sample-database-gsdb/projects</link>
		<comments>http://mrscripter.com/2009/09/great-outdoors-sample-database-gsdb/projects#comments</comments>
		<pubDate>Sat, 26 Sep 2009 19:21:29 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[databases]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[team lead]]></category>

		<guid isPermaLink="false">http://mrscripter.com/?p=48</guid>
		<description><![CDATA[In May of 2008, I switched roles at IBM. I moved from being your standard information developer (technical writer) to taking on a much more open ended role that I often have a difficult time describing, internally titled &#8220;Information Development &#8230; <a href="http://mrscripter.com/2009/09/great-outdoors-sample-database-gsdb/projects">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmrscripter.com%2F2009%2F09%2Fgreat-outdoors-sample-database-gsdb%2Fprojects"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmrscripter.com%2F2009%2F09%2Fgreat-outdoors-sample-database-gsdb%2Fprojects&amp;source=mrscripter&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In May of 2008, I switched roles at IBM. I moved from being your standard information developer (technical writer) to taking on a much more open ended role that I often have a difficult time describing, internally titled &#8220;Information Development Infrastructure Lead&#8221; for the IBM Integrated Data Management portfolio of products.</p>
<p>One of the facets of this new, broad role was leading a team of developers, tech sales, information developers, and subject matter experts in the creation or adoption of a common sample database for the entire portfolio. The IBM Integrated Data Management portfolio is mostly comprised of IBM Optim products and IBM Data Studio and some other tools thrown in. Overall, the portfolio has potentially 30 or so products with their own database requirements.</p>
<h2>Adopt or create?</h2>
<p>IBM has a variety of sample databases around the organization. Some are small, some are random, some for very specific situations, and very few are realistic or rich for a broad use.  My first task was evaluating all of the potential sample data sets that were available to our teams and to try to find one that best fit our requirements.</p>
<h3>Key requirements</h3>
<p>The outcome of the project needed to meet some key requirements for our products:</p>
<ul>
<li>Story or scenario that drives usage and design of the database.  Must be be similar to a realistic customer environment to help relate our tools and information to solving the customers&#8217; own problems.</li>
<li>Support the wide variety of databases that our tools support, including DB2 for Linux, UNIX, and Windows, DB2 for z/OS, Oracle, Informix Dynamic Server, and Microsoft SQL Server.</li>
<li>Support key product scenarios and features, including data warehousing, data mining, modelling, application development, and general database tasks.</li>
<li>Support XML capabilities in the various databases.</li>
<li>Support spatial data teams (mapping data).</li>
</ul>
<p>Very few of the databases my team investigated came close to meeting any of these goals.</p>
<h2>Cognos acquisition</h2>
<p>Earlier in the year, IBM had acquired the Business Intelligence software company Cognos. Cognos brought to IBM an extremely rich, realistic, relevant, and widely adopted sample database known as the Great Outdoors sample database (GSDB).  This sample database is based on the operations of a fictional outdoor distributor known as the Great Outdoors company.  The data set included 5 schemas: business-to-business sales data (GOSALES), warehouse data (GOSALESDW), human resource data (GOSALESHR),  retailer data (GOSALESRT), and marketing data (GOSALESMR).</p>
<p>This database was by far the closest match to our portfolios requirements. The database prior to our work already had the following features:</p>
<ul>
<li>Based on a story about a fictional business.</li>
<li>Five schemas that covered different types of business data.</li>
<li>Localized and translated.
<ul>
<li>All text within the database is available in 25 languages.</li>
<li>Data is spread out across the world and can expose different scenarios in different regions and countries.</li>
</ul>
</li>
<li>Initial support for DB2 for Linux, UNIX, and Windows; Oracle; and Microsoft SQL Server.</li>
</ul>
<h2>Expanding the GSDB database</h2>
<p>To meet our key requirements, we required some additions to the sample database.  I had to carefully navigate internal political issues with this cross-organizational project and be careful with the acquisition teams to ensure that all interested parties were happy and the relationships continued to be beneficial for all parties.</p>
<p>Working with the Cognos teams, we prioritized and planned for the addition of a new schema and addition to the story that the database follows. To meet the needs of our sales enablement teams and also our data mining teams, we required business-to-consumer data.  This required the addition of customers as individuals rather than businesses, transactions, customer interests, fake credit data, and a variety of other information.</p>
<p>The  data mining and data warehousing teams had the most challenging to implement requirements of any team.  The data that we added needed to be quite deep as well as intelligent. To demonstrate the data mining tools we needed to add associations, patterns, time series, and trending to the B2C transaction data. Before the transactions could be generated, we had to first add approximately 30k new customer records.</p>
<h3>Adding customers</h3>
<p>The customers that we needed to add involved more manual work than some of the other aspects of the expansion of the GSDB database. We involved teams and individuals around IBM to help assist with the data collection.  Eventually over 50 people across many countries had helped with adding the following types of data:</p>
<ul>
<li>First and last names that were representative of the population of a country and culture. For example, some cultures have different surnames patterns for females such as Czech female surnames that end in &#8220;ova.&#8221;</li>
<li>Translated or localized version of all data. For example, city names in their English  name and its local name , such as Bangkok and in Thai กรุงเทพมหานคร.</li>
<li>A variety of city names, state/province names, street names, and corresponding postal codes and phone codes.</li>
</ul>
<p>All of the above data was gathered and then randomly mixed up so that we could generate as additional rows by combinations of first names, last names, addresses and cities. Also, we did this to ensure that all data was random and that any similarities to a real personal were entirely by chance. Additional data was added in to these records randomly such as age, profession, marital status, and hobbies.</p>
<h3>Generating complex transactions</h3>
<p>One of the members of my extended team was a developer and subject matter expert that worked with the data warehousing and data mining teams. He was able to create an application for us that would read our new customers table and generate orders either randomly or using some logic based on age, location, profession, marital status, and hobbies.</p>
<p>The application read the approximately 30k customer records and generated a half million transactions for those customers. Patterns, associations, trends, and other intricacies were added to these transactions so that our complicated mining tools could discover and expose to demonstrate the value of the tools and how to use them.</p>
<h2>GSDB sample database usage at IBM</h2>
<p>Our new version of the sample database is starting to gain wide usage across IBM&#8217;s Software Group. Many teams are writing developerWorks articles, tutorials, and demos based on the story behind the data and the data itself. You can see many of those using the following query: <a href="http://www.ibm.com/developerworks/search/searchResults.jsp?searchType=1&amp;searchSite=dW&amp;searchScope=dW&amp;query=GSDB">http://www.ibm.com/developerworks/search/searchResults.jsp?searchType=1&amp;searchSite=dW&amp;searchScope=dW&amp;query=GSDB</a></p>
<p>One of the first projects to use the sample database was the IBM InfoSphere Warehouse information development team, which created three tutorials around the sample: <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.dwe.tut.sqw.doc/tutsqwtutorial.html">SQL warehousing</a>, <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.dwe.tut.cube.doc/tutcubetutorial.html">cubing services</a>, and <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.dwe.tut.mining.doc/tutminingtutorial.html">data mining</a>.</p>
<p>Of course, the Cognos products also continue to make extensive use of the data within their product line and by a variety of teams including information development, quality assurance, education, and sales.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 746px; width: 1px; height: 1px;">
<table style="border-collapse: collapse; width: 215px;" border="0" cellspacing="0" cellpadding="0">
<col style="width: 161pt;" width="215"></col>
<tbody>
<tr style="height: 13.5pt;" height="18">
<td style="height: 13.5pt; width: 161pt;" width="215" height="18" align="left">Bangkok</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://mrscripter.com/2009/09/great-outdoors-sample-database-gsdb/projects/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

