<?xml version='1.0' encoding='UTF-8' ?>
<rss version="2.0" 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: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>Smalltalk Tidbits, Industry Rants: category: esug2004</title>
		<link>http://www.cincomsmalltalk.com/blog/blogView</link>
		<description>Cincom Product Manager</description>
		<webMaster>jrobertson@cincom.com</webMaster>
		<lastBuildDate>Sun, 30 Jul 2006 23:47:44 EDT</lastBuildDate>
		<image>
			<url>http://www.cincomsmalltalk.com/images/cst_small.jpg</url>
			<title>Smalltalk Tidbits, Industry Rants</title>
			<link>http://www.cincomsmalltalk.com/blog/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:jrobertson@cincom.com"></admin:errorReportsTo>
		<dc:language>en-us</dc:language>
		<dc:creator>James A. Robertson</dc:creator>
		<dc:rights>Copyright 2005 Cincom Systems, Inc.</dc:rights>
		<dc:date>2006-07-30T23:47:44-05:00</dc:date>
		<icbm:latitude>39.214103</icbm:latitude>
		<icbm:longitude>-76.878807</icbm:longitude>
		<item>
			<title>End of ESUG 2004</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272260136</link>
			<category>esug2004</category>
			<pubDate>Fri, 10 Sep 2004 09:08:56 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>Well, that wraps ESUG 2004.  It's been a good two days - I wish I could have seen the first two.  I'll be linking Niall's and John's reporting as I get it.  On to Camp Smalltalk, and then home.</p>
</div>]]></description>
			<guid isPermaLink="false">3272260136</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272260136</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272260136</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272260136</wfw:comment>
		</item>
		<item>
			<title>Moose - an extensible re-engineering environment</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</link>
			<category>esug2004</category>
			<pubDate>Fri, 10 Sep 2004 08:48:23 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>Stephanne Ducasse and Michele Lanza are behind Moose - one of their grad students, Tudor Girba is up to discuss <a href="http://www.iam.unibe.ch/~scg/Research/Moose/">Moose</a>.  It was started in 1997 at the University of Berne.  So to start - we define some basic terms.</p>

<ul>
<li> Re-Engineering - you go from idea, to design, to code.  As time goes by, you end up losing the original structure and cleanliness.  Re-Engineering is the process of getting back in the right direction.  </li>
</ul>
<p>A high level view (i.e., a class diagram) does not qualify as reverse engineering.  Moose is a re-engineering tool.  It can be use to create metrics, do evolution analysis, and show diagrams of the code.  The basic metrics can answer questions like - How much code, how many classes, how many methods per class, how many lines per method, etc.</p>

<p>Visualization can provide a quick overview.  A spatial orientation can give you a quick look at what you have, allowing you to use other tools once you focus in.  </p>

<p>Evolution analysis looks at how the code evolved (how did we get from <i>there</i> to <i>here</i>.  History can tell you which parts are change prone, and can tell you how you arrived in the place you are at now.</p>

<p>Moose is a VisualWorks tool.  By selecting a specific version of the code (a model), we can examine various aspects of the system.  Moose is an <b>environment</b> for re-engineering.  It can work with C, C++, Java, Cobol, VisualWorks Smalltalk, and Squeak Smalltalk.  It could be extended to deal with other languages as well.  It's available under the BSD license (free).  It's research driven, but has been validated in industry.  The rest of this presentation is a demo - you can get a lot of that information at the <a href="http://www.iam.unibe.ch/~scg/Research/Moose/">website</a> - and you can <a href="http://www.iam.unibe.ch/~scg/Research/Moose/download.html">download it here</a></p></p>
</div>]]></description>
			<guid isPermaLink="false">3272258903</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272258903</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272258903</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</includedComments:puid>
					<includedComments:author>Kartik Agaram</includedComments:author>
					<includedComments:pubDate>2004-09-10T13:00:44-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;I'm a little confused by the notion of source code as applicable to Smalltalk projects:
&lt;ol&gt;
&lt;li&gt; Is all the source for Moose in the parcel file on their download page (i.e. browseable from within visual works)?&lt;/li&gt;
&lt;li&gt; Is all the source for Visual Works browseable from within Visual Works?&lt;/li&gt;
&lt;/ol&gt;
If 1 is true but 2 is false, it seems one doesn't have quite the extent of freedom one associates with source code. Also, if 2 is true, how does Visual Works bootstrap to the point where it can interpret smalltalk? I assume there is some small bootstrap portion that is distributed in binary form?


