<?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>Dr. Joe Maffia &#124; &#34;Good artists copy. Great artists steal.&#34; &#124; Online CV</title>
	<atom:link href="http://www.joemaffia.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joemaffia.net</link>
	<description>Just another way to show what I&#039;m doing... my Design, my Music, my Development.</description>
	<lastBuildDate>Mon, 30 Aug 2010 16:54:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>There’s Nothing Functional about a Functional Spec</title>
		<link>http://www.joemaffia.net/blog/2010/08/30/there%e2%80%99s-nothing-functional-about-a-functional-spec/</link>
		<comments>http://www.joemaffia.net/blog/2010/08/30/there%e2%80%99s-nothing-functional-about-a-functional-spec/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 16:54:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/30/there%e2%80%99s-nothing-functional-about-a-functional-spec/</guid>
		<description><![CDATA[



Don’t write a functional specifications document


These blueprint docs usually wind up having almost nothing to do with the finished product. Here’s why:



Functional specs are fantasies


They don’t reflect reality. An app is not real until builders are building it, designers are designing it, and people are using it. Functional specs are just words on paper.



Functional specs [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<div style="">
<div style="font-size: 12px;">
<div style="">
<div style="font-size: 12px;"><b>Don’t write a functional specifications document</b></div>
</div>
<div style="">
<div style="font-size: 12px;">These blueprint docs usually wind up having almost nothing to do with the finished product. Here’s why:</div>
</div>
<p />
<div style="">
<div style="font-size: 12px;"><b>Functional specs are fantasies</b></div>
</div>
<div style="">
<div style="font-size: 12px;">They don’t reflect reality. An app is not real until builders are building it, designers are designing it, and people are using it. Functional specs are just words on paper.</div>
</div>
<p />
<div style="">
<div style="font-size: 12px;"><b>Functional specs are about appeasement</b></div>
</div>
<div style="">
<div style="font-size: 12px;">They’re about making everyone feel involved and happy which, while warm and fuzzy, isn’t all that helpful. They’re never about making tough choices and exposing costs, things that need to happen to build a great app.</div>
</div>
<p />
<div style="">
<div style="font-size: 12px;"><b>Functional specs only lead to an illusion of agreement</b></div>
</div>
<div style="">
<div style="font-size: 12px;">A bunch of people agreeing on paragraphs of text isn’t a true agreement. Everyone may be reading the same thing but they’re thinking something different. This inevitably comes out later on: “Wait, that’s not what I had in mind.” “Huh? That’s not how we described it.” “Yes it was and we all agreed on it – you even signed off on it.” You know the drill.</div>
</div>
<p />
<div style="">
<div style="font-size: 12px;"><b>Functional specs force you to make the most important decisions when you have the least information</b></div>
</div>
<div style="">
<div style="font-size: 12px;">You know the least about something when you begin to build it. The more you build it, the more you use it, the more you know it. That’s when you should be making decisions – when you have more information, not less.</div>
</div>
<p />
<div style="">
<div style="font-size: 12px;"><b>Functional specs lead to feature overload</b></div>
</div>
<div style="">
<div style="font-size: 12px;">There’s no pushback during spec phase. There’s no cost to writing something down and adding another bullet point. You can please someone who’s a pain by adding their pet feature. And then you wind up designing to those bullet points, not to humans. And that’s how you wind up with an overloaded site that’s got 30 tabs across the top of the screen.</div>
</div>
<p />
<div style="">
<div style="font-size: 12px;"><b>Functional specs don’t let you evolve, change,and reassess</b></div>
</div>
<div style="">
<div style="font-size: 12px;">A feature is signed off and agreed on. Even if you realize during development that it’s a bad idea, you’re stuck with it. Specs don’t deal with the reality that once you start building something, everything changes.</div>
</div>
<p /></div>
<div style=""><span style="font-size: 12px;">So what should you do in place of a spec? Go with a briefer alternative that moves you toward something real.</span></div>
<div style=""><span style="font-size: 12px;">Write a one page story about what the app needs to do. Use plain language and make it quick. If it takes more than a page to explain it, then it’s too complex. This process shouldn’t take more than one day.</span></div>
<p />
<div style=""><span style="font-size: 12px;">Then begin building the interface – the interface will be the alternative to the functional spec. Draw some quick and simple paper sketches. Then start coding it into html. Unlike para- graphs of text that are open to alternate interpretations, interface designs are common ground that everyone can agree on.</span></div>
<p />
<div style=""><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">Confusion disappears when everyone starts using the same screens. Build an interface everyone can start looking at, using, clicking through, and “feeling” before you start worrying about back-end code. Get yourself in front of the customer experience as much as possible.</span></div>
<div style=""><span style="font-size: 12px;">Forget about locked-in specs. They force you to make big, key decisions too early in the process. Bypass the spec phase and you’ll keep change cheap and stay flexible.</span></div>
</div>
<p />
<div style=""><span style="font-size: 12px;">&#8230;</span></div>
<p />
<div style=""><span style="font-size: 12px;">A “spec” is close to useless. I have never seen a spec that was both big enough to be useful and accurate.</span></div>
<div style=""><span style="font-size: 12px;">And I have seen lots of total crap work that was based on specs. It’s the single worst way to write software, because it by definition means that the software was written to match theory, not reality.</span></div>
<div style=""><span style="font-size: 12px;">-Linus Torvalds, creator of Linux (from: Linux: Linus On Specifications)</span></div>
<p />
<div style=""><span style="font-size: 12px;"><a href="http://gettingreal.37signals.com/">http://gettingreal.37signals.com/</a></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/08/30/there%e2%80%99s-nothing-functional-about-a-functional-spec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Article: On jQuery &amp; Large Applications – rmurphey</title>
		<link>http://www.joemaffia.net/blog/2010/08/27/article-on-jquery-large-applications-rmurphey/</link>
		<comments>http://www.joemaffia.net/blog/2010/08/27/article-on-jquery-large-applications-rmurphey/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 09:36:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/article-on-jquery-large-applications-rmurphey/</guid>
		<description><![CDATA[
On jQuery &#38; Large Applications &#8211; rmurphey http://rmurphey.posterous.com/on-jquery-large-applications

On jQuery &#38; Large Applications &#8211; rmurphey





I’ve been thinking a lot lately about JavaScript applications. As my skills have evolved, I’ve had the privilege of working on more actual applications, and I’ve gotten further and further from clients who want to add a bit of Ajax or bling [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p><b>On jQuery &amp; Large Applications &#8211; rmurphey</b><br /> <a href="http://rmurphey.posterous.com/on-jquery-large-applications"></a><a href="http://rmurphey.posterous.com/on-jquery-large-applications">http://rmurphey.posterous.com/on-jquery-large-applications</a></p>
<hr />
<h1>On jQuery &amp; Large Applications &#8211; rmurphey</h1>
<div>
<div>
<div>
<div>
<div>
<p>I’ve been thinking a lot lately about JavaScript applications. As my skills have evolved, I’ve had the privilege of working on more actual applications, and I’ve gotten further and further from clients who want to add a bit of Ajax or bling to an otherwise fairly traditional web site.</p>
<p>The most interesting applications I work on are client-side intensive: the server is responsible for providing data as JSON to the client, and most everything else — templating, state management, data management, site navigation, and of course user interaction — is left to the client side.</p>
<p>It’s a lovely way of writing an application. There’s no need for me to touch server-side code; in some cases I work with a server-side developer to decide what the data they send will look like, but in others I just take what an API already provides and make it work. I get to use the same templating framework across projects, regardless of server-side technology, and I can prototype complex interactions before the server side even exists.</p>
<p>This is a land where HTML, CSS, and JavaScript are almost all you need, and I like it. I’ve become a firm believer in moving giant hunks of functionality that used to belong to the server over to the client. For a variety of reasons, I think it’s clear that this is where most interesting web development is headed, to the extent it’s not already there.</p>
<p>This style of building an application changes the front-end development game. In fact, “development” may no longer be an adequate description; we’re moving into the realm of engineering, here. We’re not using JavaScript to add a bit of bling to our sites — a slideshow here, some Ajax there — we’re architecting an <em>application</em>, damnit. We can’t just write some procedural code that binds a bunch of anonymous functions to some events and call it a day; if we do, I can tell you from experience that we’re going to end up with a steaming pile of unmaintainable crap.</p>
<p>Among a host of questions presented by these sorts of applications, some of the most interesting to me are:</p>
<ul>
<li>What are the units of functionality that will make up the application?</li>
<li>How will those pieces be organized into units of code?</li>
<li>How will those pieces communicate with each other?</li>
<li>How will dependencies between components be expressed and managed while adhering to the principle of loose coupling?</li>
<li>How will components manifest themselves in the DOM? Do they need to?</li>
<li>How will we persist data across URL and page loads?</li>
<li>How will we manage communication with the server?</li>
<li>How will we make sure users only see the data they’re allowed to see?</li>
</ul>
<p>At the risk of making a broad generalization, this isn’t the way today’s average JavaScripter learned to think. The mantra of jQuery, the most popular JavaScript library on the internets, is “get some elements, do something with them” — perfectly terrible preparation for analyzing an application from a perspective other than the DOM. And, IMHO, therein lies a tremendous problem.</p>
<p>As more and more application logic moves to the browser, I’m eager to see the JavaScript community rise to the challenge, but instead it feels like the opposite is happening. People with little understanding or appreciation of these questions are taking on projects that demand these questions be answered. The result is a land of fragile code that gets the job done while giving the finger to the next developer; a land of code so tightly coupled, so deeply beholden to the DOM, so blatantly not reusable or extensible or maintainable as to render every subsequent commit a complete crapshoot, as liable to cripple the application as not. The viability of the project is threatened, and so is the reputation of JavaScript.</p>
<p>We are better than this. JavaScript, even that old-fashioned browser kind, is a language worthy of respect, not a thing to be dreaded. But — and here’s the sentence I have struggled 10 months to realize and an hour to write: in order to prove that we are better than this, we must make abundantly clear to the budding developers, to the project managers, to the enterprises, to anyone intending to build a remotely complex JavaScript application, that there’s more to JavaScript than jQuery. The questions are bigger, the answers more complex, and the relevant skills, alas, a bit harder to come by.</p>
<p>We have to make clear that, in fact, jQuery is but a hammer. When it comes to building these intensively client-side applications, we’re talking about building skyscrapers, for god’s sake. The problems solved by a hammer are the least of our concerns.</p>
<p>It was just a few months ago that I gave a presentation on <a href="http://www.slideshare.net/rmurphey/building-large-jquery-applications"> building large jQuery applications</a>. I emphasized jQuery’s role as strictly a DOM and Ajax tool, and demonstrated a few other tools — John Resig’s <a href="http://ejohn.org/blog/simple-javascript-inheritance/">simple inheritance</a>, James Burke’s <a href="http://requirejs.org/">RequireJS</a> dependency management and build tool, Jan Lenhardt’s <a href="http://github.com/janl/mustache.js/">mustache.js</a> — that one would want to bring to the table for such an undertaking.</p>
<p>But to what end do we assemble said hodgepodge of tools? Is it just so we can continue to “use jQuery”?</p>
<p>jQuery’s API is, indeed, dead-simple, but we are smart people! We are building skyscrapers! When it’s time to write a complex application, and we need all of these things that jQuery doesn’t offer, can we not learn to use another hammer — learn that <code>dojo.place(&#39;&lt;div&gt;I am new!&lt;/div&gt;&#39;, oldDomElement, &#39;last&#39;)</code> means the same thing as <code>$(&#39;&lt;div&gt;I am new!&lt;/div&gt;&#39;).appendTo(oldDomElement)</code> — if learning it gives us access to legions more functionality than jQuery even aspires to provide?</p>
<p>Do we assemble this hodgepodge because finding jQuery developers is perceived as an easier task than finding practitioners of another library, even though someone saying they “know jQuery” is little indication that they will know how to work with the assembled solution?</p>
<p>Do we do it for the plugin ecosystem — full of code of varying quality and maintenance — even though many of the large application needs addressed by those plugins are addressed by other libraries as well, and sometimes better?</p>
<p>And when we do it, when we assemble this collection of tools ourselves, what risks are we accepting? What price will we pay down the road to maintain three or five or 10 different pieces from three or five or 10 different authors, with different release cycles, no guarantee of compatibility or maintenance, and no central project thoughtfully considering their future?</p>
<p>I’ve wrestled with these questions for months, agonizing during sleepless early-morning hours over how to advise clients on the answers. I’m the co-host of yayQuery, a contributor to the jQuery Cookbook, and, I’ll venture to say, a decently respected member of the jQuery community. I did not arrive at this conclusion lightly, and I have few illusions it will be well-received, or even heeded.</p>
<p>But I’ve grown weary of people championing a tool that simply does not answer the big questions I see in project after intensively client-side project. I’ve grown weary of those same people dismissing tools that answer those questions handily and have been answering them for a while now. I cringe when clients tell me they’ve chosen jQuery because it was “easy,” and then watch them predictably struggle with all of the questions it does not answer. And I’ve found I can’t continue to bite my tongue when people recommend jQuery as an enterprise-grade solution while failing to acknowledge these questions, let alone answer them*.</p>
<p>I do not want to see jQuery go away. The simplicity of its API was undeniably instrumental in the rise of JavaScript as a language these last few years. It is a perfect gateway drug, and I greatly enjoy watching people transition from “get some elements, do something with them” to the elegant patterns of JavaScript itself.</p>
<p>jQuery is an entirely appropriate answer to so many questions, but it falls so short for large applications, forcing you to assemble such a tenuous toolkit of your own, that it simply isn’t a viable answer — or, in my opinion, part of an answer — for large applications. If we hope to continue to gain respect as a community, we ought to admire jQuery’s immense contributions, but we must not be afraid to accept and make very clear its limitations. We do otherwise at our peril.</p>
<p><i><br /></i></p>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/08/27/article-on-jquery-large-applications-rmurphey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don’t split into silos…</title>
		<link>http://www.joemaffia.net/blog/2010/08/26/dont-split-into-silos/</link>
		<comments>http://www.joemaffia.net/blog/2010/08/26/dont-split-into-silos/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 09:36:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/dont-split-into-silos/</guid>
		<description><![CDATA[I never believed that a developer (in this example) should be a front-end/back-end ONLY guy&#8230;
 There&#8217;s no such thing and in my opinion if you&#8217;re hiring in this way you&#8217;re not doing yourself a favour and sure won&#8217;t be your smartest decision!
 Was reading the &#8220;Getting Real&#8221; ebook by 37signals&#8230;when this topic came out so [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>I never believed that a developer (in this example) should be a <br />front-end/back-end ONLY guy&#8230;
<p /> There&#8217;s no such thing and in my opinion if you&#8217;re hiring in this way <br />you&#8217;re not doing yourself a favour and sure won&#8217;t be your smartest <br />decision!
<p /> Was reading the &#8220;Getting Real&#8221; ebook by 37signals&#8230;when this topic <br />came out so here&#8217;s a summary:
<p /> Too many companies separate design, development, copywriting and <br />marketing into different silos. While specialisation has it&#8217;s <br />advantages, it also create a situation where staffers see just their <br />own little world instead of the entire context&#8230;
<p /> Don&#8217;t let things get lost in translation.
<p /> Even better, hire people with multiple talents who can wear different <br />hats&#8230;the end result will be a more harmonious product.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/08/26/dont-split-into-silos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m looking to hire a Unicorn</title>
		<link>http://www.joemaffia.net/blog/2010/08/14/im-looking-to-hire-a-unicorn/</link>
		<comments>http://www.joemaffia.net/blog/2010/08/14/im-looking-to-hire-a-unicorn/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 09:36:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/im-looking-to-hire-a-unicorn/</guid>
		<description><![CDATA[
When I was reading this, I was simply smiling for the entire post!&#160;
Everyday since some time ago, when they ask me to hire people&#8230; I&#8217;m looking for something mythical in nature.
 
So why it&#8217;s a good idea to be a JavaScript developer and what it takes to be one?

You need to know HTML. You need [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>When I was reading this, I was simply smiling for the entire post!&nbsp;</p>
<p>Everyday since some time ago, when they ask me to hire people&#8230; I&#8217;m looking for something mythical in nature.</p>
<p><img src="http://posterous.com/getfile/files.posterous.com/temp-2010-08-13/tHDamDdpkcDkdydIEFeniHIejkqcivmFtlkudgdepgthkGfHspycwiunnwsG/unicorn.jpg.scaled500.jpg" width="412" height="576"/> </p>
<p>So why it&#8217;s a good idea to be a JavaScript developer and what it takes to be one?</p>
<ol>
<li><strong>You need to know HTML. </strong>You need to know everything about it. Everything.</li>
<li><strong>You need to know CSS so well you&rsquo;ll regret it.</strong>&nbsp;You just added a negative margin-top to a link and guess what, the users of certain browsers can no longer click them, despite the fact that you gave it a z-index of a million and you can clearly see the damn thing.&nbsp;</li>
<li><strong>You need to know the browsers.</strong> You need to know that IE won&rsquo;t let you convert this string: &ldquo;&lt;meta&gt;&lt;/meta&gt;&rdquo; into DOM elements by setting the innerHTML of a DIV. And forget about injecting it in the HEAD to turn it into a DOM element, because that thing is read only.&nbsp;</li>
<li><strong>Did I mention JavaScript?</strong>&nbsp;You need to be really good at abstraction. Seriously brilliant at it. You need to be good at designing APIs&nbsp;for yourself&nbsp;as well as others. You need to know how to test your code and how to manage it.</li>
<li><strong>You need to be decent at design</strong>&nbsp;You need to be able to interview a user, a client, a stranger, an expert, whatever, and ask them the right questions to be able to devise an experience that solves their problems. Not just the ones you can imagine, but the ones they don&rsquo;t know how to describe.&nbsp;</li>
<li><strong>You need to be comfortable on the server side.</strong> You need to be able to pick up other languages relatively quickly (in, say, a month or less). Python, Ruby, Java, PHP&hellip; If you only know one programming language, it doesn&rsquo;t count. If you only know JavaScript and PHP, and you balk at any task that requires you to use something other than those two (rather than, say, looking at it as an opportunity to learn something new), then you need to ask yourself what you&rsquo;re doing here.</li>
<li>And then there&rsquo;s about a million other things&nbsp;that you need. <strong>You need to understand Git. Git is amazing.</strong></li>
</ol>
<p>&nbsp;</p>
<p><a href="http://www.clientcide.com/deep-thoughts/why-its-a-good-idea-to-be-a-javascript-developer-and-what-it-takes-to-be-one/">http://www.clientcide.com/deep-thoughts/why-its-a-good-idea-to-be-a-javascrip&#8230;</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/08/14/im-looking-to-hire-a-unicorn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My best ideas come to me when I’m in the shower</title>
		<link>http://www.joemaffia.net/blog/2010/08/11/my-best-ideas-come-to-me-when-im-in-the-shower/</link>
		<comments>http://www.joemaffia.net/blog/2010/08/11/my-best-ideas-come-to-me-when-im-in-the-shower/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 09:35:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/my-best-ideas-come-to-me-when-im-in-the-shower/</guid>
		<description><![CDATA[

I think most people have one top idea in their mind at any given time. That&#8217;s the idea their thoughts will drift toward when they&#8217;re allowed to drift freely. And this idea will thus tend to get all the benefit of that type of thinking, while others are starved of it. Which means it&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<blockquote>
<p>I think most people have one top idea in their mind at any given time. That&#8217;s the idea their thoughts will drift toward when they&#8217;re allowed to drift freely. And this idea will thus tend to get all the benefit of that type of thinking, while others are starved of it. Which means it&#8217;s a disaster to let the wrong idea become the top one in your mind.</p>
<p>I suspect a lot of people aren&#8217;t sure what&#8217;s the top idea in their mind at any given time. I&#8217;m often mistaken about it. I tend to think it&#8217;s the idea I&#8217;d want to be the top one, rather than the one that is. But it&#8217;s easy to figure this out: just take a shower. What topic do your thoughts keep returning to? If it&#8217;s not what you want to be thinking about, you may want to change something.</p>
<p>&#8230;..</p>
<p>The shower is when I come up with the most elegant solution to a problem that I&#8217;ve been struggling with. In the shower I figure out the best algorithms, the simplest way to store data, the best way to write an email I&#8217;ve been avoiding, the best tactic to negotiate something.</p>
<p>&nbsp;</p>
</blockquote>
<p><a href="http://sachin.posterous.com/my-best-ideas-come-to-me-when-im-in-the-showe">http://sachin.posterous.com/my-best-ideas-come-to-me-when-im-in-the-showe</a></p>
<p>&nbsp;</p>
<p><em>Does this mean that u need to get dirty more often, to found an excuse to wash yourself more often?</em></p>
<p><strong>No!</strong></p>
<p>Whatever is your job, once in a while (quite more often of what you could think) STOP! Take a deep breath, jump outside the box, change your point of view and let your mind flying&#8230; you&#8217;ll miss the big picture otherwise.</p>
<p>&nbsp;</p>
<p>1. Leave your desk</p>
<p>2. Do nothing</p>
<p>3.&nbsp;Crucial insights arise when we least expect them&nbsp;</p>
<p><a href="http://the99percent.com/tips/browse/68/recharging">http://the99percent.com/tips/browse/68/recharging</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/08/11/my-best-ideas-come-to-me-when-im-in-the-shower/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>They Will Steal Your Idea. They Cannot Steal What Really Matters.</title>
		<link>http://www.joemaffia.net/blog/2010/07/30/they-will-steal-your-idea-they-cannot-steal-what-really-matters/</link>
		<comments>http://www.joemaffia.net/blog/2010/07/30/they-will-steal-your-idea-they-cannot-steal-what-really-matters/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 09:35:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/they-will-steal-your-idea-they-cannot-steal-what-really-matters/</guid>
		<description><![CDATA[
I just came across this&#8230;
 
and doesn&#8217;t matter if you&#8217;re planning your own revolution, if you&#8217;re thinking of starting your own business, if you&#8217;re stuck in a business that is not yours or if you&#8217;re simply happy where you are&#8230;
 
&#8230;you gonna love this!
 
http://jasonlbaptiste.com/startups/they-will-steal-your-idea-they-cannot-stea&#8230;
 
 
They cannot steal your long term vision
They cannot steal your domain expertise
They cannot steal [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p><span style="font-size: small; color: #808080;">I just came across this&#8230;</span></p>
<div> </div>
<div><span style="font-size: small; color: #808080;">and doesn&#8217;t matter if you&#8217;re planning your own revolution, if you&#8217;re thinking of starting your own business, if you&#8217;re stuck in a business that is not yours or if you&#8217;re simply happy where you are&#8230;</span></div>
<div> </div>
<div><span style="font-size: small; color: #808080;">&#8230;you gonna love this!</span></div>
<div> </div>
<div><span style="font-size: small; color: #808080;"><a href="http://jasonlbaptiste.com/startups/they-will-steal-your-idea-they-cannot-steal-what-really-matters/">http://jasonlbaptiste.com/startups/they-will-steal-your-idea-they-cannot-stea&#8230;</a></span></div>
<div> </div>
<div> </div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong>They cannot steal your long term vision</strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong>They cannot steal your domain expertise</strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your market failure driven pivots</strong></span></strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your talent (at this point)</strong></span></strong></span></strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your analytical insights</strong></span></strong></span></strong></span></strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your plans for generating revenue</strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your passion for great service</strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your passion to make this idea a reality</strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></div>
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>They cannot steal your luck</strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></div>
<p />
<div><span style="font-family: Helvetica, serif; line-height: 18px; font-size: small; color: #808080;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"> </span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></strong></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/07/30/they-will-steal-your-idea-they-cannot-steal-what-really-matters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing javascript/jQuery loading time!</title>
		<link>http://www.joemaffia.net/blog/2010/07/14/optimizing-javascriptjquery-loading-time/</link>
		<comments>http://www.joemaffia.net/blog/2010/07/14/optimizing-javascriptjquery-loading-time/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 09:35:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/optimizing-javascriptjquery-loading-time/</guid>
		<description><![CDATA[
So you created that nice website or web application and would like to go a step further in optimizing the front-end loading time? With some great free tools you can easily optimize your javascript to load 2 or 3 times faster if you are willing to trade the regular way of embedding javascript file in [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>So you created that nice website or web application and would like to go a step further in optimizing the front-end loading time? With some great free tools you can easily optimize your javascript to load 2 or 3 times faster if you are willing to trade the regular way of embedding javascript file in the head document.</p>
<div> </div>
<div>
<h2>Loading script asynchronously</h2>
<p>One thing you need to know is that your script tag block the rendering of your page. In fact, it blocks literally anything from happening, when you are downloading and executing one script, not one css file or one image is downloaded. So imagine you got 10 script files loaded in your head with around 300k in size, well the browser need to load them one by one (well in fact 6 at a time in FF and WebKit, and as many as 18 (or more) in IE8. In older browsers it will be one at a time. ), and execute them one by one, by that time there is a good chance your page would have already render the HTML and CSS.</p>
<p>The first and very easy thing you can do is loading them just before the body end.</p>
<p>That way, at the very least, the CSS and the html will be loaded before the javascript. One thing really cool about doing this is that the jQuery DOM ready statement becomes obsolete. Your html is already ready because you parsed it before any script tag. </p>
<p> </p>
<p><span style="font-size: 20px; font-weight: bold;">Going one step further with labJS</span></p>
<p>With <a href="http://labjs.com/" target="_blank">LABjs</a> you can load your js files completely asynchronous. The difference with the previous example is that even if your scripts are at the bottom, they are still downloading one by one. With this tool, you can load your scripts simultaneously and specify an executing order. From my tests with <a href="http://ajax.dynatrace.com/pages/">dynatrace</a>, the javascript load 3x more rapidly using <a href="http://labjs.com/">LABjs</a>, and my page is loading 15% faster (for about 15 js files) on IE8. </p>
<p> </p>
<p>  More here: <a href="http://www.position-absolute.com/articles/optimizing-javascriptjquery-loading-time-a-beginners-guide/">http://www.position-absolute.com/articles/optimizing-javascriptjquery-loading-time-a-beginners-guide/</a> </div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/07/14/optimizing-javascriptjquery-loading-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion Re-education</title>
		<link>http://www.joemaffia.net/blog/2010/07/09/subversion-re-education/</link>
		<comments>http://www.joemaffia.net/blog/2010/07/09/subversion-re-education/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 09:35:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/subversion-re-education/</guid>
		<description><![CDATA[
I will be never too tired of keep reading this great article!
Question:&#160;&#160;Do you write perfect code the first time?

If you answered &#8220;Yes&#8221;, you&#8217;re a liar and a cheat. You fail. Take the test again.
New code is buggy. It takes a while to get it working respectably. In the meantime, it can cause trauma for the [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>I will be never too tired of keep reading this great article!</p>
<p>Question:&nbsp;&nbsp;Do you write perfect code the first time?</p>
<div>
<p>If you answered &ldquo;Yes&rdquo;, you&rsquo;re a liar and a cheat. You fail. Take the test again.</p>
<p>New code is buggy. It takes a while to get it working respectably. In the meantime, it can cause trauma for the other developers on the team.</p>
<p>Now, here&rsquo;s how Subversion works:</p>
<ul>
<li> When you check new code in, everybody else gets it. </li>
</ul>
<p>Since all new code that you write has bugs, you have a choice.</p>
<ul>
<li> You can check in buggy code and drive everyone else crazy, or </li>
<li> You can avoid checking it in until it&rsquo;s fully debugged. </li>
</ul>
<p>Subversion always gives you this horrible dilemma. Either the repository is full of bugs because it includes new code that was just written,&nbsp;or&nbsp;new code that was just written is not in the repository.</p>
<p>As Subversion users, we are so used to this dilemma that it&rsquo;s hard to imagine it not existing.</p>
<p>Subversion team members often go days or weeks without checking anything in. In Subversion teams, newbies are terrified of checking any code in, for fear of breaking the build, or pissing off Mike, the senior developer, or whatever.</p>
</p></div>
<div>Start from here and read, read, read!!!&nbsp;<a href="http://hginit.com/00.html">http://hginit.com/00.html</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/07/09/subversion-re-education/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outlook’s broken… someone fixed!</title>
		<link>http://www.joemaffia.net/blog/2010/07/08/outlooks-broken-someone-fixed/</link>
		<comments>http://www.joemaffia.net/blog/2010/07/08/outlooks-broken-someone-fixed/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 09:32:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/blog/2010/08/28/outlooks-broken-someone-fixed/</guid>
		<description><![CDATA[Thanks God &#38; Brian Thies, finally a solution to the most annoying thing ever (if one day you&#8217;ll have to create email template and make it work in the bloody Outloouk 2007).

http://www.campaignmonitor.com/forums/viewtopic.php?pid=14197

They manage to fix the stupid issue of Outlook 2007/2010 not been able to display background-image!!!


Replace your &#60;html&#62; tag with:


Code:



&#60;html xmlns:v=&#34;urn:schemas-microsoft-com:vml&#34;&#62;





Add this style in [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>Thanks God &amp; Brian Thies, finally a solution to the most annoying thing ever (if one day you&#8217;ll have to create email template and make it work in the bloody Outloouk 2007).
<p />
<div><a href="http://www.campaignmonitor.com/forums/viewtopic.php?pid=14197">http://www.campaignmonitor.com/forums/viewtopic.php?pid=14197</a></div>
<p />
<div>They manage to fix the stupid issue of Outlook 2007/2010 not been able to display background-image!!!</div>
<p />
<div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif; color: rgb(99, 107, 117); font-size: 13px; line-height: 18px;">Replace your &lt;html&gt; tag with:</p>
<div class="codebox" style="font-family: Arial, sans-serif; color: rgb(99, 107, 117); font-size: 13px; line-height: 18px;">
<div class="incqbox">
<h5 style="">Code:</h5>
<div class="scrollbox" style="background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(213, 233, 250); border-right-color: rgb(213, 233, 250); border-bottom-color: rgb(213, 233, 250); border-left-color: rgb(213, 233, 250); margin-bottom: 18px; padding-top: 0px; padding-right: 10px; padding-bottom: 0px; padding-left: 10px; height: 4.5em;">
<div class="CodeRay">
<div class="code">
<pre>&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot;&gt;</pre>
</div></div>
</p></div>
</div>
</div>
<div><span style="font-family: Arial, sans-serif; color: rgb(99, 107, 117); font-size: 13px; line-height: 18px;" />
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">Add this style in the head:</p>
<div class="codebox">
<div class="incqbox">
<h5 style="">Code:</h5>
<div class="scrollbox" style="background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(213, 233, 250); border-right-color: rgb(213, 233, 250); border-bottom-color: rgb(213, 233, 250); border-left-color: rgb(213, 233, 250); margin-bottom: 18px; padding-top: 0px; padding-right: 10px; padding-bottom: 0px; padding-left: 10px; height: 4.5em;">
<div class="CodeRay">
<div class="code">
<pre>v\:* { behavior: url(#default#VML); display:inline-block; }</pre>
</div></div>
</p></div>
</div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">Add this code within the &lt;td&gt; you want the background image to display in, and modify according to the size of the image as well as the source:</p>
<div class="codebox">
<div class="incqbox">
<h5 style="">Code:</h5>
<div class="scrollbox" style="background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(213, 233, 250); border-right-color: rgb(213, 233, 250); border-bottom-color: rgb(213, 233, 250); border-left-color: rgb(213, 233, 250); margin-bottom: 18px; padding-top: 0px; padding-right: 10px; padding-bottom: 0px; padding-left: 10px; height: 7.5em;">
<div class="CodeRay">
<div class="code">
<pre>&lt;!--[if gte vml 1]&gt; &lt;v:image style='width:600px;height:402px;position:absolute;top:0;left:0;border:0;z-index:-1;' src=&quot;http://www.yourlocationhere.com/image.gif&quot; /&gt; &lt;![endif]--&gt;</pre>
</div></div>
</p></div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/07/08/outlooks-broken-someone-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Omniture Summit EMEA 2010</title>
		<link>http://www.joemaffia.net/blog/2010/05/22/the-omniture-summit-emea-2010/</link>
		<comments>http://www.joemaffia.net/blog/2010/05/22/the-omniture-summit-emea-2010/#comments</comments>
		<pubDate>Sat, 22 May 2010 07:00:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Education & Training]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[emea]]></category>
		<category><![CDATA[omniture]]></category>

		<guid isPermaLink="false">http://www.joemaffia.net/?p=2243</guid>
		<description><![CDATA[With the explosion in social, video and mobile content, and the continuing shift of ad revenue online, today&#8217;s marketers are faced with their greatest challenge: proving that digital content is the most effective way to engage and acquire customers.
At Omniture Summit EMEA 2010, you can learn how Omniture, An Adobe company, will enable you to [...]]]></description>
			<content:encoded><![CDATA[<p>With the explosion in social, video and mobile content, and the continuing shift of ad revenue online, today&#8217;s marketers are faced with their greatest challenge: proving that digital content is the most effective way to engage and acquire customers.</p>
<p>At Omniture Summit EMEA 2010, you can learn how Omniture, An Adobe company, will enable you to create, measure and optimise digital experiences to revolutionize how the world engages with ideas and information in the coming decade.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joemaffia.net/blog/2010/05/22/the-omniture-summit-emea-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 3.125 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-03 05:32:04 -->
