<?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: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>Smalltalk Tidbits, Industry Rants</title>
		<link>http://www.cincomsmalltalk.com/blog/blogView</link>
		<description>Cincom Product Manager</description>
		<webMaster>jrobertson@cincom.com</webMaster>
		<lastBuildDate>Fri, 30 Mar 2007 09:10:03 EST</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>2007-03-30T09:10:03-05:00</dc:date>
		<icbm:latitude>39.214103</icbm:latitude>
		<icbm:longitude>-76.878807</icbm:longitude>
		<item>
			<title>Smalltalk Tutorial Outputs</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352698577</link>
			<category>spa2007</category>
			<pubDate>Fri, 30 Mar 2007 09:09:37 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>I should mention the &quot;outputs&quot; of the Smalltalk tutorial that I did last Sunday. The SPA conference (and Ot before it) has always been big on session outputs - the idea being that other people should be able to benefit even if they didn't/couldn't attend the session. </p>
<p>With that in mind, the tutorial page on the <a href="http://www.spaconference.org/cgi-bin/wiki.pl/?IntroductionToSmalltalk">Wiki is here.</a></p><p>To summarize the summary :)</p><ul xmlns="http://www.w3.org/1999/xhtml">
			<li><a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk">Download Cincom Smalltalk</a> non-commercial here</li>
		<li>Access the <a href="http://www.cincomsmalltalk.com/blog/blogView?search=Smalltalk Daily&amp;searchTitle=true&amp;searchText=false&amp;ordered=true">Smalltalk Daily screencasts in order</a></li><li>Access the <a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk_daily">Smalltalk Daily screencasts by topic</a></li><li><a href="http://www.cincomsmalltalk.com/rssBlog/blog_screencast.xml">Subscribe to Smalltalk Daily</a> in your news aggregator</li></ul><!-- technorati tags start --><p style="text-align:right;font-size:10px;">Technorati Tags: 
<a href="http://www.technorati.com/tag/smalltalk" rel="tag">smalltalk</a>, <a href="http://www.technorati.com/tag/tutorial" rel="tag">tutorial</a>, <a href="http://www.technorati.com/tag/learning" rel="tag">learning</a></p><!-- technorati tags end -->
</div>]]></description>
			<guid isPermaLink="false">3352698577</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352698577</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352698577</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352698577</wfw:comment>
		</item>
		<item>
			<title>SPA 2007 closes</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352540152</link>
			<category>spa2007</category>
			<pubDate>Wed, 28 Mar 2007 13:09:12 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>Another SPA is done - and it was a fun conference. I'll be back next year - it looks like another Smalltalk tutorial is a real possibility. I like the Cambridge location, too - it's nice, and being near a sizeable town has its advantages. </p>
<p>As the show wrapped, we all put up post-its with &quot;what did you learn&quot;, or &quot;what did you think&quot; ideas on them - I took a few shots, and no - I didn't add the &quot;Smalltalk&quot; one :) I did like the one in the middle:</p>

<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/final_board1.jpg" /></p>

<img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/final_board2.jpg" /></p>

<img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/final_board3.jpg" /></p>

<p>It's been a great week!</p></div>]]></description>
			<guid isPermaLink="false">3352540152</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352540152</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352540152</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352540152</wfw:comment>
		</item>
		<item>
			<title>Scoping Features</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352539326</link>
			<category>spa2007</category>
			<pubDate>Wed, 28 Mar 2007 12:55:26 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>There was a very good session this morning on scoping, which involved a game to get the idea across. We set up teams of three, and each of us got money, product cards, and feature cards, along with marketing info. Our task - decide which products to ship with which features, given the constraints of reuse vs. one off features (more cost for reuse) and the monetary limit. Here's a picture I took of the board after round 2:</p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/scoping_game.jpg" title="jarober added a file"/></p>

<p>In round one, we didn't spot a way to tradeoff one of our dollars, and decided to ship only 2 of 3 possible products - which is why we tied for second in round two: we were just too far behind after that mistake.  It was fun though, and it put the whole product marketing/management decision process "in my face" in a very good way.  Food for thought.</p>

<!-- technorati tags start --><p style="text-align:right;font-size:10px;">Technorati Tags: 
<a href="http://www.technorati.com/tag/marketing" rel="tag">marketing</a>, <a href="http://www.technorati.com/tag/development" rel="tag">development</a>, <a href="http://www.technorati.com/tag/product%20management" rel="tag">product%20management</a></p><!-- technorati tags end -->
</div>]]></description>
			<guid isPermaLink="false">3352539326</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352539326</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352539326</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352539326</wfw:comment>
		</item>
		<item>
			<title>More pictures from Tuesday at SPA</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352506429</link>
			<category>spa2007</category>
			<pubDate>Wed, 28 Mar 2007 03:47:09 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>After the sessions wrapped up, we had a champagne tasting event - I don't much care for champagne, but I gave it a whirl. We had five bottles to identify by taste. Since I've already said more than I know about the topic, I got one of each and lined them up:</p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/champagne_tasting.jpg" title="jarober added a file"/></p>
