<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Arc90 Blog</title>
	
	<link>http://blog.arc90.com</link>
	<description>Web Application Design &amp; Development</description>
	<lastBuildDate>Fri, 30 Oct 2009 14:43:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/arc90quickTips" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>A Dialog on Processes &amp; Threads</title>
		<link>http://blog.arc90.com/2009/10/26/a-dialog-on-processes-threads/</link>
		<comments>http://blog.arc90.com/2009/10/26/a-dialog-on-processes-threads/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:45:41 +0000</pubDate>
		<dc:creator>Avi Flax</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[threads]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://blog.arc90.com/?p=385</guid>
		<description><![CDATA[I learned a lot from Ryan Tomayko's recent essay "I like Unicorn because it's Unix", and after I read it I had some questions rolling around my head which I couldn't quiet. So I wrote him an email. He was kind enough to respond quickly and at length, illuminating a subject I'd been fuzzy on for years. In fact, I thought his responses were edifying to the degree that they should be published. So after securing his permission, I'm reproducing our dialog here.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a fan of <a href="http://tomayko.com/">Ryan Tomayko</a> ever since I stumbled across his <a href="http://tomayko.com/writings/rest-to-my-wife">How I Explained REST to My Wife</a> in 2005. (That piece was so good that I actually performed it live during a company lunch in early 2006, with the inimitable <a href="http://arc90.com/people/kamni-khan/">Kamni Khan</a>.) He&#8217;s had a special place in my feed reader since before the Avi Flax release of <a href="http://en.wikipedia.org/wiki/FeedLounge">FeedLounge</a> (yes, that actually happened). So as soon as his most recent essay, <a href="http://tomayko.com/writings/unicorn-is-unix">I like Unicorn because it&#8217;s Unix</a>, appeared in <a href="http://en.wikipedia.org/wiki/Google_Reader">my current feed reader</a>, as usual I read it immediately, and as usual I learned something.</p>
<p>The essay&#8217;s main points are that core Unix concepts such as <code>fork()</code>, <code>accept()</code>, <code>select()</code>, and Unix sockets had lamentably been ignored or neglected by proponents of Ruby and Python; that <a href="http://unicorn.bogomips.org/">Unicorn</a> is <q cite="http://tomayko.com/writings/unicorn-is-unix">undoubtedly one of the best, most densely packed examples of Unix programming in Ruby I&#8217;ve come across</q>; and that Ruby (and Python) developers should learn more about these paradigms, and consider using them where appropriate.</p>
<p>While I learned much from the essay, and enjoyed reading it and following the &#8220;* is Unix&#8221; meme it sparked, after I read it I had some questions rolling around my head which I couldn&#8217;t quiet. So, since comments are currently disabled on Ryan&#8217;s site, I wrote him an email. He was kind enough to respond quickly and at length, illuminating a subject I&#8217;d been fuzzy on for years. In fact, I thought his responses were edifying to the degree that they should be published. So after securing his permission, I&#8217;m reproducing our dialog here.</p>
<p><span id="more-385"></span>
<p>If you haven&#8217;t read it yet, I suggest reading <a href="http://tomayko.com/writings/unicorn-is-unix">I like Unicorn because it&#8217;s Unix</a> before proceeding.</p>
<p>I wrote Ryan:</p>
<blockquote><p>Hi Ryan, thanks for your recent piece on Unicorn and Unix. Enjoyed it, and learned… well, I learned that there&#8217;s even more important stuff I don&#8217;t know. (It&#8217;s funny sometimes being a software developer/architect and not having a CS background.)</p>
<p>Anyway, you definitely got me interested in learning more about the Unix programming and concurrency models, thank you for that.</p>
<p>One thing that has me a little confused: I got the impression that a lot of the difference between the Unix and Java/Windows approaches boils down to processes versus threads. Is that right? Is it an oversimplification?</p>
<p>(The process vs. threads thing seems related to the discussions going on about how to write concurrent programs; specifically the debates about shared data vs. message passing. Isn&#8217;t IPC essentially message passing?)</p>
<p>If that&#8217;s right, then what about Apache? Wasn&#8217;t the point of 2.x that it moved to a thread-based model over the process-based model of 1.x? And if so, then… what&#8217;s up with that? I&#8217;d think there were a ton of very smart, very unixy people involved in that effort; they must have had some good reasons for the switch, right? Or, more likely, I&#8217;m missing something.</p>
<p>Thanks!<br />
Avi
</p></blockquote>
<style>
	.nonem {
		font-style: normal;
	}
</style>
<p>And he responded, that night:</p>
<blockquote>
<p class="nonem">On Wed, Oct 7, 2009 at 7:44 AM, Avi Flax <avif@arc90.com> wrote:</p>
<p class="nonem">&gt; Hi Ryan, thanks for your recent piece on Unicorn and Unix. Enjoyed it, and  learned… well, I learned that there&#8217;s even more important stuff I don&#8217;t  know. (It&#8217;s funny sometimes being a software developer/architect and not  having a CS background.)</p>
<p>Tell me about it. I don&#8217;t have a high school diploma :)</p>
<p class="nonem">&gt; Anyway, you definitely got me interested in learning more about the Unix  programming and concurrency models, thank you for that.  One thing that has me a little confused: I got the impression that a lot of  the difference between the Unix and Java/Windows approaches boils down to  processes versus threads. Is that right? Is it an oversimplification?</p>
<p>I think that&#8217;s about right. There&#8217;s a lot of other important differences but, now that I think about it, they all seem to stem from the basic model of concurrency. Java/Windows people pretty much have to use threads because their processes are handicapped. Unix has good processes, so Unix people can use either processes or threads.</p>
<p>Now, the Unicorn piece was talking specifically about threads in Ruby. Native threads are a lot more powerful than Ruby threads. I always choose processes over threads (even native threads) when I can get away with it, but native threads are useful, whereas Ruby threads really aren&#8217;t.</p>
<p class="nonem">&gt; (The process vs. threads thing seems related to the discussions going on  about how to write concurrent programs; specifically the debates about  shared data vs. message passing. Isn&#8217;t IPC essentially message passing?)</p>
<p>That&#8217;s precisely what it is. &#8220;Message passing&#8221; usually implies a specific kind of object encoding and message dispatch, though, whereas IPC is a bit more general. You have to build up messages and dispatch on top of simple binary streams between processes, which is what most message passing systems do but IPC usually implies you build that part yourself.</p>
<p>It&#8217;s good to think of Unix IPC as message passing, conceptually.</p>
<p class="nonem">&gt; If that&#8217;s right, then what about Apache? Wasn&#8217;t the point of 2.x that it  moved to a thread-based model over the process-based model of 1.x? And if  so, then… what&#8217;s up with that? I&#8217;d think there were a ton of very smart,  very unixy people involved in that effort; they must have had some good  reasons for the switch, right? Or, more likely, I&#8217;m missing something.</p>
<p>Process-per-connection &#8212; the model used by unicorn and the echo server example and apache&#8217;s preforking mpm (I think) &#8212; falls down at a certain level of high concurrency. There&#8217;s too much overhead in processes to solve C10K (http://www.kegel.com/c10k.html) problems. At that point, you basically have to use native threads or async/events. This doesn&#8217;t mean process-per-connection isn&#8217;t the right solution for a wide range of problems. Further, the basic technique of forking and sharing a socket between processes underlies async/event solutions &#8212; it&#8217;s just that each process can handle more than one connection in parallel (without threads). High concurrency servers that use fork(2), a shared socket, and async IO include nginx, memcached, lighttpd, and HAProxy. High concurrency servers that use threads include Apache, Varnish, and Squid. All are stable and production proven.</p>
<p>Here&#8217;s what I&#8217;m personally trying to forward in all of this: people confuse the idea that threads can always be applied with the idea that threads are always *right*. Just because a general solution exists (threads) doesn&#8217;t mean a more specific technique that uses processes isn&#8217;t the better solution. I really like process-per-connection where I can get away with it (and Unicorn is a perfect example of where you can get away with it) because it&#8217;s so amazingly simple; much simpler than threaded code and definitely much simpler than async/events. I like processes + async IO for highly concurrent systems because you just can&#8217;t beat it performance-wise and I personally enjoy working with event-based code. But threads? I can&#8217;t think of a problem I like solving with them, even though they can be used to solve a wide range of them.</p>
<p>Thanks,<br/><br />
Ryan</p>
</blockquote>
<p>As you can see, Ryan was extremely generous with his time in responding to my email. Thanks Ryan! I learned a lot from this exchange, and I really appreciate it. Congratulations on <a href="http://github.com/blog/529-ryan-tomayko-is-a-githubber">your new position at GitHub</a>, it&#8217;s clearly a perfect match.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/10/26/a-dialog-on-processes-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who Is Arc90?</title>
		<link>http://blog.arc90.com/2009/10/14/who-is-arc90/</link>
		<comments>http://blog.arc90.com/2009/10/14/who-is-arc90/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:41:44 +0000</pubDate>
		<dc:creator>Tim Meaney</dc:creator>
				<category><![CDATA[Arc90]]></category>

		<guid isPermaLink="false">http://blog.arc90.com/?p=360</guid>
		<description><![CDATA[Through our five-year existence as a company, we've done a great job at making noise, particularly by way of the tools we've released through our Lab. Readability, TBUZZ, Arc90's PHP Twitter API Client, and JSON Lint are fairly well-known. Most people who have heard of Arc90 likely know us because of these tools. So is Arc90 some sort of R&#038;D shop that builds and then gives away interesting productivity tools?]]></description>
			<content:encoded><![CDATA[<p>Through our five-year existence as a company, we&#8217;ve done a great job at making noise, particularly by way of the tools we&#8217;ve released through our <a href="http://lab.arc90.com/">Lab</a>. <a href="http://lab.arc90.com/experiments/readability/">Readability</a>, <a href="http://tbuzz.arc90.com/">TBUZZ</a>, Arc90&#8217;s <a href="http://lab.arc90.com/2008/06/03/php-twitter-api-client/">PHP Twitter API Client,</a> and <a href="http://www.jsonlint.com/">JSON Lint</a> are fairly well-known. Most people who have heard of Arc90 likely know us because of these tools. So is Arc90 some sort of R&amp;D shop that builds and then gives away interesting productivity tools?</p>
<p>You&#8217;d never know it based on our [now previous] website, but Arc90 has a long history of consulting success. Companies we&#8217;re currently working with or have worked with in the past include Insight, Knovel, McGraw-Hill, GradeGuru, AppFirst, The New York Times, and Wolters Kluwer, among others. So is Arc90 a consulting firm, focusing on strategic consulting, design, and Web development?</p>
<p>And then there&#8217;s <a href="http://www.kindlingapp.com">Kindling</a>, our idea collaboration tool and our first product to market. Kindling is currently being used by organizations large and small: The US Department of Veterans Affairs, LeapFrog, Medtronic, AOL, Symantec, and many more. As far as these customers of Arc90 are concerned, we are a product company responsible for supporting Kindling. So is the future of Arc90 product development &#8211; is Arc90 a product company?</p>
<p>Yes. Yes. And yes.</p>
<p>Arc90 is all of the things described above &#8211; an R&amp;D shop, a strategic consulting firm, a Web design/ development company, and a product company.</p>
<p>Five years ago, the company was born out of rejection &#8211; a rejection of the hostage situation that is often corporate IT, a rejection of the business model of the turn-of-the-century Web company, and a rejection of development-lead software efforts. The company attracts individuals passionate about technology and the Web, those that don&#8217;t fit the mold of the 9-5 corporate culture, and those that love what they do and don&#8217;t view work as <em>work</em>.</p>
<p>The business has grown steadily over five years, adding clients slowly but consistently, mostly through the <a href="http://blog.arc90.com/2009/09/17/growth-through-scattering/">scattering model</a>. During this period, we viewed our Web presence as sort of a placeholder; it said nothing about the company and wouldn&#8217;t educate the uninformed about our services. A visit to Arc90.com over the last five years left the visitor confused, at best. The site created a fun mystique around the company, but as time went on, we&#8217;ve become more visible and this became a problem. It was time to introduce the world to Arc90.</p>
<p>So I&#8217;m very happy to announce the <a href="http://www.arc90.com">relaunch of Arc90.com</a>. Throughout the stages of building the new site, through concept, design, and production, we&#8217;ve tried to focus on one specific use-case: a visitor trying to answer the elusive question&#8230;<em>Who is Arc90?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/10/14/who-is-arc90/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Picture Day</title>
		<link>http://blog.arc90.com/2009/09/23/picture-day/</link>
		<comments>http://blog.arc90.com/2009/09/23/picture-day/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 19:08:46 +0000</pubDate>
		<dc:creator>Kamni Khan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/09/23/picture-day/</guid>
		<description><![CDATA[<p>At Arc90, we're passionate about our work--but we also know how to have a little fun.</p><p>This was evident when an e-mail about a company picture day turned into an inter-office Photoshop session.&#160; When everyone was informed that they would be photographed for a redesigned Arc90 site, it brought back memories of elementary school, picture days, and, of course, laser backgrounds.</p>]]></description>
			<content:encoded><![CDATA[<p>At Arc90, we&#8217;re passionate about our work&#8211;but we also know how to have a little fun.</p>
<p>This was evident when an e-mail about a company picture day turned into an inter-office Photoshop session.&nbsp; When everyone was informed that they would be photographed for a redesigned Arc90 site, it brought back memories of elementary school, picture days, and, of course, laser backgrounds.</p>
<p>Check back here for a new and improved Arc90.com (including a &#8220;Meet the Team&#8221; page) within the next several weeks. Until then, enjoy the remastered photos of <a href="http://www.flickr.com/photos/arc90/3944572839/">Rama Poola</a>, <a href="http://www.flickr.com/photos/arc90/3945355424/">Chris Dary</a>, <a href="http://www.flickr.com/photos/arc90/3944572757/">Rich Ziade </a>and <a href="http://www.flickr.com/photos/arc90/3945353540/">Tim Meaney</a>.</p>
<p><a href="http://www.flickr.com/photos/arc90/3948052973/">Tyler Gaw</a> worked on the photos of Rama, Chris and Rich; Chris edited the photo of Tim.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/09/23/picture-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Growth Through Scattering</title>
		<link>http://blog.arc90.com/2009/09/17/growth-through-scattering/</link>
		<comments>http://blog.arc90.com/2009/09/17/growth-through-scattering/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 03:04:27 +0000</pubDate>
		<dc:creator>Tim Meaney</dc:creator>
				<category><![CDATA[Arc90]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/09/17/growth-through-scattering/</guid>
		<description><![CDATA[<p>We've been doing a lot of thinking and talking about marketing Arc90's products and services these days. This has put into focus how we've been using our Blog, Lab, Twitter, our web presence (coming soon, a total relaunch!), as well as more ambitious things like <a href="http://blog.arc90.com/2009/08/help_wanted_business_developme.php">hiring a Biz Dev person</a> and dipping our toes into public relations. As a part of this process, there's been some soul-searching about where we want this business to go and plenty of introspection about what's gotten us here: things that have worked and things that haven't.</p>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been doing a lot of thinking and talking about marketing Arc90&#8217;s products and services these days. This has put into focus how we&#8217;ve been using our Blog, Lab, Twitter, our web presence (coming soon, a total relaunch!), as well as more ambitious things like <a href="http://blog.arc90.com/2009/08/help_wanted_business_developme.php">hiring a Biz Dev person</a> and dipping our toes into public relations. As a part of this process, there&#8217;s been some soul-searching about where we want this business to go and plenty of introspection about what&#8217;s gotten us here: things that have worked and things that haven&#8217;t.</p>
<p><img src="http://farm1.static.flickr.com/88/229071550_be78aeea0e.jpg" alt="http://www.flickr.com/photos/pensiero/229071550/" border="0" width="240" height="180" align="right" />To date, our consulting business has grown almost entirely by way of word of mouth. This is a logical and expected outcome for a company that&#8217;s done no overt marketing, but it is interesting to see that people who have worked with us in the past tend to work with us again and again. Among that group of people, one consistent theme does emerge: someone works with us, leaves their company and brings us along with them to their new gig. Call it the <em>scattering model</em> of growth. This seems pretty logical for the services business, if people see you as effective in terms of product strategy, design and implementation, they&#8217;ll likely join another company with similar needs and will seek partners that have proven their worth. Often, selection of a strategic consulting partner is a very personal decision, and thinking back to the good work that people have done for you is a much stronger connection than an ad in a magazine or the like. In this sense, Arc90 is much like a <a href="http://en.wikipedia.org/wiki/Meme">meme</a>, as my coworker <a href="http://aviflax.com/">Avi</a> pointed out. Through experience working with us, people get acquainted with the idea of Arc &#8211; design-driven development, being passionate about the Web, etc &#8211; and carry that forward with them.</p>
<p>So that&#8217;s the consulting business, where it&#8217;s not uncommon for growth to occur based on pleasing some people at a client where some subset of this group will eventually leave and take your firm with them to their new company. But does this scattering model work for growing a product? I&#8217;m convinced that this is a huge potential strength for our idea management and innovation application, <a href="http://www.kindlingapp.com/">Kindling</a>, one that will pay dividends for years to come. Employees working at companies using Kindling is a constantly growing list. Some percentage of those employees, we like to think a pretty high one, will really connect with the product and see the value it creates. Some subset of those people will change jobs in the next year or two, and some subset of those people will pull Kindling along with them into their new company. That group may very well turn out to be our best salespeople. </p>
<p>In thinking about the scattering effect on Arc&#8217;s business, I was reminded of an <a href="http://www.wired.com/techbiz/startups/magazine/17-08/st_essay">article from a recent issue of Wired</a>, where the economic value-creation of turnover was discussed. Paul Boutin wrote:</p>
<blockquote><p>&#8220;Job-hopping, rather than climbing the career ladder within a corporation, facilitates flows of information and know-how between individuals, firms, and industries. When combined with venture capital, it supports unanticipated recombinations of technologies and skill.&#8221; In other words, we have Twitter today because a bunch of engineers who were trained at other companies quit their jobs and brought their expertise to Evan Williams&#8217; side project. It&#8217;s like biology: In an ecosystem where microbes are promiscuously swapping genes and traits, evolution speeds up.</p></blockquote>
<p>That&#8217;s exactly the right metaphor &#8211; individuals leaving their companies and bringing with them the best parts of their previous role, while leaving behind the frictional parts, is much like the selection process of evolution.</p>
<p>Recently a few people have left Arc after a long time of nearly no turnover. While I&#8217;m not happy about it &#8211; the people that left are very talented and took a bunch of knowledge out the door with them &#8211; I&#8217;m an optimist, so I&#8217;ll view it as a sign that the job market is loosening-up. An improving job market means more scattering, and more scattering is good for us all.</p>
<p>Note: thanks to flickr user <a href="http://www.flickr.com/photos/pensiero/229071550/">Pensiero</a> for the image.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/09/17/growth-through-scattering/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Revenge Of Editorials (SXSW Panel Suggestion)</title>
		<link>http://blog.arc90.com/2009/08/25/the-revenge-of-editorials-sxsw-panel-suggestion/</link>
		<comments>http://blog.arc90.com/2009/08/25/the-revenge-of-editorials-sxsw-panel-suggestion/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:29:18 +0000</pubDate>
		<dc:creator>Rich Ziade</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[sxsw arc90 events]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/08/25/the-revenge-of-editorials-sxsw-panel-suggestion/</guid>
		<description><![CDATA[<p>Amidst the constantly swelling sea of content that is the Internet lies commentary on, well, the "constantly swelling sea of content." Plenty has been written about all the "stuff" swirling around us on the Web.</p>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s fairly safe to say that the Web today feels pretty close to Huxley&#8217;s vision. The half-life of everything on the Web is so short, and the stream is so constant that we&#8217;ve become conditioned to quickly consuming, savoring for a fleeting moment and then quickly moving on to the next thing to snack on.</p>
<p>A few weeks ago, I <a href="http://www.basement.org/2009/07/what_i_need.html">blogged about</a> the dreaded 1000+ unread items staring me down on Google reader. It&#8217;s a deflating feeling to constantly be confronted with so much stuff that I&#8217;m failing to catch up to. In reality, I don&#8217;t want all this stuff. I just want <em>the good stuff. </em>Of course, technologists react by trying to develop a vaccine that is part smart algorithm (see <a href="http://www.techmeme.com">Techmeme</a>) and/or part social tagging/voting/whatever (Digg and Delicious). </p>
<p>In other words, we want an electronic version of an editorial staff. Well, maybe what we really need is help from.hold onto your hats.other human beings. Maybe we need a way to establish a circle (or circles) of trusted people &#8211; friends, colleagues, higher-profile people we know that consistently suggest interesting things &#8211; and give them a way to help us cherry-pick the stuff worth focusing on. </p>
<p>The above is the premise behind our proposed panel for next year&#8217;s SXSW Interactive. It&#8217;s called <a href="http://panelpicker.sxsw.com/ideas/view/3967#comment-new">The Revenge of Editorials</a>. If you think it&#8217;s worthwhile, you can help make it a reality by voting it up (speaking of information overload, there are over 2,200 panel suggestions for SXSW).</p>
<p>Speaking of humans (and their inherent value), Behavior Design&#8217;s Chris Fahey has another interesting panel called <a href="http://panelpicker.sxsw.com/ideas/view/4288">The Human Interface (or: Products are People, Too!)</a>. It&#8217;s another panel I&#8217;d love to see become a reality. The brief pitch:</p>
<blockquote><p>More and more, users are interacting with web sites and software on a conversational, physical, psychological, and emotional level &#8212; just like we&#8217;ve always interacted with other people. UX designers, then, must stop thinking about interfaces as dumb control panels and begin using technology to envision interfaces (literally!) as human beings.</p></blockquote>
<p>Go humans!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/08/25/the-revenge-of-editorials-sxsw-panel-suggestion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Help Wanted : Business Development &amp; Sales Lead</title>
		<link>http://blog.arc90.com/2009/08/20/help-wanted-business-development-sales-lead/</link>
		<comments>http://blog.arc90.com/2009/08/20/help-wanted-business-development-sales-lead/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 20:22:21 +0000</pubDate>
		<dc:creator>Rich Ziade</dc:creator>
				<category><![CDATA[Arc90]]></category>
		<category><![CDATA[jobs arc90]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/08/20/help-wanted-business-development-sales-lead/</guid>
		<description><![CDATA[<p>We're looking for someone to help identify new business opportunities for Arc90's consulting business and for <a href="http://www.kindlingapp.com/">Kindling</a>, our Web application that helps companies innovate. You would help us tap new markets, study and target existing markets and form new partnerships. This person should think creatively about how Arc90 and Kindling should best be positioned, which market segments we should focus on and which potential relationships we should seek out.</p>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re looking for someone to help identify new business opportunities for Arc90&#8217;s consulting business and for <a href="http://www.kindlingapp.com/">Kindling</a>, our Web application that helps companies innovate. You would help us tap new markets, study and target existing markets and form new partnerships. This person should think creatively about how Arc90 and Kindling should best be positioned, which market segments we should focus on and which potential relationships we should seek out.</p>
<p><a href="http://blog.arc90.com/images/blogImages/5HourEnergy.jpg"><img style="border-bottom: 0px;border-left: 0px;margin: 0px 10px 5px 0px;border-top: 0px;border-right: 0px" border="0" alt="5-Hour-Energy" align="left" src="http://blog.arc90.com/images/blogImages/5HourEnergy_thumb.jpg" width="71" height="128" /></a> From a sales perspective, we&#8217;re looking for someone that helps both generate new leads through various means and capable of following up and walking prospective clients and customers through the decision-making process. Ideally, this person has experience with helping build partnerships and target customers for Web-based applications and Web consulting services. It&#8217;s important that you understand the viral, social and marketing facets of the Web. We also expect you to help us refine and hone our roadmap and marketing message for both ourselves and our products.</p>
<p>Broadly speaking, we&#8217;re looking for someone that is passionate, outgoing, energetic, proactive and willing to wear various hats to help us succeed. If you think you&#8217;re the right fit for the job and are interested at working with one of the coolest design and technology shops in New York City, don&#8217;t hesitate to <a href="mailto:contact@arc90.com">get in touch with us</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/08/20/help-wanted-business-development-sales-lead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use a DVCS to Track Anything Instantly</title>
		<link>http://blog.arc90.com/2009/08/16/use-a-dvcs-to-track-anything-instantly/</link>
		<comments>http://blog.arc90.com/2009/08/16/use-a-dvcs-to-track-anything-instantly/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 15:10:24 +0000</pubDate>
		<dc:creator>Avi Flax</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/08/16/use-a-dvcs-to-track-anything-instantly/</guid>
		<description><![CDATA[<p>I recently stumbled across the essay <a href="http://plasmasturm.org/log/523/">In brief praise of  <abbr title="Distributed Version Control System">DVCSs</abbr></a> by <a href="http://plasmasturm.org/about/">Aristotle Pagaltzis</a>, and it was a revelation for me. I'd been wanting to try a <abbr title="Distributed Version Control System">DVCS</abbr> for a while, but hadn't really gotten around to it — the perceived benefit hadn't justified the perceived effort. But when Aristotle pointed out that "Subversion makes the mental overhead of creating a repository very much greater than any DVCS," something clicked.</p>]]></description>
			<content:encoded><![CDATA[<p>I recently stumbled across the essay <a href="http://plasmasturm.org/log/523/">In brief praise of  <abbr title="Distributed Version Control System">DVCSs</abbr></a> by <a href="http://plasmasturm.org/about/">Aristotle Pagaltzis</a>, and it was a revelation for me. I&#8217;d been wanting to try a <abbr title="Distributed Version Control System">DVCS</abbr> for a while, but hadn&#8217;t really gotten around to it — the perceived benefit hadn&#8217;t justified the perceived effort. But when Aristotle pointed out that <q cite="http://plasmasturm.org/log/523/"><em>Subversion makes the mental overhead of creating a repository very much greater than any <abbr title="Distributed Version Control System">DVCS</abbr>,</em></q> something clicked. I saw an immediate benefit I&#8217;d gain from even simplistic usage of a DVCS, and so I immediately gave it a try.
<p>I had a text file that I wanted to explicitly track versions of — I use Time Machine for incremental backup, which is great, but doesn&#8217;t always give me precise enough control of the snapshots, and I don&#8217;t always have the snapshots available. Once I read Aristotle&#8217;s essay, it only took me a few minutes to download and install <a href="http://mercurial.selenic.com/">Mercurial</a>, and then I started tracking my file with three simple commands: <code>hg init; hg add *; hg commit -m "initial"</code>. Quick, easy, and effective. From that point on, my folder was also a repository, and I could track specific revisions of my files by simply typing <code>hg commit -m "update"</code> at any point.</p>
<p>What I think is the killer realization here is that <em>it is now super easy to make any folder into a repository, and instantly start tracking versions of its contents.</em> I&#8217;ve used Subversion to make local repositories, and track local files in the past — and it really is many more steps, and much more work. It&#8217;s also messier, because the repository and the working copy must be separate entities — you have to think about where the repository should live, as opposed to the actual stuff, the working copy. With a DVSC, no such dichotomy exists. The repository and the actual stuff are one and the same. You can move them, zip them, email them — as long as the metadata directory is preserved (for example, <code>.hg</code> or <code>.git</code>), the folder remains a repository.</p>
<p>I&#8217;m thankful to Aristotle for helping me get past the initial barrier to entry, and start actually using a DVCS. I&#8217;m looking forward to learning more about them, and using them even more going forward.</p>
<p>(Bonus tip: on OS X, some applications save their data using a special type of file called a &#8220;package&#8221;, which is actually a directory with a special flag. One example is <a href="http://www.omnigroup.com/applications/omnigraffle/">OmniGraffle</a>, which I use frequently. Because these &#8220;files&#8221; are actually directories, they can be easily made into self-versioning files with their own self-contained repositories. Just navigate to the directory and run the commands above! From that point on, the file will be a repository and can track its own versions. Pretty useful!)</p>
<p>(I can&#8217;t explain exactly why I decided to try Mercurial first, before <a href="http://git-scm.com/">Git</a> or <a href="http://bazaar-vcs.org/">Bazaar</a>. I&#8217;ve read many comparisons of them, and something about those comparisons just made me want to try it. I&#8217;m not sure exactly how, but I had built up the impression that Mercurial was somehow simpler, cleaner, more elegant, and more approachable than Git or Bazaar. I don&#8217;t know if that&#8217;s actually true, but the impression was enough that that&#8217;s where I started.)</p>
<p>(Aristotle&#8217;s mention of &#8220;mental overhead&#8221; as a decisive factor in using one system over another is something <a href="http://aviflax.com/post/phrase-ive-been-using-frequen/">I&#8217;ve been thinking about lately as well</a>, although I&#8217;ve used the more unwieldy &#8220;cognitive overhead.&#8221;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/08/16/use-a-dvcs-to-track-anything-instantly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile Development, Nimble Design</title>
		<link>http://blog.arc90.com/2009/08/14/agile-development-nimble-design/</link>
		<comments>http://blog.arc90.com/2009/08/14/agile-development-nimble-design/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 18:53:17 +0000</pubDate>
		<dc:creator>Rich Ziade</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[design development arc90]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/08/14/agile-development-nimble-design/</guid>
		<description><![CDATA[<p>A few days ago, Joi Ito <a href="http://joi.ito.com/weblog/2009/08/11/agile-developme.html">blogged about</a> agile design and development:</p>  <blockquote>   <p>The problem is, in the real world, things change and by the time you're done, you're often pretty far off the mark and usually the first version isn't right anyway - so you end up making something 2 years late and a hundred features off target... </p> </blockquote>]]></description>
			<content:encoded><![CDATA[<p>A few days ago, Joi Ito <a href="http://joi.ito.com/weblog/2009/08/11/agile-developme.html">blogged about</a> agile design and development:</p>
<blockquote><p>The problem is, in the real world, things change and by the time you&#8217;re done, you&#8217;re often pretty far off the mark and usually the first version isn&#8217;t right anyway &#8211; so you end up making something 2 years late and a hundred features off target. With agile development, you test, evolve and stay in tune with your users and let them guide you. You can also test and refactor more easily because each &quot;story&quot; or feature is smaller, tested and easy to isolate and remove/change. (Or should be.)</p>
</blockquote>
<p><span id="more-256"></span></p>
<p><a href="http://blog.arc90.com/images/blogImages/sketchbook.jpg"><img style="border-bottom: 0px;border-left: 0px;margin: 0px 15px 0px 0px;border-top: 0px;border-right: 0px" border="0" alt="SONY DSC                     " align="left" src="http://blog.arc90.com/images/blogImages/sketchbook_thumb.jpg" width="202" height="194" /></a>One of the principles we try to evangelize at Arc90 is the need to iterate, iterate and iterate some more. Implicit in the quote above is a not-so-subtle confession: it&#8217;s hard to get it right the first time around. I&#8217;ve often heard usability experts humbly concede that good product design &#8220;gets it 30-40% right the first time around.&#8221; That&#8217;s in the case of <em>good </em>design. How do you get to 70%? You keep questioning, refining and tweaking until you hit just the right notes.</p>
<p>To do this, you have to be equipped for it. And by &#8220;equipped&#8221; it isn&#8217;t only about adopting a particular development methodology. It&#8217;s about rebooting your culture, your value system and your tolerance for getting things wrong and accepting risk. It isn&#8217;t easy for organizations, especially more established ones, to make that shift.</p>
<p>Most conversations around agile development focus on the &#8220;development&#8221; part of the discussion. In our experience, we&#8217;ve learned that the agile process really shines in evolving the product itself. In other words, agile development provides the roaming ground for sound, nimble design. By being agile, you&#8217;re conceding that there is no longer a rigid, stepped process, but rather designers and builders working together and refining all along. It can feel messy at times, but the outcome is almost always invariably better. </p>
<p>Even if you don&#8217;t have the luxury of releasing to a broad user population, iterative design brings clarity and direction to even the smallest of teams. Requirements and wireframes are helpful, but nothing beats touching, playing and most importantly validating the real thing. At Arc90, we often call it &#8220;prototyping&#8221; but that term short-changes the process. What&#8217;s really happening is an inching towards a full realization of the real product. It&#8217;s all about the small, seemingly obvious in hindsight discoveries that elevates a design to greatness. To find such discoveries, it requires an open mind and a stomach for failure (albeit little failures). Thomas Edison said it best:</p>
<blockquote><p>I have not failed. I&#8217;ve just found 10,000 ways that won&#8217;t work.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/08/14/agile-development-nimble-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>‘It’s On’ for Social Networking</title>
		<link>http://blog.arc90.com/2009/08/05/its-on-for-social-networking/</link>
		<comments>http://blog.arc90.com/2009/08/05/its-on-for-social-networking/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 20:19:11 +0000</pubDate>
		<dc:creator>Kamni Khan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/08/05/its-on-for-social-networking/</guid>
		<description><![CDATA[<p><img alt="ITS ON WITH ALEXA CHUNG" src="http://blog.arc90.com/ITSONWITHALEXACHUNG_thumb.jpg" /></a>When I logged onto Facebook recently, I noticed that some of my friends were fans of <a href="http://www.mtv.com/ontv/dyn/alexa_chung/series.jhtml">It's On with Alexa Chung</a>, a MTV show hosted by this generation's Kate Moss. Although she isn't a household name in America, Chung is a former U.K. model turned TV presenter and a fashion icon across the pond.</p>]]></description>
			<content:encoded><![CDATA[<p><img alt="ITS ON WITH ALEXA CHUNG" src="http://blog.arc90.com/images/blogImages/ITSONWITHALEXACHUNG_thumb.jpg" class="alignleft" />When I logged onto Facebook recently, I noticed that some of my friends were fans of <a href="http://www.mtv.com/ontv/dyn/alexa_chung/series.jhtml">It&#8217;s On with Alexa Chung</a>, a MTV show hosted by this generation&#8217;s Kate Moss. Although she isn&#8217;t a household name in America, Chung is a former U.K. model turned TV presenter and a fashion icon across the pond. I expected that the Facebook link would redirect to a fan page-a public profile that allows users to share their admiration with the rest of the social networking community.</p>
<p>Instead, I arrived at <a href="http://es-la.facebook.com/itsonalexa">the show&#8217;s Facebook page</a>, which includes updates by the hostess herself. Viewers can also submit questions to celebrity guests, vote on which songs they want bands to play when they appear live, and provide general feedback.</p>
<p><span id="more-255"></span></p>
<p>Although an unofficial celebrity endorsement and an appearance on Oprah hurtled Twitter into the mainstream earlier this year, Ms. Chung&#8217;s show is very different. MTV&#8217;s dual partnership with Facebook and Twitter generates buzz on-screen in various forms, including tweets, content sourced from Facebook profiles and fan pages, audience contribution from polls set to remixed YouTube videos, and round-the-clock updates from Chung&#8217;s own <a href="http://twitter.com/itsonalexa">Twitter account</a>. <i>Alexa Chung</i> is both a milestone in the convergence between TV and the Web and a fresh infusion of innovation for a TV network that should have caught onto the social media craze a lot earlier.</p>
<p>If you wanted to get a message on MTV a decade ago, your best bet was to write it on a poster and join the cheering crowds outside the network&#8217;s New York studio during a <i>TRL</i> taping, in hopes of finding your way into the scope of the cameras sweeping overhead. Lucky viewers could call in for the chance to ask a question to celebrity guests on-air.</p>
<p>MTV canceled <i>TRL</i> earlier this year, after the network&#8217;s reputation as a hub of pop-culture influence had long since started to fade. New music was being discovered on MySpace pages and niche music blogs. Popular clips from last night&#8217;s TV shows were swapped via YouTube and Hulu links in instant messages and posts on Facebook profiles, defeating the long-standing champ. </p>
<p>With <i>Alexa Chung</i>, MTV has made a totally different show. The iconic <i>TRL</i> set has been converted into something that looks like a loft apartment, with the studio audience scattered around like party guests. There is no countdown. Instead, a talk show format inspired in part by late-night programming, with topics ranging from movies and music to the latest YouTube sensations (whom Chung plans to regularly bring onto the set to see if their singing, dancing, or other oddball talents are for real). </p>
<p>And, of course, the screaming crowds in Times Square are all at home. In their place is the silent, yet deafening, sound of tweets.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/08/05/its-on-for-social-networking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Myth Of Outsourcing</title>
		<link>http://blog.arc90.com/2009/07/31/the-myth-of-outsourcing/</link>
		<comments>http://blog.arc90.com/2009/07/31/the-myth-of-outsourcing/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 17:02:30 +0000</pubDate>
		<dc:creator>Rich Ziade</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[arc90 development business technology software]]></category>

		<guid isPermaLink="false">http://blog.daniell.acr90-dev-02/2009/07/31/the-myth-of-outsourcing/</guid>
		<description><![CDATA[<p>The view of how to build software efficiently has changed over the years. The promise of far cheaper labor and a hyper-connected world makes many wonder why anyone would pay what is often viewed as "premium pricing" for "domestic" software development.</p>]]></description>
			<content:encoded><![CDATA[<p>The view of how to build software efficiently has changed over the years. The promise of far cheaper labor and a hyper-connected world makes many wonder why anyone would pay what is often viewed as &#8220;premium pricing&#8221; for &#8220;domestic&#8221; software development.</p>
<p>One of the things that surprises people about Arc90 is that our development team is right here in our offices in New York City, alongside our project leads, designers and strategists. We&#8217;ll often get a &#8220;That&#8217;s interesting&#8221; or &#8220;Oh? That&#8217;s unusual.&#8221; It&#8217;s a response that usually leads into a conversation about the nature of conceiving, designing and ultimately building great software.</p>
<p><span id="more-254"></span></p>
<p><strong>At Arc90, We Feel Your Pain (In Fact, We Need To Feel Your Pain)</strong></p>
<p>The single most important benefit of building and designing near our clients is, well <em>being near our clients</em>. If you want to deliver something great, team proximity is everything. To get it right, we need to not only have a tight feedback loop with you, we want to <em>become </em>you. This means internalizing all the experience and expertise you bring to an engagement. We don&#8217;t just want a &#8220;discovery phase.&#8221; We want to inherit your instincts, fears and innate knowledge of where things need to go and what pitfalls lay ahead. That&#8217;s hard to do across two oceans.</p>
<p>It&#8217;s also hard to compartmentalize that dynamic into any single phase. The challenges and unexpected puzzles crop up throughout. This isn&#8217;t only about unforeseen &#8220;problems&#8221; but the inevitable &#8220;how can we do this better?&#8221; challenges that we can&#8217;t help but ask. It&#8217;s great to have the client nearby to collaborate on elevating something from passable to truly compelling.</p>
<p><strong>The Value Of First, Second and Third Drafts</strong></p>
<p>When any decision you make needs to be shipped 11,000 miles, it better be the right decision. As we form a strategy and design out an attack plan for an effort, we know it&#8217;s going to morph and change and we know there will be missteps along the way. What may feel absolutely sublime in a design comp may fall flat in a prototype. What may shine in a prototype may fizzle out when it&#8217;s wired to real data. </p>
<p>We want to be able to make decisions, test decisions and change course, however slightly, as we go. It&#8217;s nearly impossible to do that if we&#8217;re shipping chunks of an effort in packages halfway across the world. You may well have the most talented group of developers in some far off place, but if they don&#8217;t appreciate the rationale and the overarching context of why things are the way they are, you&#8217;re going to pay a heavy communication tax.</p>
<p><strong>Ready For This? In-sourcing Is <em>Cheaper</em></strong></p>
<p>It is a myth that outsourcing is a cheaper way of building quality software. Software can always be built elsewhere, but the basic premise that the early blueprints are 100% dead-on are a fantasy. Once an effort begins, almost invariably, a rat race ensues and the cumbersome task of project managing across geographically dispersed teams kicks in. The result is a frustrating, oftentimes painful endeavor. We&#8217;ve seen firsthand how an out-of-synch outsourcing effort can spin out of control and destroy morale. It&#8217;s a painful thing to witness.</p>
<p><strong>Great Product 101</strong></p>
<p>Great product hides away all the pain and anguish associated with its inception. It feels organically grown, rather than a visible patchwork of exposed &#8220;systems.&#8221; To build great product &#8211; product that feels intuitive, thoughtful and in tune with the needs of the user &#8211; you need the freedom to iterate and be innovative. The tighter the loop, the more room for refinement. </p>
<p>For some efforts, outsourcing may be the right approach. If you can afford to have your product management team, project leads and designers in the same physical location, it can work. If your product is so elaborately defined or prototyped to extreme detail, it may also work. Few companies have either the time or resources to go to such great lengths. Instead, we trudge forward with the resources and time we&#8217;ve got. </p>
<p>Ultimately, it&#8217;s about bringing product leadership along for the ride. It&#8217;s about pairing up the right people &#8211; the people that care about the outcome and the people that get you there &#8211; all the way through from inception to creation. One of our clients summed up their own struggles with outsourcing: &#8220;They just don&#8217;t get it.&#8221; It wasn&#8217;t meant as a jab towards particular talent pools out there. It&#8217;s meant to illustrate how truly difficult it is to get everyone in sync throughout an effort.</p>
<p>The world truly is a flatter place today. We are more connected than ever. But connectedness alone doesn&#8217;t lay the groundwork for building great product. Until some killer tool comes along that provides a new, more effective way to work together, proximity and tight collaboration between all the players remains the most effective way to build great things.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arc90.com/2009/07/31/the-myth-of-outsourcing/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.412 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-11-08 02:46:38 -->
