<?xml version='1.0' encoding='UTF-8' ?>
<rss version="2.0" xml:base="http://www.cincomsmalltalk.com/userblogs/arden/" xmlns:admin="http://webns.net/mvcb/" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:icbm="http://postneo.com/icbm" xmlns:includedComments="http://www.laudably.com/rss2-comments" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
	<channel>
		<title>[|] Less is More</title>
		<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView</link>
		<description>Arden Thomas</description>
		<webMaster>athomas@cincom.com</webMaster>
		<lastBuildDate>Tue, 14 May 2013 00:11:51 GMT</lastBuildDate>
		<image>
			<url>http://www.cincomsmalltalk.com/images/cst_small.jpg</url>
			<title>[|] Less is More</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView</link>
			<height>50</height>
			<width>81</width>
		</image>
		<admin:generatorAgent rdf:resource="http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Silt"></admin:generatorAgent>
		<admin:errorReportsTo rdf:resource="mailto:athomas@cincom.com"></admin:errorReportsTo>
		<dc:language>en-us</dc:language>
		<dc:creator>Arden Thomas</dc:creator>
		<dc:rights>Copyright 2006 Arden Thomas</dc:rights>
		<dc:date>2013-05-14T00:11:51-04:00</dc:date>
		<icbm:latitude>41.633333</icbm:latitude>
		<icbm:longitude>-73.916667</icbm:longitude>
		<item>
			<title>Building a Business with Cincom Smalltalk</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</link>
			<category>Conferences</category>
			<pubDate>Mon, 05 Mar 2012 08:20:08 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Building a Business with Cincom Smalltalk</p>

<p>Ever wanted to be a software entrepreneur, building software for industries, or businesses to order?</p>

<p>Come see our presentation on using powerful tools to quickly build software to support a business using Cincom Smalltalk tools to develop a model, infrastructure, database support, client, web and other interfaces to support a business.</p>

<p>Come see us at the <a href="http://www.stic.st/conferences/stic12/">Smalltalk Industry Conference 2012</a>.</p>

<p>I hope to see you there!</p>

<p>Regards</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arden</p>
</div>]]></description>
			<guid isPermaLink="false">3508388408</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3508388408</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3508388408</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:puid>
					<includedComments:author>Vince</includedComments:author>
					<includedComments:pubDate>2012-03-08T22:08:20-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Would absolutely love to, but I am in Australia and the boss won't give me leave for this! Will a video/transcript be on the 'net sometime?&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Building a Business with Cincom Smalltalk</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:puid>
					<includedComments:author>anonymous</includedComments:author>
					<includedComments:pubDate>2012-04-18T15:49:38-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Yes, videos will be going up (as available) on the STIC website.  In the meantime:&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.cincomsmalltalk.com/main/developer-community/presentations/"&gt;[link 1]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;hth&lt;/p&gt;&lt;p&gt;   Arden&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.cincomsmalltalk.com/main/developer-community/presentations/"&gt;[1 http://www.cincomsmalltalk.com/main/developer-community/presentations/]&lt;/a&gt;&lt;br/&gt;
&lt;/p&gt;


&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Building a Business with Cincom Smalltalk</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:puid>
					<includedComments:author>Chawalit</includedComments:author>
					<includedComments:pubDate>2012-12-02T12:37:00-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;My view is that Groovy is indeed a voltnueer effort, and you can't  force  voltnueers to commit to a schedule.  Cedric's suggestion is to announce a date so that the group can focus themselves and really deliver something solid.  They've shown without some thing like this, the project will keep drifting forever.  This is bad for the developers _and_ bad for users.It has also been shown that lacking this sort of focus, Groovy has been steadily losing talent and user interest since the summer of 2004.  If they don't change their process soon there either won't be any developers or there won't enough users left who care.  This cycle is made worse by the fact that in every release Groovy seems to change something fundamental in the language.So telling Groovy people to set a firm date and stick to it isn't trying to force them into doing something.  It's (in my opinion) good advice that might help them save the thing.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Building a Business with Cincom Smalltalk</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:puid>
					<includedComments:author>Chawalit</includedComments:author>
					<includedComments:pubDate>2012-12-02T12:37:01-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;My view is that Groovy is indeed a voltnueer effort, and you can't  force  voltnueers to commit to a schedule.  Cedric's suggestion is to announce a date so that the group can focus themselves and really deliver something solid.  They've shown without some thing like this, the project will keep drifting forever.  This is bad for the developers _and_ bad for users.It has also been shown that lacking this sort of focus, Groovy has been steadily losing talent and user interest since the summer of 2004.  If they don't change their process soon there either won't be any developers or there won't enough users left who care.  This cycle is made worse by the fact that in every release Groovy seems to change something fundamental in the language.So telling Groovy people to set a firm date and stick to it isn't trying to force them into doing something.  It's (in my opinion) good advice that might help them save the thing.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Building a Business with Cincom Smalltalk</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Building_a_Business_with_Cincom_Smalltalk&amp;entry=3508388408</includedComments:puid>
					<includedComments:author>Chawalit</includedComments:author>
					<includedComments:pubDate>2012-12-02T12:37:02-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;My view is that Groovy is indeed a voltnueer effort, and you can't  force  voltnueers to commit to a schedule.  Cedric's suggestion is to announce a date so that the group can focus themselves and really deliver something solid.  They've shown without some thing like this, the project will keep drifting forever.  This is bad for the developers _and_ bad for users.It has also been shown that lacking this sort of focus, Groovy has been steadily losing talent and user interest since the summer of 2004.  If they don't change their process soon there either won't be any developers or there won't enough users left who care.  This cycle is made worse by the fact that in every release Groovy seems to change something fundamental in the language.So telling Groovy people to set a firm date and stick to it isn't trying to force them into doing something.  It's (in my opinion) good advice that might help them save the thing.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Building a Business with Cincom Smalltalk</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3508388408</wfw:comment>
		</item>
		<item>
			<title>STIC Conference 2012</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</link>
			<category>Conferences</category>
			<pubDate>Thu, 09 Feb 2012 10:49:53 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><strong><span style="font-size: large;">STIC Conference 2012</span></strong></p>

<p>The STIC conference (formerly known as Smalltalk Solutions) is being held from March 18-21 in Biloxi Mississippi.</p>

<p>I am often asked how this conference compares to the ESUG conference;&nbsp; where ESUG has a more academic orientation, the STIC conference is geared more towards commercial use and business success and solutions.</p>

<p>I welcome you to come to the conference! See <a href="http://www.stic.st/conferences/stic12/">here</a> to learn more, or to sign up to attend.</p>

<p>I will be involved with two presentations this year; &nbsp;a Cincom Smalltalk roadmap/news presentation, and a presentation on using Cincom Smalltalk for supporting a business.&nbsp; I welcome you to attend them!</p>

<p>Here are just a few of the presentations I think you will find interesting this year.&nbsp; Come join us! &nbsp; - Arden Thomas</p>

<ul>

<li><strong><span style="text-decoration: underline;">VisualWorks Memory Management</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Andres Valloud</p>

<ul>

<li><strong><span style="text-decoration: underline;">Building a Business with Cincom Smalltalk</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Arden Thomas, Dirk Verleyson</p>

<ul>

<li><strong><span style="text-decoration: underline;">Cincom News&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Arden Thomas</p>

<ul>

<li><strong><span style="text-decoration: underline;">Gimme Some Skin:&nbsp;&nbsp;&nbsp;&nbsp; A Way Forward for the</span> <span style="text-decoration: underline;">VisualWorks Widget Set</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Travis Griggs</p>

<ul>

<li><strong><span style="text-decoration: underline;">Cincom Security: Reloaded</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Martin Kobetic</p>

<ul>

<li><strong><span style="text-decoration: underline;">Using GLORP with</span> <span style="text-decoration: underline;">New Projects that Need to Access Legacy Data</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Mark Grinnell &amp; Andreas Hiltner</p>

<ul>

<li><strong><span style="text-decoration: underline;">The Cairo Graphics Kit: Getting Modern Graphics for Familiar Tools</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by Chris Thormgrisson</p>

<ul>

<li><strong><span style="text-decoration: underline;">Fluid Positioning in VisualWorks</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by David Buck</p>

<ul>

<li><strong><span style="text-decoration: underline;">The Challenge of Building a Runtime</span></strong></li>

</ul>

<p>&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by James Roberston</p>

<p>&nbsp;</p>
</div>]]></description>
			<guid isPermaLink="false">3506237393</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3506237393</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3506237393</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</includedComments:puid>
					<includedComments:author>Jaeho</includedComments:author>
					<includedComments:pubDate>2012-12-03T12:49:10-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;As a newcomer to ruby, the  kiellr app  is rails   I'm looking at the whole language due to that one application. I'm from a Perl background, with 10 years now as a sys admin using perl for everything. Python has never interested me, due to the incompressible syntax   usually my programs start and end life as 1-line hacks. Of course the larger programs are well-structured and indented, but it's orthogonal. So far, perl is still my perfect language. Unfortunately Larry's doing too much re-invention with Perl 6, so instead of simply adding  proper' O-O to perl5 we have effectively a new language. Who will move into this space (parser language that scales to application space)? So far it looks like ruby to me, fuelled by rails, but the language *must* fix overloading and allow curlys just like we learned in kindergarten (even SVR4 vi will parentheses match ON %).Python, to me, is a fan-boy language which is already ghetto-ised.But hey, that's just me. al.allan at eh42 dot com&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: STIC Conference 2012</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</includedComments:puid>
					<includedComments:author>Jaeho</includedComments:author>
					<includedComments:pubDate>2012-12-03T12:49:13-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;As a newcomer to ruby, the  kiellr app  is rails   I\'m looking at the whole language due to that one application. I\'m from a Perl background, with 10 years now as a sys admin using perl for everything. Python has never interested me, due to the incompressible syntax   usually my programs start and end life as 1-line hacks. Of course the larger programs are well-structured and indented, but it\'s orthogonal. So far, perl is still my perfect language. Unfortunately Larry\'s doing too much re-invention with Perl 6, so instead of simply adding  proper\' O-O to perl5 we have effectively a new language. Who will move into this space (parser language that scales to application space)? So far it looks like ruby to me, fuelled by rails, but the language *must* fix overloading and allow curlys just like we learned in kindergarten (even SVR4 vi will parentheses match ON %).Python, to me, is a fan-boy language which is already ghetto-ised.But hey, that\'s just me. al.allan at eh42 dot com&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: STIC Conference 2012</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=STIC_Conference_2012&amp;entry=3506237393</includedComments:puid>
					<includedComments:author>Jaeho</includedComments:author>
					<includedComments:pubDate>2012-12-03T12:49:14-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;As a newcomer to ruby, the  kiellr app  is rails   I'm looking at the whole language due to that one application. I'm from a Perl background, with 10 years now as a sys admin using perl for everything. Python has never interested me, due to the incompressible syntax   usually my programs start and end life as 1-line hacks. Of course the larger programs are well-structured and indented, but it's orthogonal. So far, perl is still my perfect language. Unfortunately Larry's doing too much re-invention with Perl 6, so instead of simply adding  proper' O-O to perl5 we have effectively a new language. Who will move into this space (parser language that scales to application space)? So far it looks like ruby to me, fuelled by rails, but the language *must* fix overloading and allow curlys just like we learned in kindergarten (even SVR4 vi will parentheses match ON %).Python, to me, is a fan-boy language which is already ghetto-ised.But hey, that's just me. al.allan at eh42 dot com&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: STIC Conference 2012</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3506237393</wfw:comment>
		</item>
		<item>
			<title>Cincom Maintenance Releases - updates</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Cincom_Maintenance_Releases_-_updates&amp;entry=3500703759</link>
			<category>Product</category>
			<pubDate>Wed, 07 Dec 2011 09:42:39 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Cincom Maintenance Releases &ndash; updates</p>

