<?xml version='1.0' encoding='UTF-8' ?>
<rss version="2.0" xml:base="http://www.cincomsmalltalk.com/userblogs/mls/" 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 and my misinterpretations of life</title>
		<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView</link>
		<description>Smalltalk and my misinterpretations of life</description>
		<webMaster>michael.lucassmith@gmail.com</webMaster>
		<lastBuildDate>Tue, 02 Sep 2008 17:08:41 EDT</lastBuildDate>
		<image>
			<url>/images/why-small.png</url>
			<title>Smalltalk and my misinterpretations of life</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView</link>
			<height>50</height>
			<width>81</width>
		</image>
		<admin:generatorAgent rdf:resource="/CincomSmalltalkWiki/Silt"></admin:generatorAgent>
		<admin:errorReportsTo rdf:resource="mailto:michael.lucassmith@gmail.com"></admin:errorReportsTo>
		<dc:language>en-us</dc:language>
		<dc:creator>Michael Lucas-Smith</dc:creator>
		<dc:rights>Copyright 2005 Michael Lucas-Smith</dc:rights>
		<dc:date>2008-09-02T17:08:41-04:00</dc:date>
		<icbm:latitude>-35.283333</icbm:latitude>
		<icbm:longitude>149.133333</icbm:longitude>
		<item>
			<title>Javascript, hotting up</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Javascript,_hotting_up&amp;entry=3397828121</link>
			<category>development</category>
			<pubDate>Tue, 02 Sep 2008 17:08:41 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p>The news is spreading quickly, Google has decided to make their own browser.. Google Chrome, which is odd considering that there's already Mozilla Chrome. Anyway, what's interesting to me is the brewing Javascript engine war that's going on. Let's take a look:</p>
<p>Safari 4, nightly builds - WebKit, has a new engine called SquirrelFish. It makes their javascript run faster.</p>
<p>Firefox 3, nightly builds, has a new engine called SpiderMonkey. It makes their javascript run even faster. It uses traced dynamic compilation.</p>
<p>Chrome, has another new engine called V8. It makes their javascript run the fastest. It uses jit and garbage collection with a heritage from Smalltalk, Self, Strongtalk and Resilient (OOVM).</p>
<p>Is it that much of a surprise that the same technology that powers Smalltalk can super charge Javascript? no not really, they're both similar dynamic languages. It's interesting though that hot on the heels of SpiderMonkey's success at speeding up Javascript comes V8. And hot on the heels of SquirrelFish came SpiderMonkey. Three new Javascript engines in as many months? I love it.</p>
<p>It wouldn't surprise me if Safari took V8 in under its hood - though I think the Firefox guys are wed to their shiny new engine, so they're unlikely to pick up V8. We'll see.</p>

</div>]]></description>
			<guid isPermaLink="false">3397828121</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3397828121</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3397828121</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3397828121</wfw:comment>
		</item>
		<item>
			<title>Failed Experiment: Enhanced Glucose Monitor</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Failed_Experiment:_Enhanced_Glucose_Monitor&amp;entry=3342468248</link>
			<category>development</category>
			<pubDate>Fri, 01 Dec 2006 23:24:08 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>It's very important in Software development to know when to pull the plug on something that isn't working. At least whenever that happens you've learnt important lessons along the way.</p>