&lt;/p&gt;
&lt;p&gt;These are basic questions; I apologize. It's just that the idea of binary source code seems very alien to me.    &lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title></includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</includedComments:puid>
					<includedComments:author>
James Robertson</includedComments:author>
					<includedComments:pubDate>2004-09-10T18:53:45-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Comment on &lt;a href="
http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903"&gt;
Moose - an extensible re-engineering environment&lt;/a&gt;  by 
James Robertson


&lt;ol&gt;
&lt;li&gt; All the source for Moose is in the loadable parcel file on the download page (and is thus browseable in VW)&lt;/li&gt;
&lt;li&gt; All the source for VW itself is browseable (and changeable) from within VW&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;VW consists of a bytecode based image, and a virtual machine.  The VM is written in C; everything else is Smalltalk.&lt;/p&gt;&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: 
Moose - an extensible re-engineering environment</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903</includedComments:puid>
					<includedComments:author>
David Buck</includedComments:author>
					<includedComments:pubDate>2004-09-11T08:11:22-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Comment on &lt;a href="
http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272258903"&gt;
Moose - an extensible re-engineering environment&lt;/a&gt;  by 
David Buck


See my blog article &lt;a href="http://www.cincomsmalltalk.com/userblogs/buck/blogView?showComments=true&amp;entry=3272305076"&gt;here&lt;/a&gt; for a discussion of Smalltalk bootstrapping.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: 
Moose - an extensible re-engineering environment</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272258903</wfw:comment>
		</item>
		<item>
			<title>Markus Denker - AOSTA</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272250976</link>
			<category>esug2004</category>
			<pubDate>Fri, 10 Sep 2004 06:36:16 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>Up next - Markus Denker on AOSTA.  Markus is doing this work for Squeak.  We already have JIT systems for the commercial systems, and even an (unreleased) JIT for Squeak.  What this is about is "hotspotting".  This is all done at the <b>Smalltalk</b> level, using the profile information created by the JIT compiler.  The system would compile to optimized bytecode, but get turned off for debugging purposes.  The main areas:</p>

<ul>
<li> Profiled execution of (unoptimized) areas from the JIT</li>
<li> Collect type information from the PIC (Polymorphic Inline Cache).  Needs to be readable at the Smalltalk level</li>
<li> Inlining (from the above)</li>
</ul>
<p>Where is it?  The design is done, but not tested,  The bytecode transformations (to SSA) is done, and works in VisualWorks.  The backend - a transformation out of SSA is being done now, with a simple code generator (In Squeak - works with some examples now).  SSA stands for Static Simple Assignment.  </p>

<p>Two steps:</p>

<ul>
<li> Deconstruct the SSA</li>
<li> Generate Bytecode</li>
</ul>
<p>The main problem that can crop up is that some optimizations end up with wrong results - you need to fix that up - which makes the algorithm more complex.  There's an answer to this called the <b>Phi-Congruency Method</b>.  

<p>To do - lots - dynamic deoptimization (for debugging).  Possible experiments:</p>

<ul>
<li> AOSTA for Squeak with a JIT</li>
<li> Does it make sense for an interpreter?</li>
<li> Exupery as a backend?</li>
</ul>
<p>With a byte code to byte code translator, what else is possible?  </p>

<ul>
<li> Enables more late binding</li>
<ul>
<li> An API for changing the language semantics and implementation <b>at runtime</b> (for example, the meaning of inheritance)</li>
<li> Squeak has MetaClassTalk, but it's <b>slow</b></li>
<li> iVARS are accessed via offsets</li>
<li> offsets calculated at compile time</li>
<li> makes changes and experiments harder</li>
</ul>
<li> Make a MOP more practical</li>
<li> Allows a much simpler system</li>
</ul>
<p>Bottom line - could enable a lot of things that aren't (directly) related to performance.</p></p>
</div>]]></description>
			<guid isPermaLink="false">3272250976</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272250976</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272250976</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272250976</wfw:comment>
		</item>
		<item>
			<title>Gemstone vs. an RDBMS</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272246998</link>
			<category>esug2004</category>
			<pubDate>Fri, 10 Sep 2004 05:29:58 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>Petr Stepanek is talking about Gemstone, and comparing it to relational technology.  So - starting with the object model.  If you are using Smalltalk, then you have one - the example in this case is a call center (CRM) system.  The problem is that the underlying data (object) model is not immediately known, and will be changing over time.  This customer wants <i>live</i> development on a 24x7 system.  They have looked at various commercial CRM systems, and have not been impressed - so they opted for a custom system.  </p>

