<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Duchess &#187; articles</title>
	<atom:link href="http://jduchess.org/blog/category/articles/feed" rel="self" type="application/rss+xml" />
	<link>http://jduchess.org</link>
	<description>Globally Connecting Women in Java Technology</description>
	<lastBuildDate>Mon, 30 Jan 2012 18:42:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Birth of Duchess Indonesia</title>
		<link>http://jduchess.org/blog/the-birth-of-duchess-indonesia</link>
		<comments>http://jduchess.org/blog/the-birth-of-duchess-indonesia#comments</comments>
		<pubDate>Wed, 30 Nov 2011 14:03:36 +0000</pubDate>
		<dc:creator>Agnes Crepet</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[duchess]]></category>
		<category><![CDATA[DuchessIndonesia]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=1855</guid>
		<description><![CDATA[On the first of November, some Indonesian girls launched Duchess Indonesia! I was lucky because I was here! For me it was a wonderful experience. I met some girls with awesome motivation and enthousiasm! All started when I got in touch with Frans Thamura (from Indonesian JUG and Meruvian). As I was doing a world [...]]]></description>
			<content:encoded><![CDATA[<p><a title="jduchess-id by jDuchess, on Flickr" href="http://www.flickr.com/photos/jduchess/6398258003/" target="_blank"><img class="alignleft size-medium wp-image-2534" src="http://farm8.staticflickr.com/7030/6398258003_f5a2acb884.jpg" alt="jduchess-id" width="150" height="150" /></a><br />
On the first of November, some Indonesian girls launched Duchess Indonesia! I was lucky because I was here! For me it was a wonderful experience. I met some girls with awesome motivation and enthousiasm!<br />
All started when I got in touch with <a href="http://www.facebook.com/fthamura">Frans Thamura</a> (from <a href="http://tech.groups.yahoo.com/group/jug-indonesia/">Indonesian JUG</a> and <a href="http://www.meruvian.org/">Meruvian</a>). As I was doing a world trip I contacted Frans to propose him a talk about Design Patterns. Frans invited me and my co geek-trotter, <a href="http://twitter.com/clacote">Cyril</a>, to do this talk in Jakarta, and as he knew that I was involved in Duchess Network, he told me that in his school <a href="http://www.meruvian.org/">Meruvian</a>, a lot of women are involved.</p>
<p><a title="meruvian by jDuchess, on Flickr" href="http://www.flickr.com/photos/jduchess/6429939671/"><img class="alignright size-medium wp-image-2534" src="http://farm8.staticflickr.com/7003/6429939671_0dca661789_m.jpg" alt="meruvian" width="240" height="180" /></a> <a href="http://www.meruvian.org/">Meruvian</a> Foundation is a non-profit organization located in Jakarta, focused on Java and OpenSource. This Scool was founded by Frans Thamura, teaching computer science and Java to young people between 16 and 21 years old. &#8220;Meruvian is dedicated to develop people skill to filling the skillset of people to get a global standard and bring influence to their ecosystem. We facilitate the efforts of private sector entities to support the development of national education through their CSR (Corporate Social Responsibility) programs by managing their CSR funds. We also provide Human Resource Development to close the gap between industries and educations, which stronger in this millenium.&#8221;</p>
<p>So, I started to exchange with some ladies, <a href="http://id-id.facebook.com/dainyr">Mila Yuliani</a>, <a href="http://id-id.facebook.com/netoya.ozora">Netoya (Nety) Ozora</a> and <a href="http://id-id.facebook.com/senTha.ae">Senja Ananda</a>, all from Meruvian. They explained to me that they were very motivated to launch a Duchess Indonesian group. And they managed everything with a strong efficiency, they opened two websites : <a href="http://id-id.facebook.com/jduchess.id">a facebook account</a> and <a href="http://www.jduchess.or.id/">Duchess Indonesia website</a>. And they organized by themselves a very great event for the launching Duchess Indonesia in <a href="http://www.gunadarma.ac.id/">Gunadarma University</a>.</p>
<p><a title="jduchess launching by jDuchess, on Flickr" href="http://www.flickr.com/photos/jduchess/6429939669/"><img class="alignright size-medium wp-image-2534" src="http://farm7.staticflickr.com/6098/6429939669_674bde3035_m.jpg" alt="jduchess launching" width="240" height="160" /></a> <a title="jduchess launching 2 by jDuchess, on Flickr" href="http://www.flickr.com/photos/jduchess/6429939667/"><img class="alignright size-medium wp-image-2534" src="http://farm8.staticflickr.com/7142/6429939667_0c7d086af1_m.jpg" alt="jduchess launching 2" width="240" height="160" /></a><br />
For the lauchning, Cyril and me were welcomed by the president of the University, a charming woman! And we met all the staff of the University (specially Adang Suhendra, I Made Wiryana and Hanum Putri) and Meruvian people of course! We started the morning together with Cyril (in front of 180 people) doing a talk about our experience about being a Java developer in Europe. Then, Frans, Mila and Senja did some interested talks about Meruvian and their brillant experience and Meruvian expertise. Another person, Faisal Yusman, spoke about his Java experience.<br />
<a title="conf_jakarta by jDuchess, on Flickr" href="http://www.flickr.com/photos/jduchess/6429939661/"><img class="alignright size-medium wp-image-2534" src="http://farm8.staticflickr.com/7008/6429939661_ec7664309b_m.jpg" alt="conf_jakarta" width="240" height="160" /></a><a title="pre_conf by jDuchess, on Flickr" href="http://www.flickr.com/photos/jduchess/6429939659/"><img class="alignright size-medium wp-image-2534" src="http://farm8.staticflickr.com/7142/6429939659_3e240cd645_m.jpg" alt="pre_conf" width="240" height="160" /></a><br />
At the end, it was the Duchess Indonesia launching with a nice video-clip! Mila explained the aim of Duchess Indonesia : connecting Indonesian women in Java Technology. Their mission is to promote women in this sector and to provide a platform through which women can connect with each other and get involved in the greater Java community. They want to organize workshops and social events, participate in existing Java User Group and connect with each other online and offline at Java Conferences around the world. Mila said that they welcome all women who are interested in Java technology, including developers, architects, testers, business analysts, managers and others. &#8220;We believe that women have an essential role to play in the future of IT as it evolves in the global economy. Join us and help make Duchess into something great !!&#8221;. After the launching, in the afternoon, Cyril and I did our workshop about Design Patterns and we did the same talk the next day in front of other students in computing. We were surprised about one thing : there is a lot of women students in Indonesia (more than 50%). In Europe with the sad example of <a href="http://devoxx.com/">Devoxx</a> where only 5% of attendees are women (read <a href="https://cfalguiere.wordpress.com/2011/11/27/devoxx-2011-and-women/">this interesting feedback by Claude Falguière</a>, a Duchess France leader, about Devoxx and women), we should follow the example of Indonesia!</p>
<p>I hope all the best for Duchess Indonesia. And congratulations for Mila, Nety and Senja!</p>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/the-birth-of-duchess-indonesia/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Birth of Duchess Africa</title>
		<link>http://jduchess.org/blog/the-born-of-duchess-africa</link>
		<comments>http://jduchess.org/blog/the-born-of-duchess-africa#comments</comments>
		<pubDate>Sun, 18 Sep 2011 09:50:25 +0000</pubDate>
		<dc:creator>Agnes Crepet</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[duchess]]></category>
		<category><![CDATA[DuchessAfrica]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=1476</guid>
		<description><![CDATA[Last august, Stella and Edwidge, two new African Duchesses, created a new group of Duchess : Duchess Africa. Their goal is to enable African women&#8217;s access to careers in computer science in general, and why not in Java development. In Africa, few girls go to school, let alone access to scientific studies, so there are [...]]]></description>
			<content:encoded><![CDATA[<p><a title="logo_duchess_africa_classique by jDuchess" href="http://www.flickr.com/photos/jduchess/6152396844/" target="_blank"><img class="alignleft size-medium wp-image-2534" src="http://farm7.static.flickr.com/6186/6152396844_7abd1ccca7_o.jpg" alt="logo_duchess_africa_classique by jDuchess" width="160" /></a> Last august, Stella and Edwidge, two new African Duchesses, created a new group of Duchess : Duchess Africa. Their goal is to enable African women&#8217;s access to careers in computer science in general, and why not in Java development. In Africa, few girls go to school, let alone access to scientific studies, so there are very few female computer engineers. Stella Avit Barbour and Edwidge Louise Dogny are beginners in Java. It all started this summer when <a href="http://twitter.com/agnes_crepet">Agnes Crépet</a>, a Duchess France, has decided to be a Java trainer for few weeks as volunteer in Lomé (Togo). Stella and Edwidge were among the students. Agnes spoke about the network of Duchess. Edwidge and Stella have been thinking that it would be very interesting to create a group of Duchess in Africa and particularly in West Africa. The training were held in Togo, but Stella and Edwidge are Ivorian and live in Abidjan.</p>
<p><a title="logo_duchess_africa by jDuchess" href="http://www.flickr.com/photos/jduchess/6152396798/" target="_blank"><img class="alignright size-medium wp-image-2534" src="http://farm7.static.flickr.com/6065/6152396798_5ab3aaa5d2_o.png" alt="logo_duchess_africa by jDuchess" width="200" /></a> So on last August 13th, at the session of <a href="http://java.net/projects/togojug/pages/Home">Togo JUG</a> at the Lomé Catholic University, Stella and Edwidge (see photos) launched the group Duchess Africa. <a href="http://twitter.com/agnes_crepet">Agnes</a> was speaker of this session of Togo JUG, with <a href="http://twitter.com/clacote">Cyril Lacôte</a>. They proposed two talks: one on Design Patterns and another on agility. Between the two talks, Stella and Edwidge have presented their motivations about this group. Unfortunately  only few girls attended that day. But Stella and Edwidge are in contact with some motivated girls, even if they are not Java experts! You should know that there are not so many software developers in West Africa. As <a href="http://www.twitter.com/horalass">Horacio</a>,  TogoJUG leader, explained this very well to <a href="http://twitter.com/agnes_crepet">Agnes</a> and <a href="http://twitter.com/clacote">Cyril</a>, during the recording of the last <a href="http://www.cast-it.fr">Cast-IT podcast</a> (in French!): computer engineers are more likely to work on maintenance of the system or operation than software development. Decision-makers in IT management services still prefer to buy third-party software than to develop their own solutions! This explains why there are so few developers in West Africa (in Java or any other languages​​), even if mobility is tremendously growing (perhaps things can change)! This does not undermine the motivation of Africans! They are willing to travel many kilometers to attend conferences. They were more than fifty ones in this session of Togo JUG, on a Saturday morning! And hundreds of them journeyed for several days to attend <a href="http://www.jcertif.com/">JCertif</a>, the biggest Java Community Conference in Central Africa in Brazzaville, Congo!</p>
<p>&nbsp;<br />
<a title="Edwidge" href="http://www.flickr.com/photos/jduchess/6158208376/"><img src="http://farm7.static.flickr.com/6176/6158208376_077984786b_m.jpg" alt="Edwidge" width="250" /></a> <a title="Edwidge and Stella" href="http://www.flickr.com/photos/jduchess/6158208560/"><img src="http://farm7.static.flickr.com/6074/6158208560_3f2d42af2d_m.jpg" alt="Edwidge and Stella" width="250" /></a><br />
&nbsp;</p>
<p><a title="Edwidge Agnes and Stella" href="http://www.flickr.com/photos/jduchess/6152406874/" target="_blank"><img class="aligncenter size-medium wp-image-2534" src="http://farm7.static.flickr.com/6157/6152406874_8414963516_o.jpg" alt="Edwidge Agnes and Stella" width="620" /></a></p>
<p>The slides of Duchess Africa launch:</p>
<div style="width: 425px"><strong><a title="Duchess africa" href="http://www.slideshare.net/agnes_crepet/duchess-africa" target="_blank">Duchess africa</a></strong></p>
<div style="padding: 5px 0 12px">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/agnes_crepet" target="_blank">agnes_crepet</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/the-born-of-duchess-africa/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My Experience on the OSCON Programming Committee</title>
		<link>http://jduchess.org/blog/my-experience-on-the-oscon-programming-committee</link>
		<comments>http://jduchess.org/blog/my-experience-on-the-oscon-programming-committee#comments</comments>
		<pubDate>Mon, 29 Aug 2011 17:09:02 +0000</pubDate>
		<dc:creator>Regina ten Bruggencate</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[oscon]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=1414</guid>
		<description><![CDATA[I was asked to be a member of the programming committee of OSCON Java. Even though I had never done it before that was not a problem. Being a member means that you read all the proposals people sent in for the conference. To facilitate this the conference had a site where all the proposals [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked to be a member of the programming committee of OSCON Java. Even though I had never done it before that was not a problem. Being a member means that you read all the proposals people sent in for the conference. To facilitate this the conference had a site where all the proposals could be graded. The only rule was that OSCON is a developers conference so no commercial sales pitches. As is usual some people will sent in multiple proposals so I tended to select all the papers of one speaker and grade them. The comment most of the time in this case was great speaker but please 2 talks max per speaker so others get a change as well. There were so many great talks it was hard to choose. One of my criteria was do I know the speaker and would I go to this talk myself.  I have to say some talks were easy to grade as it was clear it was either to clearly a sales pitch, do not put head of marketing in your job title. Or the abstract was to vague or general.<br />
After the deadline for grading all the talks with the top 2 scores, out of 5, got put up for a second review. Also talks that had a big difference between the different grades got a second grading. From all these talks the program chairs together with the people of O&#8217;Reilly put together a great conference.</p>
<p>You can also join in and make your local conference even better by asking them if you can help. Most conferences can use all the help they can get and this way you can have a say in the content of the conference. They need people of all experience levels as the people coming to the conference also have different knowledge levels. And of course sent in your own proposals for sessions. And start small with a BOF or lightning talk. Most conferences now a days have special short sessions of 10 to 15 minutes for short talks. Or offer to organize a session for Duchess to practice your talk.</p>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/my-experience-on-the-oscon-programming-committee/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good events according to the Devnology crowd</title>
		<link>http://jduchess.org/blog/good-events-according-to-the-devnology-crowd</link>
		<comments>http://jduchess.org/blog/good-events-according-to-the-devnology-crowd#comments</comments>
		<pubDate>Sun, 10 Jul 2011 10:28:49 +0000</pubDate>
		<dc:creator>Linda van der Pal</dc:creator>
				<category><![CDATA[articles]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=1388</guid>
		<description><![CDATA[Following the discussion about good books was an inventory of good software development events and conferences to visit. GotoCon (Aarhus, Denmark &#8211; October 9-14) Øredev (Malmö, Sweden &#8211; November 7-11) Devoxx (Antwerp, Belgium &#8211; November 14-18) XPdays (Mechelen, Belgium &#8211; December 1-2) Spa conference (London, UK &#8211; June) TSSJS (Prague, Czech Republic &#8211; fall &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Following the discussion about good books was an inventory of good software development events and conferences to visit.</p>
<ul>
<li><a href="http://gotocon.com/">GotoCon</a> (Aarhus, Denmark &#8211; October 9-14)</li>
<li><a href="http://oredev.org/">Øredev</a> (Malmö, Sweden &#8211; November 7-11)</li>
<li><a href="http://www.devoxx.com/">Devoxx</a> (Antwerp, Belgium &#8211; November 14-18)</li>
<li><a href="http://xpdays.net/">XPdays</a> (Mechelen, Belgium &#8211; December 1-2)</li>
<li><a href="http://www.spaconference.org">Spa conference</a> (London, UK &#8211; June)</li>
<li><a href="http://javasymposium.techtarget.com/">TSSJS</a> (Prague, Czech Republic &#8211; fall | Las Vegas, USA &#8211; spring)</li>
<li><a href="http://www.agileopen.net/">Agile Open</a> (Several locations across Europe)</li>
<li><a href="http://www.leankanban2011.be/">Lean &amp; Kanban</a> (Antwerp, Belgium &#8211; October 3-4)</li>
<li><a href="http://fosdem.org/">FOSDEM</a> (Brussels, Belgium &#8211; February)</li>
<li><a href="http://alenetwork.eu/">ALE</a> (Berlin, Germany &#8211; September 7-9)</li>
<li>Pier CMS Sprint (coding session for a Smalltalk CMS, sadly I couldn&#8217;t find anymore details)</li>
<li><a href="http://www.laccongres.nl/">LAC</a> (Nieuwegein, the Netherlands &#8211; Nobember 23-24)</li>
</ul>
<p>And some additions that were scribbled on the flipover after the session was over:</p>
<ul>
<li><a href="http://www.esug.org/">ESUG</a> (Edinburgh, Schotland &#8211; August 22-26)</li>
<li><a href="http://fronteers.nl/">Fronteers</a> (Amsterdam, the Netherlands &#8211; October 6-7)</li>
<li><a href="http://jsconf.eu//">JSConf</a> (Berlin, Germany &#8211; October 1-2)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/good-events-according-to-the-devnology-crowd/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Books you should read according to the Devnology crowd</title>
		<link>http://jduchess.org/blog/books-you-should-read-according-to-the-devnology-crowd</link>
		<comments>http://jduchess.org/blog/books-you-should-read-according-to-the-devnology-crowd#comments</comments>
		<pubDate>Sun, 10 Jul 2011 09:51:32 +0000</pubDate>
		<dc:creator>Linda van der Pal</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=1383</guid>
		<description><![CDATA[At the Devnology Open Space yesterday we had a discussion about which books you should have read. As we only had about half an hour, this list is by no means exhausting. They&#8217;re just the first books that popped into our heads when asked the question what the best book was.  So who knows, we [...]]]></description>
			<content:encoded><![CDATA[<p>At the Devnology Open Space yesterday we had a discussion about which books you should have read. As we only had about half an hour, this list is by no means exhausting. They&#8217;re just the first books that popped into our heads when asked the question what the best book was.  So who knows, we might create a second list next year.</p>
<p>Three tips that came up, which weren&#8217;t specific books, but too good not to mention were Shelfari.com (a social network for readers) and the Manning Early Access Program (where you can online buy books before they are officially published), and Reddit.com (a source for what&#8217;s new and popular online).</p>
<ul>
<li>Fearless Change &#8211; Linda Rising &amp; Mary Lynn Manns</li>
<li>Lean Architecture &#8211; James Coplien</li>
<li>What technology wants &#8211; Kevin Kelly</li>
<li>Don&#8217;t make me think &#8211; Steve Krug</li>
<li>De kracht van Scrum &#8211; Rini van Solingen &amp; Eelco Rustenburg</li>
<li>Beautiful Evidence &#8211; Edward Tufte</li>
<li>The 7 Habits of Highly Effective People &#8211; Stephen R. Covey</li>
<li>Refactoring &#8211; Martin Fowler</li>
<li>The design of design &#8211; Frederick Brooks</li>
<li>The mythical man-month &#8211; Frederick Brooks</li>
<li>The Passionate Programmer &#8211; Chad Fowler</li>
<li>Java concurrency in practice &#8211; Brian Goetz</li>
<li>Coders at work &#8211; Peter Seibel</li>
<li>Code complete &#8211; Steve McConnell</li>
<li>Clean code &#8211; Robert C. Martin</li>
<li>The clean coder &#8211; Robert C. Martin</li>
<li>Zen and the art of motorcycle maintenance &#8211; Robert M. Pirsig</li>
<li>The 4-hour work week &#8211; Timothy Ferriss</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/books-you-should-read-according-to-the-devnology-crowd/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Duchess at Devoxx</title>
		<link>http://jduchess.org/blog/duchessotn</link>
		<comments>http://jduchess.org/blog/duchessotn#comments</comments>
		<pubDate>Fri, 19 Nov 2010 23:00:08 +0000</pubDate>
		<dc:creator>ypoirier</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[devoxx]]></category>
		<category><![CDATA[duchess]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=1020</guid>
		<description><![CDATA[This blog entry is on Oracle Technology Network @ http://blogs.oracle.com/java/2010/11/the_duchess_at_devoxx.html The Duchess, a &#8220;Women in Java&#8221; organization, had a great one-hour Bird of a Feather (BoF) yesterday. In addition to having a great logo, the organization provides a platform for women to connect, learn about technology and build regional chapters. The session started with an overview [...]]]></description>
			<content:encoded><![CDATA[<p>This blog entry is on Oracle Technology Network @ http://blogs.oracle.com/java/2010/11/the_duchess_at_devoxx.html</p>
<p>The <a href="http://jduchess.org/">Duchess</a>, a &#8220;Women in Java&#8221; organization, had a great one-hour Bird of a Feather (BoF) yesterday. In addition to having a great logo, the organization provides a platform for women to connect, learn about technology and build regional chapters. The session started with an overview of the Duchess organization and the <a href="http://jduchess.org/duchess-france/">Duchess France</a>. The French chapter, a dynamic group, recounted over its impressive list of activities: creation of women events around JUG monthly meetings, the co-organization of conferences, organization of Java certification classes and the creation of new groups in France. All this in just the last 9 months since their creation!</p>
<p>Participants were mostly women, with one-third men. Both men and women expressed their options freely. Some of the topics were: the prejudices of women in IT at the workplace, in some countries women have trouble to join the workforce after a long maternity leave, women lack assertiveness to promote themselves and the change of dynamics in diverse teams.</p>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/duchessotn/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Duchess at JavaOne Day one</title>
		<link>http://jduchess.org/blog/javaone-day1</link>
		<comments>http://jduchess.org/blog/javaone-day1#comments</comments>
		<pubDate>Mon, 20 Sep 2010 06:41:01 +0000</pubDate>
		<dc:creator>Regina ten Bruggencate</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[duchess]]></category>
		<category><![CDATA[javaone 2010]]></category>
		<category><![CDATA[jug]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=997</guid>
		<description><![CDATA[The first day at javaone has just finished. It started with the community sunday. We talked with other JUG leaders about topics like how to get more members active in the JUGs. How to finance the JUG and how to record your sessions. The session was made up into discusions in smaller groups and a [...]]]></description>
			<content:encoded><![CDATA[<p>The first day at javaone has just finished. It started with the community sunday. We talked with other JUG leaders about topics like how to get more members active in the JUGs. How to finance the JUG and how to record your sessions. The session was made up into discusions in smaller groups and a large part at the end where all the results were discussed. We got allote of positive reactions and some people that want to start chapters in their own country.</p>
<p>In the evening there was the much hyped keynote session with Larry. Before Larry took the stage some other people from Oracle talked some and handed out some trophies. And there was some talks from HP. Larry was proceded by a short movie about the Americas cup (sailing competition) which was won by the USA in a boat sponsored by Oracle. In his talk for over more than an hour he mentioned Java twice and the JVM once.<br />
Turned out that all the JavaOne attendees were rejected at the primairy location of the keynote and sent to the Hilton to watch the keynote on the bigscreens there. I think we got the better deal as we got to have free food and drink and we got to talk during the &#8216;boring&#8217; keynote.</p>
<p>After this we had a short meeting with Yolande to discuse our session for tomorrow and our interview.</p>
<p>We will get back to you with day 2</p>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/javaone-day1/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Short History of Duchess Netherlands</title>
		<link>http://jduchess.org/blog/short-history-of-duchess-netherlands</link>
		<comments>http://jduchess.org/blog/short-history-of-duchess-netherlands#comments</comments>
		<pubDate>Wed, 15 Sep 2010 20:50:58 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[duchess]]></category>
		<category><![CDATA[duchessnl]]></category>
		<category><![CDATA[history]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=908</guid>
		<description><![CDATA[November 2007 Linda, Elise, and Clara meet at the Masters of Javaand decide to create Duchess December 2007 Monique joins us on the Duchess NL board Duchess becomes a JUG January 2008 Duchess Agile Event Speaker: Michael Franken from and Sponsored by: Februrary 2008 Duchess Website Launched Clara and Linda speak at FOSDEM 2008 June [...]]]></description>
			<content:encoded><![CDATA[<table border="1" cellpadding="20">
<tbody>
<tr>
<td><strong>November 2007</strong></td>
<td valign="top">
<h3>Linda, Elise, and Clara meet at the Masters of Java<br />and decide to create Duchess</h3>
<p><img src="http://jduchess.org/files/2010/09/linda_avatar.jpg" alt="Linda van der Pal" width="75" /><img src="http://jduchess.org/files/2010/09/elise_avatar.jpg" alt="Elise Meetsma" width="75" /><img src="http://jduchess.org/files/2010/09/clarako_avatar.jpg" alt="Clara Ko" width="75" /><br />
<img src="http://mastersofjava.2en40.nl/templates/mojLogo.gif" alt="Masters of Java" width="225" /></td>
</tr>
<tr>
<td><strong>December 2007</strong></td>
<td valign="top">
<h3>Monique joins us on the Duchess NL board</h3>
<p><img src="http://jduchess.org/files/2010/09/monique_avatar.jpg" alt="Monique Vael" width="75" /></td>
</tr>
<tr>
<td></td>
<td valign="top">
<h3>Duchess becomes a JUG</h3>
<p><img src="http://farm3.static.flickr.com/2073/2452344506_323f5fbec2.jpg?v=0" alt="Java User Group" width="100" /></td>
</tr>
<tr>
<td><strong>January 2008</strong></td>
<td valign="top">
<h3>Duchess Agile Event</h3>
<p>Speaker: Michael Franken from <img src="http://agileholland.com/sites/agileholland.com/files/images/tulip100x50.gif" alt="Agile Holland" /> and <img src="http://www.zilverline.com/files/zilverline_logo.jpg" alt="" width="200" /><br />
Sponsored by: <img src="http://www.onehippo.com/binaries/content/gallery/partners/iprofs.jpg" alt="iProfs" /></td>
</tr>
<tr>
<td><strong>Februrary 2008</strong></td>
<td valign="top">
<h3>Duchess Website Launched</h3>
<p><img src="http://jduchess.org/images/duchess.jpg" alt="Duchess" width="100" /></td>
</tr>
<tr>
<td></td>
<td valign="top">
<h3>Clara and Linda speak at FOSDEM 2008</h3>
<p><img src="http://mirrorbrain.org/static/images/misc/fosdem-banner.png" alt="Fosdem" width="250" /></td>
</tr>
<tr>
<td><strong>June 2008</strong></td>
<td valign="top">
<h3>Clara and Linda speak at JBoss Benelux User Group</h3>
<p><img src="http://www.anshinfotech.com/images/technoLogo/jboss-logo.jpg" alt="JBoss" width="125" /> at <img src="http://www.lunatech.com/images/lunatech-research.png" alt="Lunatech Research" width="200" /></td>
</tr>
<tr>
<td><strong>September 2008</strong></td>
<td valign="top">
<h3>Duchess Spring Event</h3>
<p>Topic: <img src="http://www.jpox.org/docs/images/related/springframework.gif" alt="Spring Framework" /><br />
Speaker: Arjen Poutsma from <img src="http://www.pearsonvue.com/pvueImages/clients/springsource/springsource_logo.gif" alt="SpringSource" width="200" /><br />
Sponsored by: <img src="http://www.seasidebv.nl/images/clients/Ijsberg_logo.gif" alt="Ijsberg" /></td>
</tr>
<tr>
<td><strong>October 2008</strong></td>
<td valign="top">
<h3>Duchess Groovy &amp; Grails Event</h3>
<p>Topic: <img src="http://mauriziostorani.files.wordpress.com/2008/07/groovy-and-grails.jpg" alt="Groovy and Grails" width="150" /><br />
Speaker: Maarten Hoppen from and Sponsored by: <img src="http://www.testnet.org/Produktie/Assets/Logo_VXCompany.jpg" alt="VX Company" width="200" /></td>
</tr>
<tr>
<td><strong>December 2008</strong></td>
<td valign="top">
<h3>Duchess becomes a foundation</h3>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td valign="top">
<h3>Duchess surpasses 100 members</h3>
<p><img src="http://t1.gstatic.com/images?q=tbn:ANd9GcTHCFPrfHkT8rYtpUpY5qN589JjNZvYEvIKMI2rEFqvaLWcY3Y&amp;t=1&amp;usg=__4WpLoR73St1-DTdNm32KRkSdWJo=" alt="100 Members" width="200" /></td>
</tr>
<tr>
<td></td>
<td valign="top">
<h3>Duchess BOF at Devoxx 2008</h3>
<p><img src="http://www.devoxx.com/download/attachments/131075/devoxx250.jpg" alt="Devoxx 2008" width="150" /></td>
</tr>
<tr>
<td><strong>March 2009</strong></td>
<td valign="top">
<h3>Duchess joins the JCP</h3>
<p><img src="http://www.fujitsu.com/img/INTSTG/standards/java-community.gif" alt="JCP" /></td>
</tr>
<tr>
<td><strong>May 2009</strong></td>
<td valign="top">
<h3>Duchess Portal Event</h3>
<p>Topic: <img src="http://jboss.org/jbossportal/mainColumnParagraphs/00/image/Logo.png" alt="JBoss Portal" width="200" /><br />
Speaker: Marco Beelen from and Sponsored by: <img src="http://www.onehippo.com/binaries/content/gallery/partners/iprofs.jpg" alt="iProfs" /></td>
</tr>
<tr>
<td></td>
<td>
<h3>Regina and Lucia joins us on the Duchess NL board</h3>
<p><img src="http://jduchess.org/files/2010/09/regina_avatar.jpg" alt="Regina ten Bruggencate" width="75" /><img src="http://jduchess.org/files/2010/09/lucia_avatar.jpg" alt="Lucia Tovar Ruiz" width="75" /></td>
</tr>
<tr>
<td><strong>March 2010</strong></td>
<td valign="top">
<h3>Duchess Community Website Launched</h3>
<p><img src="http://jduchess.org/files/2010/09/duchess_screenshot.gif" alt="Duchess Screenshot" width="200" /></td>
</tr>
<tr>
<td></td>
<td valign="top">
<h3>Duchess welcomes Duchess France</h3>
<p><img src="http://jduchess.org/images/duchessfr.jpg" alt="Duchess France" width="100" /></td>
</tr>
<tr>
<td><strong>April 2010</strong></td>
<td valign="top">
<h3>Ania joins us on the Duchess NL board</h3>
<p><img src="http://jduchess.org/files/2010/09/ania_avatar.jpg" alt="Ania Gos" width="75" /></td>
</tr>
<tr>
<td><strong>June 2010</strong></td>
<td valign="top">
<h3>Duchess Coding Dojo &#8211; TDD and FitNesse</h3>
<p>Topic: <img src="http://fitnesse4idea.sourceforge.net/fitnesse_big.png" alt="FitNesse" width="100" /><br />
Speaker: Marc Evers from <img src="http://agileholland.com/sites/agileholland.com/files/images/tulip100x50.gif" alt="Agile Holland" /> and <img src="http://www.qwan.it/doc/qwan_logo_small.png" alt="QWAN" width="100" /></td>
</tr>
<tr>
<td><strong>September 2010</strong></td>
<td valign="top">
<h3>Duchess Coding Dojo 2 &#8211; More TDD Practice</h3>
<p>Sponsored by: <img src="http://www.springsource.com/files/uploads/all/images/partner/JTEAM.jpg" alt="JTeam" width="150" /></td>
</tr>
<tr>
<td><em><strong>September 20<br />
(upcoming)</strong></em></td>
<td valign="top">
<h3>Duchess BOF at JavaOne</h3>
<p><img src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/062354.gif" alt="JavaOne" /></td>
</tr>
<tr>
<td><em><strong>November 18<br />
(upcoming)</strong></em></td>
<td valign="top">
<h3>Duchess BOF at Devoxx</h3>
<p><img src="http://devoxx.com/download/attachments/4161594/LogoDevoxx150dpi.jpg?version=1&amp;modificationDate=1275294792000" alt="Devoxx 2010" width="200" /></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/short-history-of-duchess-netherlands/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recap coding dojo</title>
		<link>http://jduchess.org/blog/recap-coding-dojo</link>
		<comments>http://jduchess.org/blog/recap-coding-dojo#comments</comments>
		<pubDate>Sun, 12 Sep 2010 17:49:56 +0000</pubDate>
		<dc:creator>Regina ten Bruggencate</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[duchess events]]></category>
		<category><![CDATA[coding dojo]]></category>
		<category><![CDATA[duchess]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[test driven]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=979</guid>
		<description><![CDATA[On Friday evening, September 10, we held our second coding dojo. This time it was at JTeam. A coding dojo is a meeting of developers who collaboratively solve a given programming challenge. It is an especially good method to learn TDD. To give you an impression, this is how it goes: A pair of developers [...]]]></description>
			<content:encoded><![CDATA[<p>On Friday evening, September 10, we held our second coding dojo. This time it was at <a title="JTeam" href="http://jteam.nl" target="_blank">JTeam</a>.<BR><br />
A coding dojo is a meeting of developers who collaboratively solve a given programming challenge. It is an especially good method to learn TDD. To give you an impression, this is how it goes: A pair of developers begin the challenge by writing a first test. We use only one computer and all the coding can be seen on a big screen. Everyone is invited to comment and give advice. When the first test succeeds, a next test is written. The programming pair goes back to the audience and a new pair takes their place to solve the next test. Specific programming or Java knowledge is not a pre-requisite. We are all there to learn and to help others learn what we know. It’s very interactive.<BR><br />
<strong>And trust us, it’s a lot fun!</strong><BR><br />
After pizza and some small talk we started the session. The kata was about calculating the total score of a bowling game using test driven development. In the break we had raffle to get some funds together for Duchess. The items raffled of were collected at all the different conferences so plenty of t-shirts and other goodies. As is usual for our sessions we had an international group of attendents. For this session Nicole Younic even came over from Germany because she wanted to meet more female developers. We ended the session with a clearer understanding of how test driven development works.<BR><br />
Now the Dojo and one possible sollution follows.<BR><br />
<strong>Problem Description</strong><BR><br />
Create a program, which, given a valid sequence of rolls for one line of American Ten-Pin Bowling, produces the total score for the game. Here are some things that the program will not do:</p>
<ul>
<li>We will not check for valid rolls.</li>
<li>We will not check for correct number of rolls and frames.</li>
<li>We will not provide scores for intermediate frames.</li>
</ul>
<p>Depending on the application, this might or might not be a valid way to define a complete story, but we do it here for purposes of keeping the kata light. I think you&#8217;ll see that improvements like those above would go in readily if they were needed.<BR><br />
We can briefly summarize the scoring for this form of bowling:</p>
<ul>
<li>Each game, or &#8220;line&#8221; of bowling, includes ten turns, or &#8220;frames&#8221; for the bowler.</li>
<li>In each frame, the bowler gets up to two tries to knock down all the pins.</li>
<li>If in two tries, he fails to knock them all down, his score for that frame is the total number of pins knocked down in his two tries.</li>
<li>If in two tries he knocks them all down, this is called a &#8220;spare&#8221; and his score for the frame is ten plus the number of pins knocked down on his next throw (in his next turn).</li>
<li>If on his first try in the frame he knocks down all the pins, this is called a &#8220;strike&#8221;. His turn is over, and his score for the frame is ten plus the simple total of the pins knocked down in his next two rolls.</li>
<li>If he gets a spare or strike in the last (tenth) frame, the bowler gets to throw one or two more bonus balls, respectively. These bonus throws are taken as part of the same turn. If the bonus throws knock down all the pins, the process does not repeat: the bonus throws are only used to calculate the score of the final frame.</li>
<li>The game score is the total of all frame scores.</li>
</ul>
<p><strong>How we tackled it</strong><BR><br />
We started with a junit test where we only role zero&#8217;s. As you need to set up all the classes even a simple unit test will take some time for the first team. But as this is a &#8216;simple&#8217; problem we got started fast. And after some problems as to how the scores are calculated and what the correct score should be for a given set of frames everyone got in the swing of things. One of the first refactorings was that some people wanted to introduce a frame class but not everyone thought we needed it. In the end it turned out we did need it.<BR><br />
<strong>Possible solution</strong><BR><br />
 &lt;code&gt;<BR><br />
<code>&lt;pre&gt;<br />
package org.duchess.dojo.bowling;</p>
<p>import junit.framework.Assert;</p>
<p>import org.junit.Test;</p>
<p>/**<br />
 * Test created for the bowling dojo.<br />
 * @author Regina ten Bruggencate<br />
 */<br />
public class KataTest {</p>
<p>	@Test<br />
	public void allZero() {<br />
		String[] scoresheet = new String[20];<br />
		for (int i=0; i&amp;lt;scoresheet.length; i++) {<br />
			scoresheet[i] = &amp;quot;0&amp;quot;;<br />
		}</p>
<p>		Game game = new Game(scoresheet);<br />
		int score = game.getScore();</p>
<p>		Assert.assertEquals(&amp;quot;The score is not as we expected.&amp;quot;, 0, score);<br />
	}</p>
<p>	@Test<br />
	public void allStrikes() {<br />
		String[] scoresheet = new String[12];<br />
		for (int i=0; i&amp;lt;scoresheet.length; i++) {<br />
			scoresheet[i] = &amp;quot;X&amp;quot;;<br />
		}</p>
<p>		Game game = new Game(scoresheet);<br />
		int score = game.getScore();</p>
<p>		Assert.assertEquals(&amp;quot;The score is not as we expected.&amp;quot;, 300, score);<br />
	}</p>
<p>	@Test<br />
	public void allSpares() {<br />
		String[] scoresheet = {&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;5&amp;quot;};</p>
<p>		Game game = new Game(scoresheet);<br />
		int score = game.getScore();<br />
		Assert.assertEquals(&amp;quot;The score is not as we expected.&amp;quot;, 150, score);<br />
	}</p>
<p>	@Test<br />
	public void AllSparesNoBonusFirstThrowsNoThrows() {<br />
        String[] scoresheet = {&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;/&amp;quot;,&amp;quot;-&amp;quot;};</p>
<p>        Game game = new Game(scoresheet);<br />
        int score = game.getScore();<br />
        Assert.assertEquals(&amp;quot;The score is not as we expected.&amp;quot;, 100, score);<br />
	}</p>
<p>	@Test<br />
	public void allNoStrikesOrSpares() {<br />
		String[] scoresheet = {&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;7&amp;quot;};</p>
<p>		Game game = new Game(scoresheet);<br />
		int score = game.getScore();<br />
		Assert.assertEquals(&amp;quot;The score is not as we expected.&amp;quot;, 90, score);<br />
	}</p>
<p>	@Test<br />
	public void allNinesAndDash() {<br />
        String[] scoresheet = {&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;-&amp;quot;};</p>
<p>        Game game = new Game(scoresheet);<br />
        int score = game.getScore();<br />
        Assert.assertEquals(&amp;quot;The score is not as we expected.&amp;quot;, 90, score);<br />
	}<br />
}</p>
<p>package org.duchess.dojo.bowling;</p>
<p>/**<br />
 * This is a game of 10 pin bowling.<br />
 * A game has 10 frames with 2 roles each.<br />
 * A strike is scored when all the pins are down in the first role.<br />
 * A spare is scored when all the pins are down in the second role.<br />
 * On a strike the next two roles are add to the score of that frame.<br />
 * On a spare the next role is add to the score of that frame.<br />
 * When a strike is thrown in the final frame 2 more roles are allowed to<br />
 * be add to the total score of that frame. When a spare is thrown in the<br />
 * final frame 1 more role is allowed to be add to the total score of that<br />
 * frame.<br />
 * A strike is denoted with an X on the scoresheet.<br />
 * A spare is denoted with a / on the scoresheet.<br />
 * A non through is denoted with a - on the scoresheet.<br />
 * @author Regina ten Bruggencate<br />
 */<br />
public class Game {<br />
    private String[] scoreSheet;<br />
    private int totalScore;</p>
<p>    private static final String STRIKE = &amp;quot;X&amp;quot;;<br />
    private static final String SPARE = &amp;quot;/&amp;quot;;<br />
    private static final String DASH = &amp;quot;-&amp;quot;;<br />
    private static final int MAX_NUMBER_OF_FRAMES = 10;</p>
<p>    public Game(String[] scoreSheet) {<br />
        this.scoreSheet = scoreSheet;<br />
        Frame[] frames = createFrames();<br />
        score(frames);<br />
    }</p>
<p>    private void score(Frame[] frames) {<br />
        for (int f = 0; f &amp;lt; MAX_NUMBER_OF_FRAMES; f++) {<br />
            Frame frame = frames[f];<br />
            if (frame.isLastFrameStrike()) {<br />
                totalScore += 10; // first strike<br />
                if (STRIKE.equalsIgnoreCase(frame.getRole2())) {<br />
                    totalScore += 10; // next role is also a strike<br />
                    if (STRIKE.equalsIgnoreCase(frame.getRole3())) {<br />
                        totalScore += 10; // last role is also a strike<br />
                    } else {<br />
                        totalScore += new Integer(frame.getRole3());<br />
                    }<br />
                } else {<br />
                    if (SPARE.equalsIgnoreCase(frame.getRole3())) {<br />
                        totalScore += 10; // the last 2 roles create a strike<br />
                    } else {<br />
                        // The bonus scores are not strikes and not a spare<br />
                        totalScore += new Integer(frame.getRole2());<br />
                        totalScore += new Integer(frame.getRole3());<br />
                    }<br />
                }<br />
            } else if (frame.isLastFrameSpare()) {<br />
                totalScore += 10;<br />
                if (STRIKE.equalsIgnoreCase(frame.getRole3())) {<br />
                    // the bonus score is a strike<br />
                    totalScore += 10;<br />
                } else {<br />
                    totalScore += new Integer(frame.getRole3());<br />
                }<br />
            } else if (frame.isStrike()) {<br />
                totalScore += 10;<br />
                // add the next two roles to the total score<br />
                totalScore += findSumNextTwoRoles(frames, f);</p>
<p>            } else if (frame.isSpare()) {<br />
                totalScore += 10;<br />
                totalScore += findNextRole(frames, f);<br />
            } else {<br />
                totalScore += new Integer(frame.getRole1());<br />
                totalScore += new Integer(frame.getRole2());<br />
            }<br />
        }<br />
    }</p>
<p>    private Frame[] createFrames() {<br />
        Frame[] frames = new Frame[MAX_NUMBER_OF_FRAMES];<br />
        for (int f = 0; f &amp;lt; frames.length; f++) {<br />
            frames[f] = new Frame();<br />
        }</p>
<p>        int frameCounter = 0;<br />
        for (int i = 0; i &amp;lt; scoreSheet.length; i++) {<br />
            if (STRIKE.equalsIgnoreCase(scoreSheet[i])) {<br />
                // check if it is the last frame<br />
                if (isLastFrame(frameCounter)) {<br />
                    frames[frameCounter].setRole1(STRIKE);<br />
                    if (DASH.equalsIgnoreCase(scoreSheet[(i + 1)])) {<br />
                        frames[frameCounter].setRole2(&amp;quot;0&amp;quot;);<br />
                    } else {<br />
                        frames[frameCounter].setRole2(scoreSheet[(i + 1)]);<br />
                    }<br />
                    if (DASH.equalsIgnoreCase(scoreSheet[(i + 2)])) {<br />
                        frames[frameCounter].setRole3(&amp;quot;0&amp;quot;);<br />
                    } else {<br />
                        frames[frameCounter].setRole3(scoreSheet[(i + 2)]);<br />
                    }<br />
                    break;<br />
                } else {<br />
                    frames[frameCounter].setRole1(STRIKE);<br />
                    frameCounter++;<br />
                }<br />
            } else if (SPARE.equalsIgnoreCase(scoreSheet[i])) {<br />
                frames[frameCounter].setRole2(SPARE);<br />
                if (isLastFrame(frameCounter)) {<br />
                    if (DASH.equalsIgnoreCase(scoreSheet[(i + 1)])) {<br />
                        frames[frameCounter].setRole3(&amp;quot;0&amp;quot;);<br />
                    } else {<br />
                        frames[frameCounter].setRole3(scoreSheet[(i + 1)]);<br />
                    }<br />
                    break;<br />
                } else {<br />
                    frameCounter++;<br />
                }<br />
            } else {<br />
                if (isFirstRole(frames[frameCounter])) {<br />
                    if (DASH.equalsIgnoreCase(scoreSheet[i])) {<br />
                        frames[frameCounter].setRole1(&amp;quot;0&amp;quot;);<br />
                    } else {<br />
                        frames[frameCounter].setRole1(scoreSheet[i]);<br />
                    }<br />
                } else {<br />
                    if (DASH.equalsIgnoreCase(scoreSheet[i])) {<br />
                        frames[frameCounter].setRole2(&amp;quot;0&amp;quot;);<br />
                    } else {<br />
                        frames[frameCounter].setRole2(scoreSheet[i]);<br />
                    }<br />
                    frameCounter++;<br />
                }<br />
            }<br />
        }<br />
        return frames;<br />
    }</p>
<p>    private boolean isLastFrame(int frameCount) {<br />
        return !(frameCount &amp;lt; (MAX_NUMBER_OF_FRAMES - 1));<br />
    }</p>
<p>    private boolean isFirstRole(Frame frame) {<br />
        return null == frame.getRole1();<br />
    }</p>
<p>    public int getScore() {<br />
        return totalScore;<br />
    }</p>
<p>    private int findSumNextTwoRoles(Frame[] frames, int location) {<br />
        int total = 0;<br />
        if ((location + 1) == MAX_NUMBER_OF_FRAMES) {<br />
            // it is the ninth frame we need to get the next to roles from the<br />
            // final frame<br />
            if (STRIKE.equalsIgnoreCase(frames[MAX_NUMBER_OF_FRAMES].getRole1())) {<br />
                total += 10;<br />
                if (STRIKE.equalsIgnoreCase(frames[MAX_NUMBER_OF_FRAMES].getRole2())) {<br />
                    total += 10;<br />
                } else {<br />
                    total += new Integer(frames[MAX_NUMBER_OF_FRAMES].getRole2());<br />
                }<br />
            } else if (SPARE.equalsIgnoreCase(frames[MAX_NUMBER_OF_FRAMES].getRole2())) {<br />
                total += 10;<br />
            } else {<br />
                total += new Integer(frames[MAX_NUMBER_OF_FRAMES].getRole1());<br />
                total += new Integer(frames[MAX_NUMBER_OF_FRAMES].getRole2());<br />
            }<br />
        } else {<br />
            Frame next = frames[(location + 1)];<br />
            if (STRIKE.equalsIgnoreCase(next.getRole1())) {<br />
                total += 10; // first next role is a strike<br />
                if (isLastFrame(location + 1)) {<br />
                    if (STRIKE.equalsIgnoreCase(next.getRole2())) {<br />
                        total += 10;<br />
                    } else {<br />
                        total += new Integer(next.getRole2());<br />
                    }<br />
                } else {<br />
                    if (STRIKE.equalsIgnoreCase(frames[(location + 2)].getRole1())) {<br />
                        total += 10;<br />
                    } else {<br />
                        total += new Integer(frames[(location + 2)].getRole1());<br />
                    }<br />
                }<br />
            } else if (SPARE.equalsIgnoreCase(next.getRole2())) {<br />
                total += 10;<br />
            } else {<br />
                total += new Integer(next.getRole1());<br />
                total += new Integer(next.getRole2());<br />
            }<br />
        }<br />
        return total;<br />
    }</p>
<p>    private int findNextRole(Frame[] frames, int location) {<br />
        int value = 0;<br />
        Frame next = frames[(location + 1)];<br />
        if (STRIKE.equalsIgnoreCase(next.getRole1())) {<br />
            value = 10;<br />
        } else {<br />
            value = new Integer(next.getRole1());<br />
        }<br />
        return value;<br />
    }<br />
}</p>
<p>package org.duchess.dojo.bowling;</p>
<p>/**<br />
 * This is a frame of a game of ten pin bowling.<br />
 * It contains all the roles from that frame.<br />
 * Contains helper methods to determine the value of the<br />
 * roles and if it is the final frame.<br />
 * @author Regina ten Bruggencate<br />
 */<br />
public class Frame {<br />
	private String role1;<br />
	private String role2;<br />
	// Only used in the last frame<br />
	// one a strike or a spare<br />
	private String role3;</p>
<p>	private static final String STRIKE = &amp;quot;X&amp;quot;;<br />
	private static final String SPARE = &amp;quot;/&amp;quot;;</p>
<p>	public Frame() {<br />
		// empty default constructor<br />
	}</p>
<p>	public boolean isStrike() {<br />
		return STRIKE.equalsIgnoreCase(role1);<br />
	}</p>
<p>	public boolean isSpare() {<br />
		return SPARE.equalsIgnoreCase(role2);<br />
	}</p>
<p>	public boolean isLastFrameStrike() {<br />
		return isStrike() &amp;amp;&amp;amp; null!=role3;<br />
	}</p>
<p>	public boolean isLastFrameSpare() {<br />
		return isSpare() &amp;amp;&amp;amp; null != role3;<br />
	}</p>
<p>	public String getRole1() {<br />
		return role1;<br />
	}</p>
<p>	public void setRole1(String role1) {<br />
		this.role1 = role1;<br />
	}</p>
<p>	public String getRole2() {<br />
		return role2;<br />
	}</p>
<p>	public void setRole2(String role2) {<br />
		this.role2 = role2;<br />
	}</p>
<p>	public String getRole3() {<br />
		return role3;<br />
	}</p>
<p>	public void setRole3(String role3) {<br />
		this.role3 = role3;<br />
	}<br />
}<br />
&lt;/pre&gt;</code><br />
&lt;/code&gt;<BR></p>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/recap-coding-dojo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Report: Duchess Coding Dojo &#8211; TDD with FitNesse</title>
		<link>http://jduchess.org/blog/report-duchess-coding-dojo-tdd-with-fitnesse</link>
		<comments>http://jduchess.org/blog/report-duchess-coding-dojo-tdd-with-fitnesse#comments</comments>
		<pubDate>Thu, 05 Aug 2010 20:10:06 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[duchess events]]></category>
		<category><![CDATA[codingdojo]]></category>
		<category><![CDATA[duchess]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://jduchess.org/?p=895</guid>
		<description><![CDATA[On June 18, Duchess organized her first coding dojo with assistance from Marc Evers from AgileHolland. The subject was Test-Driven Development with FitNesse, which we applied to the Roman Number Kata. It was a truly interactive session where everyone had a chance to get in the driver and co-pilot seats. We got a good start [...]]]></description>
			<content:encoded><![CDATA[<table border="0">
<tbody>
<tr>
<td><img src="http://farm5.static.flickr.com/4096/4863307949_9fbddc7ca2.jpg" alt="" width="250" /></td>
<td><img src="http://farm5.static.flickr.com/4073/4863308359_2e5e1228d9.jpg" alt="" width="250" /></td>
<td><img src="http://farm5.static.flickr.com/4099/4863307503_3a36ce4258.jpg" alt="" width="250" /></td>
</tr>
<tr>
<td><img src="http://farm5.static.flickr.com/4099/4863925590_162ce80054.jpg" alt="" width="250" /></td>
<td><img src="http://farm5.static.flickr.com/4078/4863306547_29f4deecf6.jpg" alt="" width="250" /></td>
<td><img src="http://farm5.static.flickr.com/4097/4863924560_eda8fdb24c.jpg" alt="" width="250" /></td>
</tr>
</tbody>
</table>
<p>On June 18, Duchess organized her <a href="http://jduchess.org/blog/duchess-coding-dojo">first coding dojo</a> with assistance from <a href="http://nl.linkedin.com/in/marcevers">Marc Evers</a> from AgileHolland. The subject was <a href="http://www.agiledata.org/essays/tdd.html">Test-Driven Development</a> with <a href="http://fitnesse.org/">FitNesse</a>, which we applied to the <a href="http://codingdojo.org/cgi-bin/wiki.pl?KataRomanCalculator">Roman Number Kata</a>.</p>
<p>It was a truly interactive session where everyone had a chance to get in the driver and co-pilot seats.</p>
<p>We got a good start with FitNesse with <a href="http://refcardz.dzone.com/refcardz/getting-started-fitnesse">cheat sheet</a> from Erik Pragt, where we learned the default table fixture. Then, took too big a step and had trouble getting the next test to pass. We learned from Marc that this is part of the normal process of learning TDD. Baby Steps are not as easy as it sounds and we learned that we need to choose our tests carefully so as not to take too big of a step.</p>
<p>We intend to get good at TDD with lots of Deliberate Practice. Please join us on our next Coding Dojo to be hosted by <a href="http://jteam.nl">JTeam</a>. Announcement coming soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://jduchess.org/blog/report-duchess-coding-dojo-tdd-with-fitnesse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 12/66 queries in 0.749 seconds using disk: basic
Object Caching 634/769 objects using disk: basic

Served from: jduchess.org @ 2012-02-09 07:04:18 -->