<p>My latest project I was working on was a way to improve my Diabetes management. Right now I have a glucose monitor that records up to 450 measurements. You can get a special plug for it that connects to serial and you can download those measurements on to your computer. The software then graphs things for you nicely and you can see important trends. Frankly it's great - except that it's serial! RS-232! .. WHY?</p><p>So this is fine, I guess, but what I really want to be able to do is record how much insulin I'm taking, what meal I'm eating - and to get insulin amounts based on the carbs in a meal and my current insulin dosages. There's a nice piece of software called Diabetes Pilot which runs on Palm OS and WinCE and Win32 x86 which does just that. It's priced fairly. It does not, however, read from my glucose monitor (or anyones for that matter).</p><p>So I came up with an idea.. I want the next generation - a combination of glucose monitoring and diabetes management. I want it mobile and I want it wireless. So here's the plan: Get a Windows Mobile device, get a RS-232 to Bluetooth adaptor, implement my Glucose monitors protocol and download its data in to Diabetes Pilots database.</p><ul xmlns="http://www.w3.org/1999/xhtml">
			<li>Step 1: Implement Glucose Monitor protocol. This went pretty well. This device is not open at all - which required some reverse engineering. With a fair bit of work, snooping on the protocol and searching the web, myself and another guy called Chris Ridd have managed to get together a good webpage on the protocol of the Optium Xceed blood glucose monitor. Chris implemented the protocol in Python so that he could run it on Linux and MacOSX instead of just Windows. I implemented it in Smalltak (Public store - see package OptiumXceed) so that I could run it on the ARM processor and x86 (Windows Mobile and regular Windows Desktop)</li>
		<li>Step 2: Reverse engineer Diabetes Pilots database. Simple, this turned out to be sqlite3 - found this with my friend James. Smalltalk already has a sqlite3 database driver for VisualWorks. I plugged that in, looked at the tables for Diabetes Pilot - vwalla.</li><li>Step 3: Download results from Glucose monitor in to a running copy of Diabetes Pilot. A complete success - no problems here what so ever. I can now sync my glucose measurements in to this other program. It provides the same sorts of graphs (though not as detailed, but better looking) as Precision Link (the software that is for the Xceed glucose monitor).</li><li>Step 4: Purchase an RS-232 to Bluetooth adaptor and get that working. I already bought an RS-232 to USB adaptor, that's what I'm using on my laptop right now. So I know the cable works, I know adapting the cable works.. however, my $250 BlueportXP which I got a week ago has been a complete and utter <strong>failure</strong>. We cannot get even the simplest of RS-232 devices to work with it. I can talk to the device itself, I just cannot get anything to talk through it. This was most disappointing.</li><li>Step 5: Test all of it on a PocketPC before purchasing my own PocketPC. I haven't done this step.. read below for the final decision I've made.</li></ul><p>So it comes to this. PocketPCs do come with serial adaptors - if you purchase them. But, the cables are unwieldly. It's just plain impractical. Unfortunately, I'm reaching for next gens diabetes management and next gen is too far for the makers of the glucose devices. Right now there is one bluetooth glucose monitor being prepared to be sold by a German company. Their estimated release is mid next year - if we're lucky.</p><p>Without the bluetooth, this approach just isn't worth it. Ultimately, it would be best if the two devices were one - and the German company making the GlucoTel is intending to do just that - although their first version won't include a food database like Diabetes Pilot has. All in all, this is disappointing. Without the bluetooth I don't want to go ahead - so I'm canning the project.</p><p>It's nice to see that Smalltalk made the software development part of this project really easy. I guess I'll just stick with the basics for now and perhaps in a few years time the industry will have matured a bit more.</p><p>Now.. on to my next project!</p></div>]]></description>
			<guid isPermaLink="false">3342468248</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3342468248</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3342468248</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>blogView?showComments=true&amp;printTitle=Failed_Experiment:_Enhanced_Glucose_Monitor&amp;entry=3342468248</includedComments:guid>
					<includedComments:puid>blogView?showComments=true&amp;printTitle=Failed_Experiment:_Enhanced_Glucose_Monitor&amp;entry=3342468248</includedComments:puid>
					<includedComments:author>John Dougan</includedComments:author>
					<includedComments:pubDate>2006-12-02T14:29:29-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Would it be worthwhile to treat a jury rigged hardware configuration as an &amp;quot;interim blood monitor&amp;quot; (like the Alto was an interim dynabook) and do the software development anyway?&amp;nbsp; At the very least you&amp;#39;ll be ready for the next generation hardware when&amp;nbsp; it comes and maybe make suggestions to the manufacturers of the monitors. It would me a more of a research project, but still could be fun. 
&lt;/p&gt;&lt;/div&gt;</includedComments:content>
					<includedComments:title></includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>blogView?showComments=true&amp;printTitle=Failed_Experiment:_Enhanced_Glucose_Monitor&amp;entry=3342468248</includedComments:guid>
					<includedComments:puid>blogView?showComments=true&amp;printTitle=Failed_Experiment:_Enhanced_Glucose_Monitor&amp;entry=3342468248</includedComments:puid>
					<includedComments:author>
