<?xml version='1.0' encoding='UTF-8' ?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>CDS Technology</title>
	<updated>2013-03-29T05:43:44-04:00</updated>
	<id>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView</id>
	<rights>Copyright 2007 Cincom Systems, Inc.</rights>
	<generator uri="/CincomSmalltalkWiki/Silt" version="1.0">Silt Syndication Generator</generator>
	<link href="http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView" rel="alternate" type="text/html"></link>
	<link href="/rssBlog/cdsTech-atom.xml" rel="self" type="application/atom+xml"></link>
	<entry>
		<title>Back Again</title>
		<id>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;printTitle=Back_Again&amp;entry=3455347548</id>
		<updated>2010-06-30T10:45:48-04:00</updated>
		<author>
			<name>Rick Stephens</name>
			<uri>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView</uri>
			<email>rstephens@cincom.com</email>
		</author>
		<content type="html" xml:lang="en-us"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Hi.</p>

<p>A new release of Eloquence means more changes.&nbsp; In the past I have been intentionally vague, as that makes my keepers happy.&nbsp; It is not what I would prefer, but there are numerous reasons for their concern, and I feel it best to honor them.</p>

<p>We have done a lot since the first release of version 2.&nbsp; The primary focus became the removal of EJB's.&nbsp; I can say that they are all gone, now, as we are using POJO's throughout the services.&nbsp; The reason was driven from my dislike of EJB's, based on what their cost-to-return ratio.&nbsp; By that, I mean that I could find no justification for their complexity.&nbsp; To many of you, this is heresy.&nbsp; To others, it is what you have already done, and you are wondering why it took us so long.&nbsp; Well, it took awhile to get away from our fixation with what was viewed as the "proper way" to use WebSphere Application Server (WAS).</p>

<p>We like WAS.&nbsp; We will continue to use WAS.&nbsp; We had been asked to use other applications servers, however, and the use of EJB's was restricting our ability to do so - easily.&nbsp; Not that it wasn't possible, but I come back to that evaluation I spoke of earlier - cost-to-return.&nbsp; Staying with EJB's and also moving out to more than WAS wasn't proving to be practical.&nbsp; POJO's looked much better, both for WAS and others.&nbsp; So there is one of our reasons.</p>

<p>Another, as I have alluded to, was complexity.&nbsp; We have grown to like Spring, and POJO's are a natural extension of that growth.&nbsp; So, after we determined that we could reduce code and code complexity, continue our use of Spring, all while gaining more application servers and keeping WAS, well...&nbsp; It was an easy decision.</p>

<p>So, we now code (almost) for no platform, but run with WAS and with JBoss 5.&nbsp; We have also run with others, but they are not official.</p>

<p>I found it interesting that performance got better in most areas, but not in all areas.&nbsp; There are reasonable explanations for most of what we see, both for better or worse performance.&nbsp; And there are some head-scratchers, again for both better and worse performance.&nbsp; If you take an overall look at the new Eloquence release, it is faster because of the architectural changes we have made.&nbsp; And overall, WAS deals with the new architecture well.</p>

<p>I cannot say the same for JBoss 5.&nbsp; My personal opinion is that the IBM folk have spent more time making their product work with Spring and POJO's and all of the stuff that surrounds our new architecture than have the JBoss folk.&nbsp; I do not know if this is due to the rivalry I have seen between Spring and JBoss, or the JBoss interest in EJB's, or just that WAS is more mature.&nbsp; We have a few things going on in JBoss that make no sense.&nbsp; They work - you get what you want - but the performance differences leave you wondering what is going on.</p>

<p><br />You need to remember that Eloquence is sold to run on the application server that the customer owns.&nbsp; We do not recommend one, sell one or alter what we find in any way.&nbsp; In fact, we try to make sure we can run with other applications that may be present.&nbsp; We install and configure our application - only our application.&nbsp; We do our best to understand WAS and JBoss 5 so we can recommend optimum tuning of the application server for Eloquence.&nbsp; But these do not extend to anything but Eloquence.</p>