<p>In the last post/digest article we noted important changes that we are making in our releases and release process, to better meet customer requirements, based on feedback we are getting from customers (<a href="../../main/2011/11/cincom-smalltalk-release-cycles-fall-release-and-future-releases/">see here</a>).&nbsp; The fall Cincom Smalltalk releases will be true maintenance &ldquo;service pack&rdquo; releases, and introduced in between major releases.&nbsp;</p>

<p>We are also experimenting with the delivery mechanisms of the maintenance releases, with full installations or in-place updates.</p>

<p>The fall maintenance release full releases will be:&nbsp; ObjectStudio 8.3.1 and VisualWorks 7.8.1.</p>

<p>VisualWorks will have an optional process to update a 7.8 installation.&nbsp; The future target will be online updateable maintenance service packs.</p>

<p>What is your preference for delivery?&nbsp; Please let us know your ideas and suggestions!</p>

<p>Regards</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arden Thomas <a href="mailto:athoms@cincom.com">athoms@cincom.com</a></p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cincom Smalltalk Product manager</p>
</div>]]></description>
			<guid isPermaLink="false">3500703759</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3500703759</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3500703759</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3500703759</wfw:comment>
		</item>
		<item>
			<title>Cincom Smalltalk release cycles:  Fall Release and future releases</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Cincom_Smalltalk_release_cycles:__Fall_Release_and_future_releases&amp;entry=3498372679</link>
			<category>Product</category>
			<pubDate>Thu, 10 Nov 2011 10:11:19 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Cincom Smalltalk release cycles:&nbsp; Fall Release and future releases</p>

<p>The Cincom Smalltalk group is always looking for ways to improve our products.&nbsp; This includes adding new features, refining and improving existing features, and trimming out unused features of the product.&nbsp;</p>

<p>But we also examine and improve other related areas, such as our engineering process, and release cycles.&nbsp; Based on feedback we received from listening to and talking to our customers, we have made some changes to our release cycle.</p>

<p>Customers requested a true maintenance release that represented refinements and fixes to the major release, and did not include significant new features and functionality, which could represent more work for porting and production application certification.&nbsp;</p>

<p>Additionally, we wanted to modernize and improve delivering fixes and refinements in between major releases, more similar to how most major software products provide updates.</p>

