<?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>Multunus &#187; Leena</title>
	<atom:link href="http://www.multunus.com/author/leena/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.multunus.com</link>
	<description>Multunus Blog</description>
	<lastBuildDate>Thu, 02 Sep 2010 14:52:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Configuring Hudson CI server behind firewall</title>
		<link>http://www.multunus.com/2010/09/configuring-hudson-ci-server-behind-firewall/</link>
		<comments>http://www.multunus.com/2010/09/configuring-hudson-ci-server-behind-firewall/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 14:44:17 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=936</guid>
		<description><![CDATA[When firewall was introduced within our local network, the Hudson server stopped working with the error:
javax.jmdns.impl.tasks.Prober run
WARNING: run() exception
java.io.IOException: Operation not permitted
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:625)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1200)
at javax.jmdns.impl.tasks.Prober.run(Prober.java:163)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
And when you access hudson in browser, it stays with the message &#8220;Please wait while Hudson is getting ready to work&#8230;.&#8221; forever.
Initially I thought the problem might be [...]]]></description>
			<content:encoded><![CDATA[<p>When firewall was introduced within our local network, the Hudson server stopped working with the error:</p>
<pre>javax.jmdns.impl.tasks.Prober run
WARNING: run() exception
java.io.IOException: Operation not permitted
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:625)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1200)
at javax.jmdns.impl.tasks.Prober.run(Prober.java:163)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)</pre>
<p>And when you access hudson in browser, it stays with the message <strong><em>&#8220;Please wait while Hudson is getting ready to work&#8230;.&#8221;</em></strong><em></em> forever.</p>
<p>Initially I thought the problem might be because the ports which are required by the Hudson server i.e. 8080 and 5353, were not opened in the Firewall. I opened those, but the error remained.</p>
<p>After googling for sometime, I could find similar issues being reported here:</p>
<p><a href="http://issues.hudson-ci.org/browse/HUDSON-7129?page=com.atlassian.streams.streams-jira-plugin:activity-stream-issue-tab">http://issues.hudson-ci.org/browse/HUDSON-7129?page=com.atlassian.streams.streams-jira-plugin:activity-stream-issue-tab</a></p>
<p>And the issue got fixed by adding</p>
<pre>-Dhudson.DNSMultiCast.disabled=true</pre>
<p>to the java command as follows:</p>
<pre>java -Dhudson.DNSMultiCast.disabled=true -jar hudson.war --httpPort=8080</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2010/09/configuring-hudson-ci-server-behind-firewall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lessons learned from Agile Bengaluru 2010</title>
		<link>http://www.multunus.com/2010/02/lessons-learned-from-agile-bengaluru-2010/</link>
		<comments>http://www.multunus.com/2010/02/lessons-learned-from-agile-bengaluru-2010/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 09:55:48 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=781</guid>
		<description><![CDATA[It was a great feeling after attending the Agile Bengaluru Conf 2010. The theme for this Agile Conference was Post-Modern Agile i.e. what&#8217;s next after Agile. Most of the sessions were talking mainly on what needs to be done to make a product a success. Just following agile practices will not make any product a [...]]]></description>
			<content:encoded><![CDATA[<p>It was a great feeling after attending the <a href="http://www.agileindia.org/agilebengaluru2010">Agile Bengaluru Conf 2010</a>. The theme for this Agile Conference was <strong>Post-Modern Agile</strong> i.e. what&#8217;s next after Agile. Most of the sessions were talking mainly on what needs to be done to make a product a success. Just following agile practices will not make any product a success. The team needs to get out of their circle and think outside the coding level to understand their customers. The main takeaway points of the session are:</p>
<ul>
<li><strong>Frequent Validation</strong> &#8211; Always validate with actual customers. Talk directly to them, take their feedback, implement it and soon release it. This cycle has to continue. If we don&#8217;t do this, there is no meaning in building any product with BDD/TDD, Automated tests etc.</li>
<li><strong>Limiting WIP</strong> [Work-In-Progress] &#8211; Never leave too many things untested or unreleased. Get your QA team to test as soon as the dev team is done. Release to production as soon as QA is done. When we make frequent releases, you can also get frequent validation.</li>
<li><strong>Checking vs Testing</strong> &#8211; If you&#8217;re not sure what the difference is, there&#8217;s an <a href="http://www.infoq.com/news/2009/12/testing-or-checking">article on InfoQ</a> that explains this well. The bottom line is, use automated tests for mundane tasks ["checking"] and use manual testing for exploratory testing.</li>
</ul>
<p>There was an <a href="http://www.agileindia.org/agilebengaluru2010/agile-bengaluru-2010-a-startup-journey.htm">interesting session</a> by <strong><em>Siddhartha Govindaraj</em></strong>, who is the founder of Silver Stripe Software. He talked about how they evolved from ad-hoc to Agile and from Agile to <a href="http://en.wikipedia.org/wiki/Kanban">Kanban</a>.  The points I felt interesting and which are worth trying out are:</p>
<ol>
<li><strong>No iterations/sprint -</strong> Always take top items from backlog &#8211; What usually happens during an iteration is, either you might finish all the items in an iteration and as there is still more time left you might have to pull some item from the backlog. The other case can be, you are not fully done with some tasks you might have to push some items to next sprint. Instead of this, always take items from backlog. The developers are supposed to work on the top items in the backlog and QA will be testing as soon as the development is done. QA need not have to wait for a certain period to test.</li>
<li><strong>Limiting WIP (Work In Progress) -</strong> Don&#8217;t pile up stuff, never leave anything untested/unreleased. If WIP goes beyond a specific number, then change the plan like stop development make devs to test. And don&#8217;t keep tested stuff unreleased. Alway keep a maximum number of items that needs to be part of released. So even if the release is planned weekly, there can be multiple releases during the week if a lot of features are implemented during a certain week. Another advantage with this approach is, when dev team gets a chance to sit with QA, they also learn about exploratory testing.</li>
<li><strong>Single backlog for multiple projects -</strong> This is an interesting point. He had multiple projects say A &amp; B, both in maintenance stage. He has a team of 5. So rather than splitting the team into 2 across these 2 projects, they kept a single backlog of both projects. They prioritize the backlog and take items from that. This way both projects move in parallel more smoothly.</li>
<li><strong>Checking vs testing -</strong> Checking should <span style="text-decoration: underline;">always</span> be automated while  Manual testing effort should be reserved for exploratory testing <span style="text-decoration: underline;">only</span>.</li>
</ol>
<p>He also suggests avoiding a daily Scrum meeting. The point he had was, the team should be interacting so closely throughout the day, which avoids the need for a stand-up . But if there is an issue that needs to be discussed or if there is a requirement for having a discussion within teams, then such a stand-up is called for. I heard the same being discussed by many people &#8211; that Scrum is not really mandatory but am not sure about the same as of now. At Multunus, we still get quite a lot of value out of the stand- ups, because <a href="http://www.multunus.com/2010/01/our-pragmatic-processes/">we do it a little differently</a>.</p>
<p>It was a pretty simple presentation in which he was talking about how their company has evolved. As it was about his own experience, he had concrete examples for validating his points. There were questions from the audience like, how velocity is calculated if there were no sprints, how the team would get adjusted to context switching in case of single backlog etc. His answer was that, they are a small team &#8211; so these were mostly non-issues for them. And about velocity, productivity etc, those really will come into picture only if there is not enough trust in the team. If the team trusts the management and the management also trusts the team, then these productivity/burn down charts etc are meaningless. That point really made a lot of sense to me. If the team always perform/deliver well and if the management has trust on the team, why should they look at the burn down charts etc to see the team&#8217;s performance?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2010/02/lessons-learned-from-agile-bengaluru-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Convert code signing certificates from &#8220;pfx&#8221; to &#8220;p12&#8243; format</title>
		<link>http://www.multunus.com/2010/02/convert-code-signing-certificates-from-pfx-to-p12-format/</link>
		<comments>http://www.multunus.com/2010/02/convert-code-signing-certificates-from-pfx-to-p12-format/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 05:13:34 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=744</guid>
		<description><![CDATA[One of the requirements we had was to sign the applet that we built for UserThoughts. We had purchased Comodo&#8217;s code signing certificate from KSoftware. When you download the certificate from their site, it automatically gets installed in IE. Follow these steps for converting it into format which you can use with the Java Jarsigner.

 Export [...]]]></description>
			<content:encoded><![CDATA[<div><strong>One of the requirements we had was to sign the applet that we built for <a href="http://alpha.userthoughts.com">UserThoughts</a></strong><strong>. We had purchased Comodo&#8217;s <a id="l5m3" title="code signing certificate" href="http://en.wikipedia.org/wiki/Code_signing">code signing certificate</a> from <a id="wp-h" title="KSoftware" href="https://secure.ksoftware.net/code_signing.html?gclid=CN-epdfskZ8CFVBd4wodTC6EIA">KSoftware</a>. When you download the certificate from their site, it automatically gets installed in IE. Follow these steps for converting it into format which you can use with the Java Jarsigner.</strong></div>
<ol>
<li> Export the certificate from IE by following the instructions given here: <a href="http://www.tech-pro.net/export-to-pfx.html">http://www.tech-pro.net/export-to-pfx.html</a></li>
<li> The certificate with Private key will be exported as PFX format in the above step &#8211; but this <strong>cannot</strong> be used by the jarsigner. So you need to convert it into &#8220;p12 format&#8221; which the jarsigner can understand. For that you need to use Mozilla. First import the certificate  saved in step 1 into Mozilla as follows:
<ol>
<li> From the &#8220;Edit&#8221; menu select &#8220;Preferences&#8221; and open the &#8220;Privacy &amp; Security&#8221; category and click on the &#8220;Certificates&#8221; item.</li>
<li> In the &#8220;Manage Certificates&#8221; section, click on the &#8220;Manage Certificates&#8221; button.</li>
<li> In the &#8220;Certificate Manager&#8221; window, the &#8220;Your Certificates&#8221; tab should automatically open. (If not, select it.)</li>
<li> Click the &#8220;Impor&#8221;t button at the bottom of the window.</li>
<li> It prompts you to select an existing file; select your certificate file from the location where you saved it in when you exported it.</li>
<li> It prompts you to provide the &#8220;Master Password&#8221;; enter it, if you have set one.</li>
<li> It prompts you to provide the password used to encrypt the certificate backup; enter it.</li>
<li> It should say &#8220;Successfully restored your certificate(s) and private key(s).&#8221; Click OK.</li>
</ol>
</li>
<li> Then export the certificate as p12 format:
<ol>
<li> From the &#8220;Edit&#8221; menu select &#8220;Preferences&#8221; and open the &#8220;Privacy &amp; Security&#8221; category and click on the &#8220;Certificates&#8221; item</li>
<li> In the &#8220;Manage Certificates&#8221; section, click on the &#8220;Manage Certificates&#8221; button.</li>
<li> In the &#8220;Certificate Manager&#8221; window, the &#8220;Your Certificates&#8221; tab should automatically open. (If not, select it.)</li>
<li> To export your &#8220;DOEGrids&#8221; or &#8220;KCA Personal Certificate&#8221;, click on it to select it, and click the &#8220;Backup&#8221; button at the bottom of the window.</li>
<li> You&#8217;ll be prompted to specify a filename and location for the &#8220;PKCS#12-format&#8221; certificate file (file extension will be &#8220;.p12&#8243; in UNIX/Linux,  &#8221;.pfx&#8221; in Windows).  Provide them and click OK.</li>
<li> A dialog box requesting the Master Password may appear (the password and certificate database). If you have set a Master Password, provide it. If not, you can make one up and provide it (optional). <strong>Remember this password!</strong></li>
<li> You&#8217;ll be prompted to make up and (twice) enter a second password. This one is for restoring this particular backup of this certificate. <strong>Remember this password!</strong></li>
<li> Once the system says it&#8217;s successfully backed up your certificate and private key, click OK.</li>
</ol>
</li>
<li> We also need to know the alias of the &#8220;.p12&#8243; file so run:
<ol>
<pre> keytool -list -storetype pkcs12 -keystore &lt;path to the cert file&gt;</pre>
</ol>
</li>
<li> Then you will see output like this:</li>
</ol>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> Keystore type: pkcs12 Keystore provider: SunJSSE</span></p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> Your keystore contains 1 entry</span></p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx, Apr 26, 2006, keyEntry, </span></p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> Certificate fingerprint (MD5):hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh</span></p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> The xxxx-xxx&#8230; number is the alias for the key</span></p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"> 6. Change your ant script as follows to sign the certificate:</span></span></p>
<pre class="brush: xml;">&lt;target name=&quot;signjar&quot; depends=&quot;jar&quot;&gt;
 &lt;signjar jar=&quot;yourJar.jar&quot; storetype=&quot;pkcs12&quot;
   keystore=&quot;yourkey.p12&quot; alias=&quot;Your Alias&quot;
   storepass=&quot;your password&quot;/&gt;
&lt;/target&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2010/02/convert-code-signing-certificates-from-pfx-to-p12-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