<p>End result, the architectural changes allow Eloquence to be almost neutral, running the same code on WAS and JBoss 5.&nbsp; Giving the same functionality on WAS and JBoss 5.&nbsp; It is up to the customer to decide which to use.</p>

<p>This probably seems boring, but for Eloquence it was a big step.&nbsp; We changed quite a bit of code and were nervous about how it would turn out.&nbsp; It turned out well.</p>

<p>Now, it is common for these types of discussions to do something radical - to make statements that shock and amaze.&nbsp; I do not wish to go against this tradition, so I am going to add a few paragraphs below.&nbsp; If you do not wish to participate, you can stop reading now.</p>

<p>Okay.</p>

<p>First - We had a lot of trouble with Work Managers.&nbsp; In Spring, in WAS and in JBoss.&nbsp; This has got to be some of the most nonsensical logic I have seen for awhile.&nbsp; Since there seem to be only a few players in this game, I would ask that you all get together and figure out what you want and how you are going to do it.&nbsp; And, please, make it better.&nbsp; I know the whole topic of threads and load and queuing and concurrency create differences of opinion.&nbsp; I am sure there are competing camps, surfaced around grand theories, and that warfare is common.&nbsp; But I do not understand why we had to have unique configurations between WAS and JBoss 5.&nbsp; I do not understand why Spring surfaced these differences to us.&nbsp; I do not understand why the JBoss 5 work manager has been coded as it has.&nbsp; Especially since the same player(s) were involved.&nbsp; And for the record, I prefer the implementation we got with WAS.</p>

<p>Second - there is no such thing as a free JBoss 5 application server.&nbsp; From what we have gone through, you really need to be on the "commercial" release.&nbsp; Or to have paid money to one or more consultants.&nbsp; The documentation possibilities increase dramatically when money has changed hands.</p>

<p>Rick</p>

