<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aleem Bawany</title>
	<atom:link href="http://aleembawany.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aleembawany.com</link>
	<description>tech, web and the rest</description>
	<lastBuildDate>Mon, 23 Aug 2010 13:41:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Platforms Strategy</title>
		<link>http://aleembawany.com/2010/08/23/platforms-strategy/</link>
		<comments>http://aleembawany.com/2010/08/23/platforms-strategy/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 13:00:38 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=1063</guid>
		<description><![CDATA[The platforms strategy is a fairly new concept in business nomenclature. A platform is typically one that allows others to build freely and openly on top of itself. The more open and free it is, the more rapidly it is likely to grow.
]]></description>
			<content:encoded><![CDATA[<p>The platforms strategy is a fairly new concept in business nomenclature. A platform is typically one that allows others to build freely and openly on top of itself. The more open and free it is, the more rapidly it is likely to grow.</p>
<p>Microsoft Windows, for example, allows any vendor to build software for Windows without restrictions.</p>
<p>Similarly, when Facebook announced that it would allow any vendor to build applications on top of its ‘social media platform’, it fully embraced the platforms strategy and achieved rapid growth in return.</p>
<p>In fact, over a very short period of time, Facebook boasts over half a million applications in active use with over a million developers and entrepreneurs.</p>
<p>Of the 500 million active users on Facebook, 70 per cent use at least one of these third-party applications each month. Facebook dominates the web as the largest social network, getting more hits than the next top 30 websites combined, while Microsoft dominates the consumer PC market with 91 per cent market share (as of late 2009). The platform strategy has proven instrumental in both cases.</p>
<h2 id="toc-microsoft-or-apple">Microsoft or Apple?</h2>
<p>Microsoft is the epitome of a platforms strategy because not only does it allow application developers to thrive, it also has a rich ecosystem of certified trainers providing accreditation and diplomas to technicians, repair shops specialising in Microsoft personal computers and partners authorised to sell Windows software licences in their respective localities.</p>
<p>Furthermore, Microsoft has also lent its platform to hardware makers like Dell and HP through tactics such as volume discounts, co-branding and application bundling.</p>
<p>The company has ensured its success by tying itself to the success of millions of other businesses. Apple, on the other hand, missed out on the party early on because it chose to take charge of repairs itself. The company also decided to control distribution and no initiatives were given to third-party vendors.</p>
<p>Apple’s iPhone platform is also extremely tight-fisted: all applications must be sold through Apple’s AppStore where Apple frequently exercises its right to reject applications from being listed or remove them without notice. It also charges 30 per cent commission on all revenues.</p>
<p>Although this anti-platforms strategy has crippled its computer sales, which now comprise only about 25 per cent of the company’s total revenue, it has worked tremendously well for the iPhone and iPod.</p>
<p>A platforms strategy requires not only inviting others to build on the platform, but also encouraging them to build an entire business around your platform.</p>
<p>The more open the platform, the more tremendous its growth. The Internet itself is the greatest platform upon which companies like Google and Facebook are built.</p>
<p><em>Published in <a title="Platforms Strategy - Aleem Bawany" href="http://tribune.com.pk/story/42008/platforms-strategy/">The Express Tribune</a>, August 23rd, 2010.</em></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"><strong>The platforms strategy is a fairly new concept in business  nomenclature. A platform is typically one that allows others to build  freely and openly on top of itself. The more open and free it is, the  more rapidly it is likely to grow.</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/08/23/platforms-strategy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TEDx Karachi</title>
		<link>http://aleembawany.com/2010/06/04/tedx-karachi/</link>
		<comments>http://aleembawany.com/2010/06/04/tedx-karachi/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 14:59:27 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Pakistan]]></category>
		<category><![CDATA[Technophilia]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=1036</guid>
		<description><![CDATA[I have attended a number of conferences in Karachi and even spoken at a few but today's conference at TedX was in a separate league. What made it so interesting is that like all things TED, it was diverse. There were speakers from the creative arts, business, energy and technology. The crowd was equally diverse and the talks were very inspirational because the speakers didn't hold out--they really spoke out. The event was extremely well organized with each of the 18 minute talks carrying a carefully rehearsed and condensed theme.]]></description>
			<content:encoded><![CDATA[<p>I have attended a number of conferences in Karachi and even spoken at a few but today&#8217;s conference at TedX was in a separate league. What made it so interesting is that like all things TED, it was diverse. There were speakers from the creative arts, business, energy and technology. The crowd was equally diverse and the talks were very inspirational because the speakers didn&#8217;t hold out&#8211;they really spoke out. The event was <a href="http://teeth.com.pk/blog/2010/06/01/tedx-comes-to-karachi">extremely well organized</a> with each of the 18 minute talks carrying a carefully rehearsed and condensed theme.</p>
<p>It felt like the cirque de soleil of conferences with a healthy mix of audience engagement, ranging from an abrupt ovation for our country with a national anthem who intent was to rebase the audience back to our country&#8217;s patriotic roots, to motivational talks which engaged the audience in a 30 second breathing exercise and acknowledgement of people in adjacent seats&#8211;all designed to underline the prominence of &#8220;presence&#8221;, &#8220;awareness&#8221; and connecting. The topic on energy for a change focused on solutions and the Thar coal mines, whose 4% reserves are enough to sustain the entire country. Micro-finance seems to be another recurring theme in the financial and charitable circles and there was plenty of quantification and empirical evidence of it being implemented and working in Pakistan. All talks came from people who are out there on the field, accomplishing these things.</p>
<p>The talks had plenty of substance and mind fodder. It&#8217;s easy to get pigeon-holed into our respective trades so it was a good change to get a richer, broader perspective from people across the various walks of life.</p>
<p>It&#8217;s a shame that it will be another year before the next TEDx, but I&#8217;m hoping there are other forums in between that continue the discussion.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/06/04/tedx-karachi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Top 1000 Most-visited Sites on the Web</title>
		<link>http://aleembawany.com/2010/05/31/top-1000-most-visited-sites-on-the-web/</link>
		<comments>http://aleembawany.com/2010/05/31/top-1000-most-visited-sites-on-the-web/#comments</comments>
		<pubDate>Mon, 31 May 2010 13:59:51 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[New Media]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=1019</guid>
		<description><![CDATA[Google's just released list of "1000 most-visited sites on the web" is a real treat and quite interesting to analyze. It has to be one of the most accurate lists given Google's massive network reach. The list contains Unique Users (UU) and Page Views (PV). Besides Orkut, Google has not listed any of it's own sites in the list so Google News, Google Search and GMail may very well be in the top 1000 but absent from this list. I also calculated the Average Page Views (APV) to show how many pages each user visits on average on the site.]]></description>
			<content:encoded><![CDATA[<p>Google&#8217;s just released list of &#8220;<a href="http://www.google.com/adplanner/static/top1000/">1000 most-visited sites on the web</a>&#8221; is a real treat and quite interesting to analyze. It has to be one of the most accurate lists given Google&#8217;s massive network reach. The list contains Unique Users (UU) and Page Views (PV). Besides Orkut, Google has not listed any of it&#8217;s own sites in the list so Google News, Google Search and GMail may very well be in the top 1000 but absent from this list. I also calculated the Average Page Views (APV) to show how many pages each user visits on average on the site.</p>
<p>Interested readers may view a dynamically sortable table of the complete list of <a href="http://aleembawany.com/topsites/">top 1000 most visited sites on the web</a> which also has APV added (<strong>Warning</strong>: on slow computers it may take a while to load or crash your browser since it&#8217;s a long list that requires Javascript processing).</p>
<p>I used it to gather the following data for sites in the News category.</p>
<h2 id="toc-news-current-events">News &amp; Current Events</h2>
<p>This category includes sites with an online and television presence, covering current and breaking news.</p>
<ul>
<li><a href="http://bbc.co.uk">BBC</a> (#43) with 45 million UU and 56 APV, the highest in the overall News category</li>
<li><a href="http://ifeng.com/">ifeng.com</a> (#55) in Chinese/Mandarin</li>
<li><a href="http://cnn.com/">CNN</a> (#64) with 34 million UU and 38 APV</li>
<li><a href="http://digg.com/">Digg</a> (#252) is also impressive given that its a community driven news aggregator that runs automatically</li>
<li><a href="http://foxnews.com/">FoxNews</a> (#279) with 11 million UU and 8 APV</li>
</ul>
<h2 id="toc-newspapers">Newspapers</h2>
<p>This category includes the traditional print newspapers complemented by an online presence</p>
<ul>
<li><a href="http://www.nytimes.com/">NYTimes</a> (#83) takes the top spot with 26 million UU and 23 APV</li>
<li><a href="http://yomiuri.co.jp/">Yomiuri</a> (#213) with 20 APV</li>
<li><a href="http://dailymail.co.uk/">Daily Mail</a> (#236) with 22 APV</li>
<li><a href="http://wsj.com/">WSJ</a> (#277) with 15 APV</li>
<li><a href="http://mainichi.jp/">Mainichi</a> (#287) with 7 APV</li>
<li><a href="http://guardian.co.uk/">Guardian</a> (#310) with 16 APV</li>
</ul>
<h2 id="toc-business-news">Business News</h2>
<ul>
<li><a href="http://ce.cn/">CE.CN</a> (#500) with 7.4 million UU and 5 APV giving it 34 million monthly PV</li>
<li><a href="http://forbes.com/">Forbes</a> (#633) with 6.1 million UU and 18 APV giving it 110 million monthly PV</li>
</ul>
<h2 id="toc-local-news">Local News</h2>
<p>This category includes online news sites which focus on national coverage<a href="http://ig.com.br/"></a></p>
<ul>
<li><a href="http://ig.com.br/">iG.com.br</a> (#477) out of Brazil</li>
<li><a href="http://zjol.com.cn/">zjol.com.cn</a> (#746) out of China</li>
</ul>
<h2 id="toc-social-networks">Social Networks</h2>
<p>Of the top 1000 sites, the ones with the highest APV are comprised primarily of social networking sites along with a few classifieds and shopping sites. This makes sense because people spend a lot of time on social networking sites viewing a lot of pages.</p>
<h2 id="toc-page-views">Page Views</h2>
<p>Facebook is the grand daddy of all websites. Not only does it have the highest number of UU at 540 million, its PV count gets even more impressive with an APV count of 1056. Facebook gets a total of 570 billion page views per month which is more than all the next 30 websites combined! Yahoo web portal is a paltry second with 70 billion page views from it&#8217;s 490 million unique users.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/05/31/top-1000-most-visited-sites-on-the-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Express Tribune</title>
		<link>http://aleembawany.com/2010/04/13/the-express-tribune-3/</link>
		<comments>http://aleembawany.com/2010/04/13/the-express-tribune-3/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 15:23:41 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[New Media]]></category>
		<category><![CDATA[Pakistan]]></category>
		<category><![CDATA[Technophilia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=974</guid>
		<description><![CDATA[What on the onset seemed quite trivial actually turned out to be quite hard. <a href="http://tribune.com.pk/">The Express Tribune</a> launched just 2 days ago with a stunning paper and a web portal to match. Building large scale systems like The Express Tribune news portal and turning it around in 6 months requires a team of determined masochists and some really quick thinking.]]></description>
			<content:encoded><![CDATA[<p>What on the onset seemed quite trivial actually turned out to be quite hard. <a href="http://tribune.com.pk/">The Express Tribune</a> launched just 2 days ago with a stunning paper and a web portal to match.</p>
<p>Building large scale systems like The Express Tribune news portal and turning it around in 6 months requires a team of determined masochists and some really quick thinking. One has to think about scalability, performance, security, architecture and pliability of the product. One also has to think about usability, information architecture and layouts. About user interactivity, community engagement and publication workflows. Integration with television and print and a coherent new media strategy.</p>
<p>But it&#8217;s here and it&#8217;s far from over. Going in, I was confident that we would easily come out ahead of the competition (whom I have written about <a href="http://aleembawany.com/2008/08/28/dawn-com-barely-worth-the-effort/">here</a> and <a href="http://aleembawany.com/2010/02/07/jang-news-advertising-vs-user-experience/">here</a>) but I never thought I would have so much fun doing it.</p>
<p>The Express Tribune website uses some existing platforms and our developer toolkit is quite powerful, but to get to where we wanted to go, we got neck deep in every aspect of the system.</p>
<p>Beyond being just a pretty website, it has some behind the scenes features where it really shines out. This is where the competition has a lot of catching up to do. For example, assigning headlines and stories to sections or updating the page layout happens directly from the section itself, rather than going in to some specialized administrative screen. The image management and carousels are first class features and not just an after thought. The News in Pictures and slide shows can be done in under 5 minutes. The pages load blazingly fast, because we optimized not only the caching mechanisms but also the web server, database server, application server and even the operating system.</p>
<p>The user interface follows some hard principles. For example, the comment preview feature is painstakingly simple and dynamic so users know exactly how their words will appear. The submit button is below the comment preview by design, so the user is forced to preview on his way to the submit button. The design follows a horizontal rhythm using grid-based layouts. The weather widget updates the weather without having to refresh the page and on the back end we do some very specific caching so we can handle thousands of users, yet provide the latest weather updates or auto updating stock charts. The alerts ticker is directly linked to the Express 24/7 television station which requires some trickery on the part of both, the television platform as well as the web platform.</p>
<p>The interesting bits about strategy are something I cannot talk about other than to say that if the website works well for you and you find yourself interacting more and more, it&#8217;s because we put the user first. And in the short and long term both, our strategy will allow us to surpass the competition and out-pace them so we maintain the lead.</p>
<p>With internet penetration growing the way it is, I have no doubt that The Express Tribune portal will provide common ground for a lot of avid readers and have interesting side effects.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/04/13/the-express-tribune-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Understanding Abstract Classes in PHP</title>
		<link>http://aleembawany.com/2010/04/03/understanding-abstract-classes-in-php/</link>
		<comments>http://aleembawany.com/2010/04/03/understanding-abstract-classes-in-php/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 19:44:20 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=934</guid>
		<description><![CDATA[Abstract classes are an often misunderstood feature of PHP object-oriented programming (OOP) and the source of confusion when considered versus an Interface. The obvious reason for using an Interface is that a child class can implement multiple interfaces but extend only a single abstract class. However, if multiple inheritance is not required then people often go with abstract classes just because they provide the option of later adding base functionality within the abstract class. This is not entirely unreasonable but the reasons for creating abstract classes should be more than that.]]></description>
			<content:encoded><![CDATA[<p>Abstract classes are an often misunderstood feature of PHP object-oriented programming (OOP) and the source of confusion when considered versus an Interface. The obvious reason for using an Interface is that a child class can implement multiple interfaces but extend only a single abstract class. However, if multiple inheritance is not required then people often go with abstract classes just because they provide the option of later adding base functionality within the abstract class. This is not entirely unreasonable but the reasons for creating abstract classes should be more than that.</p>
<h2 id="toc-why-use-abstract-classes">Why Use Abstract Classes?</h2>
<p>An <em>Abstract</em> class provides concrete base functions as well as abstract functions that must be implemented by <em>concrete child</em> classes—binding them into a contract so to speak, if they wish to make use of the base functionality.</p>
<p>This is a subtle but important point and this is where abstract classes really shine. They can call abstract functions from within base concrete functions. Jumping straight to an example is the clearest way to explain this.</p>
<pre class="prettyprint">abstract class Animal {
  function greeting() {
    $sound = $this-&gt;sound();      // exists in child class by contract
    return strtoupper($sound);
  }
  abstract function sound();      // this is the contract
}

class Dog extends Animal {
  function sound() {              // concrete implementation is mandatory
    return &quot;Woof!&quot;;
  }
}

$dog = new Dog();
echo $dog-&gt;greeting();            // WOOF!</pre>
<p>This opens up a whole lot of interesting possibilities. For example, you can write a <code>drive()</code> function that calls <code>$this->start(); $this->accelerate();</code> in an abstract class. Then create a motorcycle class that defines its own <code>start()</code> and <code>accelerate()</code> functions that may be different from those in the car class. In turn, the motorcycle and car can both be driven by just calling <code>drive()</code> without having to implement it locally.</p>
<h2 id="toc-characteristics-of-abstract-classes">Characteristics of Abstract Classes</h2>
<p>Make a note of these characteristics to lock down your understanding of abstract classes:</p>
<ol>
<li>Single inheritance. Child classes can extend only one class at a time. </li>
<li>Abstract classes cannot be instantiated &#8212; no <code>new Animal();</code> </li>
<li>Abstract classes can define class variables of type <em>const</em> only. </li>
<li>Abstract class A can be extended by another abstract class B. Abstract class B can implement none or any of the abstract functions in A. </li>
<li>In the previous case, a child class C which extends abstract class B must implement all abstract functions in B as well as the abstract functions in A which have not already been implemented in B. </li>
<li>The signature of the concrete functions and abstract functions must be the same. However, if an abstract function is defined as <code>abstract function speak($greeting);</code> then it is okay to implement it as <code>function speak($greeting, $shout = FALSE)</code> but not <code>function speak($greeting, $shout)</code>. </li>
<li>The visibility of functions in the child classes must be the same or <em>less restrictive</em> than the parent class. Thus, a <code>protected</code> abstract function can be implemented as either <code>protected</code> or <code>public</code> but not <code>private</code>. </li>
<li>Declaring functions as <code>static abstract</code> throws a strict warning in PHP 5.2 or earlier, however, as of PHP 5.3 this is allowed.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/04/03/understanding-abstract-classes-in-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jang News: Advertising vs User Experience</title>
		<link>http://aleembawany.com/2010/02/07/jang-news-advertising-vs-user-experience/</link>
		<comments>http://aleembawany.com/2010/02/07/jang-news-advertising-vs-user-experience/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:45:08 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[New Media]]></category>
		<category><![CDATA[Pakistan]]></category>
		<category><![CDATA[Technophilia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=845</guid>
		<description><![CDATA[The <a href="http://jang.com.pk/" title="Jang News Online">Jang News</a> website is one that just keeps getting worse with each passing day. It's lacklustre and shows absolutely no concern for its readers or the news that it serves. The website is a big hoarding with no less than <strong>19 advertisements</strong> on the website's front page while at the same time carries <strong>less than 100 words of actual news</strong>. And it looks really ugly to boot.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://jang.com.pk/" title="Jang News Online">Jang News</a> website is one that just keeps getting worse with each passing day. When I wrote a review of <a href="/2008/08/28/dawn-com-barely-worth-the-effort/">Dawn.com Beta website launch</a>, I highlighted their technical and interface shortcomings but the Jang News&#8217; website is not worthy of even that. It&#8217;s lacklustre and shows absolutely no concern for its readers or the news that it serves.</p>
<p>The website is a big hoarding with no less than <strong>20 advertisements</strong> on the front page while at the same time carries <strong>less than 100 words of actual news</strong>. And it looks really ugly.</p>
<p><a href="http://aleembawany.com/wp-content/uploads/2010/02/jang-news-advertising.jpg" title="Jang News Online Website"><img src="http://aleembawany.com/wp-content/uploads/2010/02/jang-news-advertising.jpg" alt="" title="Jang News Online Advertisements" width="600" height="597" /></a></p>
<p>This is what happens when you <strong>just don&#8217;t care about the readers</strong>. This is what happens when designers develop, developers design, business units dictate the roadmap and talent in general lacks. This is also what happens when you just don&#8217;t understand <strong>interaction design</strong>, information architecture, usability or have been oblivious to the paradigm shifts in online advertising and technological trends. This screen capture of the Jang News website clearly highlights all this.</p>
<p>The actual news content is highlighted in green boxes while the rest of the page is mostly advertisements. All ad slots highlighted in red are available for sale while unsold ad space is used for in-house products. The <a href="http://www.jang.com.pk/ad-tariff/newtariff/index.html">advertising tariffs</a> section of the website indicates the type of ads available for sale on Jang News Online which includes video and expandable ads at a premium. The <strong>annoying expandable ads</strong> block access to the news until readers close them (shown in the screen capture) while video ads block the rest of the page because they take so long to load (Pakistan has very low broadband penetration in any case).</p>
<p>Jang News Online gets a considerable amount of traffic because the Jang News Group has entrenched itself as the face of news over the past 70 years that it has been around&#8211;a time during which it enjoyed <strong>little or no competition</strong> which helps explain their complacency.</p>
<p>Now, I am not even sure why an advertiser would want to publish one ad amongst 20 when it&#8217;s well known that users develop <a href="http://www.google.com/search?q=banner+blindness">banner blindness</a> and moreover the website&#8217;s ad space is extremely diluted and the screen interface is so cluttered.</p>
<p>The page reminds me of the days popup ads ran rampant until readers expressed rage and all major browsers (Internet Explorer, Firefox, Safari, et al) reacted by featuring popup blockers to put an end to it all. Unfortunately, in Jang&#8217;s case it&#8217;s not easy to block the spam. The website&#8217;s front page is practically an <strong>online hoarding</strong> which seems to take it&#8217;s cue from the <a href="http://www.milliondollarhomepage.com/">million dollar homepage</a> (whose sole purpose is to show advertisements) rather than a news site. One may easily pass this off as spam in its current state.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/02/07/jang-news-advertising-vs-user-experience/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Online Strategy &amp; Development in a Nutshell</title>
		<link>http://aleembawany.com/2010/01/28/online-strategy-development-in-a-nutshell/</link>
		<comments>http://aleembawany.com/2010/01/28/online-strategy-development-in-a-nutshell/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 09:24:09 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technophilia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=825</guid>
		<description><![CDATA[Microsoft Innovation Center hosted the Microsoft Web Days session today where I gave a talk about online strategy and development (in a nutshell). Even thought it was in a nutshell, I slipped in some details which meant skimming over a lot of other things during latter part of the brief 30 minute presentation. The presentation covered frameworks, interaction design, business models, strategies, tools, trends and user experience among other things.]]></description>
			<content:encoded><![CDATA[<p>Microsoft Innovation Center hosted the Microsoft Web Days session today where I gave a talk about online strategy and development (in a nutshell). Even thought it was in a nutshell, I slipped in some details which meant skimming over a lot of other things during latter part of the brief 30 minute presentation. The presentation covered frameworks, interaction design, business models, strategies, tools, trends and user experience among other things.</p>
<p>There are some valuable lessons in this for all budding web developers and web entrepreneurs.</p>
<p><object style="margin:0px" width="505" height="415"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=onlinestrategyanddevelopmentinanutshell-100127144415-phpapp02&#038;stripped_title=online-strategy-and-development-in-a-nutshell&#038;rel=0" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=onlinestrategyanddevelopmentinanutshell-100127144415-phpapp02&#038;stripped_title=online-strategy-and-development-in-a-nutshell&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="505" height="415"></embed></object></p>
<p>Download PowerPoint: <a href="/wp-content/uploads/2010/01/Online-Strategy-and-Development-in-a-Nutshell.ppt">Online Strategy and Development in a Nutshell</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2010/01/28/online-strategy-development-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tr.im Goes Open &#8211; Bad Move or Marketing Ploy?</title>
		<link>http://aleembawany.com/2009/08/17/tr-im-goes-open-bad-move-or-marketing-ploy/</link>
		<comments>http://aleembawany.com/2009/08/17/tr-im-goes-open-bad-move-or-marketing-ploy/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 23:25:08 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technophilia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=802</guid>
		<description><![CDATA[Tr.im is a URL shortening services useful for applications like Twitter where the length of posts is restricted to around 140 letters and short URLs are desirable. Recently tr.im announced that it was going out of business and shutting down but soon after they reversed their position and Eric Woodward offered to bear the costs of operations out of his own pocket if donations fell short. A move that is probably even worse than shutting down.]]></description>
			<content:encoded><![CDATA[<p><a title="Trim URL Shortener" href="http://tr.im/">Tr.im</a> is a URL shortening services that converts your URL from <code>http://aleembawany.com/2009/08/17/tr-im-goes-open-bad-move-or-marketing-ploy/</code> to something like <code>http://tr.im/wzz0</code>. It&#8217;s useful for services like Twitter where the length of posts is restricted to around 140 letters.</p>
<p>In a seemingly abrupt move, tr.im recently announced the <a href="http://blog.tr.im/post/159489555/tr-im-to-december-31-2009">decision to shut down</a> at the end of this year blaming the <a href="http://bit.ly/">bit.ly</a> and Twitter partnership for driving them out of business. I have not used either service other than for test driving so I don&#8217;t have a bias either way but it makes sense for Twitter to go with best of the breed so it is unclear why tr.im needs to place the blame with either bit.ly or Twitter. The situation was pareto efficient and one or the other had to lose out. It makes sense for Twitter to partner with or acquire such a service because it is complimentary to their business (tiny posts with tiny URLs).</p>
<p>Soon after announcing their intent to go out of business, tr.im reversed their position and Eric Woodward offered to bear the <a href="http://blog.tr.im/post/165049236/tr-im-to-be-community-owned">costs of operations out of his own pocket</a> if donations fell short&#8211;a move that is even worse than going out of business.</p>
<h2 id="toc-revenue-model">Revenue Model</h2>
<p>The revenue model suggests that for the most part, such a service is very difficult to sustain. The revenue model for URL shortening services would depend either on showing disruptive advertisements or tracking user patterns and selling intelligence.</p>
<p>In the former case, users would probably stop using the service if they saw an ad before being redirect to long URL. In the latter case, tr.im would need considerable market share to track behavioural data.</p>
<p>Tr.im shot itself in the foot by claiming it will simply go belly up because the business is bad. There goes their chance of getting acquired for a good price.</p>
<p>All this is offset by the fact that it allowed tr.im to receive a lot of media attention and might drive up usage but smart users will shy away from a service that&#8217;s on life support and business continuity is of utmost importance. The smarter strategy was to get acquired much like bit.ly did.</p>
<h2 id="toc-why-go-open">Why go open?</h2>
<p>The technical challenge of converting long URLs to short ones is trivial so the value-proposition to the community is not that great but let&#8217;s assume that since it&#8217;s free it&#8217;s good. The problem then again is that it will encourage users to create their own competing services to bit.ly and since the revenue model for the most part does not have a compelling monetization strategy, these services will eventually go out of business and intensify the link-rot problem.</p>
<p>The primary motivation for going open seems to be the move toward donations where the community would donate code as well as money to keep the servers running for the millions of links that will accumulate over time. This works well for Wikipedia because it is a natural monopoly and can fall back on ads if needed. And again, Wikipedia has completely different dynamics compared to tr.im which functions simply to shorten the length of links with equal or better services already available that pose a lesser risk of going bust.</p>
<h2 id="toc-a-nasty-time-bomb">A Nasty Time Bomb</h2>
<p>When Eric Woodward proposes that he will fund this from his own pocket if donations fall short, the community should be concerned. What is something happens to Eric? Does he leave behind a trust fund? Not only that but the costs are ever-increasing because all links will need to be supported for all of time or thousands if not millions of links will break.</p>
<p>The longer the service stays in operation, the greater the risk it poses. If it goes out of business 2 years from now it might end taking out a couple million URLs with it which will be even worse than if it went out of business today.</p>
<p>So the costs will be ever-increasing, the risks will also be ever-increasing and there is no good revenue model to sustain the service. In fact if it becomes community owned, all data will be free so tr.im cannot depend on behavioural tracking data as a revenue strategy. Tr.im will continue to be a burden on the community and not only that, but if other unsustainable services come up replicating its code, the link rot problem will get compounded. And all those people who make donations will see their money go to waste when they realize the tr.im will need piles of cash, month after month with no other source of cash flow.</p>
<p>I hope I am wrong about this.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2009/08/17/tr-im-goes-open-bad-move-or-marketing-ploy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Earnings Season</title>
		<link>http://aleembawany.com/2009/07/23/earnings-season/</link>
		<comments>http://aleembawany.com/2009/07/23/earnings-season/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 23:25:38 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Finance]]></category>
		<category><![CDATA[Technophilia]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=791</guid>
		<description><![CDATA[Earnings season is upon us. Today the DOW touched it's highest annual level of 9000 while the Nasdaq jumped 2.9%, it's twelfth daily consecutive gain. Following is a summary of interesting earnings highlights in the tech sector to show just where things stand.]]></description>
			<content:encoded><![CDATA[<p>Earnings season is upon us. Today the DOW touched it&#8217;s highest annual level of 9000 while the Nasdaq jumped 2.9%, it&#8217;s twelfth daily consecutive gain. Following is a summary of interesting earnings highlights in the tech sector to show just where things stand.</p>
<p><strong>Microsoft&#8217;s</strong> (MSFT) fourth-quarter net income dropped 29% to $3.05 billion and revenue fell 17% to $13.10 billion. It was hurt by a global slump in demand for PCs and servers. Sales in the client division which produces Window OS, fell 29% and earnings fell 33%. Google will be introducing the Chrome OS soon while Microsoft will be launching it&#8217;s own Windows 7 in October of this year.</p>
<p><strong>Apple</strong> (AAPL) reported third-quarter profits increase by 15% to $1.23 billion and revenue rose 12% to $8.33 billion. Apple sold 5.2 million iPhones, a 700% increase YoY. Macintosh saw 4% rise in shipments to 2.6 million units, however, revenue fell 8% to 3.33 billion due to price cuts on some MacBooks. iPod sales dropped 7% YoY to 10.2 million and revenues declined 11% to 1.49 billion. This is the natural effect of cannibalization by iPhone and iTouch.</p>
<p><strong>Amazon </strong>(AMZN) said its second-quarter net slid 10% to $142 million, though sales increased 14% to $4.65 billion. The company, which announced an agreement to buy online retailer Zappos.com yesterday for $850 million, said it expects net sales of between $4.75 billion and $5.25 billion in the third quarter.</p>
<p><strong>Yahoo</strong> (YHOO) said its second-quarter revenue slid 13% to $1.57 billion but profits rose 8% to $141.4 million due to layoffs of 700 employees to 13,000 total, and other cost-cutting measures. A Yahoo/Microsoft deal is back in the negotiating room as the companies seek to form a partnership against rival Google, which means the deal would have to be approved by regulators due to antitrust concerns. The companies have skirted the negotiations over the past 2 years until they came to head a few months ago with CEO Jerry Yang when negotiations failed and Yahoo stock fell considerably as the recession hit. Yahoo, this past Tuesday launched a <a title="Yahoo New Home Page" href="http://m.www.yahoo.com/">new home page</a> and announced a deal with AT&amp;T to sell display advertising.</p>
<p><strong>AMD</strong> (AMD) posted second quarter losses of $330 million while revenue was down from $1.36 billion to $1.18 billion. Margins for its chips business were down from 35% to 27% a stark contrast from rival Intel&#8217;s report of increasing gross margins. Intel&#8217;s revenues also in turn increased 12%. AMD blamed the declines on under-utilized factories which lead to a reduction in margins and also lower chip prices.</p>
<p><strong>Google</strong> (GOOG) reported a revenue increase for 2.9% to $5.52 billion while profits rose 19% to $1.48 billion due to cost cuts and laying off some 300 employees. Google commands one-third of the $24.5 billion U.S. Internet advertising market. Mr. Schmidt reported a recovery in advertising spend in travel and shopping but finance sector remains weak. The bulk of the growth came for search advertisements as advertisers turn to more predictable and targetted ads on Google.</p>
<p><strong>TomTom</strong> (TOM2), a dutch navigation equipment manufacturer reports 61% drop in second quarter profits to $28 million while the top line saw a decline of  19% to $522 million. The company expects to a total industry demand of 15 million Portable Navigation Device units in Europe and 17 million in North America for the complete fiscal year of which it expects that 11 to 12 million units will be of TomTom. The company also suffers stiff competition from the likes of iPhone and other similar phones in the market which provide a navigation facility among other things.</p>
<p><strong>Wipro</strong> (WIT) reported a 12% rise in first-quarter profits to $210 million making it the third Indian software company to beat forecasts. Earlier, bigger rival Tata reported a 22% increase in profits while Infosys reported a 17% increase in profits. Wipro, India&#8217;s third largest software maker booked revenues from IT services, products, customer care and lighting businesses.  IT Services registered revenues of $1.03 billion which makes up 77% of Wipro&#8217;s revenue stream and margins in the same division grew from 20.9% to 22.3%.</p>
<p><strong>LG</strong> Electronics, South Korea&#8217;s second largest consumer electronic company after Samsung, reported quarterly net income increase for 62% to $918 million and earnings increased 14% to 1.2 billion. LG expects strong outlook in LCD and handset business. The company sold nearly 30 million handsets in the quarter and operating margin on these handsets increased from 6.7% to 11% QoQ.</p>
<p>Elsewhere, <strong>Cisco</strong> (CSCO) signed a deal with Marriot hotels for telepresence services in 25 locations. Telepresence helps reduce travel costs and Mariott cancelled previous deals with <strong>HP</strong> (HPQ) telepresence solutions for $120K each plus $10K monthly fee. Last year alone, HP sold Cisco gear worth $1 billion but tough economic times has lead to tough competition between the two. Cisco&#8217;s top of the line telepresence sells for $300K vs HP&#8217;s $350K. <strong>BBC</strong> has dumped project Kangaroo, an Internet TV service that was planned in collaboration with two other television networks. The project was ruled out in February due to antitrust issues from the Competition Commission. BBC wrote off some $15 million in the project for the FY ended April 30. The BBC iPlayer gets 41 million+ hits a month and BBC is currently exploring other options for profitable online television broadcasting.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2009/07/23/earnings-season/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON Serializers In .NET</title>
		<link>http://aleembawany.com/2009/05/22/json-serializers-in-net/</link>
		<comments>http://aleembawany.com/2009/05/22/json-serializers-in-net/#comments</comments>
		<pubDate>Fri, 22 May 2009 16:22:59 +0000</pubDate>
		<dc:creator>Aleem</dc:creator>
				<category><![CDATA[Technophilia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://aleembawany.com/?p=696</guid>
		<description><![CDATA[<p>I was introduced to the various serialization options in .NET while trying to build the <a href="http://aleembawany.com/2009/03/27/aspnet-mvc-create-easy-rest-api-with-json-and-xml/">JSON and XML</a> filters for ASP.NET MVC. In this post I'll take a look at the different JSON serializers available in .NET and the reasons to pick one over the other.</p>
]]></description>
			<content:encoded><![CDATA[<p>I was introduced to the various serialization options in .NET while trying to build the <a href="http://aleembawany.com/2009/03/27/aspnet-mvc-create-easy-rest-api-with-json-and-xml/">JSON and XML filter for ASP.NET MVC</a>. In this post I&#8217;ll take a look at the different JSON serializers in .NET and the reasons to pick one over the other.</p>
<h2 id="toc-javascriptserializer">JavaScriptSerializer</h2>
<p>The <a title="JavaScriptSerializer" href="http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx"><code>JavaScriptSerializer</code></a> lives in the <a title="System.Web.Script.Serialization namespace" href="http://msdn.microsoft.com/en-us/library/system.web.script.serialization.aspx">System.Web.Script.Serialization</a> namespace and the usage is fairly straight forward for serialization:</p>
<pre class="prettyprint">JavaScriptSerializer serializer = new JavaScriptSerializer();
String json = serializer.Serialize(data);</pre>
<p>For deserialization however, there is a minor annoyance in that the deserializer accepts a generic type along with the content:</p>
<pre class="prettyprint">serializer.Deserialize&lt;T&gt;(String s)</pre>
<p>which can be a problem if the type T is not known at compile time and needs to be dynamic. The work around is a bit ugly as I <a title="Invoke JavaScriptSerializer with Dynamic Type" href="http://stackoverflow.com/questions/856665/how-to-turn-a-type-instance-into-a-generic-type-argument">learnt</a> because it uses reflection to create a generic method but it works:</p>
<pre class="prettyprint">var result = typeof(JavaScriptSerializer).GetMethod("Deserialize")
             .MakeGenericMethod(JsonDataType)
             .Invoke(serializer, new object[] { inputContent });</pre>
<p>The <code>JavaScriptSerializer</code> is excellent for general purpose serialization and deserialization, however, one downside is that it cannot handle circular references.</p>
<p>A useful feature of the <code>JavaScriptSerializer</code> is that you can also implement a custom <a title="JavaScriptConverter custom serialization" href="http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptconverter.aspx"><code>JavaScriptConverter</code></a> and pass that in to <code>JavaScriptSerializer</code> for fine-grained control over the serialization/deserialization. However, for it to be really useful you need to know the types at compile time and have references to those types. This really limits the usefulness of this feature because by referencing those classes your code becomes tightly coupled so you cannot easily use it in something like an MVC filter.</p>
<p>The <code>JavaScriptSerializer</code> includes all public fields and properties for serialization by default which makes it useful when working with auto-generated classes or if you don&#8217;t have access to the source. This is different from how <code>DataContractJsonSerializer</code> works.</p>
<h2 id="toc-datacontractjsonserializer">DataContractJsonSerializer</h2>
<p>The <a title="DataContractJsonSerializer in .NET" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx"><code>DataContractJsonSerializer</code></a> lives in the <a title="System.Runtime.Serialization.Json namespace" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.aspx">System.Runtime.Serialization.Json</a> namespace. Unlike the <code>JavaScriptSerializer</code>, the <code>DataContractJsonSerializer</code> is a contract-based serializer so classes or members need to have the <code><a title="DataContract Attribute for serialization with DataContractSerializer" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx">[DataContract]</a></code>, <code><a title="DataMember Attribute for serialization with DataContractSerializer" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute.aspx">[DataMember]</a></code> or the <code><a title="Serializable Attribute" href="http://msdn.microsoft.com/en-us/library/system.serializableattribute.aspx">[Serializable]</a></code> attribute.</p>
<pre class="prettyprint">[Serializable]
class Person {
    public String Name;
    public Int32 Age;
}

...

String json;
using (var stream = new MemoryStream()) {
    DataContractJsonSerializer serializer =
       new DataContractJsonSerializer(data.GetType());
    serializer.WriteObject(stream, data);
    json = Encoding.UTF8.GetString(stream.ToArray());
}</pre>
<p>And for deserialization:</p>
<pre class="prettyprint">using(var stream = new MemoryStream(Encoding.Unicode.GetBytes(json)) {
    Object data = serializer.ReadObject(stream);
}</pre>
<p>Since <code>DataContractJsonSerializer</code> is contract based and relies on attributes, it is not particularly suitable for auto-generated classes (unless they have these attributes) or when source is not accessible because the relevant attributes <a title="DataMember Attribute at Runtime for DataContractSerializer" href="http://stackoverflow.com/questions/713543/set-datacontracts-datamember-attributes-during-runtime">cannot be added at runtime</a> as far as I know. However, for other situations attributes are an easy way to control the serialization aspects.</p>
<p>The most compelling feature of the <code>DataContractJsonSerializer</code> is that it can handle complex object graphs with circular references. This makes it particularly useful with the <a title="New Features in Entity Framework 4.0" href="http://aleembawany.com/2009/05/17/new-features-in-entity-framework-40-v2/">Entity Framework 4.0</a> which now support T4 templates allowing required <code>[Serializable]</code> or <code>[DataMember]</code> attributes to be added to auto-generated classes.</p>
<p><strong>Update:</strong> In .NET 3.5 SP1, DataContractSerializer added support for <a href="http://www.pluralsight.com/community/blogs/aaron/archive/2008/05/13/50934.aspx">classes without attributes</a> (or POCO objects).</p>
<h2 id="toc-json-in-mvc">Json in MVC</h2>
<p>The <a title="ASP.NET MVC Json Serializer" href="http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.json.aspx">System.Web.Mvc</a> namespace contains the <code>Json</code> function intended for use within ASP.NET MVC. There is no real reason to use it outside of ASP.NET MVC when <code>JavaScriptSerializer</code> and <code>DataContractJsonSerializer</code> are available. This function makes it extremely easy to serialize objects to a JSON string. It is not intended for deserialization, however, serialization is just one call:</p>
<pre class="prettyprint">String content = Json(data);</pre>
]]></content:encoded>
			<wfw:commentRss>http://aleembawany.com/2009/05/22/json-serializers-in-net/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->