Michael Lucas-Smith</includedComments:author>
					<includedComments:pubDate>2006-12-02T17:58:26-05:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Comment by 
Michael Lucas-Smith&lt;/p&gt;

&lt;p&gt;


&lt;p&gt;Sure I'd say that is a good way to look at it - given we know that the next generation of these devices takes another important step forward. I'd try and reverse engineer that GlucoTel as well to add all the extra features they didn't add. Such as writing it to run on PocketPC instead of in Java (which takes a long time to start up on &amp;quot;java&amp;quot; phones).&lt;/p&gt;
&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>
Re:  Comment on By John Dougan Would it be worthwhile to treat a jury rigged hardware configuration as an "interim blood monitor" (like the Alto was an interim dynabook) and do the software development anyway?nbsp; At the very least youll be ready for the next generation hardware whennbsp; it comes and maybe make suggestions to the manufacturers of the monitors. It would me a more of a research project, but still could be fun. </includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3342468248</wfw:comment>
		</item>
		<item>
			<title>Pair Programming is...</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Pair_Programming_is...&amp;entry=3330579287</link>
			<category>development</category>
			<pubDate>Mon, 17 Jul 2006 08:54:47 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>Pair Programming is where some guy next to you nags you until you program the thing properly.</p>
</div>]]></description>
			<guid isPermaLink="false">3330579287</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3330579287</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3330579287</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>blogView?showComments=true&amp;printTitle=Pair_Programming_is...&amp;entry=3330579287</includedComments:guid>
					<includedComments:puid>blogView?showComments=true&amp;printTitle=Pair_Programming_is...&amp;entry=3330579287</includedComments:puid>
					<includedComments:author>
&lt;a href="http://www.cincomsmalltalk.com/userblogs/troy/blogView"&gt;Troy Brumley&lt;/a&gt;</includedComments:author>
					<includedComments:pubDate>2006-07-17T10:13:46-04:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Comment by 
&lt;a href="http://www.cincomsmalltalk.com/userblogs/troy/blogView"&gt;Troy Brumley&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;


&lt;p&gt;Where some guy sits next to you and tells you how to drive the keyboard. &amp;quot;No, no, do a control-c, don't use the mouse&amp;quot; is not what pair programming is about.&lt;/p&gt;
&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>
and it is not</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3330579287</wfw:comment>
		</item>
		<item>
			<title>Re: Code Bloat Begets Code Bloat</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Re:_Code_Bloat_Begets_Code_Bloat&amp;entry=3269889619</link>
			<category>development</category>
			<pubDate>Fri, 13 Aug 2004 22:40:19 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><a href=" http://www.bobcongdon.net/blog/2004/08/code-bloat-begets-code-bloat.html">Spotted in Bob Congdon </a></p>
</div>]]></description>
			<guid isPermaLink="false">3269889619</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3269889619</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3269889619</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3269889619</wfw:comment>
		</item>
		<item>
			<title>Ensure in Scheme with Continuations</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Ensure_in_Scheme_with_Continuations&amp;entry=3261258681</link>
			<category>development</category>
			<pubDate>Thu, 06 May 2004 01:11:21 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>It's interesting who picks up what in a blog post. <a href="http://radio.weblogs.com/0102385/2004/05/06.html#a595">Chris Double has an interesting note on how ensure works with continuations in Scheme</a> by doing a re-execute of the 'entry' code when you begin a continuation again. This is called 'dynamid-wind'.</p>
</p>
</div>]]></description>
			<guid isPermaLink="false">3261258681</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3261258681</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3261258681</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3261258681</wfw:comment>
		</item>
		<item>
			<title>Re: Constraints and unit testing</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Re:_Constraints_and_unit_testing&amp;entry=3261258009</link>
			<category>development</category>
			<pubDate>Thu, 06 May 2004 01:00:09 EDT</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><a href=" http://www.iunknown.com/000439.html">Here's a reason why some people may never ever understand what Unit Testing is all about</a></p>