<p>&nbsp;</p>
</div>]]></content>
		<link href="http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;entry=3455347548" rel="alternate" type="text/html"></link>
		<category term="general"></category>
	</entry>
	<entry>
		<title>Next Life</title>
		<id>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;printTitle=Next_Life&amp;entry=3414988800</id>
		<updated>2009-03-20T08:00:00-04:00</updated>
		<author>
			<name>Rick Stephens</name>
			<uri>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView</uri>
			<email>rstephens@cincom.com</email>
		</author>
		<content type="html" xml:lang="en-us"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Hi.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">It's been awhile since my last post.<span style="mso-spacerun: yes;">&nbsp; </span>For those of you who think of Blogs as diaries, this is probably inexcusable.<span style="mso-spacerun: yes;">&nbsp; </span>For me, it's a way to talk to an audience that I don't get to see. <span style="mso-spacerun: yes;">&nbsp;</span>If I don't have anything to say, I don't think there needs to be any conversation.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">So, from the above statement you can rightly guess that I have something to say.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">I want to tell you about the next release of Eloquence, coming out soon. <span style="mso-spacerun: yes;">&nbsp;</span>I will leave it to Cincom marketing to give you lots of information about new stuff. <span style="mso-spacerun: yes;">&nbsp;</span>This is a Blog about architecture, and that's what I am going to stay with.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">We have made some changes since version 1 - some small, some not so small. I'm going to focus on the not-so-small.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">First, we are using Hibernate for the persistence layer.<span style="mso-spacerun: yes;">&nbsp; </span>It made no sense to stay in the SQL-writing business.<span style="mso-spacerun: yes;">&nbsp; </span>It was quite limiting and very consuming.<span style="mso-spacerun: yes;">&nbsp; </span>We have found that Hibernate has resolved some areas of complex code - making them go away or at least get simpler.<span style="mso-spacerun: yes;">&nbsp; </span>It has also given us the ability to support many more RDBMS vendors. <span style="mso-spacerun: yes;">&nbsp;</span>As with all first-time adopters, 100% of our hopes were not met (it's amazing what you think you know versus what you really do know). <span style="mso-spacerun: yes;">&nbsp;</span>I had thought we had done all of the research and set our expectations correctly, but until you work with something - and do it wrong - you don't truly get it. <span style="mso-spacerun: yes;">&nbsp;</span>We are past that now, and I think we are more impressed after it is all over.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Second, we are using Spring - for many purposes - and keep coming up with ways to increase its use. <span style="mso-spacerun: yes;">&nbsp;</span>If I am sold on Hibernate, I am even more sold on Spring.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Tangent Alert!</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">For those who do not know me, I am not young, having now counted more than 3 decades in this career, let alone time in this body. <span style="mso-spacerun: yes;">&nbsp;</span>I have a natural engineering style.<span style="mso-spacerun: yes;">&nbsp; </span>It shows up in everything I do - programming, deck building, furniture making, cooking, &hellip;<span style="mso-spacerun: yes;">&nbsp; </span>Spring fits me very well. <span style="mso-spacerun: yes;">&nbsp;</span>If I had created it, it would look like it does.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Back again.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Our use of Spring has so far been limited to our services (mostly). <span style="mso-spacerun: yes;">&nbsp;</span>As you will remember, we follow an SOA model,<span style="mso-spacerun: yes;">&nbsp; </span>Most of what we do is present in the application server, behind a messaging layer. <span style="mso-spacerun: yes;">&nbsp;</span>This is where Spring predominantly sits and where its use has grown. <span style="mso-spacerun: yes;">&nbsp;</span>We started out looking for just a helper for the persistence mechanism - everything we read said Spring/Hibernate was better than just Hibernate. <span style="mso-spacerun: yes;">&nbsp;</span>That changed once we started using it, discovering the power that was there.<span style="mso-spacerun: yes;">&nbsp; </span>Inversion of control, for example.<span style="mso-spacerun: yes;">&nbsp; </span>Support for aspect-oriented programming.<span style="mso-spacerun: yes;">&nbsp; </span>And, of course, the O/R, JDBC and DAO support, where we began. <span style="mso-spacerun: yes;">&nbsp;</span>More is coming as we push into the use of Spring Integration.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Third, we made a decision to greatly change the way Eloquence is administered. <span style="mso-spacerun: yes;">&nbsp;</span>In version 1, between Author, Web, the Admin Console and numerous configuration files, you created/managed the items and environment needed. <span style="mso-spacerun: yes;">&nbsp;</span>It wasn't ideal and sometime confusing as to where to go to get to something. <span style="mso-spacerun: yes;">&nbsp;</span>A lot of that has been brought together into the Eloquence Admin Console - EAC for short. <span style="mso-spacerun: yes;">&nbsp;</span>What you will see has little in common with the old one. <span style="mso-spacerun: yes;">&nbsp;</span>We have implemented a new UI, modeled more like Author to help with consistency. <span style="mso-spacerun: yes;">&nbsp;</span>EAC also uses Web 2.0 technology - JSF and AJAX.<span style="mso-spacerun: yes;">&nbsp; </span>This last change was the most dramatic, and points to future direction for Eloquence.<span style="mso-spacerun: yes;">&nbsp; </span>And, as you probably guessed, it uses Spring (but not Spring Web or MVC).</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Finally - and here I have to cross into function for a bit - Eloquence has new modules to support Batch and <span style="mso-spacerun: yes;">&nbsp;</span>Output processing. <span style="mso-spacerun: yes;">&nbsp;</span>While I mention these last, they were the reason for most of our architectural changes. <span style="mso-spacerun: yes;">&nbsp;</span>They are also going to continue to drive most of the coming changes, as well. <span style="mso-spacerun: yes;">&nbsp;</span>The services used to be centered around the Engine - the piece that performs the actual document generation process. <span style="mso-spacerun: yes;">&nbsp;</span>Let's face it - all of the really cool stuff in the world doesn't matter if you don't produce a piece of paper - or Email, Fax &hellip;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Engine is still there and still represents why we exist. <span style="mso-spacerun: yes;">&nbsp;</span>We even gave it new abilities, which are used by Output to gain finer control over the document generation process. <span style="mso-spacerun: yes;">&nbsp;</span>Such as the ability to merge, sort and group documents; enhance individual documents or document streams with images, barcodes and PDF insertions; and deliver to more types of devices. <span style="mso-spacerun: yes;">&nbsp;</span>And if Output can do it, Batch can make it happen over large data sets, manually or on a schedule.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">When you see Eloquence 2, I hope you will impressed. <span style="mso-spacerun: yes;">&nbsp;</span>We have tried very hard to keep what was good about version 1, while continuing its evolution.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">&nbsp;</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Rick</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>