<p>Live Development, constant change to a running production system (you mean, that thing that critics like Isaac says customers don't want?) - that's what they <b>want</b> here.  They did a fair amount of reading for possible solutions, including the <b>ValueWithHistory</b> idea put forth by Kent Beck - where you use Decorators on objects instead of instance variables.  They ended up with what they call a <b>Linked Object Model</b> (if I can get a copy of the presentation, I'll post a link - there are some pictures on the slides).  In general, they have a "cloud of data" with various links between the objects.  They use a <b>Node</b> class which holds links between objects.  They ended up with the following rough choices (the picture of the object model is complex :)</p>

<ul>
<li> an RDB with two huge tables (Links and Nodes)</li>
<ul>
<li> plus additional tables for Node subclasses</li>
</ul>
<li> Or an OODB (they selected Gemstone)</li>
</ul>
<p>So how do you get at the data to change it - write accessing methods!  

<pre>
Setter

Link new
	node1: aPerson;
	node2: aName;
	meaning12: 'name';
	meaning 21: 'person';
	hook

</pre></p>
<p>
<pre>
Getter

^OneLinkTraverser new
	node1: self;
	meaning12: 'name';
	validAt: Timestamp now;
	node2.

</pre></p>

<p>Slower than direct accessors, but they have been able to deal with that.  They keep links in Gemstone, and they implemented the OneLinkTraverser class (etc) in Gemstone (so that it runs on the server).  They have also implemented aggressive caching.  The pros and cons:</p>

<p><b>Cons</b></p>

<ul>
<li> Complex - not immediately obvious or "natural"</li>
<li> Confusing - inspecting is complex (solvable with Trippy in VW via #inspectorExtraAttributes) - not solvable in Gemstone</li>
</ul>
<p><b>Pros</b></p>

<ul>
<li> Less work - no idea how they could do this (well) in an RDBMS</li>
<li> Past data handled same as current data</li>
<li> May change model with no GS class migration on a live system</li>
<li> High chance of committing transaction in GS</li>
<li> Can still use GS indexes.</li>
</ul>
<p>On the business side, this is great for complex models that change over time - which this one does.  Past data is important, and easily accessible.  Fast responses for requests from any direction are supported in this model, and that's critical in this business.  </p>

</div>]]></description>
			<guid isPermaLink="false">3272246998</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272246998</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272246998</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272246998</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272246998</includedComments:puid>
					<includedComments:author>gabriele renzi</includedComments:author>
					<includedComments:pubDate>2004-09-11T07:04:51-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt; I'm not sure I really understand what an OODB like gemstone is.
I mean, the python guyse seem to think that ZODB (http://zope.org/Wikis/ZODB/FrontPage) and 
ATOP (http://www.divmod.org/Home/Projects/Atop/index.html) are OODB, while the idea of OODB that I have in mind is more on the line of JDO (I mean, ODMG-like). 
And how does GemStone work ? What are the expected features of an OO db?&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>OOdb, what?</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272246998</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272246998</includedComments:puid>
					<includedComments:author>
James Robertson</includedComments:author>
					<includedComments:pubDate>2004-09-11T08:27:47-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Comment on &lt;a href="
http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272246998"&gt;
Gemstone vs. an RDBMS&lt;/a&gt;  by 
James Robertson


Well, Gemstone is a multi-user Smalltalk system that can transactionally persist objects.  So it's actually more than an OODB&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: 
Gemstone vs. an RDBMS</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272246998</wfw:comment>
		</item>
		<item>
			<title>Seaside at ESUG</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272239725</link>
			<category>esug2004</category>
			<pubDate>Fri, 10 Sep 2004 03:28:45 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>I arrived a little late this morning, and found <a href="http://www.cincomsmalltalk.com/userblogs/avi/blogView">Avi</a> talking about Seaside and web applications.  This is actually the same talk he gave at <a href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&entry=3261049347">Smalltalk Solutions 2004</a>, so I'm going to sit back and enjoy the talk this time.  </p>
</div>]]></description>
			<guid isPermaLink="false">3272239725</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272239725</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272239725</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272239725</wfw:comment>
		</item>
		<item>
			<title>Smalltalk in teaching</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272180176</link>
			<category>esug2004</category>
			<pubDate>Thu, 09 Sep 2004 10:56:16 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>Carsten Haerle is talking to us about Smalltalk in teacher support.  Schools may have hundreds of PCs and thousands of users, with many applications to install and manage - typically without a dedicated system administrator.  This leaves the task to teachers, who are also trying to teach the students.  Another problem is making PC's tamper proof - including the ability to roll back to a known state after each class.  There's also the need to do internet filtering, and make sure that the same content is displayed/transmitted to each PC.  </p>  

<p>They wrote an application Beno which integrates a few other (non-Smalltalk) Windows applications:  DX-Union - that handles deployment issues - management of what should be where, etc.  Another application - Dr. Kaiser - makes PCs tamper proof.  NetO handles screen transmission, and Cobion/Time does internet filtering.  Beno is an integration platform for all of these applications.  This created a single point of interaction for all of the supported functions.  So, now comes a demo - something that doesn't come across well in a blog :)  What he's showing us is how you can use Beno to push an installation (In this case, the Google Toolbar) out to a set of managed PCs.</p>

<p>It's a cool and useful suite of applications - written in Dolphin Smalltalk.  They are the biggest distributor of this kind of software in Germany.  Why Smalltalk?<p>

<ul>
<li> Cost savings in Smalltalk</li>
<li> Faster Development</li>
<li> Better Diagnostic capabilities</li>
<li> Able to do this with a 6-7 person team - could not have done that with VB or C++ or Delphi</li>
</ul>
<p>Unlike a lot of Smalltalk applications, this is a shrinkwrap application, and they are likely going to get MS logo certification.  Which Smalltalk?  Dolphin, which they consider to be the replacement for Digitalk Smalltalk.</p>

<p><b>Update:</b> I made some corrections to the text based on an email from Carsten.</p>
</p>
</div>]]></description>
			<guid isPermaLink="false">3272180176</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272180176</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272180176</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272180176</wfw:comment>
		</item>
		<item>
			<title>Building a company on Smaltalk</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272175510</link>
			<category>esug2004</category>
			<pubDate>Thu, 09 Sep 2004 09:38:30 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>Christian Haidar is talking about how his company uses Smalltalk to build products - including development, marketing, and pricing.  He started with a contract to build a simple chart program  He built a system he called smallCharts in 3 man months over the course of a year.  That went well, and the system went into production.  As a result, he trademarked the term smallCharts.  He then got a contract to build something similar for the parent company - so he founded a company and got the job done in a few months.  He's now gotten a second contract for his new company.  What did Smalltalk have to do with any of this?</p>

