<?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>Loosely Typed in Ohio &#187; General</title>
	<atom:link href="http://www.innova-partners.com/blog/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.innova-partners.com/blog</link>
	<description>Innova Partners, software, networking, and websites.</description>
	<lastBuildDate>Wed, 20 Apr 2011 15:11:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lunch is Served</title>
		<link>http://www.innova-partners.com/blog/2010/11/05/lunch-is-served/</link>
		<comments>http://www.innova-partners.com/blog/2010/11/05/lunch-is-served/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 14:55:49 +0000</pubDate>
		<dc:creator>Jon Canady</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.innova-partners.com/blog/?p=444</guid>
		<description><![CDATA[We&#8217;ve been up to a lot of interesting things at Innova Partners and Cover My Meds, but nothing more interesting than the hiring of our on-site Executive Chef, Becky Nation. She&#8217;s a fantastic addition to our team, we love having her around the office, and even better, her food is delicious!

We chronicle her meals at [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been up to a lot of interesting things at Innova Partners and Cover My Meds, but nothing more interesting than the hiring of our on-site Executive Chef, Becky Nation. She&#8217;s a fantastic addition to our team, we love having her around the office, and even better, her food is delicious!</p>

<p>We chronicle her meals at the <a href="http://lunch.innova-partners.com">Innova Lunch</a> blog. If you worked here, you&#8217;d be eating lunch <em>right now</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.innova-partners.com/blog/2010/11/05/lunch-is-served/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>n-Tier without tears</title>
		<link>http://www.innova-partners.com/blog/2010/08/03/n-tier-without-tears/</link>
		<comments>http://www.innova-partners.com/blog/2010/08/03/n-tier-without-tears/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:25:55 +0000</pubDate>
		<dc:creator>Eddie Bowen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.innova-partners.com/blog/?p=433</guid>
		<description><![CDATA[
Building n-Tier apps can be difficult. Instead of a single monolithic application that can easily hide its imperfections, a client-server model traditionally means making an API, choosing a transport, and sticking to it.
It&#8217;s like marriage, but with TCP/IP settings. Throw in a wireless client and it can be difficult to find a solution that fits. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.innova-partners.com/blog/wp-content/uploads/2010/08/nTier.jpg"><img src="http://www.innova-partners.com/blog/wp-content/uploads/2010/08/nTier.jpg" alt="" title="nTier" width="503" height="619" class="alignnone size-full wp-image-434" /></a>
</p><p>Building n-Tier apps can be difficult. Instead of a single monolithic application that can easily hide its imperfections, a client-server model traditionally means making an API, choosing a transport, and sticking to it.</p>
<p>It&#8217;s like marriage, but with TCP/IP settings. Throw in a wireless client and it can be difficult to find a solution that fits. XML-RPC? SOAP? REST? Each way of communicating has benefits and drawbacks.</p>
<p>This is what we&#8217;re doing for client X, a niche healthcare business.</p>
<span id="more-433"></span>
<p>The requirements for the project are a web site with both static content and user-only pages with geolocation, pricing and communication features. These features are duplicated on iPhone/iPad and (in the future, Android) clients.</p>
<p>The obvious solution is an n-Tier architecture where we can centralize the business logic. The less obvious part is how to communicate with it. The iPhone app (Boomer) is using a wireless connection, so lightweight formats are obviously attractive. Also, iOS has a poor selection of XML-RPC and SOAP clients, so a JSON/REST solution makes sense.</p>
<p>On the other hand, the web client (Apollo) is running in the same location &#8211; initially on the same server &#8211; as the client, so it can use a fatter, more full-featured connection. Since we&#8217;re using Microsoft stack for this project, that means WCF. WCF also generates model code for the web client, so most of the work is just converting these models into HTML output. The server (Athena) consists of both conventional and restful WCF services each accessing the core logic of the server, which in turn consists largely of LINQ-based interaction with the database.</p><p>
</p><p>The neat thing about offering parallel services like this is that it makes adding additional transports much more straightforward. For example, if client X decides they want to use an RPC-based tool with the server, it just means adding another service; the business logic has already been prefactored out of the way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.innova-partners.com/blog/2010/08/03/n-tier-without-tears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elevator Pitches aren&#8217;t just for your salespeople</title>
		<link>http://www.innova-partners.com/blog/2010/03/29/elevator-pitches-arent-just-for-your-salespeople/</link>
		<comments>http://www.innova-partners.com/blog/2010/03/29/elevator-pitches-arent-just-for-your-salespeople/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 01:04:26 +0000</pubDate>
		<dc:creator>Matt Scantland</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.innova-partners.com/blog/?p=423</guid>
		<description><![CDATA[Many people know about the Elevator Pitch, and people at companies that are succeeding have committed their company&#8217;s pitch to memory and improve it constantly to improve understanding and relevance.

We copy/paste the elevator pitch from the CoverMyMeds website many times per week.  Not because it is easier, but because it is the best 15 [...]]]></description>
			<content:encoded><![CDATA[<p>Many people know about the <a href="http://en.wikipedia.org/wiki/Elevator_pitch">Elevator Pitch</a>, and people at companies that are succeeding have committed their company&#8217;s pitch to memory and improve it constantly to improve understanding and relevance.</p>

<p>We copy/paste the elevator pitch from the <a href="http://www.covermymeds.com/">CoverMyMeds</a> website many times per week.  Not because it is easier, but because it is the best 15 word summary of our company that we can write.</p>

<p>But the best part about an honest and simple elevator pitch is that it can be used by others outside your company: your happy users, your partners, and the press.</p> 

<p>And today, I received an email from <a href="http://mastersinhealthinformatics.com/blog">HealthTechTopia</a> that we&#8217;ve been awarded their #2 slot in the <a href="http://mastersinhealthinformatics.com/2010/25-notable-start-ups-changing-the-medical-information-industry/">25 Notable Startups that are Changing the Medical Information Industry</a>. We&#8217;re listed among a number of very good companies, many of which I know, but something that struck me is that we had one of the only usable elevator pitches on our website out of the whole list.</p>

<p>Unfortunately, I&#8217;ll need to pick on someone to illustrate my point.</p>

<blockquote>
CoverMyMeds helps physicians and pharmacists complete Prior Authorization and other insurance coverage determination forms for any drug and for most drug health plans&#8230;
</blockquote>

<p><blockquote>
DOMA Technologies: This is a privately owned Virginia Limited Liability Corporation founded in 2000, which provides Software as a Service (SaaS) document management applications and services aimed across multiple vertical markets&#8230;
</blockquote></p>

<p>Assuming you even care about healthcare IT, which description is better? Without a good pitch, the nice folks at <a href="http://mastersinhealthinformatics.com/blog">HealthTechTopia</a> had to work very hard to describe what these other companies do-and it probably isn&#8217;t the very best explanation these companies could offer.</p>

<p>What we&#8217;ve done is improve our chances of being listed and described positively, with nothing more than a simple paragraph on our homepage (but lots of thought about who we are).</p>

<p>Let me close with a few simple metrics we have to evaluate our pitch.  A good pitch is something that:</p>

<ul>
<li>A real person would repeat to their friend/colleague without feeling like a dork or shill</li>
<li>A (non-paid) person can actually remember</li>
<li>Describes why we matter and who should care</li>
<li>Is differentiated from other pitches, but is relevant to problems to which the mainstream can relate</li>
<li>Is copy/paste-able in an email or website</li>
<li>Everyone in the organization is happy to repeat to open sales calls and meetings</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.innova-partners.com/blog/2010/03/29/elevator-pitches-arent-just-for-your-salespeople/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Innova Team</title>
		<link>http://www.innova-partners.com/blog/2010/02/08/the-innova-team/</link>
		<comments>http://www.innova-partners.com/blog/2010/02/08/the-innova-team/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:30:30 +0000</pubDate>
		<dc:creator>Matt Scantland</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.innova-partners.com/blog/2010/02/08/the-innova-team/</guid>
		<description><![CDATA[We took pictures right before the annual holiday feast.

Chip, Eddie, Keith, Reva, Matt, Dan, Jon, Michelle, Scott, Amanda, Bruce, Mary, Kent, Brian, Robert, Chris. Chad, who holds court at the Oregon branch office not pictured.


]]></description>
			<content:encoded><![CDATA[<p>We took pictures right before the annual holiday feast.</p>

<p>Chip, Eddie, Keith, Reva, Matt, Dan, Jon, Michelle, Scott, Amanda, Bruce, Mary, Kent, Brian, Robert, Chris. Chad, who holds court at the Oregon branch office not pictured.</p>

<p><a href="http://www.flickr.com/groups/innova_partners/"><img title="Innova Team" src="http://farm3.static.flickr.com/2625/4177974153_933d0d92e4.jpg" alt="Holiday picture" width="500" height="215" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.innova-partners.com/blog/2010/02/08/the-innova-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing CSS</title>
		<link>http://www.innova-partners.com/blog/2009/09/30/visualizing-css/</link>
		<comments>http://www.innova-partners.com/blog/2009/09/30/visualizing-css/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:45:53 +0000</pubDate>
		<dc:creator>Eddie Bowen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.innova-partners.com/blog/?p=363</guid>
		<description><![CDATA[

Converting a Photoshop pitch to a static HTML/CSS layout is a fundamental part of client-oriented web development. It can be hard work, not least because it is difficult to simultaneously focus on the appearance of the site and its structural foundations.

The usual solution to this is to muddle through and keep tweaking a steadily expanding [...]]]></description>
			<content:encoded><![CDATA[<p><img style="position:relative; left:-140px" src="http://www.innova-partners.com/blog/wp-content/uploads/2009/09/animation2.gif" alt="animation2" title="animation2" width="720" height="751" class="alignnone size-full wp-image-391" /></p>

<p>Converting a Photoshop pitch to a static HTML/CSS layout is a fundamental part of client-oriented web development. It can be hard work, not least because it is difficult to simultaneously focus on the appearance of the site and its structural foundations.</p>

<p>The usual solution to this is to muddle through and keep tweaking a steadily expanding morass of CSS until the site resembles the original .psd. This way of working is <strong>unstructured</strong>, which makes it stressful and self-limiting. </p>

<p>Let&#8217;s look at a better way.</p>

<p><span id="more-363"></span></p>

<h3>Separating structure and appearance</h3>

<p>A more disciplined way of working involves <strong>separating the structure and appearance</strong> of the CSS into two separate files, like this:</p>

<p><code><pre>
    &lt;link rel='stylesheet' href='styles/structure.css' type='text/css' /&gt;
    &lt;link rel='stylesheet' href='styles/appearance.css' type='text/css' /&gt;
</pre></code></p>

<h3>But aren&#8217;t appearance and structure separate already in CSS?</h3>

<p>At this point you may be thinking that CSS is <em>already</em> predicated on the idea that structure and content should be separate. HTML for structure and CSS for appearance, right?</p>

<p>This is true if &#8220;appearance&#8221; includes attributes such as <em>float</em> or <em>position</em>.</p>

<p>We want to <em>really</em> separate the the attributes responsible for layout &#8211; <em>position, float, padding, margin, width, height, border, etc</em> &#8211; from those responsible for decoration &#8211; <em>background, color, font-&#42;, text-&#42;, etc</em>.</p>

<p>We also want to be able to <strong>visualize</strong> the structure of the CSS. This means adding false background colors to elements in <em>structure.css</em> so we can see what effects those elements have on the layout. The predefined CSS colors such as &#8220;green&#8221; or &#8220;red&#8221; are great for this.</p>

<h3>How <em>structure.css</em> and <em>appearance.css</em> see a page element</h3>

<p><em>Structure.css</em> might describe a page element like this:</p>

<p><code><pre>
div.feature_content
{
    background: green;
    padding: 5px 20px 15px 20px;
}
</pre></code></p>

<p>while <em>appearance.css</em> is concerned with this:</p>

<p><code><pre>
div.feature&#95;content
{
    color: #00326a;
    background: #e8e8e8 url(images/feature&#95;foot.png) no-repeat left bottom;
}
</pre></code></p>

<p>This means we can easily switch off the appearance file and look at a purely structural layout. If, for example, we need to add an element and inadvertently break a float clearance, we can metaphorically lift the hood on the layout and immediately see what is wrong. It&#8217;s like having X-ray vision for HTML.</p>

<p><img src="http://www.innova-partners.com/blog/wp-content/uploads/2009/09/appearance.png" alt="appearance" title="appearance" width="300" height="345" class="alignnone size-full wp-image-383" />
With both stylesheets switched on.</p>

<p><img src="http://www.innova-partners.com/blog/wp-content/uploads/2009/09/structure.png" alt="structure" title="structure" width="300" height="345" class="alignnone size-full wp-image-384" />
With just <em>structure.css</em> switched on.</p>

<h3>Visualizing in action</h3>

<p>If you watch the animation at the start of this post again, pay close attention to the position of the top navbar.</p>

<p>When I first started blocking out the page the navbar was inside the top (&#8216;header&#8217;) block. Later I realized it would be easier to position if it were the first element in the second (&#8216;content&#8217;) block.</p>

<p>So I switched off <em>appearance.css</em> (by breaking the tag with an underscore,) and moved the nav bar&#8217;s div. The structure was fine, so I deleted that underscore and the hood went down.</p>

<p>The important part of this is that I was immediately confident that the change had no unexpected impact on other elements in the layout. I <em>knew</em> the layout of the page, even when it was in flux, because I could <em>see</em> it.</p>

<h3>Divide and conquer</h3>

<p>The important thing is that visualizing CSS isn&#8217;t a tedious &#8220;best practices&#8221; kind of thing. It really does remove a lot of stress and confusion from development. Give it a try; once you start dividing your CSS this way you&#8217;ll wonder how you managed before.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.innova-partners.com/blog/2009/09/30/visualizing-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