<p>That didn't help me much, but other people used the lineup to compare:</p><p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/champagne_tasting2.jpg" title="jarober added a file"/></p>
<p>Later, we retired to the Combination Room (lots of couches and chairs) to while away the evening:</p><p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/whiskey_round.jpg" title="jarober added a file"/></p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/whiskey_round2.jpg" title="jarober added a file"/></p>
</div>]]></description>
			<guid isPermaLink="false">3352506429</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352506429</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352506429</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352506429</wfw:comment>
		</item>
		<item>
			<title>SPA Day 2: Diversions and Web 2.0</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352452056</link>
			<category>spa2007</category>
			<pubDate>Tue, 27 Mar 2007 12:40:56 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>After the API talk and lunch, there was a croquet game set up outside - so I headed out and played two games. It was a lot of fun, and I managed to get a lucky wicket by rolling my ball over another :) Here are two pictures of the Croquet game:</p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/croquet1.jpg" title="jarober added a file"/></p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/croquet2.jpg" title="jarober added a file"/></p>
<p>After that diversion, I headed to the Web 2.0 Fishbowl session, as I was part of the initial panel. I took two shots while I was outside the fishbowl:</p><p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/web20-panel1.jpg" title="jarober added a file"/></p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/web20-panel2.jpg" title="jarober added a file"/></p>
<p>That was fun - second fishbowl I've done, and I hope not the last :)</p></div>]]></description>
			<guid isPermaLink="false">3352452056</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352452056</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352452056</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352452056</wfw:comment>
		</item>
		<item>
			<title>API Design as if Unit Testing Mattered</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352427466</link>
			<category>spa2007</category>
			<pubDate>Tue, 27 Mar 2007 05:51:06 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>I wasn't awake enough to take notes on Brian Marick's keynote, but I should have - it was a great talk. In any event, I'm attending Michael Feather's talk on API design. He's starting with a common problem developers have: say you want to fetch mail in code. You then have to dig through the API documentation (or in VW, the PDF docs) to figure out how to use the mail code. Interestingly enough, raw API doc isn't that useful without accompanying &quot;how to&quot; type doc. IMHO, what you really want in this case is example code - the API documentation doesn't help you initially (although it will help you down the road, when you want to do more. On the Smalltalk side, you then go browse code, but that works just as well - even though it's &quot;politically incorrect&quot; compared to massive API doc :) )</p>
<p>This particular example is of interest to me because I did screencasts on mail sending and receiving just last week - and I didn't have to create a new class just to figure that out. After perusing the example code in ours doc, I just tossed a few lines into a workspace and tried them out. Once I had that down, I just did the <a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk_daily">screencasts</a> :). Ultimately, you do what I did in <a href="http://www.cincomsmalltalk.com/BottomFeeder">BottomFeeder</a> - create a class that wraps mail sending (or receiving), and deal with your own API, and then have a simple place where the underlying vendor API is isolated and easy to manage.</p><p>So API Design: The art of creating interfaces that are useful to clients and extensible for future needs. Not all interfaces are APIs. </p><p>Unit Tests: They really do need to be isolated (i.e., not dependent on network communication, database results, etc). </p><p>API Development is hard work because:</p><ul xmlns="http://www.w3.org/1999/xhtml">
			<li>APIs live forever</li>
		<li>Meaning, Mistakes live forever</li><li>Early choices can close off future desires</li></ul><p>Interesting comment next: Avoid Static Methods. I would have said that Sun simply screwed up, and didn't create real objects. If classes in Java were actual objects, this problem wouldn't exist. Heh - he also recommends against using Sealed, Final, and non-virtual. Again, those aren't features - they are <em>bugs.</em> </p><p>Here's a good piece of advice: write code that uses your own APIs. If it's too hard for you to use, then what will your clients think? As well - supply your tests to the end users (developers). There's no good reason not to.</p></div>]]></description>
			<guid isPermaLink="false">3352427466</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352427466</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352427466</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:puid>
					<includedComments:author>John</includedComments:author>
					<includedComments:pubDate>2007-03-27T08:19:19-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Great initiative! I hope your work will help people to know deeply about these. I hope we can establish a strong community of fans and enthusiasts via this effort.&lt;br /&gt;john/cuesight.com
