<?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; All Posts</title>
	<atom:link href="http://www.multunus.com/blog/all/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.multunus.com</link>
	<description>Multunus Blog</description>
	<lastBuildDate>Mon, 30 Jan 2012 12:02:49 +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>A sneak peek into Mobile App Opportunities in 2012</title>
		<link>http://www.multunus.com/2012/01/a-sneak-peak-into-mobile-app-opportunities-in-2012/</link>
		<comments>http://www.multunus.com/2012/01/a-sneak-peak-into-mobile-app-opportunities-in-2012/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 11:15:13 +0000</pubDate>
		<dc:creator>Vaidy</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=2012</guid>
		<description><![CDATA[This article was originally written by me for yourstory.in. But this version is more &#8220;complete&#8221; with all of the original links in place.

This was originally supposed to be a post on predictions. But as the founder of a mobile app development company myself, my focus is more on specific opportunities that exist for a boutique company [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><em>This article was originally written by me for <a href="http://yourstory.in/2011/12/a-sneak-peek-into-mobile-app-opportunities-in-2012/" target="_blank">yourstory.in</a>. But this version is more &#8220;complete&#8221; with all of the original links in place.</em></div>
<div style="text-align: center;"><strong><img src="https://lh5.googleusercontent.com/fPMHVSttl3ew1PBhQoR8pWlEYnnwJNFroicMocnz8FO9kA0w6M2Om7T6BGDLKEZuGthb84bCI54sDOzRviRFJFiG0w8P8ihB7SpaUfLM_EwY0kyqefI" alt="" width="421px;" height="315px;" /></strong></div>
<p><span id="internal-source-marker_0.3345638057217002">This was originally supposed to be a post on predictions. But as the founder of a mobile app development company myself, my focus is more on specific opportunities that exist for a boutique company such as ourselves in this space.</span></p>
<div><span id="internal-source-marker_0.3345638057217002">We all know that almost no opportunity is exactly what it seems like, but it pays to have good starting points of exploration. And that is what I hope you will leave with, after reading this article.</span></div>
<h2><strong>First let’s look at some <span style="color: #ff0000;">facts</span>:</strong></h2>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li>About 40 per cent of Internet users in India <a href="http://www.medianama.com/2011/03/223-google-india-has-100m-internet-40m-mobile-internet-users-india-search-trends/">access it on their mobile phones</a></li>
<li><a href="http://googlemobileads.blogspot.com/2011/06/mobile-ize-your-business-with-google.html">61% users are unlikely</a> to return to a site that they found were not mobile optimized. What’s worse, 40% of them are likely to go to a competitor’s website.</li>
<li>The middle class in the BRIC (Brazil, Russia, India and China) countries together have the  <a href="http://blog.flurry.com/bid/79595/Kaboom-iOS-and-Android-International-Installed-Base-Expansion">largest untapped populations</a> that can now afford a smart phone but are yet to get one.</li>
</ul>
<p></span></div>
<div style="text-align: center;"><strong><img src="https://lh3.googleusercontent.com/f5jZLsYQqwhgkCMk5NM1PDHChINvrZ-B4Q7Pedgsjwl6mhTTLKMV5eHavPoMD9sUAYrbdLjmVhxojTr_kCbYOWe2H3QBnbTehSd6z9MtvDgJCHtr41I" alt="" width="572px;" height="390px;" /></strong></div>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p style="font-weight: bold;">
<p style="font-weight: bold;">
<p style="font-weight: bold;">
<p style="font-weight: bold;">
<h2 style="font-weight: bold;"><strong>Now take a look at some major <span style="color: #ff0000;">trends</span>:</strong></h2>
<div style="font-weight: bold;">
<ul>
<li><strong>More Platforms: </strong><span style="font-weight: normal;">We have Apple to thank &#8211; for creating the app economy with the iOS platform, Google for democratizing the smart phone with Android and<a href="http://www.engadget.com/2011/12/28/windows-phone-marketplace-hits-50-000-app-submission-milestone/"> now Microsoft</a> for making the life of the “I support all platforms” developer more difficult with Windows Phone 7. If you still want to include Blackberry, despite all of the<a href="http://www.theaustralian.com.au/business/wall-street-journal/pressure-mounts-on-blackberrys-rim/story-fnay3ubk-1226223581617"> recent gloom</a>, then that would make it 4 platforms that you’d at least want to consider.</span></li>
</ul>
</div>
<div style="padding-left: 30px;"><span id="internal-source-marker_0.3345638057217002">There are now more a million active apps now available across the major app stores. Apple’s app store and the Android Market currently lead by a large margin. However 2012 will probably bring in at least one more serious contender in the Windows Phone 7 marketplace &#8211; it has grown by more than 400% this year alone.</span></div>
<div style="padding-left: 30px;"><span><br />
</span></div>
<div style="padding-left: 30px;"><span id="internal-source-marker_0.3345638057217002">The following chart shows the distribution of apps across various marketplaces as of Nov 2011 [Sources: <a href="http://www.distimo.com/blog/2011_12_distimo-releases-full-year-2011-publication/">Distimo</a>, <a href="http://www.pcmag.com/article2/0,2817,2395188,00.asp">PCMag</a>]</span></div>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<div style="text-align: center;"><strong><img class="aligncenter" src="https://lh5.googleusercontent.com/gcF8VLupDmQ0-M3h7gX_XmhxzeIem7pjhJt__EP6UvxwNB56rPHvADUJyKetOruGlR2978HzFpG_RhtIuQ6T6sceC57OmuMco-NiGUqaSxp3RmccOb0" alt="" width="500" height="230" /></strong></div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Mobile Optimization Services: </strong>There are now multiple services available that make it easy for small business owners to “mobili”-ze their websites. Here are 3 such services:</li>
</ul>
<p></span></div>
<div style="text-align: center;"><strong><img src="http://yourstory.in/wp-content/uploads/2011/12/Mobile-Optimization-Services.jpg" alt="Mobile-Optimization-Services.jpg (419×52)" /></strong></div>
<div style="text-align: left;">
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>HTML5 Mobile:<span style="font-weight: normal;"> The browsers from</span></strong><a href="http://www.infoworld.com/d/html5/ios-5s-safari-beats-all-mobile-browsers-in-html5-compatibility-175371"> every</a> <a href="http://www.winrumors.com/microsoft-benchmarks-windows-phone-browser-against-iphone-4-and-android-wins/"> big</a> <a href="http://www.sencha.com/blog/galaxy-nexus-the-html5-developer-scorecard/"> player</a> are getting more powerful. The open source tools are<a href="http://html5boilerplate.com/mobile"> getting</a> <a href="http://www.sencha.com/products/touch/"> better</a> and<a href="http://jquerymobile.com/"> better</a>. And with the Flash war finally having ended, Adobe is finally <a href="http://mashable.com/2011/11/11/flash-mobile-dead-adobe/">getting on board</a> as well.</li>
</ul>
<p></span></div>
<div style="text-align: center;"><strong><img src="https://lh5.googleusercontent.com/hTW2K0tBVW0aRKezNkI3jOkMcPjIiiqBUUA_GjEsz4RzJasJRNwjeXPnT8u7527IV09hk9RfPuOqfAOr8ipPixskPjUwQohmM8F_trXh_kZOf_WCXBY" alt="" width="433px;" height="460px;" /></strong></div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Cross Platform Tools: </strong>These tools make it possible for the app developer to write-once-and-run-on-multiple-platforms. Or at least they try to make that possible.<a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/201110/AdobeAcquiresNitobi.html"> Multiple</a> <a href="http://rhomobile.com/blog/motorola-acquires-rhomobile-and-rhoelements-version-1-launched/">acquisitions</a> and fairly large<a href="http://techcrunch.com/2011/11/01/appcelerator-raises-15-million-series-c-round/"> VC investments</a> have happened in this space.</li>
</ul>
<p></span></div>
<div style="text-align: center;"><strong><img src="https://lh5.googleusercontent.com/i-qWEO80aZSQqdT1KscQlyi52RZqLFwpuflccTQRXAqlQAI0nx661xJxcBzZWjLDrE31PfmF9Odt2pfz5YgFwN65nfbbgqkrh_wazy-LfzWsBeG8-DM" alt="" width="377px;" height="118px;" /></strong></div>
<div style="text-align: left;">
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Hyper-Local-Mobile:<span style="font-weight: normal;"> The early movers in this space are</span></strong><a href="http://searchenginewatch.com/article/2081107/Foursquare-Hits-10-Million-Users-Yeah-Thats-1000-Annual-Growth"> continuing to grow</a> or have been<a href="http://www.guardian.co.uk/technology/2011/dec/05/facebook-buys-gowalla-location-sharing"> acquired</a>. But the<a href="http://socialcommercetoday.com/social-commerce-platform-overview-shopkick-mobile-commerce-on-steroids/"> new players</a> are doing well as well.</li>
</ul>
<p></span></div>
</div>
<div style="text-align: center;"><strong><img src="https://lh6.googleusercontent.com/-b4IZffxNy08thOITpu51-QB3Da2GhopjubrfZ7DYzHrUwFEQboJNVCfgZl2OHeEUvVsZA2_ClNVEK7Q8aJJlJTeYr4EUDzntcuaWTBVNZHPTfgYcjw" alt="" width="333px;" height="104px;" /></strong></div>
<div style="text-align: left;">
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Cross Device Testing as a Service: <span style="font-weight: normal;">With more than 300 Android handsets now available from various manufacturers, it is next to impossible to manually test an application across all these devices. There are now </span></strong><a href="http://testdroid.com/">multiple</a> <a href="http://www.perfectomobile.com/portal/cms/android.html">services</a> on the cloud that aim to solve this problem for you by automatically testing your Android applications across a wide array of devices.</li>
</ul>
<p></span></div>
<p style="text-align: center;"><img class="aligncenter" src="http://yourstory.in/wp-content/uploads/2011/12/Mobile-Cross-Device-Testing-as-a-Service.jpg" alt="Mobile-Cross-Device-Testing-as-a-Service.jpg (327×90)" /></p>
<p style="text-align: left;">
<h2><strong>Keeping the above in mind, here are a few <span style="color: #ff0000;">opportunities </span>for 2012:</strong></h2>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>&#8220;Hybrid&#8221; Cross Platform Apps: </strong>The cross platform tools I&#8217;ve referred to above, allow for native platform API [Application Programming Interface] calls as well. These are useful when you have an application that has a combination of native components and other &#8220;content&#8221; components which most likely consume web services [and can be built with HTML5 and CSS3].</li>
</ul>
<p></span></div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<p style="padding-left: 30px;" dir="ltr">An example of such an application is the <a href="http://bits.blogs.nytimes.com/2011/04/01/the-onion-releases-free-html5-ipad-app/">Onion iPad</a> app. The application is written in HTML5 for the most part &#8211; but uses falls back on native API to play video. This is probably because of <a href="http://blog.millermedeiros.com/2011/03/html5-video-issues-on-the-ipad-and-how-to-solve-them/">some of the issues</a> related to HTML5 video tag support on iOS. The Onion plans to roll out the app quickly on the Android platform as well &#8211; and <a href="http://sndstl.com/wp-content/uploads/2011/09/snd-app.pdf">with mostly the same code</a> [pdf].</p>
<div style="padding-left: 30px;"><span id="internal-source-marker_0.3345638057217002"><em>Main Challenges:</em></span></div>
<div style="padding-left: 30px;">
<ul>
<li><strong>Cross Platform Tools are not mature yet: </strong>The API documentation is sparse, support is patchy and the community is still nascent. So which platform should you bet on? Unfortunately, the answer is, &#8220;it depends&#8221; &#8211; on multiple factors such as whether you need a native look and feel (which Appcelerator and Rhodes provide &#8211; but PhoneGap does not), the number of platforms you need to support, the technical skills of your dev team etc.</li>
<li><strong>The Mobile Web is Slow(er):</strong> Performance optimization is key if you want your site to look pretty and be snappy on mobile devices. There are<a href="http://www.google.co.in/search?q=html5+performance+mobile"> many good resources</a> available to get you started in the right direction.</li>
</ul>
<p><em> </em></p>
</div>
<div style="padding-left: 30px;"><span id="internal-source-marker_0.3345638057217002"> </span></div>
<p></span></div>
</div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Low Cost Solutions for Mobile Optimization: </strong>While purely content based sites can choose to rely on the Mobile Optimization Services I&#8217;ve mentioned above, there are a lot of other verticals that don&#8217;t have such an option &#8211; yet. For example, there are a lot of E-Commerce sites out there that are not mobile optimized. Especially those being run by small business owners or startups.</li>
</ul>
<p></span></div>
<div style="padding-left: 30px;"><span id="internal-source-marker_0.3345638057217002"><em>Main Challenges:</em></span></div>
<div style="padding-left: 30px;">
<ul>
<li>The data has to kept in sync with the original systems &#8211; in a seamless fashion</li>
<li>Mobile payment gateways are still far from mature - <a href="http://www.venturewoods.org/index.php/2011/01/19/mobile-payments-shifting-opportunities-for-startups/">especially in a country like India</a>.</li>
<li>Oh, and the Mobile Web is Slow &#8211; but I said that already.</li>
</ul>
</div>
</div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Mobile presence for non-Internet-Savvy retailers: </strong>I&#8217;m going on a limb here &#8211; but most small retailers in India don&#8217;t have an Internet presence &#8211; and what that means is, a certain  high quality trouser shop with very reasonable price tags &#8211; is now invisible on your phone.</li>
</ul>
<p></span></div>
<p style="padding-left: 30px;"><em> Main Challenge:</em></p>
<p style="padding-left: 30px;"><em> </em></p>
<div><span id="internal-source-marker_0.3345638057217002"> </span></div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li>
<ul>
<li>With even companies like Google<a href="http://articles.timesofindia.indiatimes.com/2011-06-20/internet/29679379_1_google-street-view-google-s-street-view-privacy-concerns"> facing stiff resistance</a> while trying to map our streets, you&#8217;re left with the only other option &#8211; User Generated Content. And that in turn means, the classic chicken and egg conundrum.</li>
</ul>
</li>
</ul>
<p></span></div>
<div><span id="internal-source-marker_0.3345638057217002"></p>
<ul>
<li><strong>Cross Platform Testing as Service: </strong>While there are cloud testing services now available for specific platforms, services that take care of automated cross-platform testing are still not available.</li>
</ul>
<p></span></div>
<div style="padding-left: 30px;"><span id="internal-source-marker_0.3345638057217002"><em> Main Challenge:</em></span></div>
<div style="padding-left: 30px;">
<ul>
<li>You&#8217;ve got SDK installations, developer &amp; signing certificates, build chains, and custom project layouts to worry about with each platform. <a href="http://savagelook.com/blog/portfolio/8-things-to-know-about-phonegap">PhoneGap solves this problem</a> for you from a deployment perspective, but running automated tests on multiple platforms is a different challenge.</li>
</ul>
</div>
<div><span id="internal-source-marker_0.3345638057217002"> </span></div>
<div><span id="internal-source-marker_0.3345638057217002">This list of opportunities is admittedly short. But I hope you are now motivated to brainstorm more ideas, distill the most interesting opportunities and finally implement a winner in 2012. Happy New Year! </span></div>
<div><strong></p>
<p dir="ltr">So what are you waiting for? Start <span style="color: #ff0000;">exploring </span> <img src='http://www.multunus.com/wp-blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p></strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2012/01/a-sneak-peak-into-mobile-app-opportunities-in-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Our talks at Droidcon 2011, Bangalore</title>
		<link>http://www.multunus.com/2011/12/droidcon-two-talks-we-gave/</link>
		<comments>http://www.multunus.com/2011/12/droidcon-two-talks-we-gave/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 10:07:00 +0000</pubDate>
		<dc:creator>Manoj</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1988</guid>
		<description><![CDATA[We spoke at Droidcon, Bangalore that happened on Nov 18th and 19th. We had two interesting talks on both days.

1. Continuous Delivery for an Android application
This talk was on First day of the Droidcon conference given by Vaidy and Leena. In this talk, we spoke on what the first step towards moving to a CD [...]]]></description>
			<content:encoded><![CDATA[<p>We spoke at Droidcon, Bangalore that happened on Nov 18th and 19th. We had two interesting talks on both days.</p>
<div style="float: left;">
<h3><a href="http://funnel.hasgeek.com/droidcon/83-continuous-delivery-for-an-android-application" target="_new">1. Continuous Delivery for an Android application</a></h3>
<p><img style="margin: 0px 12px;" src="/wp-blog/wp-content/uploads/2011/12/vaidy-leena.png" alt="" align="left" /><span>This talk was on First day of the Droidcon conference given by <a href="http://www.multunus.com/work/team/vaidy">Vaidy</a> and <a href="http://www.multunus.com/work/team/leena">Leena</a>. In this talk, we spoke on what the first step towards moving to a CD setup is. Specifically demonstrated setting up a Push Button deployment system using Ant and Jenkins. <a href="http://funnel.hasgeek.com/droidcon/83-continuous-delivery-for-an-android-application">More details here</a>. </span></p>
</div>
<div style="float: left; margin-top: 24px;">
<h3><a href="http://funnel.hasgeek.com/droidcon/94-introduction-to-opengl-in-android" target="_new">2. Introduction to OpenGL in Android</a></h3>
<p><img style="margin: 0px 12px;" src="/wp-blog/wp-content/uploads/2011/12/tamil-and-kp.png" alt="" align="left" />This talk was on Second day of the Droidcon given by <a href="http://www.multunus.com/work/team/tamil">Tamil </a>and <a href="http://www.multunus.com/work/team/krishnaprasad">KP</a>. The objective of talk was to have people get started with OpenGL programming which can seem to be a little heavy but it need not be. The talk started with a brief introduction to OpenGL and then had quick step-by-step tutorial demonstration. <a href="http://funnel.hasgeek.com/droidcon/94-introduction-to-opengl-in-android">More details here</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/12/droidcon-two-talks-we-gave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Delivery: Building Android Library project</title>
		<link>http://www.multunus.com/2011/11/continuous-delivery-building-android-library-project/</link>
		<comments>http://www.multunus.com/2011/11/continuous-delivery-building-android-library-project/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 09:25:20 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Continuous Delivery]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1960</guid>
		<description><![CDATA[This post talks about how to build an Android Project using ant which depends on an Android Library project.

Add default.properties in the library project and add android.library=true in the same
Run the command in the main Android Project android update project &#8211;path . &#8211;library ../path-to-the-library/Note: This always has to be relative path.
Now running ant release should build the [...]]]></description>
			<content:encoded><![CDATA[<p>This post talks about how to build an Android Project using ant which depends on an Android Library project.</p>
<ul>
<li>Add default.properties in the library project and add <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">android.library=true </span>in the same</li>
<li>Run the command in the main Android Project <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">android update project &#8211;path . &#8211;library ../path-to-the-library/</span><strong>Note: This always has to be relative path.</strong></li>
<li>Now running <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">ant release</span> should build the library project too.</li>
</ul>
<p><strong>Note:</strong> The android command mentioned in the second step adds an entry in the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">default.properties</span> file. If you need to override that in different environments, override that in the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">local.properties</span>. Even there, it has to be relative path, the absolute path will not work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/11/continuous-delivery-building-android-library-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lessons from interview with Joel Spolsky</title>
		<link>http://www.multunus.com/2011/10/lessons-from-interview-with-joel-spolsky/</link>
		<comments>http://www.multunus.com/2011/10/lessons-from-interview-with-joel-spolsky/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 19:00:36 +0000</pubDate>
		<dc:creator>anitha</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1876</guid>
		<description><![CDATA[


A couple of days back I watched an interview with Joel Splosky on Mixergy.com. Joel Spolsky recently launched a new product “Trello”, an online collaboration tool. In this interview he explains a few strategies/tips that went into building and launching a new product based on his experience.
Here are a few takeaways which I think are [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div class="wp-caption alignright" style="width: 310px"><a href="http://commons.wikipedia.org/wiki/File:PivotLaunching3S.jpg"><img title="USS Pivot launched at the Gulf Shipbuilding Co..." src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/PivotLaunching3S.jpg/300px-PivotLaunching3S.jpg" alt="USS Pivot launched at the Gulf Shipbuilding Co..." width="300" height="241" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
</div>
<p style="text-align: center;" dir="ltr">
<p dir="ltr">A couple of days back I watched an interview with Joel Splosky on <a href="http://mixergy.com/trello-joel-spolsky-interview/">Mixergy.com</a>. <a title="Joel Spolsky" rel="homepage" href="http://www.joelonsoftware.com/AboutMe.html">Joel Spolsky</a> recently launched a new product “Trello”, an online collaboration tool. In this interview he explains a few strategies/tips that went into building and launching a new product based on his experience.</p>
<p dir="ltr">Here are a few takeaways which I think are worth summarizing:</p>
<ul>
<li>
<p dir="ltr"><strong>Delivering Continuously</strong></p>
</li>
</ul>
<p dir="ltr">Trello follows a process of continually delivering the product in small, tiny pieces. So instead of big releases that happen every month or so, the product is instead shipped everyday [maybe even multiple times each day]. To achieve this, the pipeline of work starting from the designer to  developer to tester and finally to the customer is always “in motion”.</p>
<ul>
<li>
<p dir="ltr"><strong>Pivoting endlessly in the early stages</strong></p>
</li>
</ul>
<p dir="ltr">You build something quickly for the first version. Then you try getting real users’ feedback. You can fail early here and this will force you to change direction multiple times while building the product. This is what is called <em>Pivoting</em>. By pivoting you&#8217;ll eventually take the right direction and get to product-market fit. At this point the product is actually creating great value to your users by giving them what they wanted.</p>
<ul>
<li>
<p dir="ltr"><strong>Knowing your marketplace</strong></p>
</li>
</ul>
<p dir="ltr">One of the reasons that most products fail is that they do not fit into the marketplace. They are simply built because it was imagined to be useful and what the customers might actually want would be something very different from your product. Joel says, a product must be created by keeping the “need” in mind. If your product solves a customer’s problem, then you know your marketplace.</p>
<ul>
<li>
<p dir="ltr"><strong>Getting early feedback from the users</strong></p>
</li>
</ul>
<p dir="ltr">One of the best things one could do is getting to use the product internally i.e., within a closed circuit of users in the very early stages of the product. By watching them use the product and getting to know what they think, would be a great way to improve and polish your product.</p>
<ul>
<li>
<p dir="ltr"><strong>Launching your product for free</strong></p>
</li>
</ul>
<p dir="ltr">The classic mistake that we often commit while launching a product is that we charge the users from day one. This will actually drive away your customers from using your product.</p>
<p dir="ltr">Users are not ready to pay for a product if they find that have to pay something for just trying it out even if it is dirt cheap. So it is more important to get the attention of a customer towards your product. And, once the customers find that your product is highly useful, advertising your product becomes easier.</p>
<p dir="ltr">Joel points out a few reasons for giving away his product for free:</p>
<ul>
<li>Giving away for free is itself a form of advertising your product.</li>
<li>Getting the audience/users to use your product is the most important thing and this can be achieved only by this form of advertising.</li>
<li>Later when you make it paid, you&#8217;ll still have users who are getting real value out of your product.</li>
</ul>
<p dir="ltr">You also make it less sweet for others to compete with you and helps you get a longer runway. This particular point was not said by Joel in the interview, but something I saw in the comments. And I think it made enough sense to include here.</p>
<p dir="ltr"><strong>Tried and Tested By Others</strong></p>
<p dir="ltr">Some of the above techniques have been used by others like the team which created <em>Pivotal Tracker</em>, an application with some similarity to Trello &#8211; but more specific to Agile Software Project Management..</p>
<p dir="ltr">One of them is what Joel asks every team, that is, to “use your product internally”. The team that built Pivotal Tracker used it within their team members in the early stages of the product. They improved the product based on the early feedback from the users.</p>
<p dir="ltr">Also, Pivotal Tracker was launched for free initially and later the pricing was included for their product.</p>
<p dir="ltr">Learning and following what great teams have done is a good way to reduce risk of failure and increase odds of getting it right the first time. Or at least the second <img src='http://www.multunus.com/wp-blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=dc8693de-42c6-42c8-9357-4a0607a2e696" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/10/lessons-from-interview-with-joel-spolsky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Image Filter using OpenGL ES in Android</title>
		<link>http://www.multunus.com/2011/10/simple-image-filter-using-opengl-es-in-android/</link>
		<comments>http://www.multunus.com/2011/10/simple-image-filter-using-opengl-es-in-android/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 15:35:45 +0000</pubDate>
		<dc:creator>Tamil</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1773</guid>
		<description><![CDATA[Note: This post assumes some basic knowledge in setting up an OpenGL app in Android. A basic example for rendering a texture on to a surface can be found here. You can use this as the initial setup for trying out Shader language program listed in this post.
OpenGL is widely adopted as the graphics API of [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Note</strong>: This post assumes some basic knowledge in setting up an OpenGL app in Android. A basic example for rendering a texture on to a surface can be found <a href="http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLES20TriangleRenderer.html">here.</a> You can use this as the initial setup for trying out Shader language program listed in this post.</em></p>
<p>OpenGL is widely adopted as the graphics API of choice for real-time interactive 3D graphics applications. OpenGL is easy to understand, but its simplicity and orthogonality enable many interesting possibilities. One such possibility is image processing.</p>
<p>Using &#8220;OpenGL&#8221; for Image Processing enables us to completely utilize the power of Graphics Processing Unit (GPU) hence the image processing will be faster also it reduces the load on CPU. This can be crucial for Image processing applications, especially in mobile environment where the resources available are relatively lesser.</p>
<p>In this post we will be discussing how to use OpenGL Shader Language to manipulate pixels and create Image filter effects.</p>
<p><a rel="attachment wp-att-1851" href="http://www.multunus.com/2011/10/simple-image-filter-using-opengl-es-in-android/combined/"><img class="aligncenter size-medium wp-image-1851" src="http://www.multunus.com/wp-blog/wp-content/uploads/2011/10/combined-300x250.png" alt="" width="300" height="250" /></a></p>
<p>As with any OpenGL app, we will start with setting up the view.</p>
<p>The next step is to load an image into the texture, This texture can be mapped on to the surface of a square, which will then be drawn on to the screen.For Image processing, we will require only 2 dimensions so we will set up the view in orthographic projection and will also discard z axis by keeping it to 0.0 most of the times.</p>
<p>But before drawing to the screen, there are many intermediate operations that are done by the graphics hardware, which are now directly programmable in OpenGL ES 2.0 using Shader Language (GLSL).<br />
We will be concentrating on Vertex and Fragment processing phases in OpenGL pipeline. We will go through a simple fragment shader program and will explain how it works. Both of these programs are written in GLSL. GLSL is a ‘C’ like language which gives direct control over the  graphics pipeline without having to use assembly language or hardware-specific languages.</p>
<p><strong>Vertex shader</strong></p>
<pre class="brush: cpp;">
uniform mat4 uMVPMatrix;
attribute vec4 aPosition;
attribute vec2 aTextureCoord;
varying vec2 vTextureCoord;
void main() {
  gl_Position = uMVPMatrix * aPosition
  vTextureCoord = aTextureCoord
}
</pre>
<p dir="ltr">The Vertex shader is executed for each vertex that is to be drawn. Here, we are drawing a square and mapping the texture on to that.</p>
<p>This calculates the transformed coordinates of the square by multiplying the given coordinates with <a href="http://en.wikibooks.org/wiki/OpenGL_Programming/3D/Matrices" target="_blank">MVPMatrix</a> [ MVP -  Model * View * Projection ]. Other than this we are also storing corresponding texture co-ordinates in variable &#8217;<em>vTextureCoords&#8217;</em> so that it is available in the fragment shader.</p>
<p><strong>Fragment Shader</strong></p>
<pre class="brush: cpp;">
precision mediump float;
varying vec2 vTextureCoord;
uniform sampler2D sTexture;
void main() {
   vec2 cen = vec2(0.5,0.5) - vTextureCoord.xy;
   vec2 mcen = -0.07*log(length(cen))*normalize(cen);
   gl_FragColor = texture2D(sTexture, vTextureCoord.xy-mcen);
}
</pre>
<p dir="ltr">
<p>Fragment shaders are executed to calculate the color of individual pixels. This is where the actual image transformation happens. Instead of mapping the corresponding texture coordinates to corresponding pixels, we can map different coordinates of the texture to different pixels which will distort the image in some way. In the above example the texture co-ordinate to fill each pixel is chosen based on the calculation in line no 6. The actual movement depends on the distance of the texture coordinate from the center. This creates an effect which is similar to what is shown in the below picture.</p>
<p>Although this is a very simple effect, the intention here is to just show potential applications of OpenGL in Android apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/10/simple-image-filter-using-opengl-es-in-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Delivery for Android Apps – Part 2</title>
		<link>http://www.multunus.com/2011/10/continuous-delivery-for-android-apps-%e2%80%93-part-2/</link>
		<comments>http://www.multunus.com/2011/10/continuous-delivery-for-android-apps-%e2%80%93-part-2/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 06:51:57 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1742</guid>
		<description><![CDATA[This post talks about how to run tests for the build setup as mentioned in Part 1.
Generate the build script for test
The suggested practice is to have 2 separate projects for android, one the source and the other for the tests. The following command will generate a build.xml for the test project. Replace the  with [...]]]></description>
			<content:encoded><![CDATA[<p>This post talks about how to run tests for the build setup as mentioned in <a href="/continuous-delivery-for-android-apps-part-1/">Part 1</a>.</p>
<h3><span style="text-decoration: underline;">Generate the build script for test</span></h3>
<p>The suggested practice is to have 2 separate projects for android, one the source and the other for the tests. The following command will generate a build.xml for the test project. Replace the  with the path of the source path.</p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">android update test-project -m ../&lt;project-path&gt; -p . </span></p>
<p>One problem I&#8217;ve seen is that, it does not break the build even if there are failures in the test. Issue is reported here:</p>
<p><a href="http://code.google.com/p/android/issues/detail?id=14241">http://code.google.com/p/android/issues/detail?id=14241</a></p>
<p>I had to override the run-tests target as mentioned below to fix this issue:</p>
<pre>&lt;target name="run-tests" depends="-install-tested-project, install"
description="Runs tests from the package defined in test.package property"&gt;
    &lt;echo&gt;Running tests ...&lt;/echo&gt;
    &lt;exec executable="${adb}" failonerror="true" outputproperty="tests.output"&gt;
        &lt;arg value="shell" /&gt;
        &lt;arg value="am" /&gt;
        &lt;arg value="instrument" /&gt;
        &lt;arg value="-w" /&gt;
        &lt;arg value="-e" /&gt;
        &lt;arg value="coverage" /&gt;
        &lt;arg value="@{emma.enabled}" /&gt;
        &lt;arg value="${manifest.package}/${test.runner}" /&gt;
    &lt;/exec&gt;
    &lt;echo message="${tests.output}"/&gt;
    &lt;fail message="Tests failed!!!"&gt;
        &lt;condition&gt;
            &lt;or&gt;
            &lt;contains string="${tests.output}" substring="Error" /&gt;
            &lt;contains string="${tests.output}" substring="Fail" /&gt;
            &lt;/or&gt;
        &lt;/condition&gt;
     &lt;/fail&gt;
&lt;/target&gt;</pre>
<p>You can change the ant commands to <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px;">clean run-tests release </span>in Jenkins to run the tests as part of packaging.</p>
<p>Next I will be writing about how to start emulator from Jenkins while running the tests.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=96462303-c79f-4147-ace0-66d89521eb71" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/10/continuous-delivery-for-android-apps-%e2%80%93-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confident Estimates</title>
		<link>http://www.multunus.com/2011/09/confident-estimates/</link>
		<comments>http://www.multunus.com/2011/09/confident-estimates/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 08:58:51 +0000</pubDate>
		<dc:creator>Manoj</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1744</guid>
		<description><![CDATA[

We constantly try to provide accurate estimates that we can defend with confidence. But there are situations where we end up making mistakes. And this post describes one such situation.
One of our clients asked us to estimate a feature. As usual, we sent back an estimate without much delay.
After few days, our client asked us [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div class="wp-caption alignright" style="width: 310px"><a href="http://commons.wikipedia.org/wiki/File:Goudargues.JPG"><img title="Goudargues" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Goudargues.JPG/300px-Goudargues.JPG" alt="Goudargues" width="300" height="200" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
</div>
<p>We constantly try to provide accurate estimates that we can defend with confidence. But there are situations where we end up making mistakes. And this post describes one such situation.</p>
<p>One of our clients asked us to estimate a feature. As usual, we sent back an estimate without much delay.</p>
<p>After few days, our client asked us to implement this feature. When we started to think about implementing the feature we found that it would take at least double the time that we&#8217;d earlier estimated. We&#8217;d put ourselves in a bad situation. It would of course be very hard to convince the client as to why there was this much deviation &#8211; considering we discovered this even before actually starting to implement the feature. We did the 5 why&#8217;s to get to the root of the problem.</p>
<p>We discovered the following reasons:</p>
<ul>
<li>We hadn&#8217;t gone through the usual process of breaking down the feature to the desired level of granularity. Digging deeper, the following root causes emerged:
<ul>
<li>The project had been on &#8216;pause&#8217; mode for a couple of weeks and we had gotten busy with other things in the meanwhile.</li>
<li>The value of the feature [to the end user] was not completely obvious to us.</li>
</ul>
</li>
</ul>
<p>The solution? We&#8217;ve decided to ask ourselves the following question before sending across an estimate to any client in the future:</p>
<blockquote><p><em>Is this a <strong>confident estimate</strong>? Can we defend the estimate with proper reasoning?</em></p></blockquote>
<p>The above will force us to think again about the estimate and help us become more consistent.</p>
<p><strong><span style="color: #008000;">Oh, and one more thing</span></strong>. Ask the stakeholder as to what value the feature is going to add &#8211; if it is not obvious. Don&#8217;t assume that you&#8217;re right!</p>
<p>If you&#8217;re curious on what the client&#8217;s reaction was, when we sent across the revised [and much larger] estimate, <strong>ask us in the comment below</strong> <img src='http://www.multunus.com/wp-blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  We&#8217;d love to hear from you!</p>
<p><span style="color: #008000;"><strong><br />
</strong></span></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=b68198f2-3678-4b4b-af9e-0948f94e83f5" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/09/confident-estimates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Delivery for Android Apps &#8211; Part 1</title>
		<link>http://www.multunus.com/2011/09/continuous-delivery-for-android-apps-part-1/</link>
		<comments>http://www.multunus.com/2011/09/continuous-delivery-for-android-apps-part-1/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 11:15:50 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[continuousdelivery]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1705</guid>
		<description><![CDATA[
We&#8217;ve set up our CI server for building android apps. We use Jenkins as our CI server, but the same steps can be applied to any CI server.
Setup Android Environment on CI server
You need to first install the android SDK and platform tools on the CI server. The steps are well defined here. You can run [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>We&#8217;ve set up our CI server for building android apps. We use Jenkins as our CI server, but the same steps can be applied to any CI server.</p>
<h3><span style="text-decoration: underline">Setup Android Environment on CI server</span></h3>
<p>You need to first install the android SDK and platform tools on the CI server. The steps are well defined <a href="http://developer.android.com/sdk/installing.html">here</a>. You can run the command <code>android update sdk --no-ui</code> if the CI server is in an headless environment.</p>
<h3><span style="text-decoration: underline">Generate Build script</span></h3>
<p>Using android SDK tool , you can generate build script for the android project which contains the standard steps for building the app such as clean, compile, release, install etc. The following command will generate the build script, replace &lt;appname&gt;, &lt;target&gt; and &lt;project path&gt; accordingly.</p>
<pre>android update project -n &lt;appname&gt; -t &lt;target&gt; -p &lt;project directory&gt;</pre>
<p>This will create build.xml file under the project directory. You need to create build.properties file with the following contents:</p>
<pre>key.store=path-to-keystore
key.alias=[alias]
key.store.password=[pw]
key.alias.password=[pw2]</pre>
<p>You can generate the key file using keytoool or you can generate the key file from eclipse. Run the command  <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px">ant clean release<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height: 19px">, which will compile the files, and generate the apk files (it generates signed, unsigned and unaligned files). The signed version can be used for uploading to Android Market or for installing directly on any device. Couple of stuff to be noted here are:</span></span></p>
<ul>
<li>Ant version has to be 1.8.0 or higher.</li>
<li>Put the external libraries in the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px">libs</span> directory. Build script automatically picks up the libraries put under libs directory, otherwise the script need to be changed to look at a different classpath.</li>
</ul>
<p>Checkin the build.xml, build.properties and the key file into the repository.</p>
<h3><span style="text-decoration: underline">Setup the CI server</span></h3>
<p>The CI server has to run the ant script for building the app. One more setting what we&#8217;ve done in our Jenkins server was to archive the apks as artifacts (available in the post build action). In upcoming posts, I will cover how to do the following:</p>
<ol>
<li>Running android tests</li>
<li>Running code/test coverage tools</li>
<li>Actual deployment</li>
</ol>
<p>References: <a href="http://skaug.no/ingvald/2011/09/android-app-with-jenkins/" target="_blank">http://skaug.no/ingvald/2011/09/android-app-with-jenkins/</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/09/continuous-delivery-for-android-apps-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setup Test Load Balancer using Jenkins</title>
		<link>http://www.multunus.com/2011/09/setup-test-load-balancer-using-jenkins/</link>
		<comments>http://www.multunus.com/2011/09/setup-test-load-balancer-using-jenkins/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 09:40:07 +0000</pubDate>
		<dc:creator>KP</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[Continuous Delivery]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1673</guid>
		<description><![CDATA[The main purpose of a test suite is to give fast feedback about the changes being made to the developer. Ideally the test suite should be really fast and should take no more than 10 mins to complete. But there are times when you end up with a test suit that takes 30 &#8211; 40 [...]]]></description>
			<content:encoded><![CDATA[<p>The main purpose of a test suite is to give fast feedback about the changes being made to the developer. Ideally the test suite should be really fast and should take no more than 10 mins to complete. But there are times when you end up with a test suit that takes 30 &#8211; 40 mins to complete. This can be really frustrating for the developers because they have to wait for 40 mins after checking in his changes to know if he broke something.</p>
<p>For this problem there are two possible solutions. Take some time from your project schedule to rewrite some part of your test suite. Although this is the ideal solution to the problem, this might not always be an option for you because of delivery deadlines. The other alternative is to throw more hardware at the problem and this is where <a href="http://test-load-balancer.github.com/">TLB </a>comes in to picture.</p>
<p>One approach to solving the problem is to partition your spec suite in to different sets and then run them paralley in different machines. The problem with this approach is that it will take a lot of trial and error before you end up with partitions that takes almost equal time to finish. Also mainting these partition as you add more tests become a head ache. This is the exact problem the <a href="http://test-load-balancer.github.com/">TLB</a> fixes.</p>
<p>A detailed description of how to setup the test load balancer is available <a href="http://test-load-balancer.github.com/doc-0_3_2/getting_started_with_tlb.html">here</a>. It should give you a very good idea about how TLB works and also about how do add load balancing to your build.</p>
<p>We are using jenkins as our CI server, so we will be concentrating on how to setup TLB on Jenkins. I am assuming that you already have the job [ to which you want to add load balancing ] configured in Jenkins.</p>
<p>The TLB setup has two main two components</p>
<div>
<ul>
<li>TLB server</li>
<li>Balancer</li>
</ul>
</div>
<h2>Setup TLB server</h2>
<p>Download the TLB server and install it on your CI server host [ again for detailed instruction <a href="http://test-load-balancer.github.com/doc-0_3_2/getting_started_with_tlb.html">look here</a> ]. Optionally add a service startup script so that the TLB server starts up each time you restart the server.</p>
<h2>Add balancing to your build</h2>
<p>For Rspec TLB distribution comes with a ruby gem you can install this. Also the balancer requires a hook in to you build invocation process this too is available as a rake task in TLB docs, add this to your project.</p>
<h2>Create Job Partitions</h2>
<p>The setup for the jobs which run in different partitions are exactly same, only difference between the partitions are only the subset of test executed in each partition.</p>
<p>Create as many copies of the existing job as the number of partitions that you want to run. Additionally you can name each of these jobs as &lt;job-name-n&gt; where n refers to the partition which this job is going to run. Create an dummy job and configure the post build task so that all the partitioned jobs will be triggered simultaneously.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/09/setup-test-load-balancer-using-jenkins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rebuilding in Jenkins</title>
		<link>http://www.multunus.com/2011/09/rebuilding-in-jenkins/</link>
		<comments>http://www.multunus.com/2011/09/rebuilding-in-jenkins/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 14:32:49 +0000</pubDate>
		<dc:creator>Leena</dc:creator>
				<category><![CDATA[Continuous Delivery]]></category>

		<guid isPermaLink="false">http://www.multunus.com/?p=1719</guid>
		<description><![CDATA[
One option that might be required after setting up a build pipeline is the provision to redeploy an earlier version by click of a button. This can become handy when we find a bug in the production and want to see when the bug got introduced. For that we will have to redeploy the earlier version [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>One option that might be required after setting up a <a href="http://continuousdelivery.in/2011/08/continuous-delivery-setup-jenkins-build-pipeline-setup/">build pipeline</a> is the provision to redeploy an earlier version by click of a button. This can become handy when we find a bug in the production and want to see when the bug got introduced. For that we will have to redeploy the earlier version to the staging/UAT environment and test the same.</p>
<p>Jenkins by default does not allow to rerun any of the earlier jobs. But you can achieve this by the <a href="https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Plugin">Rebuild</a> plugin. It allows you to rebuild any job provided its parameterized build. It also allows you override the parameters. It will show the &#8220;Rebuild&#8221; button at the left side as shown below when you go to a specific build page:</p>
<p><a rel="attachment wp-att-1814" href="http://www.multunus.com/?attachment_id=1814"><img src="http://continuousdelivery.in/wp-blog/wp-content/uploads/2011/09/rebuild.png" alt="" width="156" height="247" /></a></p>
<p>This is not a replacement for revert build, because it does not take care of reverting DB. But this can be extended to do the same.</p>
<p>Note: It will show the Rebuild button only for those builds which occurred after installing the plugin. I took some time to realize this and it is not very clear in the documentation.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.multunus.com/2011/09/rebuilding-in-jenkins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

