<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Accidental Businessman</title>
	
	<link>http://blog.tabini.ca</link>
	<description>Stumbling on since 1997</description>
	<lastBuildDate>Tue, 02 Feb 2010 20:40:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</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" type="application/rss+xml" href="http://feeds.feedburner.com/mtabini" /><feedburner:info uri="mtabini" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>HipHop: What you need to know</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/ftVqSdgeDCs/</link>
		<comments>http://blog.tabini.ca/2010/02/hiphop-what-you-need-to-know/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:54:37 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Zend Engine]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=397</guid>
		<description><![CDATA[HipHop is out—and it has the potential of great impact within the PHP community. Here's how and why.]]></description>
			<content:encoded><![CDATA[<p>By now, unless you&#8217;re living under several hundred metres of rock,  you&#8217;ve probably heard that Facebook has released <a title="HipHop for PHP" href="http://developers.facebook.com/news.php?blog=1&amp;story=358">HipHop for PHP</a>, a tool that compiles PHP into C++ with some interesting claims of speed improvement. The thickness of unawareness-inducing rock may have to be lower to know that php|a and BP have announced our full support for the project with a number of initiatives that we&#8217;re going to roll out over the next few months.</p>
<p>I have known about this project for a little while—Facebook was kind enough to invite me, along with a few other community members, to their office for a demo a few weeks ago. They gave me a copy of HipHop to try out, and I have been playing with it for the last few days.</p>
<h2>What it is</h2>
<p>First, a few random notes on how HipHop works. Haiping has done a great job of providing in-depth coverage in his post on the FB blog, so here are the CliffNotes:</p>
<ul>
<li>HipHop transforms PHP into C++ code, which can then be compiled into a self-contained executable. The tool supports a large percentage of the current PHP 5.2 spec, with some obvious exceptions, like eval().</li>
<li>The tool attempts to find the maximum level of optimization possible for a given scenario using its own static analysis tool. For example, if it detects that all operations on a given variable are homogenous in type (e.g.: they are all integers), then it uses the corresponding C++ data type to provide maximum speed and memory enhancement. Where this is not possible, it implements its own variant type, equivalent to a zval.</li>
<li>HipHop doesn&#8217;t currently have its own PHP runtime—nor is it based on Zend Engine. It compiles everything to C++ and uses its own set of C++ library to provide the necessary support.</li>
<li>Once compiled, HipHop provides its own web server (a CLI interface is also available). It does <em>not</em> use (or require) Apache or any other server. Of course, this doesn&#8217;t preclude you from running one or more HipHop projects against separate ports on the same machine and then use Apache (or Squid, or any other server) to reverse proxy to them.</li>
<li>HipHop doesn&#8217;t currently support Windows (though, personally, I&#8217;d be surprised if that didn&#8217;t eventually change—it just so happens that FB built for the environment they use internally).</li>
<li>The entire tool is intended to be a drop-in replacement for the PHP runtime—as long as you do not use any functionality that it doesn&#8217;t support, you should be able to compile your existing site and run it.</li>
<li>Facebook <em>is</em> using HipHop in production to handle 90% of their traffic.</li>
</ul>
<h2>What it&#8217;s going to do</h2>
<p>HipHop has the potential to be an incredibly disruptive product in the PHP landscape. If your company runs a PHP application that requires more than two servers (you&#8217;ll want two just for redundancy), you have no reason <em>not</em> to explore using HipHop. If Facebook&#8217;s claim of a 50% reduction in CPU usage means you could, potentially, get rid of 1/2 of your PHP machines with a minimum of investment. <em>You don&#8217;t need to be Facebook to draw a huge advantage from this technology. </em>Perhaps this one-to-one reduction is not apt, but even 40% or 30%—much more realistic—is major, and a truckload and a half more than any other existing PHP-related product can offer at this point.</p>
<p>Clearly, this argument can be flipped around: you have every incentive to make sure that your application runs with HipHop—which could give Facebook a unique opportunity to exert significant control over the way PHP evolves.</p>
<p>You might, at this point, think that this is not the first attempt at a PHP compiler—in fact, there are other compilers commercially available. Heck, even I wrote my own experimental compiler several years ago (in fact, I had a discussion about my experience with some of the Facebook team members about this a while back, presumably while they were researching HipHop)—and that ultimately it won&#8217;t make a difference.</p>
<p>But HipHop is neither experimental nor unproven, and it&#8217;s <em>free</em>; it is used, in production, by the second-largest site on the Internet—and make no mistake about it, there is no smoke-in-your-eyes (not to mention other body parts) sleight of hand on Facebook&#8217;s behalf; their site is written in PHP by PHP developers, without the help of large numbers of custom extensions. In fact, their goal is precisely to allow their developers to continue using PHP—which they consider the nimblest web development environment—without compromising their ability to grow at the current pace in a financially responsible way.</p>
<p>If you think about it, that makes a lot of sense from a business perspective: PHP is simple, flexible and easy; with HipHop as a drop-in compiler, FB can achieve an immense immediate benefit with essentially no disruption to their operations. The question now becomes: shouldn&#8217;t everybody else?</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/168f0eaf-9081-42c0-b324-70b826b06263/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=168f0eaf-9081-42c0-b324-70b826b06263" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/ftVqSdgeDCs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2010/02/hiphop-what-you-need-to-know/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2010/02/hiphop-what-you-need-to-know/</feedburner:origLink></item>
		<item>
		<title>Upheaval without wires</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/8BgZIE-sdCk/</link>
		<comments>http://blog.tabini.ca/2010/01/upheaval-without-wires/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 13:39:38 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Cellular network]]></category>
		<category><![CDATA[IPhone]]></category>
		<category><![CDATA[Telecommunication]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=378</guid>
		<description><![CDATA[The Jesus Tablet comes tomorrow—and here's my hope that it will bring a revolution in data.]]></description>
			<content:encoded><![CDATA[<p>If you came here for advance information or predictions about Apple&#8217;s much discussed table, I am afraid I have neither. In fact, I am fairly sure that what I am about to tell you is unlikely to happen, so, there you are.</p>
<p>On the other hand, I have certain hopes for the product and one, in particular, is something that I haven&#8217;t seen anyone in the media discuss: could the Jesus Tablet revolutionize the way we buy and use wireless data?</p>
<p>Everyone agrees with the fact that the tablet will have some kind of 3G or 4G wireless cellular connectivity, but they all seem to take for granted that network access will be provisioned the same way it is done with the iPhone.</p>
<p>The tablet, however, is not a phone—quite the contrary—and, therefore, it&#8217;s perhaps a good idea to ask whether Apple may not be looking for ways to create an even more captive market.</p>
<p>To understand what the implications might be, one only needs look at the Kindle. It hasn&#8217;t occurred to me until recently that the killer feature of Amazon&#8217;s reader is not the e-ink screen, or the vast selection of books—it&#8217;s the fact that it makes accessing a cellular network completely seamless: there are no contracts for you to sign (except the one with Amazon), no data fees to pay (except the ones you pay to Amazon as part of your purchases) and—most importantly—no roaming fees to deal with.</p>
<p>In other words, even though it doesn&#8217;t look like one, the Kindle is a cell phone that works the world over through a single provider <em>that is not your cellco</em>. In fact, looking at Amazon&#8217;s <a title="Amazon Kindle Royalty Announcement" href="http://phx.corporate-ir.net/phoenix.zhtml?c=176060&amp;p=irol-newsArticle&amp;ID=1376977&amp;highlight">recent announcement</a> of its revised royalty scheme for the Kindle, you can see that they are planning to charge $0.15/MiB for data transfer, regardless of where the user is in the world. To put things in perspective, the <em>lowest</em> price that is available to me while roaming in the States is $1/MiB—and that&#8217;s if I pay a $10 monthly fee to get it reduced from $6/MiB, if I sign a long term agreement and if I agree to pay on top of my regular voice and data plan.</p>
<p>Compare this experience with the absolute hell that dealing with your current cellular company is, and you will see that there is an opportunity, for a sophisticated player, to create a wave of unprecedented disruption in the wireless market.</p>
<p>If Apple were to sell the tablet and make a data plan available through Apple, a number of really important things would happen:</p>
<ul>
<li>First, its users would become entirely captive—no messing around with third-party companies, subsidies, and the likes</li>
<li>Second, a clueful company would, for the first time in history, be in control of a wireless experience end-to-end. Just like the iPhone&#8217;s killer feature is the App Store, this could be the tablet&#8217;s one defining characteristic</li>
<li>Third, Apple&#8217;s immense buying power would bring costs down to a level that is going to be difficult to beat</li>
<li>Fourth, the fact that it doesn&#8217;t look like a phone doesn&#8217;t mean that the tablet couldn&#8217;t work like one—and without pesky wireless companies dictating terms, no-one would prevent customers from installing Skype or a SIP client on their systems</li>
<li>Fifth, Apple could easily integrate this service with others it already provides (MobileMe Data?)</li>
</ul>
<p>The disruption of this approach would be nearly total: because customers purchase service from Apple, the underlying network provider becomes little more than a curiosity, and it&#8217;s not unthinkable for our friends from Cupertino to eventually set up their own global wireless network.</p>
<p>Of course, I have no illusion that it&#8217;s highly unlikely for any of this to happen—I mean, the wireless companies cannot possibly be so shortsighted to let this happen, right?</p>
<p>Right?</p>
<p><em>Image credit: <a title="Tablets on Flickr" href="http://www.flickr.com/photos/swimboy1/3950622600/">Tablets</a> by swimboy1</em></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/4518dcee-dcaa-4014-9428-5838a9f32c8d/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=4518dcee-dcaa-4014-9428-5838a9f32c8d" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/8BgZIE-sdCk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2010/01/upheaval-without-wires/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2010/01/upheaval-without-wires/</feedburner:origLink></item>
		<item>
		<title>The story behind TEK·X’s Charter Ticket program</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/bVI2VUm5Dco/</link>
		<comments>http://blog.tabini.ca/2009/12/the-story-behind-tek%c2%b7xs-charter-ticket-program/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 17:14:28 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[phptek]]></category>
		<category><![CDATA[tek]]></category>
		<category><![CDATA[tekx]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=372</guid>
		<description><![CDATA[TEK·X's Charter Ticket Program is a special kind of discount for a special kind of attendee. But why are we doing it?]]></description>
			<content:encoded><![CDATA[<p>Unless you&#8217;re living under a particularly large rock, you&#8217;ve probably heard that we are doing a special promotion, which we call <a title="TEK·X's Charter Ticket Program" href="http://tek.phparch.com/2009/12/pre-schedule-ticket-sale/">Charter Ticket Program</a>, that makes it possible to purchase a full-experience TEK·X ticket—valid for both the main conference and tutorial day—for $650. The catch (if you want to call it that) is that the special is only valid until we announce the schedule—so, effectively, you need to put a lot of trust in our ability to attract top speaking talent and stitch together the schedule of a conference that you will want to attend.</p>
<p>Given the incredible response that our call for papers has received—over 9 proposals for each speaking slot—I have no doubt that we will be able to create a schedule rich in variety and topics that are very relevant to PHP developers from all walks of life. If anything, we&#8217;ve had a really hard time finding room for all the talks that we wanted to be part of TEK·X and, although I believe that my colleague <a title="Keith Casey's Blog" href="http://caseysoftware.com/blog">Keith Casey</a> will have some hopefully welcome news on this subject to share in a few days, we&#8217;ve run out of room much sooner than we ran out of good talks to approve.</p>
<p>The reasoning behing the Charter Program is very simple: we recognize that there is a core of attendees for whom our conferences have become an opportunity to meet up with their peers and learn what&#8217;s happening in the PHP world. In fact, there are some who have been to <em>all</em> of MTA&#8217;s conferences, so we felt that they deserve a little some extra special.</p>
<p>The Charter Program is designed specifically for these folks: at $650, the current price of the tickets is almost half the price of a regular ticket at the door—and $350 less than the lowest early-bird price. It <em>is</em> the lowest price you will be able to secure a spot at TEK for—an opportunity for a great deal if you put a little faith in the folks who have brought so many memorable events to the PHP community.</p>
<p>To take advantage of the Charter Ticket Program and save as much as 45% over the price of a full-experience ticket, you must <a title="TEK·X: Signup Page" href="http://tek.phparch.com/signup/">sign up for TEK·X</a> before January 6th, 2010, when our schedule will be officially announced.</p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/bVI2VUm5Dco" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/12/the-story-behind-tek%c2%b7xs-charter-ticket-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/12/the-story-behind-tek%c2%b7xs-charter-ticket-program/</feedburner:origLink></item>
		<item>
		<title>TAB’s new layout</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/L9nuFwYyB4A/</link>
		<comments>http://blog.tabini.ca/2009/12/tab-has-a-new-magazine-like-layout/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 13:41:14 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[magazine layout]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=356</guid>
		<description><![CDATA[A tale of Javascript, newsprint and lots of cursing at the browser gods.]]></description>
			<content:encoded><![CDATA[<p>Over the past few weeks, I have toyed with the idea of giving <em>The Accidental Businessman</em> a new look. I don&#8217;t dislike the current theme, but, as I mentioned in an earlier post, it&#8217;s a bit too “angular” for my taste.</p>
<p>Over the last few days, therefore, I stole a few minutes of free time here and there to come up with a new design. It turned out to be an interesting experience, both because on this site I have a degree of freedom with experimentation that I can&#8217;t really afford anywhere else (not necessarily a good thing) and because of the technical challenges of realizing my vision for the site on current browsers (the site works with IE8, FF3.5 and Safari 4).</p>
<h2>Maximum space</h2>
<p>My first concern was to maximize the space available on the screen for viewing. Screen reading is quite difficult—ironically because there is usually much more space available than the comfortable reading angle that the human eye can accommodate.</p>
<p>The default solution to this problem is to confine the reading area to a small horizontal section of the screen; this works, but it&#8217;s also very inefficient: it&#8217;s the physical-world equivalent of printing a sixty-character line of point-10 font on an A2-size sheet: inefficient, wasteful and difficult to handle. The way I see it, the typical web layout works if you like scrolling. Me, I like to open a webpage, lean back on my chair and read.</p>
<p>Speaking of real world, it occurs to me that <em>newspapers</em> have already solved this problem—and, in so doing, have established a number of rules to make the task of as much space available as possible in a manner that is both efficient and aesthetically pleasing. Therefore, the new <em>TAB</em> layout attempts to mimic the look of newsprint as much as possible, keeping in mind that, of course, my blog is <em>not</em> printed on paper (therefore, some concessions to life online—such as leaving some room for comments).</p>
<h2>Layout</h2>
<p>The new layout makes heavy use of Javascript—according to my statistics, practically all my visitors have a Javascript-capable browser <em>and</em> leave JS enabled, so I have absolutely no problem with taking advantage of a bit of scripting to achieve my goals¹. Through the magic of jQuery, the content is automagically laid out across multiple columns—their number determined based on the site of the browser window—and paginated across multiple screen, which you can navigate without a browser refresh².</p>
<p>I decided to keep a comment area on the right-hand side only so that comments can be visible at all times. I am unsure as to how good this is—on a screen big enough, it seems to work fairly well, but at lower resolutions it robs much of the content area from the rest of the article.</p>
<h2>Typography</h2>
<p>The proper use of type is as important on the web as it is on paper—even more so on the former, perhaps, because of the limited resolution at which we are forced to view type online. Unfortunately, typography is often completely disregarded by web designers—I&#8217;m not sure <em>why</em> this is, but the focus seems to always be on graphical elements that, at the end of the day, have little or no importance: if your header looks colourful and has all sorts of bells and whistles, but people can&#8217;t read what in the <em>body</em> of your site, they are unlikely to be very happy.</p>
<p>In choosing a typographical design for <em>TAB</em>, I started from the most excellent <a title="Baseline CSS Framework" href="http://baselinecss.com/">Baseline CSS Framework</a>, which, much like newspaper typesetters, uses a simple set of rules to ensure that multi-columnar text will line up properly on the font&#8217;s baseline. The framework&#8217;s setup is actually fairly simple: each style is an integer multiple of the base font size and line height, resulting in a text flow that lines up perfectly across multiple columns—in fact, as long as <em>every</em> element on a page follows the same rule, images and practically any other type of content can be added to an article and still maintain the same baseline alignment.</p>
<p>The script also support a very basic form of orphan and widow control, so that a heading should never appear either at the end of a column, or (even worse) “broken” across two columns. I am investigating ways to improve on this particular piece of technology to improve paragraph control well beyond the basics, but I fear that some of the calculations required will slow things down too much. Unfortunately, the level of control that CSS affords over sub-paragraph data (at least in CSS2, which is the target here) is not quite as good as it could be.</p>
<p>Finally, you will note that the text in the columns is justified. I usually dislike full justification in a browser <em>because</em> hyphenation is not a possibility and, therefore, there are often unsightly gaps between words that make reading a challenge. However, using the most excellent <a title="Javascript Hyphenator" href="http://code.google.com/p/hyphenator/">Hyphenator</a> package by Mathias Nater, I was able to add hyphenation as well, which closes the gaps between words and makes text flow very nicely, providing both a pleasant look and a practical, readable format that should be easy on the eye.</p>
<h2>Limitations</h2>
<p>The theme is still quite rough around the edges. First of all, the contrast is not quite where I&#8217;d like it to be—I feel that the design is easy on the eye, but could probably use a little more punch. I&#8217;m not much of an expert on colour theory, so I&#8217;ll probably be nagging my good friend <a title="Arbi Arzoumani on Twitter" href="http://twitter.com/arzoum">Arbi</a>, whose worst day was the day I acquired a copy of Photoshop, for some advice. The layout of pages <em>other</em> than main articles needs some adjustment as well.</p>
<p>From a technical viewpoint, the method used to lay out the columns is a bit brutal—I am essentially cheating by duplicating the content over and over and only showing selected portions of it as appropriate—which works visually, but makes things like cutting and pasting a challenge³. Rendering performance under Internet Explorer is also a problem—although that&#8217;s something I think can be fixed by optimizing the Javascript code a bit.</p>
<p>Thus, think of this as an experiment in the works. I welcome your comments, suggestions, bug reports, and so on. I do, at some point, plan on making this an actual Wordpress theme—it&#8217;s still too “Tabinized” for public consumption at the moment, but feel free to borrow, copy and use at will; none of the code or stylesheets on this site are minized or obscured and they are explicitly released under a BSD-like license (unlike the content itself).</p>
<p><em>Photo credit: <a title="A Stack of Newspapers" href="http://www.flickr.com/photos/drb62/2054107736/">A Stack of Newspapers</a>, by DRB62</em></p>
<p>¹ Of course, scripting only affects the layout <em>visually</em> and not its functionality or content—thus, if you use an assistive device, such as a screen reader, the site should remain easily accessible.</p>
<p>² This is my idea of “good pagination.” I hate when sites split content across multiple pages as a way to force reloads so they can serve more ads.</p>
<p>³ CSS3 is going to make this type of layout much easier, but support for flowing controls is still a way off in several browsers.</p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/L9nuFwYyB4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/12/tab-has-a-new-magazine-like-layout/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/12/tab-has-a-new-magazine-like-layout/</feedburner:origLink></item>
		<item>
		<title>Microsoft is and Microsoft does</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/gIRoqyHoxa0/</link>
		<comments>http://blog.tabini.ca/2009/12/microsoft-is-and-microsoft-does/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 15:15:42 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[expression web]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Seattle]]></category>
		<category><![CDATA[superpreview]]></category>
		<category><![CDATA[wds]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=335</guid>
		<description><![CDATA[Members of the PHP community were invited to Redmond to discuss the happenings at Microsoft. Here's a brief report.]]></description>
			<content:encoded><![CDATA[<div id="attachment_336" class="wp-caption aligncenter" style="width: 590px"><a rel="attachment wp-att-336" href="http://blog.tabini.ca/2009/12/09/microsoft-is-and-microsoft-does/electrosoft/"><img class="size-full wp-image-336" title="electrosoft" src="http://blog.tabini.ca/wp-content/uploads/2009/12/electrosoft.jpg" alt="Elephpant does Redmond!" width="580" height="170" /></a><p class="wp-caption-text">Elephpant does Redmond!</p></div>
<p>Every year, Microsoft organizes a small event, called Web Development Summit, to which they invite a few members of the PHP community. The WDS is a good opportunity to exchange information with Microsoft, learn about new products they are working on and generally catch up with a number of friends from the community. Several others have already posted their impressions of this year&#8217;s meeting, to which I add my own.</p>
<h2>Good stuff</h2>
<p>Microsoft&#8217;s attitude towards open-source has changed considerably over the last few years—a fact that is finally starting to permeate through its historical insistence on vertical integration in favour of more willingness to integrate its products with other platforms. At the end of the day, Microsoft has realized that the key to improving adoption of Windows Server—and, more importantly, stemming the migration away from it—is to play nice with other technologies.</p>
<p>More importantly (at least from my perspective), more people within Microsoft are finally realizing that working within the open-source world requires a shift in the way they establish relationships and position themselves. There are some within the company that have realized this a long time ago and have, as a result, established some strong ties with the PHP community; it&#8217;s good to see that this frame of mind is finally permeating through the organization and changing the way it approaches its dealings with us.</p>
<p>The willingness to look beyond its own walls is also making it possible for Microsoft to come up with some truly innovative and useful products. One of the most impressive ones that I saw during the WDS is <a title="Expression Web" href="http://www.microsoft.com/Expression/products/Web_Overview.aspx">Expression Web</a>&#8217;s SuperPreview¹, which <em>truly</em> simplifies the process of side-by-side comparison between browsers, including multiple versions of Internet Explorer. I was teaching a seminar of HTML and CSS at a client just yesterday and had an opportunity to show this product to them. It was received with a chorus of wows, followed by significant gnashing of teeth when they realized that their organization&#8217;s default Windows install wouldn&#8217;t support it.</p>
<p>I also truly appreciated the fact that the evangelists who were at WDS took the time to really drive home the fact that “Microsoft” is not one entity, but, rather, a conglomerate of many different divisions and people—and, therefore, of many different opinions and strategic views that are bound, at times, to be in conflict with one another. To anyone who has had the opportunity to work for (or with) a large organization, this is an obvious fact—but many who are used to smaller work environments don&#8217;t fully understand the complexities of interacting with such a large base of coworkers, each with their own priorities and strategies (I always chuckle when I hear someone start a sentence with “You Microsoft guys need to…”).</p>
<p>Finally, I had the pleasure of leading a ten-minute discussion on the status of the PHP community, which, judging from the reactions that it received, was a cathartic experience for some people. I took advantage of the unusual convergence of members from various PHP-related groups, including Drupal, Joomla and WordPress, to point out that it might be opportune for all of these communities to intermingle and work together with the “core” PHP community towards common goals to ensure a good exchange of ideas. After all, what comes down the pipe from core will eventually be of benefit (or not) to anyone whose application lives downstream, so a feedback channel in the form of conversations and participation is going to be essential to the health of the entire PHP ecosystem².</p>
<h2>Not so good stuff</h2>
<p>The whole point of the WDS was to give Microsoft an opportunity to present their current ideas to a small focus group so that they would have an opportunity to revise and focus their message before presenting it to the world at large; therefore, it would be inappropriate for me to comment specifically on the areas for improvement that we saw.</p>
<p>Suffice it to say that some divisions inside Microsoft are still finding it difficult to let go of the no longer appropriate view of open-source communities are a ragtag group of renegades intent on not-so-subtly subverting the commercial software landscape. By my own guesstimate-based account, the 40 or so people at WDS directly or indirectly represented at least a good $100M of annual sales (the number actually jumped by several hundred millions halfway through, but I&#8217;m not counting that), all made possible by the use of open-source software. These people are not trying to make a philosophical point—they are simply trying to achieve specific goals with the best tools at their disposal. Microsoft employees simply need to learn to see us as <em>partners,</em> and not as gifted amateurs with a source-code fetish.</p>
<p>By the same token, if we decide to engage with companies like Microsoft, it&#8217;s important to make an effort to understand the unique challenges that they must face, internally and externally, in order to work with us. Obviously, we can&#8217;t solve their problems—but if we don&#8217;t even bother finding out what they are, we are not being good community citizens, either.</p>
<p><em>Disclosure: Microsoft is a customer of both MTA and Blue Parabola, and they paid most of my expenses to attend the WDS.</em></p>
<p><em><br />
</em></p>
<p>¹ Of course, SuperPreview (which, to me, is the killer feature in Expression Web) is not even listed in the top-three features on the product page. Disconnect, anyone?</p>
<p>² On a personal note, I was happy to see that my ability to drive an entire room full of people up the wall in ten minutes or less has not waned with the years. My intention was to stir emotions—and that&#8217;s exactly what I accomplished.</p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/gIRoqyHoxa0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/12/microsoft-is-and-microsoft-does/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/12/microsoft-is-and-microsoft-does/</feedburner:origLink></item>
		<item>
		<title>How to encourage piracy</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/3FO92q-MHyw/</link>
		<comments>http://blog.tabini.ca/2009/12/how-to-encourage-piracy/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 14:06:17 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Digital rights management]]></category>
		<category><![CDATA[E-book]]></category>
		<category><![CDATA[Electronic paper]]></category>
		<category><![CDATA[Seattle]]></category>
		<category><![CDATA[Sony]]></category>
		<category><![CDATA[Sony Reader]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=322</guid>
		<description><![CDATA[During a trip to Seattle, I bought a brand-new eBook reader—and all I got is this really nasty heartburn.]]></description>
			<content:encoded><![CDATA[<dl id="attachment_323" style="display: block; margin-left: auto; margin-right: auto; text-align: center; background-color: #f3f3f3; padding-top: 4px; margin-top: 10px; margin-bottom: 10px; -webkit-border-top-right-radius: 3px 3px; -webkit-border-top-left-radius: 3px 3px; -webkit-border-bottom-left-radius: 3px 3px; -webkit-border-bottom-right-radius: 3px 3px; width: 590px; border: 1px solid #dddddd;">
<dt><a rel="attachment wp-att-323" href="http://blog.tabini.ca/2009/12/07/how-to-encourage-piracy/windmills/"><img style="padding: 0px; margin: 0px; border: 0px none initial;" title="Windmills" src="http://blog.tabini.ca/wp-content/uploads/2009/12/windmills.jpg" alt="The copyright industry is somewhere around these parts." width="580" height="170" /></a></dt>
<dd style="font-size: 11px; line-height: 17px; padding-top: 0px; padding-right: 4px; padding-bottom: 5px; padding-left: 4px; margin: 0px;">The copyright industry is somewhere around these parts.</dd>
</dl>
<p>As I write this post, I am comfortably slouched on an easy chair in a Seattle area hotel, a guest at Microsoft&#8217;s Web Development Summit (about which I shall write more in a future post). Like most visits to the States, this means a stop at Fry&#8217;s—a geek&#8217;s equivalent of Willy Wonka&#8217;s chocolate factory, with wall-to-wall electronic candy, from computers to consoles, from DVDs to floppies (yes, they have some of those, too).</p>
<p>Slave to my own customs, therefore, I joined my friends Eli and Rafael for a trip down to the Electronic Mecca with the idea of finally purchasing an electronic book reader—I&#8217;ve wanted one for a while, and now that php|a has an all-new format, we want to focus on supporting these devices, which we think are the way to go looking forward into the future. Translation: I finally had an excuse to get the eReader past my wife (who will probably read this post and promptly strangle me).</p>
<p>I ended up purchasing a <a title="Sony eReader Touch - Red" href="http://www.sonystyle.ca/commerce/servlet/ProductDetailDisplay?storeId=10001&amp;langId=-1&amp;catalogId=10001&amp;productId=1006704&amp;navigationPath=n100537n100431">Sony eReader Touch Edition</a>. As the name implies, this device combines an <a title="ePaper on Wikipedia" href="http://en.wikipedia.org/wiki/Electronic_paper">ePaper</a> screen and a touch-based interface; I don&#8217;t intend to review the device here, other than to say that the screen doesn&#8217;t quite have the contrast ratio of decent paper stock (in fact, it&#8217;s probably inferior to pulp paper), and the whole user interface seems to always stop one step short of a good UX (plus, the device has no wireless connectivity, which at this point in time is simply inexcusable). Nevertheless, the device <em>does</em> provide a really good reading experience, particularly when you consider that it can go for two weeks between charges and the average fiction book occupies less than half a megabyte.</p>
<p>What I&#8217;d like to speak about is the wonderful, wonderful feelings that purchasing content for this device has left me.</p>
<h2>The store that almost was… not</h2>
<p>I don&#8217;t think that you&#8217;ll be surprised to hear that the first thing I wanted to do, upon unpacking my new toy, was to get some content for it.</p>
<p>The folks at Sony sure must be falling off their chairs, however, because I simply couldn&#8217;t get anything. I had fallen in that DRM Neverland that is purchasing a book from the Canadian store—with a Canadian credit card tied to a Canadian address—while within the United States. In fact, the store told me so—after I had dug my credit card out of my pocket and typed in all my information: “You cannot change your method of payment in a country other than your country of residence.”</p>
<p>There&#8217;s a finality, a sort-of “what kind of stupid shenanigans are you trying to pull” attitude to this statement that just drives me up the wall. Why shouldn&#8217;t I be able to buy a book from the online store dedicated to my country (which, in itself, is a curious idea to be found on a worldwide network), with a credit card that was issued in the same country and is registered to an address which is, itself, in the same country?</p>
<p>Of course, I understand why this is: rights management. Despite the fact that the US dollar is essentially at par with its Canadian counterpart, we regularly pay much higher prices for books (among other things) than our friends south of the border. Distribution of content in our country is regulated by a government that is intent on ensuring that our cultural heritage is not overrun by Americans—in itself a rather curious attitude, considering that so many Canadians are first-generation immigrants and therefore <em>don&#8217;t have</em> a shared heritage to start with. Furthermore, book rights (much like movie rights) are routinely handled by different entities across borders and, obviously, each wants to make sure that it can maximize its ability to take advantage of its captive market.</p>
<p>Of course, I hope that you won&#8217;t mind me saying that this line of reasoning has been pulled straight out of the digestive system of a cow by the copyright industry. They are the ones who insist on placing impossible constraints on the management of content rights—and they are the ones who constantly find themselves at odd with simple, plain reality. In other words, they have created a problem—<em>their</em> problem, not <em>my</em> problem—and the only solutions they come up with end up victimizing the law-abiding user—<em>me</em>.</p>
<p>The “to copy is to steal” mantra that the idiots from the copyright lobby continue chanting is so misleading you could put a tail on it and call it a weasel. Here I was, credit card in hand, ready to make a purchase—nay, credit card details already entered on site and purchase already made, as far as I was concerned—and they won&#8217;t take my money… why? Because my IP appears to be assigned to another country? It&#8217;s the equivalent of walking into a grocery store and being denied the purchase of milk because I look like I might be from out of town. Their legal choice removed, guess what honest people do—and they don&#8217;t even feel remotely guilty about it.</p>
<p>I&#8217;ll say this: when we removed password protection (which is not a form of DRM, as I have tried to explain multiple times) from our publications, our sales actually <em>went up</em>. I am glad we did. I am glad our customers pushed us to do it and didn&#8217;t let us off the hook until we would.</p>
<h2>Cost vs. “cost”</h2>
<p>As I have said in the past, DRM is an endless battle against an imaginary foe. The content industry is chasing after windmills—and the worst part is that they actually believe they have an enemy.</p>
<p>Not too long ago, I had a brief argument on Twitter with <a title="Charles Arthur - Profile" href="http://www.guardian.co.uk/profile/charlesarthur">Charles Arthur</a>, the Technology Editor at Britain&#8217;s <a title="The Guardian" href="http://www.guardian.co.uk/">Guardian</a> newspaper. I enjoy reading Mr. Arthur&#8217;s work, which, of course, made me all the madder when I saw him <a title="Microsoft cutting off up to 1m gamers with modified Xbox 360 consoles" href="http://www.guardian.co.uk/technology/2009/nov/11/xbox-modded-consoles-live-cut-microsoft">reporting this</a> statement:</p>
<blockquote><p>The Entertainment and Leisure Software Publishers&#8217; Association, ELSPA, which represents the video games industry, says that criminal games copying and other illegal activities cost the industry more than £750m annually.</p></blockquote>
<p>I challenged this and was frankly disappointed that Mr. Arthur&#8217;s answer was that <em>he</em> wasn&#8217;t making the claim—rather, the ELSPA was. Technically, that&#8217;s clearly correct, but that&#8217;s a statement that just begs for some questioning that I would think a journalist should want to undertake.</p>
<p>If you ever happen to be overly bored and decide to look at the financial statements of <em>any</em> public corporation that trades primarily in intellectual property, I challenge you to find a line item that says “costs due to piracy.” Go ahead, try—you won&#8217;t find any.</p>
<p>Don&#8217;t worry, though; through the magic of common sense, I can tell you exactly how much money piracy costs to the entire industry: <em>zero</em>.</p>
<p>You see, in accounting—which is what companies use to track and report their financial positions—<em>cost</em> is essentially equivalent to <em>expense</em>: the money a company spends to produce or acquire something. Piracy, therefore, is not a cost—because the company cannot spend money that it doesn&#8217;t have in the first place. Their claim that piracy costs them hundreds of millions of dollars a year is a bit like me claiming that not getting run over by a truck while crossing the street earlier today cost me hundreds of thousands of dollars in insurance claims.</p>
<p>That&#8217;s right—the copyright industry is very cleverly using a concept that is proper in <em>economics</em>—where “cost” is the value of an opportunity that has been discarded in favour of a different alternative—in a context where the subject is <em>accounting</em>. With this clumsy sleight of hand, they have created a financial liability that cannot be reported on their books (not without some serious consequences, at least), but that looks really good in print.</p>
<p>The simple reality is that the industry knows exactly how much piracy costs them: <em>nothing</em>. What they <em>don&#8217;t seem to know</em>, however, is what combating it is costing them: it has created a generation of content users that are completely disillusioned with the value of intellectual property because they are constantly presented with a set of facts that have been gracelessly distorted to present a picture that doesn&#8217;t stand up to the most basic scrutiny.</p>
<p>Good luck staying relevant.</p>
<p><em>Photo credit: <a title="Jack and Jill Windmills in Sussex" href="http://www.flickr.com/photos/nikonvscanon/472167635/">Jack and Jill Windmills in Sussex</a> by david.nikonvscanon</em></p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/3FO92q-MHyw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/12/how-to-encourage-piracy/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/12/how-to-encourage-piracy/</feedburner:origLink></item>
		<item>
		<title>Old school task management</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/RLSjH46jZMk/</link>
		<comments>http://blog.tabini.ca/2009/11/old-school-task-management/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 13:42:28 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[task management]]></category>
		<category><![CDATA[tdl]]></category>
		<category><![CDATA[time management]]></category>
		<category><![CDATA[to do list]]></category>
		<category><![CDATA[user interface design]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=312</guid>
		<description><![CDATA[Sometimes, paper beats silicon—as is the case for this simple (but effective) task-management system.]]></description>
			<content:encoded><![CDATA[<div id="attachment_313" class="wp-caption aligncenter" style="width: 590px"><a rel="attachment wp-att-313" href="http://blog.tabini.ca/2009/11/25/old-school-task-management/todo/"><img class="size-full wp-image-313" title="To-do List" src="http://blog.tabini.ca/wp-content/uploads/2009/11/todo.jpg" alt="Nothing beats paper for personal task management (except, possibly, your spouse)" width="580" height="170" /></a><p class="wp-caption-text">Nothing beats paper for personal task management (except, possibly, your spouse)</p></div>
<p>The biggest lesson in user interface design that I have ever received is, to this day, a little something that happened approximately eleven years ago.</p>
<p>At the time, I remember standing in the headquarters lobby of one of Canada&#8217;s largest insurance companies, uncomfortable—as I always am—in my suit, right next to my CEO. We were waiting for a meeting with the company&#8217;s CIO that we had tried to schedule for two months. We were prepared; we were early enough to show that the meeting mattered to us, but not so early that we would look desperate. We were <em>ready</em>.</p>
<p>Unfortunately, our host wasn&#8217;t. The receptionist informed us, politely but with that condescending look of someone who has seen far too many supplicants make far too many sales calls, that the CIO wasn&#8217;t expecting us today and wouldn&#8217;t be seeing us after all.</p>
<p>My colleague—a person who could teach anyone business smarts simply by standing next to them for a short period of time—decided that we hadn&#8217;t donned our best suits, driven through that particular brand of hell that city dwellers jokingly refer to as “traffic” and spent $30 in parking to be brushed off so easily. “He doesn&#8217;t know my cell number… I bet if I call his direct line he will answer¹,” he stated.</p>
<p>That sounded good to me—I had paid the $30—so I opened up my Cassiopeia and started looking for the guy&#8217;s phone number. I was pretty good with that little device—and I never got tired of showing it off (much like an iPhone until a few months ago, it made for an excellent conversation starter at business meetings). It only took me a minute or so to pull up the number and, once I located it, I looked up to dictate it to Rick.</p>
<p>Except, of course, that, while I was deeply busy getting off on electronics, my friends had already whipped out his $2.99 pocket phone book, found the number, called the CIO and very gently tore him a new waste management system. Before I knew what had happened, we were on our way up to the executive floor, and my Cassiopeia was on its way down to the trash.</p>
<h2>Fast forward ten years…</h2>
<p>Things have changed considerably since that episode (incidentally, the meeting was a bust—I only remember what happened specifically because it had a cathartic effect on my appreciation for ergonomics), but, in many ways, software is still too often a solution in search of a problem.</p>
<p>This is the reason why, even after all this time, I manage all my day-to-day tasks on paper. I&#8217;ve tried a number of fancy (and not-so-fancy) task management systems: <a title="Getting Things Done® &lt;-- because he really needed to register that. Don't you dare steal it!" href="http://en.wikipedia.org/wiki/Getting_Things_Done">GTD-compliant</a> systems, <a title="OmniFocus" href="http://www.omnigroup.com/applications/omnifocus/">OmniFocus</a>, <a title="Things" href="http://culturedcode.com/things/">Things</a>, and so on. I&#8217;m sure that these applications and methods do wonders for scores of people, but, for some reason, they just don&#8217;t work for me.</p>
<p>You see, daily task management is not really about knowing what you need to do; it&#8217;s about <em>doing it</em>. A to-do list in any form isn&#8217;t going to help you “remember” the things you have to do—let&#8217;s face it, you <em>know</em> what you have to do; most of the time, you&#8217;re just too lazy to actually <em>do it</em>. Task management software is helpful in keeping track of what you need to do, but it lacks in what I jokingly refer to as the “spouse factor²”—it doesn&#8217;t nag you enough about sorting through your tasks and taking care of them.</p>
<p>Paper won&#8217;t start calling you in the middle of a client meeting to remind you that you need to pick up the milk on the way back home, but it has two great advantages: first, it&#8217;s <em>extremely</em> portable and, second, it cannot be hidden behind another window. Third—yes, I am cheating—it&#8217;s as of yet unbeaten as a mind-mapping tool, especially when coupled with that most noble of writing instruments, the pencil.</p>
<h2>Task management, old-school style</h2>
<p>Managing time is a complex matter. Some people are naturally good at it, while others, well, not so much. I belong to the second category and, therefore, a good management system is essential to get me through the day. For the benefit of inquiring minds, thus, this is how <em>I</em> organize my day:</p>
<ol>
<li>Once proper grooming has taken place and I am sufficiently caffeinated to write something that I will eventually be able to read later, I start working on my to-do list for the day. This usually takes place after I do my morning e-mail triage—just in case there are some truly urgent and unexpected tasks that I need to be aware of.</li>
<li>I start by copying over the unhandled items from the previous day. Then, that list goes into the trashcan.</li>
<li>Next, I write down whatever new items I need to take care of on that particular day—consulting liberally with my calendar, just in case I forget something.</li>
<li>Next, I sort items according to two criteria: urgency and palatability. Urgent tasks need to take precedence, as do those that I&#8217;d rather avoid—that way, I have something (the tasks I actually <em>like</em> to do) to look forward to.</li>
<li>As I go through the list, I try to find a “daily goal” of sorts—my TDL is usually much longer than my day reasonably allows, and some long-term tasks need to be taken care of daily, regardless of what precedes them. Thus, I further sort tasks between “must do,” “should do” and “can go to tomorrow.”</li>
<li>As the day progresses, I erase tasks as I complete them. The erasure is also “old school”—I just scratch a line across the item. That way, it doesn&#8217;t automatically disappear—it sticks around as <em>evidence</em> that I have actually done something.</li>
<li>At the end of the day, I go through the list one more time to ensure that I haven&#8217;t forgotten to take care of some truly urgent tasks. Otherwise, the TDL will tell me what I have accomplished over the course of the day—and the remaining tasks will be there for me to work on tomorrow.</li>
</ol>
<p>That&#8217;s all there is to it. If I need to work outside the office, all I need is a piece of paper and a pen. Best of all, the to-do list is right there, in front of me and at the top of my work pile on the desk. It&#8217;s impossible to ignore, even without pop-up notifications and stereo sounds.</p>
<p><em>How do you manage your time? Much like my obsession with finding out <a title="What's on your desk?" href="http://blog.tabini.ca/2009/09/07/whats-on-your-desk/">how others organize their desks</a>, I am curious to see if I can learn a trick or two to improve my time management.</em></p>
<p>¹ Remarkably—even for the time—the person we were visiting didn&#8217;t have a secretary, even though he held a C-level position at a major corporation.</p>
<p>² Intended in the most gender-neutral way possible. I am quite sure that husbands can be as annoying as wives, regardless of the gender of their better halves.</p>
<p><em>Photo credits: <a title="My to do list" href="http://www.flickr.com/photos/missizss/3256040316/">My to do list</a> by ezs</em></p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/RLSjH46jZMk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/11/old-school-task-management/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/11/old-school-task-management/</feedburner:origLink></item>
		<item>
		<title>Selling software in an open-source world</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/O1LJV9lOVvQ/</link>
		<comments>http://blog.tabini.ca/2009/11/selling-software-in-an-open-source-world/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:59:49 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=290</guid>
		<description><![CDATA[A little e-mail from Zend sparks a few thoughts on the challenges of selling software in an open-source world.]]></description>
			<content:encoded><![CDATA[<div id="attachment_291" class="wp-caption aligncenter" style="width: 590px"><a rel="attachment wp-att-291" href="http://blog.tabini.ca/2009/11/23/selling-software-in-an-open-source-world/girotondo/"><img class="size-full wp-image-291" title="Girotondo" src="http://blog.tabini.ca/wp-content/uploads/2009/11/Girotondo.jpg" alt="How do you sell software when it's free?" width="580" height="170" /></a><p class="wp-caption-text">How do you sell software when it&#39;s free?</p></div>
<p>Last week, Zend&#8217;s marketing department saw fit to send me an e-mail—the third in so many weeks—touting the fact that the upcoming Zend Server 5 will support job queueing¹ to offload requests either to another process on the same server or to another server altogether.</p>
<p>Undoubtedly, this is a great feature, not the least because it begs a little bit of simple business analysis of how difficult it is to create a market for products in an open-source world.</p>
<p>First of all, a simple look at the economics of this feature reveals that, in itself, it cannot be a determinant in the purchase of Zend Server². The reasoning is fairly simple: a copy of the lowest-level subscription for Zend Server costs $1,195. You can, however, get queuing support from a variety of other sources—most notably Amazon Web Services, which sells queuing requests for $0.01 per 10,000 requests. In other words, you&#8217;d have to need to make more than 1,195,000,000 queuing requests in a year to justify the purchase of Zend Server if all you ever wanted was queuing support.</p>
<p>Therefore, queuing needs to be part of a larger set of features that, taken together, make Zend Server a compelling and unique product. However, <em>none</em> of its features do this—there is practically nothing in ZS that cannot be obtained elsewhere for a lower cost (or for no cost). What&#8217;s more, Zend cannot lock any new feature it adds to its products because it can be easily replicated by just about anybody else.</p>
<p>Case in point, on the very same day when I received Zend&#8217;s e-mail, Jonathan Wage <a title="Jonathan Wage: Queuing with Doctrine" href="http://twitter.com/jwage/statuses/5832491353">tweeted</a> about a <a title="PHP Message Queue" href="http://github.com/jwage/PHPMessageQueue">library</a> he built on top of Doctrine to manage message queues using a variety of different storage media. So here we have, in the same period of twenty-four hours, a company that is trying to sell me a solution that a <em>person</em> claims to have developed and is making available completely free of charge.</p>
<p>Of course, this comparison represents “all kinds of unfair” towards Zend—their solution could be better implemented, more reliable, or scale better.</p>
<p>Or, perhaps, I could point out that they are not, in fact, selling the software <em>at all</em>.</p>
<h2>Software is worthless—service is everything</h2>
<p>In an open-source world, the capital value of any piece of software tends towards zero—not only because you others get the software for free, but because vendors cannot lock in any feature that makes it impossible for anyone else to recreate the same functionality and give it away at no cost. Microsoft has proprietary control over Windows and can, therefore, decide which features it allows third parties to replicate. Zend has no exclusive control over PHP and, therefore, enjoy no such privilege with its products. Nor is this a problem that is <em>specific</em> to Zend—any other company that works in an open-source space has to deal with this particular issue in one form or another.</p>
<p>The only real product that a company like Zend can sell, therefore, is the <em>peace of mind</em> of knowing that there is someone that your organization can turn to for assistance when things stop working. Not being a Zend customer myself, I can&#8217;t say how well they do this, but I do find it interesting that they continue to define themselves as a <em>product company</em> and that they don&#8217;t seem to place any emphasis on their services.</p>
<p>I understand that the need to sell products is primarily one of scale—it&#8217;s difficult to convince an investor that they should give you their money unless you can show exponential growth, and a service-oriented organization simply cannot achieve that. However, when your product is, essentially, an extended form of support, you need to build an organization that has service at its core—it&#8217;s only through services that a company will gain acceptance for its products and achieve the scale its investors demand.</p>
<p>This is nothing new, of course—organizations as large as the largest software vendors in the world have highly developed service organizations that, while not representing a significant revenue centres, act as a springboard for the sale of the company&#8217;s products. This is true both in the open- and close-source markets—think about the size of Microsoft&#8217;s Consulting Services division or the importance that a company like Red Hat attaches to the creation of a holistic ecosystem for its products, from certification to training and consulting.</p>
<h2>Educate, Penetrate, Accelerate</h2>
<p>The importance of services can be best illustrated through the mantra <em>educate, penetrate, accelerate</em>.</p>
<p>Education is an essential part of driving the adoption of your products. It involves the cooperation of marketing, which raises awareness about your products, and training and certification, which promotes competence among your clients. The former without the latter leads to discontent, because your customers won&#8217;t be able to use your products. The latter without the former leads to poor adoption, because nobody will know about your products in the first place!</p>
<p>Penetration of the market can only be achieved by a well-tuned and aggressive consulting-services strategy. This is particularly true in the PHP market, which is trending towards a higher and higher level of abstraction in programming tasks—when people invest millions of dollars a year in content management systems, the only way that you can make your products relevant is to make them relevant to those systems. To offset the cost of providing services, a company needs to foster a competitive, but also active and rewarding, environment for its consulting partners, demanding high quality while providing excellent opportunities for profit by reducing some of the costs associates with customer acquisition.</p>
<p>A good service division will lead to acceptance of your products, which is where you can accelerate your growth by selling multiple licenses to your paid products to each client.</p>
<p>¹ I realize that I&#8217;m just being petty here, but Zend&#8217;s marketing need a severe visit from the Cluebat Fairy—if the best reason you can come up with for trying to sell me a queue management system is that I can eliminate “long-running PHP scripts,” you have failed miserably. To a developer (or, at least, to <em>this</em> developer), queuing has three important benefits: parallelization, prioritization and consistency. In other words, I want to know that I can push messages in the queue so that they can be processed by multiple workers, they can be assigned a specific priority if needed, and that they are not going to end up in some sort of black hole. Offline serving of complex tasks is a <em>consequence</em> of these features, rather than the feature itself—but I digress.</p>
<p>² Of course, you can download Zend Server for free, but that only reinforces the difficulty in creating products for the PHP market.</p>
<p><em>Photo credits: <a title="Girotondo" href="http://www.flickr.com/photos/lucasartoni/2924724746/">Girotondo</a> by Luca Sartoni</em></p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/O1LJV9lOVvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/11/selling-software-in-an-open-source-world/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/11/selling-software-in-an-open-source-world/</feedburner:origLink></item>
		<item>
		<title>IE9 will have rounded corners (and a bunch of other stuff)</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/R3tCL4ybs9Y/</link>
		<comments>http://blog.tabini.ca/2009/11/ie9-will-have-rounded-corners-and-a-bunch-of-other-stuff/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 13:45:21 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[rounded corners]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=277</guid>
		<description><![CDATA[Internet Explorer 9, announced at PDC yesterday, will get rounded corners after all.]]></description>
			<content:encoded><![CDATA[<div id="attachment_278" class="wp-caption aligncenter" style="width: 590px"><a rel="attachment wp-att-278" href="http://blog.tabini.ca/2009/11/19/ie9-will-have-rounded-corners-and-a-bunch-of-other-stuff/untitled-2/"><img class="size-full wp-image-278" title="Cornered" src="http://blog.tabini.ca/wp-content/uploads/2009/11/Untitled-2.jpg" alt="And then, there was much jubilation." width="580" height="170" /></a><p class="wp-caption-text">And then, there was much jubilation.</p></div>
<p>Marvel of marvels, the upcoming Internet Explorer 9, which was previewed yesterday at PDC, <a title="MSDN Blog: An Early Look at IE9 for Developers" href="http://blogs.msdn.com/ie/archive/2009/11/18/an-early-look-at-ie9-for-developers.aspx">will finally support</a> rounded corners. I have, of course, no illusion about the fact that this isn&#8217;t related to my post from a couple of days ago, but it&#8217;s good to hear that they&#8217;re at last catching up.</p>
<p>Of course, this also means that there is <em>yet</em> another version of IE that we need to check and account for in our code, but, frankly, I don&#8217;t expect that to be a major problem where these things are concerned: if anything, the availability of features like rounded corners across all three major browsers for the first time in the history of the web will be enough to push many developers to simply ignore older versions of IE beyond the graceful degradation of their designs—much like many do today.</p>
<p>This, however, will have the potential to accelerate the adoption of the latest version among users who will want the best experience possible. It will also mean that new designs will be much more fluid and dynamic, since more and more changes can be made by simply altering the code, rather than by mucking around with graphical elements. It&#8217;s a good day for the Photoshop challenged among us!</p>
<p>IE9 is also getting several more interesting features, like better font rendering and control (something that other browsers have <a title="After Firefox 3.6: New Font Controls for Designers" href="http://hacks.mozilla.org/2009/10/font-control-for-designers/">placed a lot of emphasis</a> on lately), higher speed and much more.</p>
<p><em>Photo credit: <a title="Cornered" href="http://www.flickr.com/photos/44442915@N00/3761163015/">Cornered</a> by gfpeck</em></p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/R3tCL4ybs9Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/11/ie9-will-have-rounded-corners-and-a-bunch-of-other-stuff/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/11/ie9-will-have-rounded-corners-and-a-bunch-of-other-stuff/</feedburner:origLink></item>
		<item>
		<title>Win a 52″ HD system with php|a’s new contest</title>
		<link>http://feedproxy.google.com/~r/mtabini/~3/H2T2bNYWxBQ/</link>
		<comments>http://blog.tabini.ca/2009/11/win-a-52-hd-home-entertainment-system-with-phpas-new-contest/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:16:10 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[hdtv]]></category>
		<category><![CDATA[tekx]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.tabini.ca/?p=251</guid>
		<description><![CDATA[If you need an excuse to try out PHP on Windows and win your dream HD system, here's a really good one.]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;">
<dl id="attachment_252" style="display: block; margin-left: auto; margin-right: auto; text-align: center; background-color: #f3f3f3; padding-top: 4px; margin-top: 10px; margin-bottom: 10px; -webkit-border-top-right-radius: 3px 3px; -webkit-border-top-left-radius: 3px 3px; -webkit-border-bottom-left-radius: 3px 3px; -webkit-border-bottom-right-radius: 3px 3px; width: 590px; border: 1px solid #dddddd;">
<dt><a rel="attachment wp-att-252" href="http://blog.tabini.ca/2009/11/18/win-a-52-hd-home-entertainment-system-with-phpas-new-contest/php-on-windows/"><img style="padding: 0px; margin: 0px; border: 0px none initial;" title="PHP on Windows" src="http://blog.tabini.ca/wp-content/uploads/2009/11/php-on-windows.jpg" alt="PHP on Windows: give it a try—it might be worth your while" width="580" height="170" /></a></dt>
<dd style="font-size: 11px; line-height: 17px; padding-top: 0px; padding-right: 4px; padding-bottom: 5px; padding-left: 4px; margin: 0px;">PHP on Windows: give it a try—it might be worth your while</dd>
<div><span style="font-size: small;"><span style="line-height: 20px;"><br />
</span></span></div>
</dl>
</div>
<p>From the blatant self-promotion bin: in case you haven&#8217;t heard, php|a has a <a title="php|architect's Great PHP on Windows Contest" href="http://phparch.com/win">brand new contest</a> running between now and the end of March.</p>
<p>The contest rules are fairly simple (despite all the legal gobbledygook): write the best PHP-on-Windows application (as judged by our panel of experts and the php|a readers) and you will be the winner of a killer grand prize made up of a 52&#8243; LCD HDTV set, a 5.1 surround system and an XBOX Ultimate, plus your very own, all-expenses-paid ticket to <a title="TEK·X Conference, Chicago, IL May 18-22, 2010" href="http://tek.phparch.com">TEK·X</a>.</p>
<p>Currently, we have ten people who are hard at work on contest entries. To me, that seems like a paltry number, consider that we have over $10,000 in prizes available <em>and</em> you don&#8217;t even need to be running Windows, since we have partnered with <a title="Applied innovations" href="http://www.appliedi.net/">Applied Innovations</a> to provide the first sixty participants with their very own dedicated Windows VPS. You know you&#8217;re running out of excuses. Try it. Now. Go!</p>
<h2>Why PHP on Windows?</h2>
<p>As you can see on the php|a website, Microsoft is providing php|a with promotional consideration for the contest—needlessly to say, they have their reasons, which primarily are to make you try and write software in PHP and make it run on Windows. I, however, have a completely different set of motives for running the contest: <em>to make you try and write software in PHP and make it run on Windows</em>.</p>
<p>Where&#8217;s the difference? Microsoft wants you try their products because you will hopefully find them useful and adopt them in a setting in which their use will turn into sales. That&#8217;s a perfect valid motivation, particularly considering that they (a) are in the business of selling software and (b) they are providing you with a really strong incentive to give their products a try (and without any strings attached!). I, on the other hand, want as many PHP professionals as possible to be aware of what <em>all</em> their choices are.</p>
<p>Every time we discard a choice on the basis of anything other than it not being the right solution for our particular problem, we are doing ourselves and our clients a disservice. It happens a little too often that I come across a client who is suffering through their personal hell because they have discarded commercial alternatives on the basis that they “cost money” or “are not open-source.” In a professional setting, your first goal should be to find the best solution to a particular problem <em>keeping all the appropriate constraints into consideration.</em> If the cost of making OSS work for your specific problem is higher than acquiring a commercial package (a scenario that is not that far fetched if you&#8217;re trying to make the open-source software do something it wasn&#8217;t meant to), then you&#8217;re better off switching—perhaps with the long-term view of helping to sponsor an improvement in the OSS package to make it eventually meet your needs. By the same token, an ill-adapted open-source solution that doesn&#8217;t work well isn&#8217;t going to further the OSS cause much, either.</p>
<p>Thus, I hope that our little contest will give you an excuse to try out one of the many technologies and software products that Microsoft puts out. You may just find that one or two of them solve your problems in a way that saves you time, or money, or both—and, who knows, you could get a cool TV set and a free trip to one of the best PHP conferences of 2010 in the process!</p>
<p><em>Photo credit: <a title="Windows" href="http://www.flickr.com/photos/eriwst/3481484952/">Windows</a> by eriwst (with some changes by yours truly).</em></p>
<img src="http://feeds.feedburner.com/~r/mtabini/~4/H2T2bNYWxBQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tabini.ca/2009/11/win-a-52-hd-home-entertainment-system-with-phpas-new-contest/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.tabini.ca/2009/11/win-a-52-hd-home-entertainment-system-with-phpas-new-contest/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.407 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-24 09:58:09 -->