&lt;/p&gt;&lt;/div&gt;</includedComments:content>
					<includedComments:title>Cool   </includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:puid>
					<includedComments:author>Lex Spoon</includedComments:author>
					<includedComments:pubDate>2007-03-27T10:50:57-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;It's a fun topic.


&lt;/p&gt;
&lt;p&gt;I must say, though, API's can and should change.  No human artifact is perfect the first time.  So yes, changing API's is painful, but it should be expected.  We should try to make it the least painful as possible.  One approach that pretty much always works is to use phase-in periods: you encourage or deprecate aspects of the existing interface, while supporting the old version of the interface, so that everyone who talks through the API has a chance to upgrade.


&lt;/p&gt;
&lt;p&gt;The interface-specification technology matters.  And interestingly, the more static typing you put into an interface, the harder it is to change that interface.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>API's can and should change</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:puid>
					<includedComments:author>Isaac Gouy</includedComments:author>
					<includedComments:pubDate>2007-03-27T15:25:39-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Lex Spoon wrote &lt;i&gt;The interface-specification technology matters. And interestingly, the more static typing you put into an interface, the harder it is to change that interface.&lt;/i&gt;&lt;br/&gt;

I can imagine some ways in which that might be true, and other ways in which it might not be true, which leads me to ask - what exactly do you mean?
&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;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:guid>
					<includedComments:puid>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=API_Design_as_if_Unit_Testing_Mattered&amp;entry=3352427466</includedComments:puid>
					<includedComments:author></includedComments:author>
					<includedComments:pubDate>2007-03-27T16:35:33-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;We&amp;#39;re struggling with this right now in the context of a web application. We plan to have the version as part of the URL that specifies the entry point to the API. Then all we have to do is be able to continue to support the old API but are free to update the &amp;quot;current&amp;quot; API.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Version as part of API</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352427466</wfw:comment>
		</item>
		<item>
			<title>Some SPA 2007 Shots for Monday</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352390487</link>
			<category>spa2007</category>
			<pubDate>Mon, 26 Mar 2007 19:34:47 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>Here are a few shots I took during the day. First: Dave Thomas' keynote - and it was a great talk:</p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/dave-thomas-keynote.jpg" title="jarober added a file"/></p>
<p>Funny dinner story on that - turns out that a lot of people didn't really &quot;get&quot; Dave's talk - those of us in the room who were Smalltalkers, or Ruby-ists (etc) - we spent the entire speech nodding our heads. Very interesting difference in perspectives :) </p><p>Here are two pictures from a humorous &quot;panel&quot; that ran this evening - hard to describe, but think of tech/geek word association and Startup send-ups:</p><p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/crescent1.jpg" title="jarober added a file"/></p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/crescent2.jpg" title="jarober added a file"/></p>
<p>I really do like this conference - it's a great bunch of people :)</p></div>]]></description>
			<guid isPermaLink="false">3352390487</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352390487</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352390487</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352390487</wfw:comment>
		</item>
		<item>
			<title>Creativity Workshop at SPA 2007</title>
			<link>http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3352390137</link>
			<category>spa2007</category>
			<pubDate>Mon, 26 Mar 2007 19:28:57 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>It's been a good day at SPA 2007 - I attended a Creativity workshop this morning, which was pretty neat. The idea was this: we got a problem statement, and then we did some brainstorming exercises to either find solutions or better understand the problem. Our group had a &quot;Lotus Blosson&quot; exercise: </p><ul xmlns="http://www.w3.org/1999/xhtml">
			<li>Toss out an idea</li>
		<li>Find eight related ideas and ring them around it</li><li>Then pick one or more of those, put them out, and repeat</li></ul>
<p>We didn't find solutions, but we iterated towards understanding the problem. Here's a shot of one of the other groups, using lots of paper on another approach:</p><p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/creativity3.jpg" title="jarober added a file"/></p>
<p>Earlier, we had a little exercise that went like this: Statements on a board, handouts with other statements. Find the ones that are &quot;opposite&quot; and tack them up:</p><p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/creativity1.jpg" title="jarober added a file"/></p>
<p><img src="http://www.cincomsmalltalk.com/images/jarober/spring07/spa2007/creativity2.jpg" title="jarober added a file"/></p>
<p>So that was a fun session - I might well try some of the ideas out at work.</p></div>]]></description>
			<guid isPermaLink="false">3352390137</guid>
			<pingback:server>http://www.cincomsmalltalk.com/blog/servlet/CommentAPIPBServlet?guid=3352390137</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/blog/blogView?entry=3352390137</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/blog/blogView/servlet/CommentAPIServlet?guid=3352390137</wfw:comment>
		</item>
	</channel>
</rss>