</p></div>]]></content>
		<link href="http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;entry=3414988800" rel="alternate" type="text/html"></link>
		<category term="general"></category>
	</entry>
	<entry>
		<title>Travel</title>
		<id>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;printTitle=Travel&amp;entry=3395622242</id>
		<updated>2008-08-08T04:24:02-04:00</updated>
		<author>
			<name>Rick Stephens</name>
			<uri>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView</uri>
			<email>rstephens@cincom.com</email>
		</author>
		<content type="html" xml:lang="en-us"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">Hi.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">I have lately been in France, China and India.<span style="mso-spacerun: yes;">&nbsp; </span>I am saying this to impress you, of course.<span style="mso-spacerun: yes;">&nbsp; </span>Not impressed, huh?<span style="mso-spacerun: yes;">&nbsp; </span>This was my attempt at trying to be like some other Bog's, where the sole purpose is to show how cool the writer is.<span style="mso-spacerun: yes;">&nbsp; </span>I thought I would give it a try, but it's just not me.<span style="mso-spacerun: yes;">&nbsp; </span>Oh, well.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">The purpose of all this traveling was Eloquence - not my personal eloquence, which is progressively hopeless, but the product Eloquence.<span style="mso-spacerun: yes;">&nbsp; </span>We are continually looking at ways to make it better, and that involves me leaving home, it seems.<span style="mso-spacerun: yes;">&nbsp; </span>In France, I spent time with the Cincom developers located in Lyon.<span style="mso-spacerun: yes;">&nbsp; </span>They are the primary developers for almost all of the new output processing going into version 2.<span style="mso-spacerun: yes;">&nbsp; </span>We have put a layer above our Engine that controls document generation, output generation and final delivery.<span style="mso-spacerun: yes;">&nbsp; </span>It will be universally used by the Eloquence application components.<span style="mso-spacerun: yes;">&nbsp; </span>So no matter how you come into Eloquence - Web, Batch or though an external application - all generation and delivery will be consistently processed.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">The architecture of Eloquence Output is new.<span style="mso-spacerun: yes;">&nbsp; </span>It has been in my head and then on paper for 2 years.<span style="mso-spacerun: yes;">&nbsp; </span>In it, Engine still performs the initial creation of the document based on rules, document text and dynamic input.<span style="mso-spacerun: yes;">&nbsp; </span>But to this we have added across-document enhancements (such as insertions and barcodes) and the ability to sort, group and bundle documents across operations.<span style="mso-spacerun: yes;">&nbsp; </span>The aspects of Output are fully surfaced though the Admin Console, both for definition and run-time.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">Speaking of the Admin Console, in China I met with the folks doing our new Admin Console.<span style="mso-spacerun: yes;">&nbsp; </span>Yes, I know we had one already, but I didn't like it, for so many reasons - usability, look-and-feel, and consistency among them.<span style="mso-spacerun: yes;">&nbsp; </span>And yes, the current one works fine, but I knew we could do better.<span style="mso-spacerun: yes;">&nbsp; </span>We ditched what we had and thought about a cleaner design.<span style="mso-spacerun: yes;">&nbsp; </span>The interface is much richer and employs many of the improvements gained in Web 2.0 - Java Server Faces and AJAX, for example.<span style="mso-spacerun: yes;">&nbsp; </span>The objects are managed both individually and as larger, composite objects.<span style="mso-spacerun: yes;">&nbsp; </span>All of the changes give a simpler, more intuitive feel.<span style="mso-spacerun: yes;">&nbsp; </span>It can be amazing the benefits you gain from a new approach.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">One of the biggest changes was the use of the Spring framework.<span style="mso-spacerun: yes;">&nbsp; </span>To all the folks who have and will work on Spring - thanks.<span style="mso-spacerun: yes;">&nbsp; </span>It has made our jobs a lot easier and our product better.<span style="mso-spacerun: yes;">&nbsp; </span>The Cincom teams in the U.K. and India have done the work getting Spring into Eloquence.<span style="mso-spacerun: yes;">&nbsp; </span>I wanted to finagle a trip to Maidenhead, but that didn't happen.<span style="mso-spacerun: yes;">&nbsp; </span>Probably for the best, as they have been quite productive without me bothering them.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">My final trip took me to India, home of another group of our Cincom developers.<span style="mso-spacerun: yes;">&nbsp; </span>These guys and ladies have been doing so much for us over the years, working on all parts of the application. <span style="mso-spacerun: yes;">&nbsp;</span>My focus on this trip, however, was our test team, helping them to understand what's coming at them and how to best handle it. <span style="mso-spacerun: yes;">&nbsp;</span>The architectural changes have given us better isolation, making it easier to test individual units.<span style="mso-spacerun: yes;">&nbsp; </span>It going to make their jobs easier, which means more and better testing, which translates to a better product.<span style="mso-spacerun: yes;">&nbsp; </span>Cool.</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">&nbsp;</span></p>