<ul>
<li> He did the project only because he could use Smalltalk</li>
<li> Change requests that came from clients were quickly addressable</li>
<li> The ability to explore external data sources (stock market feeds) dynamically (see this post from <a href="http://www.cincomsmalltalk.com/userblogs/badger/blogView?showComments=true&entry=3271976103">Bruce Badger</a> - it's the same idea).</li>
</ul>
<p>What's different about running a small company?  Worrying about profits, dealing with people (negotiations), Organization, partners, bureaucracy (of prospects, and of your own).  Small stuff - company logo, website.  It has to get done :)  Other things that come up - professional delivery, testing, bug tracking and support - it stops being a pet project on sourceforge and starts being a <b>product</b>.  What about marketing?</p>

<p>It was easy when he had one customer.  After that, it took legwork.  He had to get his message out to decision makers and use word of mouth - get both himself and his product known.  All the things that engineers in a large company rarely think about :)  Then there's the whole problem of pricing - rental, license, what?  Figuring out who the competition is isn't always as easy as you might think.  </p>

<p>So what were his early mistakes?  Lack of marketing, and an under-estimation of how long it would take to build things.  Even more critical, he underestimated how long a prospect would take to make a decision.</p></p>
</div>]]></description>
			<guid isPermaLink="false">3272175510</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272175510</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272175510</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272175510</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272175510</includedComments:puid>
					<includedComments:author>James Ladd</includedComments:author>
					<includedComments:pubDate>2004-09-09T19:10:44-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt; A good example of why Smalltalk :)&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Kewl ...</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272175510</wfw:comment>
		</item>
		<item>
			<title>Train Scheduling with Smalltalk</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</link>
			<category>esug2004</category>
			<pubDate>Thu, 09 Sep 2004 08:50:53 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>DB Systems and Daedalos Consulting are telling us about their train scheduling system for the German railways - they call it RUT-K.  The system (rail) is big - 40,000 passenger and freight trains, 65,000 kilometers of track, and 8500 crossings and switches.  The trains run at different speeds to different stops.  There are 400 users of the system in 7 offices across Germany.  </p>