<p>We heard our customers:&nbsp; This fall you will see service-pack maintenance releases for our Cincom Smalltalk products.&nbsp; This release is a true maintenance update as requested by Cincom Smalltalk customers.</p>

<p>In future release cycles we plan to have one major release annually along with service-pack online releases at regular intervals.&nbsp; The service-pack releases will have refinements, fixes and updates to the major releases.&nbsp;</p>

<p>The Cincom Smalltalk group (including engineering, support, marketing and product management) is always looking for better ways to serve our customer&rsquo;s needs.&nbsp; If you have ideas for new features, fixes, refinements or any suggestions for Cincom Smalltalk products, we want to hear them.&nbsp; Send your feedback and suggestions to <a href="mailto:athomas@cincom.com">athomas@cincom.com</a>.&nbsp; Thanks, &nbsp;and good Smalltalking to you!</p>

<p>Regards</p>

<p>Arden Thomas</p>

<p>Cincom Smalltalk Product manager</p>

<p>athomas@cincom.com</p>

<p>&nbsp;</p>
</div>]]></description>
			<guid isPermaLink="false">3498372679</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3498372679</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3498372679</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Cincom_Smalltalk_release_cycles:__Fall_Release_and_future_releases&amp;entry=3498372679</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Cincom_Smalltalk_release_cycles:__Fall_Release_and_future_releases&amp;entry=3498372679</includedComments:puid>
					<includedComments:author>Tarikul</includedComments:author>
					<includedComments:pubDate>2012-09-28T12:32:58-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Our website . voeics. com is constantly writing and releasing press releases for our company as well as for our members. We even have a product we sell for Press Release Writing and Distribution. . voeics. com/webstore/press. htmlOnline Press Releases do wonders for online websites.   Every time we post we see a jump in traffic to our website or to the sites we write about in our Press Releases. LauryndaCustomer Care ManagerVoices. com&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Cincom Smalltalk release cycles:  Fall Release and future releases</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3498372679</wfw:comment>
		</item>
		<item>
			<title>Farewell to an American Icon who "got" Smalltalk</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</link>
			<category>general</category>
			<pubDate>Thu, 06 Oct 2011 09:33:17 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Farewell to an American Icon who &ldquo;got&rdquo; Smalltalk</p>

<p>Although Steve Jobs had been battling cancer for a long period of time, it was still a shock to read of his passing.&nbsp;</p>

<p>Steve Jobs &ldquo;got&rdquo; Smalltalk &ndash; he understood the impact of the work done at Xerox Parc.&nbsp; His early work resulting in &ldquo;Lisa&rdquo; was done in Smalltalk.&nbsp; He brought the GUI work originally done in Smalltalk to the masses.</p>

<p>More importantly, I think Steve Jobs understood the bigger picture of what the Smalltalk research work was all about &ndash; Smalltalk is all about making computers easy to use by anyone.&nbsp; You can see this theme in Apple products, be it the Mac, iPods or iPhones.&nbsp; They are simple, easy and practical to use.&nbsp; As many of you know, making something simple and obvious is usually a lot of very hard work &ndash; it only looks simple and obvious when you get the right result.</p>

<p>Steve Jobs had an incredibly unique and amazing life story.&nbsp; His work reached millions and raised the bar for products he touched.&nbsp; He will be missed. RIP Steve Jobs.</p>
</div>]]></description>
			<guid isPermaLink="false">3495346397</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3495346397</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3495346397</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</includedComments:puid>
					<includedComments:author>Brandon</includedComments:author>
					<includedComments:pubDate>2012-09-28T15:44:38-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;I worked at Wang Laboratories (a coprorate name that belied its size at its height) in the early 1980s, and besides what were lovingly called  minicomputers  in those days, Wang also made a PC with proprietary software and a several features that appeared LATER on Macintoshes: imaging processors and retrievable sound files (not compressed to the extent they were with MP3 technology).  If only Steve Jobs had been born in New England and had been a hire by Wang, things might have been different.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Farewell to an American Icon who </includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</includedComments:puid>
					<includedComments:author>Brandon</includedComments:author>
					<includedComments:pubDate>2012-09-28T15:44:39-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;I worked at Wang Laboratories (a coprorate name that belied its size at its height) in the early 1980s, and besides what were lovingly called  minicomputers  in those days, Wang also made a PC with proprietary software and a several features that appeared LATER on Macintoshes: imaging processors and retrievable sound files (not compressed to the extent they were with MP3 technology).  If only Steve Jobs had been born in New England and had been a hire by Wang, things might have been different.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Farewell to an American Icon who </includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Farewell_to_an_American_Icon_who_got_Smalltalk&amp;entry=3495346397</includedComments:puid>
					<includedComments:author>Brandon</includedComments:author>
					<includedComments:pubDate>2012-09-28T15:44:41-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;I worked at Wang Laboratories (a coprorate name that belied its size at its height) in the early 1980s, and besides what were lovingly called  minicomputers  in those days, Wang also made a PC with proprietary software and a several features that appeared LATER on Macintoshes: imaging processors and retrievable sound files (not compressed to the extent they were with MP3 technology).  If only Steve Jobs had been born in New England and had been a hire by Wang, things might have been different.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Farewell to an American Icon who </includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3495346397</wfw:comment>
		</item>
		<item>
			<title>Performance tuning - string sorting</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</link>
			<category>Development</category>
			<pubDate>Fri, 16 Sep 2011 14:51:38 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><strong>Performance tuning - &ldquo;Know what you are sorting&rdquo;</strong></p>

<p>You probably know our Smalltalk products support CLDR based internationalization, which is incredibly useful for building applications for use with many languages deployed througout many parts of the world.</p>

<p>Unicode, the basis of internationalization frameworks, makes sorting significantly more work, computation wise.</p>

<p>Cincom engineers are working on techniques to improve the performance of full unicode sorting.</p>

<p>Even if you don&rsquo;t use the internationalization capabilities, you will probably want to know about this for potential performance tuning.&nbsp; Knowledge is power!</p>

<p><strong>StringCollationPolicy </strong>&nbsp;is a class with the following comment:</p>

<p>&ldquo;There are several collation algorithms available:</p>

<p>Fastest -- Strings are sorted based on the values of the characters. No intelligent case folding is done, so that for example, A &lt; B &lt; a &lt; b. This is very fast, but not usually what a user would expect to see.</p>

<p>Fast -- The default collation algorithm for previous versions of VisualWorks. Case folding is done, but the algorithm is otherwise relatively primitive.</p>

<p>Unicode, low priority punctuation -- Unicode compatible collation. White space and punctuation characters are ignored unless the strings can not be distinguished based on letters, accents, and upper / lower case.</p>

<p>Unicode, high priority punctuation -- Unicode compatible collation. White space and punctuation characters are treated as first-class characters, with more influence over collation than distinctions like accents and upper / lower case.&rdquo;</p>

<p>&nbsp;</p>

<p>Lets run a simple test, sorting strings from a text file:</p>

<p>file := 'FAQ.txt'.</p>

<p>stream := file asFilename readStream.</p>

<p>[stream atEnd] whileFalse:[lines add: (stream upTo: Character cr) ].</p>

<p>&nbsp;</p>

<p>StringCollationPolicy collationAlgorithm: #UnicodeWithPunctuation.</p>