<p class="MsoPlainText" style="margin: 0in 0in 0pt;"><span style="font-size: x-small; font-family: Courier New;">These are big changes, all relating to improvements we are making in the Eloquence architecture.<span style="mso-spacerun: yes;">&nbsp; </span>And since this is focused on architecture, I thought it was important to say something about them.<span style="mso-spacerun: yes;">&nbsp; </span>Sorry if it came off too much like marketing.</span></p>
</p></div>]]></content>
		<link href="http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;entry=3395622242" rel="alternate" type="text/html"></link>
		<category term="general"></category>
	</entry>
	<entry>
		<title>Hi</title>
		<id>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;printTitle=Hi&amp;entry=3388637450</id>
		<updated>2008-05-19T08:10:50-04:00</updated>
		<author>
			<name>Rick Stephens</name>
			<uri>http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView</uri>
			<email>rstephens@cincom.com</email>
		</author>
		<content type="html" xml:lang="en-us"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">In the inaugural message, I would like to talk about what a document generation application should be.<span style="mso-spacerun: yes;">&nbsp; </span>But first - I'm Rick.<span style="mso-spacerun: yes;">&nbsp; </span>I am the architect for Cincom CDS, responsible mostly for the Eloquence application.<span style="mso-spacerun: yes;">&nbsp; </span>I hope to talk to anyone who cares to listen as often as possible.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">So, what about a document generation application?<span style="mso-spacerun: yes;">&nbsp; </span>For me, first there are the simple things - create the document I expect, as quickly as possible, on/to the devices I have.<span style="mso-spacerun: yes;">&nbsp; </span>If you can't do that, you're not in the game.<span style="mso-spacerun: yes;">&nbsp; </span>But this describes an incredible number of applications, including almost all word processors and reporting tools.<span style="mso-spacerun: yes;">&nbsp; </span>Do I consider these to be document generation applications?<span style="mso-spacerun: yes;">&nbsp; </span>Short answer - yes.<span style="mso-spacerun: yes;">&nbsp; </span>Long answer - not really.<span style="mso-spacerun: yes;">&nbsp; </span>You have to say 'yes', since by shear volume they probably do more document generation in these applications than in any other.<span style="mso-spacerun: yes;">&nbsp; </span>Just as the typewriter once did far more than these did.<span style="mso-spacerun: yes;">&nbsp; </span>And as a pen and paper did before the typewriter.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">Pen and paper still exist - typewriters still exist - and word processors and reporting tools will exist for quite some time.<span style="mso-spacerun: yes;">&nbsp; </span>But there are also document generation applications, such as Eloquence.<span style="mso-spacerun: yes;">&nbsp; </span>Which is why I have the long answer of 'no' above as well.<span style="mso-spacerun: yes;">&nbsp; </span>There are two characteristics that can be used to start separating word processing and reporting tools from document generation.<span style="mso-spacerun: yes;">&nbsp; </span>They are the ability to deal with complexity, and the ability to hide that same complexity.<span style="mso-spacerun: yes;">&nbsp; </span>Complexity can come in the number of pages, page content and format, input data types, output data streams and device targets.<span style="mso-spacerun: yes;">&nbsp; </span>Any of these can make the task of document generation quite difficult to manage on a day-to-day, week-to-week basis.<span style="mso-spacerun: yes;">&nbsp; </span>So that difficulty must be met by making the process as simple as possible.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">If we focus on complexity, then nothing will ever be 'simple to use', but it can be 'simpler to use'.<span style="mso-spacerun: yes;">&nbsp; </span>Hiding complexity is both a noble goal and mandatory to keep this work bearable.<span style="mso-spacerun: yes;">&nbsp; </span>But if it is always hidden - if the complexity cannot be met head-on when desired - then you cannot truly manage it.<span style="mso-spacerun: yes;">&nbsp; </span>I agree that most of what needs to be done can be - needs to be made bearable, possibly 'easy'.<span style="mso-spacerun: yes;">&nbsp; </span>But if the application doesn't allow you to 'get into the ink' when you need to, then it isn't truly serving you.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">For me, there is no question that even the best programmers cannot predict and code all the ways a document generation application will need to be used or what it will need to produce.<span style="mso-spacerun: yes;">&nbsp; </span>So they must give you a way to accomplish what you need.<span style="mso-spacerun: yes;">&nbsp; </span>The trick is to do so in a way that makes sense - back to the 'simpler to use' idea.<span style="mso-spacerun: yes;">&nbsp; </span>And so it is that how you deal with the application becomes the defining mark of the application.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">I believe that the perfect document generation application is part programming tool, part application.<span style="mso-spacerun: yes;">&nbsp; </span>The application part holds your hand, does most, if not all of the work, and gives you what you want for 80% of your work.<span style="mso-spacerun: yes;">&nbsp; </span>The programming part gives you a rich set of tools to use for the rest of the time when you need it.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;"></span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">That tool set should be broad in coverage and needs both low- and high-level parts.<span style="mso-spacerun: yes;">&nbsp; </span>In fact, it should the same tool set used by the application.<span style="mso-spacerun: yes;">&nbsp; </span>Some of you won't want it, and that's fine.<span style="mso-spacerun: yes;">&nbsp; </span>The application will provide what you need.<span style="mso-spacerun: yes;">&nbsp; </span>But some of you will need it and will appreciate that it is there.</span></p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;">&nbsp;</p>

<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Arial;">The quality and scope of both the tool set and the application will define the top competitors in document generation.<span style="mso-spacerun: yes;">&nbsp; </span>At Cincom, we will strive to be the best.</span></p>
</p></div>]]></content>
		<link href="http://www.cincomsmalltalk.com/userblogs/cdsTech/blogView?showComments=true&amp;entry=3388637450" rel="alternate" type="text/html"></link>
		<category term="general"></category>
	</entry>
</feed>