</div>]]></description>
			<guid isPermaLink="false">3261258009</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3261258009</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3261258009</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3261258009</wfw:comment>
		</item>
		<item>
			<title>Noise</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Noise&amp;entry=3250217348</link>
			<category>development</category>
			<pubDate>Tue, 30 Dec 2003 06:09:08 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><p>I've been trying to monitor a phenomena that I've been seeing in my code.. I call it "Noise".</p>
<p>What is this noise thing all about. Well, to put it simply, ever time you add a new method, you add noise. The longer the method, the more noise in that method. The more methods, the more noise, the more classes, the more noise, the more packages the more noise.</p>
<p>What is being done to combat this? Well, there is the whole concept of a class - encapsulation. Put the behaviour where it belongs. This allows developers to organise their code well, but it creates more noise by moving unrelated behaviour to the place that can provide the answer.</p>
<p>I fully agree that the code should be where it can run, but I don't agree that unrelated behaviour should be closely 'related' via viewership. When you look at a class, you see a hodgepodge of concepts muddled together.</p>
<p>What is being done to combat this? Well, Smalltalk has the concept of Extensions. This allows you to define methods on a class but have them live in different packages. This means you can put the behaviour on the class it belongs on, but hide it from unrelated concepts.</p>
<p>Unfortunately this means you need many many packages to properly segregate all the different kinds of behaviour. This simply isn't possible sometimes - also, instance variables must all live on the core. As you add more and more instance variables to support the concepts the class itself becomes noise.</p>
<p>So what can be done about this? - to tell the truth I believe this may be the reason there are so many anti-OO people out there. The supposed reduction of complexity actually increases noise.</p>
<p>Let's look at it from a different angle - Smalltalk is the only language I know that has gone to the trouble of trying to reduce the noise. And it shows.. teams can work on larger amounts of code for longer periods of time before the "Noise limit" is hit. Yet, I'm still finding myself uncomfortable as code becomes more "lived in".. cluttered.</p>
<p>I requested a new definition of 'categories' in VisualWorks, such that it is a cosmetic human organisation technique only. But the engineers were unreceptive to the concept. Perhaps I wasn't able to articulate what the true problem was well enough. Let alone the fact that other environments are still far behind VisualWorks in this regard any way.</p></p>
</div>]]></description>
			<guid isPermaLink="false">3250217348</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3250217348</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3250217348</pingback:target>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3250217348</wfw:comment>
		</item>
		<item>
			<title>Re: Handling the Meta-Data</title>
			<link>http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&amp;printTitle=Re:_Handling_the_Meta-Data&amp;entry=3246027782</link>
			<category>development</category>
			<pubDate>Tue, 11 Nov 2003 18:23:02 EST</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">
<p><a href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&entry=3246025831">Spotted in Cincom Smalltalk Blog - Smalltalk with Rants</a>. James is right. Metadata isn't enough. You need topic maps.</p>
</div>]]></description>
			<guid isPermaLink="false">3246027782</guid>
			<pingback:server>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIPBServlet?guid=3246027782</pingback:server>
			<pingback:target>http://www.cincomsmalltalk.com/userblogs/mls/blogView?guid=3246027782</pingback:target>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>blogView?showComments=true&amp;printTitle=Re:_Handling_the_Meta-Data&amp;entry=3246027782</includedComments:guid>
					<includedComments:puid>blogView?showComments=true&amp;printTitle=Re:_Handling_the_Meta-Data&amp;entry=3246027782</includedComments:puid>
					<includedComments:author>Rich Demers</includedComments:author>
					<includedComments:pubDate>2003-11-11T22:52:32-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/userblogs/mls/blogView?showComments=true&amp;entry=3246027782"&gt;Re: Handling the Meta-Data&lt;/a&gt;  by Rich Demers

&lt;/p&gt;
&lt;p&gt;A few words on topic maps, please? Or references?&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Re: Handling the Meta-Data</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.cincomsmalltalk.com/userblogs/mls/servlet/CommentAPIServlet?guid=3246027782</wfw:comment>
		</item>
	</channel>
</rss>