<p>Transcript cr; show: [lines asSortedCollection] timeToRun printString.</p>

<p>&nbsp;</p>

<p>StringCollationPolicy collationAlgorithm: #UnicodeNormal.</p>

<p>Transcript cr; show: [lines asSortedCollection] timeToRun printString.</p>

<p>&nbsp;</p>

<p>StringCollationPolicy collationAlgorithm: #Fast.</p>

<p>Transcript cr; show: [lines asSortedCollection] timeToRun printString.</p>

<p>&nbsp;</p>

<p>StringCollationPolicy collationAlgorithm: #Fastest.</p>

<p>Transcript cr; show: [lines asSortedCollection] timeToRun printString.</p>

<p>&nbsp;</p>

<p>Results:</p>

<p>&nbsp;</p>

<p>100.806 milliseconds</p>

<p>80.348 milliseconds</p>

<p>4.105 milliseconds</p>

<p>4.15 milliseconds</p>

<p>&nbsp;</p>

<p>Good coding to you&nbsp; - Arden Thomas</p>
</div>]]></description>
			<guid isPermaLink="false">3493637498</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3493637498</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3493637498</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:puid>
					<includedComments:author>James Robertson</includedComments:author>
					<includedComments:pubDate>2011-09-16T17:09:05-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Not just that - this change impacted our UI tests when upgrading from 7.6 to 7.8.  Turns out, the default Unicode collation policy sorts the # and - characters differently than the old (now #Fast) policy.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Performance tuning - string sorting</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:puid>
					<includedComments:author>Nina</includedComments:author>
					<includedComments:pubDate>2012-12-03T07:52:33-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;ধন্যবাদ আপনার মন্তব্যের জন্য।আমি collation তা রেখেই করেছিলাম, কিন্তু ইনপুট এবং আউটপুট (php দিয়ে) করলে ঠিকই বাংলায় ইনপুট এবং আউটপুট হয়। সমস্যা হল, যখন সার্চিং রিকোয়েস্ট দেয়া হয় (অভ্র দিয়ে), নরমালি যেভাবে আমরা সার্চিং ফর্ম তৈরী করি সেভাবে (html/php), তখন দেখা যায়, সার্চিং ফর্মে (php)ঐ স্ট্রিংগুলোর ভেরিয়েবল যাচ্ছে, কিন্তু ডাটাবেইজ থেকে কোন আউটপুট নিতে পারছে না। এটাই হল মূল সমস্যা। নীচে আমার সাচিং ফর্মের নমুনা দেয়া হল:সার্চ ইনপুট ফর্ম: New Document Search For: ক্যাটেগরী:  সাব-ক্যাটেগরী:  *******************************search.php: New Document &lt;?include ( db_connect.php');//include ( comomn_lib.php');$cat=$_POST['cat'];   $subcat=$_POST['subcat'];$query=  SELECT * FROM agri WHERE cat LIKE  %$cat%' AND subcat LIKE  %$subcat%'  ;$result = mysql_query ($query); $num= mysql_num_rows($result);echo  finding: .$cat.  and  .$subcat. ";echo  Record found: .$num. ";while($row = mysql_fetch_array($result)){PRINT  Category:   ;print $row["cat"];print (   );print (  );PRINT  Subcat:   ;print $row["subcat"];print (  );PRINT  Content:   ;print $row["content"];print (  );} ?&gt;সমাধান needed, urgently.ধন্যবাদ।&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Performance tuning - string sorting</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:puid>
					<includedComments:author>Nina</includedComments:author>
					<includedComments:pubDate>2012-12-03T07:52:36-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;ধন্যবাদ আপনার মন্তব্যের জন্য।আমি collation তা রেখেই করেছিলাম, কিন্তু ইনপুট এবং আউটপুট (php দিয়ে) করলে ঠিকই বাংলায় ইনপুট এবং আউটপুট হয়। সমস্যা হল, যখন সার্চিং রিকোয়েস্ট দেয়া হয় (অভ্র দিয়ে), নরমালি যেভাবে আমরা সার্চিং ফর্ম তৈরী করি সেভাবে (html/php), তখন দেখা যায়, সার্চিং ফর্মে (php)ঐ স্ট্রিংগুলোর ভেরিয়েবল যাচ্ছে, কিন্তু ডাটাবেইজ থেকে কোন আউটপুট নিতে পারছে না। এটাই হল মূল সমস্যা। নীচে আমার সাচিং ফর্মের নমুনা দেয়া হল:সার্চ ইনপুট ফর্ম: New Document Search For: ক্যাটেগরী:  সাব-ক্যাটেগরী:  *******************************search.php: New Document &lt;?include ( db_connect.php');//include ( comomn_lib.php');$cat=$_POST['cat'];   $subcat=$_POST['subcat'];$query=  SELECT * FROM agri WHERE cat LIKE  %$cat%' AND subcat LIKE  %$subcat%'  ;$result = mysql_query ($query); $num= mysql_num_rows($result);echo  finding: .$cat.  and  .$subcat. ";echo  Record found: .$num. ";while($row = mysql_fetch_array($result)){PRINT  Category:   ;print $row["cat"];print (   );print (  );PRINT  Subcat:   ;print $row["subcat"];print (  );PRINT  Content:   ;print $row["content"];print (  );} ?&gt;সমাধান needed, urgently.ধন্যবাদ।&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Performance tuning - string sorting</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Performance_tuning_-_string_sorting&amp;entry=3493637498</includedComments:puid>
					<includedComments:author>Nina</includedComments:author>
					<includedComments:pubDate>2012-12-03T07:52:39-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;ধন্যবাদ আপনার মন্তব্যের জন্য।আমি collation তা রেখেই করেছিলাম, কিন্তু ইনপুট এবং আউটপুট (php দিয়ে) করলে ঠিকই বাংলায় ইনপুট এবং আউটপুট হয়। সমস্যা হল, যখন সার্চিং রিকোয়েস্ট দেয়া হয় (অভ্র দিয়ে), নরমালি যেভাবে আমরা সার্চিং ফর্ম তৈরী করি সেভাবে (html/php), তখন দেখা যায়, সার্চিং ফর্মে (php)ঐ স্ট্রিংগুলোর ভেরিয়েবল যাচ্ছে, কিন্তু ডাটাবেইজ থেকে কোন আউটপুট নিতে পারছে না। এটাই হল মূল সমস্যা। নীচে আমার সাচিং ফর্মের নমুনা দেয়া হল:সার্চ ইনপুট ফর্ম: New Document Search For: ক্যাটেগরী:  সাব-ক্যাটেগরী:  *******************************search.php: New Document &lt;?include ( db_connect.php');//include ( comomn_lib.php');$cat=$_POST['cat'];   $subcat=$_POST['subcat'];$query=  SELECT * FROM agri WHERE cat LIKE  %$cat%' AND subcat LIKE  %$subcat%'  ;$result = mysql_query ($query); $num= mysql_num_rows($result);echo  finding: .$cat.  and  .$subcat. ";echo  Record found: .$num. ";while($row = mysql_fetch_array($result)){PRINT  Category:   ;print $row["cat"];print (   );print (  );PRINT  Subcat:   ;print $row["subcat"];print (  );PRINT  Content:   ;print $row["content"];print (  );} ?&gt;সমাধান needed, urgently.ধন্যবাদ।&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Performance tuning - string sorting</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3493637498</wfw:comment>
		</item>
		<item>
			<title>Future Predictions</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Future_Predictions&amp;entry=3487835692</link>
			<category>general</category>
			<pubDate>Mon, 11 Jul 2011 11:14:52 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><strong>Future Predictions</strong></p>

