<?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>Object Partners</title>
	<atom:link href="http://www.objectpartners.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.objectpartners.com</link>
	<description>Object Partners, Inc.: Expertise in Java, Groovy, Open Source Technologies, and Agile techniques and practices</description>
	<lastBuildDate>Mon, 20 May 2013 16:18:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>News: OPI hires consultant Daniel Woods</title>
		<link>http://www.objectpartners.com/2013/05/20/news-opi-hires-consultant-daniel-woods/</link>
		<comments>http://www.objectpartners.com/2013/05/20/news-opi-hires-consultant-daniel-woods/#comments</comments>
		<pubDate>Mon, 20 May 2013 16:17:21 +0000</pubDate>
		<dc:creator>Ehren Seim</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7438</guid>
		<description><![CDATA[Object Partners welcomes Daniel Woods to their technology and consulting staff. Daniel brings a great deal of experience in working with JVM stack open source technologies. He has contributions to the Grails framework and is an active open source contributor &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/05/20/news-opi-hires-consultant-daniel-woods/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>Object Partners welcomes Daniel Woods to their technology and consulting staff. Daniel brings a great deal of experience in working with JVM stack open source technologies. He has contributions to the Grails framework and is an active open source contributor in the Groovy, Grails, and Spring communities. Daniel comes from a background of solving problems for a variety of industries, ranging from Insurance and Financial to Automotive. Daniel will be presenting topics on application architecture at this year&#8217;s Gr8conf and SpringOne 2GX conferences. In his free time, Daniel enjoys spending time with his family and playing with his dogs.</p>
<p>As an East Coast transplant, Daniel will be adapting to the Minnesota lifestyle and area. He is incredibly excited to be a part of the OPI team, and we&#8217;re incredibly excited to have him! Welcome Daniel!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/20/news-opi-hires-consultant-daniel-woods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News: OPI hires consultant Eric Kinsella</title>
		<link>http://www.objectpartners.com/2013/05/17/news-opi-hires-consultant-eric-kinsella/</link>
		<comments>http://www.objectpartners.com/2013/05/17/news-opi-hires-consultant-eric-kinsella/#comments</comments>
		<pubDate>Fri, 17 May 2013 17:49:51 +0000</pubDate>
		<dc:creator>Ehren Seim</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7434</guid>
		<description><![CDATA[Object Partners welcomes E. A. Kinsella to their technology consulting staff. Eric comes to Object Partners with over 15 years of development experience, the last 4 specifically working with Grails and the remaining in Java and C++. He has spent &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/05/17/news-opi-hires-consultant-eric-kinsella/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>Object Partners welcomes E. A. Kinsella to their technology consulting staff. Eric comes to Object Partners with over 15 years of development experience, the last 4 specifically working with Grails and the remaining in Java and C++. He has spent most of his time in the Marketing and Travel industries. He enjoys spending time with his wife and 3 young children and is successfully getting his 9 year old son addicted to programming in Python and his 6 year-old daughter ore farming in MineCraft. Eric is excited for the opportunity to work with a variety of new customers and exciting new projects at OPI. </p>
<p>Also, he has No relation to W. P. Kinsella, however if he &#8220;builds it, they will come Ray&#8221;.</p>
<p><a href="http://www.imdb.com/title/tt0097351">http://www.imdb.com/title/tt0097351</a></p>
<p><a href="http://en.wikipedia.org/wiki/W._P._Kinsella">http://en.wikipedia.org/wiki/W._P._Kinsella</a></p>
<p>Welcome to OPI Mr. E. A. Kinsella!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/17/news-opi-hires-consultant-eric-kinsella/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News: OPI hires consultant Mike Kelly</title>
		<link>http://www.objectpartners.com/2013/05/13/news-opi-hires-consultant-mike-kelly/</link>
		<comments>http://www.objectpartners.com/2013/05/13/news-opi-hires-consultant-mike-kelly/#comments</comments>
		<pubDate>Mon, 13 May 2013 14:25:46 +0000</pubDate>
		<dc:creator>Ehren Seim</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7423</guid>
		<description><![CDATA[Object Partners welcomes Mike Kelly to their technology consulting staff. Mike is relatively new to the arena but brings a fresh perspective to modern web application design and dynamic programming languages. He most recently spent his time working with the &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/05/13/news-opi-hires-consultant-mike-kelly/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>Object Partners welcomes Mike Kelly to their technology consulting staff. Mike is relatively new to the arena but brings a fresh perspective to modern web application design and dynamic programming languages. He most recently spent his time working with the United States Department of Defense to modernize existing applications with the latest and greatest HTML5 specifications like Web Sockets, Local Storage, Offline Applications, and WebGL. Before that, he spent time working with 5 other current OPI consultants on a Spring and Hibernate application for the United States Air Force. He&#8217;s excited to work with and learn from the best so its no mystery why he&#8217;s joining the Object Partners team.</p>
<p>Mike spends his free time searching the web for new technologies, hanging out at local Javascript user groups, writing mini applications for his Raspberry Pi, and working on open source projects like www.publicationsapp.com with his friends. He is also a home-brew enthusiast and likes to think he&#8217;s almost perfected his Irish Red ale recipe. Loves technology and brews beer; I would say he&#8217;s a perfect fit. Welcome Mike!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/13/news-opi-hires-consultant-mike-kelly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding a Sliding Menu to Your Jquery Mobile App</title>
		<link>http://www.objectpartners.com/2013/05/13/adding-a-sliding-menu-to-your-jquery-mobile-app/</link>
		<comments>http://www.objectpartners.com/2013/05/13/adding-a-sliding-menu-to-your-jquery-mobile-app/#comments</comments>
		<pubDate>Mon, 13 May 2013 13:01:03 +0000</pubDate>
		<dc:creator>Nate Flink</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7398</guid>
		<description><![CDATA[This post will detail the creation of a Jquery Mobile Panel, like the Facebook app, customized with menu items and icons for a functional chunk of code ready to drop in your next JQM project. This provides a centralized place &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/05/13/adding-a-sliding-menu-to-your-jquery-mobile-app/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>This post will detail the creation of a Jquery Mobile Panel, like the Facebook app, customized with menu items and icons for a functional chunk of code ready to drop in your next JQM project. This provides a centralized place to group navigation items that can be accessible across views within a given app. </p>
<p><a href="#tehcodez">Just want the code?</a></p>
<p><a href="http://jsfiddle.net/nateflink/NWHjB/">View Demo on JSFiddle</a></p>
<p>These days it seems like everyone and their uncle is developing web resources targeted at the mobile experience. In general my personal bias is toward native development on iOS (or even Android), because of the superior performance and quality of the UX. However in lots of cases it makes sense for companies to build mobile web apps that can work on any platform. Using <a href="jquerymobile.com">JQuery Mobile</a>  is probably the best choice due to the wide support of devices the framework maintains, if you don&#8217;t mild putting up with a touch of <a href="http://css-tricks.com/css-beginner-mistakes-1/">&#8220;divitus&#8221;</a></p>
<p>JQM has lots of nice widgets to use. Newly included in the library is a &#8220;panel&#8221; element that can slide out from either the left or the right side, similar to the Facebook or Gmail apps.</p>
<h3>i. Let&#8217;s get started!</h3>
<p>The first step is setting up your page with the standard libraries. Head over to <a href="http://view.jquerymobile.com/">http://view.jquerymobile.com/</a> and grab the starter block.</p>
<p>The URL at the time of this writing is: <a href="http://view.jquerymobile.com/1.3.1/dist/demos/widgets/pages/" >http://view.jquerymobile.com/1.3.1/dist/demos/widgets/pages/</a></p>
<p><b>IMPORTANT! Look for the most up to date version on the JQM site.</b></p>
<pre>
&lt;!DOCTYPE html&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>    &lt;title&gt;Computer Worlds&lt;/title&gt;<br/>    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;<br/>    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css&quot; /&gt;<br/>    &lt;script src=&quot;http://code.jquery.com/jquery-1.9.1.min.js&quot;&gt;&lt;/script&gt;<br/>    &lt;script src=&quot;http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js&quot;&gt;&lt;/script&gt;<br/>&lt;/head&gt;<br/><br/>&lt;body&gt;<br/>...content goes here...<br/>&lt;/body&gt;<br/>&lt;/html&gt;
</pre>
<p>Also, to note you can head over to <a href="http://html5boilerplate.com/mobile/">http://html5boilerplate.com/mobile/</a> or <a href="http://www.initializr.com/">http://www.initializr.com/</a> and download a more comprehensive template. I prefer to keep this really simple to begin with, and then add all the extras as I need them. Another simple boilerplate: <a href="http://csswizardry.com/2011/01/the-real-html5-boilerplate/">http://csswizardry.com/2011/01/the-real-html5-boilerplate/</a></p>
<h3>ii. Add a Page, Select a Theme</h3>
<p>To overide the default theme of your page, check out the options: <a href="http://jquerymobile.com/demos/1.2.1/docs/api/themes.html">http://jquerymobile.com/demos/1.2.1/docs/api/themes.html </a>and choose between a to e.</p>
<p>Note the &#8220;data-theme&#8221; attribute.</p>
<pre>
&lt;body&gt;<br/>    &lt;div data-role=&quot;page&quot; id=&quot;home&quot; data-theme=&quot;b&quot;&gt;<br/>        ...content goes here...<br/>    &lt;/div&gt;<br/>&lt;/body&gt;<br/>&lt;/pre&gt;<br/><br/>&lt;h3&gt;iii. Add the Panel Code with Buttons&lt;/h3&gt;<br/>&lt;pre&gt;<br/>&lt;body&gt;<br/>&lt;div data-role=&quot;page&quot; id=&quot;home&quot; data-theme=&quot;b&quot;&gt;<br/>    &lt;div data-role=&quot;panel&quot; id=&quot;navpanel&quot;&gt;<br/>        &lt;div data-role=&quot;controlgroup&quot; data-corners=&quot;false&quot;&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;Business&lt;/a&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;Numbers&lt;/a&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;Money&lt;/a&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;People&lt;/a&gt;<br/>        &lt;/div&gt;<br/>    &lt;/div&gt;<br/>&lt;/div&gt;<br/>&lt;/body&gt;
</pre>
<h3>iv. Select Panel Attributes</h3>
<p>In this case position the menu to the right side, specify a z-axis, and a theme<br />
see: http://view.jquerymobile.com/1.3.1/dist/demos/widgets/panels/</p>
<pre>
    &lt;div data-role=&quot;panel&quot; id=&quot;navpanel&quot; data-theme=&quot;a&quot;<br/>                data-display=&quot;overlay&quot; data-position=&quot;right&quot;&gt;<br/>        [...]
</pre>
<h3>v. Add a Menu Button</h3>
<p>Now we need a button in our header to access the menu. Since our menu button is on the right side add a
<pre>class="ui-btn-right"</pre>
<p> attribute. The inline CSS is to demonstrate positioning, but best to put that in your style sheet.</p>
<pre>
    &lt;div id=&quot;header&quot; data-role=&quot;header&quot; data-theme=&quot;b&quot;&gt;<br/>        &lt;a id=&quot;bars-button&quot; data-icon=&quot;bars&quot; class=&quot;ui-btn-right&quot; style=&quot;margin-top:10px;&quot; href=&quot;#navpanel&quot;&gt;Menu&lt;/a&gt;<br/>    &lt;/div&gt;
</pre>
<p>Now goto your browser and test this out. You should have a working side panel menu.</p>
<h3>Fix Panel Padding</h3>
<p>By default the panel has a padding of 15px, the control group a margin of 10px, For the effect of buttons flush to the edge an adjustment should be made to the css:<br />
(It doesn&#8217;t work to just drop inline definition into the panel, because these styles get dynamically added after page load.)</p>
<pre>
    &lt;style&gt;<br/>        .ui-panel-inner {<br/>            padding:0px;<br/>        }<br/>        .ui-controlgroup {<br/>            margin:0;<br/>        }<br/>    &lt;/style&gt;
</pre>
<p>Also, useful is to add a height to the header and a little margin on the menu button</p>
<pre>
    &lt;style type=&quot;text/css&quot;&gt;<br/>        #header {<br/>        height:54px;<br/>        }<br/>        #bars-button {<br/>        margin:7px;<br/>        }<br/>    &lt;/style&gt;
</pre>
<p><a name="tehcodez" /></p>
<h3>Here is the Full Code</h3>
<pre>
&lt;!DOCTYPE html&gt;<br/>&lt;html lang=&quot;en&quot;&gt;<br/>&lt;head&gt;<br/>    &lt;meta charset=&quot;utf-8&quot;&gt;<br/>    &lt;title&gt;Computer World&lt;/title&gt;<br/>    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;/&gt;<br/>    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css&quot; /&gt;<br/>    &lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-1.9.1.min.js&quot;&gt;&lt;/script&gt;<br/>    &lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js&quot;&gt;&lt;/script&gt;<br/>    &lt;style&gt;<br/>        /*this block should go in the styles.css file*/<br/>        .ui-panel-inner {<br/>            padding:0px; /*make the buttons flush edge to edge*/<br/>        }<br/>        .ui-controlgroup {<br/>            margin:0; /*make the buttons flush to the top*/<br/>        }<br/>        #header {<br/>            height:54px;<br/>        }<br/>        #bars-button {<br/>            margin:7px;<br/>        }<br/>    &lt;/style&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/><br/>&lt;div data-role=&quot;page&quot; id=&quot;home&quot; data-theme=&quot;b&quot;&gt;<br/><br/>    &lt;div data-role=&quot;panel&quot; id=&quot;navpanel&quot; data-theme=&quot;a&quot;<br/>         data-display=&quot;overlay&quot; data-position=&quot;right&quot;&gt;<br/>        &lt;div data-role=&quot;controlgroup&quot; data-corners=&quot;false&quot;&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;Business&lt;/a&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;Numbers&lt;/a&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;Money&lt;/a&gt;<br/>            &lt;a href=&quot;#&quot; data-role=&quot;button&quot;&gt;People&lt;/a&gt;<br/>        &lt;/div&gt;<br/>    &lt;/div&gt;<br/><br/>    &lt;div id=&quot;header&quot; data-role=&quot;header&quot; data-theme=&quot;b&quot;&gt;<br/>        &lt;a id=&quot;bars-button&quot; data-icon=&quot;bars&quot;  class=&quot;ui-btn-right&quot; style=&quot;margin-top:10px;&quot; href=&quot;#navpanel&quot;&gt;Menu&lt;/a&gt;<br/>    &lt;/div&gt;<br/>&lt;/div&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/13/adding-a-sliding-menu-to-your-jquery-mobile-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News: OPI hires consultant Manuel Quinones</title>
		<link>http://www.objectpartners.com/2013/05/09/news-opi-hires-consultant-manuel-quinones/</link>
		<comments>http://www.objectpartners.com/2013/05/09/news-opi-hires-consultant-manuel-quinones/#comments</comments>
		<pubDate>Thu, 09 May 2013 16:18:30 +0000</pubDate>
		<dc:creator>Ehren Seim</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7389</guid>
		<description><![CDATA[OPI welcomes Manny Quinones to their technology consulting staff. Manny brings over 15 years of development experience with the last 6 years focusing on developing web applications using Java, Spring and Hibernate. Manny is passionate about growing his toolbox of &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/05/09/news-opi-hires-consultant-manuel-quinones/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>OPI welcomes Manny Quinones to their technology consulting staff. Manny brings over 15 years of development experience with the last 6 years focusing on developing web applications using Java, Spring and Hibernate. Manny is passionate about growing his toolbox of open-source technologies and is looking forward to exceeding customer needs using Agile, test-driven software development methodologies.</p>
<p>His deep Java expertise, diverse technology background, and appetite for learning is a perfect addition to our team. Another great technologist to welcome into our growing arsenal of solution experts!  Welcome Manuel!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/09/news-opi-hires-consultant-manuel-quinones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Does Web Development Take So Long?</title>
		<link>http://www.objectpartners.com/2013/05/06/why-does-web-development-take-so-long/</link>
		<comments>http://www.objectpartners.com/2013/05/06/why-does-web-development-take-so-long/#comments</comments>
		<pubDate>Mon, 06 May 2013 19:59:30 +0000</pubDate>
		<dc:creator>Object Partners</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7347</guid>
		<description><![CDATA[Information technology is moving faster all the time. But, if information technology is progressing rapidly, Why does it takes so long to do web development? How do intelligent technologists solve these problems? Share this infographic: http://www.objectpartners.com/wp-content/uploads/2013/05/why-does-web-development-take-so-long.pdf]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.objectpartners.com/2013/05/06/why-does-web-development-take-so-long/why-does-web-development-take-so-long/" rel="attachment wp-att-7348"><img class="alignleft size-full wp-image-7348" style="border: 2px solid white;" alt="why-does-web-development-take-so-long" src="http://www.objectpartners.com/wp-content/uploads/2013/05/why-does-web-development-take-so-long.png" width="900" height="6385" /></a></p>
<p>Information technology is moving faster all the time. But, if information technology is progressing rapidly, Why does it takes so long to do web development? How do intelligent technologists solve these problems?</p>
<p><strong>Share this infographic: <a href="http://www.objectpartners.com/wp-content/uploads/2013/05/why-does-web-development-take-so-long.pdf" rel="attachment wp-att-7358">http://www.objectpartners.com/wp-content/uploads/2013/05/why-does-web-development-take-so-long.pdf</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/06/why-does-web-development-take-so-long/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Poly Driver: A Phantom Band-Aid for Geb</title>
		<link>http://www.objectpartners.com/2013/05/05/poly-driver-a-phantom-band-aid-for-geb/</link>
		<comments>http://www.objectpartners.com/2013/05/05/poly-driver-a-phantom-band-aid-for-geb/#comments</comments>
		<pubDate>Mon, 06 May 2013 03:47:04 +0000</pubDate>
		<dc:creator>Chris Berry</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Functional Testing]]></category>
		<category><![CDATA[geb]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[Selenium]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7336</guid>
		<description><![CDATA[The Problem: You have an extensive suite of Geb functional tests running against Firefox and it takes a long time to run. You switch your tests over to PhantomJS; now they run twice as fast! But five percent of the &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/05/05/poly-driver-a-phantom-band-aid-for-geb/">MORE</a>]]></description>
				<content:encoded><![CDATA[<h4>The Problem:</h4>
<p dir="ltr">You have an extensive suite of Geb functional tests running against Firefox and it takes a long time to run. You switch your tests over to PhantomJS; now they run twice as fast! </p>
<p dir="ltr">But five percent of the tests intermittently fail. After spending a few hours trying to figure it out, you still don’t know why they are failing &mdash; just that they fail sometimes, and you don&#8217;t want to spend the next week trying to figure out a workaround. As it stands, it’s not practical to switch to PhantomJS at this time.</p>
<h4>A Solution:</h4>
<p>Why not use both? <span id="more-7336"></span>Add the <a title="Poly Driver plugin" href="http://grails.org/plugin/poly-driver" target="_blank">Poly Driver plugin</a> to your project and configure it in GebConfig.groovy:</p>
<pre>driver = {

   FirefoxDriver firefoxDriver = new FirefoxDriver()
   PhantomJSDriver phantomJSDriver = getPhantomDriver()

   new PolyDriver(mainDriver: phantomJSDriver, alternateDrivers: ['firefox' : firefoxDriver])
}

private PhantomJSDriver getPhantomDriver() {
   // see Tomás Lin’s excellent blog post on configuring drivers for Geb:
   // http://fbflex.wordpress.com/2013/03/18/how-to-configure-webdriver-in-grails-for-your-geb-tests/
}</pre>
<p>Change the class inheritance of your problem test and annotate it:</p>
<pre>class MyGebSpecCase extends GebReportingSpec {
  ...
}</pre>
<p>becomes</p>
<pre>import com.polydriver.spec.PolyDriverGebReportingSpec

@PreferredDriver('firefox')
class MyGebSpecCase extends PolyDriverGebReportingSpec {
  ...
}</pre>
<p dir="ltr">When you run your tests, you will see a Firefox window open but only the FooGebSpecCase (and any others with the @PreferredDriver(&#8216;firefox&#8217;) annotation) will use it. The rest of your tests will run quickly in PhantomJS.</p>
<p>The driver allows you to specify as many drivers as you want &mdash; you can even declare multiple instances of the same browser, so if you want to run a subset of tests against different Firefox profiles, you can do that:</p>
<pre>driver = {
   FirefoxDriver firefoxDriver = new FirefoxDriver()
   FirefoxProfile ffProfile = new FirefoxProfile()
   // setup the other profile
   FirefoxDriver altFirefoxDriver = new FirefoxDriver(ffProfile)
   PhantomJSDriver phantomJSDriver = getPhantomDriver()

   new PolyDriver(
         mainDriver:       phantomJSDriver, 
         alternateDrivers: [
               'firefox':  firefoxDriver, 
               'ff-alt':   altFirefoxDrive
         ]
   )
}</pre>
<p>Hopefully this eases the pain of transitioning your test suites to PhantomJS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/05/05/poly-driver-a-phantom-band-aid-for-geb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentation: Understanding Cost in Enterprise iOS Applications</title>
		<link>http://www.objectpartners.com/2013/04/29/presentation-understanding-cost-in-enterprise-ios-applications/</link>
		<comments>http://www.objectpartners.com/2013/04/29/presentation-understanding-cost-in-enterprise-ios-applications/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 12:56:33 +0000</pubDate>
		<dc:creator>Steve McCoole</dc:creator>
				<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7296</guid>
		<description><![CDATA[Download Full Presentation Developing custom iOS applications for enterprise customers and projects is a much different experience than developing for the App Store. However, the average price of an App Store app is approximately $1.54, and nearly 54% of all &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/04/29/presentation-understanding-cost-in-enterprise-ios-applications/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p style="padding-top: 1em">
<a href="http://www.mediafire.com/?s30f9sg9ofyp3dl">Download Full Presentation</a>
</p>
<p style="padding-top: 1em">
<div class="Enterprise Batch Processing with Spring Batch 2.x">
Developing custom iOS applications for enterprise customers and projects is a much different experience than developing for the App Store. However, the average price of an App Store app is approximately $1.54, and nearly 54% of all current App Store apps are free. This creates a tremendous gap in perceived value for clients who want custom enterprise applications developed. This presentation takes the experience of a 20+ year technical veteran with experience in mobile, back end services and large scale enterprise web applications and walks through differences between developing applications for the enterprise and explains the reasons why developing an enterprise mobile application costs more than you might think. Developers and consultants may also be interested in hearing ways to explain application development complexities and costs to their prospective clients. </p>
<p>Steve McCoole is a Principal Consultant at Object Partners where he has been focusing on developing an enterprise mobile development practice, delivering applications to client that include: Oracle Retail, The Tile Shop, St. Jude Medical, SICK USA and Donaldson Corporation. He has over 20 years of experience developing solutions from embedded to large-scale Java Enterprise web applications for diverse clients including IBM, Sun, Novell, Best Buy and Thomson Reuters.
</p></div>
</p>
<p style="padding-top: 1em">
<b>Preview</b>
</p>
<p style="padding-top: 1em">
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/04/29/presentation-understanding-cost-in-enterprise-ios-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML-Encoding UTF-8 Characters</title>
		<link>http://www.objectpartners.com/2013/04/24/html-encoding-utf-8-characters/</link>
		<comments>http://www.objectpartners.com/2013/04/24/html-encoding-utf-8-characters/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 14:02:38 +0000</pubDate>
		<dc:creator>Jeff Warren</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=6718</guid>
		<description><![CDATA[It happens sometimes that a web page isn't using UTF-8, but there's a need to display UTF-8 data.  <a class="continue-reading" href="http://www.objectpartners.com/2013/04/24/html-encoding-utf-8-characters/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>It happens sometimes that a web page isn&#8217;t using UTF-8, but there&#8217;s a need to display UTF-8 data. Thankfully HTML offers encoding that allows displaying any arbitrary UTF-8 characters (of course, if the font supports the character, but that&#8217;s another topic). Sadly, though, there aren&#8217;t any quick helpers, like the Apache Commons Lang StringEscapeUtils to do the encoding. StringEscapeUtils will translate double-quotes into &amp;<span>quot;</span> and ampersands into &amp;<span>amp;</span> and other common entities, but it doesn&#8217;t seem to touch the UTF-8 characters.</p>
<p>For example, there may be a need to offer a language drop-down, and the decided-upon best way to do that is to offer each language in that language. Then rather than seeing &#8220;Japanese&#8221; in English, the user would see 日本語 and can recognize their desired language. While it displays in the browser as &#8220;Japanese&#8221; in Japanese, on the HTML page it&#8217;s presented as the encoded string <b>&amp;<span>#26085;</span>&amp;<span>#26412;</span>&amp;<span>#35486;</span></b>.</p>
<p>If the HTML page isn&#8217;t being delivered in UTF-8, and the font used has the Unicode characters, the HTML-encoded string will display properly. Even if the page is delivered in UTF-8, the encoded characters will be displayed, so it&#8217;s a nice safety net. Plus it allows storage of UTF-8 characters in databases and on file systems or in file types that don&#8217;t support UTF-8 (since technically it&#8217;s all ASCII when encoded). Of course, the HTML-encoding is really only useful if the end-target is HTML, but it may be the case that the files used will be to serve HTML, like, well, HTML files.</p>
<p>Since all strings in Java are UTF-8, it&#8217;s easy to forget that a string may have characters that aren&#8217;t going to be displayed correctly once it reaches the browser. This little snippet will correct that gap. It can be used to encode strings going to a database or file, too. There&#8217;s no corresponding decode mechanism, but it&#8217;s pretty simple to pull apart the ampersand-octothorpe-number-semicolon strings to return to UTF-8; plus, curiously, these strings are usually decoded when received by a Servlet into UTF-8, if that&#8217;s where the application is working.</p>
<pre>/**
* Takes UTF-8 strings and encodes non-ASCII as
* ampersand-octothorpe-digits-semicolon
* HTML-encoded characters
*
* @param string
* @return HTML-encoded String
*/
private String htmlEncode(final String string) {
  final StringBuffer stringBuffer = new StringBuffer();
  for (int i = 0; i &lt; string.length(); i++) {
    final Character character = string.charAt(i);
    if (CharUtils.isAscii(character)) {
      // Encode common HTML equivalent characters
      stringBuffer.append(
          StringEscapeUtils.escapeHtml4(character.toString()));
    } else {
      // Why isn't this done in escapeHtml4()?
      stringBuffer.append(
          String.format("&amp;#x%x;",
              Character.codePointAt(string, i)));
    }
  }
  return stringBuffer.toString();
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/04/24/html-encoding-utf-8-characters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News: OPI hires consultant Manish Rajkarnikar</title>
		<link>http://www.objectpartners.com/2013/04/23/news-opi-hires-consultant-manish-rajkarnikar/</link>
		<comments>http://www.objectpartners.com/2013/04/23/news-opi-hires-consultant-manish-rajkarnikar/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 15:10:49 +0000</pubDate>
		<dc:creator>Ehren Seim</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.objectpartners.com/?p=7283</guid>
		<description><![CDATA[Object Partners welcomes Manish Rajkarnikar to their technology consulting staff. Manish brings over 9 years of software engineering experience. He has spent time in a number of industries including energy trading, legal services, and most recently in travel and expense &#8230; <a class="continue-reading" href="http://www.objectpartners.com/2013/04/23/news-opi-hires-consultant-manish-rajkarnikar/">MORE</a>]]></description>
				<content:encoded><![CDATA[<p>Object Partners welcomes Manish Rajkarnikar to their technology consulting staff. Manish brings over 9 years of software engineering experience. He has spent time in a number of industries including energy trading, legal services, and most recently in travel and expense services. Manish enjoys learning cutting edge technology while solving complex business problems. In his spare time, he likes to lay back and relax, watch Netflix, read news etc.</p>
<p>Manish is excited to join OPI and work on some of the cool projects happening around here. Welcome Manish!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectpartners.com/2013/04/23/news-opi-hires-consultant-manish-rajkarnikar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
