<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.3.1" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">

<channel>
	<title>Piotr Woloszyn</title>
	<link>http://www.woloszyn.org</link>
	<description>Mumbling about software</description>
	<pubDate>Sun, 21 Dec 2008 09:39:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/PiotrWoloszyn" type="application/rss+xml" /><item>
		<title>Installing Midnight Commander on Mac OSX</title>
		<link>http://www.woloszyn.org/2008/12/21/installing-midnight-commander-on-mac-osx/</link>
		<comments>http://www.woloszyn.org/2008/12/21/installing-midnight-commander-on-mac-osx/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 09:39:42 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Mac]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[file]]></category>

		<category><![CDATA[file manager]]></category>

		<category><![CDATA[fink]]></category>

		<category><![CDATA[mc]]></category>

		<category><![CDATA[midnight commander]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/12/21/installing-midnight-commander-on-mac-osx/</guid>
		<description><![CDATA[Midnight Commander (mc) is one of the tools which I always like to see on *nix systems I use. I just can&#8217;t understand why Orthodox file managers like good old Norton Commander on DOS or more up to date excellent Total Commander on Windows are not more popular, but nevertheless I am not here to [...]]]></description>
			<content:encoded><![CDATA[<p>Midnight Commander (mc) is one of the tools which I always like to see on *nix systems I use. I just can&#8217;t understand why <a href="http://en.wikipedia.org/wiki/Orthodox_file_manager#Orthodox_file_managers">Orthodox file managers</a> like good old <a href="http://en.wikipedia.org/wiki/Norton_Commander">Norton Commander</a> on DOS or more up to date excellent <a href="http://www.ghisler.com/">Total Commander</a> on Windows are not more popular, but nevertheless I am not here to convince anyone to use them, just want to mention that even if you are a deep command line devotee you could find the tools useful. And certainly if you are deep mouse devotee you should try.</p>
<p>I will explain quickly how to install mc on mac (Mac OSX Leopard 10.5.6) using Fink. Installation with Fink should be painless and this blog post should not exist but I experienced an issue with the process I wanted to share quick solution:</p>
<p>1. If you don&#8217;t have <a href="http://www.finkproject.org/">Fink</a> yet install it<br />
2. Run:</p>
<pre class="prettyprint">
sudo apt-get install mc</pre>
<p>3. Try to start Midnight Commander:</p>
<pre class="prettyprint">
mc</pre>
<p>4. Fink should install all dependencies but if you encounter following error go to step 5, if not you are done:</p>
<pre class="prettyprint">
dyld: Library not loaded: /sw/lib/libintl.1.dylib  Referenced from: /sw/bin/mc

Reason: image not found</pre>
<p>5. Small dirty hack to fix the previous problem:</p>
<pre class="prettyprint">
sudo ln -s /sw/lib/libintl.3.4.3.dylib /sw/lib/libintl.1.dylib</pre>
<p>I know that there are more clean solutions than this one. Share this with me! What&#8217;s your favourite OFM?</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=59&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_59" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/12/21/installing-midnight-commander-on-mac-osx/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Evaluating Terracotta</title>
		<link>http://www.woloszyn.org/2008/12/04/evaluating-terracotta/</link>
		<comments>http://www.woloszyn.org/2008/12/04/evaluating-terracotta/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 17:51:00 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Open source]]></category>

		<category><![CDATA[Scalability]]></category>

		<category><![CDATA[consistency]]></category>

		<category><![CDATA[data]]></category>

		<category><![CDATA[data grid]]></category>

		<category><![CDATA[distributed]]></category>

		<category><![CDATA[distributed cache]]></category>

		<category><![CDATA[evaluation]]></category>

		<category><![CDATA[failover]]></category>

		<category><![CDATA[partitioning]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[replication]]></category>

		<category><![CDATA[resilience]]></category>

		<category><![CDATA[scaling]]></category>

		<category><![CDATA[terracotta]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/12/04/evaluating-terracotta/</guid>
		<description><![CDATA[Close to two years ago I had my first look at Terracotta when researching available technology for sharing state and scaling Aloha. First impressions were good. Terracotta delivered what promised: easy integration with an existing single node application and virtual shared heap available across whole cluster. However it has much more to offer. I have [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3135/3113784873_2ac6525ee6_o.jpg" align="right" border="0" height="43" hspace="0" vspace="0" width="254" />Close to two years ago I had my first look at <a href="http://www.terracotta.org/">Terracotta</a> when researching available technology for sharing state and scaling <a href="https://trac.osmosoft.com/Aloha">Aloha</a>. First impressions were good. Terracotta delivered what promised: easy integration with an existing single node application and virtual shared heap available across whole cluster. However it has much more to offer. I have been looking again recently in the distributed cache and <a href="http://en.wikipedia.org/wiki/Data_grid">data grids</a> area trying to assess options for a project I am working on currently. Below is a digest from my web-crawling of publicly available data on the topic. In each of the paragraphs I will try to put some light on a specific aspect that someone would like to know when considering Terracotta.</p>
<p><strong>Resilience</strong></p>
<p>Terracotta clusters offer simple and scalable HA implementations based on the Terracotta server array. Terracotta server arrays can vary from a basic two-node array consisting of an active server instance backed by a hot standby (for instant failover), to a multi-node array with many active server instances providing scale and deep failover coverage. Terracotta give high availability of the data by not only replicating it across servers for redundancy, but also by providing a simultaneous permanent storage of all current shared (in-memory) data to disk – available to all server instances (no loss of application state). Temporarily disconnected server instances and clients are automatically reconnected, hot standbys restored without operator intervention. There is no single point of failure and bottleneck in the Terracotta architecture.</p>
<p><strong>Failover</strong></p>
<p>Terracotta server array provides instant failover and continuous uptime and services using a hot standby or multiple active servers. Multiple Terracotta servers can be clustered together in active-active or active-passive configurations, helping to further scale Java applications and to provide disaster recovery.</p>
<p><strong>DB Persistence</strong></p>
<p>Terracotta helps to protect database in a scale out architecture. There is a problem with usual approach with a cache in front of the database. The performance of the cache is degradated when the number of nodes increases. Hibernate offers a second-level cache option, which can improve the performance of the Hibernate application by eliminating the need to fetch often used data objects from the database, instead storing, or caching, that data in process with your application. Without any mechanism to provide replication of the underlying cache, data written in one node can be stale on another node. This problem is not solved by Hibernate, rather it is up to the underlying cache to provide a replication scheme to keep multiple copies synchronized. Terracotta provides a consistent mechanism to keep any cache written in Java synchronized, and therefore provides this support for caches such as EHCache. Advantages: Performance — Reading and writing to replicated data with Terracotta can be 10x - 100x faster than other solutions, Cluster-wide load — Replication of data eliminates the need for more than one node to load data from the database. In a scaled-out application, this can reduce database load by a significant factor due to the fact that only one node needs to request any piece of data for a cache miss and all subsequent requests on other nodes will result in cache hits.</p>
<p><strong>Distributed caching implementation</strong></p>
<p>Terracotta uses concept of the Network-Attached Memory. It clusters JVMs directly underneath applications providing distributed, shared heap. The implementation doesn&#8217;t rely on serialization of whole objects, rather on instrumentation of the byte code and injecting hooks in there which allow synchronizing of deltas in the object state. State changes in a Client JVM are published to Terracotta Server Array and all other Client JVMs are seamlessly updated. Other Terracotta&#8217;s features apart from shared heap are: distributed locking, distributed data structures – (HashMap, ArrayList, LinkedBlockingQueue, any POJO), guaranteed coherent clustered objects. Objects do not have to implement Serializable to work with Terracotta.</p>
<p><strong>OS/Platform restrictions</strong></p>
<p>Terracotta is a 100% Java solution.</p>
<p><em>Certified platforms:</em> Solaris 10, Solaris 9, RedHat ES4, SUSE ES10.1 (32/64bit), Windows Server 2003 R2, WindowsXP (dev only)<br />
<em>Server JDKs:</em> Sun Hotspot 1.5.0_16, Sun Hotspot 1.6.0_07<br />
<em>Client JDKs:</em> Sun Hotspot 1.4.2_18, Sun Hotspot 1.5.0_16, Sun Hotspot 1.6.0_07<br />
<em>Containers: </em>Tomcat 6.0.18 / 5.5.26 / 5.0.28, Apache Geronimo 1.1.1, BEA WebLogic 8.1 sp6, BEA WebLogic 9.2.MP2, JBoss 3.2.8.sp1 / 4.0.5, Jetty 6.1.11, WebSphere CE 1.0.1.2 / AS 6.1.0.7, Glassfish V1 ur1-p01-b02, Glassfish-v2 ur2-b04</p>
<p><strong>Ease of implementation</strong></p>
<p>Big advantage of Terracotta. A clustered application looks no different than a standard Java applications. In theory a correct multi-threaded application can be clustered just by providing a simple xml config defining roots of application state hierarchy which one wants to share across multiple JVMs. Distributed locking and thread coordination uses usual language artefacts like &#8217;synchronized&#8217;, &#8216;wait&#8217;/'notify&#8217; and java.util.concurrent support. Pre-existing Terracotta Integration Modules (TIMs): purpose-built, tested, and tuned to implement a particular clustered architecture pattern or integrate with a particular third-party technology, for example use TIMs for Spring, Hibernate, Quartz, Compass, Lucene, Guice, Camel, Struts, Joda time and more to seamlessly add clustering to an application. Last but not least: Terracotta is an open source product with an active community.</p>
<p><strong>Hardware requirements</strong></p>
<p>Client:</p>
<p><em>Memory Sizing - Java Heap</em>: each client JVM should do work on data that fits in its local heap<br />
<em>Memory Sizing - RAM:</em> enough RAM to accommodate the heap of the Terracotta client JVM<br />
<em>Number of client nodes:</em> determined by the total size of the active clustered data set and total required throughput. Entire data set will fit in the sum of the total heap available for clustered object storage across all Terracotta client JVMs.</p>
<p>Server:</p>
<p><em>Memory Sizing - Java Heap:</em> Ideally, all of the clustered object data should fit into its heap, note: allow for garbaged objects, not recommended heap &gt; 6/8GB<br />
<em>Memory Sizing - RAM:</em> enough RAM to accommodate the heap of the Terracotta server JVM. In addition, there should be enough RAM headroom to keep the blocks of the Sleepycat data store files in the host operating system&#8217;s filesystem cache for fast access.<br />
<em>CPU: </em>dedicated server, capacity planning needed. Note: The more garbage your application creates, the more CPU resources will be consumed by the Terracotta Distributed Garbage Collector. Likewise, the higher the object read or write rate between Terracotta client nodes and a Terracotta server instance, the more CPU resources that server instance consumes.<br />
Number of server nodes: min 2 for HA and failover</p>
<p>Network</p>
<p>Gigabit full duplex between server and clients, and server array, low latency network, redundant NICs and redundant switches with automatic failover</p>
<p><strong>Performance</strong></p>
<p>According to Terracotta: it is faster than other distributed cache, data grid solutions. It is due to the nature of synchronizing only deltas of object state. Terracotta scales much better than i.e. Coherence even with big transaction payloads. At small scale it has throughput 2x Oracle&#8217;s at all transaction sizes. At high scale (8 nodes) throughput was as much as 10x higher than Oracle. However independent tests of a specific use case scenario should be performed to back up the results.</p>
<p><strong>Support package</strong></p>
<p>There are Enterprise Subscription packages: production support GOLD 7X24 | SILVER 5X12 with issue escalation privileges and procedures. Also consulting and training services. Pricing individually discussed.</p>
<p><strong>Code stability</strong></p>
<p>Current version 2.7.1. Code is mature as the company started to work on Terraccota in 2003. Two years ago project has been opensourced. Licensed as Terracotta Public License, based on the Mozilla Public License. Free version requires displaying the words &#8220;Powered by Terracotta&#8221; in user interfaces. Commercial Version removes this requirement. Typical price $7,000 per node. A single Terracotta server can handle up to 150 nodes, but on heavy Java applications, such as those used in online reservation systems, that gets reduced to somewhere between 15 to 20 nodes per Terracotta server.</p>
<p><strong>Partitioning</strong></p>
<p>Workload partitioning:</p>
<p>Terracotta does not ship with a particular workload partitioning strategy in the box. Layer 7 sticky load balancer that is able to route requests for a particular user session to the same Terracotta client application server and is likewise able to balance user sessions evenly across all available application servers can be used to achieve workload partitioning. Use of round-robin or a non-sticky load balancing is strongly discouraged. Other forms of workload partitioning may be required for different use cases. Implementing workload partitioning algorithms in Java that can then be made cluster-aware via Terracotta is often a simple way to meet custom workload partitioning requirements.</p>
<p>Data partitioning</p>
<p>Each application server should only have the data that its workload requires access to in heap. (Magic warning!) Terracotta detects how your application uses its data and optimizes the data location automatically to minimize network updates. Terracotta manages replicating in the most efficient way. Only deltas to your object graph are pushed, objects automatically reside in JVMs that need them, and not in JVMs that don&#8217;t (vs. alternatives that always force you to configure and partition up front).</p>
<p><strong>Transactional</strong></p>
<p>Terracotta transactions are sets of clustered object changes that must be applied atomically. Transactions are bounded by lock acquisition and release. When a clustered lock is acquired by a thread, a Terracotta transaction is started and all changes to clustered objects made within the scope of that lock are added to that transaction. When the lock is released, the Terracotta transaction is committed. If a thread attempts to modify a clustered object outside the context of a terracotta transaction, a runtime exception will be thrown.</p>
<p><strong>Replication and consistency</strong></p>
<p>Fully synchronous replication between nodes. The data is always coherent and doesn&#8217;t suffer any cache drifts.</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=58&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_58" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/12/04/evaluating-terracotta/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Agile planning for less geeky people</title>
		<link>http://www.woloszyn.org/2008/11/23/agile-planning-for-less-geeky-people/</link>
		<comments>http://www.woloszyn.org/2008/11/23/agile-planning-for-less-geeky-people/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 10:47:06 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Private]]></category>

		<category><![CDATA[acca]]></category>

		<category><![CDATA[accountancy]]></category>

		<category><![CDATA[planning]]></category>

		<category><![CDATA[scrumworks]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/11/23/agile-planning-for-less-geeky-people/</guid>
		<description><![CDATA[I&#8217;ve been performing a small experiment lately and wanted to share some results.
My girlfriend is pursuing chartered accountant qualification. In order to qualify as an ACCA member, one has to complete 14 exams. The length of time it takes to qualify depends on the student as the course is designed to be flexible. Each year [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://farm4.static.flickr.com/3074/2982961375_06925fdd26_b.jpg" title="Click to enlarge"><img src="http://farm4.static.flickr.com/3074/2982961375_06925fdd26_m.jpg" align="left" border="0" height="180" hspace="0" vspace="0" width="240" /></a>I&#8217;ve been performing a small experiment lately and wanted to share some results.</p>
<p>My girlfriend is pursuing <a href="http://www.accaglobal.com">chartered accountant qualification</a>. In order to qualify as an ACCA member, one has to complete 14 exams. The length of time it takes to qualify depends on the student as the course is designed to be flexible. Each year there are two examination session and one can sit up to four papers per session. With just couple of exams, it makes substantial amount to read, digest, revise, rehearse, to be able to pass. But in the same time it is pretty predictable. If you put this much of effort you can expect particular result. So, the problem can be defined as:</p>
<blockquote><p><em>with a limited time on hands, how to score &gt;= 51% for each of the exams one attempts to pass.</em></p></blockquote>
<p>I could see her struggle. She knew what she has to do but she didn&#8217;t know if with current time constraints it is durable. She didn&#8217;t know if she will be able to prepare well enough for all the papers, or maybe drop an exam to give more time to other exams. What was needed is a simple plan with estimation put in realistic time frame. I decided to step in and help organize it using <a href="http://en.wikipedia.org/wiki/SCRUM">agile planning</a> tool which I&#8217;ve been using for last two years: <a href="http://danube.com/scrumworks/basic">ScrumWorks</a>. I&#8217;m trying to be quite serious here but I can see glimpses of smile appearing on faces of many people reading it now. I understand and it would be quite amusing for me as well. But hey, there is no such thing which we can&#8217;t do to entertain other people!</p>
<p>We started our <a href="http://en.wikipedia.org/wiki/Extreme_Programming_Practices#Planning_game">planning</a> with creating <a href="http://en.wikipedia.org/wiki/User_story">user stories</a>. It would map directly to modules in each paper. The size of each user story would be the same to start with. Then each user story would be tasked out: each module requires particular amount of time allocated to reading, making exercises, revising. On the top of that there was time allocated to mock exams and wide spectrum revising. Each of the tasks can be quite well estimated. What&#8217;s unusual here is that all the user stories were tasked out up front and not on weekly iteration planning. In this case it was possible and needed as the deadline is fixed and domain well understood. After this agile planning exercise we ended up with very clear backlog. We knew what it takes to pass exam. The second part of this was allocating user stories with tasks to particular <a href="http://en.wikipedia.org/wiki/Iteration#Project_management">weekly iterations</a>. It was easy enough just to divide workload in equal batches and reserve some time in last two weeks for this known-unknowns which always appear before release.</p>
<p>It&#8217;s her fifth iteration now. Except the initial introduction of the process I haven&#8217;t been interfering much. Each Sunday she was re-planning to accommodate real velocity, adding, removing or changing tasks, re-prioritizing. I have to say that she loves <a href="http://danube.com/scrumworks/basic">Scrumworks</a>! It is a very simple tool which just does the job. Especially drag-and-drop re-planning and burn down charts she found very handy and useful.</p>
<p>So, what has changed since introducing this process? First advantage is improved visibility of progress which in very honest and direct way shows if one is doomed or not. It helps to make difficult decisions. With weekly iterations it helps to maintain a high average focus and saves a lot of stress being generated by not knowing if we are behind or ahead with preparations. I recon I will have to wait till exams to see how well the geeky project management can help &#8220;an average Joe&#8221;.</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=52&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_52" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/11/23/agile-planning-for-less-geeky-people/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My running in next 6 months and a bit</title>
		<link>http://www.woloszyn.org/2008/11/11/my-running-in-next-6-months-and-a-bit/</link>
		<comments>http://www.woloszyn.org/2008/11/11/my-running-in-next-6-months-and-a-bit/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 09:59:17 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Running]]></category>

		<category><![CDATA[10k]]></category>

		<category><![CDATA[halfmarathon]]></category>

		<category><![CDATA[lisbon]]></category>

		<category><![CDATA[london]]></category>

		<category><![CDATA[marathon]]></category>

		<category><![CDATA[paris]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/11/11/my-running-in-next-6-months-and-a-bit/</guid>
		<description><![CDATA[It is just a quick post to give an update on my plans for running for next half a year. After finishing Nike10k and Royal Parks Half Marathon I wanted to line up some next run, preferably a full marathon to give me some target and motivation for training. Obvious choice was London Flora Marathon [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3015/3016686942_ff356f590c_o.jpg" align="left" border="0" height="90" hspace="0" vspace="0" width="309" />It is just a quick post to give an update on my plans for running for next half a year. After finishing <a href="http://www.woloszyn.org/2008/09/03/the-human-race-10k/">Nike10k</a> and <a href="http://www.woloszyn.org/2008/10/24/royal-parks-half-marathon-2008/">Royal Parks Half Marathon</a> I wanted to line up some next run, preferably a full marathon to give me some target and motivation for training. Obvious choice was <a href="http://www.london-marathon.co.uk/">London Flora Marathon</a> but I didn&#8217;t get a place in the ballot. After quick research what&#8217;s happening in Europe in early April I decided to register for <a href="http://www.parismarathon.com">Paris Marathon</a> which will take place on 5th of April 2009. I read some good reviews online and it should be amazing run to do with route in the heart of Paris starting and finishing on Champs Elysées with a long stretch along Seine.</p>
<p><img src="http://farm4.static.flickr.com/3032/3016676696_20522283a5_m.jpg" align="right" border="0" height="159" hspace="0" vspace="0" width="240" />As it is going to be my first Marathon I wanted to run some other longer run just before Paris to boost my confidence and I have chosen <a href="http://www.lisbon-half-marathon.com">Half Marathon in Lisbon</a>, Portugal which is 2 weeks before on 22nd of March 2009. I decided to do that one because of the weather which should be better than in UK or NSE (Non-South of Europe :). Plus, I have never been to Lisbon and I found the location of the run very appealing. Just <a href="http://www.lisbon-half-marathon.com/en/gallery.htm">check out the photos</a>!</p>
<p>And the last but not least on my calendar the <a href="http://www.london10000.co.uk/site/">Bupa 10k</a> in London on 25th of May 2009. It should be quite fun run! The race starts on Birdcage Walk and follows an anti-clockwise route around the City of Westminster and the City of London via Parliament Square, Embankment, Blackfriars Bridge, Queen Victoria Street, Cannon Street, Great Tower Street, Crutched Friars, Fenchurch Street, Leadenhall Market, Cornhill, Queen Victoria Street, Puddle Dock, Embankment, Horseguards Avenue, Whitehall and via Trafalgar Square to the Finish in The Mall.</p>
<p>Congratulations for <a href="http://twitter.com/gabriela">Gabby</a> for <a href="http://www.rainforestfoundationuk.org/">finishing her first 10k</a> couple of weeks ago!</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=51&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_51" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/11/11/my-running-in-next-6-months-and-a-bit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thoughts on dispersed agile teams</title>
		<link>http://www.woloszyn.org/2008/11/09/thoughts-on-dispersed-agile-teams/</link>
		<comments>http://www.woloszyn.org/2008/11/09/thoughts-on-dispersed-agile-teams/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 18:17:33 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[disperse]]></category>

		<category><![CDATA[distributed]]></category>

		<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/11/09/thoughts-on-dispersed-agile-teams/</guid>
		<description><![CDATA[I came across a paper from Microsoft on distributed agile development and wanted to share some thoughts from my experience on that topic. It&#8217;s not a matter of choice, that&#8217;s matter of reality that software teams are more and more often distributed where the scale of distribution may run from:

homeworkers based in the same city,
to [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a paper from Microsoft on <a href="http://download.microsoft.com/download/4/4/a/44a2cebd-63fb-4379-898d-9cf24822c6cc/distributed_agile_development_at_microsoft_patterns_and_practices.pdf">distributed agile development</a> and wanted to share some thoughts from my experience on that topic. It&#8217;s not a matter of choice, that&#8217;s matter of reality that software teams are more and more often distributed where the scale of distribution may run from:<img src="http://farm4.static.flickr.com/3054/3015396381_804615cbc8_m.jpg" align="right" border="0" height="180" hspace="0" vspace="0" width="240" /></p>
<ul>
<li>homeworkers based in the same city,</li>
<li>to people based in the same country in different offices/cities</li>
<li>followed by team members located in the different countries</li>
<li>then continents and</li>
<li>time zones.</li>
</ul>
<p>Luckily we haven&#8217;t left this planet yet!</p>
<p>It is nothing unusual to have a team working together day by day dispersed between two, three or four timezones (I&#8217;m lucky now with three timezones but with majority of people in the same room). Searching for the new highly skilled professionals, acquisitions in new global markets or outsourcing to cheaper regions could be some of the reasons for increasing distribution.</p>
<p>The physical distance and time difference is not helping to create a funcional agile team. It is actually very far from ideal situation where people sit in the same room, with whiteboard handy and plenty of formal and informal communication going on, following all practices. Broken communication and being unable to apply original agile/xp practices are first problems which come to my mind. It is rather intuitive that dispersed teams will never be as good as team working under the same roof. Or maybe, as I think the last thought goes a bit too far and takes away any hope, the amount of work and skills required to create successful distributed team is bigger for at least an order of magnitude. And again, as always in agile, it is up to each and everyone in the team to make it work.</p>
<p>To fix the broken communication we should actually simply collocate as often as possible with emphasis on planning and release time. It is almost unavoidable. But it is also investment which will pay off when team members will have to work on distance together. People who actually know each other will later on communicate much better. To enable this communication we have to provide right tools: unlimited voice communication with conferencing capabilities, IM clients, tools for remote desktop sharing, access to the same network resources, webcams, hand free headsets. One should also learn how to be open and approachable, that&#8217;s a key factor! Pairing is for many people difficult even in the same room and becomes even more difficult on distance, but still possible and beneficial. It&#8217;s simply much harder and takes longer to learn how to do it comfortably. Couple of pieces of advice: don&#8217;t break something what works by constantly reorganizing teams, don&#8217;t loose some people by letting them drift away forgotten. As I already mentioned not all xp/agile practices can be used in original form like pair programming. How you are going to use for instance index cards stuck to a wall with dispersed team? It might not work. But there is always some answer. Maybe a given practice can be slightly modified to fulfill its role, or maybe it can be replaced with some other practice (see paper from Thoughtworks on <a href="http://www.thoughtworks.com/pdfs/subclassingXP.pdf">Subclassing XP</a>) which might work better. To figure out what works and what doesn&#8217;t frequent retrospectives with all members is a must. As I said: it is all about communication!</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=50&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_50" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/11/09/thoughts-on-dispersed-agile-teams/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Royal Parks Half Marathon 2008</title>
		<link>http://www.woloszyn.org/2008/10/24/royal-parks-half-marathon-2008/</link>
		<comments>http://www.woloszyn.org/2008/10/24/royal-parks-half-marathon-2008/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 07:47:07 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Private]]></category>

		<category><![CDATA[Running]]></category>

		<category><![CDATA[halfmarathon]]></category>

		<category><![CDATA[london]]></category>

		<category><![CDATA[royalparkshalf]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/10/24/royal-parks-half-marathon-2008/</guid>
		<description><![CDATA[12 October, that was a great day. For many reasons.
Firstly, I managed, thanks to all your  generous donations, to raise £546, which exceeds the target by far. I am certain the money will go a long way with a little help from The Starfish Charity! Secondly, I finished the Royal Parks Half Marathon, my [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3240/2968183259_a182c60994_o.gif" align="left" border="0" height="211" hspace="0" vspace="0" width="170" />12 October, that was a great day. For many reasons.</p>
<p>Firstly, I managed, thanks to all your  <a href="http://www.justgiving.com/piotr-woloszyn">generous donations</a>, to raise £546, which exceeds the target by far. I am certain the money will go a long way with a little help from <a href="http://www.starfishcharity.org">The Starfish Charity</a>! Secondly, I finished the <a href="http://www.royalparkshalf.com/">Royal Parks Half Marathon</a>, my first such long run. My time was <a href="https://www.blacksheepsports.co.uk/franchised/results.aspx?emanagerid=42">1h 58min 40 sec</a>, couple of minutes faster than my target time. Yes, it was hard, it is bloody 13 miles, isn&#8217;t it? But with 12 thousand other runners around and thousands of people cheering along the way it was much easier. Afterwards a couple of days of being stiff but no serious injuries. If you want to try a half marathon I really recommend the Royal Mark Half. It was a first edition of this run this year and I think it already found enough fans to have a permanent entry in London&#8217;s runners calendars.</p>
<p><a href="http://farm4.static.flickr.com/3217/2968976290_a47c4ab3ea_o.jpg"><img src="http://farm4.static.flickr.com/3217/2968976290_ccfc505ec4_m.jpg" align="right" border="0" height="127" hspace="0" vspace="0" width="240" /></a>The route is prime with start and finish in Hyde Park, leading through Green Park and St. James Park and places and landmarks like Buckingham Palace, Houses of Parliament with Big Ben, London Eye, Embankment, Trafalgar Square, The Mall. Tremendous location. Plus weather! What&#8217;s the stellar day. Mid October but the day was sunny, with blue sky and maybe around 24 degrees. Perfect setup for the run! Now couple of goodies for you: here are <a href="http://www.flickr.com/photos/znachor/sets/72157608145696035/">some photos from the day</a>. There is also <a href="http://sportstracker.nokia.com/nts/workoutdetail/index.do?id=473129">GPS data with some stats</a> (distance is slightly inaccurate as the position signal was noisy that day).</p>
<p>Big thanks to <a href="http://www.justgiving.com/hundred-fivers">Andre Vermeulen</a> who convinced me to run the Royal Parks and raise money for the Starfish.</p>
<p>Side note: I&#8217;ve been rejected 3rd time for London Marathon but I already signed up for the <a href="http://www.parismarathon.com">Paris Marathon</a> on 5th of April 2009. Let me know if you want to do  it as well.</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=49&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_49" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/10/24/royal-parks-half-marathon-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Developing in branches, releasing from trunk</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/</link>
		<comments>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 17:27:32 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Open source]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[TDD]]></category>

		<category><![CDATA[Testing]]></category>

		<category><![CDATA[bazaar]]></category>

		<category><![CDATA[branch]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[jira]]></category>

		<category><![CDATA[merging]]></category>

		<category><![CDATA[release]]></category>

		<category><![CDATA[scrumworks]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[trunk]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/</guid>
		<description><![CDATA[Me and my new team preparing now to starting a new greenfield project in month or so. Starting something new is very exciting itself and lets us put new processes in place. But how to decide about the processes? Simply by collaborating, discussing and exchanging ideas and previous experience. In this post I will focus [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3119/2850549723_a1f548246d_m.jpg" alt="Branches" vspace="0" width="240" align="right" border="0" height="240" hspace="0" />Me and my new team preparing now to starting a new greenfield project in month or so. Starting something new is very exciting itself and lets us put new processes in place. But how to decide about the processes? Simply by collaborating, discussing and exchanging ideas and previous experience. In this post I will focus on the development/release process and choices we are facing at the moment.</p>
<p>Just to give some perspective&#8230; In the past when working on the <a href="http://web21c.bt.com/">BT SDK</a> with <a href="http://www.woloszyn.org/2008/07/16/good-bye-to-the-web21c-team/">Web21c team</a> I was using <a href="http://danube.com/scrumworks">ScrumWorks</a> for managing user stories or, as some other people would call it, features, improvements or bugfixes and mapping those to particular releases. The public releases were very infrequent and scheduled every 3 months. Emergency releases with bug fixes could happen more often. Of course as for an agile team internal releases occurred more often, usually every 2 weeks ended with an acceptance session with a product owner. The <a href="http://subversion.tigris.org/">Subversion</a> has been used as the source repository, with all active development happening usually in parallel in the trunk. Some time before release the code was frozen in a branch by copying an active trunk and only bug fixes were applied to the release branch, subsequently merged back to the trunk. I could call this process &#8220;Develop in trunk, release from a branch&#8221;.</p>
<p>At my current project we use only <a href="http://www.jira.com/">JIRA</a> for managing bugs/features/improvements and matching it to particular releases and the releases will occur much more often (every week or two) with possible multiple emergency releases in meantime. Source is kept in Subversion as well. The team is not calling itself &#8220;agile&#8221; however I think it has to be very agile to cope with the schedule and a right process should be established to support it. It could look like:</p>
<p>Development time</p>
<p>1. In JIRA we create a bunch of tickets for new features, bug fixes or improvements. A developer is assigned (hey, who likes that phrase?) a task to work on.<br />
2. Before starting work a new branch is created from trunk with the JIRA number as a name<br />
3. Work on that task commences and all changes are committed to the new branch. If there are several dependant tickets then JIRA should have a parent ticket created and all dependant tickets assigned as children. It resembles higher level user story with tasks from <a href="http://en.wikipedia.org/wiki/Scrum_(development)">Scrum</a>.</p>
<p>Build/Release time</p>
<p>1. In JIRA a release or version will be set up and given a name (i.e. 1.0.1). This will contain a list of tickets that are to be used for this release<br />
2. A new branch will be created in SVN from trunk, matching the name of the JIRA release.<br />
3. The branches that match the JIRA tickets for this release are merged into the new release branch.<br />
4. A continuous integration build is pointed to the newly created release branch.<br />
5. The build should pass unit tests, integration tests, automated acceptance tests, is then deployed to UAT environment for final user acceptance tests.<br />
6. When ready for release, a tag is created from the branch matching the JIRA release name. The software is deployed to production.<br />
7. The code from the tag is now merged back to trunk</p>
<p>It is clearly &#8220;Develop in branches, release from trunk&#8221;. Sounds weird at the beginning. Have to admit that I didn’t use exactly this process before but my first impression is that it is really structured methodology which:</p>
<ul>
<li>gives superb view what actually is currently deployed (via mapping tickets to releases in JIRA)</li>
<li>allows adding/removing changes easily – we can always take a previous tagged version and apply selected modification by merging</li>
<li>supports external auditing</li>
</ul>
<p>In the same time my gut feel tells me that:</p>
<ul>
<li>merging before release might be a nightmare (volunteers for a release manager?)</li>
<li>the process seems to be too regulated, &#8220;boxed&#8221;, &#8220;walled&#8221;</li>
</ul>
<p>It will very much depend on the release schedule and how often the changes will be released which means how often the trunk will be up to date with the latest code. Let’s assume we have biweekly releases. It will mean that at the average a developer will be working with a one week old code. With an application in a maintenance mode with occasional bug fixes which doesn’t change dramatically it would be acceptable but taking as example a new project with many contributors, dependencies between components and a lot of expected changes in design and implementation I think that might be problematic.</p>
<p>It really doesn’t encourage refactoring neither. Just imaging what would happen if two branches taken from the same version of TRUNK were exposed to wider and more intensive refactoring? And for me refactoring is a necessary factor which means continuous and gradual code quality improvement leading to system quality improvement. I know, we should do everything right first time. Why I didn’t think about this before?</p>
<p>Other downside which I can see is that we might completely lose transparency and visibility what is happening with the code. People will commit to &#8220;own&#8221; branches without a continuous integration. I have to say that I like to monitor changes to current source code via email from continuous integration with last check-in comments. It gives me a way of quickly assessing if the ongoing development is related to my current task, I can merge incoming changes one by one with my changes which means that I don’t do something which someone already has done or something which doesn’t make sense any more.</p>
<p>So, I have mixed feelings. The biggest advantage of the process I can see is easy adding/withdrawing pieces of functionality at short notice. And it (at least in theory, not mentioning the merging hell) fulfils the role very well. The process actually resembles the way how open source communities work. Each contributor branches from trunk and does development on his/her own without breaking anyone else code. When feature is ready then it is (after code review) merged back to trunk or release branch.</p>
<p>It appears that the problem here is caused by subversion not being the best at the merging job. So as we can see a good tool for merging is essential here to make the life easier. It looks like open source guys moved towards GIT and <a href="http://bazaar-vcs.org">BAZAAR</a> now with <a href="http://git.or.cz/">GIT</a> getting a lot of traction as it has support for SVN as well.</p>
<p>The process described is not final and would look into refining it to better support given development/release practises. If you have suggestions, comments or you have been using similar process please free to contribute and share.</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=48&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_48" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LHC First Beam</title>
		<link>http://www.woloszyn.org/2008/09/10/lhc-first-beam/</link>
		<comments>http://www.woloszyn.org/2008/09/10/lhc-first-beam/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 07:15:40 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Science]]></category>

		<category><![CDATA[accelerator]]></category>

		<category><![CDATA[beam]]></category>

		<category><![CDATA[cern]]></category>

		<category><![CDATA[geneva]]></category>

		<category><![CDATA[lhc]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/09/10/lhc-first-beam/</guid>
		<description><![CDATA[Yes, it will happen today! Exactly now, at 8.15am GMT on 10 September scientists at the European Organization for Nuclear Research (CERN) in Geneva, the same place where the lovely web was born, will attempt to circulate a beam in the Large Hadron Collider (LHC) for the first time. It took a while and some [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3055/2845434024_2d72925c98.jpg" alt="Detector at CERN" vspace="0" width="186" align="left" border="0" height="500" hspace="0" />Yes, it will happen today! Exactly now, at 8.15am GMT on 10 September scientists at the <a href="http://cern.ch">European Organization for Nuclear Research</a> (CERN) in Geneva, the same place where the lovely web was born, <a href="http://lhc-first-beam.web.cern.ch/lhc-first-beam/Welcome.html">will attempt to circulate a beam</a> in the <a href="http://en.wikipedia.org/wiki/Large_Hadron_Collider">Large Hadron Collider</a> (LHC) for the first time. It took a while and some money, literally 14 years and 4 billion pounds. When back in 2004 I was working on LASER, the alarm system for LHC, I could see how big, how complex the accelerator is. The software engineering is easy and predictable comparing to such big hardware project however we are doomed to miss deadlines, I am not that bothered that it took couple of years longer to have the first beam that scientists envisaged. Talking about money, that&#8217;s the price of research and moving forward as civilization. It certainly will not change an average Joe&#8217;s life straight away but it will help scientist to answer some big questions about the universe: why particles have mass, what dark matter may be made of, and why matter survived its brush with antimatter when the universe was young.  Just to remind you that the LHC is the world’s most powerful particle accelerator, and will produce beams seven times more energetic, and around 30 times more intense than any previous machine. There will be official <a href="http://webcast.cern.ch/index2.html">live webcast from Geneva</a> which you can follow.<br />
And no, <a href="http://www.telegraph.co.uk/earth/main.jhtml?xml=/earth/2008/09/05/scilhc105.xml">noone will die and the world will not disappear in any black hole</a>!</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=47&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_47" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/09/10/lhc-first-beam/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Human Race 10k</title>
		<link>http://www.woloszyn.org/2008/09/03/the-human-race-10k/</link>
		<comments>http://www.woloszyn.org/2008/09/03/the-human-race-10k/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 23:18:19 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Charity]]></category>

		<category><![CDATA[Private]]></category>

		<category><![CDATA[Sport]]></category>

		<category><![CDATA[2008]]></category>

		<category><![CDATA[humanrace]]></category>

		<category><![CDATA[nike]]></category>

		<category><![CDATA[run]]></category>

		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/09/03/the-human-race-10k/</guid>
		<description><![CDATA[First 10km done, 21km to go.
Last Sunday I took part in a Nike project: The Human Race which was aiming to get million people worldwide to run 10km. Here in London the race started at the Wembley Stadium and the finish line was located on the Olympic Way next to the stadium. I have to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3049/2814541477_bbffa1ed65_m.jpg" alt="Happy on the finish line of the Nike Human Race" align="right" border="0" height="180" hspace="0" vspace="0" width="240" />First 10km done, 21km to go.</p>
<p>Last Sunday I took part in a Nike project: <a href="http://inside.nike.com/blogs/humanrace-en_GB">The Human Race</a> which was aiming to get million people worldwide to run 10km. Here in London the race started at the Wembley Stadium and the finish line was located on the <a href="http://en.wikipedia.org/wiki/Wembley_Way">Olympic Way</a> next to the stadium. I have to honestly say that despite a <a href="http://flickr.com/photos/znachor/2814487168/in/set-72157607081174843/">heavy rain</a> before and during the race it was really good fun! Pretty amazing feeling to take part of such a big run starting at the pitch of famous Wembley and to run along with <a href="http://en.wikipedia.org/wiki/Paula_Radcliffe">Paula Radcliffe</a>. Me and my girlfriend managed to finish in <a href="http://nikeplus.nike.com/nikeplus/humanrace/leaderboard.jsp">01h 01min 53sec</a> (6.43sec/km - 2.5km, 6.16sec/km - 5km, 5.48sec/km - 7.5km, 5.58sec/km - 10km). London managed to get 2nd fastest average time of all the cities taking part in the race with result 57min 47sec, just 1min 13sec more that Madrid. Well done to everyone! Here are some <a href="http://flickr.com/photos/znachor/sets/72157607081174843/">photos</a> from the day.</p>
<p>I wanted to apologize to everyone who had a wrong impression that I will run a single 31km run for the <a href="http://www.justgiving.com/piotr-woloszyn">Starfish charity</a>. I believed I made this clear but probably not. So&#8230; I was planning to run Nike race (10km) and then a half marathon (21mk). I am really doing my best! :)</p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=46&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_46" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/09/03/the-human-race-10k/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Please sponsor my 31km run and help children</title>
		<link>http://www.woloszyn.org/2008/08/30/please-sponsor-my-31km-run-and-help-children/</link>
		<comments>http://www.woloszyn.org/2008/08/30/please-sponsor-my-31km-run-and-help-children/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 14:20:37 +0000</pubDate>
		<dc:creator>znachor</dc:creator>
		
		<category><![CDATA[Charity]]></category>

		<category><![CDATA[Private]]></category>

		<category><![CDATA[Running]]></category>

		<category><![CDATA[Sport]]></category>

		<category><![CDATA[aids]]></category>

		<category><![CDATA[halfmarathon]]></category>

		<category><![CDATA[hiv]]></category>

		<category><![CDATA[run]]></category>

		<guid isPermaLink="false">http://www.woloszyn.org/2008/08/30/please-sponsor-my-31km-run-and-help-children/</guid>
		<description><![CDATA[It&#8217;s been a bit quiet recently on my blog as I was busy with my new job but mainly because I was preparing to couple of runs which I was planning for long time. Tomorrow, on August 31, 2008 I will be running 10km as part of The Human Race. On October 12, 2008, I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3024/2811253300_c145ef086c.jpg" alt="I will run, you can help." align="left" border="0" height="338" hspace="0" vspace="0" width="500" />It&#8217;s been a bit quiet recently on my blog as I was busy with my new job but mainly because I was preparing to couple of runs which I was planning for long time. Tomorrow, on August 31, 2008 I will be running 10km as part of <a href="javascript:void(0);/*1220103389335*/">The Human Race</a>. On October 12, 2008, I will be running <a href="javascript:void(0);/*1220103409021*/">The Royal Parks Half Marathon</a> as a member of <a href="javascript:void(0);/*1220103437491*/">The Starfish Greathearts Foundation</a>, a development charity, aiming to bring life, hope and opportunity to children in South Africa, who have been orphaned or made vulnerable by HIV/AIDS.</p>
<p>I usually don&#8217;t do that but this time I would like to ask you for your financial support and I am inviting you to join me in this effort to help improve the lives of children by raising <strong>£500</strong> for The Starfish Charity.</p>
<p>I set up a fund raising site on <a href="http://www.justgiving.com/piotr-woloszyn">Justgiving</a> which makes donating quick, easy and totally secure. I put also a widget on the right side of this blog so you can see the fundrising progress. I will be posting updates on my training and results as always to my <a href="http://twitter.com/znachor">Twitter</a> and <a href="http://flickr.com/photos/znachor">Flickr</a> streams.</p>
<p>I am really nervous if I can raise so much as it is my first such effort. However I know that I can count on you!</p>
<p><a href="http://www.justgiving.com/piotr-woloszyn" alt="Justgiving - SPONSOR ME" target="_blank"><img src="http://www.justgiving.com/design/1/images/badges/justgiving_badge5.gif" border="0" height="85" width="150" /></a></p>
<p class="akst_link"><a href="http://www.woloszyn.org/?p=45&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_45" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.woloszyn.org/2008/08/30/please-sponsor-my-31km-run-and-help-children/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