<p>Most of you are probably reading this on or through the internet.&nbsp; Twenty to thirty years ago, who could have predicted the impact the internet and the many technologies developed at Xerox PARC would have on us today?</p>

<p>Most predictions seem to be advancements of things we have some familiarity or a grasp on already.&nbsp; Why?&nbsp; It is much easier that way.&nbsp; Ask for predictions about the future in transportation and you will get predictions of cars that can drive themselves, have advanced power systems (battery, fuel cells, etc). The point is, they are all basically derivative of what we have today.&nbsp; To really envision something completely different is a much harder task.&nbsp; &nbsp;For transportation, a non-evolutionary future would be something like a transporter (from Star-Trek science fiction) or something equally completely different than what we have today.&nbsp; Maybe virtual realities can advance so much that much of today&rsquo;s actual physical travel (at least for business perhaps) would be unnecessary?</p>

<p>Predicting the internet, or even the graphical user interface are examples of things so different, it is hard to imagine it, or even see it coming.&nbsp;</p>

<p>This brings me to a man and a well-known quote:&nbsp; &ldquo;The best way to predict the future is to invent it&rdquo; &ndash; Alan Kay.</p>

<p>Alan, as most of you are aware, is the father of Smalltalk and object-oriented programming.&nbsp; Alan and others at Xerox Parc were responsible for &ldquo;game changing&rdquo; new technologies.</p>

<p>Alan will be speaking this month at <a href="http://www.hpi.uni-potsdam.de/news/beitrag/computerpionier-alan-kay-wird-hpi-fellow.html">HPI</a>.</p>

<p>I think that one of the best things about Smalltalk is that it has remained linked to innovation.</p>

<p>Can you imagine any game changing ideas of the future in software?&nbsp; Invent it!&nbsp; Smalltalk is a good place to start.</p>

<p>- Arden</p>
</div>]]></description>
			<guid isPermaLink="false">3487835692</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3487835692</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3487835692</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Future_Predictions&amp;entry=3487835692</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Future_Predictions&amp;entry=3487835692</includedComments:puid>
					<includedComments:author>Shirley</includedComments:author>
					<includedComments:pubDate>2012-12-02T10:11:28-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Why do I bother clalnig up people when I can just read this!&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Future Predictions</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3487835692</wfw:comment>
		</item>
		<item>
			<title>The Project Launcher</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=The_Project_Launcher&amp;entry=3485669046</link>
			<category>Development</category>
			<pubDate>Thu, 16 Jun 2011 09:24:06 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>The Project Launcher</p>

<p>A couple things always bothered me about our installations on Windows and Mac platforms.&nbsp; We would have a very attractive icon installed on the desktop, but I would never use it.&nbsp; I would instead, like I believe most folks do, go to my image directory, and double click on an image in order to start it up. Another problem - if a newbie was exploring or evaluating the product, they would use the icon (it launches visual.im), but they would not likely be aware of the typical use pattern of;&nbsp; start visual.im, save as myProject.im, use the image.&nbsp;&nbsp; More likely they would repeatedly use the icon, which would mean they would never likely start with a truly clean image, and it might add confusion about how to best use the product.</p>

<p>Enter the Project Launcher</p>

<p>The goal of the Project Launcher is to make good use of that desktop or launcher icon, and provide utility to both new and experienced users of the product.</p>

<p>What does it do?&nbsp; Basically it does three things (at least for now, much more can be added);&nbsp;</p>

<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it allows you to create a &ldquo;project&rdquo; by saving a clean image as your project.im</p>

<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it gives you a list of your projects (images) and lets you launch the project (image)</p>

<p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It stores things in the right place by creating a directory in the users &ldquo;write&rdquo; space&nbsp; (Where the product installs is supposed to be read only)</p>

<p>For the experienced user, this is a convenient place to quickly and easily launch an image they wish to work on.&nbsp; For those developers who like the current way they start images, the project launcher is completely optional, and not a forced choice.</p>

<p>For a new user it manages or teaches the process of naming a project (image) and about keeping a clean starting point.&nbsp; It also provides a central point to launch or start any of their project images.</p>

<p>How do you access the project launcher?&nbsp; Simply click on the &ldquo;molecule&rdquo; like product icon that gets installed with the product.</p>

<p>Next time, I&rsquo;ll discuss more about the project launcher, including using automated builds with the project launcher.</p>

<p>Good Smalltalking to you!</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arden Thomas</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cincom Smalltalk Product manager</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; athomas@cincom.com</p>
</div>]]></description>
			<guid isPermaLink="false">3485669046</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3485669046</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3485669046</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=The_Project_Launcher&amp;entry=3485669046</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=The_Project_Launcher&amp;entry=3485669046</includedComments:puid>
					<includedComments:author>Madhu</includedComments:author>
					<includedComments:pubDate>2011-06-17T13:39:10-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;I really like the project launcher. Unfortunately, this is only available for VisualWorks, it would be nice if its available for ObjectStudio too. Right now as a newbie to ObjectStudio 83, I ended up creating different shortcuts on my Windows desktop for starting different images.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: The Project Launcher</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3485669046</wfw:comment>
		</item>
		<item>
			<title>The "Smalltalk" of Super Cars</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=The_Smalltalk_of_Super_Cars&amp;entry=3483012327</link>
			<category>Cars</category>
			<pubDate>Mon, 16 May 2011 15:25:27 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>The &ldquo;Smalltalk &ldquo; of super-cars.</p>

<p>I enjoy occasionally noting things with design principles similar to Smalltalk &ndash; a simpler &ldquo;less is more&rdquo; approach, that focuses on what&rsquo;s important, and leave out what is not, combined with careful design.</p>

<p>So, I was watching a rerun of the popular BBC show, &ldquo;Top Gear&rdquo; last week.</p>

<p>They included a race between two supercars &ndash; A McLaren F1 (a design I have long admired) which was introduced in 1992, and a Bugatti Veyron, a car introduced in 2003, and at 2.6M, the most expensive production car in the world.</p>

<p>Both cars are amazing feats of engineering and design, but both are rather different in their approach.</p>

<p>The Veyron takes a &ldquo;more-is-more&rdquo; approach.&nbsp; Think one turbocharger is good?&nbsp; Then two must be better &ndash; and the Veyron uses <strong><em>four</em></strong>!&nbsp; Twelve cylinders is quite a number, so the Veyron uses sixteen. The Veyron&rsquo;s motor puts out roughly 1000 horsepower.&nbsp; How to keep it all cool?&nbsp; The Veyron has <strong><em>ten</em></strong> radiators total! The Veyron has a 7 speed DSG transmission (I do like the DSG design), all wheel drive, and weighs in at 4162 lbs.&nbsp; &nbsp;The car is amazing &ndash; a technological tour-de-force, but I&rsquo;d hate to get the maintenance bill! :-)</p>

