<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>smalltalk &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/smalltalk/</link>
	<description>Feed of posts on WordPress.com tagged "smalltalk"</description>
	<pubDate>Fri, 27 Nov 2009 21:50:24 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Objective-C 001 - Introduzione]]></title>
<link>http://norcecco.wordpress.com/2009/11/27/objective-c-001-introduzione/</link>
<pubDate>Fri, 27 Nov 2009 15:36:15 +0000</pubDate>
<dc:creator>norcecco</dc:creator>
<guid>http://norcecco.wordpress.com/2009/11/27/objective-c-001-introduzione/</guid>
<description><![CDATA[Prendo spunto dal grandissimo lavoro svolto da Livio Sandel per provare, a partire da oggi e con cad]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Prendo spunto dal grandissimo lavoro svolto da <a href="http://www.macocoa.omitech.it/intro.htm">Livio Sandel</a> per provare, a partire da oggi e con cadenza più o meno regolare (molto più meno che più), a studiare il linguaggio di programmazione Objective-C.<br />
Faccio questo utilizzando principalmente le guide fornite (in inglese, e io con l&#8217;inglese non sono mai andato d&#8217;accordo) da Apple e prendendo spunto qua e là dalla Rete ed infine scrivendo, scrivendo e scrivendo.<br />
Scrivere, e cercare di spiegare, aiuta ad imparare. L&#8217;ho sempre pensato.<br />
Perciò chiedo già scusa fin da ora per gli strafalcioni, spero non grammaticali, e ringrazio chi vorrà pormi delle domande!<br />
Bene. Partiamo.</p>
<p><strong>Che cos&#8217;è Objective-C?</strong></p>
<p>Objective-C è un linguaggio di programmazione orientato agli oggetti basato sul C standard.</p>
<p>Tradotto in Italiano Objective-C è il linguaggio C, al quale sono state aggiunte delle estensioni (piccole, ma potenti) per renderlo un vero e proprio linguaggio di programmazione ad oggetti. Queste estensioni derivano in gran parte da un altro linguaggio di programmazione: lo Smalltalk, uno dei primissimi linguaggi orientati agli oggetti e sul quale non mi dilungherò.</p>
<p>Una buona infarinatura di C è quasi d&#8217;obbligo per imparare Objective-C. Ma io sottolineo il quasi. In effetti questo linguaggio di programmazione, pur essendo un&#8217;estensione del C, è diverso quanto basta per impararlo da zero.</p>
<p>Nella prossima puntata inizieremo a parlare di Oggetti</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[VA Smalltalk 8.0.1 Seaside: erste Schritte]]></title>
<link>http://joachimtuchel.wordpress.com/2009/11/27/va-smalltalk-8-0-1-seaside-erste-schritte/</link>
<pubDate>Fri, 27 Nov 2009 14:52:37 +0000</pubDate>
<dc:creator>Joachim</dc:creator>
<guid>http://joachimtuchel.wordpress.com/2009/11/27/va-smalltalk-8-0-1-seaside-erste-schritte/</guid>
<description><![CDATA[Wer sich Seaside unter VA Smalltalk mal ansehen möchte,  hat zuallererst mal das Problem, dass es no]]></description>
<content:encoded><![CDATA[Wer sich Seaside unter VA Smalltalk mal ansehen möchte,  hat zuallererst mal das Problem, dass es no]]></content:encoded>
</item>
<item>
<title><![CDATA[Things I always load into a VAST image]]></title>
<link>http://joachimtuchel.wordpress.com/2009/11/26/things-i-always-load-into-a-vast-image/</link>
<pubDate>Thu, 26 Nov 2009 15:40:15 +0000</pubDate>
<dc:creator>Joachim</dc:creator>
<guid>http://joachimtuchel.wordpress.com/2009/11/26/things-i-always-load-into-a-vast-image/</guid>
<description><![CDATA[I didn&#8217;t really have the time to look at VA ST 8.0.1 yet, but since I just installed it and fi]]></description>
<content:encoded><![CDATA[I didn&#8217;t really have the time to look at VA ST 8.0.1 yet, but since I just installed it and fi]]></content:encoded>
</item>
<item>
<title><![CDATA[Shoes and the city]]></title>
<link>http://kopfgedanken.wordpress.com/2009/11/25/shoes-and-the-city/</link>
<pubDate>Wed, 25 Nov 2009 20:18:58 +0000</pubDate>
<dc:creator>kopfgedanken</dc:creator>
<guid>http://kopfgedanken.wordpress.com/2009/11/25/shoes-and-the-city/</guid>
<description><![CDATA[das ultimative Frauen&#8221;problem&#8221; 365 days and nights &#8211; are so richtig die descriptio]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>das ultimative Frauen&#8221;problem&#8221; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> </p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/1mTl3I-IQrU&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/1mTl3I-IQrU&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>365 days and nights &#8211; are so richtig die description des &#8220;Problems&#8221; </p>
<p> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Closures and Non-Local Returns]]></title>
<link>http://gwtsmalltalk.wordpress.com/2009/11/25/closures-and-non-local-returns/</link>
<pubDate>Wed, 25 Nov 2009 16:12:50 +0000</pubDate>
<dc:creator>gwtsmalltalk</dc:creator>
<guid>http://gwtsmalltalk.wordpress.com/2009/11/25/closures-and-non-local-returns/</guid>
<description><![CDATA[A couple of recent comments have raised the issues of closures and non-local returns. Closures Absol]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A couple of recent comments have raised the issues of closures and non-local returns.</p>
<ol>
<li><strong>Closures</strong><br />
Absolutely. Wisp (and Wisp Smalltalk) support closures where <a href="http://en.wikipedia.org/wiki/Closure_%28computer_science%29" target="_blank">&#8220;closure&#8221; is defined</a> as &#8220;a first class function with free variables that are bound in the lexical environment&#8221;.</li>
<li><strong>Non-local returns</strong><br />
Probably, but I have only examined a small number of cases.</li>
</ol>
<p>I am designing Wisp for Internet applications using &#8220;cloud-based&#8221; servers (Google App Engine, Microsoft Azure) with client-side programs running in browsers (JavaScript, Flash, Silverlight).</p>
<p>If a &#8220;real-world&#8221; case can be made for supporting a certain programming style, then I will implement it.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Smalltalk whileTrue: and whileFalse:]]></title>
<link>http://gwtsmalltalk.wordpress.com/2009/11/25/smalltalk-whiletrue-and-whilefalse/</link>
<pubDate>Wed, 25 Nov 2009 15:40:21 +0000</pubDate>
<dc:creator>gwtsmalltalk</dc:creator>
<guid>http://gwtsmalltalk.wordpress.com/2009/11/25/smalltalk-whiletrue-and-whilefalse/</guid>
<description><![CDATA[The Smalltalk parser (version 0.8.12) can now handle these iteration statements: whileTrue: whileFal]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The Smalltalk parser (version 0.8.12) can now handle these iteration statements:</p>
<ul>
<li>whileTrue:</li>
<li>whileFalse:</li>
</ul>
<p>Here is a transformation test:</p>
<blockquote><p><code>&#124; x &#124;<br />
x := 0.<br />
[x &#60; 10] whileTrue:[<br />
x := x + 1.<br />
Transcript show: x; cr]</code></p></blockquote>
<p>when placed in a Smalltalk window and &#8220;parseIt&#8221; produces the following Wisp code:</p>
<blockquote><p><code>(lambda()<br />
(let ((x))<br />
(set! x 0)<br />
(do () ((not ((lambda()<br />
(&#60; x 10)))))((lambda()<br />
(set! x (+ x 1))<br />
(let ((temp Transcript))<br />
($ temp "show:" x)<br />
($ temp "cr")<br />
))))))</code></p></blockquote>
<p>To execute the Wisp code, enclose it in an extra pair of brackets, then place it in a Wisp workspace and &#8220;doIt&#8221;.</p>
<p>The next development step &#8212; in a few days from now &#8212; will add the Object system.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Writing Mac OS X applications in Smalltalk]]></title>
<link>http://pmougin.wordpress.com/2009/11/24/writing-mac-os-x-applications-in-smalltalk/</link>
<pubDate>Tue, 24 Nov 2009 20:55:09 +0000</pubDate>
<dc:creator>Philippe Mougin</dc:creator>
<guid>http://pmougin.wordpress.com/2009/11/24/writing-mac-os-x-applications-in-smalltalk/</guid>
<description><![CDATA[Jonathan Sterling discusses writing fully native Cocoa applications in Smalltalk with F-Script in ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Jonathan Sterling discusses writing fully native Cocoa applications in Smalltalk with <a href="http://www.fscript.org/">F-Script</a> in &#34;<a href="http://blog.jonmsterling.com/2009/09/20/writing-mac-os-x-applications-in-smalltalk.html">Writing Mac OS X applications in Smalltalk</a>&#34;
</p>
<blockquote><p>What I really wanted was a version of Smalltalk that used the same object model as Objective-C, like Pragmatic Smalltalk of Etoil&#233;, or even MacRuby on Mac OS. Most of all, I wanted it to treat me like an adult: I don&#39;t need a class browser, thank you, I&#39;m more comfortable working with plain-old files. The persistent image construct in Smalltalk really makes me uncomfortable. Eventually, I found F-Script, a scripting environment for Mac OS based on Smalltalk. It is not really meant for developing full applications, but with a little work, I was able to make this work. <a href="http://blog.jonmsterling.com/2009/09/20/writing-mac-os-x-applications-in-smalltalk.html">Read more&#8230;</a>
</p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Gosh, awful weather isn't it?]]></title>
<link>http://igrump.wordpress.com/2009/11/23/gosh-awful-weather-isnt-it/</link>
<pubDate>Mon, 23 Nov 2009 18:08:32 +0000</pubDate>
<dc:creator>iGrump</dc:creator>
<guid>http://igrump.wordpress.com/2009/11/23/gosh-awful-weather-isnt-it/</guid>
<description><![CDATA[Why is it that people sound so surprised when it&#8217;s cold and wet in winter? There is nothing wr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Why is it that people sound so surprised when it&#8217;s cold and wet in winter? There is nothing wrong with what they&#8217;re saying, the weather at the moment is awful, but it&#8217;s November, it&#8217;s supposed to be cold.</p>
<p>Of course, people aren&#8217;t really commenting on the weather, they just hate silence and have to fill every quiet gap with inconsequential small talk, which is invariably made up of mundane clichés and fake smiles. People really shouldn&#8217;t waste their time, this country probably wastes millions of hours a year between all the small talkers.</p>
<p>Just think what they could do with their time, I know what I&#8217;d do, particularly if I was also partial to the odd bit of weather chat: I&#8217;d set up Sky Plus to record every second of Laura Tobin&#8217;s weather forecasts. Good grief, what a fantastically gorgeous woman. Since when have weather forecasters been meant to look so good? And if it&#8217;s pouring down you get the chance to snigger like a little schoolboy when she mentions the word &#8220;moist&#8221; and &#8220;warm fronts&#8221;:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/J__7UTCWBc8&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/J__7UTCWBc8&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>She certainly makes my isobars tighten. More of Ms Tobin please BBC, I might even pay my licence fee if the standard of weather presenters remains so high*</p>
<p>Anyway, the small talkers will have plenty to moan about in the coming weeks seeing as winter is well and truly in full flow now &#8211; something which happens every year, yet still seems to catch people completely unawares. I&#8217;d just rather they kept their weather chat to themselves. Yes it gets cold, it gets wet, it gets windy. Put a jacket and scarf on and shut your face. &#8220;I need some sunshine&#8221; they moan, bollocks do you. You&#8217;re the same people who spend all summer moaning that it&#8217;s too hot and that it&#8217;s so dry your plants are dying. Make your minds up or better still, just get on with your lives and let the weather take care of itself. It will be ok, not passing the time of day with someone whilst pondering whether or not the weather will &#8220;make its mind up&#8221; won&#8217;t hurt you, the world won&#8217;t end.</p>
<p>Though if people stopped caring about the weather, would that mean forecasts would be pulled and there&#8217;d be no more Laura Tobin? I daren&#8217;t contemplate that, keep it up smalltalkers! You&#8217;re doing a fine job.</p>
<p><em>*I do pay my licence fee, I was just being humorous. Guffaw!</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Nuestra presentación en Smalltalks 2009 ]]></title>
<link>http://nicopaez.wordpress.com/2009/11/22/nuestra-presentacion-en-smalltalks-2009/</link>
<pubDate>Sun, 22 Nov 2009 19:41:30 +0000</pubDate>
<dc:creator>npaez</dc:creator>
<guid>http://nicopaez.wordpress.com/2009/11/22/nuestra-presentacion-en-smalltalks-2009/</guid>
<description><![CDATA[El pasado viernes junto a Carlos presentamos el trabajo que estamos haciendo en algo3. En la sesión ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>El pasado viernes junto a <a href="http://web.fi.uba.ar/~cfontela/" target="_blank">Carlos</a> presentamos el trabajo que estamos haciendo en <a href="http://materias.fi.uba.ar/7507/" target="_blank">algo3</a>. En la sesión hubo unas 50 personas. Comenzamos la sesión presentando el contexto en el cual dictamos la materia, luego Carlos explicó el régimen de cursada y la forma en que se encara la parte teórica de la materia, después de eso yo expliqué el enfoque utilizado en la práctica, donde a mi parecer lo más interesante es el uso de alguna prácticas ágiles como TDD, desarrollo iterativo, pair programming, collective ownership e integración contínua.</p>
<p>Durante la presentación tuvimos algunas consultas de la audiencia . En una de ellas un asistente comentó que el pedirles a los alumnos un informe con la explicación del TP realizado le parecía &#8220;anti&#8221; ágil, pues los métodos ágiles prefieren código corriendo en lugar de documentación. La realidad es que tengo 2 respuestas para esto:</p>
<ol>
<li>Los métodos ágiles no dicen que no haya que documentar, sino que es más importante la aplicación funcionando y en nuestro caso pedimos la aplicación funcionando y ADEMAS un informe de cómo fue resuelta la problemática (en ese orden de prioridad).  Nota: próximamente voy a escribir un blogpost sobre agilidad y documentación pues creo que hay un mal entendido general de este tema)</li>
<li>En el contexto de la materia enseñamos a desarrollar software, lo cual es más ámplio que la mera escritura de código, los alumnos deben entender el problema a resolver, tomar decisiones de diseño y comunicarlas. Un diseño por más bueno que sea, si no es bien comunicado puede traer muchas complicaciones a futuro. Es por esto que hacemos incapié en la aplicación funcionando y TAMBIEN en las pruebas unitarias y el informe como dos herramientas para comunicar el diseño.</li>
</ol>
<p>Otro comentario que tuvimos fue tal vez la gran cantidad de herramientas y contenidos vistos podian restar importante cantidad de tiempo para el correcto aprendizaje del paradigma y junto con esto nos proponian dar todo la materia sólo con Smalltalk. Personalmente no comparto esta visión y creo justamente la variedad de herramientas vistas permite a los alumnos una mejor comprensión del paradigma.</p>
<p>Como de costumbre al finalizar la sesión pedí feedbak a los asistentes utilizando la técnica de las caritas ( <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   :-&#124;  <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  ). Comentí el error de no dejar en claro si el feedback era sobre la calidad de la sesión o si era una opinión sobre el enfoque presentado. Algunos dieron su opinion sobre ambas cosas, pero la mayoria no. Más allá de este detalle el resultado fue: 80% <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   20% :-&#124;</p>
<p>Después de la sesión estuvimos hablando con varios docentes de universidades de la patagonia y de UTN quienes se mostraron interesados con el enfoque presentado.</p>
<p>Personalmente estoy muy conforme con la presentación y muy contento con el enfoque que estamos utilizando.</p>
<p>La presentación completa fue grabada por los organizadores del evento y próximamente está disponible (seguramente en el site de la conferencia). Mientras tanto para los interesados el slide deck utilizado esta disponible <a href="http://www.box.net/shared/cdmgubutvr" target="_blank">aquí</a> (inglés) y también puse una versión en castellano <a href="http://www.box.net/shared/p1ot8sd0fa" target="_blank">aquí</a>.</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Smalltalk Iteration Statements]]></title>
<link>http://gwtsmalltalk.wordpress.com/2009/11/21/smalltalk-iteration-statements/</link>
<pubDate>Sat, 21 Nov 2009 18:35:18 +0000</pubDate>
<dc:creator>gwtsmalltalk</dc:creator>
<guid>http://gwtsmalltalk.wordpress.com/2009/11/21/smalltalk-iteration-statements/</guid>
<description><![CDATA[The Smalltalk parser (version 0.8.11) can now handle these iteration statements: timesRepeat: to:do:]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The Smalltalk parser (version 0.8.11) can now handle these iteration statements:</p>
<ul>
<li>timesRepeat:</li>
<li>to:do:</li>
<li>to:do:by:</li>
</ul>
<p>For example, with the Smalltalk source:</p>
<blockquote><p><code>1 to: 100 by: 2 do: [:x &#124;Transcript show: x; cr]</code></p></blockquote>
<p>the parsed output is:</p>
<blockquote><p><code>(lambda()<br />
(do ((x 1 (+ x 2)))((&#62; x 100))(let ((temp Transcript))<br />
($ temp "show:" x)<br />
($ temp "cr")<br />
)))</code></p></blockquote>
<p>which gives the correct result when evaluated.</p>
<p>Tomorrow, I will add:</p>
<ul>
<li>whileTrue:</li>
<li>whileFalse:</li>
<li>value</li>
<li>value:</li>
<li>value:value:</li>
<li>value:value:value:</li>
<li>value:value:value:value:</li>
</ul>
<p>After that comes the Object system and method lookup.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Small Talk]]></title>
<link>http://lisahofmann.wordpress.com/?p=3</link>
<pubDate>Sat, 21 Nov 2009 18:10:10 +0000</pubDate>
<dc:creator>lisahofmann</dc:creator>
<guid>http://lisahofmann.wordpress.com/?p=3</guid>
<description><![CDATA[Bus bekommen. Knapp. Mit meinem Frühstück in der Hand zur Tür gesprintet. Morgenliche Vorbereitung a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Bus bekommen.<br />
Knapp.<br />
Mit meinem Frühstück in der Hand zur Tür gesprintet. Morgenliche Vorbereitung auf den Tag: 2 Knäckebrote mit Baguettesalami und ein Apfel.<br />
Smalltalk. Ich rieche die Fahne das Mannes hinter mir und die betörenden Parfummengen der kleinen Checkerin vor mir, während diese beiden sich wahrscheinlich vom Geruch meiner Basguettesalami belästigt fühlen.<br />
Währenddessen nicke und lächle ich und höre zu, alles in mir schreit &#8220;laangweilig!&#8221;<br />
Ich sage etwas über das Wetter und sie nickt, lächelt und hört zu.<br />
Ich fühle mich unehrlich. Sie steigt aus, ich mache Musik an.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Up and running with MagLev]]></title>
<link>http://blog.selfmodifying.com/2009/11/21/up-and-running-with-maglev/</link>
<pubDate>Sat, 21 Nov 2009 17:58:05 +0000</pubDate>
<dc:creator>Ryan Garver</dc:creator>
<guid>http://blog.selfmodifying.com/2009/11/21/up-and-running-with-maglev/</guid>
<description><![CDATA[The MagLev alpha was released recently.  Before I get too far in to this post I need to make it clea]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://groups.google.com/group/maglev-discussion/browse_thread/thread/1102993e9e21492a" target="_blank">The MagLev alpha was released recently</a>.  Before I get too far in to this post I need to make it clear that I&#8217;m not affiliated with the MagLev development team.  I&#8217;m not really even much of a Ruby interpreter hacker.  I&#8217;m a curious ruby developer that has heard some interesting things about the project and wanted to get it up and running now that it&#8217;s available.  I decided to make this post because the install and setup procedure is anything but standard.  It&#8217;s not complicated, just not what you normally would expect.</p>
<p>First lets get the code:</p>
<pre class="brush: bash;">
$ git clone git://github.com/MagLev/maglev.git

Initialized empty Git repository in /Users/rgarver/Sources/maglev/.git/
remote: Counting objects: 28955, done.
remote: Compressing objects: 100% (12671/12671), done.
remote: Total 28955 (delta 15669), reused 28427 (delta 15200)
Receiving objects: 100% (28955/28955), 14.97 MiB &#124; 539 KiB/s, done.
Resolving deltas: 100% (15669/15669), done.
Checking out files: 100% (2180/2180), done.
Initialized empty Git repository in /Users/rgarver/Sources/maglev/.git/remote: Counting objects: 28955, done.remote: Compressing objects: 100% (12671/12671), done.remote: Total 28955 (delta 15669), reused 28427 (delta 15200)Receiving objects: 100% (28955/28955), 14.97 MiB &#124; 539 KiB/s, done.Resolving deltas: 100% (15669/15669), done.Checking out files: 100% (2180/2180), done.

$ cd maglev
</pre>
<p>Great, we have the code.  Next step is to do a base install.  This installs the base libraries and GemStone which is the fabled persistence layer that MagLev has integrated.  <a href="http://en.wikipedia.org/wiki/Gemstone_Database_Management_System">GemStone</a> is a object persistence layer originally built for Smalltalk.  If you haven&#8217;t ever played with Smalltalk or some of the variants (eg: Squeak) I recommend it.  It will turn your head upside down.</p>
<pre class="brush: bash;">
$ ./install.sh
[Info] Starting installation of MagLev-22578.MacOSX on sirius.local
Password:
Sat Nov 21 09:22:44 PST 2009
[Info] Setting up shared memory
  Total memory available is 4096 MB
  Max shared memory segment size is 4 MB
  Max shared memory allowed is 4 MB
[Info] Increasing max shared memory segment size to 2048 MB
kern.sysv.shmmax: 4194304 -&#62; 2147483648
[Info] Increasing max shared memory allowed to 2048 MB
kern.sysv.shmall: 1024 -&#62; 524288
[Info] Adding the following section to /etc/sysctl.conf
# kern.sysv.shm* settings added by MagLev installation
kern.sysv.shmmax=2147483648
kern.sysv.shmall=524288
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
[Info] Setting up GemStone netldi service port
[Info] Adding &#34;gs64ldi  51456/tcp&#34; to /etc/services
[Info] Downloading GemStone archive using /opt/local/bin/wget
--2009-11-21 09:22:44--  http://glass-downloads.gemstone.com/maglev/GemStone-22578.MacOSX.zip
Resolving glass-downloads.gemstone.com... 207.171.185.197
Connecting to glass-downloads.gemstone.com&#124;207.171.185.197&#124;:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 74858717 (71M) [application/zip]
Saving to: `GemStone-22578.MacOSX.zip'

100%[==========================================================================&#62;] 74,858,717   847K/s   in 1m 45s

2009-11-21 09:24:32 (694 KB/s) - `GemStone-22578.MacOSX.zip' saved [74858717/74858717]

[Info] Uncompressing GemStone archive into /Users/rgarver/Sources
[Info] Linking gemstone to /Users/rgarver/Sources/GemStone-22578.MacOSX
[Info] updating MSpec, RubySpec, and RBS submodules
Submodule 'benchmark' (git://github.com/acangiano/ruby-benchmark-suite.git) registered for path 'benchmark'
Submodule 'spec/mspec' (git://github.com/rubyspec/mspec.git) registered for path 'spec/mspec'
Submodule 'spec/rubyspec' (git://github.com/rubyspec/rubyspec.git) registered for path 'spec/rubyspec'
Initialized empty Git repository in /Users/rgarver/Sources/maglev/benchmark/.git/
remote: Counting objects: 7332, done.
remote: Compressing objects: 100% (5521/5521), done.
remote: Total 7332 (delta 1595), reused 6917 (delta 1274)
Receiving objects: 100% (7332/7332), 9.90 MiB &#124; 578 KiB/s, done.
Resolving deltas: 100% (1595/1595), done.
Submodule path 'benchmark': checked out 'd807eea7f7b2f38240bc177a0c22e599081882ea'
Initialized empty Git repository in /Users/rgarver/Sources/maglev/spec/mspec/.git/
remote: Counting objects: 2745, done.
remote: Compressing objects: 100% (1080/1080), done.
remote: Total 2745 (delta 1848), reused 2484 (delta 1644)
Receiving objects: 100% (2745/2745), 378.57 KiB &#124; 383 KiB/s, done.
Resolving deltas: 100% (1848/1848), done.
Submodule path 'spec/mspec': checked out 'bcec47c70e0678a29fd0c1345358c4daf7b971a3'
Initialized empty Git repository in /Users/rgarver/Sources/maglev/spec/rubyspec/.git/
remote: Counting objects: 26787, done.
remote: Compressing objects: 100% (8705/8705), done.
remote: Total 26787 (delta 18332), reused 25672 (delta 17482)
Receiving objects: 100% (26787/26787), 3.71 MiB &#124; 520 KiB/s, done.
Resolving deltas: 100% (18332/18332), done.
Submodule path 'spec/rubyspec': checked out 'b0a18cf80dc706d39ee550831b8b941224b60fb6'
[Info] Creating new default 'maglev' repository
[Info] Generating the MagLev HTML documentation
[Info] Finished upgrade to MagLev-22578.MacOSX on sirius.local

[Info] MagLev version information:
maglev 0.6 (ruby 1.8.6) (2009-11-20 rev 22578-1067) [x86_64-linux]
GEMSTONE: 3.0.0 Build: 64bit-22578
MONTICELLO: MagLev-ao.1067.mcz
MAGLEV: commit e2a4fe2e0f7ca85cdcb141e6b56913eba802eefd
        Author: Allen Otis &#60;otisa@abaco.gemstone.com&#62;
        Date:   Thu Nov 19 19:57:09 2009 -0800
[Info] GemStone version information:
GemStone/S 64 Bit
3.0.0 Build: 64bit-22578
Fri Nov 20  8:22:00 2009

[Info] Adding these to your .bashrc will make it easier to run MagLev
export MAGLEV_HOME=/Users/rgarver/Sources/maglev
export PATH=$MAGLEV_HOME/bin:$PATH

[Info] After you complete this upgrade and verify MagLev is working, run
  rake stwrappers
to generate the .rb files for the GemStone/Smalltalk FFI
in MAGLEV_HOME/lib/ruby/site_ruby/1.8/smalltalk/
</pre>
<p>As you can see on OS X it will build everything for 64bit which is pretty cool.  It also downloaded a bunch of support libraries and updated all of the submodules.  If you ever update the code locally you are supposed to run &#8216;$ ./update.sh&#8217; to rebuild everything and get it all up and running.</p>
<p>Once you have it installed you should add the following lines to your .profile or .bashrc</p>
<pre class="brush: bash;">
export MAGLEV_HOME=/Users/rgarver/Sources/maglev
export PATH=$MAGLEV_HOME/bin:$PATH
</pre>
<p>You&#8217;ll need to make sure you run those lines on the command line also.  Once the environment is setup you can run &#8216;$ rake maglev:start&#8217;.  This command apparently boots up the core MagLev engine.</p>
<pre class="brush: bash;">
$ rake maglev:start
(in /Users/rgarver/Sources/maglev)
startstone[Info]: Starting Stone repository monitor &#34;maglev&#34;.
startstone[Info]: GemStone server 'maglev' has been started.
</pre>
<p>Once that is started you are good to go:</p>
<pre class="brush: bash;">
$ maglev-irb
/Users/rgarver/.irbrc
error , no such file to load -- readline,
          during /Users/rgarver/Sources/maglev/lib/ruby/1.8/irb/completion.rb
error , no such file to load -- readline,
          during /Users/rgarver/.irbrc
irb(main):001:0&#62; puts 'hi'
hi
=&#62; nil
irb(main):002:0&#62;
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Smalltalk Branch Statements]]></title>
<link>http://gwtsmalltalk.wordpress.com/2009/11/20/smalltalk-branch-statements/</link>
<pubDate>Fri, 20 Nov 2009 21:30:35 +0000</pubDate>
<dc:creator>gwtsmalltalk</dc:creator>
<guid>http://gwtsmalltalk.wordpress.com/2009/11/20/smalltalk-branch-statements/</guid>
<description><![CDATA[The Smalltalk parser can now handle branch statements. http://gxt.latest.wispdev.appspot.com Given t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The Smalltalk parser can now handle branch statements.</p>
<p><a href="http://gxt.latest.wispdev.appspot.com/" target="_blank">http://gxt.latest.wispdev.appspot.com</a></p>
<p>Given the Smalltalk source:</p>
<blockquote><p><code>3 &#60; 4<br />
ifTrue: [Transcript show: 'Less than'; cr]<br />
ifFalse: [Transcript show: 'Not less than'; cr]<br />
</code></p></blockquote>
<p>the parser will output the translation:</p>
<blockquote><p><code>(lambda()<br />
(if (&#60; 3 4)((lambda()<br />
(let ((temp Transcript))<br />
($ temp "show:" "Less than")<br />
($ temp "cr")<br />
)))((lambda()<br />
(let ((temp Transcript))<br />
($ temp "show:" "Not less than")<br />
($ temp "cr")<br />
)))))</code></p></blockquote>
<p>All the branching messages &#8211; &#8220;ifTrue:&#8221;, &#8220;ifFalse:&#8221;, &#8220;ifTrue:ifFalse:&#8221;, and &#8220;ifFalse:ifTrue:&#8221; &#8211; are parsed correctly.</p>
<p>Parsing for the iteration messages &#8211; &#8220;do:&#8221;, &#8220;to:do&#8221;, &#8220;to:do&#8221;by:&#8221;, and &#8220;timesRepeat:&#8221; &#8211; will take another day to complete.</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ibm.software.vasmalltalk: Google for the rescue...]]></title>
<link>http://joachimtuchel.wordpress.com/2009/11/20/ibm-software-vasmalltalk-google-for-the-rescue/</link>
<pubDate>Fri, 20 Nov 2009 07:20:17 +0000</pubDate>
<dc:creator>Joachim</dc:creator>
<guid>http://joachimtuchel.wordpress.com/2009/11/20/ibm-software-vasmalltalk-google-for-the-rescue/</guid>
<description><![CDATA[Taylor points out on the VA Smalltalk support forum that chances are very high that the posts on ibm]]></description>
<content:encoded><![CDATA[Taylor points out on the VA Smalltalk support forum that chances are very high that the posts on ibm]]></content:encoded>
</item>
<item>
<title><![CDATA[IBM is closing down VisualAge Smalltalk newsgroup]]></title>
<link>http://joachimtuchel.wordpress.com/2009/11/20/ibm-is-closing-down-va-smalltalk-newsgroup/</link>
<pubDate>Thu, 19 Nov 2009 22:52:35 +0000</pubDate>
<dc:creator>Joachim</dc:creator>
<guid>http://joachimtuchel.wordpress.com/2009/11/20/ibm-is-closing-down-va-smalltalk-newsgroup/</guid>
<description><![CDATA[IBM is not the vendor of VisualAge Smalltalk any more since they handed the product over to Instanti]]></description>
<content:encoded><![CDATA[IBM is not the vendor of VisualAge Smalltalk any more since they handed the product over to Instanti]]></content:encoded>
</item>
<item>
<title><![CDATA[Gartner und Smalltalk: läuft da was?]]></title>
<link>http://joachimtuchel.wordpress.com/2009/11/20/gartner-und-smalltalk-lauft-da-was/</link>
<pubDate>Thu, 19 Nov 2009 22:26:33 +0000</pubDate>
<dc:creator>Joachim</dc:creator>
<guid>http://joachimtuchel.wordpress.com/2009/11/20/gartner-und-smalltalk-lauft-da-was/</guid>
<description><![CDATA[Heute flatterte bei allen Cincom Smalltalk-Kunden und registrierten Interessenten eine Mail in die E]]></description>
<content:encoded><![CDATA[Heute flatterte bei allen Cincom Smalltalk-Kunden und registrierten Interessenten eine Mail in die E]]></content:encoded>
</item>
<item>
<title><![CDATA[VA Smalltalk 8.0.1 ist erschienen]]></title>
<link>http://joachimtuchel.wordpress.com/2009/11/20/va-smalltalk-8-0-1-ist-erschienen/</link>
<pubDate>Thu, 19 Nov 2009 22:09:30 +0000</pubDate>
<dc:creator>Joachim</dc:creator>
<guid>http://joachimtuchel.wordpress.com/2009/11/20/va-smalltalk-8-0-1-ist-erschienen/</guid>
<description><![CDATA[Instantiations hat heute per Mail an alle registrierten Kunden und auf dem Supportforum bekannt gege]]></description>
<content:encoded><![CDATA[Instantiations hat heute per Mail an alle registrierten Kunden und auf dem Supportforum bekannt gege]]></content:encoded>
</item>
<item>
<title><![CDATA[Smalltalk Statements]]></title>
<link>http://gwtsmalltalk.wordpress.com/2009/11/19/smalltalk-statements/</link>
<pubDate>Thu, 19 Nov 2009 17:37:06 +0000</pubDate>
<dc:creator>gwtsmalltalk</dc:creator>
<guid>http://gwtsmalltalk.wordpress.com/2009/11/19/smalltalk-statements/</guid>
<description><![CDATA[As of version 0.8.10, the Smalltalk parser can handle some complete statements. http://gxt.latest.wi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As of version 0.8.10, the Smalltalk parser can handle some complete statements.</p>
<p><a href="http://gxt.latest.wispdev.appspot.com/" target="_blank">http://gxt.latest.wispdev.appspot.com</a></p>
<p>Given the Smalltalk source:</p>
<blockquote><p><code>&#124; a b c &#124;<br />
a := 3.<br />
b := 4.<br />
c := 5.<br />
Transcript show: a + b * c; cr</code></p></blockquote>
<p>the parser will output the translation:</p>
<blockquote><p><code>(lambda()<br />
(let ((a)(b)(c))<br />
(set! a 3)<br />
(set! b 4)<br />
(set! c 5)<br />
(let ((temp Transcript))<br />
($ temp "show:" (* (+ a b) c))<br />
($ temp "cr")<br />
)))</code></p></blockquote>
<p>Executing this in a Wisp workspace will produce a compiled function (closure) &#8211; to obtain the value of the function, use &#8220;apply&#8221; or simply enclose the expression in parenthesis. Note that the value of the output is &#8220;35&#8243;, which is the correct evaluation of &#8220;3+4*5&#8243; in Smalltalk.</p>
<p>The example shows the use of assignments and local variables. Tomorrow, I will extend the parser to include branching and iteration statements.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Using F-Script as a debugging tool]]></title>
<link>http://pmougin.wordpress.com/2009/11/19/using-f-script-as-a-debugging-tool/</link>
<pubDate>Thu, 19 Nov 2009 13:45:36 +0000</pubDate>
<dc:creator>Philippe Mougin</dc:creator>
<guid>http://pmougin.wordpress.com/2009/11/19/using-f-script-as-a-debugging-tool/</guid>
<description><![CDATA[Fabian Schuiki explains how F-Script can be used as a debugging tool when developing Cocoa applicati]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Fabian Schuiki explains how <a href="http://www.fscript.org/">F-Script</a> can be used as a debugging tool when developing Cocoa applications in &#34;<a href="http://blog.axamblis.com/?p=87">F-Script: The Ultimate Debugging Console</a>&#34;.</p>
<blockquote><p>
If it weren&#8217;t for F-Script, I would have spent 5 hours today writing debugging code and creating some testing UI for Artifica which would have been another source for bugs which increases complexity of the debugging process again. <i>F-Script gives you the possibility to completely split up the development of your object model and your view model</i>, which not only saves you a lot of time and is more productive, but is also less frustrating since you never have to go figure whether your app&#8217;s functionality is broken due to a bug in the UI, the object model or even worse, somewhere in between. <a href="http://blog.axamblis.com/?p=87">Read more&#8230;</a>
</p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Joint Ruby and Smalltalk BlockCamp in Paris]]></title>
<link>http://pmougin.wordpress.com/2009/11/18/joint-ruby-and-smalltalk-blockcamp-in-paris/</link>
<pubDate>Wed, 18 Nov 2009 10:18:05 +0000</pubDate>
<dc:creator>Philippe Mougin</dc:creator>
<guid>http://pmougin.wordpress.com/2009/11/18/joint-ruby-and-smalltalk-blockcamp-in-paris/</guid>
<description><![CDATA[The french Ruby and Smalltalk communities are organizing the first BlockCamp event in Paris on the 2]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://pmougin.files.wordpress.com/2009/11/logo_blockamp.jpg?w=300&#038;h=300" alt="Joint Ruby and Smalltalk BlockCamp in Paris" border="0" width="300" height="300" /></p>
<p align="justify">The french Ruby and Smalltalk communities are organizing the first BlockCamp event in Paris on the 28th november 2009. I will be there and will talk about F-Script 2.0. Come join us! <a href="http://www.facebook.com/event.php?eid=176109665285">More information here&#8230;</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Reprogram your Cocoa applications on the fly!]]></title>
<link>http://pmougin.wordpress.com/2009/11/18/reprogram-your-cocoa-applications-on-the-fly/</link>
<pubDate>Wed, 18 Nov 2009 09:17:57 +0000</pubDate>
<dc:creator>Philippe Mougin</dc:creator>
<guid>http://pmougin.wordpress.com/2009/11/18/reprogram-your-cocoa-applications-on-the-fly/</guid>
<description><![CDATA[In this fun video clip, it takes Jeff only a few seconds to bring support for Snow Leopard&#8217;s t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="justify">In this fun <a href="http://blog.hyperjeff.net/?p=162">video clip</a>, it takes Jeff only a few seconds to bring support for Snow Leopard&#8217;s text substitutions to WriteRoom&#8230; Cool demo of F-Script injection, for those unfamiliar with it.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Smalltalk Workspace]]></title>
<link>http://gwtsmalltalk.wordpress.com/2009/11/17/smalltalk-workspace/</link>
<pubDate>Tue, 17 Nov 2009 14:00:46 +0000</pubDate>
<dc:creator>gwtsmalltalk</dc:creator>
<guid>http://gwtsmalltalk.wordpress.com/2009/11/17/smalltalk-workspace/</guid>
<description><![CDATA[Smalltalk and Wisp workspace windows http://gxt.latest.wispdev.appspot.com There are now two types o]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_308" class="wp-caption alignnone" style="width: 489px"><a href="http://gxt.latest.wispdev.appspot.com/"><img class="size-full wp-image-308" title="wispdev.jsp" src="http://gwtsmalltalk.wordpress.com/files/2009/11/wispdev-jsp.jpg" alt="" width="479" height="407" /></a><p class="wp-caption-text">Smalltalk and Wisp workspace windows</p></div>
<p><a href="http://gxt.latest.wispdev.appspot.com/">http://gxt.latest.wispdev.appspot.com</a></p>
<p>There are now two types of workspace window:</p>
<ul>
<li>Smalltalk workspace</li>
<li>Wisp workspace</li>
</ul>
<p>The Smalltalk workspace has a single choice on the context menu: &#8220;parseIt&#8221;.</p>
<p>&#8220;ParseIt&#8221; takes the highlighted code in the Smalltalk workspace, compiles it with the Smalltalk parser, and then sends the output to the transcript window. In the above example, the Smalltalk code was:</p>
<blockquote>
<pre><strong>Transcript show: 'Hello World'; cr</strong></pre>
</blockquote>
<p>and the resulting Wisp code was:</p>
<blockquote>
<pre><strong>(let ((temp Transcript))
($ temp "show:" "Hello World")
($ temp "cr")
)</strong></pre>
</blockquote>
<p>I copied the output to the Wisp workspace window where it produced the expected output when executed.</p>
<p>As I have stated in an earlier post, it will probably be about another week until the Smalltalk parser is complete. The development process is:</p>
<ol>
<li>Smalltalk parser generates correct Wisp (source) output</li>
<li>Smalltalk parser generates correct compiled output</li>
<li>Object system integration</li>
<li>Tools &#8211; class browser, inspectors, etc</li>
</ol>
<p>We can&#8217;t jump to (4) until 1-3 are completed &#8211; my guess is that we will be at (4) by the end of this month (Nov 30), hopefully across all platforms (Java, JavaScript, Flex, .Net) simultaneously.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