<blockquote>
<p>Managing a train schedule is like putting together a huge puzzle</p>
</blockquote>

<p>The system handles:</p>

<ul>
<li> Exact construction of train paths</li>
<li> Timetabling by train</li>
<li> A structured database holding multiple versions of the timetables (with variants)</li>
<li> Distributed data storage and data editing capabilities</li>
</ul>
<p>The system allows for interactive development of train paths and schedules, with user inquiries answered by possible answers.  The inputs are the objectives - train path and stops (including times), as well as the actual circulation of the train.  The system creates a detailed timetable without conflicts and calculated running times.  Potential conflicts in a user's desired path/schedule are displayed , and the system supports graphical editing of train paths and schedules.  Reports for this can all be generated.  </p>

<p>The system has to generate these visual schedules quickly, and detect (and make users aware of) conflicts rapidly.  They managing hundreds of MB of data in the client application.  They have gotten some smart people on board to define appropriate algorithms for solving these problems in code - successfully.  The system is client/server, using Oracle as a back end.  The development environment has migrated from VW 3.1 and Envy to VW 7.x and Store.  They also have an offline version for laptops.  </p>

<p>RUT-K is not the only Smalltalk application used in the railway system - their scheduling/planning system and some of their back office systems are also done in Smalltalk.  The system has been deployed since April 2003.  Why has it been successful?</p>

<ul>
<li> User involvement at all points</li>
<li> Detailed specifications</li>
<li> Short development iterations</li>
<li> The organization and team </li>
<li> Smalltalk</li>
<ul>
<li> Reuse of components across applications</li>
<li> Easy build process</li>
<li> Powerful class libraries</li>
</ul>
</ul><p>I've seen the application in their offices, and it's very impressive.  We are seeing a demonstration of the mobile version running on a laptop with test data.  I'll have to see if anyone with a digital camera has shots to post.</p></p>
</div>]]></description>
			<guid isPermaLink="false">3272172653</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3272172653</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3272172653</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</includedComments:puid>
					<includedComments:author>Tom Sattler</includedComments:author>
					<includedComments:pubDate>2004-09-09T09:54:32-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt; &gt;I've seen the application in their offices, and it's very impressive. We are seeing a demonstration of the mobile version running on a laptop with test data. I'll have to see if anyone with a digital camera has shots to post.


&lt;/p&gt;
&lt;p&gt;What, they don't have a screen capture program on this laptop?&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Train Scheduling with Smalltalk</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</includedComments:puid>
					<includedComments:author>
James Robertson</includedComments:author>
					<includedComments:pubDate>2004-09-09T10:26:55-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Comment on &lt;a href="
http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653"&gt;
Train Scheduling with Smalltalk&lt;/a&gt;  by 
James Robertson


Tom,&lt;br/&gt;
I'm in the audience here...&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: 
Train Scheduling with Smalltalk</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3272172653</includedComments:puid>
					<includedComments:author>Serge Stinckwich</includedComments:author>
					<includedComments:pubDate>2004-09-09T10:52:08-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Here is a snapshot made with my camera : http://www.iutc3.unicaen.fr/~stincs/albums/9septembre2004/PICT0031_Moy.jpg.30.html&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title></includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3272172653</wfw:comment>
		</item>
	</channel>
</rss>