<p>Contrast that with the McLaren F1.&nbsp; The first thing you notice is the innovative seating.&nbsp; The driver sits in the <strong><em>center</em></strong> of the car! (how cool is that!?), with two flanking and rearward passenger seats.&nbsp; The F1 was the first production car to use a carbon fiber chassis.&nbsp; Carbon fiber is light and strong, and the F1, at 2513 lbs., weighs much less than the Veyron does. &nbsp;The F1 uses a BMW V12 engine, naturally aspirated (627 hp, no turbochargers), and a six speed manual transmission.&nbsp; &nbsp;&nbsp;Air is carefully handled for ground effects, and high pressure zones created by the spoiler are used to cool the brakes &ndash; nice integration.</p>

<p>The design philosophy of the F1 seems to focus on carefully designing and integrating only the important things.&nbsp; The F1 is also notable for what it doesn&rsquo;t have &ndash; no all-wheel-drive, no ABS braking or traction control, no turbochargers &ndash; simply unnecessary with a good design of the fundamentals. It is meant to be a drivers car. &nbsp;&nbsp;Good design, less-is-more, and innovation: &nbsp;definitely a Smalltalk approach! &nbsp;:-)</p>

<p>So how did the 1 mile race go?&nbsp; As always, top gear is very entertaining.&nbsp; Off the line, the McLaren walked away from the Bugatti, leaving the Bugatti pilot exclaiming &ldquo;How is this happening!?&rdquo;&nbsp; At about 1/3 of a mile, the much higher horsepower of the Veyron overtook the McLaren.&nbsp; See it here:&nbsp;<a href="http://www.youtube.com/watch?v=RXqSedWSu2k">McLaren vs Bugatti</a></p>

<p>Of course, like computer languages,&nbsp; performance cars bring passion and strong opinions, such as the McLaren boss declaring the Veyron a &ldquo;piece of junk&rdquo;, and &ldquo;described how the V12-powered F1 trounced the 16-cylinder Veyron so many times off the line that the filming crew got frustrated because his car was supposed to be beaten. Eventually the Veyron stopped dropping its clutch on take-off and was able to catch up to the McLaren F1&rdquo;.&nbsp;</p>

<p>Read &nbsp;more:&nbsp;<a href="http://www.worldcarfans.com/110041325639/bugatti-veyron-is-a-piece-of-junk---mclaren-boss-ron#ixzz1MXJtgJ46">Piece of junk</a></p>

<p>I suppose you could make an argument for either machine winning.&nbsp; Still, the McLaren, which was designed over 15 years earlier than the Veyron, is amazing.&nbsp; Credit the F1 with a simpler, easier to use and maintain design. &nbsp;I admire the McLaren, and its design principles, the most.</p>

<p>Other notes:&nbsp; McLaren&rsquo;s latest car is the MP4-12C, which is the spiritual successor to the F1. &nbsp;The <a href="http://www.worldcarfans.com/110031825200/mclaren-mp4-12c---full-specs-announced-video">MP4-12C</a> &nbsp;adds technology and more innovations to the F1 principles, such as a type of &ldquo;brake steering&rdquo; for more driver control. The F1 still measures up well against the MP4-12C, which incorporates more modern technology, <em>however</em>, the 12C will not be a lone child &ndash; expect more potent variants in the future!</p>
</div>]]></description>
			<guid isPermaLink="false">3483012327</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3483012327</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3483012327</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3483012327</wfw:comment>
		</item>
		<item>
			<title>Polycephaly - finding the sweet spot</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Polycephaly_-_finding_the_sweet_spot&amp;entry=3480310343</link>
			<category>Development</category>
			<pubDate>Fri, 15 Apr 2011 08:52:23 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Polycephaly &ndash; finding the sweet spot</p>

<p>Recently I have written posts about the benefits of using Polycephaly.&nbsp; If you were at Smalltalk Solution 2011, you probably saw my presentation about using it, and descriptions of experiments I ran.</p>

<p>The sweet spot refers to the question: &ldquo;How many virtual machines should I run (using Polycephaly) to maximize my throughput?&rdquo;.&nbsp;</p>

<p>Many times you can run iterations of the test, using a different number of vm&rsquo;s for each run and benchmark it.</p>

<p>Another general approach is to use a rule of thumb guide of 1.5 vm&rsquo;s per core.&nbsp; This seems to work pretty well.</p>

<p>Some observations:</p>

<p>The 1.5 vm&rsquo;s per core seems to work pretty well, maybe <em>too</em> well!&nbsp; It may be the ideal for maximizing the throughput on a server.&nbsp; However, I ran into an issue using this.&nbsp; Using 1.5 vm&rsquo;s per core so thoroughly utilized the full power of the cpu cores, that I rendered my machine largely unresponsive for browsing the web, reading email, or running another application &ndash; a victim of my own success! :-)</p>

<p>My main machine has a quad core cpu, so I was running 6 additional vm&rsquo;s.&nbsp; In the task manager, a process is maxing out the core when it show the maximum 25% utilization (25% overall of cpu).&nbsp; Running 1.5 vm&rsquo;s per core means that when a vm takes a &ldquo;breather&rdquo; &ndash; performs IO or some other non cpu intensive task, that another process is there waiting to utilize the cpu to its full extent.</p>

<p>Solution?</p>

<p>I found the solution to be fairly obvious.&nbsp; If I wished to make use of my machine for other tasks, I simply ran three virtual machines, to do the work.&nbsp; This meant that three vm&rsquo;s were usually maximizing three cores of the cpu;&nbsp; the main image collected information from these three, but did not overly tax the cpu&rsquo;s fourth core when it was allocated time.&nbsp; The fourth core was essentially available to make my machine responsive in browsing the web, reading email, or running another application.&nbsp; So for a small reduction in maximum throughput, the benefit was a usable versus non-usable computer, a very beneficial tradeoff!</p>

<p>Have you come across any gems or keen insights in using Polycephaly?&nbsp; Please share!</p>

<p>Regards</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arden Thomas</p>

<p>athomas@cincom.com</p>

<p>&nbsp;</p>
</div>]]></description>
			<guid isPermaLink="false">3480310343</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3480310343</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3480310343</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3480310343</wfw:comment>
		</item>
		<item>
			<title>Polycephaly - What is it, how do I use it?</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Polycephaly_-_What_is_it,_how_do_I_use_it&amp;entry=3477207501</link>
			<category>Development</category>
			<pubDate>Thu, 10 Mar 2011 10:58:21 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Polycephaly</p>

<p>This month I will be giving a presentation at Smalltalk Solutions about Polycephaly, the Cincom Smalltalk framework for leveraging multi-core processors.&nbsp; Come see the presentation, if you can, for more information and results of experiments with Polycephaly.</p>

<p>I&rsquo;d like to see more customers benefitting from the advantages of Polycephaly, so I thought an example would be useful.</p>

<p>Suppose your company processes records for all of its customers, daily.&nbsp; (This could be doing any kind of processing, as this is a generic example).</p>

