Coccinella - Development /devel Coccinella development en Tutorial: Facebook IM, Mail.ru IM, MySpace IM and Sametime support in 4 commits /facebook-mrim-myspace-sametime <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>A <em>complete developer tutorial</em> to add support for Facebook IM, Mail.ru IM, MySpace IM and Sametime to your instant messaging project:</p> <ol><li>First, commit <a href="http://coccinella.svn.sourceforge.net/viewvc/coccinella?view=rev&amp;revision=2675">Mail.ru IM icons</a>.</li> <li>Second, commit <a href="http://coccinella.svn.sourceforge.net/viewvc/coccinella?view=rev&amp;revision=2676">Facebook icons</a>.</li> <li>Then, commit <a href="http://coccinella.svn.sourceforge.net/viewvc/coccinella?view=rev&amp;revision=2677">MySpace IM and Sametime icons</a>.</li> <li>Finally, add some <a href="http://xmpp.org/registrar/disco-categories.html#gateway">gateway category</a> <a href="http://coccinella.svn.sourceforge.net/viewvc/coccinella?view=rev&amp;revision=2680">mappings</a>.</li> </ol><p>Coccinella 0.96.12 will be ready for upcoming support for Facebook IM, MySpace IM and Sametime in the third-party <a href="http://kraken.blathersource.org/">Kraken XMPP Gateway</a>.</p> <p><strong>Please contribute to the Kraken server gateway to improve the instant messaging experience with all your Facebook, MySpace and Sametime friends (and other chat system) using <a href="/about#xmpp">*any* open standard instant messaging program</a>!</strong></p> <p><a href="/whytransportsmatter">Transports matter!</a></p> <img title="Add Mail.ru IM contact and register to Mail.ru IM transport on jabber.ru" src="/stuff/mrim.png" alt="Add mrim contact and mrim transport" width="500" height="192" /></div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item odd"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Thu, 12 Mar 2009 22:33:08 +0000 sander 327 at /facebook-mrim-myspace-sametime#comments Mats Bengtsson 1959 - 2008 /mats-bengtsson <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><blockquote> <p><img title="Picture of Mats Bengtsson" src="/stuff/mats.jpg" alt="Mats Bengtsson in Sweden" width="500" height="436" /></p> <p><cite>Mats Bengtsson, the founder of Coccinella, passed away on November 29, 2008. He was born in 1959 and had a very successful career in academics and specifically in his field of interest, <a href="http://en.wikipedia.org/wiki/Theoretical_physics">theoretical physics</a>. Early in school he distinguished himself particularly in mathematics and he even produced his own math books in primary school when his teachers were not able to help him further on. He graduated at <a href="http://en.wikipedia.org/wiki/Lund_University">Lund university</a> as an engineer, continued as a research student in theoretical physics and presented his doctoral thesis, ”<a href="http://en.scientificcommons.org/33798874">Parton showers in a phenomenological context</a>”, at the age of 28 years. He spent a post-doc period in Germany (Aachen), but previously he had also been at the <a href="http://cern.ch/">Cern laboratory</a>.</cite></p></blockquote> <!--break--> <blockquote><p><cite>After his exams he started to work at <a href="http://en.wikipedia.org/wiki/ABB_Asea_Brown_Boveri">ABB</a> for a short period of time, before he ended up in <a href="http://en.wikipedia.org/wiki/Link%C3%B6ping">Linköping</a> where he received a research position at <a title="Totalförsvarets forskningsinstitut" href="http://www.foi.se/FOI/templates/Page____6630.aspx">FOI</a>, the Swedish Defence Research Agency. In Linköping he and his partner Mari stayed for quite a few years. During his entire life Mats had several hobbies such as <a title="Aerial sport of gliding" href="http://en.wikipedia.org/wiki/Gliding">gliding</a> and <a href="http://en.wikipedia.org/wiki/Rail_transport_modelling">model railroading</a>. Unfortunately, Mats was struck by a chronic condition during the last 15 years of his life, but was able to work hard in periods on his special project, the Coccinella program which is an interactive communicative Internet program. He initiated and developed this computer program and released it as open-source on the Net so others may contribute to the program’s development and refinement over time. Hopefully Coccinella will remain and be continuously upgraded in Mats’ spirit and visions.</cite></p> <p><b>--<br />By Mari Lundberg, Mats girlfriend</b></p> </blockquote> <p>Coccinella 0.96.12 <em>*will*</em> be released on March 18, 2009. However, this release will not introduce many changes because Mats was the driving force of the Coccinella project. Therefore, I will blog over the next few months about interesting projects and challenging features that Mats had on his TODO list. Hopefully, this will interest you to build further on the shoulders of a giant!</p></div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/matben" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Matben&#039;s blog</a></div><div class="field-item odd"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item even"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Tue, 13 Jan 2009 22:30:19 +0000 sander 312 at /mats-bengtsson#comments Synchronized Releases and Greg Kroah-Hartman /synchronized-greg <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><div style="float: right; width: 240px; margin: 0 0 10px 10px;"><img title="Hippopotamuses swimming in synchronicity" src="/stuff/synchronized-swimming-hippopotamuses.jpg" alt="Synchroneous swimming hippopotamuses" width="240" height="160" /><br /><em>Credit: <a title="TiggerT" href="http://flickr.com/photos/taritm/2422108971/" rel="nofollow">TiggerT</a>, License: <a title="Creative Commons Attribution-Noncommercial-No Derivative Works 2.0 Generic" href="http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en" rel="nofollow">by-nc-nd</a></em></div> <p>O'Reilly <a title="How Linux Supports More Devices Than Any Other OS, Ever" href="http://broadcast.oreilly.com/2008/10/how-linux-supports-more-device.html">interviewed Greg Kroah-Hartman</a> (<a href="http://www.kroah.com/log/">log</a>), the Linux kernel developer who founded the <a title="People who code Linux hardware drivers for free" href="http://www.linuxdriverproject.org">Linux Driver Project</a>. The interview explains how the Linux Driver Project can support the weirdest Japanese USB devices, how Linux is being developed, why binary only kernel drivers are illegal, how a time-based release schedule benefits Linux, and how Greg thinks about synchronized releases. Although all these topics are interesting to read, I will restrict this blog post to the latter 2 of them.</p> <!--break--> <h3><a title="#timebased" name="timebased" id="timebased">Time-Based Release Schedule</a></h3> <p>Since 2.6, the Linux kernel has a time-based release schedule. As you can see, Greg really favours this development model (we also do): </p> <ul><li><cite>It is working very well.</cite></li> <li><cite>It is very predictable.</cite></li> <li><cite>It increased our rate of developers, our number of companies participating, our number of developers participating.</cite></li> <li>There is <cite>better feedback.</cite></li> <li><cite>We've got more people testing it out that way. People will only test when a release comes out.</cite></li> <li>The traditional "If it ain't broke, don't fix it" software engineering model is obsolete: <cite>the world changes, so we have to change in regards to that. Linus's famous quote is Linux is not intelligent design; it's evolution. We evolved the kernel.</cite></li> <li>Contributors plan their contributions: <cite>it's all volunteer-based. If you say "Here is when the timeframe is going to be" everybody knows that if they want to get something done they have to get it in by then. Otherwise, they'll work on it at their own pace.</cite></li> </ul><h3><a title="#synchronized" name="synchronized" id="synchronized">Synchronized Releases</a></h3> <p>Even though we both agree that time-based release schedules are a good thing, Greg has a different idea about <a title="The benefits of Synchronized Releases" href="/synchronized-releases">synchronized releases</a>. Maybe I can change his mind by debunking some myths about synchronized releases:</p> <blockquote cite="http://broadcast.oreilly.com/2008/10/how-linux-supports-more-device.html"><p><cite>I think Mark is asking other people to do his job for him. He has a very small number of developers; he has a very limited development staff. [..] If you look, wanting to rely on other people to stabilize that integration is a great thing. If other people can do your work for you that's a wonderful thing to get them to do; I don't think that's going to happen.</cite></p></blockquote> <ul><li> <p><strong>Myth 1: Mark invented synchronized releases to free ride on the community.</strong></p> <p>Wrong -- Mark did not invented this. The Eclipse Foundation did. Not because they wanted to free ride on the community, but because they wanted to <strong>spur adoption by providing more value for their users.</strong></p> </li> <li> <p><strong>Myth 2: Mark wants this because he has not enough employees.</strong></p> <p>Wrong -- One of the issues of the open source community is that the same integration work needs to be done over and over again by different people in different projects. Synchronized releasing has the potential to increase the overall productivity of the whole community by reducing duplicate integration work. Hence, more can be done with the same number of people.</p> </li> <li> <p><strong>Myth 3: Nobody will ever synchronize their releases.</strong></p> <p>Wrong -- Gnome and Ubuntu are doing so, Eclipse is <a title="Goal of Ganymede Simultaneous Release" href="http://wiki.eclipse.org/Ganymede_Simultaneous_Release#Goal">synchronizing</a> (you really should read their goal!), we are doing <a title="Our release process" href="/synchronized-coccinella">synchronized releases at Coccinella</a>, <a href="http://bergie.iki.fi/blog/long-term_support_for_midgard-ragnaroek_is_here/">Midgard CMS</a> is synchronized, and possibly others.</p> </li> </ul><blockquote cite="http://broadcast.oreilly.com/2008/10/how-linux-supports-more-device.html"><p><cite>Trying to line up Red Hat and Novell and Ubuntu--just business model and internal business concern with each other is not fair to ask of a way of companies that compete against each other.</cite></p> <p><cite>We have a very weird environment at Linux in the fact that there's these different companies that at the management level and the marketing level are competing. They're competitive companies. Red Hat and Novell go after the same customers, the same install base, and they're very, very competitive yet they have the exact same engineering staff. Red Hat is Novell's engineering staff and Novell is Red Hat's engineering staff. You can't do stuff to make that upset. It's a very, very weird model but just trying to align the business model and their timeframe of what they wish to do and trying to tell the Open Source community that you're going to line up with these businesses at the moment in time is a very unfair thing to ask.</cite></p></blockquote> <ul><li> <p><strong>Myth 4: Synchronized releases involve competitors which is not possible as they can't collaborate.</strong></p> <p>Wrong -- <a href="http://en.wikipedia.org/wiki/Strategic_alliance">Strategic alliance</a> is the business concept for companies working together. Yes, <a title="Are You Overlooking Strategic Alliances Because You Call Them Competitors?" href="http://www.powerhomebiz.com/vol24/competitors.htm">even competitors</a>. There exists <a title="Longevity of strategic alliances between competitors: A dynamic value creation approach" href="http://ideas.repec.org/p/ebg/iesewp/d-0404.html">research</a> about this.</p> </li> </ul></div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item odd"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Mon, 03 Nov 2008 00:51:17 +0000 sander 296 at /synchronized-greg#comments Jabber is Confusing /jabber-is-confusing <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><div style="float: right; width: 240px; margin: 0 0 10px 10px;"><img title="Progressing ladybug on grass" src="/stuff/ladybug-grass-1.jpg" alt="Ladybug on grass" width="240" height="171" /><br /><em>Credit: <a title="nutmeg66" href="http://flickr.com/photos/rachel_s/2108648609/" rel="nofollow">nutmeg66</a>, License: <a title="Creative Commons Attribution-Noncommercial-No Derivative Works 2.0 Generic" href="http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en" rel="nofollow">by-nc-nd</a></em></div> <p>'Jabber' is confusing, not only for Aunt Tilly, but even for <a title="TechCrunch: Cisco Picks Up Jabber for Collaboration, IM" href="http://www.techcrunch.com/2008/09/19/cisco-acquires-jabber-for-enterprise-im/">geeks</a>:</p> <blockquote cite="http://www.techcrunch.com/2008/09/19/cisco-acquires-jabber-for-enterprise-im/"><p><cite>Cisco announced today that it has acquired Jabber, an open-source IM and presence protocol used by Google Talk and Gizmo, for an undisclosed sum.</cite></p> <p><cite>Cisco didn’t get ‘Jabber.org’ the open-source server on the XMPP protocol,[..].</cite></p> <p><cite>Jabber is an application that we use throughout our office and is one helluva an IM.</cite></p> <p><cite>Any news on keeping Jabber Open source?</cite></p></blockquote> <!--break--> <h3><a title="#solution" name="solution" id="solution">Solution</a></h3> <p>Being devoted to a very friendly user experience in Coccinella, we decided a long time ago to <strong>progressively drop all references to 'Jabber'</strong>. For instance, whereas Coccinella formerly was described as a <cite>'Jabber client'</cite>, we do now talk about <em>'instant messaging client'</em>, optionally adding <em>'using the open standard XMPP protocol'</em> for geeks. Even the <a href="/JabberLib">JabberLib library</a> is being <a title="xmpp.tcl" href="http://coccinella.cvs.sourceforge.net/*checkout*/coccinella/coccinella/xmpp/xmpp.tcl?content-type=text%2Fplain">rewritten from scratch</a>. <strong>The long-term goal of this marketing decision is to kill the confusion barrier.</strong></p></div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item odd"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Sat, 20 Sep 2008 02:41:29 +0000 sander 286 at /jabber-is-confusing#comments Translate Coccinella 0.96.10 /translate-0.96.10 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Do you want to translate the upcoming Coccinella 0.96.10, planned for September 24th? Do you want to update any of the existing translations? Or do you just want to see which languages are ranking best? Then read on.</p> <!--break--><p>Translation status:</p> <ol><li><strong>English (en): updated</strong></li> <li><strong>Dutch (nl): updated</strong></li> <li><strong>Spanish (es): updated</strong></li> <li><strong>Italian (it): updated</strong></li> <li><strong>Czech (cs): updated</strong></li> <li><strong>German (de): updated</strong></li> <li><strong>Polish (pl): updated</strong></li> <li><em>Swedish (sv): 162 new strings, translator needed!</em></li> <li><em>French (fr): 533 new strings, translator needed!</em></li> <li><em>Korean (ko): 665 new strings, translator needed!</em></li> <li><em>Danish (da): 868 new strings, translator needed!</em></li> <li><em>Russian (ru): 921 new strings, translator needed!</em></li> </ol><p><strong>In case you want to update any of the above translations</strong>, please contact me, for example by adding a comment to this post. You best do not start right ahead to prevent 2 or more people updating the same translation.</p> <p><strong>In case you want to contribute a new translation</strong>, please download <a title="Zipfile containing a template" href="/stuff/lang.msg.zip">lang.msg.zip</a>, read the <a href="/translate">translator instructions starting from step 4</a>, translate the file, and send it to me. Of course, also this time it's a good idea to notify me in advance that you will do the translation. Remember that you don't have to translate all strings at once! You also can just start translating the most important parts of the interface, like menus, the setup assistant, login dialog, chat dialog, and so forth.</p> <p>Coccinella will be so much easier with your translation!</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item odd"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Wed, 17 Sep 2008 07:43:15 +0000 sander 284 at /translate-0.96.10#comments Tcl/Tk - Recent Advances /tcl-tk-recent-advances <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><div style="float: right; width: 197px; margin: 0 0 10px 10px;"><img title="Ladybug on the move" src="/stuff/warm-ladybug-1.jpg" alt="Ladybug with warm background" width="197" height="240" /><br /><em>Credit: <a title="freebird4" href="http://flickr.com/photos/freebird4/432305693/" rel="nofollow">freebird4</a>, License: <a title="Creative Commons Attribution-Noncommercial 2.0 Generic" href="http://creativecommons.org/licenses/by-nc/2.0/deed.en" rel="nofollow">by-nc</a></em></div> <p>There has been a lot of news in the Tcl/Tk community the last month or so, and I thought it's time to compile them here since <a href="/download">Coccinella</a> is written in Tcl. Tcl's windowing toolkit, Tk, has been "known" to be ugly and outdated. With the 8.5 release last December the tile package, now named ttk (Themed Tk), is included in the core which brings true native widgets on Windows (yes, Vista too) and Mac. Since Mac is my native platform, I can tell you that Tk beats both Qt and gtk, but perhaps I haven't seen the latest of them.</p> <!--break--> <p>The question is then, where does this put Linux/Unix? There are a number of themes included in ttk which looks OK on these platforms, but there is nothing exactly like Qt or gtk. Instead, there have been a <a href="http://www.ellogon.org/petasis/index.php?option=com_content&amp;task=view&amp;id=24&amp;Itemid=40">tileqt package</a> written by Georgios Petasis which has delivered true Qt widgets. With ttk in the core, there have been some initial problems getting this to work due to missing stub tables etc., but it should work with the latest Tcl/Tk 8.5.3 release.</p> <p>Just a few days ago the very same person <a href="http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/854288686e568ebb#">announced</a> <a href="http://www.ellogon.org/petasis/index.php?option=com_content&amp;task=view&amp;id=29&amp;Itemid=45">tilegtk</a> which does the same thing for the gtk toolkit. This is very, very, good news. Imagine that you can switch theme, and toolkits, on the fly without any program restart. This already works with the other themes and will likely work with tilegtk as well. My question to you is: which other toolkit has this flexibility?</p> <p>I have already mentioned my <a href="/svg-graphics">recent advances with tkpath</a> in this blog thread, and I will mention it again. This is the super canvas which is lacking in Tk, and which will bring not only tight SVG support, but also make Tk come on par with canvas like widgets from other toolkits. Still more to do.</p> <p>Recently my attention turned to <a href="http://webkit.org/">WebKit</a> which has its <a href="http://en.wikipedia.org/wiki/WebKit">history</a> of its own. Dual licensed as LGPL/BSD it fits the Tcl community well. I have looked at some of the sources, and judging from the wxWidgets backend, it doesn't look terribly difficult to make it a Tk widget, but there could be show stoppers, like event loop integration etc.</p> <p>When all this comes together it will make Tk a very competitive toolkit.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/matben" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Matben&#039;s blog</a></div><div class="field-item odd"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div></div></div> Fri, 08 Aug 2008 12:04:25 +0000 matben 274 at /tcl-tk-recent-advances#comments SVG Graphics /svg-graphics <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Just released is my tkpath package version 0.3.0 which for the first time brings a new canvas widget to Tcl/Tk which conforms to a more "modern" 2D drawing model found in <a href="http://www.w3.org/TR/SVG11/">SVG</a>.</p> <p>My motiviation for producing close to 43 thousand lines of C code for just this widget is because it is necessary for adding SVG graphics to the whiteboard in Coccinella. It doesn't claim to be a full featured SVG viewer. In fact, there is no support for translating svg tkpath yet, but since I have carefully designed the widget with SVG in mind, it shouldn't be too difficult to write such script code. SVG is really big and I don't claim every part is supported. For instance, clipping is yet unsupported. Remember, it is still version 0.3.0. </p> <p>For the curious you can visit the <a href="http://tclbitprint.sourceforge.net/">SourceForge page</a> where some screenshots can be found and the complete sources can be checked out. Before I have written a svg2tkp importer I don't have much fancy graphics to show.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/matben" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Matben&#039;s blog</a></div><div class="field-item odd"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div></div></div> Thu, 17 Jul 2008 13:31:39 +0000 matben 256 at /svg-graphics#comments Synchronized Releases in Practice /synchronized-coccinella <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>After reading <a title="Read about the huge potentials of synchronization for the broader open-source community" href="/synchronized-releases">The Blessings of Synchronized Releases</a>, you probably wonder <strong>how we practically organize synchronized releases at the Coccinella project</strong>. In this article I will give you some insight into our release process.</p> <p><img title="Synchronized flying to next release" src="/stuff/synchronized-flying-geese.jpg" alt="Synchronized flying geese" width="500" height="372" /><br /><br /><em>Credit: <a title="Greg7" href="http://flickr.com/photos/greg7/478871707/" rel="nofollow">Greg7</a>, License: <a title="Creative Commons Attribution-Noncommercial 2.0 Generic" href="http://creativecommons.org/licenses/by-nc/2.0/deed.en">by-nc</a></em></p> <!--break--><h3><a title="#how" name="how" id="how">How?</a></h3> <p>Synchronized releases are implemented at the Coccinella project this way:</p> <ol><li>Since <a title="Coccinella 0.96.2 was released on 19 September 2007" href="/coccinella-0.96.2">19 September 2007</a> we synchronize each 6 months with major Gnome releases.</li> <li>Because only 2 releases each year is too few for a fast-moving instant messaging client like Coccinella, we also provide you with about 2 or 4 additional releases each year.</li> <li>These additional releases in between the synchronized releases are not synchronized to anything.</li> <li>However, we can say that there is a release roughly every 3 months. So, you can at least <a title="Download Coccinella" href="/download">download 4 Coccinella releases</a> each year.</li> </ol><h3><a title="#value" name="value" id="value">Added Value?</a></h3> <p>You can choose:</p> <ol><li><strong>Predictable synchronized releases every 6 months</strong> -- For non-business users, business users, and downstream distributions who would like to <a title="Tom Callaway is trying to package the pre-built binary bits as clean Fedora packages" href="http://spot.livejournal.com/295668.html">include Coccinella in their repositories</a>.</li> <li><strong>Nonsynchronized Releases in between</strong> -- If you can't wait 6 months for new features in Coccinella.</li> <li><strong>Daily <a title="Download daily breakfast builds of Coccinella" href="/breakfast">breakfast builds</a></strong> -- If you want to hunt for bugs in the newest development stuff.</li> <li><strong>Real-time <a href="http://sourceforge.net/cvs/?group_id=68334">development version</a></strong> -- For developers, hardcore bug hunters, and geeks who can't live without last-minute updates.</li> </ol></div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item odd"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Sat, 05 Jul 2008 22:55:30 +0000 sander 240 at /synchronized-coccinella#comments The Blessings of Synchronized Releases /synchronized-releases <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><strong>People believe the idea of synchronized jumping to releases originates from Mark Shuttleworth.<br />People are wrong!</strong></p> <img title="Synchronized jumping from release to release" src="/stuff/synchronized-jumping-dogs.jpg" alt="Synchronized jumping dogs" width="500" height="334" /><br /><em>Credit: <a title="Xanboozled" href="http://flickr.com/photos/xanboozled/1325199806/" rel="nofollow">Xanboozled</a>, License: <a title="Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic" href="http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en" rel="nofollow">by-nc-sa</a></em> <!--break--> <p>Back in 2006, the <a title="Eclipse Foundation synchronizes largest ever open-source project release" href="http://www.adtmag.com/article.aspx?id=18780">Eclipse Foundation pioneered synchronized releases</a> with Callisto:</p> <blockquote cite="http://www.adtmag.com/article.aspx?id=18780"><p><cite>The Eclipse Foundation is making history this week with what looks to be the largest ever synchronized open-source project release. The Callisto Simultaneous Release initiative coordinates 10 Eclipse project upgrades [..]</cite></p></blockquote> <p>Only since 2007, about a year after Callisto, Shuttleworth started <a title="Overview of Shuttleworth's points (Akademy 2007)" href="http://kdemonkey.blogspot.com/2008/05/singing-in-tune.html">singing in tune</a>. Nonetheless, the impact was greater as he continued practicing the <a title="The Art of Release" href="http://www.markshuttleworth.com/archives/146">art of synchronicity</a> with <a title="Discussing free software syncronicity" href="http://www.markshuttleworth.com/archives/150">much enthusiasm</a>. Later, the choir grew when others started singing about the <a title="Singer: Tristan Rhodes" href="http://useopensource.blogspot.com/2007/07/benefits-of-regular-release-schedule.html">benefits of a regular release schedule</a>, about <a title="Singer: Meet Barnaby" href="http://updates.storsint.com/wordpress/?p=22">cross project synchronisity</a>, about <a title="Singer: etbe" href="http://etbe.coker.com.au/2008/05/13/release-dates-for-debian/">release dates for Debian</a>, about <a title="Singer: Aaron Seigo" href="http://aseigo.blogspot.com/2008/05/discussing-free-software-syncronicity.html">free software syncronicity</a>, and about <a title="Singer: Tristan Rhodes" href="http://useopensource.blogspot.com/2008/04/synching-open-source-release-schedule.html">synching the open source release schedule</a>.</p> <p>Instead of repeating what has already been said in the above writings, I will focus on explaining the key blessings of synchronized releases. <strong>What are the huge potentials of synchronization for the broader open-source community?</strong> Why did <a title="First synchronized Coccinella release on 19 September 2007" href="/coccinella-in-black">we adopted the synchronization strategy</a>? And why should your project consider adopting it as well?</p> <h3><a title="#marketing" name="marketing" id="marketing">Stevenotes and Windows Launch Events</a></h3> <p>What do <a title="Slang term for keynote speeches by Apple CEO Steve Jobs" href="http://en.wikipedia.org/wiki/Stevenote">Stevenotes</a> and <a title="Not everyone experiences the Wow of Vista, though" href="http://sethgodin.typepad.com/seths_blog/2007/01/wow.html">Windows launch events</a> have in common? Yes, they both result into a flood of publicity. When Steve Jobs speaks, pregnant women's magazines write about it. <strong>When Microsoft spends a little money, the television journal will show us <a title="ParisDailyPhoto: The Launch of Windows Vista" href="http://www.parisdailyphoto.com/2007/01/launch-of-windows-vista.html">impressive fireworks</a> that make New Year's Eve look like a non-event.</strong> All media eagerly report about these happenings!</p> <p>The picture is very different for the open-source world. When a small open-source projects such as Coccinella issues a new release, you may at best see a review by a blogger or by some obscure local computer magazine. It gets slightly better with bigger projects which may attract the attention of several bloggers and a dozen computer related news sites. Even more, the real big projects may sometimes even go a bit further. However, no open-source project approximates what Apple and Microsoft do. No pregnant women's magazine writes about <a title="Firefox 3 Press Release" href="http://www.mozilla-europe.org/en/press/2008/06/17/1171-mozilla-releases-firefox-3-and-redefines-the-web-experience">Firefox 3</a> and the television journal will not be interrupted for a boring interview with some geeks about Ubuntu's <a title="Intrepid Alpha 1 released" href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-June/000440.html">Intrepid Ibex</a>.</p> <p>How can we copy the marketing successes of Apple and Microsoft to open-source? Some may suggest we need someone like Steve Jobs, whilst others would like to spend more money on launch events. They are both wrong! <strong>Trying to copy Steve Jobs or Microsoft's deep pockets is mission impossible.</strong> If Apple or Microsoft notices we are trying to catch up, they will simply improve their key strategic advantages and catching up will become even more challenging for us. What do we have to do then?</p> <p>Community is in what we excel; <em>our</em> key strategic advantage. <strong>To repeat the marketing success of Apple and Microsoft we need to leverage the community. Massive synchronized releasing is the perfect tool to achieve this leverage.</strong> By synchronizing, release related marketing efforts of multiple communities are focused at the same moment and can leverage each other. The rhythm of so much projects doing their marketing efforts at the same moment will shake the Internet. I'm sure the pregnant women's magazine and the television journal will feel these shakes...</p> <p>Yes, massive synchronized release cycles have the <strong>potential to create a bigger impact</strong> than Stevenotes and Windows launch events.</p> <h3><a title="#planning" name="planning" id="planning">Planning Drupal Upgrade</a></h3> <p>This website is still powered by the old Drupal 5. Even though its successor has already been <a title="Drupal 6.0 was released on February 13" href="http://drupal.org/drupal-6.0">released months ago</a>, we cannot tell you when exactly the Coccinella website will be upgraded to version 6. If you are also running a Drupal based website you should have correctly guessed that our website depends on third-party modules. Most of these modules did not had an updated version available at the time of the 6.0 release. Even today there are still plenty of them that have no stable 6.x version or that have no version at all for 6.x! Of course we can look around for alternative modules or we can just drop website functionality, but obviously, both will not contribute to a painless upgrade experience.</p> <p><strong>I chose the above example because it clearly shows you that synchronized releases also benefit non-business users and not only business users.</strong> If Drupal and its third-party modules had adopted a synchronized release scheme, we could have switched shortly after the 6.0 release, without the need to lose time on looking for alternative modules, and with lower upgrade risks. It would also have been possible for us to plan the website upgrade months before the actual release of Drupal 6. For businesses this translates into 3 cost savings: labor cost savings, risk protection savings, and savings thanks to the possibility to plan the upgrade a long time in advance (e.g. hiring additional employees to assist with the deployment is cheaper when it is done a long time in advance than when it is done only a few days before the deployment). Hence, synchronized releasing adds value for <em>both</em> business and non-business users, upgrading open-source software will be easier and cheaper.</p> <p>In the long run, we may see an additional blessing of massive synchronized releases in the planning area. When choosing a release strategy for their software, companies who provide cross-platform software may decide to align their release processes to the platform with the best predictable release dates. Accordingly, <strong>commercial applications, games, and hardware drivers may closely follow the synchronized release cycle of the open-source world.</strong> Compatibility between commercial software and new versions of open-source software thus could be greater than compatibility between commercial software and new versions of proprietary software.</p> <h3><a title="#collaboration" name="collaboration" id="collaboration">Release-Time Collaboration</a></h3> <p>When open-source projects synchronize their releases, they all will at any time be in a similar development stage and thus their priorities will better match. It should be clear that collaboration among projects is easier when all noses are pointed in the same direction. Projects will face the same problems and can better understand the needs of other projects. Hence, discussions can be shorter and projects can move forward sooner. More time can be used for coding and thus productivity will increase. <strong>Open-source projects will be able to provide their users with more new features, they will be able to fix more bugs, and code freezes can be shorter without losing software quality.</strong></p> <h3><a title="#next" name="next" id="next">What's Next?</a></h3> <p>Next week I will write about <a title="Synchronized Releases in Practice" href="/synchronized-coccinella">how we practically implemented synchronized releases</a> at Coccinella. As our experience will show you, adopting synchronized releases does not mean your project loses its freedom. There are multiple ways to implement the synchronization strategy.</p></div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div><div class="field-item odd"><a href="/sander" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Sander&#039;s blog</a></div></div></div> Sun, 29 Jun 2008 22:11:54 +0000 sander 233 at /synchronized-releases#comments Tcl/Tk 8.5 /node/236 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>I have just removed the compatibility code for Tcl/Tk 8.4 in cvs, and Coccinella therefore now requires Tcl/Tk 8.5. Since 8.5 was released already in December last year I thought that five months should be enough to allow for people running Coccinella from sources to get a Tcl/Tk 8.5 installation. </p> <!--break--><p>Well, there is not much to install if you run a single executable <a href="http://www.equi4.com/tclkit/download.html">tclkit</a> which can be found for most platforms. If you don't find your platform there it is not difficult to build Tcl/Tk yourself. Since the tile package is contained in the core Tk of 8.5, only the treectrl and tkpng packages require additional builds.</p> <p>Speaking of 8.5, the direct reason the switch is made now is that I used the <a href="http://tcl.tk/man/tcl8.5/TclCmd/dict.htm">dict command</a> for the new themeing engine. As typical with Tcl, commands (and manual pages) look deceptively simple. The hardcore programmer who is used to pointers and reference counts can't understand that Tcl has it all built in. Dictionaries can be seen as a hash table that maps from arbitrary strings to arbitrary strings. But here it can also contain other dicts in a recursive manner. This makes it very useful for representing a kind of arrays with multiple keys. Before 8.5, the standard way was to form a string like arrayName($key1,$key2) where "$key1,$key2" was used to lookup the value. This was clearly very ugly. With dicts you set values as:</p> <pre> dict set myDict $key1 $key2 ... $value </pre><p>which implicitly creates a hierarchy of dictionaries.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Story type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/matben" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Matben&#039;s blog</a></div><div class="field-item odd"><a href="/devel" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Development</a></div></div></div> Tue, 27 May 2008 14:40:49 +0000 matben 236 at /node/236#comments