<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Tudor Girba's blog</title><link>http://www.tudorgirba.com/blog</link><description /><generator>Pier Blog</generator><language>en</language><lastBuildDate>Wed, 28 Nov 2012 21:50:52 -0000</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tudorgirba" /><feedburner:info uri="tudorgirba" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>A whitespace theme for Pharo (work in progress)</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/59RjucNZqCI/whitespace-theme-for-pharo-work-in-progress</link><comments>http://www.tudorgirba.com/blog/whitespace-theme-for-pharo-work-in-progress</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Wed, 22 May 2013 21:51:18 -0000</pubDate><description><![CDATA[<p>Whitespace is the most basic variable of graphic design. We embrace it as soon as we see it. In particular, modern web pages offer good examples of whitespace usage. Yet, when we turn to the desktop, and in particular to development tools, whitespace tends to disappear, as if it would be a wasted space. There certainly are exceptions to the rule, such as <a title="http://www.chris-granger.com/lighttable/" class="external" href="http://www.chris-granger.com/lighttable/">LightTable</a>, but to a large extent, the world of development tools is dominated by thick borders. I believe we can do better.</p><p>As an experiment, I started to work on a new look for Pharo and Moose that tries to maximize whitespace (I even chose a white whitespace). I started from the existing Glamour theme and removed color and lines where I did not see a good reason for having them.</p><p>My experiment is a primitive one: first, I started from a filled space; second, I only touched the theme of existing widgets without affecting the widgets themselves. Still, I believe it shows potential. Take a look at the pictures below (please try to ignore the thick gray buttons from the Pharo code browser).</p><p><img alt="Moosetools.png" src="http://www.tudorgirba.com/?_s=P_z7OTUQ7VSFGP7b"/></p><p><img alt="Devtools.png" src="http://www.tudorgirba.com/?_s=Va_IyeOwk-BldEhq"/></p><p>You can reproduce the pictures by executing the following code in a recent <a title="http://www.moosetechnology.org/download/4.8" class="external" href="http://www.moosetechnology.org/download/4.8">Moose 4.8 image</a>:</p><pre class="shout"><span class="undefinedIdentifier">MooseImageSetupCommandLineHandler</span> <span class="unary">new</span><br/>     <span class="undefinedUnary">installFonts</span><span class="cascadeSeparator">;</span><br/>     <span class="undefinedUnary">installAthens</span><span class="cascadeSeparator">;</span><br/>     <span class="undefinedUnary">installGLMWhitespaceTheme</span><span class="statementSeparator">.</span></pre><p>To exploit whitespace at its full potential we need to make our widgets less dependent on lines and delimiters. During this experiment, I realized that our interfaces get often cluttered because we rely on fine-grained widgets that are designed to work independently from each other. As a consequence, to ensure their independence they have to be distinct which often leads to explicit delimiters. A way out of this trap is to approach the design globally and construct interfaces out of higher level patterns based on widgets that work tightly together.</p><p>Whitespace is a resource. We should fill it only for a good reason. Carefully.</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">300139038</guid><feedburner:origLink>http://www.tudorgirba.com/blog/whitespace-theme-for-pharo-work-in-progress</feedburner:origLink></item><item><title>A free font collection for Pharo</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/2vIfkQEIVGY/free-font-collection-for-pharo</link><comments>http://www.tudorgirba.com/blog/free-font-collection-for-pharo</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Sat, 11 May 2013 00:12:48 -0000</pubDate><description><![CDATA[<p>The transition to Athens, the new vectorial canvas in Pharo, requires also a transition from bitmap fonts to free type fonts. There are quite a number of free fonts available these days, but they are distributed as files and this is less convenient for a Pharo image.</p><p>To fix the problem, I created a little project:</p><pre class="shout"><span class="globalVar">Gofer</span> <span class="unary">new</span><br/>   <span class="undefinedKeyword">smalltalkhubUser:</span> <span class="string">'girba'</span> <span class="undefinedKeyword">project:</span> <span class="string">'FreeFonts'</span><span class="cascadeSeparator">;</span><br/>   <span class="keyword">package:</span> <span class="string">'FontInstaller'</span><span class="cascadeSeparator">;</span><br/>   <span class="unary">load</span><span class="statementSeparator">.</span></pre><p>The project contains the <code>FontInstaller</code> class (did I mention it was small?) that imports TTF fonts from the file system and installs them in dedicated classes in the image.</p><p>Let&rsquo;s take a look at an example. To use the FontInstaller all you need are the font files. In our example, I downloaded the <a title="http://sourceforge.net/projects/sourcecodepro.adobe/" class="external" href="http://sourceforge.net/projects/sourcecodepro.adobe/">Source Code Pro</a> font and unzip the contents in the Fonts folder next to the Pharo image:</p><pre class="shout"><span class="methodTempBar">|</span> <span class="patternTempVar">fontDirectory</span> <span class="methodTempBar">|</span><br/><span class="tempVar">fontDirectory</span> <span class="ansiAssignment">:=</span> <span class="undefinedIdentifier">FileSystem</span> <span class="undefinedUnary">workingDirectory</span> <span class="binary">/</span> <span class="string">'Fonts'</span> <span class="binary">/</span> <br/>                 <span class="string">'SourceCodePro_FontsOnly-1.017'</span><span class="statementSeparator">.</span><br/><span class="undefinedIdentifier">FontInstaller</span> <span class="unary">new</span><br/>   <span class="undefinedKeyword">installFromDirectory:</span> <span class="tempVar">fontDirectory</span> <span class="binary">/</span> <span class="string">'TTF'</span><br/>   <span class="undefinedKeyword">url:</span> <span class="string">'http://sourceforge.net/projects/sourcecodepro.adobe/'</span><br/>   <span class="undefinedKeyword">license:</span> <span class="leftParenthesis">(</span><span class="leftParenthesis1">(</span><span class="tempVar">fontDirectory</span> <span class="binary">/</span> <span class="string">'LICENSE.txt'</span><span class="rightParenthesis1">)</span> <span class="keyword">readStreamDo:</span> <span class="symbol">#</span><span class="symbol">contents</span><span class="rightParenthesis">)</span><span class="statementSeparator">.</span></pre><p>Executing this code results in the creation of several packages, each of them containing exactly one class. For example, the regular font ends up in the <code>SourceCodeProRegular</code> class that is placed in a package with the same name. Fonts can add a significant size to the image, and users might want to load only a selected set from a font family. Having a one font per package mapping makes it easier to customize loading. </p><p>The font is stored as a byte array in the <code>fontContents</code>, and it also has an <code>install</code> convenience method that stores it in the font provider. The license and url are placed in the class comment, while the name of the original file (used for traceability purposes) is stored in another method.</p><p>Following this scheme, I created a repository (<a title="http://www.smalltalkhub.com/#!/~girba/FreeFonts" class="external" href="http://www.smalltalkhub.com/#!/~girba/FreeFonts">http://www.smalltalkhub.com/#!/~girba/FreeFonts</a>) with fonts from five font families:</p><ul><li> <a title="http://sourceforge.net/projects/sourcecodepro.adobe/" class="external" href="http://sourceforge.net/projects/sourcecodepro.adobe/">Source Code Pro</a></li><li> <a title="http://sourceforge.net/projects/sourcesans.adobe/" class="external" href="http://sourceforge.net/projects/sourcesans.adobe/">Source Sans</a></li><li> <a title="http://www.linuxlibertine.org" class="external" href="http://www.linuxlibertine.org">Linux Libertine</a></li><li> <a title="http://www.linuxlibertine.org" class="external" href="http://www.linuxlibertine.org">Linux Biolinum</a></li><li> <a title="http://dejavu-fonts.org/wiki/Main_Page" class="external" href="http://dejavu-fonts.org/wiki/Main_Page">Deja Vu</a></li></ul><p>For example, suppose you want to install the Source Code Pro Regular as a code font in your Pharo image. In this case, you need to load only the <code>SourceCodeProRegular</code> package and install it. The code might look like this:</p><pre class="shout"><span class="globalVar">Gofer</span> <span class="unary">new</span><br/>   <span class="undefinedKeyword">smalltalkhubUser:</span> <span class="string">'girba'</span> <span class="undefinedKeyword">project:</span> <span class="string">'FreeFonts'</span><span class="cascadeSeparator">;</span><br/>   <span class="keyword">package:</span> <span class="string">'SourceCodeProRegular'</span><span class="cascadeSeparator">;</span><br/>   <span class="unary">load</span><span class="statementSeparator">.</span><br/><span class="leftParenthesis">(</span><span class="globalVar">Smalltalk</span> <span class="keyword">at:</span> <span class="symbol">#</span><span class="symbol">SourceCodeProRegular</span><span class="rightParenthesis">)</span> <span class="unary">new</span> <span class="unary">install</span><span class="statementSeparator">.</span><br/><span class="undefinedIdentifier">FreeTypeSystemSettings</span> <span class="undefinedKeyword">loadFt2Library:</span> <span class="true">true</span><span class="statementSeparator">.</span><br/><span class="undefinedIdentifier">StandardFonts</span> <span class="undefinedKeyword">codeFont:</span> <span class="leftParenthesis">(</span><span class="globalVar">LogicalFont</span><br/>                         <span class="keyword">familyName:</span> <span class="string">'Source Code Pro'</span><br/>                         <span class="keyword">pointSize:</span> <span class="number">10</span><span class="rightParenthesis">)</span><span class="statementSeparator">.</span></pre><p>All in all, we got one step closer to adopting Athens.</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">786018047</guid><feedburner:origLink>http://www.tudorgirba.com/blog/free-font-collection-for-pharo</feedburner:origLink></item><item><title>BIG idea vs big IDEA</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/4WMw337pQuM/big-idea-vs-big-idea</link><comments>http://www.tudorgirba.com/blog/big-idea-vs-big-idea</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Wed, 20 Mar 2013 21:39:33 -0000</pubDate><category>innovation</category><description><![CDATA[<p>What is your big idea? You do not have one? I do not believe that.</p><p>When most people think of the term "big ideas", they think of ideas that made it big. These are the BIG ideas.</p><p>But, I am more interested in those ideas that appear with big letters in your head. They make your eyes blink. These are the big IDEAS.</p><p>While BIG ideas capture the headlines, it is big IDEAS that capture the imagination. Just because you might not see right from start how an IDEA can become BIG, it does not make it less interesting. At least for you. And that is what matters.</p><p>So, what is your big idea?</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">391233988</guid><feedburner:origLink>http://www.tudorgirba.com/blog/big-idea-vs-big-idea</feedburner:origLink></item><item><title>Moose 4.8 on Jenkins</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/vbBlUet6fNk/moose-4-8-on-jenkins</link><comments>http://www.tudorgirba.com/blog/moose-4-8-on-jenkins</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Sun, 17 Mar 2013 21:59:16 -0000</pubDate><category>moose</category><description><![CDATA[<p>We have ported <a title="http://www.moosetechnology.org/news/moose-4-8-development-pharo-2-0" class="external" href="http://www.moosetechnology.org/news/moose-4-8-development-pharo-2-0">Moose to Pharo 2.0</a>. One of the nice additions in Pharo is the command line infrastructure that brings the opportunity to have a smooth integration with a continuous integration server like Jenkins.</p><p>Here is what we did for Moose. First, let&rsquo;s start with the requirements:</p><ol><li>We wanted to use the latest Pharo 2.0 image and VM so that we can provide instant feedback</li><li>We wanted to load the code that comes with ConfigurationOfMoose</li><li>We wanted to run all the tests that come with our configuration</li><li>We wanted to setup the image with Moose-specific settings and tools</li></ol><p>The first requirement is supported out of the box via the bash scripts supplied by Pharo:</p><pre>wget --quiet -qO - http://pharo.gforge.inria.fr/ci/script/ciPharo20.sh | bash
wget --quiet -qO - http://pharo.gforge.inria.fr/ci/script/ciPharoVMLatest.sh | bash</pre><p>These scripts will download the latest image and VM and will unzip them in the current folder. Easy.</p><p>The second requirement is also supported nicely by the Pharo image:</p><pre>REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
./vm.sh $JOB_NAME.image config $REPO ConfigurationOfMoose --install=development</pre><p>What the script does is to trigger the <code>config</code> command line handler that corresponds to executing the code from <code>ConfigurationCommandLineHandler</code>. The <code>CommandLineHandler</code> hierarchy is a new addition to Pharo, and it essentially lets you customize from within the image the handling of command line arguments. In this case, the scripts loads the <code>#development</code> version of the <code>ConfigurationOfMoose</code> from <code>$REPO</code>, and at the end it saves the image.</p><p>The third requirement was only partially supported. The image comes with a <code>TestRunnerCommandLineHandler</code> that lets you specify something like:</p><pre>./vm.sh $JOB_NAME.image test --junit-xml-output &quot;Moose-.*&quot;</pre><p>However, Moose is a large project formed by multiple sub-projects, and we wanted to run not only the tests that are in Moose core packages, but also the tests that come with the sub-projects. To solve this problem, I created the <code>MooseTestRunnerCommandLineHandler</code> subclass that specializes the default test runner with a list of packages derived from the configuration:</p><pre class="shout"><span class="patternUnary">MooseTestRunnerCommandLineHandler&gt;&gt;packages</span></pre><pre class="shout">  <span class="methodTempBar">|</span> <span class="patternTempVar">packages</span> <span class="methodTempBar">|</span><br/>  <span class="tempVar">packages</span> <span class="ansiAssignment">:=</span> <span class="globalVar">Set</span> <span class="unary">new</span><span class="statementSeparator">.</span><br/>  <span class="self">self</span> <span class="undefinedKeyword">addTestPackagesFrom:</span> <span class="self">self</span> <span class="undefinedUnary">mooseDevelopmentVersion</span> <span class="undefinedKeyword">to:</span> <span class="tempVar">packages</span><span class="statementSeparator">.</span><br/>  <span class="self">self</span> <span class="undefinedUnary">mooseDevelopmentVersion</span> <span class="unary">projects</span> <span class="keyword">do:</span> <span class="blockStart">[</span> <span class="blockArgColon">:</span><span class="blockPatternArg">each</span> <span class="blockArgsBar">|</span><br/>    <span class="self">self</span> <span class="undefinedKeyword">addTestPackagesFrom:</span> <span class="blockArg">each</span> <span class="unary">version</span> <span class="undefinedKeyword">to:</span> <span class="tempVar">packages</span> <span class="blockEnd">]</span><span class="statementSeparator">.</span><br/>  <span class="return">^</span> <span class="tempVar">packages</span></pre><p>The code makes use of the infrastructure provided by the superclass and just lists all packages that are in the <code>&rsquo;Tests&rsquo;</code> group in the current configuration and in all directly referred configurations. Once this new command is available in the image, we can invoke it via the command line:</p><pre>./vm.sh $JOB_NAME.image moosetest --junit-xml-output</pre><p>However, still the question was how to get it in the image. Nothing simpler: I just added it in a package loaded by the configuration (the package is called <code>Moose-Development-Tools</code>). Thus, once the configuration is loaded, we can simply run the tests.</p><p>This final requirement can not be supported out of the box by Pharo given that it is highly specific to Moose. To support it, I created another command line handler that can install the settings:</p><pre class="shout"><span class="undefinedIdentifier">activate</span><br/>  <span class="unary">self</span> <span class="unary">cleanupWorld</span><span class="statementSeparator">.</span><br/>  <span class="self">self</span> <span class="undefinedUnary">installLogo</span><span class="statementSeparator">.</span><br/>  <span class="self">self</span> <span class="undefinedUnary">installGLMTheme</span><span class="statementSeparator">.</span><br/>  <span class="self">self</span> <span class="undefinedUnary">installGTInspector</span><span class="statementSeparator">.</span></pre><pre class="shout">  <span class="globalVar">Smalltalk</span> <span class="keyword">snapshot:</span> <span class="true">true</span> <span class="keyword">andQuit:</span> <span class="true">true</span></pre><p>This being achieved, we can run:</p><pre>./vm.sh $JOB_NAME.image mooseimagesetup</pre><p>That is it. With minimal shell scripting dependency we have achieved a rather complex setup of an image. For reference, here is the whole script:</p><pre>wget --quiet -qO - http://pharo.gforge.inria.fr/ci/script/ciPharo20.sh | bash
wget --quiet -qO - http://pharo.gforge.inria.fr/ci/script/ciPharoVMLatest.sh | bash
wget --quiet -qO - http://pharo.gforge.inria.fr/ci/image/PharoV20.sources
./vm.sh Pharo.image save $JOB_NAME
REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
./vm.sh $JOB_NAME.image config $REPO ConfigurationOfMoose --install=development
./vm.sh $JOB_NAME.image mooseimagesetup
./vm.sh $JOB_NAME.image moosetest --junit-xml-output
zip -r $JOB_NAME.zip $JOB_NAME.image $JOB_NAME.changes PharoV20.sources</pre><p>The resulting image can be found at: <a title="https://ci.inria.fr/moose/job/moose-latest-dev-4.8/" class="external" href="https://ci.inria.fr/moose/job/moose-latest-dev-4.8/">https://ci.inria.fr/moose/job/moose-latest-dev-4.8/</a></p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">550843483</guid><feedburner:origLink>http://www.tudorgirba.com/blog/moose-4-8-on-jenkins</feedburner:origLink></item><item><title>Demo-driven innovation at Scrum Breakfast Luzern (March 21)</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/nSWBNDBPvn8/demo-driven-innovation-scrum-breakfast-luzern</link><comments>http://www.tudorgirba.com/blog/demo-driven-innovation-scrum-breakfast-luzern</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Tue, 12 Mar 2013 21:38:18 -0000</pubDate><category>innovation</category><description><![CDATA[<p>On March 21 I will give a talk on <a title="http://www.swissict.ch/expertenwissen/fachanlaesse/event/scrum-breakfast-luzern-demo-driven-innovation" class="external" href="http://www.swissict.ch/expertenwissen/fachanlaesse/event/scrum-breakfast-luzern-demo-driven-innovation">Demo-driven innovation at Scrum Breakfast Luzern</a>.</p><p>The abstract goes as follows:</p><p><blockquote>Meeting real deadlines is a hard and stressful job. It’s a job that typically eats all resources available, because when we know exactly what the best way is, we want to go full steam ahead. After all, we want to utilize our productivity to the maximum. Except that we typically do not know the best way. We know just a way and we get comfortable with it.</p><p>While the status quo can be comfortable, it is certainly not perfect. There always is something to improve. However, when entrenched in a routine we typically have no clue of what that something is and how to improve it.</p><p>In this talk we distill some lessons learnt from the time we spent in the research world and in helping companies rethink their approaches. It turns out that the path to follow is not dependent on the domain, and that a set of simple steps can get you quite far:</p><ul><li>Always challenge the assumptions behind the status quo, even when it appears perfect.</li><li> Design your approach, don’t just settle for half-baked solutions.</li><li>Demo your design, even when they seem hard to implement.</li><li>Listen, especially when you do not agree.</li><li>Enable new things to happen.</li></ul><p>Of them all, focus on the demo. Relentlessly. Much of the rest will follow. This is the simplicity and power of the demo-driven way.</p><p>Why is this relevant? Because it affects everything you do, including the design of your software system, understanding your clients’ requirements, or managing your team. And because the solution is simple and cheap. </blockquote></p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">190989650</guid><feedburner:origLink>http://www.tudorgirba.com/blog/demo-driven-innovation-scrum-breakfast-luzern</feedburner:origLink></item><item><title>Moose 4.7</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/UiR-k3vRblg/moose-4-7</link><comments>http://www.tudorgirba.com/blog/moose-4-7</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Sun, 03 Mar 2013 20:49:33 -0000</pubDate><category>moose</category><description><![CDATA[<p>The Moose Suite version 4.7 is out: <a title="http://moosetechnology.org/download" class="external" href="http://moosetechnology.org/download">http://moosetechnology.org/download</a></p><p>What is new:</p><ul><li> Integration of the Roassal visualization engine</li><li> New PetitParser browser with integrated refactorings</li><li> Improved Glamorous Toolkit for Pharo including the Glamorous Inspector and Debugger</li><li> Several features in Glamour including Watcher support (similar to OS X preview)</li><li> Significant improvements in FAMIX</li><li> Improved external VerveineJ parser for Java</li><li> Based on Pharo 1.4</li></ul><p>A list of issues addressed in this release can be found at: <a title="http://code.google.com/p/moose-technology/issues/list?can=1&amp;q=status=Fixed%20milestone=4.7" class="external" href="http://code.google.com/p/moose-technology/issues/list?can=1&amp;q=status=Fixed%20milestone=4.7">http://code.google.com/p/moose-technology/issues/list?can=1&q=status=Fixed%20milestone=4.7</a></p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">91909439</guid><feedburner:origLink>http://www.tudorgirba.com/blog/moose-4-7</feedburner:origLink></item><item><title>Moose apprentice public course in Bern on February 07-08</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/LMYB3UD6uVA/moose-apprentice-2013-02-07-08</link><comments>http://www.tudorgirba.com/blog/moose-apprentice-2013-02-07-08</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Tue, 11 Dec 2012 08:43:19 -0000</pubDate><category>moose</category><description><![CDATA[<p>I am happy to announce that on February 7-8, 2013 I will give a public <a title="http://humane-assessment.com/courses/moose-apprentice" class="external" href="http://humane-assessment.com/courses/moose-apprentice">Moose apprentice</a> course. The course is organized at the University of Bern.</p><p>Moose apprentice is an introductory course that takes you on a ride to learn to use the Moose analysis platform for putting the humane assessment method into practice. It is dedicated to software engineers that want to get better at extracting useful information out of their systems. The course sessions are driven by hands-on exercises.</p><p>To register, please <a title="tudor@tudorgirba.com" class="external" href="mailto:t%75%64o%72@%74u%64%6F%72%67ir%62a.co%6D">contact me directly</a>.</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">1022982014</guid><feedburner:origLink>http://www.tudorgirba.com/blog/moose-apprentice-2013-02-07-08</feedburner:origLink></item><item><title>Humane assessment primer public course in Bern on January 25</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/tdJHE1erG7E/humane-assessment-primer-2013-01-25</link><comments>http://www.tudorgirba.com/blog/humane-assessment-primer-2013-01-25</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Mon, 10 Dec 2012 08:41:45 -0000</pubDate><description><![CDATA[<p>I am happy to announce that on January 25 I will give a public <a title="http://humane-assessment.com/courses/humane-assessment-primer" class="external" href="http://humane-assessment.com/courses/humane-assessment-primer">Humane assessment primer</a> course in Bern.</p><p>The course covers the essence of the humane assessment method:</p><ul><li> why software assessment is economically important,</li><li> why adopting it explicitly in-house is the only viable solution,</li><li> how to integrate it in the development process,</li><li> how to embed it in the organization, and</li><li> how to support it via a new breed of tools.</li></ul><p>The course is interactive and it is dedicated both to managers and engineers. Why both? Because the problem is both economical and technical. Managers have to understand the technical challenges that consume the budget silently. And engineers have to understand the economics involved in assessment.</p><p>To register, please <a title="tudor@tudorgirba.com" class="external" href="mailto:tu%64%6F%72@tu%64o%72gi%72%62%61%2E%63om">contact me directly</a>.</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">1026938056</guid><feedburner:origLink>http://www.tudorgirba.com/blog/humane-assessment-primer-2013-01-25</feedburner:origLink></item><item><title>Presenting is storytelling at University of Zurich (2012 lecture)</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/sGGQTUSErB8/presenting-is-storytelling-at-unizh-2012</link><comments>http://www.tudorgirba.com/blog/presenting-is-storytelling-at-unizh-2012</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Sun, 09 Dec 2012 08:46:44 -0000</pubDate><description><![CDATA[<p>Some months ago I give my annual lecture on <a title="http://www.ifi.uzh.ch/seal/teaching/courses/wip.html" class="external" href="http://www.ifi.uzh.ch/seal/teaching/courses/wip.html">Presenting is storytelling</a> at the University of Zurich. This has always be a nice experience for me, and this year was no different.</p><p>Although the main message remained steady over the years, every time is somewhat different thanks to the students.</p><p>One thing that I noticed last year was that students do not expect presentations to equal bullet points anymore. It used to be the case, but not anymore. Something has changed and that is good.</p><p>As a consequence, this year I started directly with delivering a quick 10 minutes presentation about <a title="http://humane-assessment.com" class="external" href="http://humane-assessment.com">humane assessment</a>. At the end of the presentation, I asked three questions:</p><ul><li> First, I asked what they understood from the quick overview. They said that it is an activity for software engineers and it is important.</li><li> Then, I asked what they missed, and everyone agreed that it was too abstract, and that they did not really feel what I was talking about.</li><li> And at last, I asked if they believed I was convinced of what I was talking about, regardless of wether they felt like they understood or not. They all said yes.</li></ul><p>And this is the point. In 10 minutes, the most I could hope for is for them to precisely remember that assessment is an important enough of a software engineering activity to deserve a dedicated name. That was my message. My one message.</p><p>To make it stick, I wrapped it in a little visual story. While the visual could have captured the attention, it is the story that did the actual work.</p><p>And this leads me to the main message of the lecture: presenting is storytelling.</p><p>Next year, I will be giving the another lecture on the same topic. The story will likely be different, but the message will be the same.</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">327841584</guid><feedburner:origLink>http://www.tudorgirba.com/blog/presenting-is-storytelling-at-unizh-2012</feedburner:origLink></item><item><title>CHOOSE Forum 2012: Models vs Services</title><link>http://feedproxy.google.com/~r/tudorgirba/~3/AHPknpeWWA4/choose-forum-2012</link><comments>http://www.tudorgirba.com/blog/choose-forum-2012</comments><wfw:commentRss>http://www.tudorgirba.com/blog?view=PBCommentsRssView</wfw:commentRss><pubDate>Wed, 28 Nov 2012 21:50:52 -0000</pubDate><description><![CDATA[<p>On December 14, we (<a title="http://choose.s-i.ch" class="external" href="http://choose.s-i.ch">CHOOSE - the Swiss Group for Object-Oriented Systems and Environments</a>) organize our annual CHOOSE Forum. The CHOOSE Forum is a one day event that brings together academics and practitioners to bring the latest developments in software engineering.</p><p>This year, the topic is <a title="http://choose.s-i.ch/events/forum2012" class="external" href="http://choose.s-i.ch/events/forum2012">Models vs. Services</a>, and the lineup of speakers is as impressive as it ever was:</p><ul><li> Jean Bézivin (University of Nantes, France) <br/> Should we resurrect software engineering?</li><li> Cesare Pautasso (University of Lugano, Switzerland) <br/> Executable Modeling of Software Architectures</li><li> Lukas Renggli (Google, Switzerland) <br/> Practical Models in Practice</li><li> Markus Völter (itemis AG, Germany) <br/> Modeling and Programming: isn&rsquo;t it all the same?</li><li> Carl Worms & Ksenia Wahler (Credit Suisse, Switzerland) <br/> Services and Models in a large IT system</li></ul><p>Book it while it&rsquo;s hot. The early registration ends on December 1.</p>]]></description><dc:creator>Tudor Girba</dc:creator><guid isPermaLink="false">496469996</guid><feedburner:origLink>http://www.tudorgirba.com/blog/choose-forum-2012</feedburner:origLink></item></channel></rss>