<p>First, we need a way to segment our customers, as a basis for processing groups of customers concurrently.&nbsp; A simple way to divide customers would be by the first letter of their last name.&nbsp; So we will process all customers whose last name begins with &ldquo;A&rdquo; as one group, &ldquo;B&rdquo; as another etc, &hellip; &ldquo;Z&rdquo;.</p>

<p>Let&rsquo;s start with a method that gives us a collection of &ldquo;A&rdquo; to &ldquo;Z&rdquo;:</p>

<p><strong>aToZ</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &ldquo;Letters A to Z&rdquo;</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "This is a SharedQueue for managing concurrent access"</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | queue |</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queue := SharedQueue new: 26.</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (10 to: 35) do:[:ea | queue nextPut: (String with: (Character digitValue: ea)) ].</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^queue</strong></p>

<p>&nbsp;</p>

<p>Now let&rsquo;s create a method to control and distribute the processing, and call it processAToZ</p>

<p>&nbsp;<strong>processAToZ</strong></p>

<p><strong>"self processAToZ"</strong></p>

<p><strong>"This is a generalized example of how (one way) to use Polycephaly for using multiple cores to solve a problem.</strong></p>

<p><strong>This is an example of breaking our universe into pieces to process by letters - for example it could process all customers with last names beginning with 'A', all with 'B', etc, separately."</strong></p>

<p><strong>&nbsp;</strong></p>

<p><strong>| letterQueue done results vms |</strong></p>

<p><strong>letterQueue := self aToZ.&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "A collection (SharedQueue) of letters A .. Z "</strong></p>

<p><strong>done := Semaphore new.&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "To make sure we wait until all processing is complete before proceeding"</strong></p>

<p><strong>results := SharedQueue new.&nbsp; &nbsp;&nbsp;&nbsp; "Use SharedQueues for safe concurrent access"</strong></p>

<p><strong>vms := Polycephaly.VirtualMachines new: 3.&nbsp;&nbsp; "Create three headless processing images - benchmark different sizes to see what works best for you"</strong></p>

<p><strong>&nbsp;</strong></p>

<p><strong>"below we fork as many processes as we have machines (headless processing images).&nbsp; </strong></p>

<p><strong>Each process grabs a letter, then sends it to the machine for processing</strong></p>

<p><strong>&nbsp;</strong></p>

<p><strong>Results are returned and added, and then another letter is grabbed, until there are no more.</strong></p>

<p><strong>Only after there are no more letters to process, it releases the machine (closes the image) and signals its completion"</strong></p>

<p><strong>&nbsp;</strong></p>

<p><strong>vms machines do: [:machine |</strong></p>

<p><strong>[ | letter |&nbsp;&nbsp; </strong></p>

<p><strong>[letter := letterQueue nextAvailable.</strong></p>

<p><strong>&nbsp;letter isNil] whileFalse: [results nextPut: (machine do: [:ch | ProcessAtoZ&nbsp; processLetter: ch ]&nbsp; with:letter)].</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; machine release.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Shut down the vm"</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; done signal] fork].&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Signal that the machine has completed its work"</strong></p>

<p><strong>&nbsp;</strong></p>

<p><strong>vms machines &nbsp;size timesRepeat: [done wait].&nbsp; "Wait until each machine has reported in as completed"</strong></p>

<p><strong>&nbsp;</strong></p>

<p><strong>^ results</strong></p>

<p>&nbsp;</p>

<p>That&rsquo;s it!&nbsp; OK lets implement a trivial #processLetter: so this does something we can see:</p>

<p>&nbsp;</p>

<p><strong>processLetter: letter</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | letters |</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; letters := OrderedCollection new: 100.</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 to: 100 do:[:n | letters add: letter ].</strong></p>

<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^letters</strong></p>

<p><strong>&nbsp;</strong></p>

<p>If you want a parcel with this code, send me an email&nbsp; <a href="mailto:athomas@cincom.com">athomas@cincom.com</a></p>

<p>&nbsp;</p>

<p>To use this code, start an image, load Polycephaly, load this parcel, then <em>save the image</em>!!! (since the headless images started are copies of this main image, they will not work with Polycephaly, nor be able to do #processLetter: unless you first save the image), run my #test method (in my pcl) to make sure poly is working properly, then inspect the results of #processAToZ.&nbsp;</p>

<p>&nbsp;Congratulations!&nbsp; You now have a means of boosting performance on some of your applications!</p>

<p>&nbsp;I hope you find this interesting and valuable.</p>

<p>&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arden</p>
</div>]]></description>
			<guid isPermaLink="false">3477207501</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3477207501</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3477207501</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Polycephaly_-_What_is_it,_how_do_I_use_it&amp;entry=3477207501</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Polycephaly_-_What_is_it,_how_do_I_use_it&amp;entry=3477207501</includedComments:puid>
					<includedComments:author>Gwenelda</includedComments:author>
					<includedComments:pubDate>2012-12-02T09:17:54-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;What I find so interesting is you could never find this anywehre else.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Polycephaly - What is it, how do I use it?</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3477207501</wfw:comment>
		</item>
		<item>
			<title>Simple Deployment</title>
			<link>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</link>
			<category>Development</category>
			<pubDate>Wed, 16 Feb 2011 11:00:33 GMT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Deployment experiments for simpler deployment.</p>

<p>This month I wanted to share some thoughts on deployment, and get some comments, ideas and feedback.</p>

<p>Deployment in VisualWorks (should apply to ObjectStudio too) typically involves using Runtime Packager, which is a very capable, but non-trivial process.</p>

<p>So what is the minimal we can do if we want simple and trivial deployment?&nbsp; It would probably be used for for small applications or for testing.</p>

<p>To understand this better, I set out to experiment with deployment of an application, with the goal of making it as simple as possible. Here is what I did, fairly explicitly, in case you want to reproduce it:</p>

<p>Create a runtime image:</p>

<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start Base.im (found in /preview/packaging, save as deploy.im)</p>

<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Load the runtimepackager parcel</p>

<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start runtimepackager (tools -&gt; Runtime Packager)</p>

<p>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Click &lsquo;next&rsquo; until I am at the last stet, &lsquo;Strip and Save image&rsquo;, save the image (checkpoint)</p>

<p>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Click &lsquo;Do this step&rsquo;</p>

<p>6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Move runtime.im to my image directory</p>

<p>Create an application parcel:</p>

<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start visual.im, save as dev.im</p>

<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Load StoreForPostgresQL</p>

<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connect to Cincom public repository, browse published items</p>

<p>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Load &lsquo;SpiderSolitaire 1.7 released&rsquo; bundle (Solitaire application by Dave Buck)</p>

<p>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open system browser, find SpiderSolitaire</p>

<p>6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Right click on SpiderSolitaire, choose &lsquo;publish as parcel&rsquo;.</p>

<p>7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save and quit image</p>

<p>Create a cmd file (Windows) to start the application (Solitaire.cmd) :</p>

<p>@echo off</p>

<p>@Start ..\bin\win\visual.exe runtime.im -pcl SpiderSolitaire.pcl -doit 'SpiderSolitaireUI open'</p>

<p>&nbsp;</p>

<p>Launch application, try it, close it, verify engine has shut down &nbsp;&hellip; all good!</p>

<p>OK, now that I have a runtime.im, simple creation / deployment looks like this:</p>

<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Publish a parcel</p>

<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create the cmd file</p>

<p>Thats it!&nbsp; nSimple and effective.&nbsp; Also note if you need to load several parcels, you can use the &ndash;cnf command line option, and list the parcels in a file.</p>

<p>Questions:</p>

<p>Should we provide a runtime.im version of base to save some steps?</p>

<p>I&rsquo;d like the application start not to show the command prompt window, but have not found the right parameter.&nbsp; Share if you know, comments welcome!</p>
</div>]]></description>
			<guid isPermaLink="false">3475306833</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIPBServlet?guid=3475306833</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/arden/blogView?guid=3475306833</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:puid>
					<includedComments:author>James Robertson</includedComments:author>
					<includedComments:pubDate>2011-02-16T11:40:31-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;I outlined a simpler process here:&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.jarober.com/blog/blogView?entry=3472705758"&gt;[link 1]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The tool I used is in the Public Store Repository. &lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.jarober.com/blog/blogView?entry=3472705758"&gt;[1 http://www.jarober.com/blog/blogView?entry=3472705758]&lt;/a&gt;&lt;br/&gt;
&lt;/p&gt;


&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Simple Deployment</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:puid>
					<includedComments:author>Arden</includedComments:author>
					<includedComments:pubDate>2011-02-16T12:44:36-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Hi Jim;&lt;/p&gt;&lt;p&gt;Thanks for the feedback and links.&lt;/p&gt;&lt;p&gt;Jim's alternative deployment does not use base.im or RTP (Runtime Packager) and takes a different (but valid) approach.&lt;/p&gt;&lt;p&gt;I think this approach is simple and straightforward after all the scripts are created, and is a valid approach for large scale deployment.  There is a lot of flexibility with scripts.&lt;/p&gt;&lt;p&gt;I think the approach above (publish parcel, write cmd file to launch) is still the simplest basic approach I have seen so far.&lt;/p&gt;&lt;p&gt;    - Arden&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Simple Deployment</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:puid>
					<includedComments:author>Steven Kelly</includedComments:author>
					<includedComments:pubDate>2011-02-18T11:30:58-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;At work I use something close to what Jim does, but without a tool front end to kick the scripts off. Instead I used to open the 3 scripts we use into a workspace in a virgin visual.im and run them there; now I have a command-line that automates that. The first script loads Store and other parcels and reconciles them with our Store repository. The second script loads the bundles and packages we need from Store, and stores some version logging info. The third script unloads development tools and runs through the steps of Runtime Packager (it's easy enough to automate: just send messages to an open RTP ApplicationModel), and produces the final set of images (we have several, parameterised partly by platform and partly by functionality).&lt;/p&gt;&lt;p&gt;If I was building a new mechanism for work, I'd make at least the second two scripts into normal code which would be loaded from Store. The latter parts of the first script could also be in Store, but the start has to be a simple text file. A nice addition to VW command line options would be to allow loading and running a workspace script: the UI works rather differently for code loaded on the command line compared to code run by hand from a workspace, and having the workspace makes debugging any problems and continuing a lot easier.&lt;/p&gt;&lt;p&gt;At home I have something like Arden describes, but with more flexibility and without RTP. I've made .stx files have an association in Windows that starts visual.im and loads a generic piece of builder code, which then processes the .stx file. By default, processing an stx file will look for a settings file and/or parcel of the same name, load them, and open the ApplicationModel of the same name (closing the launcher and workspace). The contents of the stx file can customise that (IIRC they're command-line parameters, one per line, I think like a .cnf file. If a parameter is mentioned there, it's run instead of the default action for that parameter. Of course with -doit etc. an stx file can run arbitrary Smalltalk too). &lt;/p&gt;&lt;p&gt;This approach has worked well, and lets me keep my several home projects/apps as little parcel files, rather than having a whole image for each. I can just run the app by a shortcut to the stx file, and use it as normal. If I want to develop, I press F12 to get a launcher and continue as normal, saving  the parcel at the end. &lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Simple Deployment</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:puid>
					<includedComments:author>james Robertson</includedComments:author>
					<includedComments:pubDate>2011-02-18T13:02:32-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;At work, I built a front end to the script runner in that screencast.  What it does is allow the build person (we have a guy who does that) do the following:&lt;/p&gt;&lt;p&gt;pick an image to start from&lt;/p&gt;&lt;p&gt;pick a package/bundle version to use as the build&lt;/p&gt;&lt;p&gt;select from one of the multiple startup configurations (and thus set up #main)&lt;/p&gt;&lt;p&gt;Then he hits a button.  The build scripts are generated (and can be hand edited if desired).  Hit a second button and the whole thing runs to completion, logging results&lt;/p&gt;&lt;p&gt;At home, for BottomFeeder, I just do something like&lt;/p&gt;&lt;p&gt;visual visual.im -filein buildScriptHere.st&lt;/p&gt;&lt;p&gt;My basic rule of thumb at this point: avoid RTP.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Simple Deployment</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:puid>
					<includedComments:author>emptist</includedComments:author>
					<includedComments:pubDate>2011-03-07T06:45:32-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;For windows/wine, I have been using another approach that might be simpler:&lt;/p&gt;&lt;p&gt;A. Build a general deploy image, say runtime.im, with all necessary packages loaded in and keep all of them. Using RTP only to set runtime memory requirements. No other settings needed. &lt;/p&gt;&lt;p&gt;B. Make a folder app_name to contain the runtime.im and an object engine renamed to runtime.exe, the required dlls, and a plain text file runtime.cnf with a single line in it telling the application parcel name:&lt;/p&gt;&lt;p&gt;app.pcl&lt;/p&gt;&lt;p&gt;C. Build the application into a bundle, and make sure a subclass of UserApplication has been built within it, implementing a #main, a setUp and a tearDown method which tells the system how to run the application. Then publish the bundle as a parcel without source. Say app.pcl.&lt;/p&gt;&lt;p&gt;(in the main method I usually include a method for downloading updating parcel from some ftp site I have put new app.pcl on)&lt;/p&gt;&lt;p&gt;D. Now just put app.pcl into the app_name folder, and run runtime.&lt;/p&gt;&lt;p&gt;Please note that the basic folder can be reused by copy and rename for any applications which use app.pcl as deploy/update parcel name.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Simple Deployment</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/userblogs/arden/blogView?showComments=true&amp;printTitle=Simple_Deployment&amp;entry=3475306833</includedComments:puid>
					<includedComments:author>emptist</includedComments:author>
					<includedComments:pubDate>2011-03-08T06:28:56-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Well I was a bit hurry and failed to mention that, in step B, the application bundle should not be loaded. Only other useful packages for most applications.&lt;/p&gt;&lt;p&gt;That is the deploying image doesn't contain the application at all. The application is actually deployed in a app.pcl and loaded each time runing runtime.exe.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Simple Deployment</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/arden/servlet/CommentAPIServlet?guid=3475306833</wfw:comment>
		</item>
	</channel>
</rss>
